mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 03:09:08 -05:00
Profiles that read two repositories, a libretro port and its upstream, now prefix each citation with source or upstream, decided by which tree carries the cited value at its pin. The emulator pages use the word to tell libretro glue, emulator code as the port carries it, and the upstream emulator apart.
92 lines
4.5 KiB
YAML
92 lines
4.5 KiB
YAML
emulator: NXEngine
|
|
type: libretro
|
|
core_classification: game_engine
|
|
source: "https://github.com/libretro/nxengine-libretro"
|
|
upstream: "https://github.com/Rox64/NXEngine"
|
|
profiled_date: "2026-03-24"
|
|
source_commit: "fd1c0686f8b4c0aea9b5addbc077e3ad7da23bb7"
|
|
core_version: "1.0.0.6"
|
|
display_name: "Cave Story (NXEngine)"
|
|
cores: [nxengine, nx]
|
|
systems: [cave-story]
|
|
|
|
notes: |
|
|
NXEngine is an open-source reimplementation of the Cave Story (Doukutsu
|
|
Monogatari) engine by Studio Pixel, authored by Caitlin Shaw. It is not
|
|
an emulator but a source port that loads the original freeware game data.
|
|
|
|
The core requires the freeware Cave Story distribution placed in
|
|
{system_dir}/nxengine/. When launched without content, it looks for
|
|
Doukutsu.exe there (nxengine/libretro/libretro.cpp:289-294). When launched with a .exe
|
|
content file, it uses the parent directory of that file (nxengine/libretro/libretro.cpp:272).
|
|
|
|
At startup (nxengine/main.cpp:75-90), the core opens Doukutsu.exe and extracts:
|
|
ORG music (extractorg.c), PXT sound effects (extractpxt.c), stage tile
|
|
attributes (extractstages.c), 18 credit BMPs + pixel.bmp (endpic/),
|
|
and the wavetable (nxengine/extract-auto/cachefiles.c:464-485). All kept in memory.
|
|
|
|
The data/ directory (399 files from the freeware release) is loaded into
|
|
an in-memory cache at init (nxengine/extract-auto/cachefiles.c:38-439, 497-540). All subsequent
|
|
file access goes through this cache. The core verifies data/ by checking
|
|
for data/npc.tbl (nxengine/main.cpp:47-58).
|
|
|
|
The font is compiled-in (bitmap_font.h). The upstream standalone version
|
|
uses font.ttf via SDL_ttf.
|
|
|
|
Valid content extension: .exe (nxengine/libretro/libretro.cpp:142).
|
|
|
|
files:
|
|
- name: "Doukutsu.exe"
|
|
installed_on: [lakka, retrobat, retrodeck]
|
|
path: "nxengine/Doukutsu.exe"
|
|
category: game_data
|
|
system: cave-story
|
|
description: "Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)"
|
|
required: true
|
|
size: 1478656
|
|
md5: "38695d3d69d7a0ada8178072dad4c58b"
|
|
sha1: "bb2d0441e073da9c584f23c2ad8c7ab8aac293bf"
|
|
source_ref: "source nxengine/main.cpp:77-78 (opened for extraction), source nxengine/libretro/libretro.cpp:278 (existence check)"
|
|
note: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable from this binary at each launch."
|
|
|
|
- name: "data/"
|
|
installed_on: [lakka, retrobat, retrodeck]
|
|
path: "nxengine/data/"
|
|
type: directory
|
|
category: game_data
|
|
system: cave-story
|
|
description: "Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)"
|
|
required: true
|
|
source_ref: "source nxengine/extract-auto/cachefiles.c:38-439 (filenames[] array loaded at init)"
|
|
note: "Must contain root assets (Arms.pbm, MyChar.pbm, etc.), Npc/ (36 sprite sheets), and Stage/ (333 map/script/tileset files). All files from the original freeware release."
|
|
|
|
- name: "data/npc.tbl"
|
|
installed_on: [lakka, retrobat, retrodeck]
|
|
path: "nxengine/data/npc.tbl"
|
|
category: game_data
|
|
system: cave-story
|
|
description: "NPC attribute table (entity behavior flags, HP, damage, display rect offsets)"
|
|
required: true
|
|
source_ref: "source nxengine/main.cpp:47-53 (existence check for data/ directory), source nxengine/ai/ai.cpp:56-59 (loaded for NPC properties)"
|
|
note: "Located in system/nxengine/data/. Used to validate data directory presence and to load NPC behavior attributes."
|
|
|
|
- name: "data/sprites.sif"
|
|
path: "nxengine/data/sprites.sif"
|
|
category: game_data
|
|
system: cave-story
|
|
description: "Sprite information file (sprite positions, sizes, animation data)"
|
|
required: false
|
|
hle_fallback: true
|
|
source_ref: "source nxengine/extract-auto/cachefiles.c:101 (in filenames[]), source nxengine/extract-auto/cachefiles.c:515-521 (compiled-in fallback from sprites_sif.h)"
|
|
note: "Not shipped in the freeware distribution. If missing, the core uses a compiled-in copy (sprites_sif.h)."
|
|
|
|
- name: "tilekey.dat"
|
|
path: "nxengine/tilekey.dat"
|
|
category: game_data
|
|
system: cave-story
|
|
description: "Tile attribute lookup table (maps tile codes to collision/behavior attributes)"
|
|
required: false
|
|
hle_fallback: true
|
|
source_ref: "source nxengine/map.cpp:290-303 (loaded at init, hardcoded default if missing)"
|
|
note: "Not part of the freeware distribution. Generated by the standalone NXEngine extraction tool. The libretro core has hardcoded defaults in nxengine/map.cpp:30."
|