PowerPak mapper 30 implementation
Moderator: Moderators
- NovaSquirrel
- Posts: 507
- Joined: Fri Feb 27, 2009 2:35 pm
- Location: Fort Wayne, Indiana
- Contact:
PowerPak mapper 30 implementation
I couldn't actually find a mapper 30 for PowerPak (and this actually links to an Everdrive one?) so I went and wrote (another?) one just in case. Troll Burner works, and it should work with Single Screen mirroring mode too but that's untested. Flash writing obviously isn't supported.
- Attachments
-
- mapper30.zip
- MAP1E.map and source code (compile with Loopy's examples)
- (17.38 KiB) Downloaded 1068 times
Re: PowerPak mapper 30 implementation
Thanks! Can someone post this on the NESmaker forum?
nesdoug.com -- blog/tutorial on programming for the NES
Re: PowerPak mapper 30 implementation
I suppose I didn't advertise my toy project enough thenI couldn't actually find a mapper 30 for PowerPak

Guess the only difference is yours doesn't seem to handle the 4-screen mirroring variant proposed by InfiniteNESlives? OTOH, I know of no actual homebrew that uses this, and not even the NESmaker Mapper30 variants shipped with NESmaker turned out to.
I've been thinking some limited support for flash writing would be possible. The bigger work would be updating the Powerpak "plugins" to write it back to the CF. But then again, as for the 4-screen mirroring support, there's little point in rushing a feature that (virtually) no games have yet...Flash writing obviously isn't supported.
- rainwarrior
- Posts: 8759
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: PowerPak mapper 30 implementation
Black Box Challenge is the one finished game I know of relying on it. It was never distributed as a ROM though. (I think Roth made a test ROM for mapper 30 4-screen at some point...)Bananmos wrote:as for the 4-screen mirroring support, there's little point in rushing a feature that (virtually) no games have yet...
Edit: Here's the test.
Edit: This also makes me realize we never made an official statement as to how to use the mirroring bits.
FCEUX currently implements:
Header: "Horizontal mirroring + 4-screen" = 1-screen
Header: "Vertical mirroring + 4-screen" = 4-screen
(The linked test ROM expects the opposite. I've attached a modified version of it with the H/V bit flipped to match what FCEUX does. The ROM should display 4 different title screens when you press B, though it seems to mess up the CHR for the 4th one it does correctly have 4 unique nametables.)
- Attachments
-
- UNROM512_4screen_test_new_header.nes
- (512.02 KiB) Downloaded 953 times
Last edited by rainwarrior on Thu Oct 11, 2018 7:35 pm, edited 2 times in total.
-
- Posts: 49
- Joined: Fri Apr 07, 2017 5:02 pm
Re: PowerPak mapper 30 implementation
Awesome Bananmos, now the Twin Dragons ROM works on Powerpak.
Unfortunately Nova, yours had very screwed up graphics with it when I tried earlier.
Unfortunately Nova, yours had very screwed up graphics with it when I tried earlier.
- NovaSquirrel
- Posts: 507
- Joined: Fri Feb 27, 2009 2:35 pm
- Location: Fort Wayne, Indiana
- Contact:
Re: PowerPak mapper 30 implementation
Really needs to be on the big "master" list of 3rd party PowerPak mappers on the wiki, which I see was updated to point to this thread? Good enough probably.Bananmos wrote:I suppose I didn't advertise my toy project enough then
Yeah, I only tested on Troll Burner and nothing else because I didn't have any other mapper 30 ROMs, so that's all I had to verify against. I guess it's not worth trying to fix it if there is in fact a working one.WhiteHat94 wrote:Unfortunately Nova, yours had very screwed up graphics with it when I tried earlier.
Re: PowerPak mapper 30 implementation
So I implemented this version (vertical +4screen = 4screen), as stated on the wiki. This works for Black Box Challenge. Unfortunately, this is the opposite of the mapper 30 by Bananmos above, and it looks like Twin Dragons requires the version Bananmos used. It looks like existing releases are not compatible with one method. Does this mean there is no standard for this? Do we know how many existing games require one or the other method for the 4 screen bit?rainwarrior wrote:Black Box Challenge is the one finished game I know of relying on it. It was never distributed as a ROM though. (I think Roth made a test ROM for mapper 30 4-screen at some point...)Bananmos wrote:as for the 4-screen mirroring support, there's little point in rushing a feature that (virtually) no games have yet...
Edit: Here's the test.
Edit: This also makes me realize we never made an official statement as to how to use the mirroring bits.
FCEUX currently implements:
Header: "Horizontal mirroring + 4-screen" = 1-screen
Header: "Vertical mirroring + 4-screen" = 4-screen
(The linked test ROM expects the opposite. I've attached a modified version of it with the H/V bit flipped to match what FCEUX does. The ROM should display 4 different title screens when you press B, though it seems to mess up the CHR for the 4th one it does correctly have 4 unique nametables.)
- rainwarrior
- Posts: 8759
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: PowerPak mapper 30 implementation
The standard is what's currently on the wiki. (It is not widely implemented yet.)
The reason it still seems nebulous is probably that there were no relevant publicly released ROMs until only two months ago when Black Box Challenge was released as free.
What Twin Dragons ROM are you referring to? The demo ROM is mapper 28. I haven't seen a public release of the full ROM.
The reason it still seems nebulous is probably that there were no relevant publicly released ROMs until only two months ago when Black Box Challenge was released as free.
What Twin Dragons ROM are you referring to? The demo ROM is mapper 28. I haven't seen a public release of the full ROM.
- rainwarrior
- Posts: 8759
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: PowerPak mapper 30 implementation
I have posted a reply in the original thread about how this mapper's mirroring should be disambiguated:
viewtopic.php?p=231633#p231633
viewtopic.php?p=231633#p231633
Re: PowerPak mapper 30 implementation
I tried your mapper on my PowerPak, and Twin Dragons boots up and runs, the opening title screen and cutscenes play fine, but when you start the gameplay it's broken and unplayable as seen in this screenshot I just took:Bananmos wrote:I suppose I didn't advertise my toy project enough thenI couldn't actually find a mapper 30 for PowerPak
Guess the only difference is yours doesn't seem to handle the 4-screen mirroring variant proposed by InfiniteNESlives? OTOH, I know of no actual homebrew that uses this, and not even the NESmaker Mapper30 variants shipped with NESmaker turned out to.
I've been thinking some limited support for flash writing would be possible. The bigger work would be updating the Powerpak "plugins" to write it back to the CF. But then again, as for the 4-screen mirroring support, there's little point in rushing a feature that (virtually) no games have yet...Flash writing obviously isn't supported.
- rainwarrior
- Posts: 8759
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: PowerPak mapper 30 implementation
Twin Dragons (full version, not demo) requires the 1-screen mirroring variant.
Re: PowerPak mapper 30 implementation
WhiteHat94 said above that Bananmos's mapper works for Twin Dragons so that's the one I downloaded and copied to the PowerPak files folder...is this not the right one after all? I'm using the full complete Twin Dragons rom that's for sale on Broke Studios' website.rainwarrior wrote:Twin Dragons (full version, not demo) requires the 1-screen mirroring variant.
- rainwarrior
- Posts: 8759
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: PowerPak mapper 30 implementation
Looking at Bananmos' verlog, it looks like it supports 1-screen and 4-screen but the assignments are backwards, unfortunately.
So, if you have a hex editor, you can change a single bit in the ROM to make it work with the backwards assignment.
Byte $6 (the 7th byte) of the iNES ROM should be $E8. Change it to $E9 and it should work.
Though if you have a copy of the downloaded ROM on hand, could you confirm for me that it is actually using $E8 in this byte?
So, if you have a hex editor, you can change a single bit in the ROM to make it work with the backwards assignment.
Byte $6 (the 7th byte) of the iNES ROM should be $E8. Change it to $E9 and it should work.
Though if you have a copy of the downloaded ROM on hand, could you confirm for me that it is actually using $E8 in this byte?
Re: PowerPak mapper 30 implementation
Rainwarrior sir, that is the answer! I just hex-edited my first file ever, and it worked! The ROM is indeed using E8 in that byte. Changed it to E9, loaded it onto my PowerPak, and presto! Thank you SO MUCH!rainwarrior wrote:Looking at Bananmos' verlog, it looks like it supports 1-screen and 4-screen but the assignments are backwards, unfortunately.
So, if you have a hex editor, you can change a single bit in the ROM to make it work with the backwards assignment.
Byte $6 (the 7th byte) of the iNES ROM should be $E8. Change it to $E9 and it should work.
Though if you have a copy of the downloaded ROM on hand, could you confirm for me that it is actually using $E8 in this byte?
Re: PowerPak mapper 30 implementation
I might have gotten some bad information before (or maybe they've switched it since then?). If the version they have for download as the official release uses E8, then I think that makes it and Black Box Challenge compatible.WaverBoy wrote:Rainwarrior sir, that is the answer! I just hex-edited my first file ever, and it worked! The ROM is indeed using E8 in that byte. Changed it to E9, loaded it onto my PowerPak, and presto! Thank you SO MUCH!rainwarrior wrote:Looking at Bananmos' verlog, it looks like it supports 1-screen and 4-screen but the assignments are backwards, unfortunately.
So, if you have a hex editor, you can change a single bit in the ROM to make it work with the backwards assignment.
Byte $6 (the 7th byte) of the iNES ROM should be $E8. Change it to $E9 and it should work.
Though if you have a copy of the downloaded ROM on hand, could you confirm for me that it is actually using $E8 in this byte?
Would that lock in four screen/horizontal = 1 screen; four-screen/vertical = four screen for all official releases? In which case, Bananmos should update the powerpak driver?