Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Reload this Page De-Activating Level Scripts

Notices
For all updates, view the main page.

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Research & Development programs in this forum are subject to moderator approval before they are displayed.



Reply
 
Thread Tools
  #1    
Old December 22nd, 2007 (05:52 AM). Edited December 24th, 2007 by thethethethe.
thethethethe thethethethe is offline
Team Johto
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104

Actually here's something that I forgot to add to the actual tutorial.
Pointers in GBA
When repointing/searching for pointers you need to know that pointers appear differently in a hex editor.
A pointer like 0x08123456, would appear like this
56 34 12 08 in a hex editor.
You reverse the bytes.
Just incase you still don't understand, maybe this might make it easier to see.

08 80 02 0D
is the same as....
0D 02 80 08


Thanks to:
Teh Baro for the tutorial on WAH, which is how I learnt how to do this.
__________________
Gone.
Reply With Quote
  #2    
Old December 27th, 2007 (07:24 AM).
litium's Avatar
litium litium is offline
Team Kanto
 
Join Date: Dec 2007
Posts: 26
Cool :D Thanks! It will be useful in a near future
Reply With Quote
  #3    
Old January 7th, 2008 (02:10 PM).
Thrace's Avatar
Thrace Thrace is offline
@tion
Team Hoenn
Gold Tier
 
Join Date: Jun 2007
Age: 24
Gender: Male
Posts: 1,048
Well this is very useful. So I assume editing and creating level scripts are done the same as normal scripts? According to what you've decompiled that seems to be the case except for the boxset close thing. Is that just something from ScriptEd? Because I use PokeScript only.
__________________
Reply With Quote
  #4    
Old January 7th, 2008 (08:38 PM).
thethethethe thethethethe is offline
Team Johto
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
Quote originally posted by dshayabusa:
Well this is very useful. So I assume editing and creating level scripts are done the same as normal scripts? According to what you've decompiled that seems to be the case except for the boxset close thing. Is that just something from ScriptEd? Because I use PokeScript only.
Editing, Creating, it's pretty much the same process. There's enough info here to figure out on your own how to make your own level scripts. If you're willing to just keep trying and trying, you'd eventually figure it out. The only part that you might have trouble with, the part that involves....
(byte) (pointer) (byte) (pointer)
Because you can't "double up" on the same byte, and use it twice, but also depending on the script a different byte would be needed. The only I've tried so far are.
01 - I think setmaptile
02 - Normal script
04 - Weather related scripts.
If I'm incorrect on these, tell me, these are just the types of bytes that worked with my scripts.

#raw 0x68, doesn't have a command in a default database, it's something that you either know or you don't. Since it's only scriptable through "#raw 68", I gave a little insight into what it does to the right of it. It isn't in ScriptED or Pokescript(Unless you edit the database.), might be in XSE when it comes out, but I'm not sure what Hackmew is going to include with the program.
__________________
Gone.
Reply With Quote
  #5    
Old January 9th, 2008 (12:16 PM).
D-Trogh's Avatar
D-Trogh D-Trogh is offline
Dead
Team Unova
 
Join Date: Jul 2005
Location: Belgium
Age: 23
Gender: Male
Posts: 439
Send a message via Windows Live Messenger to D-Trogh
Quote originally posted by thethethethe:
might be in XSE when it comes out, but I'm not sure what Hackmew is going to include with the program.
Of course that'll be in XSE.. It allready is actually.. XD
It decompiles flawlessly.. :P
Our 'database' counts 112 commands.. And I may have an outdated one..
But.. B2T
__________________
[NTME | WPEDS | HTPE | SGPE | TGPE | PDEDS]
Reply With Quote
  #6    
Old January 9th, 2008 (02:01 PM).
Mastermind_X's Avatar
Mastermind_X Mastermind_X is offline
ASM-Hacker
Team Hoenn
 
Join Date: Feb 2007
Location: Germany
Gender:
Nature: Adamant
Posts: 92
Send a message via ICQ to Mastermind_X
I was wondering about the 1A 02 80 so I reversed it. Just to add that information:

1A 02 80 sets the jingle which is played if you get the item. Possible values are 0x013E and 0x0101.


greetz
MX
Reply With Quote
  #7    
Old January 9th, 2008 (04:37 PM).
thethethethe thethethethe is offline
Team Johto
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
Quote originally posted by Mastermind_X:
I was wondering about the 1A 02 80 so I reversed it. Just to add that information:

1A 02 80 sets the jingle which is played if you get the item. Possible values are 0x013E and 0x0101.


greetz
MX
That's what I thought when I saw the 0x13E, which when used like this, fanfare 0x13E, plays that the jingle that happens when you recieve the item. I didn't write it because, I didn't want to write anything that was possibly completely wrong.
I guess there's always more than one way to activate a command.
Thanks for clearing that up.
__________________
Gone.
Reply With Quote
  #8    
Old January 10th, 2008 (03:55 PM).
Mastermind_X's Avatar
Mastermind_X Mastermind_X is offline
ASM-Hacker
Team Hoenn
 
Join Date: Feb 2007
Location: Germany
Gender:
Nature: Adamant
Posts: 92
Send a message via ICQ to Mastermind_X
Uhm. I didn't know, that there are such big gaps in the knowledge about the commands.
Anyway, I decided to reverse them all. Up to now, I know all the meanings of commands 0x00 - 0x44. And I'll go on tomorrow.

greetz
MX
Reply With Quote
  #9    
Old January 13th, 2008 (10:26 PM).
Thrace's Avatar
Thrace Thrace is offline
@tion
Team Hoenn
Gold Tier
 
Join Date: Jun 2007
Age: 24
Gender: Male
Posts: 1,048
So if I wanted to make a sprite disappear after an event could I just compile the following code from PokeScript and change the pointer?
Code:
#org $Start
checkflag 0x82f
if B_false gosub $no
applymovement 0x04 $disappear
$disappear 1 ; #Binary 0x0a 0x60 0xfe
end

#org $no
release
end
EDIT: Whoops probably the wrong place for this
__________________
Reply With Quote
  #10    
Old January 26th, 2008 (04:30 PM).
/Circa's Avatar
/Circa /Circa is offline
a face in the clouds.
Team Unova
 
Join Date: Nov 2007
Location: Melbourne, Victoria
Gender: Male
Nature: Quiet
Posts: 881
I fixed my problem.

I just have a little question, with a level script, if I want an event to occur when I enter, could I compile the event, but not place it anywhere, and then in a level script have it point to that event?

For instance, if I want the player to move up to Nurse Joy in a Pokemon Center, could I make it in the level script:

checkflag 0x200
if b_true goto $done
applymovement 0xFF $goto

Like a normal script?
Or would it be some different commands?
__________________
dragging himself, forw
ard again, the pain has
still not diminished. E
ventually though, he e
merges inside a v
ery large room w

here everything about

the house

suddenly

changes.
Reply With Quote
  #11    
Old January 29th, 2008 (06:40 PM).
Saken's Avatar
Saken Saken is offline
Team Sinnoh
 
Join Date: Jan 2007
Location: Australia
Nature: Modest
Posts: 113
Quote originally posted by Crashink:
I fixed my problem.

I just have a little question, with a level script, if I want an event to occur when I enter, could I compile the event, but not place it anywhere, and then in a level script have it point to that event?

For instance, if I want the player to move up to Nurse Joy in a Pokemon Center, could I make it in the level script:

checkflag 0x200
if b_true goto $done
applymovement 0xFF $goto

Like a normal script?
Or would it be some different commands?
You have to know where the script you are compiling is, so you can repoint the level script to it.
And yes, all you need to do is make a normal script and it will work, no different commands needed.
All you have to make sure is that you flip your offset when repointing it. So lets say, 0x800000, that would be flipped around:
00 00 08
or some other one like 81A37B would be:
7B A3 81

That is all..
__________________
FC: 3867 0389 3587
Reply With Quote
  #12    
Old March 22nd, 2008 (07:56 AM).
Aero-LyNx's Avatar
Aero-LyNx Aero-LyNx is offline
Go team dynamite!
Team Hoenn
 
Join Date: Nov 2007
Location: Jakarta, Indonesia
Age: 22
Gender:
Nature: Impish
Posts: 83
Send a message via Windows Live Messenger to Aero-LyNx Send a message via Yahoo to Aero-LyNx
Quote:
Don't take without permission!
Can I save it to my computer??
Because I can't always turn on the internet?
Reply With Quote
  #13    
Old March 22nd, 2008 (09:01 PM).
greenozano's Avatar
greenozano greenozano is offline
Master of Pokemon
Team Sinnoh
 
