Kodewerx
https://www.kodewerx.org/forum/

No$GBA used for hacking?
https://www.kodewerx.org/forum/viewtopic.php?f=2&t=587
Page 1 of 1

Author:  Blazingwolf [ Tue Jan 23, 2007 4:56 pm ]
Post subject:  No$GBA used for hacking?

No$GBA supports NDS roms now and runs almost all games with some functionality and alot more with 100% funcitionality with different speeds, anyway it has a search cheat function for creating codes.

Now I know ZERO about hacking NDS, but are the ARDS codes in RAW format or encrypted? I haven't touched NDS hacking or gotten an ARDS yet, but if they are RAW it means we can hack our own codes, but if not has the ARDS encryption been cracked by Parasyte, (or anyone else for that matter) yet?

If someone needs the BIOS dumps, firmware dump, and encryptor to get roms working on the emulator, just ask and I'll compile something and put it on megaupload or something.

Author:  Dualscreenman [ Tue Jan 23, 2007 5:33 pm ]
Post subject: 

Heh, you seem to be a bit late. ;) This has been the only way to hack DS codes for a while. It might be worth noting that 2.3b came out today. Lots of roms may seem not to work, but setting the new "save type" feature fixes these. Compat's gotten better, but it isn't close to great. I'm not trying to sound like a prick, so sorry if I am. :)

Author:  Baphomet [ Wed Jan 24, 2007 7:01 am ]
Post subject: 

BlazingWolf, I need to get a Metroid prime Hunters ROM that works. I have the game, but I don't have the hardware to do it. I may need a bios dump. Do you have any suggestions as to what emulator would be good to run MPH?

Author:  lemmayoshi [ Wed Jan 24, 2007 7:07 am ]
Post subject: 

No emulator runs MPH that I know of, No$GBA will boot it but you won't get passed the main menu.

Author:  Baphomet [ Wed Jan 24, 2007 7:29 am ]
Post subject: 

So, I can't make codes for MPH without special hardware (or simple editing)?

Author:  Blazingwolf [ Wed Jan 24, 2007 12:27 pm ]
Post subject: 

Thanks for the update guys, and DSman what savetype do you change it to to increase compatibility?

Author:  Dualscreenman [ Wed Jan 24, 2007 1:15 pm ]
Post subject: 

I believe Metroid Prime Hunters uses 512 kb flash. It does vary from game to game, though. I hope autodetecting the savetype is implemented in the next version...

Author:  Parasyte [ Wed Jan 24, 2007 1:38 pm ]
Post subject: 

It's incredibly difficult to auto-detect the save type. The EEPROMs use the same commands, but have different size command widths, for example. Size can be detected in that way for most of the save types.

And no, Metroid does not use 512K EEPROM. (There is no 512K Flash) I'm fairly sure it uses 64K EEPROM.

Author:  Baphomet [ Wed Jan 24, 2007 2:24 pm ]
Post subject: 

Regular AR DS codes aren't encrypted as far as I know... As for AR MaxDuo, I have no clue. Hey blazingwolf, have read codetype information for the AR? (Thank god for kenobi) It really will help you make codes for the DS. If you've ever programmed in Assembly language, or C++, code making is extremely straight forward, provided you have the correct tools. Para has a video of him using some hardware and software he put together. It was just as expected. Search in memory for values. Just like hacking games for just about any system. Just mostly changing variables.

Author:  Parasyte [ Wed Jan 24, 2007 3:36 pm ]
Post subject: 

The hacks we do with a real debugger are vastly different from comparative searches. Sometimes comparative searches can in handy for debugging work, but the actually process of reverse engineering has big differences. I wanted to do a video for that with GCN, but it would have been too complicated.

Author:  Baphomet [ Wed Jan 24, 2007 3:47 pm ]
Post subject: 

