PDA

View Full Version : is there a way to convert roms from pal to ntsc?



CheapAssGamer
01-22-2010, 09:38 AM
I really want to 'eventually' get a eprom programmer and make my own imported carts. However I'd rather mod the rom than the genny.

zilog
01-22-2010, 09:59 AM
Modding a MD is the easiest mod ever and only needs to be done once, hacking each ROM would surely be a lot more work! Besides, most PAL roms play in NTSC just fine?

CheapAssGamer
01-22-2010, 10:06 AM
Modding a MD is the easiest mod ever and only needs to be done once, hacking each ROM would surely be a lot more work! Besides, most PAL roms play in NTSC just fine?

Yeah but I got a buddy that borrows my carts sometimes and he'll never allow me to do the hardware mod. As far as I understand it shouldn't I just be able to edit the bin file with a hex editor and change the J or P to U? Is there a particular location It always resides at? Maybe I'm oversimplifying things.

zilog
01-22-2010, 10:08 AM
Not sure if this would work?

http://www.angelfire.com/games2/codehut/HowtoHackSega.txt

CheapAssGamer
01-22-2010, 11:26 AM
Thanks mate, that combined with this:

http://www.whipassgaming.com/genesisreviews/genesisimportfaq.htm

would probably do it.

FFantasy6
01-22-2010, 05:45 PM
As far as I understand it shouldn't I just be able to edit the bin file with a hex editor and change the J or P to U? Is there a particular location It always resides at? Maybe I'm oversimplifying things.

It didn't work with Contra, but I readed that work with some games.

Now I looked at Sonic Megamix rom and it has "JUE", maybe it's true that it works.

Tony H
01-22-2010, 07:47 PM
Changing the country ID letter (J, U, E, etc) in the Genesis ROM header (at ROM address $0001F0) doesn't work on all games. On the games that it doesn't work on, you have to figure out how the game determines the region, and how to bypass it.

CheapAssGamer, hacking a ROM so that it doesn't check the region is not too difficult. If you want, I can type up a quick guide. Let me know.

CheapAssGamer
01-23-2010, 10:04 AM
If you have the time that'd be greatly appreciated. Thjs forum rocks :)

retrospiel
01-23-2010, 10:12 AM
I am looking forward to this tutorial myself but for now here's a simple tool that converts stuff to NTSC-U. I haven't used it in an eternity and I doubt it does work with many games - like Tony H wrote.

madmonkey
01-23-2010, 01:28 PM
I'm also interested in the guide :)

Tony H
01-23-2010, 04:56 PM
Keep in mind that this is going to be a very quick guide, so if you have any questions, just let me know.

We'll use this ROM for our example: Castlevania - The New Generation (E). Normally, if you tried to play this cart on a US Genesis console, you would get stuck on the Konami logo screen and the game won't run. We'll hack the ROM so that it will play on a US Genesis console.

All you need is a good hex editor (I use Hex Workshop: bpsoft.com).

Open up your Castlevania ROM (must be in "bin" format) with your hex editor. You should see the words "SEGA MEGA DRIVE" in plain text on the right side. If you don't see that, it probably means your ROM isn't in bin format. Either get a different ROM that's in bin format, or convert the one you've got (use google to find a smd to bin converter).

OK, now with your ROM opened in your hex editor, click on Edit / Goto, and type in offset: 01F0. Click on "Go". The value at 01F0 should be 45 (45 in ASCII is E, E = Europe). Change the 45 to 55. Save the change and you're all set. 55 = U (United States) in ASCII.

Likewise, if you have a ROM with a 55 (U) at that address, and you change it to 45 (E), it will play on a European Mega Drive console. And it also works with 4A (J) Japanese ROMs as well. Just change the value at 01F0 to match whatever region console you have.

Keep in mind that the region ID letter at 01F0 is NOT used by all games/ROMs, so the method above won't work in every case. Here is a partial list of ROMs that do use it...

-Aah! Harimanada (J)
-Castlevania - Bloodlines
-Castlevania - The New Generation
-Cheese Cat-Astrophe Starring Speedy Gonzales
-Daze Before Christmas
-Donald Duck In Maui Mallard
-ECCO - The Tides of Time
-Jurassic Park
-Megaman the Wily Wars
-Outrun 2019
-Sonic 3
-Sonic Spinball
-Street Fighter II: Special Champion Edition
-Sub Terrania
-Super Street Fighter II
-Zero the Kamikaze Squirrel

and I'm sure there are many others.

So what do you do if the game you want to hack doesn't use the country ID letters at ROM address 01F0? That's when it gets a little complicated. You have to figure out how the game determines the region, and then you have to figure out how to bypass it. Since there's too much boring 68000 assembly to explain here, I'll just explain how to use exsisting Game Genie codes to hack your ROM.

I've made lots of regional lockout bypass Game Genie codes which can be found here: http://www.angelfire.com/games2/codehut/RegionalBypassGG.txt

All you need to do to is convert those GG codes into hex values/addresses, and hack them into your ROM, and the regional check will be bypassed. Here's how:

You'll need your hex editor, and a Game Genie to hex conversion program: http://codehut.gshi.org/ggconvc.zip

We'll use the Soleil (E) ROM as our example. If you look at the link from above, the regional lockout bypass Game Genie code for Soleil is: AABT-AA8A. Enter that GG code into the Game Genie to hex conversion program and this is what it spits out: 0003C0:6000. So you'd go to ROM address 0003C0, and change the value there to 6000. So open up Soleil with your hex editor and click on Edit / Goto and type in 03C0 and click "Go". The value there should be 6700. Change the 6700 to 6000. Save it and you're all set.

One last thing... If there is a master code listed, you may need to hack that code into the ROM as well (just like you did above). You can tell if you need a master code if after you hack your ROM, you just get a blank screen, and the game doesn't run. This happens because the checksum check fails (because you changed the ROM). This is easy to fix. Just have to figure out where the checksum routine is, and how to bypass it. Again, too much 68000 assembly involved to explain it here, but if you need a master code and can't find one, just let me know and I'll make one for you.

Also, if anyone needs regional lockout bypass codes, let me know.

madmonkey
01-23-2010, 06:38 PM
actually, I thought you'll tell us what to do if there is no gg code to begin with, and the rom doesn't use it's header.
I don't mind boring assembly :)

Tony H
01-23-2010, 06:50 PM
actually, I thought you'll tell us what to do if there is no gg code to begin with, and the rom doesn't use it's header.
I don't mind boring assembly :)

If you read through most of this link, you'll find lots of 68000 assembly info on regional bypass codes...

http://www.sega-16.com/forum/showthread.php?t=8709

madmonkey
01-23-2010, 10:25 PM
thanks, it looks like I found all I needed.
this location($a10001) is always used as a region flag, correct?

TmEE
01-23-2010, 10:50 PM
$A10000 for Word access or $A10001 for Byte access

FFantasy6
01-23-2010, 10:58 PM
Great info Tony H, thanks ;)

Cjey
12-02-2012, 07:39 AM
Hi,

does somebody know hot to fix the Iraq War 2003 rom to get it working on real hardware?
The line 01F0 is used for something else. Can`t find any GG Code for this Game.
Burning the file with my eprom burner (without any change, exept swap files) does not work on my real harware.

Tony H
12-02-2012, 12:12 PM
Hi,

does somebody know hot to fix the Iraq War 2003 rom to get it working on real hardware?
The line 01F0 is used for something else. Can`t find any GG Code for this Game.
Burning the file with my eprom burner (without any change, exept swap files) does not work on my real harware.


It's difficult to figure out problems with ROMs on real hardware, especially when the ROM works fine on emulators. I tried it on Gens and Kega Fusion and had no problems.

It appears as though the game doesn't care which region it's played on, so I don't think that's an issue.

It also appears that the game doesn't do a checksum check, so making changes to the ROM shouldn't matter.

Since the game runs fine for me, I'm working blind here, but I've got a few codes you can try. You can probably try all the codes at the same time and see if it works. To be honest, chances are the codes won't work, but it's worth a shot.

0F01F8:6008
0F0220:4E71
0EFFA6:4E75
0F086A:4E75
0F09E6:4E75

Make all those changes to the ROM (or convert them to Game Genie codes) and see what happens. A few of those codes are just bypassing subroutines at the very beginning of the game. Those subroutines may or may not be doing some kind of check that your hardware fails. Another code makes it so that some kind of Z80 bus request check will never fail.

If they don't work, there's not much more I can do to help. Maybe someone else with more knowledge of the Genesis hardware can figure something out.