Kodewerx

Our culture has advanced beyond all that you could possibly comprehend with one hundred percent of your brain.
It is currently Sun Apr 28, 2024 10:07 am

All times are UTC - 8 hours [ DST ]


Forum rules


Discussion of illegal hacking/cracking is prohibited. (No virus/trojans/cracks/warez/etc allowed.)



Post new topic Reply to topic  [ 20 posts ] 
Author Message
PostPosted: Sun Feb 18, 2007 10:17 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Sun Feb 18, 2007 9:37 pm
Posts: 6
I've obtained for myself the following:
NDS Lite (avec Flashme)
M3 Lite Perfect (1g microSD)
Passme

Playing homebrew and ROMs is great fun up to a point. But I kind of want more, you know? But sadly, I'm not a very hacking inclined individual (because up to this point, I've done zero real hacking).

Not to say that I'm technically challenged. I can figure the basics out by playing around for most stuff. (Stuff that's not hacking related obviously.)

What I'm asking is: could someone kindly point me to some sort of resource that would help me figure out how to hack NDS games with my current hardware setup? I'm not really interested in paying 200 bucks to persue something I may not even become proficient in.

I've looked around a bit already, but I can't find anything that I understand. I end up staring at pages of numbers or code that might as well be a foreign language to me.

Any response at all is appreciated.

_________________
lol internet.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 3:29 am 
Offline
Kommunist
Kommunist
User avatar

Joined: Wed Nov 22, 2006 1:51 pm
Posts: 50
Location: California
http://forum.gbadev.org/index.php

And go to DS Misc at the bottom :D

_________________
The name is Image ... Image

Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 5:04 am 
Offline
Komrade
Komrade
User avatar

Joined: Mon Oct 02, 2006 5:56 pm
Posts: 1978
Title: Mr. Bitches
Ergh! No!
They don't take kindly to the hacking of the commercial roms there. It's a great homebrew community that I have been a part of for two years.

Sadly, you can't code hack with your current setup. ROM hacking is what you want to find out about.

_________________
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 Feb 19, 2007 10:47 am 
Offline
Kommunist
Kommunist
User avatar

Joined: Sun Feb 18, 2007 9:37 pm
Posts: 6
Hmm. What joys can ROM hacking bring me? I saw a post here about someone playing around with the menu texts and stuff of MPH, but am I limited to strictly offline, customization hacks?

_________________
lol internet.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 10:55 am 
Offline
Kommunist
Kommunist

Joined: Mon Jan 29, 2007 2:23 pm
Posts: 313
well if you could find the asm that decreases health and change it to 'nop' then play your rom online you would have an infinite health hack. Of course if you played your rom against bots they would also not die...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 11:00 am 
Offline
Kommunist
Kommunist

Joined: Sun Dec 31, 2006 6:29 pm
Posts: 131
Does every CPU have a NOP instruction?

_________________
Code:
#include <cstdlib>
#include <iostream>

int main(int argc, char *argv[])
{

   system("color 0A");
   for(int i=0;;i=rand()%2){
   for(long x=0;x<600000;x++);
   printf("%d",i);}
   system("pause");
   return 0;
}


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 11:35 am 
Offline
Kommunist
Kommunist

Joined: Mon Jan 29, 2007 2:23 pm
Posts: 313
well, the nds doesn't have a "true" nop instruction there is an instruction that moves the contents of a register into itself which basically does nothing as it does not affect any of the flags. I cant remember what the instruction is now and I cant find the link to the site either....there is a site with an asm instruction reference for the ds that I used alot and I cant remember what it was.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 12:53 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Sun Feb 18, 2007 9:37 pm
Posts: 6
That's the sort of shit I'm talking about. What software tools do I need to do this? I downloaded ndstool but I don't know jack about using it, or what anything in it means. I'm also lacking definitions for just about every term you used. asm? nop? a register? flags? All of it means nothing to me. Is there anywhere I could learn how to do something like this? Or something more basic that would lead up to this?

_________________
lol internet.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 3:13 pm 
Offline
Kommunist
Kommunist

Joined: Sat Feb 17, 2007 8:24 pm
Posts: 12
I'd recommend DSLazy, It skips the whole command prompt manual ROM opening command. I don't know a link from the top of my head, but I'm sure someone here knows. If you need help on getting started with ROM hacking, PM me when you have the tools you need. But just so you know, there are not too many ROMs that have understandable files that you can identify normally without other tools.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 3:35 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.
Ugh! I'm going to tear my brain out and stomp on it because of all the misinformation in this thread!

1) There is a whole lot of nothing you can do with a pirate cart and a PassMe; these are not hacking tools.
2) 'mov r0, r0' (ARM) and 'mov r8, r8' (Thumb) are, in fact, "real" NOP instructions. They do exactly what a NOP instruction is supposed to do: waste a CPU cycle with no operation. The term 'nop' is considered a pseudo-instruction in the ARM assembly language dialect, but it is no less real than it is in an instruction set with a dedicated NOP instruction (such as 6502).
3) DSlazy is a damn GUI for ndstool. If a user has no real use for ndstool already (as in, not knowing what to use it for) then neither of these programs will help in any conceivable way.

Personally, I would suggest you start with small hacks on an older platform. Something that is a lot more simple to work with, that's far more documented by hackers, and actually has the right tools readily available. I might suggest NES or SNES to begin with, and any number of ROM hacking and/or PAR code hacking tutorials and documentation available on such subjects.

