feat: re-profile 22 emulators, refactor validation to common.py

batch re-profiled nekop2 through pokemini. mupen64plus renamed to
mupen64plus_next. new profiles: nes, mupen64plus_next.
validation functions (_build_validation_index, check_file_validation)
consolidated in common.py — single source of truth for verify.py
and generate_pack.py. pipeline 100% consistent on all 6 platforms.
This commit is contained in:
Abdessamad Derraz
2026-03-24 22:31:22 +01:00
parent 94000bdaef
commit 0543165ed2
33 changed files with 1449 additions and 783 deletions
+26 -45
View File
@@ -1,8 +1,11 @@
emulator: O2EM
type: libretro
core_classification: community_fork
core: o2em_libretro
cores: [o2em_libretro]
source: "https://github.com/libretro/libretro-o2em"
profiled_date: "2026-03-18"
upstream: "https://sourceforge.net/projects/o2em/"
profiled_date: "2026-03-24"
core_version: "1.18"
display_name: "Magnavox - Odyssey2 / Philips Videopac+ (O2EM)"
systems:
@@ -10,28 +13,24 @@ systems:
- 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.
Libretro port of O2EM, an Odyssey2/Videopac emulator by Daniel Boris
and André de la Rocha. Port by Arlindo M. de Oliveira.
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).
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.
The core will not start without a valid BIOS file present.
Any single BIOS from the list below is sufficient for its region/hardware.
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.
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.
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.
files:
# -------------------------------------------------------
# Magnavox Odyssey2 (NTSC) - G7000 model
# -------------------------------------------------------
- name: "o2rom.bin"
system: odyssey2
region: [north-america]
@@ -41,12 +40,9 @@ files:
sha1: "b2e1955d957a475de2411770452eff4ea19f4cee"
crc32: "8016a315"
validation: [size, crc32]
note: "Magnavox Odyssey2 BIOS (G7000 NTSC). Default BIOS, vpp=0."
note: "Odyssey2 BIOS (G7000 NTSC). Default, vpp=0."
source_ref: "libretro.c:182-186"
# -------------------------------------------------------
# Philips Videopac G7000 (European)
# -------------------------------------------------------
- name: "c52.bin"
system: videopac
region: [europe]
@@ -56,12 +52,9 @@ files:
sha1: "a6120aed50831c9c0d95dbdf707820f601d9452e"
crc32: "a318e8d6"
validation: [size, crc32]
note: "Philips Videopac G7000 European BIOS. vpp=0, auto-sets PAL region."
note: "Videopac G7000 European BIOS. vpp=0, auto-sets PAL."
source_ref: "libretro.c:192-197"
# -------------------------------------------------------
# Philips Videopac+ G7400 (European)
# -------------------------------------------------------
- name: "g7400.bin"
system: videopac
region: [europe]
@@ -71,12 +64,9 @@ files:
sha1: "5130243429b40b01a14e1304d0394b8459a6fbae"
crc32: "e20a9f41"
validation: [size, crc32]
note: "Philips Videopac+ G7400 European BIOS. vpp=1, enables enhanced graphics."
note: "Videopac+ G7400 European BIOS. vpp=1."
source_ref: "libretro.c:187-191"
# -------------------------------------------------------
# Philips Videopac+ G7400 (French) - JoPac
# -------------------------------------------------------
- name: "jopac.bin"
system: videopac
region: [france]
@@ -86,20 +76,11 @@ files:
sha1: "54b8d2c1317628de51a85fc1c424423a986775e4"
crc32: "11647ca5"
validation: [size, crc32]
note: "Philips Videopac+ G7400 French BIOS (JoPac). vpp=1, enables enhanced graphics."
note: "Videopac+ G7400 French BIOS (JoPac). vpp=1."
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"
- name: "voice/"
required: false
category: game_data
note: "The Voice speech synthesis WAV samples. 9 banks (E4, E8-EF) × 128 samples."
source_ref: "voice.c:38-79, libretro.c:1025-1032"