In search of a auto-region hack

hu, cd, scd, acd, supergrafx discussions.
Post Reply
User avatar
Gravis
Kitten Blaster
Posts: 79
Joined: Sun Jun 22, 2008 3:52 pm
Location: Deadman Wonderland

In search of a auto-region hack

Post by Gravis » Wed Sep 15, 2010 8:21 am

ok, so i saw an interesting hack that would let you swap the data bus with a single switch so that you could easily play games from another region. http://www.multimods.com/SlotMod1.html

here's the thing, i want an auto-region hack so i can be super cool. my idea was that i could probe the hucard memory to determine what region it really is for. the only thing i can think of that would tell me is a specific point in memory where it's always the same data or same pattern. i've looked at a few ROMs and it kinda looks like there is a header or sorts for most games but i'm not sure.

i had an interesting idea, reading beyond the 8Mb boundary. i was curious to know, what data will it return? garbage? mirrored data? jpegs of kittens? nothing at all? if it always returns something like 0xF0 or 0xFE, that would be perfect! anyone know?

do tell if you know of any static data (ranges), patterns, headers or anything else that would be helpful! :D

Charles MacDonald
Posts: 38
Joined: Sun Jun 22, 2008 5:18 pm
Contact:

Re: In search of a auto-region hack

Post by Charles MacDonald » Wed Sep 15, 2010 6:09 pm

There are two things that tell you the region; the presence of the startup code (containing an identifiable byte-pattern, in particular the ASCII text "NEC"), and the validity of the reset vector when bitswapped. (valid=JP, invalid=US)

Homebrew and unlicensed games will not have the startup code so that isn't a sure bet.

The reset vector must be within $E000-$FFFF. But if you had a vector like $EF02, bitswapped it would be $F740. Both are valid. I think you'd find the majority of values would conclusively be wrong when bitswapped but some may look fine either way.

So there isn't a 100% surefire way to do it, unless you had something crazy like a microcontrolller that would somehow halt the 6280 and checksum the ROM to compare against a table of known values. But there's no way to make the 6280 release the bus so it's impossible unless you made a ton of mods to the console, and at that point you might as well make your own PCE. :D

Reading beyond 0x80000 depends on the HuCard that's plugged in. For normal games you see the ROM data mirrored at the higher addresses. For 'split' games you use the 2nd of two ROMs at the higher addresses.
Don't forget your two NOPs after CSH.

Post Reply