To make life easy for everyone, I have edited this first post to include all the important things about my FPGA videogame system (the Zimba 3000, called the Z3K from here on) and the Analogue Nt mini since it is using my cores that will also appear on the Z3K.
What is the Zimba 3000?
The Zimba 3000 is the name of my FPGA videogame system. It will support various 8 bit and 16 bit videogame and computer systems. Right now, I am in the design and development stage on it. I am going to be slammed with contract work in a month or two (as of March 2017) so it will be a little while before I can complete development of it, but work is not going to totally stop. See below for my original post to this thread that explains it more in-depth.
Analogue Nt mini
As most of you know by now, I designed the PCB and wrote the software in the Analogue Nt mini. This is an FPGA NES/Famicom with HDMI and RGB/composite/s-video/component out. I have since released "jailbroken" firmware that allows you to run ALL of my FPGA cores to date. These are mostly 8-bit cores right now but it is possible I can do some light 16 bit cores in the future.
It currently supports the following:
- Sega Master System
- Game Gear
- Gameboy Color
- Atari 2600
- Atari 7800
- Game King
- Channel F
- Arcadia 2001
The following are in the process of being ported:
- Adventure Vision
- RCA Studio 2
- SPC Player
Unfortunately the mandelbrot zoomer cannot be ported due to a lack of multipliers.
Download the Latest Jailbroken Firmware Here:
Related links for the Nt
DF Retro Hardware did a good overview of how to perform the jailbreak:
Analogue Support Page:
Overview of FPGA Video Game System Cores
I have a text file here that describes the current systems implemented:
How to Jailbreak the Nt mini
1. Format your SD card FAT32
2. Unzip the firmware file onto the card, keeping the directories contained within
3. Load your desired ROMs into the proper directories (i.e. NES games go in /NES/)
4. Plug the SD card into the Nt mini
5. Power on the Nt mini and wait 3 minutes while the update occurs (led will flash red)
6. You will know this worked because the menu (default DOWN+SELECT) now sports skulls and crossbones
Upgrading the already Jailbroken Nt mini Firmware
1. Replace the entire /SYSTEM/ directory and its contents (the cores live here)
2. Add the new directories
3. Replace the firmware .bin in the root directory with the new one
4. You need to add the BIOS files for the various systems as indicated by the text file in the /BIOS/ directory
5. Plug the SD card into the Nt mini
6. Power on the Nt mini and wait 3 minutes while the update occurs (led will flash red)
Core File Menu Controls
- Up/Down: Selects a file.
- Left/Right: Page through files, 16 at a time.
- B: Can be set to take you to the top/bottom of a file list, do nothing, or go back 1 level in the directory structure.
- Y: Run the game.
- Start: Enter the settings menu. This is slightly different from the main menu. There is now as "core" settings menu. Everything core specific will be found here.
- Select: Exit the menu. You will be asked to confirm. If you confirm, it returns to the core select menu. If you do not wish to exit, it returns to the currently running game.
Backing up your NES & Famicom Cartridges with copyNES Mini
1. Insert the game in question into the cartridge slot.
2. Select 'Run Cartridge' to make sure it works and is making good contact.
3. Re-enter the menu and select "Copynes mini".
4. Select the mapper that your game uses. See here for a decent list of game vs. mapper: http://tuxnes.sourceforge.net/nesmapper.txt.
5. Hit Y (or A if using the original NES controller) to start the backup. Note that it might take awhile (30 seconds) to determine the size of the ROMs on the cartridge.After the game is backed up, you can enter a filename using up/down./left/right. If no name is entered, it will save it with a filename determined by the sumcheck of the ROM.
6. Press Y (or A if using the original NES controller) to save the backup ROM.
Jailbreak Firmware Releases & Notes as of 3/19/2017
- Added the Osyssey^2 core.
Fixed DC offset on the audio, causing certain monitors to produce no sound ever, or until a game was started and certain SFX played, etc
Fixed the crackling/static issue that appears on games such as solstice
Minor fix to audio scaler that probably wasn't audible, but was wrong anyways
Fixed the "wigglin' scalers" issue. This was a debug I left in. oops
Moved mapper 124 on the NES core to the second NES core due to running out of room
Added ability to change highlight text colour in the menus. I cannot add it to NES composite s/vid due to space (but it works on other cores)
Added "low lag" controller reading to all cores. (the controller is polled right before vblank to minimize lag)
Rebuilt all cores to implement that above fixes/changes
Added Famicom Network HVC-051 controller to Coleco core
Added Famicom Network HVC-051 controller to Arcadia 2001 core
Arcadia 2001 core added
Channel F core added
Added the Creativision core added
Fixed the 7800 composite/s-vid outputs to produce proper carrier
Fixed saving video width setting
Atari 7800 core added
Each core will now save 1080p height selection (4x, 4.5x, 5x)
Each core will now save its X width and offset
Added a new scaler for 7800 since it is 320 pixels wide
Retooled scaling calculations to accommodate systems wider than 256 pixels
Game King core added
Gamate core added
Supervision core added
Atari 2600 core added
Fixed NES Mapper 163 so pokemon yellow now works
Fixed NES audio pitch sweep
Gameboy core added
Gameboy Color core added
Added SMS and GG save RAM saving functionality
Fixed SMS/GG save RAM functionality
File browser will not display .SAV files in the sms/gg/coleco cores
Retooled the button options and made a new unified "Menu Button Mapping" entry
Fixed the B button setting so it works now
Fixed LED issue on core swap
Made LED default to white and changed menus to reflect this. If you want it fixed you select a pattern speed of 0 now
Removed GG bezel graphics
SG-1000 core added (place your games under /SMS for this)
Sega Master System core added (with FM support)
Game Gear core added
Colecovision core added
Fixed MMC5 square channels 2x too high in pitch
Fixed Holy Diver mapper mirroring (be sure to set NES2.0 submapper to 3)
Fixed Crime Busters mapper
Fixed "Hang on boot" for v0.9
NES core added (support for over 200 NES mappers)
Welll, some people seemed interested in my FPGA Videogame doodad that I presented in the RVGS thread and it was suggested I make a post about it, how it works, and what it does. I still don't have immediate plans for selling it, but if there's enough interest, that could change. I will attempt to explain what it is, how it works, and what a sellable version of it would entail, so let's go!
First off, nearly ANYTHING is possible. The main problem is going to be how much money people will be willing to pay, and how long they will want to wait for it to be finished. A target price of around $250 is probably going to be a reasonable value, but ideally I'd love to be able to do it for $200ish.
What I have right now:
At this point in time, I have 17 system cores complete, and pretty much ready to go. This means that the core is done and runs all the games I can throw at it flawlessly. I have spent a lot of time debugging and testing these cores to make sure they are the highest possible quality and completeness. Yes, I spent the time to run every single game available to me on them- many many many times to make sure any changes I made didn't break something.
To obtain the absolute highest level of quality and compatibility, I have made special test fixtures, hardware, and test ROMs for every system, and used my 200 channel logic analyzer to inspect exactly what goes on to get exact cycle accuracy on everything. Developing a new 8 bit level core takes around 1-3 months of work depending on how complicated it is. Sometimes it was even faster than this, and sometimes longer. I figure I could get SNES or Genesis going in a 4-6 month time frame and maybe a few more months to debug it to a decent level of operation.
There have been several hardware prototypes created up to this point to develop and test my cores and other related things, and I now have full command of the HDMI interface at 1080p/60fps. I have moved onto HDMI now as my interface of choice due to the high quality of today's flat panel monitors and TVs. Analog is still possible, and I can support this too. I still think that some kind of add-on for analog will be the best way to go instead of integrated it into the system due to the cost of the video DACs ($4-5 each) and the connectors ($1 or more each in some cases). By leaving off analog, I can save probably $40-50 by eliminating all the chips and hardware for them. The other option is simply to get rid of analog all together and not support it at all. Would many people be sad to see analog go? Personally I wouldn't, but this is not really my decision- I want to make something the USERS would like.
Right now, I am playing games by loading ROMs in through a computer interface for debug, but ideally they would be loaded off of SD cards. I like the idea of cartridge adapters, but the problem with them is making the plastic enclosure for it. Making the adapters themselves is fairly straight forward and easy, and the games would literally be running off the cartridge itself- it would NOT be just another Retron 5 that just dumps the game and plays it- it would actually RUN the actual cart so Powerpaks/Everdrives/etc would still work. Ideally if you can stuff it into an existing system and have it work, I want it to work for sure on my adapters too.
I don't know how much these adapters would cost. They would each consist of a cartridge connector, a system connector, and probably level translation logic and maybe a few other minor things. Figure a $20-30 parts cost. So maybe a $40-50 retailish range. Adding more than 1 cartridge port to the adapter would save money, and maybe be a $5-10 cost adder vs. singles.
I have been using PCIe connectors because they are cheap, durable, and extremely commodity, which means there's 10 or 20 companies making them. This will stop it going obsolete any time soon, and keeps the price in the basement. All good things for this.
The current "high end" board I have designed and manufactured looks like this:
There's no less than TWO FPGAs on this board- one was meant to do all the system simulation/emulation, and the other was meant to handle video scaling, SD card access, etc. I ended up not stuffing the boards because I learned a lot about HDMI during the HDMI NES adapter project, and wanted to apply what I learned. This will basically lead to lower costs and more functionality vs. what I have already created on this existing board. All the parts are bought and sitting here in a box, along with solder stencils, etc. but I think holding off and redesigning the board is the best option. I may still stuff parts of the board for testing, however.
Right now, my idea to package this thing was to use the laser cutter I have at work and make acrylic laser cut packaging instead of a professional injection mold, but if 1000ish people were on board, I could most likely go for a proper job injection mold to house it.
System specs that a proposed system would have:
* SD card for storing ROMs/save games/FPGA configurations
* Quad RAM busses to allow up to neogeo level systems
* Enhanced video scaling (see my HDMI NES project for a taste of my HDMI capabilities)
* 49K logic element FPGA
* Quad USB ports for controllers/mice/etc Most likely HID only
* HDMI video/audio, 1080p and 48KHz audio standard
* Port to allow plugging in cartridge adapters
* Maybe one or two built in ports for i.e. NES or SNES or similar
* 256Mbytes of RAM
The existing board has all of the above except cart ports, and a few more things like ethernet which I would strip off.
Here's a youtube playlist showing off most of my FPGA videogame cores to date:
And a list:
* Sega Master System
* Game Gear
* Atari 2600
* Atari 7800
* Adventure Vision
* RCA Studio 2
* Fairchild Channel F
* Arcadia 2001
* Gameboy Color (not 100% yet, still debugging. runs 99% of games so far)
* SPC player (SNES music)
* Mandelbrot realtime zoom/pan/julia
None of the cores are bare bones, either. The 2600 core for example supports Pitfall 2, Atarivox, Supercharger demo unit, Supercharger proper, and all mappers. The Intv and Odyssey^2 ones have the speech add-ons, and the NES core supports all expansion audio chips and all mappers.
And that's about it. If there's any questions lemme know and I will try to answer 'em.