February 25th, 2007
I’m aware that FluBBa and pepsiman have already written BIOS dumpers, but neither of these work well with modern carts (i.e. Slot-1 carts), and no source was available. So I whipped up my own ARM7/ARM9 BIOS dumper that should work on any cart supported by DLDI:
http://www.cryptosystem.org/projects/nds/biosdumper/
Thanks to Martin Korth for the info on GBATEK, and cearn for helping me with my assembly.
Edit: And right after I posted this I found out about DSBF_dump. Oh well.
Posted in Coding, Homebrew, NDS | 4 Comments »
February 4th, 2007
PicoDriveDS 0.1.7 is up! Changes:
- Updated for DKA r20 and latest libnds.
- Switched to libfat with DLDI support.
- Fixed bug where select key must be released quickly in order to go back to file selection menu.
- Appended ROM check now only happens if FAT is unable to init.
- Added untested Opera RAM expansion support, and RAM support for SCCF.
Grab it here.
Posted in Coding, Homebrew, NDS | 134 Comments »
January 24th, 2007
With Slot-1 DS flash carts, you sometimes want to boot a GBA cart in Slot-2. There’s probably something already out there for this, but I couldn’t find one so I made a small and simple GBA mode switcher. It uses the setting you’ve selected in your DS firmware to determine which screen to run on. This is probably the shortest DS code I’ll ever write, so source is included in this post.
Read the rest of this entry »
Posted in Coding, Homebrew, NDS | 19 Comments »
January 21st, 2007
I’ve decided to go ahead and post my entry to the Second Annual Drunken Coders Christmas Game Competition. I started working on it pretty late, so it’s not as polished as I would like, but I think it’s still enjoyable.


Grab it here.
Posted in Coding, Homebrew, NDS | No Comments »
November 26th, 2006
PicoDriveDS 0.1.6 is up! Changes:
- Added Max Media Dock FAT support (thanks chishm/Bonic)
- Added EZ4 FAT support (thanks cory1492/Rudolph)
- Reduced memory usage, 3MB ROMs should work again
- Added EXPERIMENTAL support for using the additional RAM on SuperCard SD carts to load ROMs larger than 3MB. This comes with the standard warning that this feature may cause file corruption on your SD card. The SCSD may also keep the Genesis ROM in GBA ROM space after a reboot, causing PicoDriveDS to see it as an appended ROM and crash on startup - to fix this issue simply power down, take the SCSD out, and wait a few seconds.
Grab it here or in the usual location.
Posted in Coding, Homebrew, NDS | 40 Comments »
August 22nd, 2006
PicoDriveDS 0.1.5 is up! Changes:
- Added support for appended ROMs. This should allow users with carts not supported by gba_nds_fat to use PicoDriveDS. Simply append a ROM to the PicoDriveDS binary, and it will run it (on *nix systems this can be done with “cat romname.ext >> picodriveds.ext”, on Windows with “copy /b picodriveds.ext+romname.ext picodriveds-withrom.ext”, substituting the appropriate filenames of course). You can only append one ROM at a time. In this mode, Genesis SRAM will be saved to GBA SRAM. Some patchers may work correctly with this and save the SRAM to your removable media, I have only been able to test with the EZ4 Lite software.
- Fixed M3 reset code, added M3SD Mini insertion detection code (untested, may not work)
- Massive code restructure and cleanup (though some cleanup is still in progress)
- Added save state support, accessed via the X button. Due to the current size of the save states, this is only supported for FAT devices and is disabled in appended ROM mode. Currently there is only one save state per ROM (saved to romname.pds). This is still a very experimental feature and save states may not be compatible with future versions of PicoDriveDS.
Grab it here or in the usual location. The source code tarball is also in the release directory, and I will check in the code to the PicoDriveDS Bounty Source project repository soon and begin using that as my primary Subversion server.
Posted in Coding, Homebrew, NDS | 66 Comments »
June 22nd, 2006
PicoDriveDS 0.1.4 is up! This is mostly a minor bugfix/enhancement release while I continue work on the new renderer. Changes:
- Fixed bug where R could scroll past end of file list
- Switched to unified builds, now one build should work for all SD/CF carts (thanks WinterMute)
- Added NeoFlash MK2/MK3 support (thanks WinterMute)
- Changed it so that pressing Select again without choosing a file will resume emulation
Get it here.
Posted in Coding, Homebrew, NDS | 54 Comments »
June 13th, 2006
PicoDriveDS 0.1.3 is up! Changes:
- Added long filename support
- Added support for going up a directory by pressing B
- Added support for skipping ahead/back 5 files at a time with R/L
- Added automatic save/load SRAM support
Files are the same place as before or you can use the handy new release directories to be sure.
The SRAM feature is not the same thing as savestates. Basically it emulates a Genesis cart’s internal Save RAM, and whenever the SRAM is written to it writes out (romname).srm. When you load a game, it looks to see if that SRAM file is there and loads it if so.
Posted in Coding, Homebrew, NDS | 7 Comments »
June 10th, 2006
Since my last post about PicoDriveDS, 0.1.2 has been released. Changes:
- Switched from Cyclone 0.0080 to Reesy’s Cyclone 0.0084
- Switched from software scaling to hardware scaling
- Added three scale modes: Stretch, Aspect, and 1:1
- Cycle through scale modes with L
- Position the window in 1:1 mode by holding R and using the D-Pad
- Added soft reset (press select, takes you back to the ROM list)
- Added NDS banner information (shows up in WMB)
The links without version numbers will always point to the latest version, although I’m going to start making backup copies of each version in case people ever want an old one for some reason.
Built against SaTa’s modified FAT libraries from REIN (SD users probably want this):
Built against chishm’s FAT libraries with just CF enabled:
Posted in Coding, Homebrew, NDS | 1 Comment »
June 10th, 2006
While working on PicoDriveDS, I figured it would be easier to test if I used WMB instead of swapping SD cards all the time. I set up WMB, but much to my dismay, it didn’t appear to work correctly with my SCSD - the program would start, but it couldn’t read the files or directories. Due to testing by other people, I knew the CF version worked fine this way, but I didn’t have a CF cartridge to use. I did, however, have a 256Mbit GBA cart, and chishm’s FAT library has a driver called FCSR which can access a FAT image stored on a normal flash cart. The problem is finding instructions for how to build this properly. Here’s how I did it:
dd if=/dev/zero of=fat.img bs=512 count=32000
sudo losetup /dev/loop0 fat.img
sudo mkdosfs -F16 /dev/loop0
sudo losetup -d /dev/loop0
Now you can mount fat.img to your favorite mountpoint, copy files to it, then unmount. After that, what you have to do is open it up in a hex editor, go to offset 0×100 (nothing should be there, don’t worry), and insert the string “FCSR Chishm FAT”, ensuring it is null-terminated. For write support, following this null-terminated string should be the start sectors for 4 SRAM overlays, then followed by each of their sizes (I have not tested this). If you just want a filesystem on the cart so you can access it over WMB (like me), you can flash the image to a cart now. Otherwise, any rom you wish to use should be padded so that the image will be aligned on a multiple of 512 bytes, then prepended to the image.
Posted in Coding, Homebrew, Linux, NDS | 4 Comments »