The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   Binary Hack Research & Development (https://www.pokecommunity.com/forumdisplay.php?f=195)
-   -   Development Pokémon Fire Red Hacked Engine (https://www.pokecommunity.com/showthread.php?t=194241)

mitchel1 March 14th, 2010 7:37 AM

-Delete- Problem has been solved

iTeruri March 15th, 2010 11:44 AM

Hey, JPAN.

I still love your hacked engine, however I was wondering the following...
I need a normal wild battle, just like special 0x97 you made. However, I need the encounter rate to be separate from the map I use the special on. I was wondering if you could make it so you can set a var to the encounter rate you want (with special 0x97) and if you set that var to 0x0 it'll just use the encounter rate of the map you're on.

Alright, that's kinda vague, so I'll give an example...
If you use special 0x97 while on route 1, you have a 7% chance of fighting a pokémon.
However, with my idea, you can set a var (let's say 0x8004) to whatever amount you want, but the normal grass keeps it's 7% encounter rate. So I'll set var 0x8004 to 0x80 so the encounter rate becomes 50%. (I'm useing a-map's encounter ratio here)

Anyway, thanks in advance and keep up the great work.

metapod23 March 23rd, 2010 9:28 AM

I've written a tutorial on how to add new OWs with JPAN's hacked engine here:

http://www.pokecommunity.com/showthread.php?t=211535

Thanks to JPAN for his help in figuring out how to do it correctly.

Any comments would be appreciated. :)

BlitŻ March 23rd, 2010 5:26 PM

Wow! I are amazed-zors just by the description. Just think of what you can do! All the Ow's you'll need, changing tile behaviors, <3. I do have a preliminary question before I start using this though, if I apply this to my hack, which is already pretty far on its way, can I still patch this to it and keep all my work, and still have all these great features?
Nvm, i are stupid to not look on the first page ;D

Full Metal March 23rd, 2010 6:07 PM

O.o?? u just now found this place?
jpan--did you use XSE/PKSV in removing all the scripts, or did you use some other sort of method that i don't know of..?
hm...i guess making a tool to do that (remove all scripts found in a game) wouldn't be hard...load the map header, load the maps, scan for scripts, remove scripts and continue. Granted the program would take ages to run, and a good while to code i think. Just kinda curious...(cuz the removal of scripts is the main thing i like about the patch, as i've not used much of the other features yet...)

NarutoActor March 24th, 2010 11:50 AM

Open up the offset of the script in a hex editor, and change the bytes to FF's.

Full Metal March 24th, 2010 1:44 PM

That sounds long and tedious...
--Thats why i asked him; you might be right, but there might be another way he did it...that is more effiicient

iTeruri March 24th, 2010 11:46 PM

JPAN also made a patch that removes all scripts from the game and nothing else. You'll have to look for it, but it's out there.

Full Metal March 25th, 2010 6:27 AM

yea, i know about that patch :P check my signature under "recommended patches"...
i was just curious about how he did it -.-??

ShinyBill March 29th, 2010 2:30 PM

I saw some post about saying that var 0x800C (Where the player is facing) is usable anymore. Is that true? Because I want to make a script and it needs the use of that variable.

NarutoActor March 29th, 2010 3:26 PM

I highly doubt that, but even if it is, just use a copy byte, and copy the facing into a different temporary var.

Darthatron March 29th, 2010 5:05 PM

Quote:

Originally Posted by ShinyBill (Post 5662402)
I saw some post about saying that var 0x800C (Where the player is facing) is usable anymore. Is that true? Because I want to make a script and it needs the use of that variable.

I found that too. Just use this:

Code:

setvar 0x800C 0x0000
copybyte 0x020370D4 0x02036E58

compare 0x800C 0x01                  'Is the player facing down?
if 0x01 call @down
compare 0x800C 0x02                  'Is the player facing up?
if 0x01 call @up
compare 0x800C 0x03                  'Is the player facing left?
if 0x01 call @left
compare 0x800C 0x04                  'Is the player facing right?
if 0x01 call @right


It works the same.

ShinyBill March 30th, 2010 12:22 AM

Thanks about that, now my script should work =D.

EDIT: Well my script didn't work.

I'm using PokéScript.

Code:

#org $start
lockall
special 0x8F
checkattack 0x1D
compare 0x800D 0x06
if 0x01 goto $dontknow
storepokemon2 0x00 0x800D
setanimation 0x00 0x800D
message $message1
$message1 1 = Do you want to use ROCK CLIMB\nto climb them?
boxset 5
compare 0x800D 0x00
if 0x01 goto $dontwant
doanimation 0x25
waitstate
setvar 0x800C 0x0
copybyte 0x020370D4 0x02036E58
compare 0x800C 0x1
if 0x01 goto $down
compare 0x800C 0x2
if 0x01 goto $up
compare 0x800C 0x3
if 0x01 goto $left
compare 0x800C 0x4
if 0x01 goto $right
end

#org $down
addvar 0x8005 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepdown
compare 0x8005 0x008D
if 0x00 goto $endingstepdown
end

#org $up
subvar 0x8005 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepup
compare 0x8005 0x008D
if 0x00 goto $endingstepup
end

#org $left
subvar 0x8004 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepleft
compare 0x8005 0x008D
if 0x00 goto $endingstepleft
end

#org $right
addvar 0x8004 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepright
compare 0x8005 0x008D
if 0x00 goto $endingstepright
end

#org $stepdown
applymovement $1down
goto $down

#org $stepup
applymovement $1up
goto $up

#org $stepleft
applymovement $1left
goto $left

#org $stepright
applymovement $1right
goto $right

#org $endingstepdown
applymovement $1down
$1down 1 ; #binary 0x10 0xFE
pausemove 0
releaseall
end

#org $endingstepup
applymovement $1up
$1up 1 ; #binary 0x11 0xFE
pausemove 0
releaseall
end

#org $endingstepleft
applymovement $1left
$1left 1 ; #binary 0x12 0xFE
pausemove 0
releaseall
end

#org $endingstepright
applymovement $1right
$1right 1 ; #binary 0x13 0xFE
pausemove 0
releaseall
end

#org $dontknow
message $message3
$message3 1 = A Pokémon could climb them.
boxset 6
releaseall
end

#org $dontwant
releaseall
end


These settings are temporary, like behavior byte, the attack and such.
The scripts stops right before he checks the player facing location.

Sierraffinity April 1st, 2010 3:35 PM

I have a suggestion for this engine.
Why not make a tile-attribute hack, much like the other one, but this time, with walk-into scripts?

Ninja Caterpie April 1st, 2010 3:42 PM

Huh.

Is it just me, or does this remove everything from Pallet Town, including the Fly Spot? I tried it on a clean ROM and it does the same thing...

Darthatron April 1st, 2010 3:48 PM

Quote:

Originally Posted by ShinyBill (Post 5663867)
Thanks about that, now my script should work =D.

EDIT: Well my script didn't work.

I'm using PokéScript.

Code:

#org $start
lockall
special 0x8F
checkattack 0x1D
compare 0x800D 0x06
if 0x01 goto $dontknow
storepokemon2 0x00 0x800D
setanimation 0x00 0x800D
message $message1
$message1 1 = Do you want to use ROCK CLIMB\nto climb them?
boxset 5
compare 0x800D 0x00
if 0x01 goto $dontwant
doanimation 0x25
waitstate
setvar 0x800C 0x0
copybyte 0x020370D4 0x02036E58
compare 0x800C 0x1
if 0x01 goto $down
compare 0x800C 0x2
if 0x01 goto $up
compare 0x800C 0x3
if 0x01 goto $left
compare 0x800C 0x4
if 0x01 goto $right
end

#org $down
addvar 0x8005 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepdown
compare 0x8005 0x008D
if 0x00 goto $endingstepdown
end

#org $up
subvar 0x8005 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepup
compare 0x8005 0x008D
if 0x00 goto $endingstepup
end

#org $left
subvar 0x8004 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepleft
compare 0x8005 0x008D
if 0x00 goto $endingstepleft
end

#org $right
addvar 0x8004 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepright
compare 0x8005 0x008D
if 0x00 goto $endingstepright
end

#org $stepdown
applymovement $1down
goto $down

#org $stepup
applymovement $1up
goto $up

#org $stepleft
applymovement $1left
goto $left

#org $stepright
applymovement $1right
goto $right

#org $endingstepdown
applymovement $1down
$1down 1 ; #binary 0x10 0xFE
pausemove 0
releaseall
end

#org $endingstepup
applymovement $1up
$1up 1 ; #binary 0x11 0xFE
pausemove 0
releaseall
end

#org $endingstepleft
applymovement $1left
$1left 1 ; #binary 0x12 0xFE
pausemove 0
releaseall
end

#org $endingstepright
applymovement $1right
$1right 1 ; #binary 0x13 0xFE
pausemove 0
releaseall
end

#org $dontknow
message $message3
$message3 1 = A Pokémon could climb them.
boxset 6
releaseall
end

#org $dontwant
releaseall
end


These settings are temporary, like behavior byte, the attack and such.
The scripts stops right before he checks the player facing location.

Try replacing this line...
Code:

copybyte 0x020370D4 0x02036E58


With these...
Code:

#raw 0x15
#raw 0xD4
#raw 0x70
#raw 0x03
#raw 0x02
#raw 0x58
#raw 0x6E
#raw 0x03
#raw 0x02



Full Metal April 1st, 2010 4:08 PM

Quote:

Originally Posted by ShinyBill (Post 5663867)
Thanks about that, now my script should work =D.

EDIT: Well my script didn't work.

I'm using PokéScript.

Code:

#org $start
lockall
special 0x8F
checkattack 0x1D
compare 0x800D 0x06
if 0x01 goto $dontknow
storepokemon2 0x00 0x800D
setanimation 0x00 0x800D
message $message1
$message1 1 = Do you want to use ROCK CLIMB\nto climb them?
boxset 5
compare 0x800D 0x00
if 0x01 goto $dontwant
doanimation 0x25
waitstate
setvar 0x800C 0x0
copybyte 0x020370D4 0x02036E58
compare 0x800C 0x1
if 0x01 goto $down
compare 0x800C 0x2
if 0x01 goto $up
compare 0x800C 0x3
if 0x01 goto $left
compare 0x800C 0x4
if 0x01 goto $right
end

#org $down
addvar 0x8005 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepdown
compare 0x8005 0x008D
if 0x00 goto $endingstepdown
end

#org $up
subvar 0x8005 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepup
compare 0x8005 0x008D
if 0x00 goto $endingstepup
end

#org $left
subvar 0x8004 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepleft
compare 0x8005 0x008D
if 0x00 goto $endingstepleft
end

#org $right
addvar 0x8004 0x1
special 0x7F
compare 0x8005 0x008D
if 0x01 goto $stepright
compare 0x8005 0x008D
if 0x00 goto $endingstepright
end

#org $stepdown
applymovement $1down
goto $down

#org $stepup
applymovement $1up
goto $up

#org $stepleft
applymovement $1left
goto $left

#org $stepright
applymovement $1right
goto $right

#org $endingstepdown
applymovement $1down
$1down 1 ; #binary 0x10 0xFE
pausemove 0
releaseall
end

#org $endingstepup
applymovement $1up
$1up 1 ; #binary 0x11 0xFE
pausemove 0
releaseall
end

#org $endingstepleft
applymovement $1left
$1left 1 ; #binary 0x12 0xFE
pausemove 0
releaseall
end

#org $endingstepright
applymovement $1right
$1right 1 ; #binary 0x13 0xFE
pausemove 0
releaseall
end

#org $dontknow
message $message3
$message3 1 = A Pokémon could climb them.
boxset 6
releaseall
end

#org $dontwant
releaseall
end


These settings are temporary, like behavior byte, the attack and such.
The scripts stops right before he checks the player facing location.

(sorry irish_witch)
DONT USE POKESCRIPT!
XSE, and PKSV are much better and updated, plus there is (that i know of) lots more support available.

PeregrineFig April 1st, 2010 4:49 PM

Quote:

Originally Posted by Ninja Caterpie (Post 5671823)
Huh.

Is it just me, or does this remove everything from Pallet Town, including the Fly Spot? I tried it on a clean ROM and it does the same thing...

I patched this over my hack, which was using only scripts in the 700000s. It wiped clean almost everything from what was formerly Pallet Town. But for me it left the flight spot intact, just deleted all my people, step-tiles, signposts, warps, and level scripts. Oddly, though, it only did this to map 3.0.

Ninja Caterpie April 1st, 2010 8:59 PM

Quote:

Originally Posted by PeregrineFig (Post 5672119)
I patched this over my hack, which was using only scripts in the 700000s. It wiped clean almost everything from what was formerly Pallet Town. But for me it left the flight spot intact, just deleted all my people, step-tiles, signposts, warps, and level scripts. Oddly, though, it only did this to map 3.0.

For me, it only did it to map 3.0 as well. It wiped everything except for warps and fly-spots from every other map, and absolutely EVERYTHING from 3.0, including the fly spot.

And this is on a clean ROM.

ShinyBill April 2nd, 2010 3:43 AM

Quote:

Originally Posted by Darthatron (Post 5671854)
Try replacing this line...
Code:

copybyte 0x020370D4 0x02036E58


With these...
Code:

#raw 0x15
#raw 0xD4
#raw 0x70
#raw 0x03
#raw 0x02
#raw 0x58
#raw 0x6E
#raw 0x03
#raw 0x02



I'm gonna try that right now.

Quote:

Originally Posted by Full Metal (Post 5671959)


(sorry irish_witch)
DONT USE POKESCRIPT!
XSE, and PKSV are much better and updated, plus there is (that i know of) lots more support available.

Don't think that way... sorry but since I use XSE database, thu commands and functions are the same. I just use XSE for decompiling scripts.

altariaking April 30th, 2010 8:44 AM

ok, i did everything you said for new pallettes, but all it did was change the hero's pallette, and only in vba.
how do i fix that?

Criisss April 30th, 2010 4:55 PM

I'm trying to use the special 0x58, but not how to use the variable 0x8006 to load the pointer...

Someone can give me an example of how to use all special so I can understand?

I managed to use the special 0x56 to swarm-roam pokemon, but I could not with this ...

Shiny Quagsire May 10th, 2010 4:02 PM

I found a rather annoying problem in the application.
When you open the character hack or overworld hack, you can't close the dialog window. It is annoying if you pushed it by accident.

ShyRayq May 17th, 2010 9:54 PM

Quote:

Originally Posted by shiny quagsire (Post 5790207)
I found a rather annoying problem in the application.
When you open the character hack or overworld hack, you can't close the dialog window. It is annoying if you pushed it by accident.

Yeh that happens to me as well
and i also didnt understand the overworld tutorial very well
so can you explain it to me?

Sonikku17 May 25th, 2010 3:25 PM

I have a quick question regarding special 0x18B, the "Show uncompressed picture" special. For the most part, I get how it works. However, I'm a bit confused about the first part of the table, the fossil pointer. It says it is a
"pointer to a section of data that has the needed information for the function to work," but I'm not sure what this means, or what the needed information would be. If anyone can help me understand this, it would be greatly appreciated!


All times are GMT -8. The time now is 9:02 AM.


Like our Facebook Page Follow us on Twitter © 2002 - 2018 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 - 2016 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.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.