The Mini System is built from scratch from modern components. To be more precise, it uses a Xilinx FPGA (or Field Programmable Gate Array) to recreate in Verilog all the various chips that were in the original system. It also contains 512 kilobytes of SRAM for loading the games, all on a dedicated PCB. Some of the logic that is integrated into the FPGA of the Mini System:
- Z80 CPU
- VDP (Video Display Processor)
- SN76489 (Programmable Sound Generator)
- PAL output
The VDP is responsible for everything that appears on the screen. This includes the background of games, which consists of a grid of 8×8 pixel blocks of up to 16 colors each (from a total of 64 colors). This background can be scrolled horizontally or vertically, allowing almost limitless worlds to be created in the games. Another important part is the sprites, of which up to 64 can be displayed at once (8 on a single scanline). Sprites are 8×8 or 8×16 pixel blocks that can freely move around (in contrast to the background blocks, which are fixed in their grid), and they’re generally used to show the characters and enemies in the game.
All of this is refreshed with a rate of exactly 50 frames per second, ensuring smooth gameplay. One of the advantages of the Mini System is that it is not an “emulation”, but a hardware recreation: this means that when I say 50 frames per second, it’s always exactly that! Not more, not less: no dropped frames, ever. Software emulators also aim for this of course, but because there’s always other software running on the system (most notably, the operating system), this can often result in choppy framerates.
The colours are output to the TV through the dedicated red, green, and blue channels of the SCART cable (in PAL), in contrast to composite or RF outputs. This means that the image will look crisp and clear. It also means you need a TV that can handle this, but almost all SCART TV’s do this, even older CRT ones. And in case your TV only supports HDMI, there are SCART -> HDMI converter boxes available for about 35$.
The SN76489 is the programmable sound generator chip of the SMS: it’s responsible for creating sounds and music using 3 tone channels and 1 noise channel. Each of these channels has its own volume and frequency control. A Delta Sigma DAC inside the FPGA recreates the analog signal that is sent to the TV.
The Mini System has enough memory to play the large majority of games created for the SMS. Of course, it’s also possible to program your own games in Z80 assembly, and run those on the system! What could be more fun? Either way, all you need are the *.sms files of the games, store them on a FAT16 formatted SD card, and insert that into the Mini System. On startup, you will be presented with a menu of the games found on the card, and off you go! Note that, for legal reasons, you need to actually own the games that you play on the system. I’m not going to provide you with ROM files of any games!