Arduous - RetroBIOS¶
| Type | libretro |
| Source | https://github.com/libretro/arduous |
| Version | 0.1.0 |
| Profiled | 2026-03-18 |
| Cores | arduous |
| Systems | arduboy |
No BIOS or firmware files required. This core is self-contained.
Arduous is an Arduboy emulator built on simavr (ATmega32U4 AVR simulator) with SSD1306 OLED display emulation, ported to libretro. It is distinct from the Ardens core, which is a separate Arduboy emulator.
No BIOS, bootloader, or system files are required. The core operates as a pure AVR simulator:
-
The game content (.hex Intel HEX format) is parsed at load time via an in-tree ihex reader (arduous.cpp:60-166) and written directly into the simavr flash memory at the address specified in the hex file (arduous.cpp:189). No separate bootloader is loaded.
-
The MCU is hardcoded to atmega32u4 at 16 MHz (arduous.h:70-71). simavr handles CPU initialization internally via avr_make_mcu_by_name().
-
A commented-out loadFirmware() function (arduous.cpp:22-29) suggests ELF firmware loading was considered but never implemented.
-
EEPROM (1024 bytes), system RAM, and VRAM are exposed via the libretro memory interface (RETRO_MEMORY_SAVE_RAM, RETRO_MEMORY_SYSTEM_RAM, RETRO_MEMORY_VIDEO_RAM) but are not loaded from external files.
-
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The retro_load_game() function only reads the content data buffer passed by the frontend (libretro.cpp:108-110).
-
RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME is set to false (libretro.cpp:123), meaning a game ROM is always required.
Supported ROM format: Intel HEX (.hex) only. The valid_extensions field lists "hex". A TODO comment mentions .arduboy ZIP support but it is not implemented.
Generated on 2026-03-20T19:12:20Z