I like playing retro games on my old consoles. Unfortunatly, some of them have region locks. E.g. my Mega Drive 2 is locked to 50Hz and can not switch to 60Hz. This leads to several disadvantages:
Therefore, i did some research how this problem can be solved. I found several articles, read the Mega Drive specifications and finally grepped my soldering iron to add a switch which sets the device either in 50Hz or 60Hz mode. This article describes the results.
I am not the first one who wants to mod his Mega Drive. You can read good articles on the net. Examples can be found here, here or here. According to them, a Mega Drive can be configured the following way:
The region lock itself is implemented by the game cartridge. E.g. my european Sonic 3 verifies on startup, whether the Mega Drive its running on is in 50Hz mode. If not, an error message is shown and the game will not start. Television mode and language of a Mega Drive are set with two input pins which can be either 0V or 5V. The approach from the tutorials from above is to replace the hardwired connections on the circuit board with switches. The advantage: If a game requires a certain TV mode or language to start, the user can configure his Mega Drive as needed. Furthermore, several 50Hz games without region lock run on european Mega Drives, which are switched to 60Hz, on normal speed without these annoying borders.
The tutorials from above describe where to solder cables and switches on your Mega Drive mainboard. Although they are quite good, there are many Mega Drive revisions out there. If your Mega Drive version differs, you can run into problems when soldering wires without knowing what you are actually doing. Therefore, I recommand to read the technical specifications too. This way, you can easily adjust things if your mainboard differs from the ones shown in the modding tutorials.
According to the GENESIS Technical Overview, the following memory locations can be used to receive region information:
I have not reversed a game, but I assume it compares its list of supported countries with the content of the version register and either starts or stops execution based on the result. The values of the version and status registers seem to be set based on pins of the corresponding chips. A10001h is part of the I/O area. Early Mega Drives have two I/O chips (a complete list can be found here). One of them is the 315-5309. Its layout contains a LANG pin which controls the language information of the version register.
C00004h is part of the Video Display Processor (VDP). If you take a look at its pin layout, you find the 50Hz/60Hz input signal. So basically, our task is simple: Solder wires to 50Hz/60Hz, LANG, Ground, Vcc and connect them with SPDT switches.
After reading all the necessary articles, i took my screwdriver and opened the Mega Drive. Opening the case is very simple, just remove the case screws, shielding screws, two screws on the mainboard near the cartridge slot and you are done. The result looks like this:
If you take a look at my mainboard, you see the chip in the center. The IC is called 315-5660 and it combines in newer Mega Drive revisions (like my Mega Drive 2) several Sega custom chips at once. Pin 46 and 107 configure TV standard and language preferences. At this point, my blog articles differs a little bit from the modding tutorials previously linked: I am only interested in a 50Hz/60Hz mod. and focus on pin 46 in this blog entry. My Mega Drive 2 is an european version. Therefore I had to cut its connection to ground and replace it with a wire to the SPDT switch. My attempts are documented here:
My first approach was to stick to the mmmonkey tutorial. Therefore, I cut the ground connection at 1. I verified whether it worked using my multimeter. Unfortunatly, pin 46 still had contact to ground and was in 50Hz mode. I did a second cut at 2. This worked and pin 46 was at high-impedance. Interesting aspect: When I turned on my Mega Drive 2, it was in 60Hz mode. Maybe the 315-5660 has some internal pull up restistors? Anyway, almost done I removed to isolation at position 3 with a knife (scratch until you see the copper) and soldered a cable there. I am bad in soldering and had to fix the cable with some glue before the whole approach was successful. Again, I used the mmmonkey tutorial to add a Ground and a Vcc connection. The final result looks like this:
The result works quite good. My european games without region lock (like Sonic 1) start in 60Hz mode in the originally intended speed. Top and bottom borders are gone too. Some games with region lock can be tricked. A good example is Aladdin. The 50Hz version will not start if the device is in 60Hz mode. As a solution, you can start Aladdin in 50Hz mode and switch to 60Hz when the game menu pops up. Take a look at these two videos to see the modded device in action: