MiSTer Upgrades Vintage Computer Recreations

The MiST project provides an FPGA-based platform for recreating vintage computers. We recently saw an upgraded board — MiSTer — with a similar goal but with increased capability. You can see a video of the board acting like an Apple ][ playing Pac Man, below.

The board isn’t emulating the target computer. Rather, it uses an FPGA to host a hardware implementation of the target. There are cores for Apple, Atari, Commodore, Coleco, Sega, Sinclair and many other computers. There are also many arcade game cores for games like Defender, Galaga, and Frogger.

The MISTer uses a Terasic DE-10 board that sports an Altera Cyclone V SE. That FPGA has 110,000 logic elements and about 5K bits of block RAM. It also contains two ARM Cortex A9 CPUs running at 800 MHz. There’s a gigabyte of DDR3 RAM that the FPGA and the CPU can share. The ARM CPUs can boot Linux and you can emulate some or all things in software if you prefer. While there is a VGA output, there’s also a video scaler making it possible to drive a standard HDMI output.

What makes MiSTer more than just an FPGA demo board are the three daughterboards (and, of course, the software and FPGA configurations). There is an SDRAM daughterboard, an I/O board, and an optional real time clock board. The project is open source, with all the schematics and Gerber files available.

The I/O board provides legacy VGA output and connections for audio outputs (analog and digital). It is optional if you don’t want those features.

We looked at the original MiST impersonating a Macintosh if you want to compare the two boards. Maybe this set up is just what we need to create the computers that never existed.

25 thoughts on “MiSTer Upgrades Vintage Computer Recreations

    1. FPGAs overused?!?! Ehmmm… wel how do you feel about arduinos then?
      Or how do you feel about transistors, they seem to put them into everything these days, how dare they?
      FPGA are the modern building block for when you really want to do something complicated or fast (that isn’t practical or possible in a microcontroller) without making it complicated on a hardware board level. Anyway, play with them, give them a try, buy a cheap dev board clone and make your first blinky, then counter, VGA or other video circuit, then graphics, data (de)coding or recreate a CPU and its peripherals and soon you’ll find out its tool you can’t do without. You can make wonderfull things I don’t understand why they arent used more.
      Well actually I do, as FPGAs can be kind of intimidating…

  1. I’ve always wanted to recreate a VAX with an FPGA, and mount it (and the memory, etc) on cards that would fit and use the original chassis/bus. I’ve got a VAX4000/200 in my basement with no cards in it, just haven’t bothered lugging the chassis up the stairs yet. Be neat to have a QBUS-mounted FPGA CPU card, a pair of QBUS memory cards with SODIMM slots, and a QBUS video card. And drive card. Etc.

    1. Yea I wish I’d of known about this a couple days ago when the addon boards were still being sold.
      Apparently both people originally offering them no longer have them up for sale just two days later :{

        1. I get terrible stomach cramps and sweats if I go 48 hours without an FPGA. It’s easy for you to talk, you’ve probably never laid awake at night with your synapses screaming for a simple HDL implemented ALU.

          Have some compassion.

  2. Meeeh. Why implement common computers that still exist? Now if someone implements the Royal McBee RPC-4000 *that* would be something. We could try to recreate Mel Kaye’s blackjack program. For extra credit reimplement the LGP-30 and that blackjack program.

    http://www.pbm.com/~lindahl/mel.html

    At one place I worked, I installed the “Story of Mel” in the man pages so “man mel” would bring up the usenet posting. Mel was a *real* programmer in my book.

    1. There are some DEC PDP implementations in FPGAs, they could be ported to MIST / MISTER.

      I would really like a Lisp machine or Xerox Alto/Star…

      There are some aspects of very, very old computers, such as drum memory or teletypes or punch cards, which makes them impossible to meaningly re-create with just FPGAs or software emulation.

  3. The one thing I need to understand is why this isn’t considered emulation? It’s not using the original chipset, so it’s still a different variation of emulation, is it not?

    1. nope it’s not, its a recreation of the original hardware.
      Circuitry is being rebuild, using real gates, using real logic.
      If it was an emulation then the functionality of the hardware was to be implemented in software and it would require a processor to mimic the behavior of a different processor. Not using the original chipset does not automatically make it emulation. If you build hardware that on a logic level behaves like the original hardware without the use of software algorithms its not an emulation its a recreation.

      Very simply said: emulation is dressing up a Ferrari to look like a Model T.
      Or: you may say that the holodeck from start trek is an emulation, but the replicators aren’t.
      Or: an emulation does not represent the hardware when its switched of, a recreation still does

      1. “nope it’s not, its a recreation of the original hardware”… Except, in this case, it is not.

        If you really look at the project’s code on https://github.com/MiSTer-devel/Apple-II_MiSTer (which is mostly another fork of this former Apple2fpga implementation : http://www.cs.columbia.edu/%7Esedwards/apple2fpga/ ) the only original hardware that seems properly simulated on a logic level are the 6502 CPU and the Mockingboard add-on soundcard.

        All other discrete digital logic present on an actual Apple II motherboard has been replaced by modern stuff like VGA video generation, PS2 keyboard controller, even a “virtual floppy image reader” (for practical reasons), and intefacing with on-board components like SDRAM or button switches. These are just mapped in the target’s memory space much like a software emulator fakes i/o components, just mimicking their behaviour on the data bus.

        A real recreation would simulate every original chips and the analog i/o too, and that would be a clone, which could as well be software-based. FPGA is a programmable circuit, more suited to reproduce digital ICs inner logic and their parallelized operations, but here I would still call this an emulator, just an hardware one, according to the definition of some encyclopedia : https://en.wikipedia.org/wiki/Emulator

      2. Actually none of these are exact replicas of the originals the processor cores for example are not the exact logic layout used in the original they are excellent replications of the instruction sets used by those processors. The same is true about custom chips used, unless the chip has been de-capped and reverse engineered to the individual gate level then the recreation is simply a best effort to duplicate the function of that chip that may well implement its function in a very different way to the original.

        I think people get too wrapped up about the idea of an FPGA vs Emulator. An FPGA implementation is made in hardware but in most cases it is not a 100% facsimile of the original but rather a best effort compatible hardware.

  4. I don’t understand the comments talking about recreating 8b micros using an FPGA. Using a micro to emulate it is far cheaper and easier for most people to modify. The advantage of an FPGA is true cycle-by-cycle logic evaluation at speed of a few ns per cycle — but that Apple II’s cycle time was nearly 1000 ns. So your FPGA can evaluate the next state in 10 ns and then it sits there for 990 ns waiting for something to do.

    Obviously the FPGA is better for generating video, which a microcontroller may have a hard time doing, but there are other options than using an expensive FPGA.

    1. You are right that FPGAs are overkill for some projects. If it was required for this project is up for debate one thing is certain there are many ways to do a project, this was made using an FPGA and it does the job. If costs is an issue, then just use an emulator on your PC, if you want the fun of real hardware then build it in hardware, building it in a microcontroller is nothing better then emulating it on a PC (although it is a little bit smaller, which could be a huge advantage). Ahhh… if it works it doesn’t matter does it?

  5. I saw a talk just a couple of days ago about a retired professor working on simple recreations of some really old supercomputers (50s-70s). The emulation was in software and not especially accurate but captured the hardware structures of the systems. It was really interesting to see an animation of a pipelined asynchronous processor running! The emulation project called HASE, in case anyone is interested.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s