Kodewerx

Our culture has advanced beyond all that you could possibly comprehend with one hundred percent of your brain.
It is currently Mon Aug 11, 2025 3:33 am

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 21 posts ] 
Author Message
PostPosted: Sat Jan 06, 2007 2:25 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
Lunar: Dragon Song (US)

Enable Code
800085EF 414C4E45
F20AC4B4 223FC000

Infinite Gold
220B4824 02625A00


I also made a video to show how it was hacked. (I know, it's not much of a tutorial; the hack is over simplified. It's more of a demonstration for "how I did it.")

High quality MPEG4 (XviD): http://files.filefront.com/Tutorial_1___Lunar_DS_XviD/;6482829;;/fileinfo.html (~93MB)
High quality MPEG4 (Quicktime): http://files.filefront.com/Tutorial_1___Lunar_DS_High/;6482380;;/fileinfo.html (~86MB)
Low quality MOV (Quicktime): http://files.filefront.com/Tutorial_1___Lunar_DS_Low/;6482381;;/fileinfo.html (~18MB)

The tools used in the video are not currently available to the general public (with some exceptions like Xport and Renegade64), but could possibly reach public beta within the next few months. For anyone who remembers GCNrd, this software is the same idea, but designed for Nintendo DS; create codes and generally debug NDS executables and games.

We might have some more videos like this in the future. Hopefully not as boring, and with some demonstrations of some of the more interesting tools. But I think this is a good start. :)

Digg It: http://digg.com/programming/Tutorial_Vi ... do_DS_game

_________________
I have to return some video tapes.

Feed me a stray cat.


Last edited by Parasyte on Mon Feb 26, 2007 4:56 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 3:04 pm 
Offline
Kommunist
Kommunist

Joined: Tue Oct 10, 2006 9:32 am
Posts: 445
Even if it's a basic hack, it's really a great vid, and some very nice hacking hardware you have there xD

I can't wait for the next ones !


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 3:12 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
I'm uploading a high quality XviD version right now, since some people don't like Quicktime. ;)

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 3:52 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Mon Oct 09, 2006 2:04 pm
Posts: 259
Location: Chicago
Nice job!

I actually understood all of it. :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 4:14 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:46 pm
Posts: 2331
Location: *poof*
Title: The Mad Hacker
Well, I'll get to watch it in 26 min.. I can't wait though, I'm excited! :D

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 4:49 pm 
Offline
Komrade
Komrade
User avatar

Joined: Mon Oct 02, 2006 5:56 pm
Posts: 1978
Title: Mr. Bitches
/me wants an Xport...

_________________
Image
Image
<EggWerx> MetalOverlord: Dsman and lemmayoshi will be used for taco meat, ask mo he knows me.
jleemero wrote:
Being required to learn Java for a Comp Sci MAJOR is like being required to shit on a lawnmower to be an astronaut.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 4:58 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:46 pm
Posts: 2331
Location: *poof*
Title: The Mad Hacker
That was great but what will we need to hack? Same stuff as in the vid? I can't drop $200+ to hack. :(

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jan 06, 2007 5:09 pm 
Offline
Komrade
Komrade
User avatar

Joined: Mon Oct 02, 2006 5:56 pm
Posts: 1978
Title: Mr. Bitches
-Xport/parallel cable
-NDSrd
-Game

Alternately you can use:
-A ROM
-No$GBA emulator
-HasteDS (shitty search program that searches the RAM in the emulator)

_________________
Image
Image
<EggWerx> MetalOverlord: Dsman and lemmayoshi will be used for taco meat, ask mo he knows me.
jleemero wrote:
Being required to learn Java for a Comp Sci MAJOR is like being required to shit on a lawnmower to be an astronaut.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Jan 07, 2007 12:16 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
Unfortunately, using ROMs always has and always will be illegal, and Martin Korth made his "no$" (term used very loosely) line of emulators "yes$" many years ago. (Software emulators should never, ever be an investment.) On top of that, it does not have perfect compatibility. And of course the free emulators are hardly usable.

It would be great if it was possible to write WiFi code with a small enough footprint to run on NDS alongside a game, but somehow I don't think it is. There's literally only about 4KB that I can use. With Xport, I have a pretty high transfer rate (currently up to about 273KB/s or about 2mbit ... approximately 2x faster than what Datel claims their own trainer can do with a USB connection) and a very small program footprint ~2KB.

