Skip to content

# O2EM - RetroBIOS

Type | libretro
Classification | community_fork
Source | https://github.com/libretro/libretro-o2em
Upstream | https://sourceforge.net/projects/o2em/
Version | 1.18
Profiled | 2026-03-24
Cores | o2em_libretro
Systems | odyssey2, videopac
Core ID | o2em_libretro

Technical notes

Libretro port of O2EM, an Odyssey2/Videopac emulator by Daniel Boris and André de la Rocha. Port by Arlindo M. de Oliveira.

One BIOS ROM selected via o2em_bios core option (default o2rom.bin). Loaded into rom_table[0] (1024 bytes), identified by CRC32. vpp=1 for Videopac+ variants (g7400.bin, jopac.bin). Core fails to load without the selected BIOS.

Voice module ("The Voice" speech synthesis add-on) emulation via WAV samples in system/voice/. 9 banks × 128 samples, named {bank}{sample}.WAV (e.g. E480.WAV). Compiled with HAVE_VOICE=1 on most platforms. Optional: core works without samples, speech is silently skipped.

BIOS loading: libretro.c load_bios() lines 145-212. BIOS selection: libretro_core_options.h lines 52-64. Voice loading: voice.c init_voice() lines 38-79, called from libretro.c:1025-1032.

5 files | 4 required, 1 optional | 4 in repo, 1 missing Categories: 4 BIOS, 1 game data

`o2rom.bin` -required, north-america

- System: odyssey2
- Size: 1.0 KB
- SHA1: `b2e1955d957a475de2411770452eff4ea19f4cee`
- MD5: `562d5ebf9e030a40d6fabfc2f33139fd`
- CRC32: `8016a315`
- Validation: size, crc32
- Source: `libretro.c:182-186`
- Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- Odyssey2 BIOS (G7000 NTSC). Default, vpp=0.

`c52.bin` -required, europe

- System: videopac
- Size: 1.0 KB
- SHA1: `a6120aed50831c9c0d95dbdf707820f601d9452e`
- MD5: `f1071cdb0b6b10dde94d3bc8a6146387`
- CRC32: `a318e8d6`
- Validation: size, crc32
- Source: `libretro.c:192-197`
- Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- Videopac G7000 European BIOS. vpp=0, auto-sets PAL.

`g7400.bin` -required, europe

- System: videopac
- Size: 1.0 KB
- SHA1: `5130243429b40b01a14e1304d0394b8459a6fbae`
- MD5: `c500ff71236068e0dc0d0603d265ae76`
- CRC32: `e20a9f41`
- Validation: size, crc32
- Source: `libretro.c:187-191`
- Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- Videopac+ G7400 European BIOS. vpp=1.

`jopac.bin` -required, france

- System: videopac
- Size: 1.0 KB
- SHA1: `54b8d2c1317628de51a85fc1c424423a986775e4`
- MD5: `279008e4a0db2dc5f1c048853b033828`
- CRC32: `11647ca5`
- Validation: size, crc32
- Source: `libretro.c:198-203`
- Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- Videopac+ G7400 French BIOS (JoPac). vpp=1.

`voice/` -optional, game_data, missing from repo

- Source: `voice.c:38-79, libretro.c:1025-1032`
- The Voice speech synthesis WAV samples. 9 banks (E4, E8-EF) × 128 samples.

Generated on 2026-03-25T14:56:43Z