From 7560564a09958dde003d47e69c058fa33217239a Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 26 Oct 2026 23:10:38 +0100 Subject: [PATCH] docs: follow native32emu 1.4.0 save and zip rules 1.4.0 boots a single-game package by its own .smf and, in the Emscripten build, writes saves to the frontend save directory (save_manager.rs:33-48, api.rs:194-197). Still no file outside the game package. --- emulators/native32emu.yml | 44 ++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/emulators/native32emu.yml b/emulators/native32emu.yml index debdf618e..3e56eafdd 100644 --- a/emulators/native32emu.yml +++ b/emulators/native32emu.yml @@ -3,9 +3,9 @@ type: standalone + libretro core_classification: pure_libretro source: "https://github.com/AloysHF/Native32Emu" upstream: "https://github.com/AloysHF/Native32Emu" -profiled_date: "2026-09-03" -source_commit: "b83ed7b315054b16d5468c3882d2e59d6c2180e9" -core_version: "1.3.0" +profiled_date: "2026-10-26" +source_commit: "059fa33c658caa4dbbad140ebf2af1197f9dd778" +core_version: "1.4.0" display_name: "Sunplus - Native32 (Native32Emu)" cores: - native32emu @@ -18,31 +18,41 @@ notes: | the native32emu-core crate. Content (.smf, .sgm, .ssl or a .zip package) is read from its full path (need_fullpath = true, crates/native32emu-libretro/src/libretro/api.rs:107; - Emulator::from_path, crates/native32emu-core/src/emulator.rs:79-130). + Emulator::from_path, crates/native32emu-core/src/emulator.rs:86-149). The header is decrypted with DES keys compiled into the core (crates/native32emu-core/src/header_decryptor.rs:136, crates/native32emu-core/src/des_constants.rs). A .zip package is extracted to a temporary directory (crates/native32emu-core/src/archive_loader.rs:17-67) and booted from - the menu found at its root, FHUI.smf first, then NA32UI.smf - (crates/native32emu-core/src/archive_loader.rs:11, - crates/native32emu-core/src/archive_loader.rs:94-128). Every later file + the menu found at its root, FHUI.smf first, then NA32UI.smf. A package + without a root menu boots its only .smf, or the one named like the + archive (crates/native32emu-core/src/archive_loader.rs:11, + crates/native32emu-core/src/archive_loader.rs:94-98, + crates/native32emu-core/src/archive_loader.rs:152-211). The Emscripten + build receives the archive already extracted by EmulatorJS and switches to + the root menu when one exists + (crates/native32emu-libretro/src/libretro/api.rs:146-159, + crates/native32emu-core/src/archive_loader.rs:112-117). Every later file is resolved relative to the running content and its parent directories, case-insensitively with trailing spaces trimmed (crates/native32emu-core/src/content_loader.rs:73-130): child .smf and - .ssl content (crates/native32emu-core/src/emulator.rs:597-607), .dat - thumbnails for the menu (crates/native32emu-core/src/emulator.rs:545-572), - .mpg cutscenes (crates/native32emu-core/src/emulator.rs:444-460) and + .ssl content (crates/native32emu-core/src/emulator.rs:617-627), .dat + thumbnails for the menu (crates/native32emu-core/src/emulator.rs:565-592), + .mpg cutscenes (crates/native32emu-core/src/emulator.rs:464-480) and the menu's game listing (crates/native32emu-core/src/file_browser.rs:75-120). All of them ship inside the game package. Saves are written to - .ssl_sav beside the content - (crates/native32emu-core/src/save_manager.rs:10-46). + .ssl_sav beside the content. The Emscripten build asks for the + frontend save directory and writes there instead, under a name flattened + from the content path + (crates/native32emu-core/src/save_manager.rs:6-26, + crates/native32emu-core/src/save_manager.rs:33-48, + crates/native32emu-libretro/src/libretro/api.rs:194-197, + crates/native32emu-libretro/src/libretro/callbacks.rs:205-222). - RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and GET_SAVE_DIRECTORY are - defined (crates/native32emu-libretro/src/libretro/constants.rs:42, - crates/native32emu-libretro/src/libretro/constants.rs:53) but nothing - calls them. No include_bytes! data is compiled in. + RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is defined + (crates/native32emu-libretro/src/libretro/constants.rs:42) but nothing + calls it. No include_bytes! data is compiled in. -exclusion_note: "No file is read outside the game package: content and every sibling it names (menu, child content, .dat thumbnails, .mpg cutscenes) resolve from the content's own directory tree, saves are written beside the content, the system directory is never queried, no data is embedded with include_bytes!, and the .info declares firmware_count = 0." +exclusion_note: "No file is read outside the game package: content and every sibling it names (menu, child content, .dat thumbnails, .mpg cutscenes) resolve from the content's own directory tree, saves are written beside the content or in the frontend save directory, the system directory is never queried, no data is embedded with include_bytes!, and the .info declares firmware_count = 0." files: []