mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
68 lines
3.5 KiB
YAML
68 lines
3.5 KiB
YAML
emulator: Native32Emu
|
|
type: standalone + libretro
|
|
core_classification: pure_libretro
|
|
source: "https://github.com/AloysHF/Native32Emu"
|
|
upstream: "https://github.com/AloysHF/Native32Emu"
|
|
profiled_date: "2026-10-26"
|
|
source_commit: "c9111273f97c67471358c8d9507a19c7cceb70f5"
|
|
core_version: "1.4.0"
|
|
version_basis:
|
|
kind: file
|
|
path: "Cargo.toml"
|
|
pattern: 'version\s+=\s+"([^"]+)'
|
|
display_name: "Sunplus - Native32 (Native32Emu)"
|
|
cores:
|
|
- native32emu
|
|
systems:
|
|
- sunplus-native32
|
|
|
|
notes: |
|
|
Emulator for the Sunplus Native32 game format written in Rust by
|
|
AloysHF. The libretro core and the native32emu standalone binary share
|
|
the native32emu-core crate. Content (.smf, .sgm or a .zip package,
|
|
crates/native32emu-core/src/content_entry.rs:7) is read from its full
|
|
path (need_fullpath = true,
|
|
crates/native32emu-libretro/src/libretro/api.rs:128;
|
|
Emulator::from_path, crates/native32emu-core/src/emulator.rs:97-174).
|
|
An .ssl scene given as content is refused with a message naming the
|
|
.smf, .sgm or .zip to start instead
|
|
(crates/native32emu-core/src/content_entry.rs:20-26).
|
|
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. 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:181-194,
|
|
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:735-745), .dat
|
|
thumbnails for the menu (crates/native32emu-core/src/emulator.rs:591-618),
|
|
.mpg cutscenes (crates/native32emu-core/src/emulator.rs:490-506) and
|
|
the menu's game listing (crates/native32emu-core/src/file_browser.rs:117-167).
|
|
All of them ship inside the game package. The standalone binary writes
|
|
saves to <content>.ssl_sav beside the content. The libretro core asks
|
|
for the frontend save directory on every target and writes there, under
|
|
a name flattened from the content path, and falls back to beside the
|
|
content when the frontend reports none
|
|
(crates/native32emu-core/src/save_manager.rs:6-26,
|
|
crates/native32emu-core/src/save_manager.rs:41-47,
|
|
crates/native32emu-libretro/src/libretro/api.rs:228-231,
|
|
crates/native32emu-libretro/src/libretro/callbacks.rs:223-240).
|
|
|
|
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 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: []
|