Thoughts From My Life

NintendoDS - Page 1

May
02
Written by Neil Galloway
 

One of the biggest annoyances when developing a homebrew application for the Nintendo DS is when your application is using the FAT library to read files and you want to be run your application in an emulator like nocash (no$gba) and have it work on the DS with minimal changes.

I have finally found a technique to do this that works very well. It lets you use FAT file access in an NDS emulator or another way to put it is libfat in an emulator. The only catch is that is only works for reading and not writing. The result is also in two separate NDS roms. One works in the emulator and one will work on your DS. However, this big plus is that your homebrew code does not need to change to work with both. It allows you to code, test, and repeat without any extra work.

I found the information to solve this issue from two separate articles:


Something to remember is that I have only been able to get .ds.gba files to work in the no$gba emulator. I don't know why, but the other filenames don't seem to work.

Requirements

  • Development Environment Set Up - Refer to various tutorials for creating NDS homebrew using the devKitPro method. The devKitPro install includes the libfat library.
  • fcsrimage - download link is on the left hand side of GPF Dev Site.
  • fcsr.dldi file - download link is on the left hand side of GPF Dev Site.
  • dlditool - this is included with you devKitARM installation
  • no$gba NDS emulator. Download the latest version.
  • Your own dldi file for your homebrew card if you want to patch for it too.



Procedure For Setting Up the NDS Filesystem

Assuming that the file structure in C:\files represents the files that will be on the flash card and that your NDS homebrew app is called nds_app. The basic process is as follows:

  1. Unzip the fcsrimage application from above and then change directory into this folder.
  2. build nds_app.img c:\files
  3. copy nds_app.img to the folder with nds_app.ds.gba. It is important that you have the .ds.gba file. no$gba doesn't appear to work if it isn't that extension.
  4. padbin 512 nds_app.ds.gba
  5. cat nds_app.ds.gba nds_app.img > nds_app_fs.ds.gba
  6. dlditool fcsr.dldi nds_app_fs.ds.gba. This file should now work in the no$gba emulator.
  7. You should already know how to patch your main rom for your homebrew card, but if not I run this command: dlditool sclt.dldi nds_app.nds

After this, you should now have to roms: nds_app_fs.ds.gba (the _fs is for filesystem) and nds_app.nds. The first file will work with a libfat homebrew app in no$gba and the second will work on the DS hardware itself.

Makefile Changes To Automate It

I use the same Makefile that is packaged in the PALib examples.

