Introduction
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:
- Some US games will not run on my european device.
- On 50Hz devices, games run 15% slower due to the reduced frame rate.
- Several games on european devices have borders at the top and at the bottom of the screen.
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:
- A device can be 50Hz or 60Hz.
- A device can support english or japanese language.
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.
Theory
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:
- 0001F0h: The ROM cartridge contains a list of countries in which the product can be released (e.g. J, E or U).
- A10001h: The version register indicates whether a device is a japanese or an english model. It also contains a flag which can be read to check whether the Mega Drive is in 50Hz or 60Hz mode.
- C00004h: The status register contains a 50Hz/60Hz flag too.
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.
Implemention
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:
Demonstration
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:
Update 28.08.16
Credits to Björn Vermöhlen for informing me about some errors in this blog article. I mixed up the terms 50Hz, 60Hz, PAL and NTSC.