there are two 8-bit ports that can be written to (and i suspect, read back from). i think this is how the "ID port" feature works, as used by the card ID routines in the games that support the card.
Top-level
there are two 8-bit ports that can be written to (and i suspect, read back from). i think this is how the "ID port" feature works, as used by the card ID routines in the games that support the card. 7 comments
speaking of the CMSDRV, i did some reverse engineering work on that as well. it uses self-modifying code and XOR "encryption" to try and prevent reverse engineering, lol. and this is the routine that looks at the "shift register" on port 224h. other sources say that it always reads as 7F, but the MSB can change, and this code checks for a particular pattern. @tubetime I think they were just trying to hide the strings to make dumping the ROM, scanning the ROM for strings, and quickly changing them in a hex editor not an option. It's a lot of benefit for just a little extra work. @tubetime This article implies it's a custom PLA used to latch values for card identification. Maybe originally based on some obscure 40-pin off the shelf part? http://nerdlypleasures.blogspot.com/2012/10/all-you-ever-wanted-to-know-about.html |
i think there's also a shift register, or the ability to use one of the ports as a shift register. this is used by Creative's CMSDRV driver for another card ID scheme.