P.U.C.E. Pictorial History

(Last Update: 18/05/03)



This is the original concept drawing of the PUCE PCB. Amazingly, it's almost exactly the way it turned out, with two of the cartridge connectors switched sides, for no apparent reason.

Home-brew Cart - UNROM?

The first exercise was to re-produce the Tennis Cartridge, simply two EPROMs and no mapper circuitry (IIRC this is known as UNROM or Mapper #0?). The purpose of this was a sanity-check to fall back on during our emulator development and a sort of proof-of-concept that we knew a little about what we were attempting. In any case, we needed to build a simple version of either side of the cartridge because in our first prototype we weren't going to attempt to implement both the CHR and PRG buses at once. In the end we built both sides, as you can see here.

We had to modify the NES to run with our home-brew cart - a process which is quite simple and well-documented on the net.
As you can see, we got it up-and-running after a red-herring which appeared at first to be a loose connection on the cart connector and ended up being a loop-back trace on the original cartridge which we had inadvertantly omitted.

Here is Nintendo TENNIS running from our home-brew cart on the trusty and versatile Amiga 1084s monitor.

An FPGA design - UNROM

The next step was to produce an FPGA design to replace either half (the CHR/PRG bus) of the NES Tennis cartridge. For this we used an Altera FPGA Evaluation Board, conveniently equipped with some FLASH and 5V I/O. Not surprisingly, emulation of an EPROM isn't particularly difficult - but we had to start somewhere!
Shown here is the eval board and the CHR portion of the home-brew cart equipped with some SRAM for emulation of a UNROM cart.

We had Tennis running without too much drama, and decided to choose one other simple Mapper, simply because Tennis did no bank-switching at all, and we thought it prudent to emulate another mapper before moving onto PCB design.

Here is Shufflepuck Cafe running, a UNROM cart, with a bank-switched PRG ROM and some SRAM on the CHR bus. We ended up with corrupt graphics on the background for this game, but given the dubious source of the SRAM we used and the fact that another UNROM game, Prince of Persia worked fine, we decided it wasn't worth persuing further for this exercise.

Although the NES is the most primitive of the consoles, it is unique in the fact that the cartidge has two (2) separate buses. The trick will be in emulating both buses in a single FPGA, or more precisely, with a single bus to the FLASH and SRAM on the PUCE board. We are confident that the NES bus is slow enough to allow us to multiplex both buses and latch the results in the FPGA running at upwards of 33MHz in plenty of time for the NES. Time will tell!

PUCE Running - Blinking Lights!!!

Here is a bona-fide PUCE PCB running a simple 'production test' that blinks the LEDs and outputs a 50-50 duty-cycle squarewave in ever-decreasing frequency on each of the FPGA outputs. This simple image was used to test pretty much the whole circuit, including the cartridge I/O pins, the address/data bus to the Flash and SRAM, and the miscellaneous I/O, including the debug LEDs.
On the board shown, all but the SRAM and RS-232 level-converter has been loaded.
Here is a very small AVI showing PUCE running the production test image.


Pictures coming soon!


Here is PUCE running Astroboy, a Japanese NTSC LoROM cartridge after a PAL-fix and (IIRC) SLOWROM fix was applied.
The SNES has been mod'ed to negate the need for a CIC chip in the cartridge.
The SNES was the first platform we got running perfectly.
As you can see, the PUCE board sits quite nicely in the SNES console, without the need to remove the cover.


Here is PUCE running Charlie Blast's Territory, a 4MB PAL 7101 ROM-only cartridge.
The appendage you can see hanging off the front of the PUCE PCB is a real 7101 catridge with the CIC chip pins connected to the N64 cartidge edge connector. This is currently required as we do not emulate the CIC chips. Hopefully in the final version, this will not be required, unlike the current N64 'copiers' which require boot carts.
Althought the N64 cover has been removed, this is not really required - PUCE will sit nicely in the top of a console - however it was easier to probe the pins and facilitate the boot chip wiring with the cover removed.

This is Chris - co-founding PUCE project member and reluctant Protel Guru!
He is seen here modelling the N64 cap - amazingly enough discovered in small numbers in a local supermarket (of all places) not long after we started on the PUCE project and now compulsory attire whilst actively working on the PUCE project. I think we bought the entire stock of them - which causes me to wonder if the supermarket management desperately tried to find more of these hot-selling items???

The PUCE Project Developer's Kit

Everything you need to work on the PUCE project!

Contact: msmcdoug@optushome.com.au