emulator: VeMUlator type: libretro core_classification: official_port source: "https://github.com/libretro/vemulator-libretro" upstream: "closed-source Android app (removed from Google Play ~2020)" profiled_date: "2026-03-25" core_version: "0.1" display_name: "VeMUlator" cores: - vemulator systems: - sega-vmu notes: | Sega Dreamcast VMU/VMS emulator. Same author (Mahmoud Jaoune) ported the original Android Java app to C++ for libretro. Emulates the Sanyo LC8670 CPU, 128 KB flash, 48x32 LCD, piezo buzzer, and timers. No BIOS files required. The core uses HLE exclusively: startCPU() checks BIOSExists (always false), then initializeHLE() sets SFR registers and system RAM directly (vmu.cpp:193-222). A loadBIOS() function exists (vmu.cpp:82-137) handling encrypted and unencrypted BIOS images, but is never called from the libretro interface. retro_load_game() only loads game flash data, with no system directory query. README lists BIOS support as planned. files: [] platform_details: hle_implementation: source_ref: "vmu.cpp:195-222" sfr_init: SP: "0x7F" PSW: "0x02" IE: "0x80" MCR: "0x08" P7: "0x02" OCR: "0xA3" BTCR: "0x41" ram_init: - "0x31 = 0xFF (battery level)" - "0x6E = 0xFF" - "P3 = 0xFF (no buttons pressed)" - "BCD date/time at 0x10-0x16, raw at 0x17-0x1D" notes: | HLE skips the BIOS boot sequence and jumps directly into the loaded game. System clock, date, and button state are initialized in RAM. The EXT register is set to 1 to signal HLE mode to the CPU (vmu.cpp:198-199). Games that depend on BIOS-initialized state beyond what HLE provides may not work correctly. unused_bios_loader: source_ref: "vmu.cpp:82-137" max_file_size: 61444 rom_load_size: 61440 encryption: "XOR 0x37 after stripping 4-byte header" detection: "first byte 0x2A (JMPF) = unencrypted, otherwise encrypted" notes: | The loadBIOS() method is fully implemented but unreachable from the libretro interface. No system directory query, no BIOS path construction, and no call site exists in main.cpp. A future update could wire this up to support real VMU firmware boot (file manager, clock, mini-games menu).