• 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.

JPAN's Hacked Engine for Dummies Tutorial

794
Posts
10
Years
Sadly I don't know how it works, I tried for a few hours today, but no success...

The closest I got to it working was this:

Spoiler:
Thank you! I'm going to play with it a bit and see what I can do. I now understand what "load pointer" meant.(except that 34)
 

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
Thank you! I'm going to play with it a bit and see what I can do. I now understand what "load pointer" meant.(except that 34)

I don't get it either :P
I'm asking a few people right now and if they reply with something that works I'll update the Tutorial and let you know.

As for now anything not on the tutorial I haven't figured out how to do, so if you realize how to do the timer specials please pm me.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
Special 0x58: Change Wild Data Hack

There are 3 ways to make it works, first is by loadpointer command, Second is by Setting the value to 8008 and 8009 in halves, lower halve in 8008 and upper in 8009 and lastly, by writebytetooffset.

So I'll show you the sample script, let's say the Wild data is stored in 08ABCDEF,

Loadpointer
Spoiler:


Var 8008 and 8009
Spoiler:

Writebytetooffset
Spoiler:


That's all

EDIT:
Timer Specials will be updated too...
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
So what appears in the data, could you give an example of what you would store at your offset




Thanks! that'd be great

Sorry, I can't face my computer so I'm still clueless on what time special is, maybe tonight, anyway,

Here's the Structure
15 00 00 00 3C 96 3C 08

15- Determines if it is Grass, Water, Tree or Fishing Rod?
00 00 00- Fillers
3C 96 3C 08- Pointer to the wild table, this table contains the index number of the pokemon(reversed), let's say lv32 Eevee, Eevee's index number is 85, so you will Write 20 20 00 85
 
794
Posts
10
Years
Sorry, I can't face my computer so I'm still clueless on what time special is, maybe tonight, anyway,

Here's the Structure
15 00 00 00 3C 96 3C 08

15- Determines if it is Grass, Water, Tree or Fishing Rod?
00 00 00- Fillers
3C 96 3C 08- Pointer to the wild table, this table contains the index number of the pokemon(reversed), let's say lv32 Eevee, Eevee's index number is 85, so you will Write 20 20 00 85

Do I understand it correctly?
First, we have to create a script like this:
Spoiler:


Offset is 0x800000 and contains something like this: 15 00 00 00 XX XX XX 08 where XX is another pointer? Can this pointer point to whatever address I want? Or does it have to be 3C 96 3C?
 

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
Here's the Structure
15 00 00 00 3C 96 3C 08

I'm sorry, but I still don't understand this part.

3C 96 3C 08
Is this supposed to be another pointer, or the wild data??
In the example you gave, you used 08ABCDEF would 15 00 00 00 3C 96 3C 08 go in that part, or is that a pointer within a pointer??

Lastly this part "15 00 00 00 3C 96 3C 08" would be repeated over and over to fill all the needed slots?? eg: 15 times for grass wild battles to be changed.

And don't fret about getting the timer specials, if you can great if not its no big deal.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
I'm sorry, but I still don't understand this part.


Is this supposed to be another pointer, or the wild data??
In the example you gave, you used 08ABCDEF would 15 00 00 00 3C 96 3C 08 go in that part, or is that a pointer within a pointer??

Lastly this part "15 00 00 00 3C 96 3C 08" would be repeated over and over to fill all the needed slots?? eg: 15 times for grass wild battles to be changed.

And don't fret about getting the timer specials, if you can great if not its no big deal.

08 3c 96 3c is a pointer wher wild pokemon data table is located, example a level 25-32 Eevees, so it would be 19 20 85 00
 

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
08 3c 96 3c is a pointer wher wild pokemon data table is located, example a level 25-32 Eevees, so it would be 19 20 85 00

So to make sure, for special 0x58 to work, I'd do this:

The script
Spoiler:


On a hex editor at offset 0x820000 (the one I used in the script)
Spoiler:


Sorry if I'm making it harder than it needs to be, its just a confusing special, especially the way JPAN wrote it.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
So to make sure, for special 0x58 to work, I'd do this:

The script
Spoiler:


On a hex editor at offset 0x820000 (the one I used in the script)
Spoiler:


Sorry if I'm making it harder than it needs to be, its just a confusing special, especially the way JPAN wrote it.

Nope, 3c963c is a pointer to the wild data,
If you want to use 3c963c, go to that addressan fill the bytes with 19 20 85 00

If you don't want to do some hex editing, just open Advance Map 1.92 and create a wild data, then click expand, the pointer that you will see that will be the pointer you'll use on the special 0x28, by loadpointer, Var setting or wring byte specified offset
 

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
Nope, 3c963c is a pointer to the wild data,
If you want to use 3c963c, go to that addressan fill the bytes with 19 20 85 00

If you don't want to do some hex editing, just open Advance Map 1.92 and create a wild data, then click expand, the pointer that you will see that will be the pointer you'll use on the special 0x28, by loadpointer, Var setting or wring byte specified offset

