It is currently Wed Oct 18, 2017 3:16 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Sun Sep 11, 2005 12:14 am 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3943
How exactly does the bankswitching for Bill & Ted's Excellent Video Game adventure work? I noticed that the interrupt handler(?) was performing INC FFFF. Does that write FF (value in rom at FFFF) then write 00 (FF+1)? Any other surprise writes to ROM areas?

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 11, 2005 12:19 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1389
That particular game doesn't seem to work properly unless I have my MMC1 either ignore the second write OR reset when switching registers. Since the former is exceedingly difficult in my current mapper interface, I ended up having to go with the 2nd method just to get that game to run.

Though, if I removed that hack (and made said game unplayable), I doubt anybody would ever notice... ^_^
(well, other than you)

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 11, 2005 12:41 am 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3943
Is there any simple ASM modification that can be applied to the rom to use a much saner method of bankswitching?

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 11, 2005 3:44 am 
Offline

Joined: Mon Sep 20, 2004 11:13 am
Posts: 134
Location: Sweden
If I recall, it does an RMW on one of the bank registers - something like INC $FFFF. This means resetting the mapper and then writing 0 to the buffer (unless the emulator does what Q described).
Perhaps you could replace it with a lda $80/sta $FFFF ? However, that would mean inserting extra bytes in the middle of things, it could mess up other parts of the game.

-Martin


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 11, 2005 9:02 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1389
A better solution would be to change the address/data incremented so it's between 0x80 and 0xFE (inclusive).

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 11, 2005 9:35 am 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
Could there be some manditory time delay between register writes for them to have effect? Kind of like how the MMC3 needs to have 9 or so PPU cycles between A12 rising edges for the counter to decrement... maybe MMC1 needs at least 2 CPU cycles between register writes?


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 13 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