As you know, this is really NES related stuff, Can you convert **GB Roms
(Z80) to NES roms? (6502). I know, There is a Codemasters version, But I want a way to convert it by a Windows/Dos executable!
Is it possible? If so, please create the program (I do not care how much time it takes to program the binary!)
This is because of 3 advantages: Colorizing **Gameboy games, porting games and it should be useful
** Only for the Original (and possibly Super) GameBoy Games, No GBC
(Unless you add external support, Which requires some to ASM hack or something like that.)
Good luck on creating the program
This thread is only for people who know (At least Advanced) Z80 AND 6502 ASM, especially Chris Covell, He should know everything of these assembly languages.
It is not possible, Z80 and 6502 are totally different. It would basically be like writing the game from scratch for the NES.
It would be amazingly, incredibly difficult work to automatically do such a conversion (and even harder to get a decent result at the same time). Even targeting one specific game would be really hard (and might as well port it the old-fashioned way at that point).
I'm sure I could do it if you wouldn't mind it running in super-slow-motion, but I wouldn't want to do it just for the fun of it.
Someone did the opposite once (turning NES ROMs into GBC ROMs), but they ran slow as hell. And I imagine it's harder for a 6502 to emulate a Z80 than the opposite, so I think that GB games converted to the NES would run even slower.
I also think that there are so many different things between the 2 systems (like video and sound hardware, memory mapping, ammount of memory and so on) that would make a direct conversion pretty much impossible...
If the conversion handled only B&W games, the differences in video hardware could be ignored if this "emulator" was pixel-based (and rendered individual pixels to CHR-RAM), but that would only make it all even slower! And that would kill the option of coloring games.
I actually tried doing NES 6502 -> 68000 conversion on my Amiga, but I gave up. I coded a converter-program that disassembled a ROM and converted opcode by opcode to a 68000 version. However I gave up since I noticed that the converted code wouldn't be as fast as I hoped it should.
A screenshot of the tool I created can be viewed here (
http://safir.amigaos.se/bildgalleri/users/2375.png) if anyone's interested.
On a related note, Hello Kitty World on the Famicom is a conversion of Balloon Fight GB on the Gameboy, and if it's not a totally automated conversion, it's at least pretty close IMO.
Making hacks for HKW was pretty tough, because for almost every variable in the game, the code does this:
load A with the variable from whatever RAM location
save it to $20-$2x in ZP
modify it in ZP
load it into A then save it back to whatever RAM location.
That always struck me as very Z-80-like.
The sound hardware is not all that different (from a programmer's perspective anyway). But the CPU and PPU (having what basically is a second BG layer for example) are quite different, and iirc the gameboy also has a timer and a scanline counter etc. Perhaps it would be an interesting project to try to do this, but I doubt you'd get any decent results out of it.
You know, Nintendo wrote an interesting document on converting NES games to GB. You oughta track that down and see about doing the same but in reverse.
Colorizing Game Boy Games can be done much easier by hacking the game to be a Game Boy Color game.
Another similar thought would be to make a program that strips $C0 from a gameboy Color only game so you can play it on a original gameboy or Super gameboy making the game retain it's respective GBC colors.
As already discussed eariler, this is downright impossible due to lower RAM of the GB system as opposed to GBC. The GBC games that can also be played on GB and SGB does only use a part of the RAM present on the GBC.
NotTheCommonDose wrote:
Another similar thought would be to make a program that strips $C0 from a gameboy Color only game so you can play it on a original gameboy or Super gameboy making the game retain it's respective GBC colors.
If you want to see what happens when you try to run a GBC game on a GB, run Drymouth in GB mode. It lacks the check. You will notice that the tilemap is quickly replaced by the attribute table, making the game unplayable.
NotTheCommonDose wrote:
...so you can play it on a original gameboy or Super gameboy making the game retain it's respective GBC colors.
I don't think the Super Gameboy can display as many colors as the GBC either. I'm not sure, but I think the coloring scheme is very different between those two.
Dymouth is indeed unplayable in GB mode. All GBC games may not be like this an example is Wario Land 3.
Someone start getting their ass cracking on that Z3proto fake mockup.
NotTheCommonDose wrote:
Dymouth is indeed unplayable in GB mode. All GBC games may not be like this an example is Wario Land 3.
Several earlier GBC games had both GB and GBC mode; it's definitely something the developer needed to support.