Thank you so incredibly much!!! I will update the original post now :)
 
794
Posts
10
Years
Thank you so incredibly much!!! I will update the original post now :)

Have you actually tested it yourself? I've been trying to make it work for an hour or so and still can't figure it out. Could you post a full example of what offsets you use and what's exactly there?
 

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
Have you actually tested it yourself? I've been trying to make it work for an hour or so and still can't figure it out. Could you post a full example of what offsets you use and what's exactly there?

Yes I did, check under wild battle pokemon, special 0x58 is now there and if you have any questions on it, just VM me.
 
215
Posts
11
Years
  • Seen Jul 14, 2020
I have a question.

So with JPANs Hack Applier, He has made it so trainer battle scripts don't always have to start with the trainerbattle part in the script. Now when you change the 'Unknown' in Advanced Map to anything but 00, you can make the script start with anything and the trainer will run up to you. This is all great, however I'm not happy with it.

If you have the Trainerbox set to 00 instead of 01, the OW will never run up to you for a battle, you need to talk to him. If you set the Trainerbox to 01, The trainer will run up to you, but when you leave the map and come back, the trainer will run up to you again. (When the trainer runs up to you again it doesn't do the battle again but it's still not fun to have OWs running up to you telling you the battle was fun). Is there a way to make this work?

Here is the context in which I am trying to make this function work.

I want to make it so the OW has different level Pokemon depending on what stage in the game you are at. So if you have no badges, they will face you with level 10 Pokemon but if you have 1 badge they will face you with level 15 Pokemon. This is the script I have made for it.

Spoiler:


It works Perfectly except for the fact that when the Player leaves the map and comes back, the OW runs back at the player and says 'Talking 3'. If these is a way to make the OW not at the player ever again after the battle has taken place I would love to know.

The way I thought of fixing this way by putting a line of code in the script that changes the OWs 'Trainer' status to be 00 from 01. However I don't know how to do that.

If anyone knows how to fix this issue, or a code that can change the an OWs Trainer Status, I would be very greatful. Thanks!
 

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
So with JPANs Hack Applier, He has made it so trainer battle scripts don't always have to start with the trainerbattle part in the script. Now when you change the 'Unknown' in Advanced Map to anything but 00, you can make the script start with anything and the trainer will run up to you. This is all great, however I'm not happy with it.

I know that this is a thing that JPAN had (cuz I've used it), but where did you find it saying that it exsisted?? I checked his forum and the manual, but can't seem to find where he says that you can run scripts with the trainer box active.

It works Perfectly except for the fact that when the Player leaves the map and comes back, the OW runs back at the player and says 'Talking 3'. If these is a way to make the OW not at the player ever again after the battle has taken place I would love to know.

Don't think there is a fix for this, but I've got a somewhat messy way of having it work (bare with me I haven't tested it, but in theory it should work):
Spoiler:


If this doesn't work, or I didn't explain it good enough, PM/VM me and I'll try to help you out.
 
215
Posts
11
Years
  • Seen Jul 14, 2020
I know that this is a thing that JPAN had (cuz I've used it), but where did you find it saying that it exsisted?? I checked his forum and the manual, but can't seem to find where he says that you can run scripts with the trainer box active.



Don't think there is a fix for this, but I've got a somewhat messy way of having it work (bare with me I haven't tested it, but in theory it should work):
Spoiler:


If this doesn't work, or I didn't explain it good enough, PM/VM me and I'll try to help you out.


Hello

The thing about your suggestion is that pretty much every trainer in my game is going to be using this formula so I need to make it as short as possible without using many flags and taking up as little data as possible.

I guess another way to make this work would to be to ask this question. Is there a way to make an OW run up to you to battle without Using a level Script or ticking off the Trainer Box in Advanced Map?
 
Last edited:

Turtl3Skulll

Blue Turtl3
76
Posts
10
Years
Hello

The thing about your suggestion is that pretty much every trainer in my game is going to be using this formula so I need to make it as short as possible without using many flags and taking up as little data as possible.

I guess another way to make this work would to be to ask this question. Is there a way to make an OW run up to you to battle without Using a level Script or ticking off the Trainer Box in Advanced Map?

Oh ok! I see now, as far as I know, there is NO other solution to this, though you may be able to find some sort of fix if you ask KarateKid, he appears to know more of the technical issues with the engine, I'm just simplifying the guide.
 
215
Posts
11
Years
  • Seen Jul 14, 2020
Oh ok! I see now, as far as I know, there is NO other solution to this, though you may be able to find some sort of fix if you ask KarateKid, he appears to know more of the technical issues with the engine, I'm just simplifying the guide.

Thanks for the help. I've already messaged him, and I got nothing. I haven't worked on my game in a year and wasn't sure if we was still active on this website.
 
50
Posts
9
Years
  • Age 30
  • Seen Jan 18, 2017
Sorry I not have a problem if someone can help me, I do not work the script to give evs and do not know why I'm using the patch if mrdollsteak not have anything to do.
 
Back
Top