UPDATE: For those that are following this thread. I have made some progress on the converter, as of right now it will only convert JP to US until I can figure out a way to inject the region code. After talking with Charles MacDonald, he mentioned that most of the games use a standard method for the region code (Read the e-mail yourself I'm too lazy to type it lol)
(Hi Allen,
The region check works as follows: US games read the I/O port built into the HuC6280 chip (the CPU) and check the value of bit 6. If that bit is zero, the system is a TurboGrafx-16 and the game continues to run. If that bit is one, the system is a PC Engine and the game jumps into a region of unmapped memory and crashes. Japanese games don't do any region check so they don't care about the state of that bit.
The console modification is necessary because bit 6 of the I/O port corresponds to a physical pin on the CPU itself inside the console. On a TurboGrafx-16 that pin is normally tied to ground, and on a PC Engine it's tied to +5V. So a region mod involves desoldering that pin and connect it to a SPDT switch so that the I/O port pin can be connected to +5V or ground as needed.
There really isn't a way to defeat this protection easily, because the I/O port is integrated into the CPU. There's no way to substitute a different value on the data bus when the CPU is reading from the I/O port for example.
I think most (not all) of the US games use the same standardized region code because it was provided to them by NEC. In theory you could use some programmable logic to check for that sequence of instructions being executed, and then at the right time turn off the HuCard output and drive a different opcode on the bus to defeat the protection. But that's a lot of work and a lot of hardware to do one thing.
The system runs fast enough that it isn't feasible to use a microcontroller to do this check. It's important to detect the exact sequence because the I/O port is used all the time for the multitap and controllers, so you only want to interfere with the data read from the HuCard at the "right" time. I think some US games use a different sequence too (the programmers wrote the region check differently, it functions the same but the exact sequence of opcodes are different) so you'd have to check for multiple types of sequences other than the primary one most games use.
In the end, it's just easier to take a ROM, patch out the region check, and run it on a flash cart. I know that's hardly ideal, but it takes less effort.
So did you find a connector that fits the HuCard well? People like myself and others have been hunting for a compatible connector for years, it seems like the only alternative is to remove them from used/broken systems. Any idea where I could buy some?
Regards,
Charles)
If anyone has any info on the opcodes sequence they care to share it would speed up the whole process :-)
And yes I am having connectors made :-) just might take some time as I have to do the leg work in my free time.
I have some photos of my progress but they are large, converting them down to add to post.