The problem with my current setup is that it uses LPT. Almost no laptops contain LPT ports any more, and probably a few recent motherboard manufacturers have been dropping them from desktops as well. I can create a custom FPGA logic configuration to use USB instead of LPT, but that still leaves the price of the Xport hardware, and complicates the client software development.

Some other possibilities include:
PassMe Serial (far too slow transfer rate)
GBA flash cart (far too slow erase/write operation, no direct PC connectivity, many cards requiring different erase/write functions)
GBA media card adapters (file system handling will increase program footprint, no direct PC connectivity, many cards requiring different media access functions)

The pros for each method are about the same, so the only weight to put on them would be the cons, as displayed above. Questions, comments, criticisms?

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Jan 07, 2007 7:13 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:46 pm
Posts: 2331
Location: *poof*
Title: The Mad Hacker
We don't get paid to hack so I'd say run with whatever's cheapest.

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Jan 07, 2007 7:52 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
Cheapest = WiFi.
WiFi = least compatible, due to the need of a larger program footprint.

Remember how GCNrd was with games like Resident Evil 4? Yeah, like that. Only worse.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Jan 07, 2007 8:12 pm 
Offline
Komrade
Komrade
User avatar

Joined: Mon Oct 02, 2006 5:56 pm
Posts: 1978
Title: Mr. Bitches
Next cheapest would be media card adapters. You can get Supercards for ~$40 USD. Screw M3's, they are expensive. I'd opt for media cards. Both the Supercard and the M3 have some cheap RAM that they use to play GBA games from. (32 MB) You may be able to use that to store shit and ease the overhead.

_________________
Image
Image
<EggWerx> MetalOverlord: Dsman and lemmayoshi will be used for taco meat, ask mo he knows me.
jleemero wrote:
Being required to learn Java for a Comp Sci MAJOR is like being required to shit on a lawnmower to be an astronaut.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 1:47 am 
Offline
Kommunist
Kommunist

Joined: Tue Oct 10, 2006 9:32 am
Posts: 445
I don't mind paying 200$+ for an Xport, however I have absolutely no soldering/whatever is needed skill, so I wouldn't be able to modify it myself.

And I don't like very much the other solutions (compared to the Xport one)... :/
However, if you really have to drop the Xport, I think the main goal would be to have the best compatibility, meaning the flashcard/mediacard could be the best choice.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 5:39 am 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:46 pm
Posts: 2331
Location: *poof*
Title: The Mad Hacker
I'm not really sure what a program footprint is (I think you're talking about the part of the program uploaded to the game for control) but where would the program be written if you do it via wifi? Is the program somewhere else with Xport? How do these compare to where GCNrd is written?

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 9:46 am 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
The program footprint is literally the size of all memory used by the program. With a footprint larger than about 4KB, you start running into the same problem with GCNrd: There just isn't a perfectly reliable area of memory that goes unused on all games. That means you will need to setup a "configuration file" of sorts that will help select the proper memory region for specific games. Meanwhile it would be much easier to just keep the program in static memory as much as possible to improve compatibility.

GCNrd uses static memory for these reasons, but the more important reason was because the debugger program was written almost entirely in C. The majority of it is NOT relocatable. If it were to use the same static memory scheme AND be relocatable, then games like RE4 could be fixed just by moving it to another location in memory.

Further more, if the program was run on the GBA ROM bus, for example, you'll get about zero memory conflicts. However, the GBA ROM bus is something on the order of 16 times slower than cached or TCM memory.
Running the program in uncached memory (like that typically used for AR/CB code engine) is about 2 times slower than cached or TCM memory. (This can be benchmarked very easily with NTRrd; ~26 second RAM dump from uncached memory. ~15 seconds from cached memory.)

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 11:06 am 
Offline
Komrade
Komrade
User avatar

Joined: Mon Oct 02, 2006 5:56 pm
Posts: 1978
Title: Mr. Bitches
So if I understand correct, it would be possible to utilize the RAM present in the media-card based flashcarts but doing so would slow down operation. (2 minute memory dump.) That's a bit long, but for me personally it would be way better than landing bucks for an Xport.

