NXEngine
NXEngine emulates Cave Story. It reads 5 files, 3 of them required: without a required file it does not start games.
About this profile
Install this emulator's files
The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.
Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator nxengineOpen Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator nxengineOpen a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator nxengineSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator nxengineInstall Termux, a terminal app. Run pkg install python and termux-setup-storage once. Then paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator nxengineOpen a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator nxengineTechnical 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/). When launched with a .exe
content file, it uses the parent directory of that file (nxengine/).
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/). All kept in memory.
The data/ directory (399 files from the freeware release) is loaded into
an in-memory cache at init (nxengine/, 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/).
5 files: 3 required, 2 optional. 2 have an HLE fallback.
By kind: 5 game data.
In this collection: 5 in repo and 0 missing.
Game data
Section titled “Game data”Doukutsu.exe required in repo game data
Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)
- Path:
nxengine/Doukutsu.exe - System: Cave Story
- Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable from this binary at each launch.
- Size: 1.4 MB, SHA1 bb2d0441e073
- Collection copy:
bios/Other/ NXEngine/ Doukutsu.exe - Platforms:
ports/CaveStory/Doukutsu.exe: EmuELEC
Hashes, packages and source
- SHA1:
bb2d0441e073da9c584f23c2ad8c7ab8aac293bf - MD5:
38695d3d69d7a0ada8178072dad4c58b - Installed by the platform's own package on: lakka, retrobat, retrodeck
- Asked for by: emulator code, libretro port and libretro glue
- Source:
nxengine/main.cpp:77-78(emulator code, libretro port),nxengine/(libretro glue)libretro/ libretro.cpp:278
data/ required in repo game data directory
Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)
- Path:
nxengine/data/ - System: Cave Story
- 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.
- Collection copies: 2 files under
bios/(browse)Other/ NXEngine/ nxengine/ data/
Packages and source
- Installed by the platform's own package on: lakka, retrobat, retrodeck
- Asked for by: emulator code, libretro port
- Source:
nxengine/(emulator code, libretro port)extract-auto/ cachefiles.c:38-439
data/npc.tbl required in repo game data
NPC attribute table (entity behavior flags, HP, damage, display rect offsets)
- Path:
nxengine/data/npc.tbl - System: Cave Story
- Located in system/nxengine/data/. Used to validate data directory presence and to load NPC behavior attributes.
- Collection copy:
bios/Other/ NXEngine/ nxengine/ data/ npc.tbl
Packages and source
- Installed by the platform's own package on: lakka, retrobat, retrodeck
- Asked for by: emulator code, libretro port
- Source:
nxengine/main.cpp:47-53(emulator code, libretro port),nxengine/ai/ai.cpp:56-59(emulator code, libretro port)
data/sprites.sif optional in repo HLE fallback game data
Sprite information file (sprite positions, sizes, animation data)
- Path:
nxengine/data/sprites.sif - System: Cave Story
- Not shipped in the freeware distribution. If missing, the core uses a compiled-in copy (sprites_sif.h).
- Collection copy:
bios/Other/ NXEngine/ nxengine/ data/ sprites.sif
Source
- Asked for by: emulator code, libretro port
- Source:
nxengine/(emulator code, libretro port),extract-auto/ cachefiles.c:101 nxengine/(emulator code, libretro port)extract-auto/ cachefiles.c:515-521
tilekey.dat optional in repo HLE fallback game data
Tile attribute lookup table (maps tile codes to collision/behavior attributes)
- Path:
nxengine/tilekey.dat - System: Cave Story
- Not part of the freeware distribution. Generated by the standalone NXEngine extraction tool. The libretro core has hardcoded defaults in
nxengine/map.cpp:30.
- Collection copy:
bios/Other/ NXEngine/ nxengine/ tilekey.dat
Source
- Asked for by: emulator code, libretro port
- Source:
nxengine/map.cpp:290-303(emulator code, libretro port)
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start