It is currently Tue Dec 12, 2017 1:01 pm

All times are UTC - 7 hours



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 new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Wed Jan 13, 2016 3:01 pm 
Offline

Joined: Sat Mar 29, 2014 10:01 pm
Posts: 107
Location: Australia
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:

Quote:
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


Quote:
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?


Top
 Profile  
 
PostPosted: Wed Jan 13, 2016 3:39 pm 
Offline

Joined: Mon Jan 23, 2012 11:27 pm
Posts: 141
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.


Top
 Profile  
 
PostPosted: Thu Jan 14, 2016 3:46 pm 
Offline

Joined: Sat Mar 29, 2014 10:01 pm
Posts: 107
Location: Australia
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.


Top
 Profile  
 
PostPosted: Thu Jan 14, 2016 4:20 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5891
Location: Canada
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group