Email or username:

Password:

Forgot your password?
Top-level
Tube❄️Time

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
Tube❄️Time

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.

Tube❄️Time

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.

Tube❄️Time

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.

Jeff Haluska

@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.

Tube❄️Time

@jhaluska yes, and the checksum makes it harder to edit the strings.

Jeff Skaistis

@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?

nerdlypleasures.blogspot.com/2

Tube❄️Time

@jeffska maybe, or maybe not. nerdlypleasures is some random person on the internet. 🤷

Go Up