Join Date: Dec 2006
Location: i live in Detroit,Mi,USA,interior plains
Age: 21
Gender:
Nature: Calm
Posts: 36
yeah it just means just dont post it again without permission.
__________________


Kevin's PokePet

crisscross the level 55 Electivire!


Cna yuo raed tihs? Olny 55% of plepoe can.

I cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg.
The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch
at Cmabrigde Uinervtisy, it dseno't mtaetr in waht oerdr the ltteres in a
wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the
rghit pclae. The rset can be a taotl mses and you can sitll raed it whotuit
a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter
by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot
slpeling was ipmorantt!
fi yuo cna raed tihs, palce it in yuor siantugre
I feogrt who ollanirigy had tihs but wohveer did. TAHNKS
Reply With Quote[/sig-reason]
Reply With Quote
  #14    
Old March 22nd, 2008 (09:06 PM).
thethethethe thethethethe is offline
Team Johto
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
Quote originally posted by greenozano:
yeah it just means just dont post it again without permission.
Exactly right! Of course you can save it to your computer, you just aren't allowed to post it.
__________________
Gone.
Reply With Quote
  #15    
Old March 22nd, 2008 (10:57 PM).
Aero-LyNx's Avatar
Aero-LyNx Aero-LyNx is offline
Go team dynamite!
Team Hoenn
 
Join Date: Nov 2007
Location: Jakarta, Indonesia
Age: 22
Gender:
Nature: Impish
Posts: 83
Send a message via Windows Live Messenger to Aero-LyNx Send a message via Yahoo to Aero-LyNx
Sorry, I'm a little bad at english. :D
Reply With Quote
  #16    
Old March 29th, 2008 (02:24 PM).
score_under's Avatar
score_under score_under is offline
I program the *other* ASM.
Team Kanto
Crystal Tier
 
Join Date: Aug 2005
Location: Hertfordshire, England
Age: 22
Nature: Rash
Posts: 525
I have constructive criticism!
I'm pretty sure that C7 does not set the colour, that's done inside the message (but it does seem to stop the message from showing, in my experimenting).
And 6B does not release the sprite. Instead, it makes the currently shown message disappear.
But that's just me being picky again.

Anyway, nice tutorial - It'll be great to just reverse this effect and make our own script in a normal map
__________________
Plz not to PM me, I don't come here often enough. Email if you need me
Reply With Quote
  #17    
Old March 30th, 2008 (12:51 AM).
thethethethe thethethethe is offline
Team Johto
 
Join Date: Jun 2007
Location: Melbourne, Australia
Gender: Male
Posts: 1,104
Quote originally posted by score_under:
I have constructive criticism!
I'm pretty sure that C7 does not set the colour, that's done inside the message (but it does seem to stop the message from showing, in my experimenting).
And 6B does not release the sprite. Instead, it makes the currently shown message disappear.
But that's just me being picky again.

Anyway, nice tutorial - It'll be great to just reverse this effect and make our own script in a normal map ;)
#raw 0xC7 does change the text colour. I use it myself a lot. Could you show me what you did? Maybe I might see the problem.
And I was told 0x6B was that, but I'm not sure. I now know it has a similiar effect to 0x68.

But please note this tutorial was posted 4 months ago. A lot of knowledge has been gained by people since then.
__________________
Gone.
Reply With Quote
  #18    
Old April 6th, 2008 (03:52 AM).
score_under's Avatar
score_under score_under is offline
I program the *other* ASM.
Team Kanto
Crystal Tier
 
Join Date: Aug 2005
Location: Hertfordshire, England
Age: 22
Nature: Rash
Posts: 525
Just tested it, and C7 works on Fire Red but not on Ruby.
__________________
Plz not to PM me, I don't come here often enough. Email if you need me
Reply With Quote
  #19    
Old July 30th, 2008 (09:06 AM).
alexk1995's Avatar
alexk1995 alexk1995 is offline
Team Johto
 
Join Date: Jul 2008
Location: in a bucket
Age: 19
Gender:
Nature: Modest
Posts: 33
good tutorial I vee read all your tutorials
__________________
+rep if you love unicorns
Reply With Quote
Reply
Quick Reply

Sponsored Links
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

Forum Jump


All times are UTC -8. The time now is 05:41 PM.