Don't bother with assembly hacking on those unless that's the route you wish to take; NES/SNES assembly hacking. While it might give you a tiny bit of insight into how assembly hacking is done, it will not help you understand ARM or NDS architecture at all, because these platforms have very few similarities in practice. But for general cheat code hacking, it's the perfect place to start.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 4:10 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Sun Feb 18, 2007 9:37 pm
Posts: 6
I realize that a flash cart isn't a hacking tool. But it sounds like if I learned how to use it, ndstool would be. I'm not really interested in anything with an NES, mainly because the NES sucks. I'll give it a shot if it's going to help me end up at the DS more quickly than just learning straight up how to hack the DS, but from what you're saying it's not going to do that at all.

So assuming I'm not interested in general cheat code hacking, and specifically want to leran DD stuff, what can I do to educate myself?

_________________
lol internet.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Feb 19, 2007 5:38 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.
NES sucks? NES revived video games in the early 1980's. Arguably, without it video games would not be what they are today.

Like I have been trying to say, there are not a whole lot of NDS hacking tools out there. ndstool is just a general "ROM handling" utility. It is not designed specifically for hacking. There are a few NDS emulators out there with certain features that can relate well with hacking, but the emulation compatibility may leave something to be desired. So you can either start there, with emulators, or you can invest in one of the hacking-specific tools: Action Replay Trainer Toolkit (~$50) or Kwurdi (free, but currently requires Xport @ $200) ...

Either way, you'll probably find yourself studying all of the nitty-gritty computer science stuff (number bases, bitwise logic, etc) before you really get into hacking beyond simple cheat codes.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 7:53 am 
Offline
Kommunist
Kommunist

Joined: Mon Jan 29, 2007 2:23 pm
Posts: 313
simple answer, take a college course or two if you are serious about this stuff. If you plan on modifying a rom try an assembly course. It really helps to have a teacher there to help you out if you cannot learn something on your own. If you do not want to take a course I really suggest taking Parasyte's advice by starting with something easier. My suggestion is start with the GBA if you can because it is similar to the NDS and is very well documented. Here is some documentation on the GBA that is very thorough to get you started http://www.work.de/nocash/gbatek.htm


Parasyte wrote:
2) 'mov r0, r0' (ARM) and 'mov r8, r8' (Thumb) are, in fact, "real" NOP instructions. They do exactly what a NOP instruction is supposed to do: waste a CPU cycle with no operation.


The only reason I didn't consider it a 'true' nop was because of the fact that there are dedicated nop instructions as you mentioned and that the mov r0,r0 and mov r8,r8 are considered the 'standard' nop


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 8:20 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.
Oh, it's a "true" NOP, certainly. Any instruction that wastes a single cycle is a NOP. But if they actually have an operation (like setting the status flags for example; "movs r0, r0" in ARM, "mov r0, r0" in Thumb) then it's not a "true" NOP.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 12:43 pm 
Offline
Kommunist
Kommunist

Joined: Sun Dec 31, 2006 6:29 pm
Posts: 131
Assembly... I hope to god that ARM assembly is better than z80. Because I will not revisit trying to toil with making menus and good interfaces when its such a pain in the ass.

_________________
Code:
#include <cstdlib>
#include <iostream>

int main(int argc, char *argv[])
{

   system("color 0A");
   for(int i=0;;i=rand()%2){
   for(long x=0;x<600000;x++);
   printf("%d",i);}
   system("pause");
   return 0;
}


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 2:17 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 Kwurdi debug core is written in 100% ARM assembly. It's a very easy and very powerful instruction set. For example, almost all instructions can be conditionally executed, and almost as many will only update the CPU status flags (Zero flag, carry flag, overflow flag, etc.) optionally. Really great features for optimization.

Example:
Code:
tst     r0, #1         @ Test bit-0 in r0 and update CPU flags
orrnes  r0, r0, r1     @ If bit-0 in r0 is set, OR it with r1 and update flags again
orreq   r0, r0, #1     @ Else set bit-0 and do not update flags

It looks a bit complicated. The ORR instruction (OR Register) is simple enough; bitwise OR the contents of a register/immediate value. The NE and EQ conditions cause the instruction to only execute if the Z flag is set or cleared, respectively. The S switch causes the instruction to update the flags after the operation. (The TST instruction always updates flags; it is not optional.) If a condition is left off, it is assumed to be AL (always). Thus, ORR and ORRAL assemble to the same instruction.

And then, you have things like shift operands, which are also great for optimizations.

You can get more information here: http://en.wikipedia.org/wiki/ARM_architecture

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 6:48 pm 
Offline
Kommunist
Kommunist

Joined: Mon Jan 29, 2007 2:23 pm
Posts: 313
Baphomet wrote:
Assembly... I hope to god that ARM assembly is better than z80. Because I will not revisit trying to toil with making menus and good interfaces when its such a pain in the ass.


If you are referring to making TI-8x calculator programs then I know what you mean. I hated it as well.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 7:16 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Sun Feb 18, 2007 9:37 pm
Posts: 6
I'll check it out. Thanks for the help.

_________________
lol internet.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Feb 20, 2007 10:15 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.
My only leap into z80 was with GameBoy and GameBoy Color. Very unlikable, considering the z80 instruction set was originally based on x86; the worst CPU architecture on the face of the planet, in my opinion.

I did a strange timer hack for Super Mario Land using tniASM.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Feb 21, 2007 11:32 am 
Offline
Kommunist
Kommunist

Joined: Sun Dec 31, 2006 6:29 pm
Posts: 131
Good. If z80 is hard then other asm will be much easier.
@kickenchicken: Yes, some TI calcs used the z80. I programmed in asm for the TI calcs for quite a few years. It was toiling. It still liked it, however.

_________________
Code:
#include <cstdlib>
#include <iostream>

int main(int argc, char *argv[])
{

   system("color 0A");
   for(int i=0;;i=rand()%2){
   for(long x=0;x<600000;x++);
   printf("%d",i);}
   system("pause");
   return 0;
}


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

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 43 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