diff --git a/emulators/cap32.yml b/emulators/cap32.yml index d7686c49..ec9ad80c 100644 --- a/emulators/cap32.yml +++ b/emulators/cap32.yml @@ -55,7 +55,7 @@ files: mode: standalone size: 32768 note: "CPC 464 OS + BASIC 1.0" - source_ref: "src/cap32.cpp:216, rom/cpc464.rom" + source_ref: "src/cap32.cpp:217, rom/cpc464.rom" - name: cpc664.rom system: amstrad-cpc required: false @@ -76,7 +76,7 @@ files: mode: standalone size: 16384 note: "AMSDOS disc ROM (sideways slot 7)" - source_ref: "src/cap32.cpp:1226" + source_ref: "src/cap32.cpp:1238" - name: system.cpr system: amstrad-cpc required: false @@ -90,7 +90,7 @@ files: mode: standalone size: 8192 note: "Multiface 2 ROM" - source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1304-1323" + source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1316-1335" platform_details: bios_mapping: diff --git a/emulators/eden.yml b/emulators/eden.yml index f5413949..6eb13150 100644 --- a/emulators/eden.yml +++ b/emulators/eden.yml @@ -4,6 +4,7 @@ core_classification: community_fork source: "https://git.eden-emu.dev/eden-emu/eden" upstream: "https://git.eden-emu.dev/eden-emu/eden" profiled_date: "2026-03-26" +source_commit: "c0ffc900cdf19b9373549c59a7e6b22c33615ea4" core_version: "0.1.1" display_name: "Eden (Nintendo Switch)" systems: [nintendo-switch] diff --git a/emulators/lindbergh-loader.yml b/emulators/lindbergh-loader.yml index 4db92b0c..7b044da4 100644 --- a/emulators/lindbergh-loader.yml +++ b/emulators/lindbergh-loader.yml @@ -140,17 +140,23 @@ files: - name: segaboot system: sega-lindbergh required: false - crc32: "38d56318" - validation: [crc32] description: "Sega Lindbergh boot and hardware check program, version 2.4" - source_ref: "lindbergh.c:696-698, lindbergh.c:892-895, config.h:57-58, gameData.c:51-52" + source_ref: "lindbergh.c:696-698, lindbergh.c:892-895, hook.c:1625-1632, config.h:57-58, gameData.c:51-52" + unsourceable: >- + Lives at /usr/sbin/segaboot on the board's hard disk, which no dump + project covers. The /usr partition images that circulate are encrypted + and no key is public. note: >- - Run as "segaboot -t" under -s or --segaboot. detectGame() matches the - ELF CRC32 against the table, where 0x38d56318 is Segaboot 2.4 and - 0xa518b18b the build carrying symbols. The comparison drives - identification only: an unknown CRC logs a warning and startup continues. - SEGABOOT 0x0027 and SEGABOOT_2_6 0x0030 in config.h are placeholders, not - checksums, and no table entry uses them. + Run as "segaboot -t" under -s or --segaboot. A 32-bit x86 Linux ELF. + 0x38d56318 identifies Segaboot 2.4 and 0xa518b18b the build carrying + symbols, but neither is a whole-file checksum and neither belongs in a + hash field: hook.c computes them as CRC-32 over 0x4000 bytes starting + 10 bytes into program header index 2, guarded by p_type == PT_LOAD and + p_flags == 5. Declaring one as crc32 gives verify.py a value it can + never reproduce. The comparison drives identification only: an unknown + CRC logs a warning and startup continues. SEGABOOT 0x0027 and + SEGABOOT_2_6 0x0030 in config.h are placeholders, not checksums, and no + table entry uses them. # -- Lindbergh boot assets, replaced by built-in copies since 2.0.1 -- @@ -188,6 +194,18 @@ files: The built-in is one shared 128x256 atlas (fontTGA) and one metrics table (fontABC) answering all four font paths, so it substitutes for the Sega originals rather than reproducing either of them. + The .abc is the metrics sidecar of the .tga atlas, named for the GDI + ABC width triple. Header of 28 bytes: renderOffset, renderHeight, + atlas width, atlas height, lineHeight, then firstSymbol and lastSymbol + as uint16 and a uint32 symbol count; then one 24-byte record per glyph, + four float32 giving the normalised UV rectangle followed by leftMargin, + width, rightMargin and a pad as uint16. Field names come from + JayFoxRox/lindbergh-tools Utilities/src/font.c, written against a real + LucidaConsole_12.abc rather than against this substitute. + The built-in itself is Liberation Mono Bold rasterised at 18 px: 95 of + its 96 glyphs are byte-identical to that rendering, cropped at the UV + rectangles its own metrics declare. Liberation carries a 2010 and 2012 + digitisation copyright, so it cannot be a 2005 Sega asset. Otherwise the fontTGA array in resources/font.h answers the read. - name: SEGA_KakuGothic-DB-Roman_12.abc @@ -202,6 +220,18 @@ files: The built-in is one shared 128x256 atlas (fontTGA) and one metrics table (fontABC) answering all four font paths, so it substitutes for the Sega originals rather than reproducing either of them. + The .abc is the metrics sidecar of the .tga atlas, named for the GDI + ABC width triple. Header of 28 bytes: renderOffset, renderHeight, + atlas width, atlas height, lineHeight, then firstSymbol and lastSymbol + as uint16 and a uint32 symbol count; then one 24-byte record per glyph, + four float32 giving the normalised UV rectangle followed by leftMargin, + width, rightMargin and a pad as uint16. Field names come from + JayFoxRox/lindbergh-tools Utilities/src/font.c, written against a real + LucidaConsole_12.abc rather than against this substitute. + The built-in itself is Liberation Mono Bold rasterised at 18 px: 95 of + its 96 glyphs are byte-identical to that rendering, cropped at the UV + rectangles its own metrics declare. Liberation carries a 2010 and 2012 + digitisation copyright, so it cannot be a 2005 Sega asset. Otherwise the fontABC array in resources/font.h answers the read, with ftell returning fontABClen. @@ -217,6 +247,18 @@ files: The built-in is one shared 128x256 atlas (fontTGA) and one metrics table (fontABC) answering all four font paths, so it substitutes for the Sega originals rather than reproducing either of them. + The .abc is the metrics sidecar of the .tga atlas, named for the GDI + ABC width triple. Header of 28 bytes: renderOffset, renderHeight, + atlas width, atlas height, lineHeight, then firstSymbol and lastSymbol + as uint16 and a uint32 symbol count; then one 24-byte record per glyph, + four float32 giving the normalised UV rectangle followed by leftMargin, + width, rightMargin and a pad as uint16. Field names come from + JayFoxRox/lindbergh-tools Utilities/src/font.c, written against a real + LucidaConsole_12.abc rather than against this substitute. + The built-in itself is Liberation Mono Bold rasterised at 18 px: 95 of + its 96 glyphs are byte-identical to that rendering, cropped at the UV + rectangles its own metrics declare. Liberation carries a 2010 and 2012 + digitisation copyright, so it cannot be a 2005 Sega asset. Otherwise the fontTGA array in resources/font.h answers the read. - name: LucidaConsole_12.abc @@ -231,6 +273,18 @@ files: The built-in is one shared 128x256 atlas (fontTGA) and one metrics table (fontABC) answering all four font paths, so it substitutes for the Sega originals rather than reproducing either of them. + The .abc is the metrics sidecar of the .tga atlas, named for the GDI + ABC width triple. Header of 28 bytes: renderOffset, renderHeight, + atlas width, atlas height, lineHeight, then firstSymbol and lastSymbol + as uint16 and a uint32 symbol count; then one 24-byte record per glyph, + four float32 giving the normalised UV rectangle followed by leftMargin, + width, rightMargin and a pad as uint16. Field names come from + JayFoxRox/lindbergh-tools Utilities/src/font.c, written against a real + LucidaConsole_12.abc rather than against this substitute. + The built-in itself is Liberation Mono Bold rasterised at 18 px: 95 of + its 96 glyphs are byte-identical to that rendering, cropped at the UV + rectangles its own metrics declare. Liberation carries a 2010 and 2012 + digitisation copyright, so it cannot be a 2005 Sega asset. Otherwise the fontABC array in resources/font.h answers the read. # -- Lindbergh runtime configuration -- @@ -238,11 +292,20 @@ files: - name: lindbergrc system: sega-lindbergh required: false - description: "Lindbergh runtime configuration read by the games from /root" + description: "Lindbergh site configuration read by Sega's lxmaster boot supervisor" source_ref: "hook.c:650-653" + unsourceable: >- + /root is a symlink to /usr/local/root, so the file sits on the same + unpreserved hard-disk partition as segaboot. Nothing canonical exists to + reproduce either: every key is a site or unit specific development + setting, and a stock production machine ships no lindbergrc at all. note: >- - The fopen hook rewrites /root/lindbergrc to lindbergrc in the game - directory. The loader neither creates the file nor substitutes for it. + An INI file, sections [develop], [terminal], [segaboot] and [keychip]. + It is read by Sega's lxmaster boot supervisor, not by the games; the + per-title rc files that do ship in game dumps are xinit client + scripts, a different thing. The fopen hook rewrites /root/lindbergrc to + lindbergrc in the game directory, and the loader neither creates the file + nor substitutes for it. - name: gamecontrollerdb.txt system: sega-lindbergh diff --git a/emulators/sdl2trs.yml b/emulators/sdl2trs.yml index 3550736c..6921ca5d 100644 --- a/emulators/sdl2trs.yml +++ b/emulators/sdl2trs.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://gitlab.com/jengun/sdltrs" upstream: "http://sdltrs.sourceforge.net" profiled_date: "2026-08-08" -source_commit: "a9b30ff3cfe2b44ccff094fcd5d3c5b60e78b8a2" +source_commit: "4ba6cd076fd0c966c0dcb384663211cf691d6649" core_version: "1.2.35" display_name: "Tandy - TRS-80 (SDL2TRS)" cores: @@ -63,7 +63,7 @@ files: description: "TRS-80 Model I ROM" required: true max_size: 18432 - source_ref: "src/trs_options.c:81 (romfile1), src/trs_options.c:900 (default name), src/trs_cmd_rom.c:871-884 (trs_model 1)" + source_ref: "src/trs_options.c:81 (romfile1), src/trs_options.c:896 (default name), src/trs_cmd_rom.c:871-884 (trs_model 1)" note: > Model I is the model a stock configuration selects (trs_options.c:927), so this is the slot an unconfigured run reads. Without it the machine runs the @@ -75,7 +75,7 @@ files: description: "TRS-80 Model III and Model 4 ROM" required: true max_size: 18432 - source_ref: "src/trs_options.c:82 (romfile3), src/trs_options.c:901 (default name), src/trs_cmd_rom.c:885-889 (trs_model 3 and 4)" + source_ref: "src/trs_options.c:82 (romfile3), src/trs_options.c:897 (default name), src/trs_cmd_rom.c:885-889 (trs_model 3 and 4)" note: > Serves Model III and Model 4 alike; the stub text spells out that Model 4 mode needs a Model 3 image (trs_cmd_rom.c:110-115). This is the one slot @@ -87,7 +87,7 @@ files: description: "TRS-80 Model 4P boot ROM" required: false max_size: 18432 - source_ref: "src/trs_options.c:83 (romfile4p), src/trs_options.c:902 (default name), src/trs_cmd_rom.c:890-893 (trs_model 5)" + source_ref: "src/trs_options.c:83 (romfile4p), src/trs_options.c:898 (default name), src/trs_cmd_rom.c:890-893 (trs_model 5)" note: > Optional because the compiled-in replacement is a working boot ROM rather than a stub. html/index.html states the free ROM boots only Model 4 diff --git a/emulators/solarus.yml b/emulators/solarus.yml index 963ef729..1fec4df9 100644 --- a/emulators/solarus.yml +++ b/emulators/solarus.yml @@ -4,7 +4,7 @@ core_classification: game_engine source: "https://gitlab.com/solarus-games/solarus" upstream: "https://gitlab.com/solarus-games/solarus" profiled_date: "2026-08-08" -source_commit: "bc2707d1fba2ec1e6529857f87202a20998bff13" +source_commit: "c817554d21e4fcbf726e74b0e402f34d95286a9e" core_version: "2.2.0" display_name: "Solarus Game Engine" cores: