Golden Sun Hacking Community

General Hacking => Non-GS Hacking => Topic started by: Salanewt on 07, July, 2009, 12:59:00 PM

Title: Asm Hacking
Post by: Salanewt on 07, July, 2009, 12:59:00 PM
Hello. ASM hacking is considered more advanced hacking because it requires knowledge in Assembly coding to work. With it, you can add or change things in a game so they work differently. A good example of what you can do with ASM hacking (which I think is different (not that much) for each system) is seen in a hack of Zelda: A Link to the Past (this hack is known as Parallel Worlds (there are others as well)). That is for the SNES, but it is still a good hack that demonstrates what you can do with ASM hacking.

If you are not very good at ASM hacking (like myself), then you will probably need all of the help that you can get.

ASM hacking tutorial for GBA (http://patater.com/gbaguy/gbaasm.htm)

Quote
Chapter 1 - Overview
Chapter 2 - The Compiler
Chapter 3 - Some ARM Instructions
Chapter 4 - Dissecting our First Program
Chapter 5 - The Gfx System
Chapter 6 - More Instructions
Chapter 7 - Multiplication
Chapter 8 - The BIOS
Chapter 9 - Thumb (link does not work, please think of it as a reserved spot)

I found this when I was searching for ASM hacking tutorials. There are other websites (I think), but the more popular ones that I could find with Google were either for different games, or there was an error of some type. This tutorial is pretty good, but you should start from the beginning to avoid getting lost.

In case you have forgotten or did not know, I think that this is for the GBA ONLY (maybe GBC, but I doubt it (possibly NES and SNES as well, but I am VERY sure that it is only GBA [and maybe GBC])).

I hope that this helps you all become more experience hackers, and I hope that everyone will have a nice day!

EDIT: Please do not forget to post anything else that you know/find about ASM hacking (but please remember to talk about GBA coding (or related coding as well, as long as you state correctly that it is related)).

EDIT 2: The website does say that it is supposed to work for GBA games, but it is not talking about them as much as I would have liked. It might help a little bit though.

Have a nice day.
:MercurySet:

This post has been edited by Salanewt on Jul 7 2009, 12:15 PM
Title: Asm Hacking
Post by: Atrius on 07, July, 2009, 05:11:00 PM
On a side note, the Golden Sun TLA editor is capable of displaying the code associated with maps as ASM.
Title: Asm Hacking
Post by: Charon on 07, July, 2009, 05:14:00 PM
Oh yeah, I saw that. That's a pretty nice feature you got there.
Title: Asm Hacking
Post by: Salanewt on 07, July, 2009, 06:36:00 PM
Okay, I found some simple commands. This will basically be considered a list of commands when ASM hacking. Please correct me if anything is wrong.

r0-r12: GPRs (General Purpose Registers)
   r13: Typically used as a stack pointer, if you don't use the stack (small demo or something, then this
      can be considered a GPR).
   r14: Link register, can be used as a GPR, but its main purpose is to hold return addresses for the Branch
      and Link Instruction (a sub-routine call).
   r15: PC register, holds the address +8 of the current instruction (ARM7 has a 3 stage pipeline, so if
      you read PC, it will have the address of 2 instructions a head of the one you used to read it).

To be continued.

Have a nice day.
:MercurySet:  :MercuryDjinni:  
Title: Asm Hacking
Post by: Blazer on 08, July, 2009, 08:28:00 PM
Cool stuff, this will really be useful for me, thanks. ^_^