MCPcopy Create free account
hub / github.com/C3RV1/UndertaleNDS

github.com/C3RV1/UndertaleNDS @v0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1 ↗ · + Follow
694 symbols 2,068 edges 135 files 26 documented · 4% updated 18d agov0.1 · 2023-11-24★ 2528 open issues

Browse by type

Functions 581 Types & classes 113
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

UndertaleNDS

Undertale port for Nintendo DS (src only, no copyrighted material).

Note: A bit of spaghetti code. Somewhaaat, actually. Tbh, a lot. Too much spaghetti code. Don't judge me :)

UndertaleNDS - 10 minute gameplay: https://youtu.be/n27m40_RAGQ

Installation

I recommend you run the game on MelonDS if you're using an emulator. It yiels the best results in terms of audio and performance.

To compile the game or use the rom, you will need to provide the data.win file from the original UNDERTALE game. This file can be located at C:\Program Files (x86)\Steam\steamapps\common\Undertale\data.win or C:\Program Files\Steam\steamapps\common\Undertale\data.win for the Steam installation.

Once you have located this file, you should copy it to the root directory of the project. This file will be used to get the copyrighted material. This way I make sure you own a legitimate copy of the game before playing the NDS port. Say no to piracy!

You should download the patch files (Undertale.nds.patch, tools.zip.patch, nitrofs.zip.patch) from the latest release and also copy them to the project root.

Once you have all files at the root of the directory (data.win, Undertale.nds.patch, tools.zip.patch, nitrofs.zip.patch) run ./patch_all.sh.

All this should result in the corresponding project files: Undertale.nds, tools (directory) and nitrofs (directory).

Compiling

Note: Make sure to follow the installation instructions, which will extract nitrofs and tools, needed for compiling.

When you make any changes to the assets the game uses (located in tools/spr, tools/bg, tools/cutscenes, tools/rooms, tools/fnt) you should run python3 tools/all.py in order to recompile all these files to their corresponding rom files. Some other information used by the game is: - Dialogues, in nitrofs/data/dialogue - Cell calls, in nitrofs/data/cell - Battle act texts, in nitrofs/data/battle_act_txt - Enemy names, in nitrofs/data/enemies - Item names and descriptions, in nitrofs/data/items - Room names, in nitrofs/data/room_names - Other .txt files in nitrofs/data

Then, you should run make to build the rom. Make sure to have devkitarm installed.

Credits

Toby Fox - Original Game
Cervi - DS Port

Core symbols most depended-on inside this repo

Shape

Method 470
Function 111
Class 99
Enum 14

Languages

C++54%
Python43%
C3%

Modules by API surface

tools/binary.py130 symbols
tools/CutsceneTypes.py62 symbols
tools/jsonToRoom.py47 symbols
source/nitrofs.c23 symbols
source/Cutscene/Navigation.cpp19 symbols
source/Battle/BattleAction.cpp16 symbols
source/Engine/Background.cpp15 symbols
source/Cutscene/DialogueCentered.cpp13 symbols
source/Cutscene/Dialogue.cpp13 symbols
source/Engine/OAMManager.cpp12 symbols
source/card.cpp11 symbols
source/Engine/WAV.cpp11 symbols

For agents

$ claude mcp add UndertaleNDS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page