{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreia3icbs4hubbpugtvacdvf3odsokqhuxyoh6usyug22yp65gydrm4",
"uri": "at://did:plc:dmpmpvgbtnjd7pz4pxvvcwle/app.bsky.feed.post/3mnzndlrs7w72"
},
"path": "/2026/06/11/bare-metal-msx2-emulator-for-esp32-s3-offers-custom-lcd_cam-vga-implementation-z80-optimizations/",
"publishedAt": "2026-06-11T09:44:54.000Z",
"site": "https://www.cnx-software.com",
"tags": [
"Espressif",
"Hardware",
"C/C++",
"emulator",
"esp32",
"gaming",
"open source",
"optimization",
"retro",
"Bare-metal MSX2+ Emulator for ESP32-S3 offers custom LCD_CAM VGA implementation & Z80 optimizations",
"CNX Software - Embedded Systems News"
],
"textContent": "Ivan Svarkovsky’s S3-MSX-PC open-source project implements a bare-metal MSX2+ emulator running on an ESP32-S3 microcontroller and outputting 64-color VGA via a simple R-2R resistor ladder. It’s a fork of the Retro-Go emulator for ODROID-GO and other ESP32 devices, but with various optimizations. It was tested on an off-the-shelf ESP32-S3 board with one core handling the game logic and the other video and audio output. VGA is implemented through a clever resistor network that converts digital data into an analog signal that any old monitor understands, while audio relies on Sigma-Delta modulation with a multi-stage PDM filter. The USB host port on the board allows for the connection of a keyboard. S3-MSX-PC firmware highlights: Emulation Core – fMSX 6.0 — Full MSX1 / MSX2 / MSX2+ support Video Output VGA 640×480@60Hz, 16-bit parallel RGB via LCD_CAM Color Depth – 64 colors (2 bits per channel: R, G, B) Audio – PDM Stereo [...]\n\nThe post Bare-metal MSX2+ Emulator for ESP32-S3 offers custom LCD_CAM VGA implementation & Z80 optimizations appeared first on CNX Software - Embedded Systems News.",
"title": "Bare-metal MSX2+ Emulator for ESP32-S3 offers custom LCD_CAM VGA implementation & Z80 optimizations"
}