Files
libretro/emulators/arduous.yml
Abdessamad Derraz 58f3006d20 docs: add core_version, display_name to all 260 emulator profiles
Every profile now has:
- profiled_date: date of source code analysis
- core_version: version from libretro-core-info .info files
- display_name: human-readable name from .info files

260/260 profiles complete. 294/294 libretro cores covered.
Standalone emulators (cemu, rpcs3, xemu, vita3k) versioned manually.
2026-03-18 05:20:05 +01:00

47 lines
1.7 KiB
YAML

emulator: Arduous
type: libretro
source: "https://github.com/libretro/arduous"
profiled_date: "2026-03-18"
core_version: "0.1.0"
display_name: "Arduboy (Arduous)"
cores:
- arduous
systems:
- arduboy
notes: |
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.
files: []