ATMega644 MSX

This project is MSX1 computer emulation on ATMega644 microcontroller. Only part of MSX1 hardware is emulated, video and sound are produced using the same integrated circuits as in real MSX1, but there are also some features that real MSX1 don't have. Loading programs from SD card is one of them. Some AVR microcontrollers like for example ATMega162 have nice feature (XMEM) where you can easily connect external SRAM, but unfortunately they don't have enough FLASH memory for this project. Because of that, I made simple RAM board where memory is accessed using only 12 AVR pins, 8 address/data and 4 control lines. This approach is slower than previously mentioned XMEM interface, but still fast enough and much faster than serial SRAM which would be simplest to connect.

Electronic schematics

Main board

RAM card

Video card

Audio card

Finished electronic circuits

All cards together

Cards inserted in the motherboard

In operation

The picture is in grayscale, because I used TMS9129NL which generates YPbPr signal. To have picture in color with TMS9129NL I would need to use two converters to capture video: YPbPr to RGB, and RGB to Composite/S-Video. I could also use TMS9118NL which already have composite output, but for it I didn't have exact crystal oscillator which need to be 10.738635 MHz.


atmega644_msx1.hex  HEX file to burn into ATMega644 microcontroller
   Fuses: H=0x99 L=0xE0

This page has been visited 386 times since 2020-11-06