Nintendo DS BIOS Files Guide: Verified bios7.bin, bios9.bin & firmware.bin Setup for melonDS & DraStic

Liam Parker By Liam Parker
|
Nov 02, 2026
|
19 min
Handheld retro console running Nintendo DS dual-screen emulation alongside microSD BIOS directory

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 the 33 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 the 67 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 measures 262,144 bytes (256 KB), firmware pulled from a DSi or 3DS measures 128 KB and can't boot the menu, and iQue DS firmware measures 512 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.

Table 1: Nintendo DS and DSi BIOS filenames, exact byte sizes, and reference MD5 checksums from the Libretro and Batocera documentation.
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
Terminal window verifying exact byte sizes and MD5 checksums for bios7.bin, bios9.bin, and firmware.bin
Checking exact 16 KB, 4 KB, and 256 KB sizes alongside MD5 hashes for bios7.bin, bios9.bin, and firmware.bin.

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 .nds games): melonDS has shipped DraStic's open-source BIOS replacement since version 0.9.4, RetroArch's DeSmuME core uses its own BIOS emulation unless you switch on external files, and DraStic carries a built-in BIOS of its own. A standard .nds game 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 in melonDS, 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.

Table 2: Nintendo DS BIOS filename conventions and built-in BIOS support across melonDS, DeSmuME, Delta iOS, DraStic, and Batocera v34.
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
2Bluebox R36S handheld console running a Nintendo DS game in DraStic emulator
Running Nintendo DS classics on the 2Bluebox R36S ($79.99) with ArkOS 2.0 and DraStic pre-configured.
melonDS Emu Settings window showing DS-mode ARM9 BIOS, ARM7 BIOS, and firmware file paths
Configuring external ARM9 BIOS, ARM7 BIOS, and firmware paths inside melonDS Emu Settings.

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:

  1. 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), and 262,144 bytes (firmware.bin). If you'll run DraStic on ArkOS, duplicate them in the same folder as nds_bios_arm7.bin, nds_bios_arm9.bin, and nds_firmware.bin. Only Batocera v34 needs a third copy named biosnds7.bin, biosnds9.bin, and dsfirmware.bin.
  2. Step 2: Copy Directly into the Root BIOS Directory. Place the loose .bin files directly inside the root BIOS directory without creating an nds/ or ds/ subfolder. On ArkOS 2.0 (2Bluebox R36S), use EASYROMS/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, use RetroArch/system/.
  3. 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, open Settings → Core Settings → Nintendo DS and import bios7.bin, bios9.bin, and firmware.bin from the iOS Files app; in desktop melonDS, open Config → Emu settings → DS-mode and browse to each file.
  4. 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's DeSmuME core (Quick Menu → Core Options), the same result takes Use External BIOS/Firmware on, CPU Mode set to interpreter, and Boot Into BIOS on.
File manager showing bios7.bin, bios9.bin, firmware.bin, and biosnds7.bin inside the root bios folder
Keeping both melonDS and DeSmuME filename sets side by side inside the root bios folder on ArkOS and Batocera.
RetroArch Quick Menu Core Options for melonDS showing Use external BIOS/firmware enabled
Enabling external BIOS/firmware and native DS boot mode inside RetroArch's melonDS Core Options.

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 .nds file. Extract any .7z or .rar archive on your PC first, since uncompressed .nds is 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.bin does 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.

Table 3: Common DraStic dual-screen layout and virtual stylus mappings on ArkOS builds for the 2Bluebox R36S.
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
Close-up of R36S shoulder buttons and right analog stick used for DraStic screen swapping and virtual stylus control
Using L2/R2 to swap Nintendo DS screens and the right analog stick as a virtual stylus on the R36S.

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.

Table 4: Marketplace R36S Clones vs. DIY vs. 2Bluebox (2bluebox.com) R36S ($79.99) and 500GB Batocera HDD ($64.99).
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
2Bluebox 500GB Portable Batocera HDD in a clear shell with blue cassette label alongside the 2Bluebox R36S handheld
Comparing the 2Bluebox 500GB Batocera HDD ($64.99) for Windows PCs with the portable 2Bluebox R36S ($79.99).

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