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
+23 -48
View File
@@ -1,7 +1,9 @@
emulator: Numero
type: libretro
core_classification: community_fork
source: "https://github.com/nbarkhina/numero"
profiled_date: "2026-03-18"
upstream: "https://github.com/sputt/wabbitemu"
profiled_date: "2026-03-24"
core_version: "v1.0"
display_name: "Texas Instruments TI-83 (Numero)"
cores:
@@ -10,38 +12,35 @@ systems:
- ti-83
notes: |
Numero is a TI-83 family calculator emulator for libretro, based on the
Wabbitemu emulator. Supports TI-83, TI-83 Plus and TI-83 Silver Edition.
Libretro port of Wabbitemu, a TI-83 family calculator emulator.
Supports TI-83, TI-83 Plus and TI-83 Plus Silver Edition.
A calculator ROM dump is required to run. The core searches for ROM files
in the system directory root with a fixed priority order
(libretronew.cpp:575-594):
A calculator ROM dump is required. The core searches sequentially in the
system directory (libretronew.cpp:575-594): ti83se.rom first, then
ti83plus.rom, then ti83.rom. The first found is loaded via rom_load()
(libretronew.cpp:608). file_present_in_system() checks existence only
via VFS open/close (libretronew.cpp:451-472). No hash or size validation.
1. ti83se.rom (TI-83 Silver Edition, recommended -- largest storage)
2. ti83plus.rom (TI-83 Plus)
3. ti83.rom (TI-83)
Without any ROM, the core shows a blank screen listing the expected
filenames (libretronew.cpp:1030-1042). No HLE fallback.
The first file found wins. file_present_in_system() checks existence only
(libretronew.cpp:451-472), then rom_load() loads it (libretronew.cpp:608).
Supports no-content launch (libretronew.cpp:556). Content files
(.8xp/.8xk/.8xg) are loaded on top of the running ROM via link cable
simulation. Auto-saves calculator state every 10 seconds
(libretronew.cpp:1050-1063).
There is no fallback or built-in ROM. If none of the three files are found,
the core starts without a BIOS and shows a blank screen with a status
message listing the expected filenames (libretronew.cpp:1034-1041).
The core supports no-content launch (RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME
is set to true, libretronew.cpp:555-556). Content files are .8xp/.8xk/.8xg
calculator programs loaded on top of the running ROM.
The emulator auto-saves calculator state every 10 seconds to preserve RAM
contents (the TI-83 has no persistent storage beyond battery-backed RAM).
Upstream Wabbitemu supports a wider model range (TI-73 through TI-84+CSE)
but the libretro wrapper only searches for TI-83 family filenames. The
underlying engine (calc.cpp:rom_load) auto-detects the model from the ROM
header.
files:
- name: "ti83se.rom"
system: ti-83
description: "TI-83 Silver Edition ROM dump"
description: "TI-83 Plus Silver Edition ROM dump"
required: false
source_ref: "libretronew.cpp:576-578"
notes: "Checked first. Recommended by the author for largest storage capacity."
notes: "Checked first. Recommended for largest storage capacity."
- name: "ti83plus.rom"
system: ti-83
@@ -55,28 +54,4 @@ files:
description: "TI-83 ROM dump"
required: false
source_ref: "libretronew.cpp:591-593"
notes: "Checked last. Original TI-83 (non-Plus) ROM."
platform_details:
bios_search:
source_ref: "libretronew.cpp:451-472, 575-608"
notes: |
file_present_in_system() opens a read handle via libretro VFS to
test file existence. The search is sequential: ti83se.rom first,
then ti83plus.rom, then ti83.rom. Only one ROM is loaded.
rom_loading:
source_ref: "src/Interface/calc.cpp (rom_load)"
notes: |
rom_load() detects the calculator model from the ROM image header
and initializes the appropriate hardware (83, 83+, 83SE). Each
model gets its own progress/save directory via setProgressDir().
content_loading:
formats: "8xp, 8xk, 8xg"
source_ref: "libretronew.cpp:483, 769"
notes: |
Calculator programs (.8xp), apps (.8xk) and groups (.8xg) are
loaded into the running calculator via the sendfile mechanism,
simulating the link cable transfer. Multiple programs can be
loaded sequentially onto the same ROM session.
notes: "Checked last. Original TI-83 (non-Plus)."