retro-go

ducalexGPL-2.0更新放缓

在 ODROID-GO 等 ESP32 掌机上跑经典主机模拟器,内置启动器可切换 GameBoy、NES、世嘉等多平台游戏。

Retro emulation for the ODROID-GO and other ESP32 devices

1.46发布于 2025-11-08 00:56 UTC1,420star403fork同步于 2026-11-07 07:34 UTC

怎么上手

由 README 提炼,执行前请确认
esptool.py write_flash --flash_size detect 0x0 retro-go_*.img
硬件要求按 README 说明

运行在基于 ESP32 的掌机设备上,官方支持 ODROID-GO 和 MRGC-G32,其他设备见兼容列表;README 未提及显存或 CPU 运行要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在 ESP32 掌机(ODROID-GO 等)上运行多平台复古游戏模拟器的固件

在 ODROID-GO 等 ESP32 掌机上跑经典主机模拟器,内置启动器可切换 GameBoy、NES、世嘉等多平台游戏。

核心能力

  • 包含启动器和多个模拟器应用,针对 CPU、内存和 Flash 做了深度优化
  • 支持 NES、SNES、GB、GBC、Genesis、PC Engine、Lynx、DOOM 等平台
  • 提供游戏内菜单、收藏与最近游玩、多存档槽和存档预览
  • 支持封面图、缩放与滤镜、快进和可定制启动器
  • 内置 WiFi 文件管理器和 NTP 时间同步

容易踩的坑

