New Super Mario Bros. DS Archipelago Setup Guide
Requirements
- Archipelago Client (Tested with 0.6.7 and newer)
- BizHawk Emulator 2.11.1 or newer (Older version don't work)
- A unmodified USA copy of New Super Mario Bros. DS
- The NSMBDS
.apworldlatest release
The APWorld contains the NSMBDS client, ROM procedure patch, and Lua runtime. BizHawk and the original game ROM are not distributed with this project.
Installation and seed generation
Install the APWorld. Open
nsmbds.apworldwith Archipelago and approve the installation. Alternatively, place it in thecustom_worldsdirectory of your Archipelago installation. Restart Archipelago after replacing an older build.Generate a player template. In
ArchipelagoLauncher.exe, run Generate Template Options. Archipelago creates a current NSMBDS YAML template from the installed APWorld.Configure the YAML. Open the generated NSMBDS YAML, set the player
name, and choose the desired game options. Put the finished file in the ArchipelagoPlayersdirectory.Generate the seed. Run Generate from the Archipelago Launcher or start
ArchipelagoGenerate.exe. The generated seed output contains the.archipelagomultidata and an.apnsmbdsROM patch for this player.
Patch the ROM
In the Archipelago Launcher, open Open Patch. Select the generated
.apnsmbdsfile and, when requested, select the clean original USA ROM. Archipelago validates the ROM and applies the seed-specific patch.After patching, a same-named
.ndsseed ROM is created next to the.apnsmbdsfile. Always play this patched.nds; do not launch the clean source ROM.
Launch and connect
Open NSMBDS Client from the Archipelago Launcher and switch to the Launch Game tab. Select:
EmuHawk.exefrom the BizHawk installation;- the patched
.ndsseed ROM created in step 6.
The bundled Lua bootstrap is installed and selected automatically. Its status and resolved path are shown in the same tab. The normal Windows path is:
C:\ProgramData\Archipelago\nsmbds\lua\nsmbds_bizhawk_bootstrap.luaClick Launch NSMBDS. BizHawk starts with the patched ROM and Lua bootstrap. After one successful setup, you may enable Automatically launch when the NSMBDS Client starts at the bottom of the tab.
Important: Keep the BizHawk Lua Console open while playing. You may minimize it, but closing it will stop the Lua script.
In the NSMBDS Client, switch to the Archipelago tab. Enter the server address, then click Connect, enter slot name, and optional password.
Wait until both the Archipelago connection and the BizHawk connection are active. The Emulator Feed should show both connection messages (its width, position, status, and fade-out time can be changed in the client's Settings tab):
NSMBDS Client connected to BizHawk.
NSMBDS Client connected to the Archipelago server.
Then load or create an in-game save.
Have fun playing!
Manual BizHawk launch
The Launch Game tab is recommended, but the same components can be started manually:
Start
EmuHawk.exe.Load the patched
.ndsseed ROM.Open Tools > Lua Console in BizHawk.
Load Lua Script Script > Open Script:
...\Archipelago\nsmbds\lua\nsmbds_bizhawk_bootstrap.luaKeep the Lua script running, open NSMBDS Client, and connect to the correct Archipelago slot.
Opening the Launch Game tab once materializes the bundled Lua files and displays the exact path.
Reporting a problem
In the NSMBDS Client's Archipelago tab, enter /nsmbds_diag full to show
the current client, connection, BizHawk, ROM, and item/location sync state.
Include that output, the steps to reproduce the problem, and any relevant error
message when reporting a bug. /nsmbds_diag short gives a smaller overview.
For a problem that needs more detailed logs, enter /nsmbds_debug on, reproduce
it. Logs can be found in your Archipelago Folder in /logs/NsmbdsClient_xxxx.txt.
Verify the original ROM
Before patching, you can check the ROM's MD5 hash in PowerShell with this simple command:
Get-FileHash -LiteralPath "New Super Mario Bros. (USA).nds" -Algorithm MD5
The compatible USA ROM must report the MD5 hash A2DDBA012E5C3C2096D0BE57CC273BE5.
The patcher performs the same validation when you select the ROM.