FPGA PC Engine

Some months ago Gregory Estrade (AKA “Torlus”) created a PC Engine core for the Altera DE1 board.  Over the last few weeks I’ve taken a similar approach with this as I took with the OneChipMSX, generalising the core and making it buildable for multiple boards.

So far I have it building for MIST, Chameleon and DE1 (though I’ve temporarily disabled sound for the DE1 because I’ve run out of block RAM.)

I’ve used my ZPUFlex variant of the ZPU processor to handle ROM loading and OSD control, and also provide emulation of a gamepad – using cursor keys, right alt and ctrl, and Enter and Right shift to replace the Run and Select buttons, respectively.

F12 brings up the on-screen display menu where you can enable or disable scanlines, change screenmode, reset the core and load ROMs.  It’s possible to save a configuration, but the core can’t create files, so you’ll need to copy an example config file to the SD card before saving.

Currently binaries are available for the MIST board and Turbo Chameleon 64.

Full source  can be found here:  https://github.com/robinsonb5/FPGAPCE

After checking out the source, you need to pull in the ZPUFlex submodule, like so:

git submodule init
git submodule update


13 thoughts on “FPGA PC Engine

    • The missing scanlines is a known (and very simple) firmware issue and will be fixed in the next release. Option saving doesn’t work properly at the moment either, as a result of the same bug.

  1. Thanks for this great port ! Now with the possibility with P and T keys to load the ROM as a PC-Engine or as a Turbografx 16 ROM, it’s much easier.

    Could you add a filter to see only .PCE files, because with the MiST we’ve got a lot of files at the root of an SD card : other cores (.RBF), config files (.CFG), ROMS (.IMG and .rom), disk images (.hdf). Another thing, the file names are sorted in a very strange way, not alphanumeric and not by date.

    Will it be possible to browse into directories (much easier to sort ROMS) because it’s very difficult to differentiate files with the DOS naming format 8.3 for file names. Will this limitation (DOS name format) remain forever ?

    Anyway, keep up the good work.

    • All good ideas, and I’ll add them to the ToDo list. The files aren’t sorted at all, they’re just displayed in the order in which they appear in the directory structure, which (holes left by deleted files notwithstanding) is the order in which they were copied to the SD card.

  2. Tested this on the DE2 as well. Even though I have no idea what to put on the SD Card, it does load (with SW[0] up).
    For some strange reason though, the OSD “wobbles”. SOme text columns more than others, so the “l” will look like a “wiggly worm”.
    Maybe this is some video timing issue? not sure.
    I don’t the the same behavior on you Fampiga and OneChipMSX implementations, those are very stable on the same board.

    Marcelo “Mockba” Dantas.

    • The reason for the OSD wobbling is that the OSD has a different pixel clock from the base core, and there are interference patterns between the two which change position from frame to frame. I will fix it one day!

  3. can any one tell me what to put on the sd card for it to boot in to the amiga core
    and i am using a 8 gig sd card is that my prob of it not booting

    thanks for your time

  4. I don’t understand exactly what a ROM use… I tried Mac SE ROM and PC AT 1982 ROM but nothing running… in case of MiST.
    Mean I correctly that it can simulate for example old PC system?


    • The “PC Engine” was a videogame console otherwise known as the “TurboGrafx-16” – this core can run ROM dumps of many (but not all) PC Engine and TurboGraphx-16 games.

      • Ok, I was never interested in game consoles, so I meant that PC Engine simulates real PC with BIOS or ROM for system…
        I never know about game consoles above.
        Thank you for info.

Leave a Reply

Your email address will not be published. Required fields are marked *