Look for these targets in your Makefile and change the sections to look like this. Keep in mind I have mine also dldi patching for the supercard lite. You can swap that out for you own card. Some assumptions in my explanation are:

  • Assume your application is stored in C:\nds_app folder.
  • Your .dldi files (including fcsr.dldi plus your homebrew card's dldi...mine is sclt.dldi) are stored in the $(devkitARM)/bin/dldi folder.
  • You previously created your filesystem image as C:\nds_app\nds_app.img.
    i.e.
    cd C:\fcsrimage
    build C:\nds_app\nds_app.img C:\nds_app\data
    
# Makes a temporary copy before appending the filesystem
# image and that dldi patching it for use in an emulator.
%.ds.gba: %.nds
	@echo built ... $(notdir $@)
	@dsbuild $< 
	@cp $(CURDIR)/../$(notdir $@) ../$(notdir $(OUTPUT)).sc.nds 
	@cp $(CURDIR)/../$(notdir $@) ../$(notdir $(OUTPUT))_temp.ds.gba 
	@padbin 512 $(OUTPUT)_temp.ds.gba 
	@cat ../$(notdir $(OUTPUT))_temp.ds.gba  ../$(notdir $(OUTPUT)).img > ../$(notdir $(OUTPUT))_fs.ds.gba
	@dlditool fcsr.dldi ../$(notdir $(OUTPUT))_fs.ds.gba
	@rm ../$(notdir $(OUTPUT))_temp.ds.gba 

# This auto dldi patches for the supercard lite
# I don't have USE_EFS enabled so it is always
# using the else part.
#---------------------------------------------------------------------------------
%.nds: %.bin
ifeq ($(strip $(USE_EFS)), YES)
	@ndstool -c $@ -9 $(TARGET).bin $(ARM7BIN) $(LOGO) $(ICON) "$(TEXT1);$(TEXT2);$(TEXT3)" -d ../efsroot
	@$(CURDIR)/../efs $(OUTPUT).nds
	@cp $(CURDIR)/../$(notdir $@) ../$(notdir $(OUTPUT))_SC.nds
	@dlditool sclt.dldi ../$(notdir $(OUTPUT))_SC.nds
else
	@ndstool -c $@ -9 $(TARGET).bin $(ARM7BIN) $(LOGO) $(ICON) "$(TEXT1);$(TEXT2);$(TEXT3)"
	@cp $(CURDIR)/../$(notdir $@) ../$(notdir $(OUTPUT))_SC.nds
	@dlditool sclt.dldi ../$(notdir $(OUTPUT))_SC.nds
endif

I find this works the best for me, except that I am still manually running the build command in the fcsrimage folder to create the .img filesystem. If you can give me the Makefile commands to do that too, I would be eternally grateful.

Post a Comment ... (0 Comments)

Apr
25
Written by Neil Galloway

I have tested out more homebrew in the past week than I ever have with my Nintendo DS. It has been quite refreshing really.

Everything from animation drawing, flight games, video players, book readers, platform games, puzzles, emulators, and more.

There are some neat ones out there and I will write some reviews on them in the future, but a lot of them are still in their infancy or have been abandoned anyways.

If you are looking to try different kinds our yourself, they can be difficult to find and I just found a new site the other day that had tons that I have never been too. Here is a list of ones you can try out.

Post a Comment ... (1 Comments)

Apr
23
Written by Neil Galloway

Unbelievable!

This the game I would love to see come to the Nintendo DS. StarCraft is one of my favorite real time strategy (RTS) games of all time. There were rumours of it coming to the DS, but is has never been announced by Blizzard and I can't imagine them doing it now.

Anyhow, a group of guys did a "proof of concept" for the game. I downloaded it from the StarLite download page. Unfortunately, they have already been shut down by Blizzard I have heard, so this will be as far as it goes I suppose.

Watch the video, this is how the downloadable version plays exactly.

Post a Comment ... (2 Comments)

Apr
16
Written by Neil Galloway
 

I think I found one of my new favourite games and I can't believe it has taken me this long. Twin Isles is an excellent homebrew game for the Nintendo DS. It has the basic gameplay from the original Civilization (in my opinion).

I have added it to my Best Nintendo DS Homebrew list, just after Warcraft Tower Defense. Twin Isles is by far the most commercial feeling game I have played yet from the homebrew community.

The graphics are clear, there are sound effects, some decent background music, a tech tree, a dozen or so structure that may be built, in game tips (which can be disabled, and just fun to play.

I definitely recommend playing it if you were ever a fan of the Civilization series. The game has a number of great features:

  • Free Play Mode where you can just practice by your self.
  • Versus CPU to challenge a computer opponent. First to 100,000 population or destroy the other island.
  • Scenarios where you have to complete a specific task. i.e. Grow the population to 500 before the time runs out.
  • Save your game! If you have SRAM on your homebrew cart.
  • Save your replay. You can watch your game. Same SRAM requirement.
  • Nice menu system with more options to turn off music and sound.

The game has a very polished feel. Everything from the sound, menus, and help system would make you think it is a commercial game.

The game was written and available from h4ck3r's homepage. Just look down the page for the Twin Isles section.

What Does It Look Like?

The graphics are simple, yet very crisp and well put together. Here are some Twin Isles screenshots. The first is the main game screen during play, the second is the buildings list, then the technology tree, and last is the in game tool tips that you can turn off if you want.

Gameplay
Twin Isles Gameplay
Buildings
Twin Isles Buildings
Tech Tree
Twin Isles Tech Tree
Tips
Twin Isles Tips

Getting It To Run

It was very simple to get running since there is no file access needed in the game.

My Hardware

I have Nintendo DS Lite (NDSL) with a Supercard Lite and Super Key. The Supercard Lite takes a microSD card for memory storage. I use the 1GB Kingston microSD.

Getting Twin Isles Running

I am just writing about what I had to do to get it working for myself. If you have any suggestions or instructions for other hardware, let me know. I will post it and put a link to a site for you with whatever keywords you want in this article.

Instructions for NDSL, Supercard Lite, Super Key
  1. Download the latest version of Twin Isles from h4ck3r.net. I personally downloaded Twin Isles Second Release.

    He provides it as a zip file so you will need a program to unpack it if you aren't running Windows XP and higher.

  2. In the zip file is the file twinisles.nds. Copy this into a folder of your memory card.
  3. Boot your NDS and load the file twinisles.nds.
  4. Enjoy!

There are more instructions throughout the game as pop up tips that work very well. Remember, they don't pause the game when they come up though.

Problems

I have had no technical major technical problems with this game yet. The only noticeable problem is when running the game in an emulator, the tech tree doesn't display right until you move it slightly to one side.

Post a Comment ... (0 Comments)

Mar
20
Written by Neil Galloway

I can't believe it. Guitar Hero is coming to the Nintendo DS. It is called Guitar Hero On Tour. It comes with a the fret buttons that plug into the Gameboy Advance game slot (Slot-2) and the game cartridge goes in the normal NDS slot

IGN has an Guitar Hero On Tour exclusive on their site right now.

Here is an advertisement for it below.

Post a Comment ... (0 Comments)

Mar
05
Written by Neil Galloway

One of the best homebrew games for the Nintendo DS that I play is Warcraft Tower Defense. It was written by noda and he has just released version 0.5. Read about the Warcraft Tower Defense 0.5 Release on his blog.

There haven't been major changes, but enough to make it worthwhile to upgrade. My favorite changes have been the difficulty levels for each map and you can now save your game (only one at a time though). Read the article in the link above to see a full list of changes.

He is hoping to add multiplayer but he needs more hardware to do it. He is trying to raise $200 and is at $71 already. Feel free to donate if you would like to see multiplayer.

The game is fun, polished, and definitely in the top 5 for the homebrew game scene in my opinion. It has made it into a number of my articles:

Post a Comment ... (0 Comments)

Feb
12
Written by Neil Galloway

One of my favorite homebrew games has been QuakeDS. It has made it onto my list of the Best Nintendo DS Homebrew. Well now Simon Hall has come out with Quake 2 for the Nintendo DS. You can read about it on the Quake2DS thread.

Apparently it works quite well, but you must have a Slot-2 solution card present to act as extra RAM that is needed to load the game up into. That sucks a bit for you Slot-1 only guys, but that's just the way it works.

I was hoping to write a big article on how to get it working and review the game, but unfortunately I cannot get it working either. I did all the instructions, picked Auto-Detect and Slowest for settings. It counts up the memory, displays some messages that go through too fast to read, and then it displays a red screen saying:

Guru Meditation Error! data abort!

along with a bunch of register values.

I am using a the Supercard Lite with Super Key. Some of the users on the thread have stated that it works for that scenario, but mine has yet to start working.

I posted a comment and will hopefully get a response soon. I'll post my results when I get it figured out.

Here is a YouTube video to watch while you're at it.

Post a Comment ... (2 Comments)

Dec
10
Written by Neil Galloway
 

I have been using the DSOrganize Web Browser for several months now. If you are not familiar with DSOrganize, it is a free homebrew application for the Nintendo DS that is a collection of smaller applications. The best being the web browser. It has always stayed in my list of the Best Nintendo DS Homebrew.

A Nintendo DS web browser is one of the ideal homebrew applications. It is free and very useful. Even if you just want to check email, the sports scores, or something else, it can be convenient.

Developed by DragonMinded, it is a very impressive application that is constantly being expanded and improved. You can check out the DSOrganize Homepage for more details on the features.

How Well Does The Web Browser Work?

Reasonably well. It currently supports background colors and some fonts. It will render images, but not all the time and not that well necessarily. The rendering time can be slow on the big pages too, but that is to be expected.

It works really well for reading blogs in particular. You can load it up and switch to dual screen mode where it fills both screens with the web page so you can see more at once. Then you just scroll and read.

For example, this blog loads in the browser. The top banner does not appear and neither do the larger images in the text, but I notice it will box in the image and replace it with the alternate text if it is defined. The text looks okay and so do the links. Even the javascript FeedBurner showing my readership shows up properly. The menu is rendered at the bottom of the page as well, but that actually works out for the better.

There are some nice interface tweaks as well. The on-screen keyboard automatically loads in the touchscreen when you tap on a text field and there are some quick text items you can use like .com or http:// when typing in the web browser's address bar. You can even tap Ctrl-B to bookmark a page.

My Hardware

I have Nintendo DS Lite (NDSL) with a Supercard Lite and Super Key. The Supercard Lite takes a microSD card for memory storage. I use the 1GB Kingston microSD.

Getting DSOrganize Running

There are a few steps here. I am just writing about what I had to do to get it working for myself. If you have any suggestions or instructions for other hardware, let me know. I will post it and put a link to a site for you with whatever keywords you want in this article.

Instructions for NDSL, Supercard Lite, Super Key
  1. Download the latest version of DSOrganize from the DSOrganize Homepage.

    He provides it as a zip file so you will need a program to unzip it if you are running a Windows version less than XP.

  2. In the zip file are the DSOrganize folder, the moonshl folder and a few files. I use the file DSOrganize.nds in particular. Copy this into the root folder of your memory card.
  3. This application reads and writes to the memory card so you will need to patch the DSOrganize.nds file with the DLDI for your hardware.

    I have written an instruction page on doing this called Patching NDS Homebrew With DLDI. Follow the instructions there and then continue on here.

  4. Boot your NDS and load the file DSOrganize.nds.
  5. You will see a variety of applications, but if you look around you will eventually find the Web Browser.

Post a Comment ... (4 Comments)

Dec
05
Written by Neil Galloway

I have been using the DSOrganize web browser for the past little while. It works reasonably well. I decided to try the Okiwi homebrew web browser out at as well. It is in version 0.2 alpha right now.

It was simple to get running. It has a nice interface and is fairly simple to use as well. It renders the text and background colors, but I notice there are no other images and I could not actually click on the links for this site. I surfed to a few others sites and the links worked just fine though.

How Does It Compare To DSOrganize

It definitely isn't as polished, but it is a good start. He is actively working on it as well, so you can expect features to be added.

Getting It To Run

The setup is very simple. Make sure to check out the site and go to the Okiwi Blog if you have any other problems or want further instructions. It is written partially in Spanish and English, so you will need to skip through to the parts you can read.

  • Download the latest version from the Okiwi SourceForge Page. At this time I am using 0.2 Alpha.
  • Unzip the download into its own folder. There is a folder called okiwi and a couple of application files, okiwi.nds and okiwi.ds.gba.

  • I don't know if I needed to, but I patched the okiwi.nds file with the DLDI for my hardware.

    I have written an instruction page on doing this called Patching NDS Homebrew With DLDI. Follow the instructions there and then continue on here.

  • Copy the okiwi folder and okiwi.nds file onto your memory card.
  • Boot your NDS and start the application. The first boot up takes a little while. You should see a green spinning circle on the bottom screen for a couple minutes.

Post a Comment ... (1 Comments)

Oct
31
Written by Neil Galloway

I recently started playing Legend of Zelda - Phantom Hourglass for the Nintendo DS. This is an awesome little game that is fun to play.

There are plenty of cut scenes and storyline to keep the game moving along and the difficulty level definitely isn't too hard. Gamespot has done a good review of Legend of Zelda - Phantom Hourglass as well.

I won't write much more about it, but you definitely need to check it out. It recently made it to the top of my Best Games For Nintendo DS list. The controls are simple, the graphics are smooth, and it is very easy to play. Very good use of the stylus as well.

Legend of Zelda - Phantom Hourglass

Post a Comment ... (0 Comments)

Page 1