Files
libretro/emulators/o2em.yml
T
Abdessamad Derraz 50beb0ca27 fix: o2em reads one BIOS, chosen by an option
o2em_bios defaults to o2rom.bin and only the chosen file is opened (libretro_core_options.h:52-64, libretro.c:989). Loading fails when it is missing or under 1024 bytes (libretro.c:160-189, 1043-1044). The four files share a variant group, o2rom.bin stays required, the others are optional. Only the first 1024 bytes are read and an unknown CRC still loads, so size becomes min_size and crc32 leaves validation.
2026-10-20 14:56:38 +02:00

95 lines
3.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
emulator: O2EM
type: libretro
core_classification: community_fork
core: o2em_libretro
cores: [o2em_libretro]
source: "https://github.com/libretro/libretro-o2em"
upstream: "https://sourceforge.net/projects/o2em/"
profiled_date: "2026-03-24"
source_commit: "679d6fec04963f6e70a7ec217e3d0ebb1fe472fc"
core_version: "1.18"
display_name: "Magnavox - Odyssey2 / Philips Videopac+ (O2EM)"
systems:
- odyssey2
- videopac
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. The CRC32 sets
the model (vpp and bios), and an unknown one still loads with vpp=0.
ref: libretro.c:194-226
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: load_bios() at libretro.c:150-229.
BIOS selection: libretro_core_options.h:52-64.
Voice loading: init_voice() at src/voice.c:39-91, called from libretro.c:1060-1067.
files:
- name: "o2rom.bin"
system: odyssey2
required: true
variant_group: "o2em-bios"
min_size: 1024
md5: "562d5ebf9e030a40d6fabfc2f33139fd"
sha1: "b2e1955d957a475de2411770452eff4ea19f4cee"
crc32: "8016a315"
validation: [size]
note: >
Odyssey2 BIOS (G7000 NTSC), vpp=0. The default value of o2em_bios, so
the core opens it unless another BIOS is chosen. retro_load_game fails
when the chosen file cannot be opened or holds fewer than 1024 bytes.
Only the first 1024 bytes are read.
source_ref: "libretro_core_options.h:52-64, libretro.c:1143-1147, libretro.c:989, libretro.c:1043-1044, libretro.c:160-189"
- name: "c52.bin"
system: videopac
required: false
variant_group: "o2em-bios"
min_size: 1024
md5: "f1071cdb0b6b10dde94d3bc8a6146387"
sha1: "a6120aed50831c9c0d95dbdf707820f601d9452e"
crc32: "a318e8d6"
validation: [size]
note: "Videopac G7000 European BIOS. vpp=0, auto-sets PAL. Opened only when o2em_bios names it."
source_ref: "libretro_core_options.h:52-64, libretro.c:1149-1155, libretro.c:1043-1044"
- name: "g7400.bin"
system: videopac
required: false
variant_group: "o2em-bios"
min_size: 1024
md5: "c500ff71236068e0dc0d0603d265ae76"
sha1: "5130243429b40b01a14e1304d0394b8459a6fbae"
crc32: "e20a9f41"
validation: [size]
note: "Videopac+ G7400 European BIOS. vpp=1. Opened only when o2em_bios names it."
source_ref: "libretro_core_options.h:52-64, libretro.c:1156-1161, libretro.c:1043-1044"
- name: "jopac.bin"
system: videopac
required: false
variant_group: "o2em-bios"
min_size: 1024
md5: "279008e4a0db2dc5f1c048853b033828"
sha1: "54b8d2c1317628de51a85fc1c424423a986775e4"
crc32: "11647ca5"
validation: [size]
note: "Videopac+ G7400 French BIOS (JoPac). vpp=1. Opened only when o2em_bios names it."
source_ref: "libretro_core_options.h:52-64, libretro.c:1162-1167, libretro.c:1043-1044"
- name: "voice/"
type: directory
required: false
category: game_data
note: "The Voice speech synthesis WAV samples. 9 banks (E4, E8-EF) × 128 samples."
source_ref: "src/voice.c:38-90, libretro.c:1060-1068"