feat: re-profile 37 emulators with upstream verification

source-verified core_classification, upstream URLs, validation fields,
and hle_fallback flags. trimmed verbose notes. removed phantom files
(azahar boot9/sector0x96). added bsnes2014 variant profiles.
This commit is contained in:
Abdessamad Derraz
2026-03-23 10:58:32 +01:00
parent 06f5157c35
commit 26f2824259
37 changed files with 1086 additions and 698 deletions

View File

@@ -1,7 +1,9 @@
emulator: a5200
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/a5200"
profiled_date: "2026-03-18"
upstream: "https://github.com/alekmaul/a5200"
profiled_date: "2026-03-22"
core_version: "2.0.2"
display_name: "Atari - 5200 (a5200)"
cores:
@@ -9,23 +11,25 @@ cores:
systems:
- atari-5200
# a5200 is a dedicated Atari 5200 emulator forked from Atari800/Atari++ codebase.
# It loads the official 5200 OS ROM from <system_dir>/5200.rom (2048 bytes, mapped
# to memory at 0xF800-0xFFFF via MEMORY_InitialiseMachine).
# Dedicated Atari 5200 emulator forked from Atari800 2.0.2 codebase by Alekmaul
# for GCW Zero. Libretro port later enhanced by wavemotion-dave with Altirra OS
# fallback, Super Cart support, frame blending and analog input.
#
# If 5200.rom is missing or the user selects "internal" via core option "a5200_bios",
# the core falls back to Altirra 5200 OS, an open-source replacement compiled from
# Altirra-3.20-test4 (altirra_5200_os.c). The fallback has reduced compatibility
# compared to the original Atari OS ROM.
# Loads 5200 OS ROM from <system_dir>/5200.rom (2048 bytes, mapped to 0xF800-0xFFFF
# via MEMORY_InitialiseMachine). If missing or user selects "internal" via core
# option "a5200_bios", falls back to built-in Altirra 5200 OS (altirra_5200_os.c,
# compiled from Altirra-3.20-test4).
#
# BIOS loading (libretro.c:409-500):
# BIOS loading (libretro.c:408-499):
# 1. check_bios_variable() reads core option "a5200_bios" (official/internal)
# 2. load_bios() attempts to read <system_dir>/5200.rom (0x800 bytes)
# 3. On failure or "internal" selected: memcpy from ROM_altirra_5200_os fallback
# 2. load_bios() reads <system_dir>/5200.rom, validates size == 0x800
# 3. On failure or "internal" selected: memcpy from ROM_altirra_5200_os
#
# Cartridge detection (atari.c:169-236):
# Auto-detects cart type from header bytes and size. ROM database in cartridge.c
# maps MD5 hashes to cart types (standard 8K/16K/32K/40K, bounty bob, super cart).
# Upstream divergence: alekmaul's standalone requires 5200.rom (exits on missing).
# Libretro port makes it optional via Altirra fallback.
#
# Cart type detection via MD5 database in cartridge.c (standard 4K-512K, bounty bob,
# super cart, EE banked). Unknown ROMs detected by size heuristic.
files:
- name: "5200.rom"
@@ -33,19 +37,8 @@ files:
size: 2048
required: false
hle_fallback: true
validation: [size]
note: >
Atari 5200 OS ROM. Provides the built-in OS routines used by all 5200
cartridges. Without it, the core uses the Altirra open-source replacement
which has lower compatibility with some games. Core option "a5200_bios"
controls whether to use this file or the internal fallback.
source_ref: "libretro/libretro.c:58-59, libretro/libretro.c:409-500, emu/memory.c:46"
notes:
altirra_fallback: >
The built-in Altirra 5200 OS (from altirra_5200_os.c, 0x800 bytes) is a free
replacement that works for most games but some titles require the original ROM
for full compatibility. The core displays a notification when falling back.
cart_db: >
cartridge.c contains an MD5-based ROM database for automatic cart type detection
(standard, EE banked, bounty bob, super cart variants). Unknown ROMs are detected
by size heuristic.
Atari 5200 OS ROM. Core option "a5200_bios" controls official vs internal.
Altirra replacement has lower compatibility with some titles.
source_ref: "libretro/libretro.c:58-59, libretro/libretro.c:408-499, emu/memory.c:46"