PowerPak mapper 30 implementation

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

PowerPak mapper 30 implementation

Post by NovaSquirrel »

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 1014 times
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: PowerPak mapper 30 implementation

Post by dougeff »

Thanks! Can someone post this on the NESmaker forum?
nesdoug.com -- blog/tutorial on programming for the NES
Bananmos
Posts: 552
Joined: Wed Mar 09, 2005 9:08 am
Contact:

Re: PowerPak mapper 30 implementation

Post by Bananmos »

I couldn't actually find a mapper 30 for PowerPak
I suppose I didn't advertise my toy project enough then :)

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.
Flash writing obviously isn't supported.
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...
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: PowerPak mapper 30 implementation

Post by rainwarrior »

Bananmos wrote:as for the 4-screen mirroring support, there's little point in rushing a feature that (virtually) no games have yet...
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...)

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 918 times
Last edited by rainwarrior on Thu Oct 11, 2018 7:35 pm, edited 2 times in total.
WhiteHat94
Posts: 46
Joined: Fri Apr 07, 2017 5:02 pm

Re: PowerPak mapper 30 implementation

Post by WhiteHat94 »

Awesome Bananmos, now the Twin Dragons ROM works on Powerpak.

Unfortunately Nova, yours had very screwed up graphics with it when I tried earlier.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: PowerPak mapper 30 implementation

Post by NovaSquirrel »

Bananmos wrote:I suppose I didn't advertise my toy project enough then :)
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.
WhiteHat94 wrote:Unfortunately Nova, yours had very screwed up graphics with it when I tried earlier.
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.
GreyRogue
Posts: 51
Joined: Fri Dec 08, 2017 5:12 pm

Re: PowerPak mapper 30 implementation

Post by GreyRogue »

rainwarrior wrote:
Bananmos wrote:as for the 4-screen mirroring support, there's little point in rushing a feature that (virtually) no games have yet...
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...)

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.)
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?
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: PowerPak mapper 30 implementation

Post by rainwarrior »

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.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: PowerPak mapper 30 implementation

Post by rainwarrior »

I have posted a reply in the original thread about how this mapper's mirroring should be disambiguated:
viewtopic.php?p=231633#p231633
WaverBoy
Posts: 4
Joined: Mon Feb 18, 2019 1:23 pm

Re: PowerPak mapper 30 implementation

Post by WaverBoy »

Bananmos wrote:
I couldn't actually find a mapper 30 for PowerPak
I suppose I didn't advertise my toy project enough then :)

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.
Flash writing obviously isn't supported.
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...
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:
Attachments
Twin Dragons screenshot.png
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: PowerPak mapper 30 implementation

Post by rainwarrior »

Twin Dragons (full version, not demo) requires the 1-screen mirroring variant.
WaverBoy
Posts: 4
Joined: Mon Feb 18, 2019 1:23 pm

Re: PowerPak mapper 30 implementation

Post by WaverBoy »

rainwarrior wrote:Twin Dragons (full version, not demo) requires the 1-screen mirroring variant.
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.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: PowerPak mapper 30 implementation

Post by rainwarrior »

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?
WaverBoy
Posts: 4
Joined: Mon Feb 18, 2019 1:23 pm

Re: PowerPak mapper 30 implementation

Post by WaverBoy »

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?
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!
GreyRogue
Posts: 51
Joined: Fri Dec 08, 2017 5:12 pm

Re: PowerPak mapper 30 implementation

Post by GreyRogue »

WaverBoy wrote:
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?
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!
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.
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?
Post Reply