All Projects → Luca1991 → NDSFactory

Luca1991 / NDSFactory

Licence: GPL-3.0 license
Unpack & Repack Nintendo DS Roms (.nds)

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to NDSFactory

mazeman
MazeMan - A procedurally generated dungeon game for the Nintendo DS
Stars: ✭ 21 (-55.32%)
Mutual labels:  nintendo-hacking, nintendo-ds
SysBot.AnimalCrossing
Animal Crossing: New Horizons bot using SysBot.NET
Stars: ✭ 54 (+14.89%)
Mutual labels:  nintendo-hacking
ENGAGE
Source code repository for ENGAGE: Battery-Free Game Boy
Stars: ✭ 75 (+59.57%)
Mutual labels:  nintendo-hacking
flashcard-archive
An archive of all the firmwares for Nintendo DS flashcards
Stars: ✭ 170 (+261.7%)
Mutual labels:  nintendo-ds
CDNTool
CDN Nintendo's servers 3DS title downloader (as CIA)
Stars: ✭ 15 (-68.09%)
Mutual labels:  nintendo-hacking
kwz-parser
Example full-featured Python parser for Flipnote Studio 3D's .kwz animation format
Stars: ✭ 18 (-61.7%)
Mutual labels:  nintendo-hacking
Mirage
Reimplementation of the Nintendo Switch firmware
Stars: ✭ 40 (-14.89%)
Mutual labels:  nintendo-hacking
powerslaves
Taking PowerSaves as a slave to your will.
Stars: ✭ 28 (-40.43%)
Mutual labels:  nintendo-ds
tilemap-studio
A tilemap editor for Game Boy, Color, Advance, DS, and SNES projects. Written in C++ with FLTK.
Stars: ✭ 247 (+425.53%)
Mutual labels:  nintendo-ds
reboot to rcm
A small app to reboot 1.0 Switches into RCM mode
Stars: ✭ 32 (-31.91%)
Mutual labels:  nintendo-hacking
dust
A DS emulator written in Rust
Stars: ✭ 56 (+19.15%)
Mutual labels:  nintendo-ds
ShallowSea
ShallowSea - The AIO CFW package for the Nintendo Switch with Atmosphere
Stars: ✭ 513 (+991.49%)
Mutual labels:  nintendo-hacking
Universal-Manager
Multimedia tool for Nintendo DSi, Nintendo 3DS and Nintendo Switch.
Stars: ✭ 26 (-44.68%)
Mutual labels:  nintendo-ds
Brahma
Brahma - Privilege elevation exploit for Nintendo 3DS
Stars: ✭ 34 (-27.66%)
Mutual labels:  nintendo-hacking
in xsf
xSF Winamp plugins (2SF, GSF, NCSF, SNSF)
Stars: ✭ 15 (-68.09%)
Mutual labels:  nintendo-ds
lazy-dsi-file-downloader
Automatically downloads, extracts and places files used for DSi modding
Stars: ✭ 78 (+65.96%)
Mutual labels:  nintendo-ds
ACNL REditor
Animal Crossing New Leaf ROM Editor: Patch ACNL's code and files with QoL improvements to change the gameplay.
Stars: ✭ 35 (-25.53%)
Mutual labels:  rom-hacking
MOLE
(On hiatus untill untill further notice) RetroMole Core
Stars: ✭ 20 (-57.45%)
Mutual labels:  rom-hacking
skytemple
GUI Application to edit the ROM of Pokémon Mystery Dungeon Explorers of Sky (EU/US)
Stars: ✭ 119 (+153.19%)
Mutual labels:  nintendo-ds
Yarhl
Yet Another ROM Hacking Library
Stars: ✭ 48 (+2.13%)
Mutual labels:  rom-hacking

NDSFactory

Open Source Love GPL Licence

A tool to unpack & repack Nintendo DS roms (.nds)

If you find this software useful, please ko-fi

screenshot

!!!ROMS WITH OVERLAY ARE CURRENTLY NOT SUPPORTED!!!

Description

This software will help you to easily unpack and repack Nintendo DS roms, but IT REQUIRES SOME KNOWLEDGE!

Basically an NDS software is composed of the following sections:

  • Header
  • ARM9 Binary
  • ARM7 Binary
  • FNT (Filename Table)
  • FAT (File Allocation Table)
  • ARM9/ARM7 Overlay (Optional)
  • ARM9/ARM7 Overlay Files (Optional)
  • Icon/Title Logo
  • FAT Files (The actual files used by the software, like Graphics, Music etc.)

With NDSFactory you can extract these sections, modify them using your prefered way and the rebuild the rom with your edited sections. If the modified sections are bigger than the original ones, you can specify their new physical adddress and size in the header: if so, make sure that they DON'T OVERLAP, and remember to PATCH THE FAT.BIN (more on this later).

This software will be particularly useful if you want to mod your games or write a trainer for them.

How to use it

Unpacker Tab

In the upacker tab you can load your Nintendo DS software (.nds) and then you can extract the rom sections. Please note the Original Address of the FAT Files, you will need this value later if you are going to alter the addresses and size of the sections.

You can then do what you want with these sections (inject code, apply patches etc.)

Packer Tab

In the packer tab you can re-create an .nds file using your edited sections. If your sections are bigger than the originals, you have to edit their addresses and size (in the header). Make sure that the addresses don't overlap, or the final rom will be broken. If you are repacking edited sections, and the FAT Files Address is different than the original one, make sure to patch the FAT (fat.bin): the FAT is a list of absolute addresses (representing each file start adddress and end andress), so you need to update them (you can easily do this using the FAT Patching Tab).

Fat Patching Tab

In this tab you can easily patch the FAT section (fat.bin). You have to do this only if the FAT Files (fat_data.bin) final address is different than the original one. Patching the FAT is easy, all you have to do is load your fat.bin, and fill the original address and the new address of fat_data.bin. This will produce a patched fat.bin that you can use in the packing process.

Known Limitations/Possible Future Features/Bugs

  • Add support for roms with OVERLAY
  • Add support to decode FAT Files (extract single files one by one)
  • Add support to rebuild a new fat_data.bin and fat.bin from a set of files inside a directory
  • Design a nice logo/icon

If you found a bug, feel free to open an issue or send a PR :)

Developed with by Luca D'Amico

Special thanks to Antonio Barba & Davide Trogu

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].