In terms of developing a PowerPak mapper and using that, how difficult would that be?tepples wrote:Not "an actual NES" but "an actual Nintendo MMC3 chip". An actual NES connected to a Game Pak containing an MMC3-clone CPLD that uses a different algorithm for the scanline counter (perhaps based on PPU A13 not A12) should run the game as intended. But then we first have to figure out how to make an MMC3-clone CPLD in the first place.
Mario Adventure ( SMB3 Hack ) on real Hardware !!
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.
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.
Any new stuff ???
So anyone as do some reserch on getting super mario adventure working on real hardware !?
My TKROM-01 goes to a black screen with out of sync audio on startup...but I don't see anything that'd casue this. It works fine with regular games (SMB3 being one of course).
Has anyone tried disabling IRQs on the MMC3?
According to Nintendulator and NO$NES, The numbers 1-7 on the warp pipes at the "Warp Zone" are sprites from page $0000...which is what is probably causing most of the trouble on real MMC3s...given they can get to that point...
Also, from what I can tell, you can just fill 28000-3F000 to make a 256K chip even; it appears to work fine when emulated regardless (All default graphics pages change, making initial values moot...not to mention the uneven size would require the aditional precision that'd select the banks beside the extra data anyways).
0x15184-0x1519F in PRG code has the sprite data for the numbers on the pipes. IIRC setting the Y loc (byte 0) of each sprite ro 0xEF+ (SMB3 uses 0xF8 internally) will hide it to where timing issues wouldn't occur...
At this point I'm still looking into a solution for the first screen, and I may be able to copy the number graphics to some unused graphics space on the right-hand page, eliminating the issue there without sacrificing what you see.
Has anyone tried disabling IRQs on the MMC3?
According to Nintendulator and NO$NES, The numbers 1-7 on the warp pipes at the "Warp Zone" are sprites from page $0000...which is what is probably causing most of the trouble on real MMC3s...given they can get to that point...
Also, from what I can tell, you can just fill 28000-3F000 to make a 256K chip even; it appears to work fine when emulated regardless (All default graphics pages change, making initial values moot...not to mention the uneven size would require the aditional precision that'd select the banks beside the extra data anyways).
0x15184-0x1519F in PRG code has the sprite data for the numbers on the pipes. IIRC setting the Y loc (byte 0) of each sprite ro 0xEF+ (SMB3 uses 0xF8 internally) will hide it to where timing issues wouldn't occur...
At this point I'm still looking into a solution for the first screen, and I may be able to copy the number graphics to some unused graphics space on the right-hand page, eliminating the issue there without sacrificing what you see.
Update: Disabling IRQs does not change behavior...shoot...Of course this speculation would require the PPU change to only happen after the IRQ.
I'm noticing behavior with the code that seems to change sprite paging constantly. So far I have patched the code to prevent Bit 3 of $2000 being written high...There's some aditional ANDs here-and-there (probably 5 of them too, lol)...but "Fixing" them is probably unnecessary:
I'm noticing behavior with the code that seems to change sprite paging constantly. So far I have patched the code to prevent Bit 3 of $2000 being written high...There's some aditional ANDs here-and-there (probably 5 of them too, lol)...but "Fixing" them is probably unnecessary:
Code: Select all
LDA #A8->#08 IIRC
0x3F539
0x3F5EF
0x3F646
0x3F6D8
0x3F75C
AND #FB->#F3 IIRC
0x14396
0x352C0
0x30877
0x353A7
0x353F0
LDA $xx->#A0 IIRC (Hacky; I know)
0x3F539
0x3F5EF
0x3F636
0x3F6D8
0x3F75CUpdate: I didn't notice that the graphics pages flipped at the warp zone...but the pipes still use the $1000 page like normal.
...I'm still not sure what is causing it to hang on my hardware. I've patched a total of 22 potential $1000 sprite bank changes, and still nothing but some laggy music. I've also noticed a broken branch at 0xA131 (0x34131). Goes to A135 running SLO $9D then SLO $03. Patching it to A136 to do STA $307,X seems to make more sense. This can be triggered by exiting your world map inventory (B (twice) on Zone level selection screens).
...I'm still not sure what is causing it to hang on my hardware. I've patched a total of 22 potential $1000 sprite bank changes, and still nothing but some laggy music. I've also noticed a broken branch at 0xA131 (0x34131). Goes to A135 running SLO $9D then SLO $03. Patching it to A136 to do STA $307,X seems to make more sense. This can be triggered by exiting your world map inventory (B (twice) on Zone level selection screens).
Okay, time for an update. At this point I have patched every potential write to not flip $2000 (bit 3) high.
I also notice some uncommon/undocumented opcodes executing everytime the B button is pressed to leave the items menu at a map screen (2 SLO/ASO operations to be exact). This is caused by a branch that throws the PC in the middle of a code, executing the data misaligned. I knocked the branch forward a byte and it seems to be fine now (it was already fine, this just prevents those opcodes from running).
Although this IPS patch gets us nowhere as far as a cartridge operating version, I will dump it in the case someone catches somthing obvious that I missed.
IPS Patch For NES File <-- Clicky
P.S.: This patch is comparing my expanded patch against my expanded untouched otherwise final. It works on my originial final that's 426000 bytes as well. Let me know if there's any troble out there.
I also notice some uncommon/undocumented opcodes executing everytime the B button is pressed to leave the items menu at a map screen (2 SLO/ASO operations to be exact). This is caused by a branch that throws the PC in the middle of a code, executing the data misaligned. I knocked the branch forward a byte and it seems to be fine now (it was already fine, this just prevents those opcodes from running).
Although this IPS patch gets us nowhere as far as a cartridge operating version, I will dump it in the case someone catches somthing obvious that I missed.
IPS Patch For NES File <-- Clicky
P.S.: This patch is comparing my expanded patch against my expanded untouched otherwise final. It works on my originial final that's 426000 bytes as well. Let me know if there's any troble out there.
Ok Good I will test it this weekend ! hey by the way do you think that if I add a battery to the cart the save would work !? The same modification I did to add save to my Final Fantasy cart !?
Like my posts here : http://www.ultimate-console.fr/index.ph ... f=70&t=365
Nevermind I should have a TKROM lying around !
Are you having a black screen with background music playing on your real hardware !? Or did your patch fixes this !?
Like my posts here : http://www.ultimate-console.fr/index.ph ... f=70&t=365
Nevermind I should have a TKROM lying around !
Are you having a black screen with background music playing on your real hardware !? Or did your patch fixes this !?
Like this :
Also the guy from nesreproduction told me that he have fixed all problems with this hack and can sell me the reproduction !!
Last week he told me by PM that he got it working on hardware.... asked him to send me his ready to burn eprom .bin but no answer yet !!shadowkn55
I've got it to work on an mmc3 board in the past without any further modifications to the game. The only problems that I saw were the different palettes and the status bar jumping up and down when picking up ice blocks. Other than that, it works fine. Your wiring is probably incorrect somewhere.
Also the guy from nesreproduction told me that he have fixed all problems with this hack and can sell me the reproduction !!
Funny that flagoss sent me a PM with the exact text as above:
Mario Adventure doesn't require the battery, but can save items if you decide to come back later (Not that everyone doesn't know about DD LUBSe ALL)
Technically a TSROM should work as well (This is what most SMB3 carts used originally), of course that board has no battery.
The patch seems to fix everything that'd break PPU timing (Sprites are always bank $1000), and the bad branch/undefined opcodes that I found, but this is not all of it.
When I fire it up on my TKROM board, the music plays out of sync (some channels are faster, but some are slower) and the screen is black, hence the word incomplete in the ips patch. It's good to see someone else with the same issue, it means my board isn't screwy...Then again Joy Mecha Fight pretty much helped me fix all of that.
...however, once that is fixed (I'm still looking into it) it should be fine.
P.S.: I was dorking in the Desert Dares world yesterday and I see the ice block glitch that's happening in Nestopia, but I cannot duplicate it in other emulators. It happened when I went to the part of a stage that had the coins over an "Abyss" with a block and two microgombas in ice blocks above it (The stage is desert so the ice blocks would be questionable IRL). I think my SMB3 cart does this kind of status bar jumping in 8-2 when I'm higher up onscreen, but another one that was canibalized does not.
Code: Select all
Ok Good I will test it this weekend ! hey by the way do you think that if I add a battery to the cart the save would work !? The same modification I did to add save to my Final Fantasy cart !?Code: Select all
Nevermind I should have a TKROM lying around !Code: Select all
Are you having a black screen with background music playing on your real hardware !? Or did your patch fixes this !?When I fire it up on my TKROM board, the music plays out of sync (some channels are faster, but some are slower) and the screen is black, hence the word incomplete in the ips patch. It's good to see someone else with the same issue, it means my board isn't screwy...Then again Joy Mecha Fight pretty much helped me fix all of that.
...however, once that is fixed (I'm still looking into it) it should be fine.
P.S.: I was dorking in the Desert Dares world yesterday and I see the ice block glitch that's happening in Nestopia, but I cannot duplicate it in other emulators. It happened when I went to the part of a stage that had the coins over an "Abyss" with a block and two microgombas in ice blocks above it (The stage is desert so the ice blocks would be questionable IRL). I think my SMB3 cart does this kind of status bar jumping in 8-2 when I'm higher up onscreen, but another one that was canibalized does not.