_________________
Image
Image
<EggWerx> MetalOverlord: Dsman and lemmayoshi will be used for taco meat, ask mo he knows me.
jleemero wrote:
Being required to learn Java for a Comp Sci MAJOR is like being required to shit on a lawnmower to be an astronaut.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 3:59 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
That's about right. Yet another problem, though, is dealing with games which inexplicably give GBA bus access to a specific CPU.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 6:14 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:46 pm
Posts: 2331
Location: *poof*
Title: The Mad Hacker
Is it possible to do a dynamic program where what's in the footprint is what's needed at the time? Like my Super Spinner code, for example, the AR is what writes my requests but my requests are to replace the same spot of ASM each time with whatever I want at that time. So my thought is that the footprint would be like a fixed function that writes requests sent from the WiFi and branches to it when finished. Those requests would fill in the rest or part of the 4kb memory that the poke function isn't using.
So couldn't you do something like that? Just upload a poke command as the footprint and send in, via the poke, chunks of program at a time, and continue to replace that code based on what the computer user wants to do at the time?

That would be awesome but that would only work if my understanding of a footprint is correct (in that it's a program that handles requests from a computer similar to an AR footprint and codes).


Another idea would be to go with the configuration idea. With this it would be great to use two programs, one is a full blown debugger like GCNrd, and the other is a small one that lets you view the game's ram only. Because if the full version doesn't work because it needs to be relocated due to size, then with a smaller footprint you'd be less-likely to run into the problem in that no-longer 4kb area. While the small one's running, we'd just look for open area and simply add the first address of open area to the configuration file(and a tag of some sort that you'd select from a drop down list or something when booting for the problematic game). So when you select that tag, the program footprint gets plopped into the hole we found instead of the what-should-have-been 4KB space.


I really like the idea of hacking over the WiFi (for a number of reasons, cheap being at the top) so if there's any work-around for the crappy memory problem I would love to see that path taken.
I don't think there's anything I can do to help but if there is, let me know. Perhaps a better explination of one of the two ideas? I have a hard time explaining because of my visual thoughts so I would even go as far as drawing crappy diagrams of my thoughts if you're at all interested in exploring these possible posibilities..

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 8:25 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
The footprint is literally just the physical size of code and data. In other words, a selected area of memory allocated for the program's use. Yes, code and data can be swapped into memory only when needed, but it will come at a huge speed cost. You have to remember that the ARM9 runs at about 67MHz. That's about 15ns per clock cycle at 100% efficiency. Now keep in mind that it takes 4~8 cycles for each word copied into memory, and an additional 6~16 cycles for reads to the GBA bus (which has infinitely lower latency than WiFi) In all, you would be looking at a program that runs at about 5~64 times slower than optimal.

And that's not taking into account the extreme difficulty present in a task of squeezing a 32~64KB program down into 4KB using swappable memory regions.

Possible? Yes. Plausible? No.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jan 08, 2007 9:24 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:46 pm
Posts: 2331
Location: *poof*
Title: The Mad Hacker
I understand now, that sucks.
Well, I guess do whatever will work fastest then. If it costs $200+, I'm not gonna be able to jump in right away but I suppose I could save up. :(
It cost me about $100 to get what I needed to hack GCN but I was single, not in college, and was working constantly. heh damn.

I think it would be best to do what works fastest and has the fewest problems between games. I'll get the money eventually and I'm really looking forward to hackin some codes for the DS. Thanks Para.

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Jan 09, 2007 7:03 am 
Offline
Komrade
Komrade
User avatar

Joined: Mon Oct 02, 2006 5:56 pm
Posts: 1978
Title: Mr. Bitches
Even if it is slow and isn't compatible with all games, it would be great to have the option to use a flashcart. Heck, if you ran NDSrd out of the flashcart's RAM you could even add WiFi since you have 32 MB to consume in gluttony.

_________________
Image
Image
<EggWerx> MetalOverlord: Dsman and lemmayoshi will be used for taco meat, ask mo he knows me.
jleemero wrote:
Being required to learn Java for a Comp Sci MAJOR is like being required to shit on a lawnmower to be an astronaut.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group