The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.


Advertise here

Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #26    
Old February 21st, 2009, 03:17 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006

Advertise here
Thank you all, I really appreciate your feedback. While you wait for the next lesson, do you have any suggestions perhaps?
__________________
Reply With Quote
  #27    
Old February 21st, 2009, 05:50 AM
hi sir tomato my password is syvniti's Avatar
hi sir tomato my password is syvniti
gggggggggggggggggg
 
Join Date: Jan 2007
Location: My user name _ asciii_ +&h1!" lulz
Quote:
Originally Posted by HackMew View Post
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...
__________________
THE CAKE IS A LIE!!!!!!!!!!!!!!!!!!!!!!!
Reply With Quote
  #28    
Old February 27th, 2009, 12:49 PM
Disturbed's Avatar
Disturbed
O.o
 
Join Date: May 2008
Age: 21
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.
Reply With Quote
  #29    
Old March 1st, 2009, 04:39 PM
cooley's Avatar
cooley
///Keepin' it simple
 
Join Date: Feb 2007
Location: United States
Age: 19
Gender: Male
Nature: Impish
Send a message via Windows Live Messenger to cooley Send a message via Skype™ to cooley
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 ( 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
__________________

Reply With Quote
  #30    
Old March 2nd, 2009, 04:35 AM
hi sir tomato my password is syvniti's Avatar
hi sir tomato my password is syvniti
gggggggggggggggggg
 
Join Date: Jan 2007
Location: My user name _ asciii_ +&h1!" lulz
Quote:
Originally Posted by cooley View Post
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 ( 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...
__________________
THE CAKE IS A LIE!!!!!!!!!!!!!!!!!!!!!!!
Reply With Quote
  #31    
Old March 2nd, 2009, 07:15 AM
cooley's Avatar
cooley
///Keepin' it simple
 
Join Date: Feb 2007
Location: United States
Age: 19
Gender: Male
Nature: Impish
Send a message via Windows Live Messenger to cooley Send a message via Skype™ to cooley
Quote:
Originally Posted by Gvdl bmmzpv tuvqje cjudi View Post
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
__________________

Reply With Quote
  #32    
Old March 11th, 2009, 10:14 PM
Surf's Avatar
Surf
...
 
Join Date: Jul 2008
Location: Rust
Age: 19
Gender: Male
Nature: Relaxed
Send a message via Windows Live Messenger to Surf
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!
__________________
I'm looking for some good (When I say good,
I mean you can hold your own by yourself)
N**i Zombies players, to form a team or even a
clan, to play with casually.
Send me a PM with your Highest Level and your PSN,
and I'll get back to you.
Reply With Quote
  #33    
Old March 14th, 2009, 12:38 AM
0m3GA ARS3NAL's Avatar
0m3GA ARS3NAL
Im comin' home...
Community Supporter Tier 1
 
Join Date: Jan 2008
Location: Superjail Penitentiary
Age: 21
Gender: Male
Nature: Gentle
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!
__________________
>Boot Jailbot
>Pass *****
.
.
Jailbot OS Ver 1.1.2
Greetings Warden
of Superjail Penitentiary
Awaiting user input...

>Display User_Info
╠══User Info══╣
Username:
0m3GA ARS3NAL
Age: 18
Sex: Male ♂
Race: Caucasian
Quote:
"What is this
I don't even..."

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.
╠══End of File══╣
Awaiting user input...

>
Reply With Quote
  #34    
Old March 17th, 2009, 12:14 PM
Pokepal17's Avatar
Pokepal17
More cowbell~
 
Join Date: Oct 2008
Location: Steeltown
Age: 19
Gender: Male
Nature: Modest
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.
__________________
Pokémon Stardrop
Reply With Quote
  #35    
Old June 10th, 2009, 07:41 AM
master_script_maker
Beginning Trainer
 
Join Date: Jun 2009
great tutorial, but i have one question. Why do you change the values of player_data and var at the end of the script?
Reply With Quote
  #36    
Old June 19th, 2009, 10:32 AM
Full Metal's Avatar
Full Metal
C(++) Developer.
Community Supporter
 
Join Date: Jan 2008
Location: In my mind.
Age: 19
Gender: Male
Nature: Timid
Send a message via Windows Live Messenger to Full Metal
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:

.text
.align 2
.thumb
.thumb_func
.global lesson1

main:
push {r0-r1, lr}
ldr r0, .PLAYER_DATA
ldr r0, [r0]
ldr r1, .VAR
ldrh r0, [r0, #0xC]
strh r0, [r1]
pop {pc}
push {lr}
ldr r0, .PLAYER_DATA
ldr r0, [r0]
ldr r1, .VAR2
ldrh r0, [r0, #0xA]
strh r0, [r1]
pop {r0-r1, pc}

.align 3
.PLAYER_DATA:
.word 0x02024EA4
.VAR:
.word 0x0201E8C2 + (0x800D * 2)
.VAR2:
.word 0x0201E8C2 + (0x8001 * 2)

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

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #37    
Old July 7th, 2009, 07:50 AM
-DarK-
Hold Your Colour
 
Join Date: Jun 2007
Location: Belgium
Age: 21
Gender: Male
Nature: Brave
Send a message via Windows Live Messenger to -DarK-
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.
Reply With Quote
  #38    
Old July 7th, 2009, 08:15 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by master_script_maker View Post
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.
Quote:
Originally Posted by The blob of blobs View Post
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:

.text
.align 2
.thumb
.thumb_func
.global lesson1

main:
push {r0-r1, lr}
ldr r0, .PLAYER_DATA
ldr r0, [r0]
ldr r1, .VAR
ldrh r0, [r0, #0xC]
strh r0, [r1]
pop {pc}
push {lr}
ldr r0, .PLAYER_DATA
ldr r0, [r0]
ldr r1, .VAR2
ldrh r0, [r0, #0xA]
strh r0, [r1]
pop {r0-r1, pc}

.align 3
.PLAYER_DATA:
.word 0x02024EA4
.VAR:
.word 0x0201E8C2 + (0x800D * 2)
.VAR2:
.word 0x0201E8C2 + (0x8001 * 2)

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.


Quote:
Originally Posted by -DarK- View Post
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.
__________________
Reply With Quote
  #39    
Old July 7th, 2009, 09:15 AM
-DarK-
Hold Your Colour
 
Join Date: Jun 2007
Location: Belgium
Age: 21
Gender: Male
Nature: Brave
Send a message via Windows Live Messenger to -DarK-
Quote:
Originally Posted by HackMew View Post
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:
.text
.align 2
.thumb
.thumb_func
.global test1

main:
push {r0-r1, lr}
ldr r0, .WILD_NEW
ldr r0, [r0]
ldr r1, .WILD_DATA
ldrh r0, [r0, #0x8]
strh r0, [r1]
pop {r0-r1, pc}

.align 2
.WILD_NEW:
.word 0x00810000
.WILD_DATA:
.word 0x003C8F00



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 by -DarK-; July 7th, 2009 at 12:21 PM.
Reply With Quote
  #40    
Old July 8th, 2009, 08:22 AM
PlatniumPiano's Avatar
PlatniumPiano
You are now breathing manually
 
Join Date: Dec 2008
Location: Yesterday
Gender: Male
Nature: Lax
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?
__________________

If you choose not to decide, you still have made a choice.
Reply With Quote
  #41    
Old July 8th, 2009, 08:40 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by -DarK- View Post
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:
.text
.align 2
.thumb
.thumb_func
.global test1

main:
push {r0-r1, lr}
ldr r0, .WILD_NEW
ldr r0, [r0]
ldr r1, .WILD_DATA
ldrh r0, [r0, #0x8]
strh r0, [r1]
pop {r0-r1, pc}

.align 2
.WILD_NEW:
.word 0x00810000
.WILD_DATA:
.word 0x003C8F00



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.


Quote:
Originally Posted by JohnPaulJones View Post
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.
__________________
Reply With Quote
  #42    
Old July 8th, 2009, 08:43 AM
PlatniumPiano's Avatar
PlatniumPiano
You are now breathing manually
 
Join Date: Dec 2008
Location: Yesterday
Gender: Male
Nature: Lax
Quote:
Originally Posted by HackMew View Post
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 :/
__________________

If you choose not to decide, you still have made a choice.
Reply With Quote
  #43    
Old July 8th, 2009, 08:47 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by JohnPaulJones View Post
Now what happens is that the command prompt opens the routine in Visual C++ again :/
Uhm... okay, please see my PM.
__________________
Reply With Quote
  #44    
Old July 8th, 2009, 09:59 AM
-DarK-
Hold Your Colour
 
Join Date: Jun 2007
Location: Belgium
Age: 21
Gender: Male
Nature: Brave
Send a message via Windows Live Messenger to -DarK-
Quote:
Originally Posted by HackMew View Post
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.
I must've partially misunderstood a part of the tutorial then. But to which offset in the RAM can/must I move the data to be able to change it then?

EDIT: I experimented some more, but it still doesn't work... Here's my ASM routine:

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global test1

main:
push {r0-r2, lr}
ldr r0, .WILD_DATA
ldr r0, [r0]
ldr r1, .RAM
ldr r1, [r0, #0x8]
ldr r2, =0x00210000
mov r2, #0x3
add r2, #0x1
mov r2, #0x6
add r2, #0x2
mov r2, #0x18
add r2, #0x3
mov r2, #0x00
str r2, [r1]
pop {r0-r2, pc}


.align 2
.WILD_DATA:
.word 0x003C8F00
.RAM:
.word 0x00200000



The offset used for the ASM routine is still 810008 (and the script is also still the same, but without the check-/setflag now, just "callasm 0x810009" and "end"). I really don't know how to get through this... Can somebody help me?

Last edited by -DarK-; July 8th, 2009 at 11:41 AM.
Reply With Quote
  #45    
Old July 21st, 2009, 04:51 AM
hi sir tomato my password is syvniti's Avatar
hi sir tomato my password is syvniti
gggggggggggggggggg
 
Join Date: Jan 2007
Location: My user name _ asciii_ +&h1!" lulz
Quote:
Originally Posted by -DarK- View Post
I must've partially misunderstood a part of the tutorial then. But to which offset in the RAM can/must I move the data to be able to change it then?

EDIT: I experimented some more, but it still doesn't work... Here's my ASM routine:

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global test1

main:
push {r0-r2, lr}
ldr r0, .WILD_DATA
ldr r0, [r0]
ldr r1, .RAM
ldr r1, [r0, #0x8]
ldr r2, =0x00210000
mov r2, #0x3
add r2, #0x1
mov r2, #0x6
add r2, #0x2
mov r2, #0x18
add r2, #0x3
mov r2, #0x00
str r2, [r1]
pop {r0-r2, pc}


.align 2
.WILD_DATA:
.word 0x003C8F00
.RAM:
.word 0x00200000



The offset used for the ASM routine is still 810008 (and the script is also still the same, but without the check-/setflag now, just "callasm 0x810009" and "end"). I really don't know how to get through this... Can somebody help me?
I'm not sure I understand you.. But... Why do you need this:
Code:
	ldr r2, =0x00210000
	mov r2, #0x3
	add r2, #0x1
	mov r2, #0x6
	add r2, #0x2
	mov r2, #0x18
	add r2, #0x3
It's seems you're just emptying the third(2) register in the end, with:
Code:
	mov r2, #0x00
If you'd exsplaing me what you want to do, I might be able to help you.
__________________
THE CAKE IS A LIE!!!!!!!!!!!!!!!!!!!!!!!
Reply With Quote
  #46    
Old July 21st, 2009, 05:19 AM
-DarK-
Hold Your Colour
 
Join Date: Jun 2007
Location: Belgium
Age: 21
Gender: Male
Nature: Brave
Send a message via Windows Live Messenger to -DarK-
Quote:
Originally Posted by hi sir tomato my password is syvniti View Post
I'm not sure I understand you.. But... Why do you need this:
Code:
	ldr r2, =0x00210000
	mov r2, #0x3
	add r2, #0x1
	mov r2, #0x6
	add r2, #0x2
	mov r2, #0x18
	add r2, #0x3
It's seems you're just emptying the third(2) register in the end, with:
Code:
	mov r2, #0x00
If you'd exsplaing me what you want to do, I might be able to help you.
Well, I tried various ways to temporarely change wild pokemon encounters on a certain map (route 1 in my case, just for testing purposes), but nothing seems to work. No matter what I try, I simply can't seem to get it right.
Reply With Quote
  #47    
Old July 21st, 2009, 05:25 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by -DarK- View Post
Well, I tried various ways to temporarely change wild pokemon encounters on a certain map (route 1 in my case, just for testing purposes), but nothing seems to work. No matter what I try, I simply can't seem to get it right.
Just like I told you, you can't change the wild data as it's stored in the ROM. Even if you save the wild data to the RAM, the game will still keep reading the data from the ROM. You would need to find the routine that loads the wild data from the ROM and hack it so it loads it from the RAM instead.
Also, please remember this is not an ASM help thread okay?
__________________
Reply With Quote
  #48    
Old July 21st, 2009, 05:51 AM
-DarK-
Hold Your Colour
 
Join Date: Jun 2007
Location: Belgium
Age: 21
Gender: Male
Nature: Brave
Send a message via Windows Live Messenger to -DarK-
Quote:
Originally Posted by HackMew View Post
You would need to find the routine that loads the wild data from the ROM and hack it so it loads it from the RAM instead.
Which I can't do with my current ASM knowledge. I don't even know how and where to start for that. Oh well, pretty pointless to continue then.

Last edited by -DarK-; July 21st, 2009 at 06:21 AM.
Reply With Quote
  #49    
Old July 21st, 2009, 06:24 AM
hi sir tomato my password is syvniti's Avatar
hi sir tomato my password is syvniti
gggggggggggggggggg
 
Join Date: Jan 2007
Location: My user name _ asciii_ +&h1!" lulz
Quote:
Originally Posted by -DarK- View Post
Which I can't do with my current ASM knowledge. I don't even know how and where to start for that. Oh well, pretty pointless to continue then.
Or maybe you should try to read this tutorial...
__________________
THE CAKE IS A LIE!!!!!!!!!!!!!!!!!!!!!!!
Reply With Quote
  #50    
Old July 21st, 2009, 06:36 AM
-DarK-
Hold Your Colour
 
Join Date: Jun 2007
Location: Belgium
Age: 21
Gender: Male
Nature: Brave
Send a message via Windows Live Messenger to -DarK-
Quote:
Originally Posted by hi sir tomato my password is syvniti View Post
Or maybe you should try to read this tutorial...
I've read it 10x over already, I don't see how it can help me with what I'm trying, as it's something diffirent.
Reply With Quote
Reply
Quick Reply

Sponsored Links


Advertise here
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 09:40 PM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.