Mapper Conversion - Wizards&Warriors 3 - AxROM to GNROM

A place that you can discuss reproduction of classic titles or "licensed-for-reproduction" homebrew for personal use.

Moderators: B00daW, Moderators

Forum rules
1. NO BLATANT PIRACY. This includes reproducing homebrew less than 10 years old, with the exception of free software.
2. No advertising your reproductions, with the exception of free software.
3. Be nice. See RFC 1855 if you aren't sure what this means.
Post Reply
BennVenn
Posts: 107
Joined: Sat Mar 29, 2014 10:01 pm
Location: Australia
Contact:

Mapper Conversion - Wizards&Warriors 3 - AxROM to GNROM

Post by BennVenn »

Hello!

I'm about to start the conversion on WW3 to get it compatible with my Coolboy cart. I've never done one of these before but it appears simple enough, at least in this conversion.

What I've learnt so far is this:
AxROM
Bank select ($8000-$FFFF)
7 bit 0
---- ----
xxxM xPPP
| |||
| +++- Select 32 KB PRG ROM bank for CPU $8000-$FFFF
+------ Select 1 KB VRAM page for all 4 nametables
GNROM
Bank select ($8000-$FFFF)
7 bit 0
---- ----
xxPP xxCC
|| ||
|| ++- Select 8 KB CHR ROM bank for PPU $0000-$1FFF
++------ Select 32 KB PRG ROM bank for CPU $8000-$FFFF
As CHR RAM is fixed at 8k All I'll need to do is swap upper and lower nibbles before the write?

After trapping writes to $8000-$FFFF in the debugger i've found 2 things.
1, Bus collisions are avoided by writing to particular ROM locations with the data already there
2, There are only 4 or 5 self contained bank switch routines.

I'm not sure if Coolboy has bus collisions but I'll follow the original ROM's method of avoiding them anyway.
I'll need to find a bit of free space in the ROM somewhere to put my new routines.

I guess my question is, Is this how it is done? Modify the bank write routines? Or do I go one step further and actually change the value written to the address. Perhaps its in a lookup table? So instead of writing $04, I'll change that value in ROM to $40. Would that be the easiest way to do the conversion?
FrankWDoom
Posts: 260
Joined: Mon Jan 23, 2012 11:27 pm

Re: Mapper Conversion - Wizards&Warriors 3 - AxROM to GNROM

Post by FrankWDoom »

You're on the right track but you have a potential issue with mirroring, since AxROM has mapper controller mirroring and GxROM mirroring is fixed by the board config.

Beyond that, yes you'll have to change the values written since the prg bank value is on different bits for the respective boards. If the value is static in the rom you can replace it directly. If it's going to be dynamic you'll have to write a routine to modify the value on the fly, or somehow replace all possible bank values ahead of time. Since these boards swap out the whole 32K of prg at once, you'll need to replace the bank routines in all banks to make sure the correct one is always available.
BennVenn
Posts: 107
Joined: Sat Mar 29, 2014 10:01 pm
Location: Australia
Contact:

Re: Mapper Conversion - Wizards&Warriors 3 - AxROM to GNROM

Post by BennVenn »

It looks like mirroring will be a problem. I've disabled mirroring via trapping in the debugger and the game is unplayable if forced to either v or h.
User avatar
rainwarrior
Posts: 8734
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Mapper Conversion - Wizards&Warriors 3 - AxROM to GNROM

Post by rainwarrior »

AxROM is mapper controlled single screen mirroring, i.e. it uses one screen at a time, and the mapper controls which.

If it's AxROM and it has multidirectional scrolling + status bar like W&W does, it's pretty safe to say it needs to use both screens, so you're SOL without a mapper control for it.
Post Reply