• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best places on the 'net to talk Pokémon and more! Community members will not see the bottom screen advertisements.
  • Want to share your adventures playing Pokémon?
    Check out our new Travel Journals forum for sharing playthroughs of ROM Hacks, Fan Games, and other Pokémon content!
  • IMPORTANT: Following a takedown request, the following hacks have been delisted from PokéCommunity:

    • Pokémon Glazed
    • Pokémon: Giratina Strikes Back
    • Pokémon Flora Sky
    • Pokémon Stranded
    The downloads and discussion threads for these hacks will no longer be accessible, and staff will be unable to return questions regarding accessing this content.

HackMew's Knowledge

0m3GA ARS3NAL

Im comin' home...
1,816
Posts
16
Years
YES! Finally, an ASM tutorial that gets down to the very basics, complete with definitions of everything I need to know! Better than any of the tutorials I have read so far! I especially like it because it explains things line by line, you don't see that often, people could learn from you! You deserve some +Rep, so here you go!
 
219
Posts
16
Years
Originally HackMew is an ASM hacker,too! I just found that the period of ASM is coming!

BTW, for starters like me, a lot of ARM commands are really needed to be explain.
 
581
Posts
17
Years
Wow, This is propperly the tutorial I like most here at pc, You did an awesome job.

I'm really Excited about the next tutorial. I spended nearly about an hours but it was all the time worth. Now I realeized that ASM isn't a big green garlic junior'ish monster living under my bed...


Is that ok?
text1cj5.png


SPOILER - Do not open this if you plan on reading the tutorial or are currently doing it. Please don't.
Spoiler:

SPOILER - Do not open this if you plan on reading the tutorial or are currently doing it. Please don't.

Last I would like too tell I'm really really happy for this tutorial, and you're doing a great job. It's really well written and I'm looking forward to part two!
EDIT INSIDE THE SPOILER!
 
Last edited:

HackMew

Mewtwo Strikes Back
1,314
Posts
17
Years
  • Seen Oct 26, 2011
Thank you all, I really appreciate your feedback. While you wait for the next lesson, do you have any suggestions perhaps?
 
581
Posts
17
Years
Thank you all, I really appreciate your feedback. While you wait for the next lesson, do you have any suggestions perhaps?

Actually I don't have any suggestions, but I would be very glad if the next guide was as well exsplained as this one.
Else more task and homework.

Edit: And less waiting time! (Now take your time, I'll just wait with eating, showering and drinking for the next guide...
I'll edit my other post now...
 
1,906
Posts
15
Years
  • Age 30
  • Seen Oct 21, 2019
All of your tutorials seem quite extensive. If I ever take the time to read it, I'll bet they'll help me.
Now, to comment on your most recent tutorial. First off, it seems detailed, and even gives an example of how you can crash a ROM! It's really great, Andrea. I look forward to more extensive tutorials by you.
 

cooley

///Keepin' it simple
1,148
Posts
17
Years
Hey I just wanted to complement you for your ASM Tutorial. I'm no longer scared of ASM anymore XD Its very nice the way you share valuable info with all of us, but in spite of how easily-comprehendable you make it, some people just can't learn on a basic level :P ( I am not talking about me btw )

Good luck with the next lesson, I can't wait to learn something new ^_^ Oh and I'll talk to you when I do think of a suggestion ;)
-cooley
 
581
Posts
17
Years
Hey I just wanted to complement you for your ASM Tutorial. I'm no longer scared of ASM anymore XD Its very nice the way you share valuable info with all of us, but in spite of how easily-comprehendable you make it, some people just can't learn on a basic level :P ( I am not talking about me btw )

SO DAMN WRONG...

If most of the people on these forums just took the time too sit down, and maybe learned some basic other stuff before, most would propperly be able to follow these tutorials but...
 

cooley

///Keepin' it simple
1,148
Posts
17
Years
SO DAMN WRONG...

If most of the people on these forums just took the time too sit down, and maybe learned some basic other stuff before, most would propperly be able to follow these tutorials but...
Maybe, but MOST people are not willing to do that. I think this is a bit off-topic though, VM if you like ^_^
 

Surf

...
1,196
Posts
15
Years
  • Age 29
  • Rust
  • Seen Jul 31, 2011
Zomg, I actually understood half of the ASM tutorial.
I managed to compile a timer that foofatron showed me :D
Thanks for the tut Hackmew, I really enjoyed it!
 

0m3GA ARS3NAL

Im comin' home...
1,816
Posts
16
Years
Hmm.... I hope a 2nd tutorial is released sooner or later... (Sooner than later, heheh) I have really wanted to learn this stuff, and I understand THIS MUCH OF IT. *makes fingers into a small pinch*
I still wanna know more!
 

Pokepal17

More cowbell~
1,519
Posts
15
Years
Well I've been reading the ASM tutorial and I'm beginning to understand it. Maybe for the next ASM tutorial you could show how to make a temporary effect in-game become permanent e.g. make the player overworld not change back after changing it with writebytetooffset.
 
4
Posts
14
Years
  • Seen May 28, 2010
great tutorial, but i have one question. Why do you change the values of player_data and var at the end of the script?
 

Full Metal

C(++) Developer.
810
Posts
16
Years
Hey hackmew I tried to add the trainer id into the asm as well....
it is A instead of C right?
I did something wrong though the script freezes before the guy even faces player
which is weird cuz i called the asm after faceplayer, then called buffernumber 0x1 LASTRESULT (for the secret id) and buffernumber 0x2 (for the trainerid)
the music keeps playing so i think it's my problems with asm.
well anwyays here's my attempt for FireRed.
Spoiler:

i haven't tried debugging it just yet....
 
185
Posts
16
Years
Something goes wrong for me... Everything is fine up to the point where I paste the content from that lesson1.bin into my FR rom. When I try to play the ROM, it freezes as soon as I play A or let the gamefreak logo thing pass by. When I try loading it in A-Map, A-Map crashes... What went wrong then? I used the right offset (0x820000), it had plenty of free space, and yet nothing worked and my ROM got screwed up... And yes, I did assemble the fr lesson, I double checked it.
 

HackMew

Mewtwo Strikes Back
1,314
Posts
17
Years
  • Seen Oct 26, 2011
great tutorial, but i have one question. Why do you change the values of player_data and var at the end of the script?

  1. It's not a script.
  2. I don't change anything, I just assign a values for both. Pretty different.
  3. You should read the tutorial again, I guess.
Hey hackmew I tried to add the trainer id into the asm as well....
it is A instead of C right?
I did something wrong though the script freezes before the guy even faces player
which is weird cuz i called the asm after faceplayer, then called buffernumber 0x1 LASTRESULT (for the secret id) and buffernumber 0x2 (for the trainerid)
the music keeps playing so i think it's my problems with asm.
well anwyays here's my attempt for FireRed.
Spoiler:

i haven't tried debugging it just yet....

Yes, it's 0xA instead of 0xC as it's 2 bytes before. Aside from that, your whole ASM routine is screwed up. Please read the guide again, as I never used .align 3 anywhere, for example. Your push/pop usage is also wrong.


Something goes wrong for me... Everything is fine up to the point where I paste the content from that lesson1.bin into my FR rom. When I try to play the ROM, it freezes as soon as I play A or let the gamefreak logo thing pass by. When I try loading it in A-Map, A-Map crashes... What went wrong then? I used the right offset (0x820000), it had plenty of free space, and yet nothing worked and my ROM got screwed up... And yes, I did assemble the fr lesson, I double checked it.

That's just because you screwed up your ROM. Remember you can't simple insert the new routine pasting it somewhere. That way, you increase the ROM size and screw up all the data after because the pointer will be mostly broken. So, when pasting, make sure to overwrite the right amount of space.
 
185
Posts
16
Years
That's just because you screwed up your ROM. Remember you can't simple insert the new routine pasting it somewhere. That way, you increase the ROM size and screw up all the data after because the pointer will be mostly broken. So, when pasting, make sure to overwrite the right amount of space.

Ah thank you, it worked. I thought bytes were overwrited already when you just pasted it.

EDIT: Ok, I tried something out, but it didn't work:

Spoiler:


I tried using this to change wild data for Route 1. The first rattata in the list was supposed to be changed to an arbok, but it didn't work, so it seems. I kept encountering the usual pidgey's and rattata's (tried around 20 - 30 encouters, didn't find it).

Here's my script (a simple lvl script):

Code:
#dynamic 0x800000

#org @start
checkflag 0x201
if b_true goto @stop
callasm 0x810009
setflag 0x201
end

#org @stop
end

I'm new to ASM, and I'm not sure what I missed out, so can someone help?
 
Last edited:

PlatniumPiano

You are now breathing manually
479
Posts
15
Years
Hackmew, I have a problem.
I extraced the .asm rountines into a folder named "thumb" on my desktop, which contains the assembler. The first time I tried to assemble, the routine opened in Visual C++ I have installed on my computer. But, whenever I try and run the command prompt as
Code:
C:\Documents and Settings\Name\Desktop>thumb lesson1.asm lesson1.bin
I get the message
Code:
'thumb' is not recognized as an internal or external command, operable 
program or batch file.
I have little experience with command prompts, so did I mis-type something? Or is it another problem I am having?
 

HackMew

Mewtwo Strikes Back
1,314
Posts
17
Years
  • Seen Oct 26, 2011
Ah thank you, it worked. I thought bytes were overwrited already when you just pasted it.

EDIT: Ok, I tried something out, but it didn't work:

Spoiler:


I tried using this to change wild data for Route 1. The first rattata in the list was supposed to be changed to an arbok, but it didn't work, so it seems. I kept encountering the usual pidgey's and rattata's (tried around 20 - 30 encouters, didn't find it).

Here's my script (a simple lvl script):

Code:
#dynamic 0x800000

#org @start
checkflag 0x201
if b_true goto @stop
callasm 0x810009
setflag 0x201
end

#org @stop
end

I'm new to ASM, and I'm not sure what I missed out, so can someone help?

Like I told you already, you can't edit the ROM as it's Read-Only Memory. Even if the ASM routine was correct, it would never work.


Hackmew, I have a problem.
I extraced the .asm rountines into a folder named "thumb" on my desktop, which contains the assembler. The first time I tried to assemble, the routine opened in Visual C++ I have installed on my computer. But, whenever I try and run the command prompt as
Code:
C:\Documents and Settings\Name\Desktop>thumb lesson1.asm lesson1.bin
I get the message
Code:
'thumb' is not recognized as an internal or external command, operable 
program or batch file.
I have little experience with command prompts, so did I mis-type something? Or is it another problem I am having?

Well... The problem is your using the wrong folder. Type "cd thumb" without quotes and try again. If you extracted everything from the zipped archive into your thumb folder, it will work.
 

PlatniumPiano

You are now breathing manually
479
Posts
15
Years
Well... The problem is your using the wrong folder. Type "cd thumb" without quotes and try again. If you extracted everything from the zipped archive into your thumb folder, it will work.
Now what happens is that the command prompt opens the routine in Visual C++ again :/
 
Back
Top