Nintendo DS BIOS Files Guide: Verified bios7.bin, bios9.bin & firmware.bin Setup for melonDS & DraStic
Quick Answer: A Nintendo DS BIOS set is three dumps: bios7.bin (16 KB, MD5 df692a80a5b1bc90728bc3dfc76cd948), bios9.bin (4 KB, MD5 a392174eb3e572fed6447e956bde4b25), and firmware.bin (256 KB, hash varies per console). melonDS 0.9.4+ and DraStic boot standard games without them; you need real dumps for the DS system menu, DSi mode, and Delta's melonDS core.
Nothing drains the fun out of a Pokemon HeartGold or Mario Kart DS session faster than an emulator refusing to recognize files you already copied onto your card. Match each file's byte size, its hash, and the exact filename your emulator expects, and the missing-BIOS prompt has nothing left to complain about.
1. The Nintendo DS BIOS Trio Explained: Exact Sizes & Verified MD5 Checksums (bios7.bin, bios9.bin & firmware.bin)
A clean Nintendo DS set is three files: bios7.bin (16,384 bytes, MD5 df692a80a5b1bc90728bc3dfc76cd948), bios9.bin (4,096 bytes, MD5 a392174eb3e572fed6447e956bde4b25), and firmware.bin (262,144 bytes from a DS or DS Lite). Firmware hashes vary per console, so check its size instead.
Original Nintendo DS (NTR-001) and DS Lite (USG-001) hardware splits the work between two ARM processors and a small SPI flash chip that holds the firmware. As the official melonDS FAQ and the Batocera Wiki Nintendo DS system page describe, emulating the full hardware startup takes one dump of each:
-
ARM7 BIOS (
bios7.bin,16,384 bytes/16 KB): Boot code and system calls for the33 MHz ARM7TDMI, the co-processor that runs sound, Wi-Fi, the touchscreen, and the real-time clock. It also holds the key table the console uses to decrypt cartridge headers at boot. -
ARM9 BIOS (
bios9.bin,4,096 bytes/4 KB): Boot vectors and system calls (decompression, division, square root) for the67 MHz ARM946E-S, the main CPU that runs game logic and drives the 2D and 3D graphics engines. -
SPI Flash Firmware (
firmware.bin): Stores the DS home menu, PictoChat, DS Download Play, plus your touch calibration, nickname, birthday, language, and Wi-Fi settings. That personal data is why two genuine dumps rarely share an MD5. A DS or DS Lite dump measures262,144 bytes(256 KB), firmware pulled from a DSi or 3DS measures128 KBand can't boot the menu, and iQue DS firmware measures512 KB.
Back when I used to pop open SNES cartridge shells to check the PCB, the label on the outside never told me what was really on the board, and BIOS dumps work the same way. Anyone can rename a random binary bios7.bin, so compare your files against our master multi-console RetroArch & Batocera BIOS checksum table before copying them to your microSD card. These BIOS and firmware dumps are Nintendo's copyrighted code, so dump them from your own DS or DSi hardware; we don't host or link BIOS files.
“Tested on our unit” means we verified the folder structure and menu path on our own 2Bluebox R36S Handheld ($79.99) or 2Bluebox Portable HDD Super Console 500GB ($64.99); “Manufacturer spec” means the published melonDS/Libretro/Batocera specification or store policy; “Community reports” means documented emulation behavior on third-party Linux handheld OS builds.
| File Role & System Mode | Standard Filename (melonDS, RetroArch, Batocera v35+) | Exact File Size | Reference MD5 Checksum | Hardware Function | Evidence |
|---|---|---|---|---|---|
| NDS ARM7 System BIOS | bios7.bin |
16,384 bytes (16 KB) |
df692a80a5b1bc90728bc3dfc76cd948 |
33 MHz ARM7 boot code, system calls & cartridge decryption key table | Manufacturer spec |
| NDS ARM9 Main BIOS | bios9.bin |
4,096 bytes (4 KB) |
a392174eb3e572fed6447e956bde4b25 |
67 MHz ARM9 boot vectors & system calls (decompression, division, square root) | Manufacturer spec |
| NDS SPI Flash Firmware | firmware.bin |
262,144 bytes (256 KB from DS/DS Lite; 128 KB from DSi/3DS; 512 KB from iQue DS) |
Varies per console (Batocera's reference dump: 94bc5094607c5e6598d50472c52f27f2) |
DS menu, PictoChat, user profile, touch calibration & Wi-Fi settings | Manufacturer spec |
| DSi ARM7 BIOS (DSi Mode) | dsi_bios7.bin |
65,536 bytes (64 KB) |
559dae4ea78eb9d67702c56c1d791e81 |
DSi ARM7 boot code & security routines | Manufacturer spec |
| DSi ARM9 BIOS (DSi Mode) | dsi_bios9.bin |
65,536 bytes (64 KB) |
87b665fce118f76251271c3732532777 |
DSi ARM9 boot code (the ARM9 runs at 133 MHz in DSi mode) | Manufacturer spec |
| DSi Firmware & NAND |
dsi_firmware.bin + dsi_nand.bin
|
131,072 bytes (128 KB) + ~240 MB NAND |
Varies (the NAND image is unique to each console) | DSi System Menu, DSiWare storage & console keys | Manufacturer spec |
2. Why Emulators Reject Valid Files: The 3 Naming Conventions Across melonDS, DraStic & Older Batocera
Valid DS BIOS files still fail under the wrong filename. melonDS, RetroArch's DeSmuME core, Delta, and Batocera v35+ read bios7.bin, bios9.bin, firmware.bin; DraStic reads nds_bios_arm7.bin, nds_bios_arm9.bin, nds_firmware.bin; Batocera v34 expected biosnds7.bin, biosnds9.bin, dsfirmware.bin.
Most DS BIOS tutorials you'll find were written for melonDS on a PC, so they all say bios7.bin. Copy that advice onto an R36S and DraStic ignores the files, because it looks for nds_bios_arm7.bin and nds_bios_arm9.bin instead. Batocera added its own twist: version 34 renamed the set to biosnds7.bin, biosnds9.bin, and dsfirmware.bin, then version 35 went back to the standard names (and switched the DSi files to dsi_bios7.bin style).
The Libretro melonDS core documentation lists every one of these files as optional, and that matches what you'll see in practice:
-
Built-in BIOS replacement (standard
.ndsgames):melonDShas shipped DraStic's open-source BIOS replacement since version0.9.4, RetroArch'sDeSmuMEcore uses its own BIOS emulation unless you switch on external files, andDraSticcarries a built-in BIOS of its own. A standard.ndsgame boots straight to its title screen on all three, including on the 2Bluebox R36S ($79.99) and a Batocera PC. -
When real Nintendo DS BIOS files are required: You need genuine dumps to boot the DS home menu and PictoChat in
melonDS(with Boot game directly turned off, using firmware from a DS or DS Lite), to run DSi mode or DSiWare inmelonDS, to use DeSmuME's Boot Into BIOS option, and to run DS games on Delta's melonDS core on iPhone or iPad.
To see how melonDS, DeSmuME, and DraStic fit alongside cores for other consoles, check our best RetroArch cores per system guide. Table 2 maps the exact filenames and built-in BIOS behavior across every major DS emulator.
| Emulator / Core Platform | ARM7 BIOS Filename | ARM9 BIOS Filename | Firmware Filename | Built-In BIOS Replacement? | When Real BIOS Files Are Required |
|---|---|---|---|---|---|
melonDS Standalone & Libretro (melonds / melonDS DS) |
bios7.bin |
bios9.bin |
firmware.bin |
Yes (since melonDS 0.9.4) | DS home menu (Boot game directly off, DS or DS Lite firmware) & DSi mode (dsi_bios7.bin, dsi_bios9.bin, dsi_firmware.bin, dsi_nand.bin) |
| Libretro DeSmuME (RetroArch & Batocera) | bios7.bin |
bios9.bin |
firmware.bin |
Yes (BIOS emulation; external files off by default) | Only when Use External BIOS/Firmware is on, for example to use Boot Into BIOS (needs CPU Mode set to interpreter) |
| Delta Emulator (iOS / iPadOS) | bios7.bin |
bios9.bin |
firmware.bin |
Depends on the DS core you pick in Delta | Delta's melonDS core asks you to import all three files before DS games launch |
| DraStic Standalone (ArkOS 2.0 / R36S / Android) | nds_bios_arm7.bin |
nds_bios_arm9.bin |
nds_firmware.bin |
Yes (built-in replacement BIOS) | Optional override; standard .nds games boot without external files |
| Batocera v34 only (legacy naming) | biosnds7.bin |
biosnds9.bin |
dsfirmware.bin |
Same as the core you launch | Rename your set only if you still run Batocera v34 |
If you'd rather skip the clone-board lottery entirely, our 2Bluebox R36S Handheld ($79.99) ships on a verified Dual-RAM RK3326 motherboard running genuine ArkOS 2.0, with DraStic already handling DS games and a 15,768-game list you can search before you buy. Its OTG USB-C port has no HDMI output, so for DS on a TV, use the Batocera HDD covered below; for two-player 8-bit and 16-bit games on the living-room TV, our 2Bluebox Retro Game Stick 4K Pro ($59.98) fits better (it has no DS library):
3. Exact Folder Paths on ArkOS (R36S), Batocera Linux, RetroArch & Delta iOS
Keep one uncompressed, lowercase set (bios7.bin, bios9.bin, firmware.bin) loose in the root BIOS folder: EASYROMS/bios/ on ArkOS, /userdata/bios/ on Batocera, or RetroArch/system/ on desktop RetroArch. Add DraStic-named copies only if you want DraStic to use real dumps.
The three DS files add up to about 276 KB, so a second, DraStic-named copy costs almost nothing and saves you from renaming files every time you switch emulators. Just as we showed in our Game Boy Advance gba_bios.bin RetroArch guide, Linux treats Bios7.bin and bios7.bin as two different files on case-sensitive drives like Batocera's ext4 share, so keep every filename in lowercase.
Follow these 4 steps to place your Nintendo DS BIOS files across ArkOS 2.0, Batocera, standalone RetroArch, and Delta iOS:
-
Step 1: Verify Uncompressed Sizes, Then Make DraStic Copies. Confirm on your computer that your three extracted files measure
16,384 bytes(bios7.bin),4,096 bytes(bios9.bin), and262,144 bytes(firmware.bin). If you'll runDraSticon ArkOS, duplicate them in the same folder asnds_bios_arm7.bin,nds_bios_arm9.bin, andnds_firmware.bin. Only Batocera v34 needs a third copy namedbiosnds7.bin,biosnds9.bin, anddsfirmware.bin. -
Step 2: Copy Directly into the Root BIOS Directory. Place the loose
.binfiles directly inside the root BIOS directory without creating annds/ords/subfolder. On ArkOS 2.0 (2Bluebox R36S), useEASYROMS/bios/on your microSD card (or/roms/bios/over Wi-Fi SSH). On Batocera.linux (2Bluebox 500GB HDD), use/userdata/bios/(\\BATOCERA\share\bios\over the network share). On standalone RetroArch, useRetroArch/system/. -
Step 3: Import via the Settings Menu on Delta iOS or Desktop melonDS. Standalone apps ask you to pick each file once instead of scanning a folder. In
Delta, openSettings → Core Settings → Nintendo DSand importbios7.bin,bios9.bin, andfirmware.binfrom the iOS Files app; in desktopmelonDS, openConfig → Emu settings → DS-modeand browse to each file. -
Step 4: Turn Off Direct Boot When You Want the DS Home Screen. In desktop
melonDS, enable the external BIOS/firmware option and switch off Boot game directly to see the classic “touch the screen to continue” warning and your profile color before the game loads. In RetroArch'sDeSmuMEcore (Quick Menu → Core Options), the same result takesUse External BIOS/Firmwareon,CPU Modeset to interpreter, andBoot Into BIOSon.
4. Fixing the DraStic White Screen & Dual-Screen Stylus Toggle on R36S Handhelds
On ArkOS 2.0, including the 2Bluebox R36S ($79.99), DS games run in DraStic, which boots standard games with built-in BIOS. For a white screen, check the game file first: extract it to a plain .nds and copy it again.
The Rockchip RK3326 inside the R36S is a quad-core ARM Cortex-A35 chip, and accuracy-focused desktop emulators like melonDS ask more of it than four small cores can give. That's why ArkOS 2.0 routes Nintendo DS games (EASYROMS/nds/) to DraStic by default, a standalone emulator written for ARM handhelds that runs most of the DS library smoothly, though a few 3D-heavy games can still drop frames.
When a DS game flashes white or kicks you back to the EmulationStation game list, the BIOS folder is the first thing most players suspect. DraStic doesn't need that folder to boot standard games, so work through the game file instead:
-
Keep the game as a plain
.ndsfile. Extract any.7zor.rararchive on your PC first, since uncompressed.ndsis the one format every DraStic build reads. - Copy the file again. A transfer that didn't finish leaves a truncated ROM that fails at launch, and a fresh copy from your PC rules that out.
-
Remove any override files you added. A misnamed or bad
nds_bios_arm7.bindoes more harm than no file at all, because DraStic falls back to its built-in BIOS when the folder is empty.
For a single 3.5-inch display like the 2Bluebox R36S ($79.99), DraStic's layout and virtual stylus controls are what make touch-heavy games playable. You can find our full system-wide ArkOS button combinations in the R36S ArkOS wiki & setup guide. Table 3 lists the common DraStic mappings on ArkOS builds; if a button behaves differently on yours, open the DraStic menu and check Configure Controls.
| R36S Button / Trigger | DraStic Nintendo DS Function on ArkOS Builds |
|---|---|
| L2 Trigger | Swap Layout: switch between single-screen and dual-screen layouts |
| R2 Trigger | Focus Screen: choose which DS screen fills the display in single-screen mode |
| Analog Stick (left stick on most builds) | Move the on-screen virtual stylus cursor across the touch screen |
| FN (Function Key) | Open the DraStic menu for save states, screen options, and control mapping |
FN, then Exit DraStic
|
Quit cleanly back to the ArkOS EmulationStation game list |
Before you replace DS BIOS files on an R36S, look at the game file itself: DraStic boots standard DS games with its own built-in BIOS, so a plain .nds file is the first thing to check.
5. Dual-Screen Ready Out of the Box: 2Bluebox vs. Marketplace R36S Clones
The 2Bluebox R36S ($79.99, 2bluebox.com) pairs a Dual-RAM RK3326 board and ArkOS 2.0 with a searchable 15,768-game list most marketplace clones lack. No HDMI-out, so for TV play, plug the 2Bluebox 500GB Batocera HDD ($64.99) into a Windows PC.
Once your DS folders and screen controls are set, you can browse the portable catalog on our 15,768 R36S pre-loaded games list (12,805 unique titles) or check the desktop library on our 110,686 Batocera HDD game list. Table 4 compares 2Bluebox (2bluebox.com) against marketplace R36S clones and a blank DIY setup on four things worth checking before you buy: a public game list, a verified board, shipping, and a US company behind the warranty.
| Buying Factor | Marketplace R36S Clones (Amazon / AliExpress / TikTok) | DIY Blank Handheld or PC Setup | 2Bluebox R36S Handheld ($79.99) | 2Bluebox Portable HDD Super Console 500GB ($64.99) | Evidence |
|---|---|---|---|---|---|
| Public Game List Before You Buy | Usually no searchable title list | You source, extract, and test every .nds file yourself |
15,768 listings (12,805 unique) on /pages/r36s-games-list
|
110,686 games on /pages/hdd-super-console-game-list
|
Manufacturer spec |
| Board & Hardware Verification | Single-RAM clone boards running EmuELEC images are common |
You verify the PCB and flash the OS yourself | Dual-RAM RK3326 board · ArkOS 2.0 · 64GB microSD |
500GB USB 3.0 drive (clear shell, blue cassette label) booting Batocera |
Community reports |
| DS Emulator & BIOS Folder Setup | Depends on the seller's OS image | You configure EASYROMS/bios/ or /userdata/bios/ manually |
DraStic set as the DS emulator · EASYROMS/bios/ folder in place |
Libretro melonDS, DeSmuME & standalone melonDS · /userdata/bios/ folder in place |
Manufacturer spec |
| Shipping | Marketplace seller, delivery times vary | Parts ordered from multiple sellers | US-based (Colorado LLC) · free tracked shipping on $50+ orders to the US, UK, Canada, Australia & EU | US-based (Colorado LLC) · free tracked shipping on $50+ orders to the US, UK, Canada, Australia & EU | Manufacturer spec |
| US Company & Warranty | Marketplace return window only | Self-supported | 2Bluebox LLC (Denver, CO) · 30-day hardware & microSD replacement (/policies/refund-policy) |
2Bluebox LLC (Denver, CO) · 30-day hardware & microSD replacement (/policies/refund-policy) |
Manufacturer spec |
| Best For | Lowest upfront price if you plan to reflash it yourself | Tinkerers who enjoy building folders from scratch | Pocket DS, GBA, PS1, and 16-bit play on commutes and flights | Side-by-side dual-screen DS plus PS2, GameCube, Wii & PSP on a Windows PC | Manufacturer spec |
| Skip If | You want a verified ArkOS board and a searchable game list on day one | You want to play tonight without hours of file prep | You want DS on a TV (no HDMI-out): use the HDD on a PC; for 2-player 8/16-bit TV games, pick the 2Bluebox Retro Game Stick 4K Pro ($59.98) | You only own an Apple Silicon Mac or want to plug straight into a TV without a PC | Manufacturer spec |
If you want room to show both Nintendo DS screens side by side, plus enough power for PlayStation 2, GameCube, Wii, N64, Dreamcast, and PSP, our 2Bluebox Portable HDD Super Console 500GB ($64.99) boots an x86-64 Windows PC or laptop into Batocera over USB 3.0, borrows that computer's own CPU and GPU, and leaves your Windows C: drive untouched. Its 110,686 games are listed on our public directory before you buy:
Frequently Asked Questions
Does melonDS or DraStic require BIOS files to run Nintendo DS games?
Not for standard .nds games. melonDS has included DraStic's open-source BIOS replacement since version 0.9.4, and DraStic carries its own built-in BIOS, so both boot standard Nintendo DS games straight to the title screen. You only need real bios7.bin, bios9.bin, and firmware.bin dumps to boot the native DS home menu and PictoChat (Boot game directly off, with DS or DS Lite firmware), to run Nintendo DSi mode (dsi_bios7.bin, dsi_bios9.bin, dsi_firmware.bin, dsi_nand.bin), or to play on Delta's melonDS core on iOS, which asks for all three files before launching a DS game.
What are the exact file sizes and MD5 checksums for bios7.bin, bios9.bin, and firmware.bin?
A clean retail Nintendo DS set uses lowercase filenames: bios7.bin (ARM7 BIOS) measures 16,384 bytes (16 KB) with MD5 df692a80a5b1bc90728bc3dfc76cd948, and bios9.bin (ARM9 BIOS) measures 4,096 bytes (4 KB) with MD5 a392174eb3e572fed6447e956bde4b25. firmware.bin measures 262,144 bytes (256 KB) from a DS or DS Lite, 128 KB from a DSi or 3DS, and 512 KB from an iQue DS. Its MD5 changes from console to console because the firmware stores your nickname, touch calibration, and Wi-Fi settings, so judge your firmware by size, not by hash.
Why does my Nintendo DS emulator say BIOS is missing when the files are in the folder?
Usually the filename doesn't match the emulator you launched, or the files are still zipped, capitalized, or tucked inside a subfolder. melonDS, RetroArch's DeSmuME core, Delta, and Batocera v35+ look for bios7.bin, bios9.bin, and firmware.bin; DraStic looks for nds_bios_arm7.bin, nds_bios_arm9.bin, and nds_firmware.bin; Batocera v34 expected biosnds7.bin, biosnds9.bin, and dsfirmware.bin. Keep uncompressed, all-lowercase files directly in the root EASYROMS/bios/ or /userdata/bios/ directory (never inside an nds/ subfolder). If Batocera's BIOS checker flags only firmware.bin as a mismatch, that's normal for a personal dump with the right size.
Why do Nintendo DS games show a white screen on my R36S handheld?
On the 2Bluebox R36S Handheld ($79.99) running ArkOS 2.0, Nintendo DS games run through the standalone DraStic emulator, which boots standard games with its own built-in BIOS, so a missing BIOS isn't the cause. Extract any .7z or .rar archive in EASYROMS/nds/ to a plain .nds file, copy it to the card again, and delete any BIOS override files you added yourself. Every 2Bluebox unit is also backed by our 30-day hardware and microSD replacement guarantee from 2Bluebox LLC (1500 N Grant St, STE N, Denver, CO 80203).
Conclusion
Setting up Nintendo DS emulation across melonDS, DeSmuME, DraStic, and Delta iOS comes down to three quick checks: confirming that your 16 KB bios7.bin and 4 KB bios9.bin match the reference MD5 hashes and your firmware.bin measures 256 KB, giving each emulator the filenames it expects (the standard set for melonDS, RetroArch, and Batocera, plus nds_bios_* copies for DraStic), and keeping R36S DS games as plain .nds files. Need checksums for PlayStation or Sega consoles next? Check /pages/hdd-super-console-bios-guide or browse all 15,768 portable titles on /pages/r36s-games-list.
Drop those lowercase 16 KB, 4 KB, and 256 KB DS files into your root bios folder, tap R2 to switch screens, and get back to Goldenrod City without another missing-BIOS prompt.
Further Reading & Resources
- Official melonDS BIOS & DSi Documentation: melonDS FAQ: BIOS, Firmware & DSi NAND Requirements (melonDS Official Site / Arisotura)
- Batocera Linux Nintendo DS System Wiki: Batocera Wiki: Nintendo DS BIOS Filenames by Version & MD5 Hashes (Batocera.linux Wiki)
- Libretro Core Technical Reference: Libretro melonDS Core Documentation & System Directory Files (Libretro Docs)
- Libretro DeSmuME Reference: Libretro DeSmuME Core Documentation: BIOS Files & External BIOS Options (Libretro Docs)
- DraStic Setup Reference: RetroPie Docs: Nintendo DS Emulation with DraStic (RetroPie Project)