feat: profile jumpnbump, kronos, lowresnx, lutro, m2000

add core_classification and upstream to all five profiles. kronos:
add ROM cartridge files (mpr-18811-mx.ic1, mpr-19367-mx.ic1), add
archive: field to STV blobs, remove unverified MD5 hashes, fix
cores list (remove yabause_libretro). jumpnbump: fix incorrect
note about embedded data. lowresnx, lutro, m2000: add missing
classification fields.
This commit is contained in:
Abdessamad Derraz
2026-03-22 14:39:47 +01:00
parent 1d350f0578
commit c342b61cdf
6 changed files with 109 additions and 176 deletions

View File

@@ -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": {

View File

@@ -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: []

View File

@@ -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"

View File

@@ -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.

View File

@@ -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: []

View File

@@ -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