• 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?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Pokémon Fire Red Hacked Engine

54
Posts
15
Years
  • Seen Jul 17, 2018
I have a problem when I open the tool to patch the rom and stuff the whole thing dosn't show help.
 

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
JPAN, I have a bug.
With the RTC and D/N installed, the palette expansion will not work. It does not load the new palette whenever the time is not Day.

EDIT: It doesn't even load the palette when the time is NOT Day! I believe it is a conflict with the entire D/N system.

EDIT 2: Another bug I found: When you use Teleport, it asks you if you want to go back to Celadon Dept. Store. If you say yes, you get warped to map 0,0, and you're stuck there.
 
Last edited:
47
Posts
15
Years
  • Seen Apr 25, 2011
All right...you asked for suggestions, so I've got some. Be warned, this is something specific. I don't know if it will have relevance to anyone else's projects, though I believe so.

First of all, some explaining is in order. I've been looking for ways to make the game more like the show. In that, I decided that the obvious place to start was the core of the game experience...the battle system. This means making some major changes to the battle engine itself. Since you've already built a framework, I thought I'd bounce some of what I would need to be done off you.

+ Ability to call up a command menu on the opponent's "turn"...by which I mean after their move is declared, but before the effect is applied.
+ Multiple battle menus called by variable.
+ Ability to define and call up multiple "versions" of a move (like how Secret Power changes by terrain, or Curse working differently for ghosts).

While there are a number of possible uses for these functions, it is my intent to use them to create a two-phase battle system, in which pokemon have not only an attacking turn, but also a defense turn. Of course, and so you don't think my request selfish, there are other ways it could be used as well. For example, multiple move versions could be used to make HM moves always the right type for the pokemon they're taught to (such as Fly becoming Dragon-Type for certain pokemon, or Flash changing to Fire for some users). The multiple battle menus and off-turn call systems might be used to make a battle in which a Trainer must be talked to during the fight.

Of course, it could be that some of this could be better accomplished through the creation of a utility. If you believe so, then I heartily thank you for your time, and apologize that my input has not been helpful.
 
126
Posts
14
Years
  • Seen Aug 5, 2013
To start off, I have to say that this is the coolest and most useful hacking thing I have stumbled upon so far! I'm definitely using this in my hack.

I can't seem to get all of the decrypter specials to work =/. I got special 0x14 to work, which is the change captured ball special, but I can't get special 0xF to work! It's the EV adder/subtracter. I want it to add 170 EV's to the HP stat, by the way.

#dynamic 0x800000

#org @start
lock
bufferpartypokemon 0x0 0x1
setvar 0x8004 0x1
setvar 0x8005 0x0
setvar 0x8006 0x0AA
special 0x6
special 0xF
release
end
 

iTeruri

iAm
277
Posts
17
Years
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.
 

BlitŻ1

guahh my dog is so cute
472
Posts
15
Years
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
 
Last edited:

Full Metal

C(++) Developer.
810
Posts
16
Years
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...)
 

Full Metal

C(++) Developer.
810
Posts
16
Years
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
 

Full Metal

C(++) Developer.
810
Posts
16
Years
yea, i know about that patch :P check my signature under "recommended patches"...
i was just curious about how he did it -.-??
 
62
Posts
14
Years
  • Seen Oct 24, 2013
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.
 

Darthatron

巨大なトロール。
1,152
Posts
18
Years
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:
[B]setvar 0x800C 0x0000
copybyte 0x020370D4 0x02036E58[/B]
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.
 
62
Posts
14
Years
  • Seen Oct 24, 2013
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.
 
Last edited:

Ninja Caterpie

AAAAAAAAAAAAA
5,979
Posts
16
Years
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...
 
Back
Top