PowerPak: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (→‎PowerMappers: savestates are only for its contained mappers, not all mappers)
(Add the patched N.MAP loader to the recommended setup.)
 
(22 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The '''PowerPak''' is a flash cartridge made by [[RetroUSB]]. It uses an [[FPGA]] to emulate a wide variety of [[mappers]], allowing the user to store a large collection of ROMs on a single Compact Flash card and run them on an NES. It is widely used by homebrew NES developers to test their software. It's also compatible with the [[CopyNES]].
The '''PowerPak''' is a [[:Category:Flash Cartridge|Flash Cartridge]] made by [[RetroUSB]]. It uses an [[FPGA]] to emulate a wide variety of [[mappers]], allowing the user to store a large collection of ROMs on a single Compact Flash card and run them on an NES. It is widely used by homebrew NES developers to test their software. It's also compatible with the [[CopyNES]].


In addition to NES ROMs, the PowerPak is able to play [[FDS]] disk images, as well as [[NSF]] music files.
In addition to NES ROMs, the PowerPak is able to play [[FDS]] disk images, as well as [[NSF]] music files.
Line 8: Line 8:
* PRG size: 512 KB (252 KB for NSF)
* PRG size: 512 KB (252 KB for NSF)
* CHR size: 512 KB
* CHR size: 512 KB
* Auxiliary PRG-RAM size: 32 KB


Product page: [http://www.retrousb.com/product_info.php?products_id=34 http://www.retrousb.com/product_info.php?products_id=34]
Product page: [http://www.retrousb.com/product_info.php?products_id=34 http://www.retrousb.com/product_info.php?products_id=34]
See also: [[Everdrive N8]] - A similar product by Krikzz.


__TOC__
__TOC__
Line 21: Line 20:
* Begin with the Official mapper set.
* Begin with the Official mapper set.
* Add Loopy's mapper set on top, replacing files.
* Add Loopy's mapper set on top, replacing files.
* Add the PowerMapper set on top if you want savestate support.
* Add the PowerMapper set on top if you want savestate support (see its readme).
* Add any of the additional single mappers if needed.
* Add any of the additional single mappers if needed.
* Replace the N.MAP loader with a [https://forums.nesdev.org/viewtopic.php?p=283943#p283943 patched version] so newer ROMs with [[NES_2.0#Default_Expansion_Device | header byte 15 set]] can be loaded.


=== PowerMappers ===
=== PowerMappers ===
Line 47: Line 47:


Known problems:
Known problems:
* Mapper 4 IRQ is has a reliability problem on some systems, causing shaky status bars and other similar problems.
* Mapper 4 IRQ is delayed by 2 cycles like [[RAMBO-1]] to work around noise issues with PPU A12. This does not significantly affect most games.
* Mapper 69 does not support the [[Sunsoft 5B audio|Sunsoft 5B expansion audio]] used in Gimmick!
* Mapper 69 does not support the [[Sunsoft 5B audio|Sunsoft 5B expansion audio]] used in Gimmick!


Line 68: Line 68:
* [[FDS]]
* [[FDS]]
* [[NSF]]        (no MMC5 audio, no VRC7 audio)
* [[NSF]]        (no MMC5 audio, no VRC7 audio)
Known problems:
* Mapper 4 IRQ has reliability issues due to PPU A12 noise, causing status bars etc. to jitter up and down on some systems. (A fixed version is available: [//forums.nesdev.org/viewtopic.php?t=24229 forum thread].)


Notes:
Notes:
Line 90: Line 93:
* [[GTROM]] ([[iNES Mapper 111|111]]): [//forums.nesdev.org/viewtopic.php?f=9&t=16631 forum thread]
* [[GTROM]] ([[iNES Mapper 111|111]]): [//forums.nesdev.org/viewtopic.php?f=9&t=16631 forum thread]
* Magic Kid GooGoo ([[iNES Mapper 190|190]]): [//forums.nesdev.org/viewtopic.php?f=9&t=15682 forum thread]
* Magic Kid GooGoo ([[iNES Mapper 190|190]]): [//forums.nesdev.org/viewtopic.php?f=9&t=15682 forum thread]
* [[UNROM 512]] ([[iNES Mapper 030|030]]): [//forums.nesdev.org/viewtopic.php?f=9&t=17907 forum thread]
* [[UNROM 512]] ([[iNES Mapper 030|030]]): [//forums.nesdev.org/viewtopic.php?p=236715#p236715 forum post]
* [[UXROM 512]] Support up to 512k PRG: [//forums.nesdev.org/viewtopic.php?t=24230 forum post]
* [[SXROM]] ([[iNES Mapper 001|001]]): [https://neilbaldwin.github.io/nes-audio/ packaged with PR8], but created by bunnyboy
* NES 2.0 [[NES 2.0#Default Expansion Device|Default Expansion Device]] header incompatibility fix: [//forums.nesdev.org/viewtopic.php?p=283943#p283943 forum thread]
* Nova's Rad PowerPak Menu: [//https://forums.nesdev.org/viewtopic.php?t=12091 forum thread] (alternative PowerPak menu)


=== Offical Mappers V1.34 ===
=== Offical Mappers V1.35b ===


The last official release of mappers was in 2010. It supports a wide variety of popular mappers.
The last official release of mappers was in 2010. It supports a wide variety of popular mappers.


Download: [http://www.retrousb.com/product_info.php?products_id=34 http://www.retrousb.com/product_info.php?products_id=34]
Download: [https://www.retrousb.com/product_info.php?products_id=34 here]


Supported mappers:
Supported mappers:
{| class="wikitable"
{| class="wikitable"
|-
|-
| [[iNES Mapper 000|000]]
| {{yes|[[iNES Mapper 000|000]]}}
| [[iNES Mapper 001|001]]
| {{yes|[[iNES Mapper 001|001]]}}
| [[iNES Mapper 002|002]]
| {{yes|[[iNES Mapper 002|002]]}}
| [[iNES Mapper 003|003]]
| {{yes|[[iNES Mapper 003|003]]}}
| [[iNES Mapper 004|004]]
| {{yes|[[iNES Mapper 004|004]]}}
| [[iNES Mapper 005|005]]
| {{yes|[[iNES Mapper 005|005]]}}
| --- <!-- [[iNES Mapper 006|006]] -->
| {{no|[[iNES Mapper 006|006]]}}
| [[iNES Mapper 007|007]]
| {{yes|[[iNES Mapper 007|007]]}}
| --- <!-- [[iNES Mapper 008|008]] -->
| {{no|[[iNES Mapper 008|008]]}}
| [[iNES Mapper 009|009]]
| {{yes|[[iNES Mapper 009|009]]}}
| [[iNES Mapper 010|010]]
| {{yes|[[iNES Mapper 010|010]]}}
| [[iNES Mapper 011|011]]
| {{yes|[[iNES Mapper 011|011]]}}
| --- <!-- [[iNES Mapper 012|012]] -->
| {{no|[[iNES Mapper 012|012]]}}
| [[iNES Mapper 013|013]]
| {{yes|[[iNES Mapper 013|013]]}}
| --- <!-- [[iNES Mapper 014|014]] -->
| {{no|[[iNES Mapper 014|014]]}}
| --- <!-- [[iNES Mapper 015|015]] -->
| {{no|[[iNES Mapper 015|015]]}}
|-
|-
| --- <!-- [[iNES Mapper 016|016]] -->
| {{no|[[iNES Mapper 016|016]]}}
| --- <!-- [[iNES Mapper 017|017]] -->
| {{no|[[iNES Mapper 017|017]]}}
| --- <!-- [[iNES Mapper 018|018]] -->
| {{no|[[iNES Mapper 018|018]]}}
| [[iNES Mapper 019|019]]
| {{yes|[[iNES Mapper 019|019]]}}
| --- <!-- [[iNES Mapper 020|020]] -->
| {{no|[[iNES Mapper 020|020]]}}
| [[iNES Mapper 021|021]]
| {{yes|[[iNES Mapper 021|021]]}}
| [[iNES Mapper 022|022]]
| {{yes|[[iNES Mapper 022|022]]}}
| [[iNES Mapper 023|023]]
| {{yes|[[iNES Mapper 023|023]]}}
| [[iNES Mapper 024|024]]
| {{yes|[[iNES Mapper 024|024]]}}
| [[iNES Mapper 025|025]]
| {{yes|[[iNES Mapper 025|025]]}}
| --- <!-- [[iNES Mapper 026|026]] -->
| {{no|[[iNES Mapper 026|026]]}}
| --- <!-- [[iNES Mapper 027|027]] -->
| {{no|[[iNES Mapper 027|027]]}}
| --- <!-- [[iNES Mapper 028|028]] -->
| {{no|[[iNES Mapper 028|028]]}}
| --- <!-- [[iNES Mapper 029|029]] -->
| {{no|[[iNES Mapper 029|029]]}}
| --- <!-- [[iNES Mapper 030|030]] -->
| {{no|[[iNES Mapper 030|030]]}}
| --- <!-- [[iNES Mapper 031|031]] -->
| {{no|[[iNES Mapper 031|031]]}}
|-
|-
| --- <!-- [[iNES Mapper 032|032]] -->
| {{no|[[iNES Mapper 032|032]]}}
| --- <!-- [[iNES Mapper 033|033]] -->
| {{no|[[iNES Mapper 033|033]]}}
| [[iNES Mapper 034|034]]
| {{yes|[[iNES Mapper 034|034]]}}
| --- <!-- [[iNES Mapper 035|035]] -->
| {{no|[[iNES Mapper 035|035]]}}
| --- <!-- [[iNES Mapper 036|036]] -->
| {{no|[[iNES Mapper 036|036]]}}
| --- <!-- [[iNES Mapper 037|037]] -->
| {{no|[[iNES Mapper 037|037]]}}
| --- <!-- [[iNES Mapper 038|038]] -->
| {{no|[[iNES Mapper 038|038]]}}
| --- <!-- [[iNES Mapper 039|039]] -->
| {{no|[[iNES Mapper 039|039]]}}
| [[iNES Mapper 040|040]]
| {{yes|[[iNES Mapper 040|040]]}}
| [[iNES Mapper 041|041]]
| {{yes|[[iNES Mapper 041|041]]}}
| --- <!-- [[iNES Mapper 042|042]] -->
| {{no|[[iNES Mapper 042|042]]}}
| --- <!-- [[iNES Mapper 043|043]] -->
| {{no|[[iNES Mapper 043|043]]}}
| --- <!-- [[iNES Mapper 044|044]] -->
| {{no|[[iNES Mapper 044|044]]}}
| --- <!-- [[iNES Mapper 045|045]] -->
| {{no|[[iNES Mapper 045|045]]}}
| --- <!-- [[iNES Mapper 046|046]] -->
| {{no|[[iNES Mapper 046|046]]}}
| [[iNES Mapper 047|047]]
| {{yes|[[iNES Mapper 047|047]]}}
|-
|-
| --- <!-- [[iNES Mapper 048|048]] -->
| {{no|[[iNES Mapper 048|048]]}}
| --- <!-- [[iNES Mapper 049|049]] -->
| {{no|[[iNES Mapper 049|049]]}}
| [[iNES Mapper 050|050]]
| {{yes|[[iNES Mapper 050|050]]}}
| --- <!-- [[iNES Mapper 051|051]] -->
| {{no|[[iNES Mapper 051|051]]}}
| --- <!-- [[iNES Mapper 052|052]] -->
| {{no|[[iNES Mapper 052|052]]}}
| --- <!-- [[iNES Mapper 053|053]] -->
| {{no|[[iNES Mapper 053|053]]}}
| --- <!-- [[iNES Mapper 054|054]] -->
| {{no|[[iNES Mapper 054|054]]}}
| --- <!-- [[iNES Mapper 055|055]] -->
| {{no|[[iNES Mapper 055|055]]}}
| --- <!-- [[iNES Mapper 056|056]] -->
| {{no|[[iNES Mapper 056|056]]}}
| --- <!-- [[iNES Mapper 057|057]] -->
| {{no|[[iNES Mapper 057|057]]}}
| --- <!-- [[iNES Mapper 058|058]] -->
| {{no|[[iNES Mapper 058|058]]}}
| --- <!-- [[iNES Mapper 059|059]] -->
| {{no|[[iNES Mapper 059|059]]}}
| --- <!-- [[iNES Mapper 060|060]] -->
| {{no|[[iNES Mapper 060|060]]}}
| [[iNES Mapper 061|061]]
| {{yes|[[iNES Mapper 061|061]]}}
| --- <!-- [[iNES Mapper 062|062]] -->
| {{no|[[iNES Mapper 062|062]]}}
| --- <!-- [[iNES Mapper 063|063]] -->
| {{no|[[iNES Mapper 063|063]]}}
|-
|-
| [[iNES Mapper 064|064]]
| {{yes|[[iNES Mapper 064|064]]}}
| --- <!-- [[iNES Mapper 065|065]] -->
| {{no|[[iNES Mapper 065|065]]}}
| [[iNES Mapper 066|066]]
| {{yes|[[iNES Mapper 066|066]]}}
| [[iNES Mapper 067|067]]
| {{yes|[[iNES Mapper 067|067]]}}
| [[iNES Mapper 068|068]]
| {{yes|[[iNES Mapper 068|068]]}}
| [[iNES Mapper 069|069]]
| {{yes|[[iNES Mapper 069|069]]}}
| [[iNES Mapper 070|070]]
| {{yes|[[iNES Mapper 070|070]]}}
| [[iNES Mapper 071|071]]
| {{yes|[[iNES Mapper 071|071]]}}
| [[iNES Mapper 072|072]]
| {{yes|[[iNES Mapper 072|072]]}}
| --- <!-- [[iNES Mapper 073|073]] -->
| {{no|[[iNES Mapper 073|073]]}}
| [[iNES Mapper 074|074]]
| {{yes|[[iNES Mapper 074|074]]}}
| [[iNES Mapper 075|075]]
| {{yes|[[iNES Mapper 075|075]]}}
| [[iNES Mapper 076|076]]
| {{yes|[[iNES Mapper 076|076]]}}
| [[iNES Mapper 077|077]]
| {{yes|[[iNES Mapper 077|077]]}}
| [[iNES Mapper 078|078]]
| {{yes|[[iNES Mapper 078|078]]}}
| [[iNES Mapper 079|079]]
| {{yes|[[iNES Mapper 079|079]]}}
|-
|-
| [[iNES Mapper 080|080]]
| {{yes|[[iNES Mapper 080|080]]}}
| [[iNES Mapper 081|081]]
| {{yes|[[iNES Mapper 081|081]]}}
| [[iNES Mapper 082|082]]
| {{yes|[[iNES Mapper 082|082]]}}
| --- <!-- [[iNES Mapper 083|083]] -->
| {{no|[[iNES Mapper 083|083]]}}
| --- <!-- [[iNES Mapper 084|084]] -->
| {{no|[[iNES Mapper 084|084]]}}
| --- <!-- [[iNES Mapper 085|085]] -->
| {{no|[[iNES Mapper 085|085]]}}
| [[iNES Mapper 086|086]]
| {{yes|[[iNES Mapper 086|086]]}}
| [[iNES Mapper 087|087]]
| {{yes|[[iNES Mapper 087|087]]}}
| [[iNES Mapper 088|088]]
| {{yes|[[iNES Mapper 088|088]]}}
| [[iNES Mapper 089|089]]
| {{yes|[[iNES Mapper 089|089]]}}
| --- <!-- [[iNES Mapper 090|090]] -->
| {{no|[[iNES Mapper 090|090]]}}
| --- <!-- [[iNES Mapper 091|091]] -->
| {{no|[[iNES Mapper 091|091]]}}
| [[iNES Mapper 092|092]]
| {{yes|[[iNES Mapper 092|092]]}}
| [[iNES Mapper 093|093]]
| {{yes|[[iNES Mapper 093|093]]}}
| [[iNES Mapper 094|094]]
| {{yes|[[iNES Mapper 094|094]]}}
| [[iNES Mapper 095|095]]
| {{yes|[[iNES Mapper 095|095]]}}
|-
|-
| [[iNES Mapper 096|096]]
| {{yes|[[iNES Mapper 096|096]]}}
| [[iNES Mapper 097|097]]
| {{yes|[[iNES Mapper 097|097]]}}
| --- <!-- [[iNES Mapper 098|098]] -->
| {{no|[[iNES Mapper 098|098]]}}
| [[iNES Mapper 099|099]]
| {{yes|[[iNES Mapper 099|099]]}}
| --- <!-- [[iNES Mapper 100|100]] -->
| {{no|[[iNES Mapper 100|100]]}}
| --- <!-- [[iNES Mapper 101|101]] -->
| {{no|[[iNES Mapper 101|101]]}}
| --- <!-- [[iNES Mapper 102|102]] -->
| {{no|[[iNES Mapper 102|102]]}}
| --- <!-- [[iNES Mapper 103|103]] -->
| {{no|[[iNES Mapper 103|103]]}}
| --- <!-- [[iNES Mapper 104|104]] -->
| {{no|[[iNES Mapper 104|104]]}}
| [[iNES Mapper 105|105]]
| {{yes|[[iNES Mapper 105|105]]}}
| --- <!-- [[iNES Mapper 106|106]] -->
| {{no|[[iNES Mapper 106|106]]}}
| --- <!-- [[iNES Mapper 107|107]] -->
| {{no|[[iNES Mapper 107|107]]}}
| --- <!-- [[iNES Mapper 108|108]] -->
| {{no|[[iNES Mapper 108|108]]}}
| --- <!-- [[iNES Mapper 109|109]] -->
| {{no|[[iNES Mapper 109|109]]}}
| --- <!-- [[iNES Mapper 110|110]] -->
| {{no|[[iNES Mapper 110|110]]}}
| --- <!-- [[iNES Mapper 111|111]] -->
| {{no|[[iNES Mapper 111|111]]}}
|-
|-
| [[iNES Mapper 112|112]]
| {{yes|[[iNES Mapper 112|112]]}}
| [[iNES Mapper 113|113]]
| {{yes|[[iNES Mapper 113|113]]}}
| --- <!-- [[iNES Mapper 114|114]] -->
| {{no|[[iNES Mapper 114|114]]}}
| --- <!-- [[iNES Mapper 115|115]] -->
| {{no|[[iNES Mapper 115|115]]}}
| --- <!-- [[iNES Mapper 116|116]] -->
| {{no|[[iNES Mapper 116|116]]}}
| --- <!-- [[iNES Mapper 117|117]] -->
| {{no|[[iNES Mapper 117|117]]}}
| [[iNES Mapper 118|118]]
| {{yes|[[iNES Mapper 118|118]]}}
| [[iNES Mapper 119|119]]
| {{yes|[[iNES Mapper 119|119]]}}
| --- <!-- [[iNES Mapper 120|120]] -->
| {{no|[[iNES Mapper 120|120]]}}
| --- <!-- [[iNES Mapper 121|121]] -->
| {{no|[[iNES Mapper 121|121]]}}
| --- <!-- [[iNES Mapper 122|122]] -->
| {{no|[[iNES Mapper 122|122]]}}
| --- <!-- [[iNES Mapper 123|123]] -->
| {{no|[[iNES Mapper 123|123]]}}
| --- <!-- [[iNES Mapper 124|124]] -->
| {{no|[[iNES Mapper 124|124]]}}
| --- <!-- [[iNES Mapper 125|125]] -->
| {{no|[[iNES Mapper 125|125]]}}
| --- <!-- [[iNES Mapper 126|126]] -->
| {{no|[[iNES Mapper 126|126]]}}
| --- <!-- [[iNES Mapper 127|127]] -->
| {{no|[[iNES Mapper 127|127]]}}
|-
|-
| --- <!-- [[iNES Mapper 128|128]] -->
| {{no|[[iNES Mapper 128|128]]}}
| --- <!-- [[iNES Mapper 129|129]] -->
| {{no|[[iNES Mapper 129|129]]}}
| --- <!-- [[iNES Mapper 130|130]] -->
| {{no|[[iNES Mapper 130|130]]}}
| --- <!-- [[iNES Mapper 131|131]] -->
| {{no|[[iNES Mapper 131|131]]}}
| --- <!-- [[iNES Mapper 132|132]] -->
| {{no|[[iNES Mapper 132|132]]}}
| [[iNES Mapper 133|133]]
| {{yes|[[iNES Mapper 133|133]]}}
| --- <!-- [[iNES Mapper 134|134]] -->
| {{no|[[iNES Mapper 134|134]]}}
| --- <!-- [[iNES Mapper 135|135]] -->
| {{no|[[iNES Mapper 135|135]]}}
| --- <!-- [[iNES Mapper 136|136]] -->
| {{no|[[iNES Mapper 136|136]]}}
| --- <!-- [[iNES Mapper 137|137]] -->
| {{no|[[iNES Mapper 137|137]]}}
| --- <!-- [[iNES Mapper 138|138]] -->
| {{no|[[iNES Mapper 138|138]]}}
| --- <!-- [[iNES Mapper 139|139]] -->
| {{no|[[iNES Mapper 139|139]]}}
| --- <!-- [[iNES Mapper 140|140]] -->
| {{no|[[iNES Mapper 140|140]]}}
| --- <!-- [[iNES Mapper 141|141]] -->
| {{no|[[iNES Mapper 141|141]]}}
| --- <!-- [[iNES Mapper 142|142]] -->
| {{no|[[iNES Mapper 142|142]]}}
| --- <!-- [[iNES Mapper 143|143]] -->
| {{no|[[iNES Mapper 143|143]]}}
|-
|-
| [[iNES Mapper 144|144]]
| {{yes|[[iNES Mapper 144|144]]}}
| --- <!-- [[iNES Mapper 145|145]] -->
| {{no|[[iNES Mapper 145|145]]}}
| --- <!-- [[iNES Mapper 146|146]] -->
| {{no|[[iNES Mapper 146|146]]}}
| --- <!-- [[iNES Mapper 147|147]] -->
| {{no|[[iNES Mapper 147|147]]}}
| --- <!-- [[iNES Mapper 148|148]] -->
| {{no|[[iNES Mapper 148|148]]}}
| --- <!-- [[iNES Mapper 149|149]] -->
| {{no|[[iNES Mapper 149|149]]}}
| --- <!-- [[iNES Mapper 150|150]] -->
| {{no|[[iNES Mapper 150|150]]}}
| [[iNES Mapper 151|151]]
| {{yes|[[iNES Mapper 151|151]]}}
| --- <!-- [[iNES Mapper 152|152]] -->
| {{no|[[iNES Mapper 152|152]]}}
| --- <!-- [[iNES Mapper 153|153]] -->
| {{no|[[iNES Mapper 153|153]]}}
| --- <!-- [[iNES Mapper 154|154]] -->
| {{no|[[iNES Mapper 154|154]]}}
| --- <!-- [[iNES Mapper 155|155]] -->
| {{no|[[iNES Mapper 155|155]]}}
| --- <!-- [[iNES Mapper 156|156]] -->
| {{no|[[iNES Mapper 156|156]]}}
| --- <!-- [[iNES Mapper 157|157]] -->
| {{no|[[iNES Mapper 157|157]]}}
| --- <!-- [[iNES Mapper 158|158]] -->
| {{no|[[iNES Mapper 158|158]]}}
| --- <!-- [[iNES Mapper 159|159]] -->
| {{no|[[iNES Mapper 159|159]]}}
|-
|-
| --- <!-- [[iNES Mapper 160|160]] -->
| {{no|[[iNES Mapper 160|160]]}}
| [[iNES Mapper 161|161]]
| {{yes|[[iNES Mapper 161|161]]}}
| --- <!-- [[iNES Mapper 162|162]] -->
| {{no|[[iNES Mapper 162|162]]}}
| --- <!-- [[iNES Mapper 163|163]] -->
| {{no|[[iNES Mapper 163|163]]}}
| --- <!-- [[iNES Mapper 164|164]] -->
| {{no|[[iNES Mapper 164|164]]}}
| --- <!-- [[iNES Mapper 165|165]] -->
| {{no|[[iNES Mapper 165|165]]}}
| --- <!-- [[iNES Mapper 166|166]] -->
| {{no|[[iNES Mapper 166|166]]}}
| --- <!-- [[iNES Mapper 167|167]] -->
| {{no|[[iNES Mapper 167|167]]}}
| --- <!-- [[iNES Mapper 168|168]] -->
| {{no|[[iNES Mapper 168|168]]}}
| --- <!-- [[iNES Mapper 169|169]] -->
| {{no|[[iNES Mapper 169|169]]}}
| --- <!-- [[iNES Mapper 170|170]] -->
| {{no|[[iNES Mapper 170|170]]}}
| --- <!-- [[iNES Mapper 171|171]] -->
| {{no|[[iNES Mapper 171|171]]}}
| --- <!-- [[iNES Mapper 172|172]] -->
| {{no|[[iNES Mapper 172|172]]}}
| --- <!-- [[iNES Mapper 173|173]] -->
| {{no|[[iNES Mapper 173|173]]}}
| --- <!-- [[iNES Mapper 174|174]] -->
| {{no|[[iNES Mapper 174|174]]}}
| --- <!-- [[iNES Mapper 175|175]] -->
| {{no|[[iNES Mapper 175|175]]}}
|-
|-
| --- <!-- [[iNES Mapper 176|176]] -->
| {{no|[[iNES Mapper 176|176]]}}
| --- <!-- [[iNES Mapper 177|177]] -->
| {{no|[[iNES Mapper 177|177]]}}
| --- <!-- [[iNES Mapper 178|178]] -->
| {{no|[[iNES Mapper 178|178]]}}
| --- <!-- [[iNES Mapper 179|179]] -->
| {{no|[[iNES Mapper 179|179]]}}
| [[iNES Mapper 180|180]]
| {{yes|[[iNES Mapper 180|180]]}}
| --- <!-- [[iNES Mapper 181|181]] -->
| {{no|[[iNES Mapper 181|181]]}}
| --- <!-- [[iNES Mapper 182|182]] -->
| {{no|[[iNES Mapper 182|182]]}}
| --- <!-- [[iNES Mapper 183|183]] -->
| {{no|[[iNES Mapper 183|183]]}}
| [[iNES Mapper 184|184]]
| {{yes|[[iNES Mapper 184|184]]}}
| [[iNES Mapper 185|185]]
| {{yes|[[iNES Mapper 185|185]]}}
| --- <!-- [[iNES Mapper 186|186]] -->
| {{no|[[iNES Mapper 186|186]]}}
| --- <!-- [[iNES Mapper 187|187]] -->
| {{no|[[iNES Mapper 187|187]]}}
| [[iNES Mapper 188|188]]
| {{yes|[[iNES Mapper 188|188]]}}
| --- <!-- [[iNES Mapper 189|189]] -->
| {{no|[[iNES Mapper 189|189]]}}
| --- <!-- [[iNES Mapper 190|190]] -->
| {{no|[[iNES Mapper 190|190]]}}
| --- <!-- [[iNES Mapper 191|191]] -->
| {{no|[[iNES Mapper 191|191]]}}
|-
|-
| --- <!-- [[iNES Mapper 192|192]] -->
| {{no|[[iNES Mapper 192|192]]}}
| --- <!-- [[iNES Mapper 193|193]] -->
| {{no|[[iNES Mapper 193|193]]}}
| --- <!-- [[iNES Mapper 194|194]] -->
| {{no|[[iNES Mapper 194|194]]}}
| --- <!-- [[iNES Mapper 195|195]] -->
| {{no|[[iNES Mapper 195|195]]}}
| --- <!-- [[iNES Mapper 196|196]] -->
| {{no|[[iNES Mapper 196|196]]}}
| --- <!-- [[iNES Mapper 197|197]] -->
| {{no|[[iNES Mapper 197|197]]}}
| --- <!-- [[iNES Mapper 198|198]] -->
| {{no|[[iNES Mapper 198|198]]}}
| --- <!-- [[iNES Mapper 199|199]] -->
| {{no|[[iNES Mapper 199|199]]}}
| --- <!-- [[iNES Mapper 200|200]] -->
| {{no|[[iNES Mapper 200|200]]}}
| --- <!-- [[iNES Mapper 201|201]] -->
| {{no|[[iNES Mapper 201|201]]}}
| --- <!-- [[iNES Mapper 202|202]] -->
| {{no|[[iNES Mapper 202|202]]}}
| --- <!-- [[iNES Mapper 203|203]] -->
| {{no|[[iNES Mapper 203|203]]}}
| --- <!-- [[iNES Mapper 204|204]] -->
| {{no|[[iNES Mapper 204|204]]}}
| --- <!-- [[iNES Mapper 205|205]] -->
| {{no|[[iNES Mapper 205|205]]}}
| --- <!-- [[iNES Mapper 206|206]] -->
| {{no|[[iNES Mapper 206|206]]}}
| --- <!-- [[iNES Mapper 207|207]] -->
| {{no|[[iNES Mapper 207|207]]}}
|-
|-
| --- <!-- [[iNES Mapper 208|208]] -->
| {{no|[[iNES Mapper 208|208]]}}
| --- <!-- [[iNES Mapper 209|209]] -->
| {{no|[[iNES Mapper 209|209]]}}
| --- <!-- [[iNES Mapper 210|210]] -->
| {{no|[[iNES Mapper 210|210]]}}
| --- <!-- [[iNES Mapper 211|211]] -->
| {{no|[[iNES Mapper 211|211]]}}
| --- <!-- [[iNES Mapper 212|212]] -->
| {{no|[[iNES Mapper 212|212]]}}
| --- <!-- [[iNES Mapper 213|213]] -->
| {{no|[[iNES Mapper 213|213]]}}
| --- <!-- [[iNES Mapper 214|214]] -->
| {{no|[[iNES Mapper 214|214]]}}
| --- <!-- [[iNES Mapper 215|215]] -->
| {{no|[[iNES Mapper 215|215]]}}
| --- <!-- [[iNES Mapper 216|216]] -->
| {{no|[[iNES Mapper 216|216]]}}
| --- <!-- [[iNES Mapper 217|217]] -->
| {{no|[[iNES Mapper 217|217]]}}
| --- <!-- [[iNES Mapper 218|218]] -->
| {{no|[[iNES Mapper 218|218]]}}
| --- <!-- [[iNES Mapper 219|219]] -->
| {{no|[[iNES Mapper 219|219]]}}
| --- <!-- [[iNES Mapper 220|220]] -->
| {{no|[[iNES Mapper 220|220]]}}
| --- <!-- [[iNES Mapper 221|221]] -->
| {{no|[[iNES Mapper 221|221]]}}
| --- <!-- [[iNES Mapper 222|222]] -->
| {{no|[[iNES Mapper 222|222]]}}
| --- <!-- [[iNES Mapper 223|223]] -->
| {{no|[[iNES Mapper 223|223]]}}
|-
|-
| --- <!-- [[iNES Mapper 224|224]] -->
| {{no|[[iNES Mapper 224|224]]}}
| --- <!-- [[iNES Mapper 225|225]] -->
| {{no|[[iNES Mapper 225|225]]}}
| --- <!-- [[iNES Mapper 226|226]] -->
| {{no|[[iNES Mapper 226|226]]}}
| --- <!-- [[iNES Mapper 227|227]] -->
| {{no|[[iNES Mapper 227|227]]}}
| [[iNES Mapper 228|228]]
| {{yes|[[iNES Mapper 228|228]]}}
| [[iNES Mapper 229|229]]
| {{yes|[[iNES Mapper 229|229]]}}
| --- <!-- [[iNES Mapper 230|230]] -->
| {{no|[[iNES Mapper 230|230]]}}
| [[iNES Mapper 231|231]]
| {{yes|[[iNES Mapper 231|231]]}}
| [[iNES Mapper 232|232]]
| {{yes|[[iNES Mapper 232|232]]}}
| --- <!-- [[iNES Mapper 233|233]] -->
| {{no|[[iNES Mapper 233|233]]}}
| [[iNES Mapper 234|234]]
| {{yes|[[iNES Mapper 234|234]]}}
| --- <!-- [[iNES Mapper 235|235]] -->
| {{no|[[iNES Mapper 235|235]]}}
| --- <!-- [[iNES Mapper 236|236]] -->
| {{no|[[iNES Mapper 236|236]]}}
| --- <!-- [[iNES Mapper 237|237]] -->
| {{no|[[iNES Mapper 237|237]]}}
| --- <!-- [[iNES Mapper 238|238]] -->
| {{no|[[iNES Mapper 238|238]]}}
| --- <!-- [[iNES Mapper 239|239]] -->
| {{no|[[iNES Mapper 239|239]]}}
|-
| {{yes|[[iNES Mapper 240|240]]}}
| {{yes|[[iNES Mapper 241|241]]}}
| {{yes|[[iNES Mapper 242|242]]}}
| {{yes|[[iNES Mapper 243|243]]}}
| {{no|[[iNES Mapper 244|244]]}}
| {{no|[[iNES Mapper 245|245]]}}
| {{yes|[[iNES Mapper 246|246]]}}
| {{no|[[iNES Mapper 247|247]]}}
| {{no|[[iNES Mapper 248|248]]}}
| {{no|[[iNES Mapper 249|249]]}}
| {{no|[[iNES Mapper 250|250]]}}
| {{no|[[iNES Mapper 251|251]]}}
| {{no|[[iNES Mapper 252|252]]}}
| {{no|[[iNES Mapper 253|253]]}}
| {{no|[[iNES Mapper 254|254]]}}
| {{no|[[iNES Mapper 255|255]]}}
|-
|-
| [[iNES Mapper 240|240]]
| [[iNES Mapper 241|241]]
| [[iNES Mapper 242|242]]
| [[iNES Mapper 243|243]]
| --- <!-- [[iNES Mapper 244|244]] -->
| --- <!-- [[iNES Mapper 245|245]] -->
| [[iNES Mapper 246|246]]
| --- <!-- [[iNES Mapper 247|247]] -->
| --- <!-- [[iNES Mapper 248|248]] -->
| --- <!-- [[iNES Mapper 249|249]] -->
| --- <!-- [[iNES Mapper 250|250]] -->
| --- <!-- [[iNES Mapper 251|251]] -->
| --- <!-- [[iNES Mapper 252|252]] -->
| --- <!-- [[iNES Mapper 253|253]] -->
| --- <!-- [[iNES Mapper 254|254]] -->
| --- <!-- [[iNES Mapper 255|255]] -->
|}
|}


Known problems:
Known problems:
* Mapper 2 limited to 256k PRG. (An oversized version exists for 512k PRG: [//forums.nesdev.org/viewtopic.php?t=24230 forum thread].)
* Mapper 3 limited to CNROM support, excluding unlicensed oversize variants (e.g. used by Panesian games).
* Mapper 3 limited to CNROM support, excluding unlicensed oversize variants (e.g. used by Panesian games).
* Mapper 4 does not support Startropics. (See [[MMC3#iNES Mapper 004 and MMC6|mapper 4 and MMC6]].)
* Mapper 4 does not support Startropics. (See [[MMC3#iNES Mapper 004 and MMC6|mapper 4 and MMC6]].)
Line 389: Line 398:
* The PowerPak does not accurately simulate power-on state. Because power-on always boots the PowerPak menu, RAM and various registers will be initialized to a consistent state before any NES ROM is chosen to run. (Reset state, however, is not affected by this problem.)
* The PowerPak does not accurately simulate power-on state. Because power-on always boots the PowerPak menu, RAM and various registers will be initialized to a consistent state before any NES ROM is chosen to run. (Reset state, however, is not affected by this problem.)
* [[Open bus behavior]] may be different in several memory regions that are used by the PowerPak, but would not be connected on a regular cartridge. ([http://forums.nesdev.org/viewtopic.php?f=2&t=12549 forum post])
* [[Open bus behavior]] may be different in several memory regions that are used by the PowerPak, but would not be connected on a regular cartridge. ([http://forums.nesdev.org/viewtopic.php?f=2&t=12549 forum post])
== Utilities ==
*[[make_sram]] : a program written in Python to create PowerPak save files for all NES ROMs in a folder or on a CF card


== PowerPak development resources ==
== PowerPak development resources ==
Line 397: Line 410:
* Source code for some of Loopy's mappers (Verilog): [http://forums.nesdev.org/viewtopic.php?p=173302#p173302 powerpak_loopy_src.zip] / [http://3dscapture.com/NES/powerpak_loopy.zip powerpak_loopy.zip]
* Source code for some of Loopy's mappers (Verilog): [http://forums.nesdev.org/viewtopic.php?p=173302#p173302 powerpak_loopy_src.zip] / [http://3dscapture.com/NES/powerpak_loopy.zip powerpak_loopy.zip]
* Source code for NSF player: [http://3dscapture.com/NES/powerpak_nsf_src.zip powerpak_nsf_src.zip]
* Source code for NSF player: [http://3dscapture.com/NES/powerpak_nsf_src.zip powerpak_nsf_src.zip]
* Source code for Mapper 190 (Magic Kid GooGoo): [https://forums.nesdev.org/viewtopic.php?p=191417 forum thread]
* Source code for Mapper 111 (GTROM): [https://forums.nesdev.org/viewtopic.php?p=206883 forum thread]
[[Category:Flash Cartridge]]

Latest revision as of 20:54, 25 May 2024

The PowerPak is a Flash Cartridge made by RetroUSB. It uses an FPGA to emulate a wide variety of mappers, allowing the user to store a large collection of ROMs on a single Compact Flash card and run them on an NES. It is widely used by homebrew NES developers to test their software. It's also compatible with the CopyNES.

In addition to NES ROMs, the PowerPak is able to play FDS disk images, as well as NSF music files.

Famicom expansion audio is supported, and output on the EXP 6 expansion pin on the cartridge connector. A simple modification to the NES allows the expansion audio to be mixed with its output.

Specifications:

  • PRG size: 512 KB (252 KB for NSF)
  • CHR size: 512 KB
  • Auxiliary PRG-RAM size: 32 KB

Product page: http://www.retrousb.com/product_info.php?products_id=34

Mapper Compatibility

The PowerPak mappers have undergone several revisions, gradually improving compatibility. After official development ceased in 2010, Loopy and TheFox have each created a supplemental set of PowerPak mappers to improve its capabilities.

The commonly recommended setup is:

  • Begin with the Official mapper set.
  • Add Loopy's mapper set on top, replacing files.
  • Add the PowerMapper set on top if you want savestate support (see its readme).
  • Add any of the additional single mappers if needed.
  • Replace the N.MAP loader with a patched version so newer ROMs with header byte 15 set can be loaded.

PowerMappers

TheFox created a set of revised PowerPak mappers to supplement or augment the existing ones, most notably adding a savestate feature for the mappers it contains, but removing the Game Genie feature.

Download: http://fo.aspekt.fi

Known problems:

  • Mapper 4 IRQ is delayed by 2 cycles like RAMBO-1 to work around noise issues with PPU A12. This does not significantly affect most games.
  • Mapper 69 does not support the Sunsoft 5B expansion audio used in Gimmick!

Loopy's Mappers

Loopy released a set of revised PowerPak mappers in 2011, adding fixes and additional support for several mappers:

Download: http://3dscapture.com/NES/powerpak_loopy.zip

Known problems:

  • Mapper 4 IRQ has reliability issues due to PPU A12 noise, causing status bars etc. to jitter up and down on some systems. (A fixed version is available: forum thread.)

Notes:

  • Mapper 3 now supports unlicensed oversize variants (e.g. used by Panesian games).
  • Mapper 4 now supports Startropics.
  • Mapper 5 does not support the MMC5 expansion audio.

Myask's Mappers (WIP)

Myask made a few mappers not yet covered by others.

Download: here. BBS Thread: here.

  • Irem G-101 (032, but Major League hack/submapper not implemented)
  • Irem H3001 (065)
  • Taito TC0190 (033)
    • Note that some mapper 48 roms have been mislabeled as mapper 33.
  • Taito TC0690, TC0190+PAL16R4 (048, very buggy)
  • Magicseries Corp (107)

Miscellaneous

Offical Mappers V1.35b

The last official release of mappers was in 2010. It supports a wide variety of popular mappers.

Download: here

Supported mappers:

000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079
080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095
096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Known problems:

  • Mapper 2 limited to 256k PRG. (An oversized version exists for 512k PRG: forum thread.)
  • Mapper 3 limited to CNROM support, excluding unlicensed oversize variants (e.g. used by Panesian games).
  • Mapper 4 does not support Startropics. (See mapper 4 and MMC6.)
  • Mapper 5 (MMC5) is incomplete, and fails to run most MMC5 games.
  • Mapper 23 (VRC2/4 variants) is listed as buggy.
  • Mapper 92 (Jaleco-JF variant) is listed as buggy.
  • Mapper 95 (Namcot-3425) is listed as buggy.
  • Mapper 96 (Oeka Kids) is listed as buggy.

Software development limitations

Aside from mapper incompatibility, there are minor differences between running NES programs on the PowerPak versus a traditional single-game cartridge.

  • The PowerPak does not accurately simulate power-on state. Because power-on always boots the PowerPak menu, RAM and various registers will be initialized to a consistent state before any NES ROM is chosen to run. (Reset state, however, is not affected by this problem.)
  • Open bus behavior may be different in several memory regions that are used by the PowerPak, but would not be connected on a regular cartridge. (forum post)

Utilities

  • make_sram : a program written in Python to create PowerPak save files for all NES ROMs in a folder or on a CF card

PowerPak development resources