#73318 - zzo38computer - Fri Feb 24, 2006 6:14 pm
Is it possible to use Jtag to load homebrew firmware and/or software into Nintendo DS? I rad somewhere that DS has a Jtag, and I have a Jtag connector for my computer as well, maybe I could make it work.
Also, I read about an unconnected pad in the DS for a debug button. There is no way to put it on the front with the rest of the buttons without breaking the case, but maybe that button could be put into the battery pack. On the weekend I will try it and see if I can get a debug menu or anything with Mario Kart DS or any similar things. Apparently, the extra memory in a debug unit is for storing all the names of the variables in a debug compiled release of the program, so in the normal release of the program it should work, but it will show numbers instead of the names of the variables (or at least that is what someone told me).
_________________
Important: Please send messages about FWNITRO to the public forum, not privately to me.
#73326 - CubeGuy - Fri Feb 24, 2006 8:25 pm
PassMe uses JTAG. The DS requires a special cable.
To load custom firmware, however, you need only a homebrew capable DS.
_________________
It's 'CubeGuy.' One word. No space.
#73327 - josath - Fri Feb 24, 2006 8:27 pm
You can't use Jtag, but you can use this cable, to load firmware & homebrew software, with instructions to build here:
http://nocash.emubase.de/gbatek.htm#dsxboo
I am 96% sure that the debug button will do nothing in official games, but good luck anyway.
#73392 - HyperHacker - Sat Feb 25, 2006 7:01 am
I doubt you'll get much, possibly a crash or corrupted menu, for a few reasons:
1) The added 4MB is likely used for much more than just variable names. Debug versions often have various differences, such as storing things uncompressed instead of compressed, keeping unused content (such as debug test areas) that was removed from the final version, and of course things like extra fonts and text for the menus and the debugging code itself.
2) The games you buy on cart probably have most of the debugging features removed (which is a damn shame), and the ones with said features are locked up somewhere in a Nintendo building.
3) One (or both?) of the DS BIOSes has an IsDebugger() SWI call that tells the game whether it's running on a normal DS or a special debug version. A game would probably check that before running any debug code.
I'd still be interested to see if you can get anything working, and if nothing else, an extra button would be awesome for homebrew. Perhaps you could mount it on top or in place of a screw (just make sure the system holds together without it). I've actually considered cracking it open and adding such a button myself, but I don't really like the idea of opening up my DS and soldering things in it. :-/ I fear it may be too small for me to avoid breaking something.
Really what we oughta be trying to do is getting emulators to run commercial games in debug mode. ;-)
#73413 - tepples - Sat Feb 25, 2006 2:36 pm
HyperHacker wrote: |
2) The games you buy on [original media] probably have most of the debugging features removed (which is a damn shame), and the ones with said features are locked up somewhere in a Nintendo building. |
Unless their name is "Super Smash Bros. Melee".
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#73415 - chishm - Sat Feb 25, 2006 3:03 pm
tepples wrote: |
HyperHacker wrote: | 2) The games you buy on [original media] probably have most of the debugging features removed (which is a damn shame), and the ones with said features are locked up somewhere in a Nintendo building. |
Unless their name is "Super Smash Bros. Melee". |
Or "Golden Sun: The Lost Age" (Secret debug room)
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com
#73578 - HyperHacker - Sun Feb 26, 2006 8:25 pm
Well that's why I said probably. ;-)
#73681 - M3d10n - Mon Feb 27, 2006 11:29 am
The debug features in games liks Smash Bros. and Golden Sun (or even the "level editor mode" in the 16-bit Sonic games, if you want to go that far) are different than running a game in true debug mode.
Those are more like hidden shortcuts tucked in release builds ot allow the developers to test if certain specific features are working properly without having to play through the game normally (what wastes vast amounts of precious time, depending on the game genre).
Debug builds are usually unoptimized by the compiler, and have references to the variable names and line numbers for memory addresses and instructions (that's why it uses more RAM than a release build). This makes it possible to pause the execution, step line by line and monitor variable values using a PC host with a debug cable. It might be even possible to modify parts of the code on the fly and see the changes right away (I haven't seen a DS debug unit personally, but I suppose it can load and run code directly from the debug cable).
#73766 - HyperHacker - Tue Feb 28, 2006 1:44 am
Yes, I've seen debug versions of games and they often take up more memory (due to lack of optimization, added debug features, etc) and sometimes run a bit slower, and have debug text on the screen. Although I honestly do wonder about SSBM. If that's what they left in... o_o
#74003 - M3d10n - Wed Mar 01, 2006 5:25 pm
SSBM has a hidden debug menu, that lets you do all kinds of neat stuff in the game, like set up matches all as you want. You can play any mode in any level, and use leftover levels and characters, or play as characters that shouldn't be playable.
This is "release debug" stuff: just shortcuts for setting up a game, unlocking all secret stuff, selecting levels or displaying extra information to see if everything is alright during beta-testing. It makes it easier to know what might be causing a bug, and make it easier to reproduce, so the developers can track it in a debug build.
Many developers do not remove these before shipping a game, sometimes due to lack of time, sometimes on purpose, as a bonus to the players. That includes most level-select codes avaliable in several games.