It is currently Mon Oct 23, 2017 12:10 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 15 posts ] 
Author Message
 Post subject: a few MMC3 questions
PostPosted: Tue Mar 29, 2005 12:30 am 
Offline
User avatar

Joined: Tue Dec 21, 2004 8:35 pm
Posts: 600
Location: Argentina
1- Which is the maximum prg-rom mem that a mmc3 cart can support?
I dont know if its a rom problem or what cos some games write $fe to $8001 and of course the game doesnt have to much memory.
I mean wich value should i "AND" the $8001 value?
I have been trying with different values and some games work and others doesnt.

2 - Is IRQ generation mandatory? wich games uses it?

3 - Is it ok when ctrl reg $8000 is written to hard wire prg-rom according to bit 6?
3.1 - The bank to hardwire is : (cPrgRomsBanks - 2) * 0x2000; ???

4 - Why command "1" copies to ppu $800 or $1800 2k or mem. doing so will pass in -1- the limit of pt0 and in -2- will write into name tables.

Help Please

_________________
ANes


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 29, 2005 4:25 am 
Offline
User avatar

Joined: Thu Mar 24, 2005 3:17 pm
Posts: 355
And 1 from me too, which has probably been overlooked in the 'some questions' thread :P


nesdev wiki MMC3: "The MMC3 scanline counter is based entirely on PPU A12, triggered on rising edges (after the line remains low for a sufficiently long period of time)."

Has it ever been measured how many cycles this sufficiently long period of time is ? I'm currently guessing it at each hblank, but that gives problems in some games (could also be due to something else of course).

---

as for your questions, although with my little knowledge i'll try to answer:

1: i don't know what's the maximum prg size mmc3 supports, i think it's unimportant.
8001 cmd 0,1: AND with 0xfe AND number of 1k vrom banks-1.
cmd 2,3,4,5: AND with number of 1k vrom banks-1.
cmd 6,7: AND with number of 8k prg banks-1.

2: yes, almost all mmc3 games which use split screen scrolling use irqs. one i know that doesn't use it is super mario bros 2.

3, 3-1: i don't understand

4: it'll copy to 800-fff, or 1800-1fff, there's no such thing as passing the limit of pt0 or writing into nametables.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 29, 2005 4:35 am 
Offline
User avatar

Joined: Tue Dec 21, 2004 8:35 pm
Posts: 600
Location: Argentina
thanks a lot !!! :)

_________________
ANes


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 29, 2005 6:33 am 
Offline

Joined: Fri Nov 12, 2004 5:02 am
Posts: 40
hap wrote:
nesdev wiki MMC3: "The MMC3 scanline counter is based entirely on PPU A12, triggered on rising edges (after the line remains low for a sufficiently long period of time)."

Has it ever been measured how many cycles this sufficiently long period of time is ? I'm currently guessing it at each hblank, but that gives problems in some games (could also be due to something else of course).


Not that I'm aware of. I simply block it for 16 PPU cycles after each toggle and that has worked fine for me so far.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 30, 2005 3:06 am 
Offline
User avatar

Joined: Thu Mar 24, 2005 3:17 pm
Posts: 355
Thanks, though it didn't have effect on the problems in my MMC3 emulation (the bottom part of the screen shakes by 1 line when vertical scrolling is used, eg. smb3 statusbar when you're flying)... *scratches forehead* I'll figure it out.. sooner or later ;p


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 31, 2005 2:20 pm 
Offline

Joined: Fri Nov 12, 2004 5:02 am
Posts: 40
It could be that your DMC DMA timing is off.
Speaking of SMB3, does anyone know if the leftmost tile at the beginning of the statusbar flickers on the real thing as well?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 31, 2005 5:06 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19120
Location: NE Indiana, USA (NTSC)
A few tiles at the left side of the area between SMB3's playfield and status bar flicker on my NES.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 31, 2005 5:44 pm 
Offline

Joined: Mon Sep 27, 2004 11:51 pm
Posts: 101
Marty wrote:
I simply block it for 16 PPU cycles after each toggle and that has worked fine for me so far.


What exactly do you mean by that? Do you just update the counter on A12 rising edges and then not allow the counter to be decremented for 16 cycles?

_________________
http://hydesprojects.cjb.net/


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 31, 2005 6:50 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3064
Location: Brazil
tepples wrote:
A few tiles at the left side of the area between SMB3's playfield and status bar flicker on my NES.


Much like MegaMan 3... :)

_________________
Zepper
RockNES developer


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 01, 2005 3:46 am 
Marty wrote:
It could be that your DMC DMA timing is off.


There isn't any :P (no sound emulation yet)
But I doubt it's due to that, since many many mmc3 games show that same wrong behaviour. I've some ideas that could fix it but not yet applied them.


Top
  
 
 Post subject:
PostPosted: Fri Apr 01, 2005 4:20 am 
Offline
User avatar

Joined: Thu Mar 24, 2005 3:17 pm
Posts: 355
err.. Guest=me


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 01, 2005 4:25 am 
Offline

Joined: Fri Nov 12, 2004 5:02 am
Posts: 40
Hyde wrote:
What exactly do you mean by that? Do you just update the counter on A12 rising edges and then not allow the counter to be decremented for 16 cycles?

Exactly, on every rising edge I clock the counter only if 16 or more PPU cycles have elapsed since the previous occurred. As for 16 cycles, it's a nice and fit number and big enough to prevent the counter from doing its thing on *every* upper pattern-table access during an active scanline. The BTLTEK2A cart (mapper 90) on the other hand does not seem to care at all, it goes ahead and clock the counter every chance it gets.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 01, 2005 9:15 am 
Offline

Joined: Mon Sep 27, 2004 11:51 pm
Posts: 101
I implemented this on my emulator in the hopes that it would fix Star Wars (E), but nothing happened. Oh well...

_________________
http://hydesprojects.cjb.net/


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 03, 2005 4:27 pm 
Offline

Joined: Fri Nov 12, 2004 5:02 am
Posts: 40
Hyde wrote:
I implemented this on my emulator in the hopes that it would fix Star Wars (E), but nothing happened. Oh well...

The IRQ counter goes supposedly off one time during VBLANK when the game accesses the palette via $2006/$2007.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 04, 2005 1:43 pm 
Offline

Joined: Mon Sep 27, 2004 11:51 pm
Posts: 101
Man, thanks for pointing that out. I was not allowing the counter to be updated during VBlanks, but now I do and everything works just fine. You da man now, dog!

_________________
http://hydesprojects.cjb.net/


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

All times are UTC - 7 hours


Who is online

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