With values like health, or money, why would you need anything more than searches? Of course for more complex codes, you'd need to do alittle more grunt work, right?
Oh! and Would I be able to alter the ASCII text (Like in menus) in a game using AR codes, or is that stored in ROM? DS games use ASCII, right? Or do they use Unicode? I know ASCII by heart (its pretty straight forward... Who doesn't?) but not unicode...

Author:  Parasyte [ Wed Jan 24, 2007 4:08 pm ]
Post subject: 

Some games have health variables and such used in ways that simple constant writes and even pointer writes cannot solve. Metroid Prime and Medal of Honor (both GCN) are some good examples. With those types of games, you have to get into the executable code and modify instructions, sometimes writing new subroutines.

And there are other example of more complex codes, like walking through walls, walking on water, inventory editors, etc. Anyone can find the value of money with comparative searches. But it takes some real knowledge and skill to do something impressive. And there are a lot of people who can.

Author:  Blazingwolf [ Wed Jan 24, 2007 4:59 pm ]
Post subject: 

All I know about now is comparative search code hacking, which is fun, but I never really knew you could code things into the game into the AR, sounds sweet! I never knew how complicated codes worked, but is that how, I mean I want to learn, though its hard to get my brain around how you could take code and put it in RAW hex form... and get it to run in a game...

Sounds hard but ultimatley fun, I'm an audio and visual learner, I have a hard time learning through words on a page. I have great memory too if I see and hear whats going on...

Author:  Dualscreenman [ Wed Jan 24, 2007 6:50 pm ]
Post subject: 

Quote:
How do you know the nds games's card size ? Well, all you can do is multiply by 8. Look:

4kb EEPROM ==> Set it to EEPROM 0.5kbytes
64mbits EEPROM ==> Set it to EEPROM 8kbytes
512mbits EEPROM ==> Set it to EEPROM 64kbytes
2Mbit FLASH ==> Set it to FLASH 256kbytes
4mbits FLASH ==> Set it to FLASH 512kbytes
256mbits FRAM ==> Set it to FRAM 32kbytes

ENJOY!


Ah, that'd explain it. Bits versus bytes.

Author:  Parasyte [ Wed Jan 24, 2007 7:18 pm ]
Post subject: 

There are currently zero games that use 4m or 8m Flash, and FRAM (64k and 256k) are also unused.

The save size are always specified in bits, mostly because the chips are serial. Although it's technically more common for all SRAM/Flash/ROM/PROM/EPROM/EEPROM/etc chips to be listed in bit sizes, anyway.

Author:  Baphomet [ Thu Jan 25, 2007 7:04 am ]
Post subject: 

Para, is there a way to relocate, or disable the AR code handler? And do you know of any RAM space that I can use safely in the DS without problems? (I want to make a custom routine to disable AR code handler)

Author:  Parasyte [ Thu Jan 25, 2007 8:18 am ]
Post subject: 

It can be relocated with a special code type. See the Animal Crossing master code for an example. I really doubt it works while in-game, but the copy bytes code can do it, as well.

If you want to disable the engine, just set the BX LR instruction into the engine's entry point. But you won't be able to re-enable it if you do that. A better way you be writing a custom routine to read the buttons that can re-enable the engine, and repointing the engine entry point to your re-enabler routine. That was it can be disabled and enabled on the fly.

Author:  kenobi [ Thu Jan 25, 2007 12:09 pm ]
Post subject: 

A 'simple' way to stop the code engine from executing codes would be to use the 'Execute custom asm routine' hack I made, and instead of ending it with bx r14, put this :

add r13,r13,10h
pop r4-r11,r14
bx r14

That would make the AR act just like all the codes have been executed, ie. it'll stop processing codes and will give back the hand to the game.

Add the asm pad check before (or put a regular if... code type before the E code type), and put all of that at the very start of your code list.

For exemple (tested and working), this code will prevent the code handler to analyze any further code if you're moving your character (if Up/Down/Left or Right is pressed) :
Code:
023FE074 012FFF31 // Enable code type E hack
A4000130 FF0F00F0 // Pad check : if Up/Down/Left or Right is pressed...
E0000000 00000010 //
E28DD010 E8BD4FF0 // This is the asm routine that stops the code handler
E12FFF1E 00000000 //
D2000000 00000000 // Clears the If... code
023FE074 E3520003 // Disables the code type E hack



This is a 'if key is pressed, stop executing codes' asm routine. One could also make a 'switch' ('press L+R+A to enable the code handler, L+R+B to disable it') by storing the on/off value after the asm routine, ie. no need to find free space (but that means the pad checking routine must be in asm).

For exemple :
Code:
023FE074 012FFF31
E0000000 00000048
E59F0038 E1D000B0
E1DF13B6 E0000001
E3500002 0A000001
E3500001 1A000001
E2200003 E1CF01B8
E1DF01B4 E3500001
0A000001 E28DD010
E8BD4FF0 E12FFF1E
04000130 03030001
D2000000 00000000


With this code/asm routine the code execution is enabled by default, pressing L+R+A enables it, and pressing L+R+B disables it.
And changing 03030001 to 03030000 makes the code execution disabled by default.


Needless to say that all these codes will work whatever the game is, as they all use 'relative' addressing.

Author:  Baphomet [ Fri Jan 26, 2007 3:42 pm ]
Post subject: 

Wow. Did you ever write an ARM assembly tutorial? If so, I'd love to read it. I'm going to learn ARM asm. Hopefully, I can assemble my programs by hand in it as easy as I do with z80 (z80 is pretty simple compared to other CPUs...)

By the way, out of curiosity... How did this Asm hack come about? What happened that the AR will run custom asm code?

I found out how to change the activator in that asm code, too.

I'm going to look for an ARM asm tutorial.

Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/