ODROID-GO 和 G32 需先把 .fw 拷到 SD 卡对应目录,再按住指定按键开机刷写;部分模拟器需自行放置 BIOS 文件到 /retro-go/bios/;WiFi 需手动创建 /retro-go/config/wifi.json 配置文件;封面图需另下载 romart 包,CRC32 命名方式会拖慢响应

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本1.46
  1. 1.46Retro-Go 1.46最新正式版2025-11-08 · 2025-11-08 00:56 UTC
    • Launcher: Added virtual keyboard to manage wifi networks
    • Launcher: Diacritics are now correctly shown in filenames
    • All: Overclock works better (original esp32 only)
    • All: German translations has been added
    • All: On-screen low battery indicator

    This is a partial release of the changes from the dev branch. I have decided to split it between 1.46 and 1.47 to reduce the odds of catastrophic bugs... Notably missing are improvements to the unplayable emulators such as SNES/Genesis/MegaDrive/GBA, fixes for various open issues, a few new/updates targets, and the self-updater.

  2. 1.4x-gbaRetro-Go 1.46-dev including GBApre-release2025-08-25 · 2025-08-25 21:49 UTC
    查看更新说明

    This is a build of the current development branch, it includes the GBA emulator and easier access to esp32 overclocking in the options.

    • Note 1: GBA is not included on devices with 4MB flash. You'll need to build it yourself and remove gwenesis or prboom-go to make room.
    • Note 2: Overclocking is only available on esp32 devices, not esp32-s3 or esp32-p4. Overclocking is not dangerous but it might cause crashes and has many unresolved side effects. Because of this, the setting isn't saved for now.

    Other things of interest in this preview:

    • Launcher: Added virtual keyboard to manage wifi networks
    • Launcher: Diacritics now display correctly in filenames
    • GEN/MD: Improved performance
    • SNES: Improved performance
    • All: German translations added
  3. 1.45Retro-Go 1.452025-07-27 · 2025-07-27 23:33 UTC
    查看更新说明
    • SMS/GG: Fixed broken inputs in many games since 1.40 (#198)
    • SNES: Increased max supported ROM size on some devices
    • Launcher: Fixed network status in options menu
    • All: Improved D-PAD input accuracy on some devices
    • All: French translation now has accents
    • New device support: LILYGO T-Deck Plus
    • New device support: Null Nano by Ampersand

    How to choose the correct file: .img is to be used if you flash your device over USB, .fw if your device supports flashing from your sdcard.

    Refer to the README for installation instructions.

  4. 1.44Retro-Go 1.442025-02-03 · 2025-02-03 19:44 UTC
    查看更新说明

    This release contains a few bug fixes and improvements but nothing major.

    • User interface is now multi-language (currently english and french)!
    • SNES can now support larger ROMs on some devices
    • New target: retro-ruler
    • New target: Byteboi rev.1
    • New target: Rachel ESP32
    • Retro-Go is now built with esp-idf 4.4

    How to choose the correct file: .img is to be used if you flash your device over USB, .fw if your device supports flashing from your sdcard.

    Note: I was not able to test this release as thoroughly as I usually do, but the diverging dev branches are becoming a problem for contributors so it is time to reunite...

  5. 1.43Retro-Go 1.432024-09-02 · 2024-09-02 18:03 UTC
    查看更新说明
    • All: Added ZIP support (large 4MB+ GBC roms not supported unfortunately)
    • Launcher: Added menu option to pre-compute all CRC32s (for cover art)
    • Launcher: Officially support name-based cover art (eg: /covers/nes/game name.png)
    • Launcher: Improved responsiveness when cover art/save preview is enabled
    • Launcher: Added network status/details in wifi dialog

    If you don't know which file you need: .img is to be used if you flash your device over USB, .fw if your device supports flashing from your sdcard.

    Note: I'm now uploading builds for all compatible devices but only ODROID-GO has been tested!

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Table of contents

    Description

    Retro-Go is a firmware to play retro games on ESP32-based devices (officially supported are ODROID-GO and MRGC-G32, check this list for other devices). The project consists of a launcher and half a dozen applications that have been heavily optimized to reduce their cpu, memory, and flash needs without reducing compatibility!

    Supported systems:

    • Nintendo: NES, SNES (slow), Gameboy, Gameboy Color, Game & Watch
    • Sega: SG-1000, Master System, Mega Drive / Genesis, Game Gear
    • Coleco: Colecovision
    • NEC: PC Engine
    • Atari: Lynx
    • Others: DOOM (including mods!)

    Retro-Go features:

    • In-game menu
    • Favorites and recently played
    • GB color palettes, RTC adjust and save
    • NES color palettes, PAL roms, NSF support
    • More emulators and applications
    • Scaling and filtering options
    • Better performance and compatibility
    • Turbo Speed/Fast forward
    • Customizable launcher
    • Cover art and save state previews
    • Multiple save slots per game
    • Wifi file manager
    • And more!

    Screenshots

    Preview

    Installation

    ODROID-GO

    1. Download retro-go_1.x_odroid-go.fw from the release page and copy it to /odroid/firmware on your sdcard.
    2. Power up the device while holding down B.
    3. Select retro-go in the files list and flash it.

    MyRetroGameCase G32 (GBC)

    1. Download retro-go_1.x_mrgc-g32.fw from the release page and copy it to /espgbc/firmware on your sdcard.
    2. Power up the device while holding down MENU (the volume knob).
    3. Select retro-go in the files list and flash it.

    Other devices

    1. Download the .img for your device from the release page.
    2. Connect your device to a computer with a USB cable.
    3. Flash the image with esptool:
      • Command line: Run esptool.py write_flash --flash_size detect 0x0 retro-go_*.img
      • Web version: Connect your device, click Erase Flash, then select your .img file and set address to 0x0, finally click Program)

    Your particular device may require extra steps (like holding a button during power up) or different esptool flags or a special cable. If the above steps fail, you might need to ask the manufacturer for instructions on how to flash new firmware!

    If your device is not already supported or if a prebuilt version isn't available for it you can check the development section for more information on how to build for your device.

    Usage

    Game covers / artwork

    Game covers should be placed in the romart folder at the base of your sd card. You can obtain a pre-made pack here. Retro-Go is also compatible with the older Go-Play romart pack.

    You can add missing cover art by creating a PNG image (160x168, 8bit). Two naming schemes are supported:

    • Filename-based: /romart/nes/Super Mario.png (notice the rom extension is not included)
    • CRC32-based: /romart/nes/A/ABCDE123.png where nes is the same as the rom folder, and ABCDE123 is the CRC32 of the game (press A -> Properties in the launcher to find it), and A is the first character of the CRC32

    Note: CRC32-based, which is what is used in the pre-made pack, is much slower than name-based! This type is useful because filenames vary greatly despite having identical CRCs, but if you generate your own art I suggest you use filename-based format and delete all CRC-based art from your SD Card to improve responsiveness.

    BIOS files

    Some emulators support loading a BIOS. The files should be placed as follows:

    • GB: /retro-go/bios/gb_bios.bin
    • GBC: /retro-go/bios/gbc_bios.bin
    • FDS: /retro-go/bios/fds_bios.bin
    • MSX: In folder /retro-go/bios/msx/ put: MSX.ROM MSX2.ROM MSX2EXT.ROM MSX2P.ROM MSX2PEXT.ROM FMPAC.ROM DISK.ROM MSXDOS2.ROM PAINTER.ROM KANJI.ROM

    Game & Watch

    The roms must be packed with LCD-Game-Shrinker and a tutorial can be found here.

    Wifi

    To use wifi you will need to create a /retro-go/config/wifi.json config file. You can define up to 4 different networks, then selectable in the menu. Its content should look like this:

    {
      "ssid0": "my-network",
      "password0": "my-password",
      "ssid1": "my-other-network",
      "password1": "my-password",
      "ssid2": "my-third-network",
      "password2": "my-password",
      "ssid3": "my-last-network",
      "password3": "my-password"
    }
    

    Time synchronization

    Time synchronization happens in the launcher immediately after a successful connection to the network. This is done via NTP by contacting pool.ntp.org and cannot be disabled at this time. Timezone can be configured in the launcher's options menu.

    File manager

    You can find the IP of your device in the about menu of retro-go. Then on your PC navigate to http://192.168.x.x/ to access the file manager.

    External DAC (headphones)

    Retro-Go supports the external DAC mod for the ODROID-GO which allows high quality audio through headphones. You can switch to it in the menu Audio Out: Ext DAC.

    GO PINPCM5102A PIN
    1GND
    2-
    3LCK
    4DIN
    5BCK
    6VIN
    7-
    8-
    9-
    10-

    Issues

    Black screen / Boot loops

    Retro-Go typically detects and resolves application crashes and freezes automatically. However, if you do get stuck in a boot loop, you can hold DOWN while powering up the device to return to the launcher.

    Sound quality

    The volume isn't correctly attenuated on the GO, resulting in upper volume levels that are too loud and lower levels that are distorted due to DAC resolution. A quick way to improve the audio is to cut one of the speaker wire and add a 33 Ohm (or thereabout) resistor in series. Soldering is better but not required, twisting the wires tightly will work just fine. A more involved solution can be seen here. Alternatively you can use the headphones DAC mod mentioned earlier in this document.

    Game Boy SRAM (aka Save/Battery/Backup RAM)

    In Retro-Go, save states will provide you with the best and most reliable save experience. That being said, please read on if you need or want SRAM saves. The SRAM format is compatible with VisualBoyAdvance so it may be used to import or export saves.

    You can configure automatic SRAM saving in the options menu. A longer delay will reduce stuttering at the cost of losing data when powering down too quickly. Also note that when resuming a game, Retro-Go will give priority to a save state if present.

    ZIP files

    Most Retro-Go applications now support ZIP files. ZIP archives should contain only one ROM file and nothing else. ZIP support also depends on available memory and larger ROMs may fail to load on some devices unfortunately.

    Development

    If you wish to build or modify Retro-Go, you can find help in the following documents:

    Acknowledgements

    License

    Everything in this project is licensed under the GPLv2 license with the exception of the following components:

    • fmsx/components/fmsx (MSX Emulator, custom non-commercial license)
    • handy-go/components/handy (Lynx emulator, zlib)