Files
libretro/emulators/vemulator.yml
T
Abdessamad Derraz e7aa9e870b fix: state libretro core versions from their code
Each libretro profile records version_basis and core_version is read
there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba
0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build
takes its version from git carry the nearest tag in describe form
(flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders
copied from .info files (Git, SVN) are replaced by the code's statement,
and a code that states none is null with kind none.
2026-10-27 19:21:27 +01:00

69 lines
2.4 KiB
YAML

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"
source_commit: "27a062f6ae532e5028e4fb54f523cc689e78146a"
core_version: "0.1"
version_basis:
kind: file
path: "main.cpp"
pattern: 'info->library_version\s*=\s*"([^"]+)"'
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"
note: |
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"
note: |
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).