Files
libretro/emulators/o2em.yml
Abdessamad Derraz 1d350f0578 feat: add emulator/system pack generation, validation checks, path resolution
add --emulator, --system, --standalone, --list-emulators, --list-systems
to verify.py and generate_pack.py. packs are RTU with data directories,
regional BIOS variants, and archive support.

validation: field per file (size, crc32, md5, sha1) with conflict
detection. by_path_suffix index in database.json for regional variant
resolution via dest_hint. restructure GameCube IPL to regional subdirs.

66 E2E tests, full pipeline verified.
2026-03-22 14:02:20 +01:00

106 lines
3.8 KiB
YAML

emulator: O2EM
type: libretro
core: o2em_libretro
source: "https://github.com/libretro/libretro-o2em"
profiled_date: "2026-03-18"
core_version: "1.18"
display_name: "Magnavox - Odyssey2 / Philips Videopac+ (O2EM)"
systems:
- odyssey2
- videopac
notes: |
O2EM is the libretro port of the Odyssey2/Videopac emulator.
The core requires exactly one BIOS ROM selected via the o2em_bios core option.
Default is o2rom.bin (Odyssey2 NTSC). The user can switch to c52.bin, g7400.bin
or jopac.bin for European/French Videopac variants.
BIOS files are loaded from the system directory into rom_table[0] (1024 bytes).
The core identifies the BIOS variant by CRC32 and sets the vpp flag accordingly
(vpp=1 enables Videopac+ enhanced graphics for g7400.bin and jopac.bin).
The core will not start without a valid BIOS file present.
Any single BIOS from the list below is sufficient for its region/hardware.
All BIOS files are exactly 1 KB (1024 bytes).
BIOS detection: libretro.c load_bios() lines 146-212, CRC32 switch.
BIOS selection: libretro_core_options.h o2em_bios option lines 52-64.
Core option handling: libretro.c lines 1107-1134.
files:
# -------------------------------------------------------
# Magnavox Odyssey2 (NTSC) - G7000 model
# -------------------------------------------------------
- name: "o2rom.bin"
system: odyssey2
region: [north-america]
required: true
size: 1024
md5: "562d5ebf9e030a40d6fabfc2f33139fd"
sha1: "b2e1955d957a475de2411770452eff4ea19f4cee"
crc32: "8016a315"
validation: [size, crc32]
note: "Magnavox Odyssey2 BIOS (G7000 NTSC). Default BIOS, vpp=0."
source_ref: "libretro.c:182-186"
# -------------------------------------------------------
# Philips Videopac G7000 (European)
# -------------------------------------------------------
- name: "c52.bin"
system: videopac
region: [europe]
required: true
size: 1024
md5: "f1071cdb0b6b10dde94d3bc8a6146387"
sha1: "a6120aed50831c9c0d95dbdf707820f601d9452e"
crc32: "a318e8d6"
validation: [size, crc32]
note: "Philips Videopac G7000 European BIOS. vpp=0, auto-sets PAL region."
source_ref: "libretro.c:192-197"
# -------------------------------------------------------
# Philips Videopac+ G7400 (European)
# -------------------------------------------------------
- name: "g7400.bin"
system: videopac
region: [europe]
required: true
size: 1024
md5: "c500ff71236068e0dc0d0603d265ae76"
sha1: "5130243429b40b01a14e1304d0394b8459a6fbae"
crc32: "e20a9f41"
validation: [size, crc32]
note: "Philips Videopac+ G7400 European BIOS. vpp=1, enables enhanced graphics."
source_ref: "libretro.c:187-191"
# -------------------------------------------------------
# Philips Videopac+ G7400 (French) - JoPac
# -------------------------------------------------------
- name: "jopac.bin"
system: videopac
region: [france]
required: true
size: 1024
md5: "279008e4a0db2dc5f1c048853b033828"
sha1: "54b8d2c1317628de51a85fc1c424423a986775e4"
crc32: "11647ca5"
validation: [size, crc32]
note: "Philips Videopac+ G7400 French BIOS (JoPac). vpp=1, enables enhanced graphics."
source_ref: "libretro.c:198-203"
platform_details:
odyssey2:
bios_size: 1024
bios_selection: "core option o2em_bios, default o2rom.bin"
detection_method: "CRC32 of 1024-byte ROM"
hle_available: false
source_ref: "libretro.c:146-212, libretro_core_options.h:52-64"
videopac:
bios_size: 1024
bios_selection: "core option o2em_bios, choose c52/g7400/jopac"
detection_method: "CRC32 of 1024-byte ROM"
vpp_flag: "g7400.bin and jopac.bin set vpp=1 for enhanced graphics"
hle_available: false
source_ref: "libretro.c:146-212, libretro_core_options.h:52-64"