diff --git a/database.json b/database.json index bfd18676..4053d2b9 100644 --- a/database.json +++ b/database.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-03-22T11:56:36Z", + "generated_at": "2026-03-22T13:37:37Z", "total_files": 6733, "total_size": 5288642642, "files": { diff --git a/emulators/jumpnbump.yml b/emulators/jumpnbump.yml index f35646df..ef064b44 100644 --- a/emulators/jumpnbump.yml +++ b/emulators/jumpnbump.yml @@ -1,14 +1,25 @@ emulator: Jump 'n Bump type: game +core_classification: community_fork source: "https://github.com/libretro/jumpnbump-libretro" -profiled_date: "2026-03-18" +upstream: "https://github.com/fabiangreffrath/jumpnbump" +profiled_date: "2026-03-22" core_version: "v0.1" display_name: "Jump 'n Bump" cores: [jumpnbump] systems: [] -files: [] -notes: > + +notes: | Libretro port of Jump 'n Bump, a multiplayer bunny-stomping platformer - originally by Brainchild Design (1998). Released as freeware. - Game data (sprites, levels, sounds) is compiled into the binary. - No content file, BIOS, or system directory files required. + originally by Brainchild Design (1998). Released as freeware under GPL. + + The core loads a .dat archive file as content via retro_load_game(). + All game resources (sprites, sounds, levels, fonts, music) are packed + inside the .dat file. No system directory files, BIOS, or firmware + required. The .dat file is built from the data/ directory by the + jnbpack tool in the upstream repo. + + Extra levels are available from brainchilddesign.com as additional + .dat files. + +files: [] diff --git a/emulators/kronos.yml b/emulators/kronos.yml index 895ef605..54370695 100644 --- a/emulators/kronos.yml +++ b/emulators/kronos.yml @@ -1,93 +1,80 @@ emulator: Kronos type: libretro -cores: - - kronos_libretro - - yabause_libretro -source: "https://github.com/FCare/Kronos" -profiled_date: "2026-03-18" +core_classification: official_port +source: "https://github.com/libretro/yabause" +upstream: "https://github.com/FCare/Kronos" +profiled_date: "2026-03-22" core_version: "v2.6.0" display_name: "Sega - Saturn/ST-V (Kronos)" +cores: + - kronos systems: - sega-saturn - sega-stv notes: | - Kronos is a Sega Saturn and ST-V arcade emulator forked from Yabause. - The libretro repo at libretro/yabause ships the older "Yabause" core - (yabause_libretro) which handles Saturn only and has no STV support. + Kronos is a Sega Saturn and ST-V arcade emulator by FCare, forked from + Yabause. Requires OpenGL 4.3 compute shaders. - Saturn BIOS search order (Kronos): + Saturn BIOS search order: 1. {system}/kronos/saturn_bios.bin 2. {system}/saturn_bios.bin 3. {system}/sega_101.bin 4. {system}/mpr-17933.bin - First file found wins. Real BIOS required, HLE is deprecated and causes - issues. Multi-disc (m3u) also forces real BIOS. + First file found wins. Real BIOS required (HLE deprecated, only available + via kronos_force_hle_bios core option for debugging). - Saturn BIOS search order (YabaSanshiro / Yabause): - 1. {system}/saturn_bios.bin - 2. {system}/sega_101.bin - 3. {system}/mpr-17933.bin - Falls back to HLE if none found, but HLE is not recommended. + ST-V BIOS: {system}/kronos/stvbios.zip or {system}/stvbios.zip + MAME-style ZIP containing region-specific EPROMs. Kronos picks the best + match by game region and kronos_stv_favorite_region core option (EU/US/JP/TW). - ST-V BIOS (Kronos only): - {system}/kronos/stvbios.zip or {system}/stvbios.zip - The ZIP is a MAME-style romset containing region-specific EPROMs. - Kronos picks the first matching BIOS by region, with a configurable - "favorite region" core option (EU/US/JP/TW). The ZIP must contain - at least one of the BIOS blobs listed below. ST-V games are detected - automatically when loading a .zip file. + ROM cartridges for KOF95 and Ultraman are auto-detected via game database + (db.c) and loaded from system_dir when the corresponding game is running. BIOS loading: libretro.c retro_load_game() lines 1601-1727. STV blob table: ctrl/src/stv.c BiosList lines 112-136. - Region enums: ctrl/include/stv.h lines 47-52. + ROM cartridge DB: utils/src/db.c lines 43-45. files: # ----------------------------------------------------------- - # Saturn BIOS - generic (any region accepted) + # Saturn BIOS - primary (any region) # ----------------------------------------------------------- - name: "saturn_bios.bin" system: sega-saturn required: true - size: 524288 # 512 KB (0x80000) - note: "Primary Saturn BIOS. Any region. Searched first by both cores." - source_ref: "libretro.c:1619-1623 (kronos), libretro.c:1035 (yabause)" + size: 524288 + note: "Primary Saturn BIOS. Any region accepted. Searched in kronos/ subdir first." + source_ref: "libretro.c:1619-1623" # ----------------------------------------------------------- - # Saturn BIOS - Japan v1.01 + # Saturn BIOS - Japan v1.01 (fallback) # ----------------------------------------------------------- - name: "sega_101.bin" system: sega-saturn region: [japan] required: false size: 524288 - md5: "85ec9ca47d8f6807718151cbcca8b964" note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing." - source_ref: "libretro.c:1627 (kronos), libretro.c:1039 (yabause)" + source_ref: "libretro.c:1627" # ----------------------------------------------------------- - # Saturn BIOS - NA/EU + # Saturn BIOS - NA/EU (fallback) # ----------------------------------------------------------- - name: "mpr-17933.bin" system: sega-saturn region: [north-america, europe] required: false size: 524288 - md5: "3240872c70984b6cbfda1586cab68dbe" note: "Saturn BIOS (NA/EU). Last fallback for Saturn mode." - source_ref: "libretro.c:1631 (kronos), libretro.c:1043 (yabause)" + source_ref: "libretro.c:1631" # ----------------------------------------------------------- - # ST-V Arcade BIOS (stvbios.zip) - Kronos only + # ST-V Arcade BIOS (stvbios.zip) - MAME romset # ----------------------------------------------------------- - name: "stvbios.zip" system: sega-stv required: true - note: > - MAME-style ZIP containing ST-V region BIOS EPROMs. Required for - ST-V arcade games. Kronos picks the best match based on game - region and the stv_favorite_region core option. At least one - BIOS blob must be present. Searched in kronos/ subdir first. + note: "MAME-style ZIP containing ST-V region BIOS EPROMs. Searched in kronos/ subdir first." source_ref: "libretro.c:1608-1617, ctrl/src/stv.c:112-136" # ----------------------------------------------------------- @@ -96,146 +83,146 @@ files: # Japan - name: "epr-23603.ic8" + archive: stvbios.zip system: sega-stv region: [japan] required: false size: 524288 crc32: "f688ae60" - note: "STV BIOS Japan (latest). Inside stvbios.zip." source_ref: "stv.c:120" - name: "epr-20091.ic8" + archive: stvbios.zip system: sega-stv region: [japan] required: false size: 524288 crc32: "59ed40f4" - note: "STV BIOS Japan v1. Inside stvbios.zip." source_ref: "stv.c:121" - name: "epr-19730.ic8" + archive: stvbios.zip system: sega-stv region: [japan] required: false size: 524288 crc32: "d0e0889d" - note: "STV BIOS Japan v2. Inside stvbios.zip." source_ref: "stv.c:122" - name: "epr-17951a.ic8" + archive: stvbios.zip system: sega-stv region: [japan] required: false size: 524288 crc32: "2672f9d8" - note: "STV BIOS Japan v3. Inside stvbios.zip." source_ref: "stv.c:123" - name: "epr-17740a.ic8" + archive: stvbios.zip system: sega-stv region: [japan] required: false size: 524288 crc32: "3e23c81f" - note: "STV BIOS Japan v4. Inside stvbios.zip." source_ref: "stv.c:124" - name: "epr-17740.ic8" + archive: stvbios.zip system: sega-stv region: [japan] required: false size: 524288 crc32: "5c5aa63d" - note: "STV BIOS Japan v5. Inside stvbios.zip." source_ref: "stv.c:125" # Europe - name: "epr-17954a.ic8" + archive: stvbios.zip system: sega-stv region: [europe] required: false size: 524288 crc32: "f7722da3" - note: "STV BIOS Europe. Inside stvbios.zip." source_ref: "stv.c:126" # USA - name: "epr-17952a.ic8" + archive: stvbios.zip system: sega-stv region: [north-america] required: false size: 524288 crc32: "d1be2adf" - note: "STV BIOS USA. Inside stvbios.zip." source_ref: "stv.c:127" - name: "epr-17741a.ic8" + archive: stvbios.zip system: sega-stv region: [north-america] required: false size: 524288 crc32: "4166c663" - note: "STV BIOS USA v1. Inside stvbios.zip." source_ref: "stv.c:128" # Taiwan - name: "epr-19854.ic8" + archive: stvbios.zip system: sega-stv region: [taiwan] required: false size: 524288 crc32: "e09d1f60" - note: "STV BIOS Taiwan. Inside stvbios.zip." source_ref: "stv.c:129" - name: "epr-17953a.ic8" + archive: stvbios.zip system: sega-stv region: [taiwan] required: false size: 524288 crc32: "a4c47570" - note: "STV BIOS Taiwan v1. Inside stvbios.zip." source_ref: "stv.c:130" - name: "epr-17742a.ic8" + archive: stvbios.zip system: sega-stv region: [taiwan] required: false size: 524288 crc32: "02daf123" - note: "STV BIOS Taiwan v2. Inside stvbios.zip." source_ref: "stv.c:131" # Debug / Dev - name: "stv110.bin" + archive: stvbios.zip system: sega-stv required: false size: 524288 crc32: "3dfeda92" - note: "STV debug BIOS. Inside stvbios.zip. Not used in normal operation." source_ref: "stv.c:132" - name: "stv1061.bin" + archive: stvbios.zip system: sega-stv required: false size: 524288 crc32: "728dbca3" - note: "STV dev BIOS. Inside stvbios.zip. Not used in normal operation." source_ref: "stv.c:133" -platform_details: - saturn: - bios_size: 524288 - bios_address: "0x00000000-0x0007FFFF" - hle_available: true - hle_recommended: false - kronos_bios_subdir: "kronos" - source_ref: "sys/memory/src/memory.c:1346, libretro.c:1619-1638" - stv: - bios_format: "MAME-style ZIP (stvbios.zip)" - blob_size: 524288 - blob_load_address: "0x000000" - regions: [japan, europe, north-america, taiwan] - region_selection: "automatic per game, overridable via kronos_stv_favorite_region" - kronos_bios_subdir: "kronos" - source_ref: "ctrl/src/stv.c:112-136, ctrl/include/stv.h:47-52" + # ----------------------------------------------------------- + # ROM Cartridges (game-specific, loaded from system_dir) + # ----------------------------------------------------------- + - name: "mpr-18811-mx.ic1" + system: sega-saturn + required: false + size: 2097152 + note: "ROM cartridge for The King of Fighters '95. Auto-detected via game DB." + source_ref: "utils/src/db.c:43-44, sys/memory/src/cs0.c:1526-1544" + + - name: "mpr-19367-mx.ic1" + system: sega-saturn + required: false + size: 2097152 + note: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu. Auto-detected via game DB." + source_ref: "utils/src/db.c:45, sys/memory/src/cs0.c:1526-1544" diff --git a/emulators/lowresnx.yml b/emulators/lowresnx.yml index aae9b267..ad2047c4 100644 --- a/emulators/lowresnx.yml +++ b/emulators/lowresnx.yml @@ -1,7 +1,9 @@ emulator: LowRes NX type: libretro +core_classification: official_port source: "https://github.com/timoinutilis/lowres-nx" -profiled_date: "2026-03-18" +upstream: "https://github.com/timoinutilis/lowres-nx" +profiled_date: "2026-03-22" core_version: "v1.2" display_name: "LowRes NX" cores: @@ -12,34 +14,13 @@ systems: notes: | LowRes NX is a fantasy console simulating an imaginary 8/16-bit handheld. It runs programs written in a custom BASIC dialect, loaded as .nx files. + The libretro port is maintained by the upstream author (timoinutilis) in + the same repository. - The libretro port reads game content entirely through the retro_game_info - data buffer (need_fullpath = false, libretro_main.c:317). The .nx source - code is copied into memory at retro_load_game() (libretro_main.c:490) - and compiled by the built-in interpreter. - - The boot intro sequence is compiled from bootIntroSourceCode, a string - constant embedded in boot_intro.c -- not loaded from any external file. - The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. There is - no code path that reads any file from the system directory. No BIOS, - firmware, or boot ROM is required. - - The virtual machine provides a 160x128 screen, 64 colors, 256 8x8 - sprites, 4-channel sound, d-pad + 2 buttons, and a pause button. + retro_load_game() copies the .nx source code into memory + (libretro_main.c:490) and compiles it with the built-in interpreter. + The boot intro is a string constant embedded in boot_intro.c. The core + never accesses the system directory. No BIOS, firmware, or external + files required. files: [] - -platform_details: - cartridge_format: - extensions: "nx" - source_ref: "libretro_main.c:318" - notes: | - .nx files contain LowRes NX BASIC source code as plain text. - The interpreter compiles the source at load time. - - runtime: - source_ref: "core/ (compiled into binary)" - notes: | - The entire LowRes NX runtime (CPU emulation, video chip, audio chip, - BASIC compiler/interpreter, boot intro) is compiled into the core - binary. No external dependencies at runtime. Version 1.2. diff --git a/emulators/lutro.yml b/emulators/lutro.yml index b52e0b40..3f8223b3 100644 --- a/emulators/lutro.yml +++ b/emulators/lutro.yml @@ -1,7 +1,8 @@ emulator: Lutro type: game +core_classification: pure_libretro source: "https://github.com/libretro/libretro-lutro" -profiled_date: "2026-03-18" +profiled_date: "2026-03-22" core_version: "v1" display_name: "Lua Engine (Lutro)" cores: @@ -9,12 +10,14 @@ cores: systems: [] notes: | - Lutro is a Love2D-compatible Lua game framework for libretro. It - implements a subset of the Love2D API (love.graphics, love.audio, - love.timer, love.keyboard) allowing Love2D-style games to run as - libretro cores. + Lutro is a Lua game framework for libretro implementing a subset of the + LÖVE (Love2D) API. Runs .lutro/.lua games. Written for libretro, no + standalone upstream. - No BIOS or system files required. Games are loaded as directories - containing main.lua and their assets. + retro_load_game() calls lutro_load(info->path) to load the game + directory or archive (libretro.c:216). The core exposes + love.filesystem.getAppdataDirectory to games as the system_dir + (filesystem.c:296) but does not load any files from it itself. + No BIOS, firmware, or system files required. files: [] diff --git a/emulators/m2000.yml b/emulators/m2000.yml index 63601e92..fa69c79f 100644 --- a/emulators/m2000.yml +++ b/emulators/m2000.yml @@ -1,7 +1,9 @@ emulator: M2000 type: libretro +core_classification: official_port source: "https://github.com/p2000t/M2000" -profiled_date: "2026-03-18" +upstream: "https://github.com/p2000t/M2000" +profiled_date: "2026-03-22" core_version: "0.9.3" display_name: "Philips - P2000T (M2000)" cores: @@ -10,69 +12,18 @@ systems: - philips-p2000t notes: | - M2000 is a Philips P2000T home computer emulator ported to libretro. + M2000 is a Philips P2000T home computer emulator by Dion Olsthoorn, + based on the original emulator by Marcel de Kogel (1997). The libretro + port is maintained by the same author in the same repository. - The libretro port does NOT require any external BIOS or ROM files. - All required ROMs are compiled directly into the core binary via - src/libretro/m2000_roms.h: + All ROMs are embedded in the binary via m2000_roms.h: + - monitor_rom (4096 bytes, 0x0000-0x0FFF) + - basic_nl_rom (16384 bytes, 0x1000-0x4FFF) + - SAA5050 teletext font (m2000_saa5050.h) - - monitor_rom (4096 bytes) - P2000T monitor ROM, loaded at 0x0000-0x0FFF - - basic_nl_rom (16384 bytes) - Dutch BASIC cartridge ROM, loaded at 0x1000-0x4FFF - - The SAA5050 teletext font is also embedded via src/libretro/m2000_saa5050.h. - - retro_init() at src/libretro/m2000_libretro.c:444 calls: - InitP2000(monitor_rom, basic_nl_rom) - which copies the embedded arrays directly into the ROM memory space - (src/P2000.c:282-283 and 308-311), bypassing all file I/O. - - The standalone (non-libretro) version loads these as external files: - - P2000ROM.bin (monitor ROM, 4096 bytes) - - BASIC.bin (BASIC cartridge ROM, 16384 bytes) - - Default.fnt (SAA5050 font, 2240 bytes) - These files exist in the repo root for the standalone build only. - - The core accepts .cas (cassette) content and can also run with no - content to boot directly into P2000T BASIC. + retro_init() calls InitP2000(monitor_rom, basic_nl_rom) which copies + the embedded arrays into ROM memory (P2000.c:282-311). No system + directory access. The core accepts .cas cassette content and can boot + directly into P2000T BASIC with no content loaded. files: [] - -platform_details: - bios_mapping: - target: "20K ROM space: 0x0000-0x0FFF monitor, 0x1000-0x4FFF BASIC cartridge" - source_ref: "src/P2000.c:249-311, src/libretro/m2000_libretro.c:444" - notes: | - InitP2000() allocates 20K (0x5000) for ROM and 4K for VRAM. - The monitor ROM occupies the first 4K, the BASIC cartridge ROM - occupies the next 16K. In the libretro build, both are passed - as in-memory byte arrays from the embedded header. - - embedded_roms: - monitor_rom: - source_ref: "src/libretro/m2000_roms.h:1372" - size: 4096 - basic_nl_rom: - source_ref: "src/libretro/m2000_roms.h:1" - size: 16384 - saa5050_fnt: - source_ref: "src/libretro/m2000_saa5050.h:1" - note: "Teletext character generator font, also embedded" - - standalone_files: - note: | - The standalone build (allegro/SDL) loads P2000ROM.bin, BASIC.bin, - and Default.fnt from disk via fopen(). The libretro build skips - this entirely by passing embedded arrays to InitP2000(). - files: - - name: "P2000ROM.bin" - size: 4096 - md5: 2a9c5b22537738b66f4e619734318c15 - sha1: 4dbb28adad30587f2ea536ba116898d459faccac - - name: "BASIC.bin" - size: 16384 - md5: 2191811aa64f8e7f273ce0f462374728 - sha1: fb5100436c99634a2592a10dff867f85bcff7aec - - name: "Default.fnt" - size: 2240 - md5: e06dd73b8a149990f7722eabbe4f286f - sha1: dc3508afcafb38fc33e883b0caf4cf3909998a07