I was successful in getting the game to run it's PRG-ROM properly as an MMC3 rom. The gfx are still a wip, but gameplay/music/sfx are all intact and work properly.
I've been in the process of creating my MMC3 chr routines so that the gfx can be displayed properly, but i'm having difficulty.
The MMC2 is able to swap the ppu consistently without any visual changes from loading 2 different pages at once within $1000-$1FFF. And it's able to do this without an irq/sprite 0 going on.
Within MTP, PPU $1000-$1FFF is the one that gets the most attention. I'm able to get some of the gfx to properly load, but, all the games text, crowd, various icons, are within the first chr page, page 0. This is somehow loaded and stored into the PPU, so that 3 different things are being displayed.
1, current chr page within $0-$FFF PPU.
2, current chr page within $1000-$1FFF ppu.
3, chr page 0 from $1000-$1FFF ppu.
I have tried various different methods of trying to get a 3rd PPU set to be stored into mmc3's $8001-$8001 for display within $1000-$1FFFppu, I tried making it load 00 as either A & Y, storing into $8000-1,A $8000-1,Y, but I don't get the correct desired result.
I tried using register $1E which I believe is a frame counter, to AND 01, and load page 0 into PPU $1000-$1FFF, and if it's not AND 01, to continue displaying what was currently in $1000-$1FFF, it swaps, but it displays the 2 pages swapping on screen.
Then, I tried creating an interrupt using $FFFE, I would force a BRK so that $FFFE would point to my LDA #$00 to store into $1000-$1FFF, but all that does is simply overtake $1000-$1FFF, meaning it's just constantly displaying page 0.
So what I would like to know is, does MMC3 have a way to load chr tiles from other chr pages that are not currently within the ppu, without splitting the screen like in Super Mario Bros. 3?
The only way I've ever seen this was with SMB3, but it uses an irq split to load a 3rd chr page.
So is there any way of using an interrupt to display a 3rd chr page within $1000-$1FFF? Once I can figure this out, MTP will be finished and completed as an MMC3 conversion.
Thank you!
-infidelity
I've been in the process of creating my MMC3 chr routines so that the gfx can be displayed properly, but i'm having difficulty.
The MMC2 is able to swap the ppu consistently without any visual changes from loading 2 different pages at once within $1000-$1FFF. And it's able to do this without an irq/sprite 0 going on.
Within MTP, PPU $1000-$1FFF is the one that gets the most attention. I'm able to get some of the gfx to properly load, but, all the games text, crowd, various icons, are within the first chr page, page 0. This is somehow loaded and stored into the PPU, so that 3 different things are being displayed.
1, current chr page within $0-$FFF PPU.
2, current chr page within $1000-$1FFF ppu.
3, chr page 0 from $1000-$1FFF ppu.
I have tried various different methods of trying to get a 3rd PPU set to be stored into mmc3's $8001-$8001 for display within $1000-$1FFFppu, I tried making it load 00 as either A & Y, storing into $8000-1,A $8000-1,Y, but I don't get the correct desired result.
I tried using register $1E which I believe is a frame counter, to AND 01, and load page 0 into PPU $1000-$1FFF, and if it's not AND 01, to continue displaying what was currently in $1000-$1FFF, it swaps, but it displays the 2 pages swapping on screen.
Then, I tried creating an interrupt using $FFFE, I would force a BRK so that $FFFE would point to my LDA #$00 to store into $1000-$1FFF, but all that does is simply overtake $1000-$1FFF, meaning it's just constantly displaying page 0.
So what I would like to know is, does MMC3 have a way to load chr tiles from other chr pages that are not currently within the ppu, without splitting the screen like in Super Mario Bros. 3?
The only way I've ever seen this was with SMB3, but it uses an irq split to load a 3rd chr page.
So is there any way of using an interrupt to display a 3rd chr page within $1000-$1FFF? Once I can figure this out, MTP will be finished and completed as an MMC3 conversion.
Thank you!
-infidelity