PowerPak Lite internals documentation?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
PowerPak Lite internals documentation?
by on (#69717)
In the discussion about a hacked Game Genie, where it has a bootloader that receives commands from a connected PC, someone suggested using that with a PowerPak Lite, so that no CopyNES is needed. In order to configure the PowerPak Lite with this setup, its registers and wiring must be known, so that the PC can do the same things that a CopyNES does when configuring/loading its RAM.

That also got me thinking, would it be possible to embed a 128-byte (possibly smaller) bootloader in the PowerPak Lite, so that it could be used without a CopyNES or modified Game Genie? I don't have much information about the board or CPLD that it uses, but I believe that a CPLD can simulate ROM. Since the PowerPak Lite supports mappers which use all 8 bits of data writes, the CPLD has to be connected to the data bus. Perhaps it's not connected to the lower bits of the address bus, though. Without that, it'd be very difficult to simulate a ROM.
Re: PowerPak Lite internals documentation?
by on (#69719)
blargg wrote:
In the discussion about a hacked Game Genie, where it has a bootloader that receives commands from a connected PC, someone suggested using that with a PowerPak Lite, so that no CopyNES is needed. In order to configure the PowerPak Lite with this setup, its registers and wiring must be known, so that the PC can do the same things that a CopyNES does when configuring/loading its RAM.

The source for PowerPak Lite CopyNES plugin is included in this package: http://www.retrousb.com/downloads/usbcopynessrc400.zip

I think it uses EXP0 for programming so I don't know how that would work on a normal NES.

by on (#69720)
That doesn't sound good. This EXP0 pin is controlled by a CopyNES Register to allow for PowerPAK Lite programming?

by on (#69721)
Darn. I would have figured it just powered up in program mode, but this makes sense, as it allows re-entry into program mode at any time. So the CPLD would need to be reprogrammed, or EXP0 connected to a latch, perhaps OUT2 from the CPU, inside the NES.

by on (#69725)
Blargg,
When you first publicized your boot loader idea I had an idea: Build a RAM cart (like the power-pack lite), and include a small E(E)PROM on it. Tweak the mapper so that this ROM is in charge when it boots up, but the ROM can be switched out to run the game. The boot rom would use your method to pull in a stage-2 loader, which would then chain-load the entire development cart image to the (bankable) RAM at $8000-$ffff + char-ram (acting as char-ram or char-rom).

Like a hybrid mapper or something. Writing to $5fff would swap in the MMC1 / other mapper and the normal game in RAM. Writing to $5ffe would reset the cart back to the boot rom. For those of us developing new games, avoiding writing to $5xxx does not sound too burdensome, as most mappers used for homebrew won't use that range anyway.

However, this requires design work, fabrication work and bigger expenditures. Dropping a power-pack lite on top of a hacked game genie seems less expensive, if it would work.