{
  "$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"
}