The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

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.


Advertise here

Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #176    
Old October 14th, 2011, 05:06 AM
ruup20's Avatar
ruup20
Gonna splash everybody!
 
Join Date: Jan 2011
Location: Undella Town
Gender: Male
Nature: Jolly

Advertise here
Do you mean like YAPE? That's a good one.
__________________

I really need a advanced scripter for my hack and a good storyline-guy,
Thank you.
Reply With Quote
  #177    
Old October 14th, 2011, 09:05 AM
romancandle
 
Join Date: Oct 2009
Gender: Male
Nature: Adamant
Quote:
Originally Posted by ruup20 View Post
Do you mean like YAPE? That's a good one.
YAPE lets me give pokemon any ability in the game, yes, but I'd like to edit the Abilities themselves. For example, I wouldn't mind making Lightning Rod act like it does Gen V or put in Motor Drive.
Reply With Quote
  #178    
Old October 14th, 2011, 09:31 AM
TheDarkShark
Metal Headed Hacker
 
Join Date: May 2010
Location: Germany
Gender: Male
Nature: Calm
If there was a tool for something like that, I'd probably leave GBA-Hacking - it'd be too easy (which it already is, IMO). If you want something alike, you'll have to do some serious hacking involving ASM.
If you don't want to do it that way, you don't want that feature bad enough to deserve it. That's my philosophy.

Anyway, try putting a break on read at a pokemon's Ability. That should lead you to most routines which use them. Then you can easily extend the header to enable new abilities. That won't do the job, though. AFAIK, each ability has it's own ASM-routines, so you'd need to wright new code.
I'm sure there's a thread around dealing with it. I think it's name was "modernizing the Firered-field engine" or something.
I hope I could help you - at least a bit.
__________________
There are two things every Rom-Hacker should learn:
1. Don't give away everything you know!

Reply With Quote
  #179    
Old October 14th, 2011, 01:13 PM
Jambo51's Avatar
Jambo51
Glory To Arstotzka
 
Join Date: Jun 2009
Gender: Male
Nature: Quiet
Quote:
Originally Posted by romancandle View Post
YAPE lets me give pokemon any ability in the game, yes, but I'd like to edit the Abilities themselves. For example, I wouldn't mind making Lightning Rod act like it does Gen V or put in Motor Drive.
I don't wanna s**t all over your hopes, but there is no such editor. And I highly doubt there ever will be.

Gamer2020's tool lets you change/add ability names and descriptions, but there is no way to create custom ability effects without using ASM.

I'm currently working on adding pretty much everything I can from gen 4/5 into gen 3, abilities included. Give me some time, and I'll see what I can do.
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
  #180    
Old October 14th, 2011, 01:20 PM
DavidJCobb
RESIDENT RAAAAAAAAAAAAGEMASTER
 
Join Date: Jul 2010
Gender: Male
Nature: Lonely
Hey, guys, just a heads-up. I haven't confirmed anything yet, but...

The RAM used by JPAN's Hacked Engine (1856 bytes starting at 0x0203F3C0) appears to overlap a small RAM space used by the Teachy TV's ASM (10 bytes starting at 0x0203F444). This sound minor, but it's a clear indicator that the RAM isn't unused, and it also means that there may be more overlaps with other seldom-used functionality.

I haven't heard of any particularly-bizarre or unexplained problems arising from JPAN's Hacked Engine, and it's worked excellently for me; this is just a minor thing to keep in mind. Nothing major should be affected by RAM conflicts with JPAN's code.
__________________
Reply With Quote
  #181    
Old October 14th, 2011, 03:57 PM
dudedude1
.
 
Join Date: Feb 2011
Gender: Male
I'm not sure if this has yet to have been accomplished but I've read Darthatron says its possible. I'm trying to find and way to increase the number of unique world map tiles to at least 2048 but I had read Darthatron said the max that was possible was 4096. Any information would be greatly appreciated!
Reply With Quote
  #182    
Old October 24th, 2011, 08:50 AM
SupahNinja's Avatar
SupahNinja
Scripting Ninja
 
Join Date: Mar 2011
Gender: Male
Quote:
Originally Posted by DavidJCobb View Post
Code:
LIST OF IDENTIFIED IN-GAME VARS (FIRERED)

4000        Temporary/disposable variable.
            Written to by special E7.
4001        Temporary/disposable variable.
4003        Temporary/disposable variable? Used in TRAINER TOWER.
4006        Temporary/disposable variable? Used in TANOBY KEY.
4008        Temporary/disposable variable? Used in TANOBY KEY.
400E        Temporary/disposable variable? Used in TRAINER TOWER.
400F        Temporary/disposable variable? Used in TRAINER TOWER.
4010        Temporary/disposable variable.
            Written to by (incomplete?) special 142.
4020        Pedometer. It counts down, and upon reaching 0x0000, REPEL expires.
4021        Pedometer. Max value 0x007F; it loops back to 0x0000 after.
4022        Pedometer. Max value 0x0004; it loops back to 0x0000 after.
4023        Pedometer. Max value 0x05DC; it just stays at that value after?
4025        Pedometer? Used for DAISY's script? Haven't seen it in action myself yet.
            Set to 0x01F4 (500) by GAME START SCRIPT.
4031        The starter that the player chose (0, 1, 2).
            Accessed directly by special 129.
4036        Multi-use, for SELPHY's Pokemon-fetching-and-showing game.
            Apparently set to 0x0000 when it's time for a new "round" to start.
            Apparently set to 0xFFFF if you're out of time.
4037        Box that a newly-received (givepokemon) Pokemon was sent to. Is directly manipulated by the game engine 
        itself.
            Read by special 165.
4038        Unknown.
            Read by specials A6 and A9.
            Written to by special A8.
            Used by special AA.
4039        Unknown.
            Written to by specials A6, A7, and A9.
403A        Used in elevator scripts (current floor?). Written to by special 0xD8.
403C        0xXXYY -- the current bank and map, respectively.
403E        Unknown.
            Accessed directly by special 1AC.
4042        Unknown.
            Read by special 167.
4043        Unknown.
            Written to by special 167.
4049        Unknown. Something to do with the sticker kid on FOUR ISLAND.
404A        Unknown. Something to do with the sticker kid on FOUR ISLAND.
404B        Unknown. Something to do with the sticker kid on FOUR ISLAND.
404E        Unknown.
            Written to by special 197.
4050        Unknown or multi-use.
            Set to 0x1 after the "Don't go out yet!" OAK Script event.
            Set to 0x2 during the Hall of Fame room level script, if the National Dex is NOT already unlocked.
            Set to 0x3 after OAK's chat with the player in PALLET TOWN after beating the E4.
4051        Set to 0x2 to disable the "Old Man Needs Coffee" Script event in VIRIDIAN CITY.
4052        Set to 0x1 to disable Script events for Gary in CERULEAN CITY.
4053        Unknown. Set to 0x0 after the player watches the S.S. ANNE depart.
4054        Unknown or multi-use.
            Set to 0x2 to disable Script events for a Rival encounter on ROUTE 22.
            Set to 0x3 after VIRIDIAN CITY Gym Leader GIOVANNI is defeated. Enables next Rival.
            Set to 0x4 to disable Script events for a second Rival encounter on ROUTE 22.
4055        Unknown.
            Is set to 0x0 when the player hasn't encounted PROF. OAK yet.
            Is set to 0x1 when OAK is escorting the player to his lab.
            Is set to 0x2 when the player needs to choose a starter.
            Is set to 0x3 when the player and their Rival have both chosen starters.
            Is set to 0x4 after the player's first battle with their Rival.
            Is set to 0x5 when the player needs to deliver OAK's PARCEL.
            Is set to 0x9 when the player enters PROF. OAK while it is set to 0x8.
            If >= 0x1 and no other events pending, then DAISY comments on a recent Rival battle.
            Set to 0x7 after OAK's chat with the player in PALLET TOWN after beating the E4.
4056        Unknown. If equal to 0x0, "sethealingplace" runs whenever the player enters their bedroom in 
        PALLET TOWN. Another level script then sets the variable to 0x1.
4057        Multi-use.
            Set to 0x1 to disable the OAK's PARCEL level script in VIRIDIAN CITY's PokeMart.
            Set to some other value to enable VIRIDIAN CITY's normal PokeMart script.
4058        Unknown. Checked by DAISY's script in PALLET TOWN. Apparently part of the sequence of events 
        that makes her give away the TOWN MAP.
            Set to 0x2 when DAISY gives away the TOWN MAP.
4059        If != 0x0, then the player beat the Ghost MAROWAK at POKeMON TOWER.
405A        Set to some value to disable the Old Man that blocks the VIRIDIAN CITY Gym.
405B        Multi-use.
            Set to 0x1 to disable Script events for a Rival encounter on the S.S. ANNE.
            Is set to 0x1 when entering LAVENDER TOWN.
405C        If != 0x0, then the player beat Gary at SILPH CO.
405D        If != 0x0, then the player beat Gary at POKeMON TOWER.
405E        Set to 0x0 to disable Script events on the tiles bordering the exits to the CYCLING ROAD 
        gatehouse. Set to 0x1 to disable Script events on the tiles bordering the entrances.
405F        Controls various badge-checking Script events on Route 23.
4060        If >= 0x1, then TEAM ROCKET has left SILPH CO.
4061        Set to 0x1 to disable the Pay-To-Enter Script events in PEWTER CITY's Museum.
4062        Set to 0x1 to disable the thirsty-guard roadblock Script events in the SAFFRON gatehouses.
4064        Unknown or multi-use.
            Reset to 0x0000 when entering Route 23.
            Used as part of the Boulder puzzle scripts in VICTORY ROAD.
4065        Unknown or multi-use.
            Reset to 0x0000 when entering Route 23.
            Used as part of the Boulder puzzle scripts in VICTORY ROAD.
4066        Unknown or multi-use.
            Reset to 0x0000 when entering Route 23.
            Used as part of the Boulder puzzle scripts in VICTORY ROAD.
4067        Unknown. Reset to 0x0000 when entering Route 23.
4068        Set to 0x2 after an Elite Four chamber level script forces the player to walk up. Rechecked 
        later after the E4 battle in that chamber has ended. Reset to 0x0000 in the Hall of Fame room.
4069        Set to 0x1, 0x2, or 0x3 depending on which fossil is being revived at the CINNABAR ISLAND 
        lab.
406A        Fossil revival process. 0x1 means that a revival is in progress. 0x2 means that it is 
        complete.
406B        Set to 0x1 to disable Script events for the Nugget Bridge challenge.
406C        Unknown or multi-use.
            Set to 0x1 to disable the man that traps you in PEWTER until you beat Brock.
            Set to 0x2 to disable Script events for the man that gives Running Shoes at PEWTER.
406E        Safari Zone status.
            Set to 0x0 when not in the SAFARI ZONE.
            Set to 0x1 ...?
            Set to 0x2 after paying to enter the SAFARI ZONE.
406F        I haven't the faintest idea. Used in Pokemon Center 2F level scripts.
4070        Set to 0x1 when talking to some chick in PALLET TOWN that mimics a sign or whatever.
4071        See 408A.
4073        Affects dialogue in the SAFFRON CITY TRAINER FAN CLUB building.
            Is set to 0x1 when the occupants -- your new fans -- swarm you.
4074        Unknown. Checked if != 0x0 in a level script for the woman-who-likes-battles's house (map 
        31.0).
4075        Used in a ONE ISLAND level script. If it equals 0x2, BILL will welcome you to ONE ISLAND, 
        bring you into the PokeCenter to see CELIO, and then the variable will be set to 0x3.
4076        Multi-use, for the RUBY/SAPPHIRE subplot.
            Set to 0x4 if hasn't beaten the ROCKET GRUNTs they eavesdrop on at MT. EMBER?
            Set to 0x5 when the RUBY has been delivered to CELIO on ONE ISLAND.
            Set to 0x6 when the subplot is complete.
            If >= 0x5, VERMILION dockworker acknowledges your RAINBOW PASS. (Travel to SEVII)
            If >= 0x1, VERMILION dockworker acknowledges your TRI-PASS. (Travel to SEVII 1-3)
4078        Affects the commentary and items offered by the shopkeeper on One Island. The variable's 
        value is managed by a TWO ISLAND level script that checks various flags.
            0x4078 == 0x2 means that Lostelle has been rescued.
            0x4078 == 0x3 means that you've beaten all Gyms, but not the Elite Four. (?)
            0x4078 == 0x4 means that the shopkeeper offers items "from distant lands". (Beat E4)
4079        Multi-use, for the LOSTELLE event.
            Set to 0x1 after dealing with a Biker at the TWO ISLAND GAME CORNER.
            Set to 0x2 after rescuing LOSTELLE in BERRY FOREST, before warping to her home.
            Is set to 0x3 when LOSTELLE is reunited with her father.
            Is set to 0x4 when the subplot is complete.
407B        Unknown or multi-use.
            Set to 0x2 to enable the first Script events for the Bikers in THREE ISLAND?
            Set to 0x3 to disable the first Script events for the Bikers in THREE ISLAND.
            Set to 0x4 to disable the second Script events for the Bikers. (They leave.)
407C        Unknown or multi-use.
            Set to 0x1 to ...?
            Set to 0x2 to disable the Pokemon Center 2F level script (TEALA's tutorial).
407D        Set to 0x1 to disable the ROCKET GRUNT Script events behind the broken home in CERULEAN.
407E        Unknown or multi-use.
            Is set to 0x1 after the player helps the S.S. ANNE's captain.
            Is set to 0x2 when the player is stepping out of a boat and into VERMILION CITY or the S.S. ANNE harbor.
            Is set to 0x3 when the S.S. ANNE has departed VERMILION CITY.
407F        Set to 0x2 after a Script event on MT. EMBER, in which the player hears ROCKET GRUNTs talk.
4080        Set to 0x1 after a Script event in ICEFALL CAVE, in which the player assists LORELEI.
4081        Set to 0x1 to disable a Script event blocking access to the Pokemon in the FIGHTING DOJO.
4082        Multi-use.
            Set to 0x0 to enable a Script event at the TRAINER TOWER counter. (A level script 
            on the tower's exterior (Map 3.62) does this.)
            Set to 0x1 to disable a Script event at the TRAINER TOWER counter.
4083        Set to 0x1 upon entering the LOST CAVE room with the lost woman.
4084        Multi-use, for the SELPHY event.
            Set to 0x1 upon rescuing SELPHY from LOST CAVE, before warping to RESORT GORGEOUS.
            Set to 0x2 upon being promptly dismissed from her front door (level script).
4085        Unknown. Used in two level scripts for INDIGO PLATEAU (3.9). Does something if it equals 1.
4086        Set to 0x1 to disable a FOUR ISLAND level script (Gary encounter without battle).
4088        Set to 0x1 to disable Script events in ROCKET WAREHOUSE.
4089        Set to 0x1 to disable a SIX ISLAND (37.0) level script (Gary encounter without battle).
408A        Multi-use, for an event where you meet BILL at CINNABAR ISLAND's PokeCenter, and he leaves on 
        a boat.
            Set to 0x1 upon meeting BILL in the PokeCenter. The same script makes you both leave.
            Is set to 0x1 when used in level scripts that show BILL's departure from the island.
408B        Set to 0x1 to disable the Script events for the fossil guy in MT. MOON.
...
5EF4 - 7FFF    CONFIRMED UNSAFE! In PC box space!
Does this mean that vars under 4000 (and vars in betwen 408B and 5EF4) are safe to use?
__________________
SupahNinja

My feelings on
ROM hacking:

-I like scripting a lot.
-Mapping is almost as fun.
-Hex editing isn't bad at all.
-I do NOT enjoy spriting.
-I've been meaning to start learning ASM for a while, but I don't ever seem to have enough time.

Favorites:

-My favorite color is green.
-My favorite type is fire.
-My favorite Pokémon are:
Growlithe, Charizard, Mew,
Giratina, Haxorus, and Aggron.
SupahNinja
Reply With Quote
  #183    
Old October 24th, 2011, 12:40 PM
DavidJCobb
RESIDENT RAAAAAAAAAAAAGEMASTER
 
Join Date: Jul 2010
Gender: Male
Nature: Lonely
Quote:
Originally Posted by SupahNinja View Post
Does this mean that vars under 4000 are safe to use?
Variables under 4000 can't be used because:
  • They overlap RAM used for flags
  • Most script commands don't recognize them as variables
    • Most commands basically do this: "If argument > 0x3FFF, then find the value of variable number argument and use that value. Else, use argument itself as a value."
Quote:
Originally Posted by SupahNinja View Post
Does this mean that vars in betwen 408B and 5EF4 are safe to use?
Some of them have been confirmed unsafe since I last updated that document. The rest are a mystery and could be safe or unsafe.
  • Variables 0x4100 to 0x417F (inclusive) overlap the RAM used for a special data type called "hidden variables" -- a set of 64 dwords used by certain script commands whose purpose is unknown.
  • Variables 0x5084 to 0x55CC overlap RAM used for seemingly-arbitrary data. I haven't noticed any ill effects from overwriting this data, but it changes frequently, so the variables themselves are unreliable.
  • Variables 0x56F4 - 0x5EF3 appear to also overlap RAM used for the PC. This doesn't match with JPAN's findings (the 0x5EF4 figure is from him) so either one of us is wrong, or this variable range overlaps non-essential parts of the PC data.
My suspicion -- an unconfirmed one -- is that the only safe variables are those from 0x4000 to 0x40FF (inclusive), excluding variables in that range that are set or read by the core game engine (as opposed to those used by scripts that can be safely removed).

Basically, you're better off keeping your variables to a minimum. If you find yourself running short on variables, see if flags (or perhaps key items) could be used instead of variables to track the player's progression through different scripts.
__________________
Reply With Quote
  #184    
Old October 24th, 2011, 03:24 PM
SupahNinja's Avatar
SupahNinja
Scripting Ninja
 
Join Date: Mar 2011
Gender: Male
Quote:
Originally Posted by DavidJCobb View Post
Variables under 4000 can't be used because:
  • They overlap RAM used for flags
  • Most script commands don't recognize them as variables
    • Most commands basically do this: "If argument > 0x3FFF, then find the value of variable number argument and use that value. Else, use argument itself as a value."
Some of them have been confirmed unsafe since I last updated that document. The rest are a mystery and could be safe or unsafe.
  • Variables 0x4100 to 0x417F (inclusive) overlap the RAM used for a special data type called "hidden variables" -- a set of 64 dwords used by certain script commands whose purpose is unknown.
  • Variables 0x5084 to 0x55CC overlap RAM used for seemingly-arbitrary data. I haven't noticed any ill effects from overwriting this data, but it changes frequently, so the variables themselves are unreliable.
  • Variables 0x56F4 - 0x5EF3 appear to also overlap RAM used for the PC. This doesn't match with JPAN's findings (the 0x5EF4 figure is from him) so either one of us is wrong, or this variable range overlaps non-essential parts of the PC data.
My suspicion -- an unconfirmed one -- is that the only safe variables are those from 0x4000 to 0x40FF (inclusive), excluding variables in that range that are set or read by the core game engine (as opposed to those used by scripts that can be safely removed).

Basically, you're better off keeping your variables to a minimum. If you find yourself running short on variables, see if flags (or perhaps key items) could be used instead of variables to track the player's progression through different scripts.
Okay, thank you.
So I'll use flags when possible, and when I need variables (let's say, for the scripts that activate when stepped on by the player, and require a certain variable to be set) then I'll use 0x4000 to 0x40FF.
If any of the variables cause an error, I'll report back here so you can update the list.
__________________
SupahNinja

My feelings on
ROM hacking:

-I like scripting a lot.
-Mapping is almost as fun.
-Hex editing isn't bad at all.
-I do NOT enjoy spriting.
-I've been meaning to start learning ASM for a while, but I don't ever seem to have enough time.

Favorites:

-My favorite color is green.
-My favorite type is fire.
-My favorite Pokémon are:
Growlithe, Charizard, Mew,
Giratina, Haxorus, and Aggron.
SupahNinja
Reply With Quote
  #185    
Old November 7th, 2011, 06:17 AM
EdensElite's Avatar
EdensElite
No0b, but getting there.
 
Join Date: Jun 2011
Location: UK
Gender: Male
Nature: Bold
Hey Guys. I've been trying to find out how to edit the PC Boxes for a while. So far all I've find out is that it is stored in the VRAM and what I've include in the screenshot below. If anyone experienced with Hex etc. can help me out, I would really appreciate it

Findings


I managed to find the header. I havn't tried editing it yet. As I'm more interested interested in the actual box. I noticed that most boxes only use one or two different tiles repeated over and over, so maybe there isn't actually a whole image to edit unlike Gen IV games. In which case it's possible that those tiles are in that picture and I missed them.
__________________

ROM Hacking was getting frustrating for me. I've now stopped productions and writing the game from scratch in HTML 5.

That means it will be playable in the browser, and across multiple devices such as the iPod touch.
Reply With Quote
  #186    
Old November 8th, 2011, 04:04 PM
Awkward Squirtle
,@,e .ºoO
 
Join Date: Jul 2011
Gender: Male
Uh... they're stored in the ROM, and copied to the VRAM when the game needs to draw them to the screen. I suspect they're uncompressed in the ROM, so you could just use a tile editor to change them (if you can find them).
Reply With Quote
  #187    
Old November 8th, 2011, 05:15 PM
Team Fail's Avatar
Team Fail
The fine line between in|sanity
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
I've been curious as to this for a while, but has anyone managed to create a Mode 7 hack for these games? I think it can be done- it was done with Super Mario World and it's 2D graphics engine.
__________________

Pairs:
Kevin, Echidna
Follow me on Twitter! @TeamFail
Alt 1, リザードン
Miiverse
Pokémon Hackers Online
Alt 2: Jack Cayman



[04:20.39] <@GoGo> I WILL INSERT WITH PLEASURE
[04:20.45] <@GoGo> shut it Bela

[05:41.55] <Team_Fail> Blue Spider is interesting, but #MEHMasterRace
[05:42.20] <diegoisawesome> Team_Fail: Sounds like a bunch of unmotivated people that still want to try to take over the world
Reply With Quote
  #188    
Old November 8th, 2011, 11:15 PM
IIMarckus's Avatar
IIMarckus
J946@5488AA97464
 
Join Date: Oct 2007
Gender:
Quote:
Originally Posted by Team Fail View Post
I've been curious as to this for a while, but has anyone managed to create a Mode 7 hack for these games? I think it can be done- it was done with Super Mario World and it's 2D graphics engine.
Mode 7 can be done on the GBA. It’s kind of limited because you can only manipulate two planes this way (essentially, a floor and a ceiling)—walls and such have to be sprites. Since they can’t be scaled in the same way, you have to create separate sprites for various distances, and switch between them. It works better for open areas with no walls.
__________________
iimarck.us / hax.iimarck.us

If you want me, please contact me by email. [email protected]

If you want to hack Pokémon RBY or GSC, read, read, and read some more. This has tons of valuable information.

Pokémon Red disassembly project

Rules that should be rethought: 25charlimit, bumping.
Bad posts are bad posts, regardless of how many words are in them or how old the thread is.
Good posts are good posts, regardless of how old the thread is—and brevity is underrated.
Reply With Quote
  #189    
Old November 21st, 2011, 09:25 AM
M.L's Avatar
M.L
Busy atm
 
Join Date: Oct 2010
Gender: Male
Small question i have seen a animated titlescreen before but im curious is it possible to create an animated Battle background like leaves in blowing or rock in the cave falling or sea moving or somthing like that?
__________________
Fluffy
Reply With Quote
  #190    
Old November 21st, 2011, 09:34 AM
TheDarkShark
Metal Headed Hacker
 
Join Date: May 2010
Location: Germany
Gender: Male
Nature: Calm
Well, it could be doable, but you'd need to find out how the background image is drawn and update it every second or so, which might be kind of hard considering that you'd need to hack the battle engine itself, eventually, which of course takes a lot of ASM skillz.
__________________
There are two things every Rom-Hacker should learn:
1. Don't give away everything you know!

Reply With Quote
  #191    
Old November 21st, 2011, 09:35 AM
M.L's Avatar
M.L
Busy atm
 
Join Date: Oct 2010
Gender: Male
Ahh thanx lol i was just curious xD
__________________
Fluffy
Reply With Quote
  #192    
Old November 29th, 2011, 09:06 PM
Team Fail's Avatar
Team Fail
The fine line between in|sanity
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
Quote:
Originally Posted by IIMarckus View Post
Mode 7 can be done on the GBA. It’s kind of limited because you can only manipulate two planes this way (essentially, a floor and a ceiling)—walls and such have to be sprites. Since they can’t be scaled in the same way, you have to create separate sprites for various distances, and switch between them. It works better for open areas with no walls.
Interesting. Perhaps a minigame of sorts could benefit from this. But to have many several sprites for different distances, couldn't a calculation be used, and depending on how far away from an object yor are, it would scale/resize the image? It'd take up less space. I'd have to think of a new way for this kind of engine to work, but the idea might not be too farfetched as I think it is (Regarding movements and boundaries). But if I were to write that- I'd have to learn ASM first.
__________________

Pairs:
Kevin, Echidna
Follow me on Twitter! @TeamFail
Alt 1, リザードン
Miiverse
Pokémon Hackers Online
Alt 2: Jack Cayman



[04:20.39] <@GoGo> I WILL INSERT WITH PLEASURE
[04:20.45] <@GoGo> shut it Bela

[05:41.55] <Team_Fail> Blue Spider is interesting, but #MEHMasterRace
[05:42.20] <diegoisawesome> Team_Fail: Sounds like a bunch of unmotivated people that still want to try to take over the world
Reply With Quote
  #193    
Old November 30th, 2011, 06:53 PM
IIMarckus's Avatar
IIMarckus
J946@5488AA97464
 
Join Date: Oct 2007
Gender:
Quote:
Originally Posted by Team Fail View Post
Interesting. Perhaps a minigame of sorts could benefit from this. But to have many several sprites for different distances, couldn't a calculation be used, and depending on how far away from an object yor are, it would scale/resize the image? It'd take up less space.
I’m not the one to ask about efficiency here. The GBA is not really my forte, and I’ve never worked with Mode 7, so I really can’t provide any details. Try reading up on it.
Quote:
Originally Posted by Team Fail View Post
But if I were to write that- I'd have to learn ASM first.
Do it! ASM isn’t nearly as hard as people make it out to be, and it’s a lot of fun.
__________________
iimarck.us / hax.iimarck.us

If you want me, please contact me by email. [email protected]

If you want to hack Pokémon RBY or GSC, read, read, and read some more. This has tons of valuable information.

Pokémon Red disassembly project

Rules that should be rethought: 25charlimit, bumping.
Bad posts are bad posts, regardless of how many words are in them or how old the thread is.
Good posts are good posts, regardless of how old the thread is—and brevity is underrated.
Reply With Quote
  #194    
Old December 15th, 2011, 02:38 PM
redriders180's Avatar
redriders180
Mastermind of Pokemon Glazed
 
Join Date: Jun 2010
Location: Path of Victory, Tunod
Gender: Male
Nature: Quirky
Send a message via AIM to redriders180 Send a message via Skype™ to redriders180
Quote:
Originally Posted by IIMarckus View Post
Do it! ASM isn’t nearly as hard as people make it out to be, and it’s a lot of fun.
Maybe it's me, but ASM is a pain. I've found plenty of tutorials saying the basic stuff, but nothing that says what tools you need, or anything of that nature. ANYWAYS...

How easy or hard would it be to make it so pokemon that hatch from an egg are level 1 instead of level 5 in firered? I think it was unsafe to have level 1 Pokemon in Gen I and II, but in Gen III they're fine for the most part. Anyway, I just think it makes more sense if they hatch at Level 1.
Reply With Quote
  #195    
Old January 1st, 2012, 10:40 PM
JPAN
pokemon rom researcher
 
Join Date: Dec 2008
Unfortunately, time to hack is growing shorter by the semester, and research subjects seem to pile up when you have little time. I was hoping to release some examples with this, but...

The subject is Battle AI.
Battles are pretty much a mystery when compared to other fields of pokemon study. We can pretty much change the Overworld to do whatever we want, but to get the code to run anything else (other than that for which it was intended) in the battle screen is hard. Even strings, that outside we can display with a simple call, need to be encoded into the battle string displayer and accessed by an index, requiring repointing tables, changing limiter bytes and much more.

When we look at a battle, we expect the opposing team to do something back. They supposedly have some strategy, but digging into the trainer and wild pokemon code revealed something suprising: Trainers and wild pokemon seem to share the same code.
Functions used by the wild pokemon have trainer only functions, disabled because of the battle flag.
And I have yet to find where they select what they do. The trainer "AI byte" only function seem to be setting the IV's for each party member (0xff being 31 IV's for everything).

So, what I found was the attack selection byte. In the case the pokemon will attack, this is the byte that is used to see what he selected.
At 0x0801488E is the last location the selected attack is stored. It first goes through a series of temporary addresses that change a lot, so pinpointing the origin is hard. Replacing that location with a hook and creating a routine to handle it can create diverse AI.

At 0x02000090 is the location of your attack. 0x02000091 keeps the enemy attack, 92 and 93 the same for partner pokemon. That attack is stored as the Attack slot number. The attack it corresponds can be found by going into the battle data for each pokemon (0x02023be4 for yours, 0x02023be4 + 0x58 for opponent) + 0xc + (attackSlot*2).

So, what can we use this for? We can hook this routine to simulate lots of different scenarios.
For instance, using it to create smarter pokemon (like Elite Four members that know the type chart and use the most effective attacks, and learn information about your team during battle). Or change attacks on your own pokemon(like simulating the battle palace on Fire Red). Or create double battles with a secondary trainer (AI for the second trainer).

The main reason I don't have any simple examples for this one is because other than the really dumb "random attack" model, there are no simple examples. Programming an AI is time consuming (specially in assembly), but for anyone out there that wants to try, I give you a way to start.

As you may notice, the function refered is not the AI function. It's merely the last in a series of memory variables being copied, that end at that location when the attack is selected. This findings do not allow you to change Item usage for trainers, and if the game decides to use an item, or change the pokemon on the field, your attack changes at this level will have no effect. But for wild pokemon, it works perfectly.
__________________
Here are the links for my work


Currently working on:
Battle Script Documentation
Another large project
Reply With Quote
  #196    
Old January 19th, 2012, 02:28 PM
itari's Avatar
itari
Community Supporter
 
Join Date: Mar 2010
Location: 渦潮隠れの里
Age: 17
Gender: Female
Nature: Relaxed
For anyone that wants to change the badge required for surf, the offset of the flag is 0806D59C. Also, I pretty sure that 0806D5D0 is waterfall, but I haven't tested it. (FireRed)
__________________
Touhou Puppet Play: Sapphire

SubscriptAdvanced SongType Effectiveness EditorTilemap CreatorPython IPS Patcher
Reply With Quote
  #197    
Old January 19th, 2012, 08:11 PM
droomph's Avatar
droomph
mmm gurl that 90s
Community Supporter
 
Join Date: Sep 2011
Location: bar'jách
Age: 17
Gender: Male
Nature: Impish
I've noticed that JPAN has a thread on Specials in Fire Red, but I can't find a thread (or post) that has one that is just as comprehensive as his on any other game. So I dug out some of the more common Specials, and a little bit on flags, variables, and stuff.

Spoiler:
Specials:
Note: Special2-recommended specials will be noted with a 2 before description.
Note2: Returning 0x933F means that it is meant for Special, not Special2.
Code:
0x0 - Healing - who could forget that?
	0x1 - 2 Returns 0, but has something to do with var 0x7EA1…no idea.
0x2 - Blacks out the screen.
0x3 - Blacks out the screen, returns you to the last warp you used on current map. If you didn't use a warp on the map you were on, then returns you to center of the map you were on.
	0x4-0x7 - Returns 0x933F (37695), but does nothing visible.

0x22 - Trading menu.

	0x27 - Returns 0x933F (37695), but does nothing visible.
0x28 - Saves party Pokémon into RAM.
0x29 - Reverses changes from 0x28.
0x2A - Chooses 3 Pokémon, relocates those three to 0x203CEF8.

0x2C - Returns to 0x8004 - the status of the Loamy Soil of 0x800F, 0x8005 - the "beauty" of the Loamy Soil plant, if there is one. When it is 0xFF, all scripts are programmed to return a msgbox "!", possibly displaying a state change. It will return 0x0 through 0x5 depending on the state of the Loamy Soil, from 0x0 being not planted at all, to 0x5 being fully grown.
	0x2D - Something to do with the Wailmer Pail.
0x2E - Stores into memory the type of Berry you chose to plant and how many Berries there are ("beauty"?), and returns into \v\h03 ([buffer2]) how many Berries there are, if any, and \v\h02 ([buffer1]) what type of Berry plant it is.
0x2F - Allows you to choose a Berry from the Berry pocket of your Bag. Affects 0x800E.
	0x30 - Something to do with planting berries.
0x31 - Probably returns into 0x8004 how much room that you have left in your Berry pocket. If none, then 0x0 is returned.
	0x32 - Something to do with picking Berries.
0x33 - Does something about the "beauty" of the plant.
0x34 - 2 Appears to return 0x1 into specified variable if Player has a Berry available.

0x3B - Starts playing the “Trainer Spotted!” music depending on the trainer class indicated by 0x8015.
0x3C - 2 Checks if Rematch available. Returns 0x1 as yes.

0x3E - Makes a trainer battle happen. Turns Player to left after done.
0x3F - Displays a second text box displaying all the possible options for the POKéMON Storage System. Ends and returns to script if you select "SEE YA!".

0x61 - Plays the actual "watering" animation, and possibly even sets the effects of the Wailmer Pail…
0x62 - "Trendy Phrase". Used by the Trendy Dude outside in Dewford Town.

0x86 - Checks how many Pokémon in Party and places in Variable. Identical to FireRed 0x83. (Credit to JPAN and buddies)
0x87 - I assume this is identical to 0x86…

0x8E – Used first in the Mauville City Gym switches.
0x8F – Used second in the Mauville City Gym switches.

0x91 - Map refresh. Identical to FireRed 0x8E.

0x9D - Better set the clock!
0x9E - Now look at the clock.
0x9F - Starter Pokémon; Birch's Bag
0xA0 – Wally Meets Ralts! - Wally sends out first Party Pokémon unless special paramaters are set.
0xA1 - Nickname Pokémon in Party, as indicated by 0x8004.
0xA2 – Choose a Pokémon. – Sends it somewhere.

0xA4 – Berry blender.
0xA5 – 2/ Roulette game. Somehow returns 1, then 3. Has something to do with 0x8004 and cmd96.

	0xA9 - Returns 0x933F (37695), but does nothing visible.

0xAE - Generates a wild battle from the "Tree (Rock Smash)" wild Pokémon data. May have a chance of returning 0x0 into LASTRESULT; 0x0 means no battle.

0xB7 - 2 Checks how the last wild battle ended. 0x1 if won, 0x4 if lost, 0x5 because it can, 0x7 if captured.
0xB8 - Buffers the two Day-Care Pokémon into \v\h02 ([buffer1]) and \v\h03 ([buffer2]). Identical to FireRed 0xB5. (Credit to JPAN and buddies)
0xB9 - 2 Returns 0x1 if there is an egg, 0x2 if one Pokémon, 0x3 if two Pokémon. Identical to FireRed 0xB6. (Credit to JPAN and buddies)
0xBA - Clears Egg timer, prepares it for new timer. Identical to FireRed 0xB7. (Credit to JPAN and buddies)
0xBB - Creates and places egg in Party. Identical to FireRed 0xB8. (Credit to JPAN and buddies)

0xD9 - Turns the tile above the player that is also directly bordering the script tile into the 6th tile in the tileset, and flickers it between the 5th and the 6th tile for a while. Used for PCs.
0xDA - Turns the tile changed in 0xD9 into the 5th tile in the tileset. Used for PCs. Changes the movement to "blocked"?

0xF4 - Stops all music.

0xFC - Player's PC.
0xFD - Player's POKéMON Center PC. Returns to script when "TURN OFF" is selected.
0xFE - HOENN map.

0x109 - Sets up a second text box displaying all accessible PCs, displaying "LANETTE's" instead of "SOMEONE's" if you have seen her. Returns to 0x800D (LASTRESULT) 0x0 if you chose Pokémon Storage; 0x1 if you chose "\v\h01's PC"; 0x3 if you backed out by selecting "LOG OFF"; 0x7F if you backed out with the B button.

0x129 - Used in a manner like FireRed 0x127. Something to do with [0x3005DF0].
0x12A - Used in a manner like FireRed 0x128. Something to do with [0x3005DF0].

0x136 - 2 Seems like it checks for Pokérus in party; returns 0x1 if indeed Pokérus exists.
	0x137 - Returns 0x933F (37695), but does nothing visible.
0x138 - Takes variables from 0x8004 (dyp), 0x8005 (dxp), 0x8006 (length, in shakes), and 0x8007 (frames between shakes?) and makes an earthquake.

0x13A - dowildbattle for RAYQUAZA.
0x13B - dowildbattle for the Regis.
	0x13C - Returns 0x933F (37695), but does nothing visible.
0x13D - Jostles the screen up then down in medium speed.

0x13F - "Flash grenade" effect.
0x140 - Same as 0x3.
0x141 - Same as 0x140, but with a fall-animation instead.

	0x143-0x144 - Returns 0x933F (37695), but does nothing visible.
0x145 - Normal battle.
	0x146-0x148 - Returns 0x933F (37695), but does nothing visible.

	0x14A - Returns 0x933F (37695), but does nothing visible.

	0x15E - Something to do with planting Berries.
	0x15F - Something to do with picking Berries.

0x19F - Checks for Wireless. 0x1 true, 0x0 false. Identical to FireRed 0x16A. (Credit to JPAN and buddies)

0x1A5 - 2 Checks if someone is linked to you, and puts their name in \v\h02 ([buffer1]), otherwise clears buffer. Identical to FireRed 0x183. (Credit to JPAN and buddies)

0x1A9 - 2 Checks for bad Union Room Pokémon, then returns 0x1 if indeed there is. Identical to Fire Red 0x1AE. (Credit to JPAN and his buddies)

0x1D9 - 2 Checks for Trainer Stars; returns to given variable how many stars. Notably used by Nurse Joy for "special treatment"

0x1E6 - Names a Pokémon that is to be sent to the PC.
0x1E7 - 2 Returns to given variable the current default box name. Moves default box forward one?
0x1E8 - 2 Returns to given variable if the box is full. 0x1 means full.
0x1E9 - Takes value in 0x8004 and registers in the POKéNAV the corresponding Trainer.

0x1F3 - Obtain National Dex!

0x203 - 2 Checks if [Map Block] +8 bytes is equal to 0xA02. Probably vaguely has something to do with Linking. Identical to FireRed 0x1B1. (Credit to JPAN and his buddies)
Variables:
Code:
0x0-0x3FFF - Not Variables

0x4050 - Introduction Events
		Default 0
		Meet Rival - set to 1; now Route 101 is open!
		Go to Route 101 - set to 2; Birch is in trouble!
		
		Get Running Shoes - set to 4

0x4082 - Temporary variable?
		Leave truck as MAY - set to 1

0x408C - Temporary variable?
		Leave truck as BRENDAN - set to 1

0x408D - Introduction Events
		Meet Rival - set to 3; now script downstairs will not activate.

0x4092 - Introduction Events
		Leave truck as BRENDAN - set to 1
		Leave truck as MAY - set to 2
		Go into house as BRENDAN - set to 3
		Observe house as BRENDAN - set to 4

0x8004 - Multiple Uses
		PokéCenter - if 0x1 then alternate but identical scene for goodbye message
		MOM - set to 0x5 when jump out of truck
		MOM - if 0x1 then move MOM in MAY/BRENDAN's house.

0x8005 - Multiple Uses
		MOM - set to 0x5 when jump out of truck

0x8008 - Multiple Uses
		BRENDAN/MAY - chooses which script-tile you are on for "meeting" them.
		MR. BRINEY in Dewford - Holds the value of 0x4096. Temporarily?

0x800D - LASTRESULT, who could forget you?
0x800E - LASTITEM basically.
0x800F - LASTTALKED - stores the Person ID of the OW that is linked to the most recent executed script; is processed each time a script is about to happen.

0x8015 - LASTBATTLED basically.
Flags:
Code:
0x1 - Has PokéMart Lady told you about the PokéMart?

0x11 - Controls visibility of:
		A tree on Route 104.
		A rock on Route 111.
		A rock on Route 114.
		A rock on Route 115.
		A tree on Route 116.
		A tree on Route 117.
		A tree on Route 118.
		A tree on Route 120.
0x12 - Controls visibility of:
		A tree on Route 103.
		A rock on Route 111.
		A rock on Route 114.
		A tree on Route 116.
		A tree on Route 120.
0x13 - Controls visibility of:
		A tree on Route 103.
		A tree on Route 111.
		A rock on Route 114.
		A tree on Route 116.
0x14 – Controls visibility of:
		A rock on Route 114.
		A tree on Route 116.
		A tree on Route 120. 
0x15 – Controls visibility of: 
		A rock on Route 114.
		A tree on Route 116.
 
0x50 - Controls the battling RAYQUAZA.
0x51 - If set, you set the clock. Great job!
0x52 - You encountered BIRCH in trouble!

0x59 – You came from far away.
0x5A – You got the bike.

0x5E - If set, you got the Wailmer Pail.

0x6B – Has gotten HM06 (ROCK SMASH) yet?

0x74 - Ready to Catch POKéMON! (Finished Introductory Scenes, Footprint Guy moves away)

0x93 - Has talked to MR. BRINEY for the first time?

0x95 - Has delivered the package to CAPT. STERN yet?

0xA5 – Has beaten ROXANNE yet, and received her TM?
0xA6 – Has beaten BRAWLY yet, and received his TM?
0xA7 – Has beaten WATTSON yet, and received his TM?
0xA8 – Has beaten FLANNERY yet, and received her TM?
0xA9 – Has beaten NORMAN yet, and received his TM?
0xAA – Has beaten WINONA yet, and received her TM?
0xAB – Has beaten TATE & LIZA yet, and received their TM?
0xAC – Has beaten JUAN yet, and received his TM?

0xAE - Disposable Character 1 in Player's room, possibly a doll?
0xAF - Disposable Character 2 in Player's room, possibly a doll?
0xB0 - Disposable Character 3 in Player's room, possibly a doll?
0xB1 - Disposable Character 4 in Player's room, possibly a doll?
0xB2 - Disposable Character 5 in Player's room, possibly a doll?
0xB3 - Disposable Character 6 in Player's room, possibly a doll?
0xB4 - Disposable Character 7 in Player's room, possibly a doll?
0xB5 - Disposable Character 8 in Player's room, possibly a doll?
0xB6 - Disposable Character 9 in Player's room, possibly a doll?
0xB7 - Disposable Character 10 in Player's room, possibly a doll?
0xB8 - Disposable Character 11 in Player's room, possibly a doll?
0xB9 - Disposable Character 12 in Player's room, possibly a doll?
0xBA - Not sure; set unconditionally upon entering Room
0xBB - Not sure; set unconditionally upon entering Room

0xBD - Has sent the LETTER to STEVEN yet?

0xE1 – Has gotten 20 coins from MAN in Mauville yet?
0xE2 – Has gotten GIRL’s duplicate doll in Mauville yet?

0x102 – Has gotten COIN CASE from GIRL yet?

0x111 - If unset, then Nurse Joy didn't tell you about Pokérus, did she?
0x112 - Not sure, Mom sets that upon "switching shoes".

0x12F - Set when you obtain the PokéNav.

0x159 - Oh, you have a Gold Card! I'll take note of that…

0x1BB - You beat Regirock…
0x1BC - You beat Regice…
0x1BD - You beat Registeel…

0x2D0 - Controls Prof. BIRCH in trouble on Route 101.
0x2D3 - Controls Rival on Route 103.

0x2BC - Controls BIRCH's BAG on Route 101.
0x2BE - Controls MYSTERY EVENT lady in the second floor of the Pokémon Center.
0x2BF - Controls a disposable character in the Union Room.
0x2C0 - Controls a disposable character in the Union Room.
0x2C1 - Controls a disposable character in the Union Room.
0x2C2 - Controls a disposable character in the Union Room.
0x2C3 - Controls a disposable character in the Union Room.
0x2C4 - Controls a disposable character in the Union Room.
0x2C5 - Controls a disposable character in the Union Room.
0x2C6 - Controls a disposable character in the Union Room.

0x2CF – Controls Rival (MAY/BRENDAN) outside MR. BRINEY’s house on Route 104.

0x2D1 - Controls BRICH in BIRCH's lab.
0x2D2 - Controls MAY in MAY's room.

0x2D6 – Controls WALLY outside in Petalburg City.

0x2D8 – Controls WALLY’s mom in Petalburg City.

0x2DB – Controls TEAM AQUA GRUNT in Rustboro City.
0x2DC – Controls the DEVON GOODS guy in Rustboro City.

0x2DE - Controls NORMAN in Player's house.
0x2DF - Controls BRENDAN's little brother in BRENDAN's house.
0x2E0 - Controls MAY's little brother in MAY's house.

0x2E2 – Controls MR. BRINEY on Route 104.
0x2E3 - Controls MR. BRINEY in his house.
0x2E4 - Controls MR. BRINEY in Dewford Town.
0x2E5 – Controls MR. BRINEY on Route 109.
0x2E6 – Controls MR. BRINEY’s boat on Route 104.
0x2E7 - Controls MR. BRINEY's boat in Dewford Town.
0x2E8 – Controls Mr. BRINEY’s boat on Route 109.
0x2E9 - Controls BRENDAN (?) in BRENDAN's house.
0x2EA - Controls MAY (?) in MAY's house.

0x2ED – Controls SCOTT outside the Slateport Battle Tent.
0x2EE - Controls the ZIGZAGOON on Route 101.

0x2F0 - Controls MOM in Littleroot Town.

0x2F2 - Controls "Fugiiiiih!" Vigoroth in Player's house.
0x2F3 - Controls "Huggoh, ugh ugh…" Vigoroth in Player's house.

0x2F5 - Controls MOM in Player's room.
0x2F6 - Controls MOM in BRENDAN's house.
0x2F7 - Controls MOM in MAY's house.
0x2F8 - Controls BRENDAN upstairs in his room.
0x2F9 - Controls BRENDAN's Moving Van in Littleroot Town.
0x2FA - Controls MAY's Moving Van in Littleroot Town.

0x2FD – Controls SCOTT in Mauville City.

0x300 – Controls Winston Family Member on Route 111.
0x301 – Controls Winston Family Member on Route 111.
0x302 – Controls Winston Family Member on Route 111.
0x303 – Controls Winston Family Member on Route 111.

0x305 - Controls the sleeping RAYQUAZA.

0x30D – Controls the Gym Assistant of Norman.

0x310 - Controls BRENDAN's mom in BRENDAN's house.
0x311 - Controls MAY's mom in MAY's house.
0x312 – Controls Scott on Route 119.

0x314 – Controls Scott in Mossdeep City.

0x31A - Controls someone near MAY's home in Littleroot Town. (D,A)
0x31B - Controls someone near MAY's home in Littleroot Town. (D,B)
0x31C – Controls GABBY & TY on Route 111.
0x31D – Controls GABBY & TY on Route 118.
0x31E – Controls GABBY & TY rematch on Route 120.
0x31F – Controls GABBY & TY rematch on Route 111.

0x324 – Controls WALLY in Mauville City.
0x325 – Controls WALLY’s uncle in Mauville City.

0x32B - Controls the POKé BALL that allows you to choose CYNDAQUIL after completing the POKé DEX in BIRCH's lab.
0x32C - Controls the POKé BALL that allows you to choose TOTODILE after completing the POKé DEX in BIRCH's lab.
0x32D – Controls the BlackGlasses dude on Route 116.
0x32E – Controls Rival (MAY/BRENDAN) in Rustboro City.
0x32F - Controls SWABLU doll (?) in BRENDAN's room.
0x330 – Controls WALLACE in Sootopolis City, outside the Cave of Origin.
0x331 - Controls BRENDAN's POKé BALL in BRENDAN's room.
0x332 - Controls MAY's POKé BALL in MAY's room.
0x333 – Controls TEAM MAGMA GRUNTS on Route 112.

0x337 – Controls the TEAM MAGMA GRUNTS and MAXIE in Mossdeep City.
0x338 – Controls GABBY in the Petalburg City Gym.

0x33A – Controls ARCHIE in Sootopolis City.
0x33B – Controls MAXIE in Sootopolis City.

0x33E – Controls some person (WALLY’s dad?) outside in Petalburg City.

0x343 – Controls TY and GABBY in Slateport City.
0x345 – Controls PROF. BIRCH on Route 110.
0x346 - Controls the POKé BALL that allows you to choose CHIKORITA after completing the POKé DEX in BIRCH's lab.
0x347 – Controls a man outside in Sootopolis City.
0x348 – Controls CAPT. STERN outside the Slateport Harbor.

0x34B – Controls “Forgot my Rock Smash!” Guy on Route 111.
0x34C – Controls Scientist in Rustboro City.

0x351 - Controls PIKACHU doll (?) in MAY's room.

0x353 – Controls Rival (MAY/BRENDAN) on Route 119.
0x354 – Controls the TEAM AQUA GRUNTS in Lilycove City.

0x356 – Controls bystanders of the battle between GROUDON and KYOGRE outside in Sootopolis City.
0x357 - Controls WALLACE outside Sky Pillar.

0x362 – Controls WALLY in the Petalburg City Gym.

0x364 - Controls "Technology is Awesome!" Guy in Littleroot Town.

0x36B – Controls a person on Route 111. (Fossil?)
0x36C – Controls a FOSSIL on Route 111.

0x371 - Controls PEEKO in MR. BRINEY's house.
0x372 – Controls TEAM AQUA GRUNTS outside the Museum in Slateport City.

0x379 - Controls BIRCH's child (MAY/BRENDAN) in BIRCH's lab.
0x37A – Controls TEAM AQUA GRUNTS on Route 119.
0x37B – Controls MR. BRINEY on Route 116.

0x37E – Controls the Digging guy on Route 116.

0x381 - Controls Prof. BIRCH on Route 101.
0x382 - Controls Prof. BIRCH on Route 103.

0x384 – Controls the TEAM AQUA GRUNTS on Route 110.
0x385 – Controls GABBY & TY rematch on Route 118.
0x386 – Controls GABBY & TY rematch on Route 120.
0x387 – Controls GABBY & TY rematch on Route 111.
0x388 – Controls GABBY & TY rematch on Route 118.

0x38A – Controls lady outside Pretty Petal Shop on Route 104.
0x38B – Controls an AZURILL in Fallarbor Town.

0x390 – Controls WATTSON in Mauville City.

0x397 – Controls a person on Route 110. (Rival?)

0x39A – Controls a person on Route 110. (Rival?)
0x39B – Controls a person on Route 119.

0x3A1 – Controls a person (C, F) outside Lavaridge Town Gym.
0x3A2 – Controls a person (6, 10) outside Lavaridge Town Gym.

0x3A7 - Controls REGIROCK in the Desert Ruins.
0x3A8 - Controls REGICE in the Island Cave.
0x3A9 - Controls REGISTEEL in the Aincent Tomb.

0x3B3 – Controls the Devon Goods guy on Route 116.
0x3B4 – Controls the TM10/TM43 lady outside in the Slateport Market area.

0x3C0 – Controls the Secret Power lady on Route 111.

0x3C6 – Controls STEVE on Route 118.

0x3C9 – Controls the KECLEON!? in Fortree City.
0x3CA – Controls the KECLEON!? on Route 120.
0x3CB – Controls Rival (MAY/BRENDAN) outside the Lilycove Department Store.
0x3CC – Controls STEVEN on Route 120.
0x3CD – Controls STEVEN outside in Sootopolis. “It’s Amazing…”

0x3D3 - Controls BIRCH's child (MAY/BRENDAN) on the way back to completing the Introductory Scenes in Odale Town.

0x3D5 – Controls a KECLEON!? on Route 120.
0x3D6 – Controls a KECLEON!? on Route 120.

0x3D9 – Controls a KECLEON!? on Route 120.
0x3DA – Controls a KECLEON!? on Route 120.
0x3DB – Controls a KECLEON!? on Route 120.
0x3DC – Controls a KECLEON!? on Route 120.
0x3DD – Controls a KECLEON!? on Route 119.
0x3DE – Controls a KECLEON!? on Route 119.
0x3DF – Controls a guy in Route 101.

0x3E3 – Controls SCOTT in Petalburg City.
0x3E4 – Controls RAYQUAZA in Sootopolis City.
0x3E5 – Controls KYOGRE in Sootopolis City.
0x3E6 – Controls GROUDON in Sootopolis City.

0x3E8 - Controls a Potion on Route 102.
0x3E9 – Controls an X-Special on Route 116.
0x3EA - Controls a PP Up on Route 104.
0x3EB – Controls an Iron on Route 105.
0x3EC – Controls a Protein on Route 106.
0x3ED – Controls a PP Up on Route 109.
0x3EE – Controls a Rare Candy on Route 110.
0x3EF – Controls a Dire Hit on Route 110.
0x3F0 – Controls a TM37 on Route 111.
0x3F1 – Controls a Stardust on Route 111.
0x3F2 – Controls an HP Up on Route 111.
0x3F3 – Controls a Nugget on Route 112.
0x3F4 – Controls a Max Ether on Route 113.
0x3F5 – Controls a Super Repel on Route 113.
0x3F6 – Controls a Rare Candy on Route 114.
0x3F7 – Controls a Protein on Route 114.
0x3F8 – Controls a Super Potion on Route 115.
0x3F9 – Controls a TM01 on Route 115.
0x3FA – Controls an Iron on Route 115.
0x3FB – Controls an Ether on Route 116.
0x3FC – Controls a Repel on Route 116.
0x3FD – Controls an HP Up on Route 116.
0x3FE – Controls a Great Ball on Route 117.
0x3FF – Controls a Revive on Route 117.
0x400 – Controls a Super Repel on Route 119.
0x401 – Controls a Zinc on Route 119.
0x402 – Controls an Elixir on Route 119.
0x403 – Controls a Leaf Stone on Route 119.
0x404 – Controls a Rare Candy on Route 119.
0x405 – Controls a Hyper Potion on Route 119.
0x406 – Controls a Nugget on Route 120.
0x407 – Controls a Full Heal on Route 120.

0x40F – Controls a Max Revive in Petalburg City.
0x410 – Controls an Ether in Petalburg City.
0x411 – Controls an X-Defend in Rustboro City.
0x412 – Controls a Max Repel in Lilycove City.
0x413 – Controls a Net Ball in Mossdeep City.

0x421 - Controls a Poké Ball on Route 104.

0x452 – Controls a Hyper Potion on Route 119.
0x453 – Controls a Hyper Potion on Route 120.
0x454 – Controls a Nest Ball on Route 120.

0x45A - Controls a Guard Spec on Route 103.
0x45B - Controls an X-Accuracy on Route 104.
0x45C – Controls an X-Speed in Mauville City.

0x45E – Controls a Great Ball on Route 115.

0x461 – Controls a Hyper Potion on Route 118.

0x46E – Controls a Nugget on Route 119.
0x46F - Controls a Potion on Route 104.

0x471 - Controls a PP Up on Route 103.

0x473 – Controls a Star Piece on Route 108.
0x474 – Controls a Potion on Route 109.
0x475 – Controls an Elixir on Route 110.
0x476 – Controls an Elixir on Route 111.
0x477 – Controls a Hyper Potion on Route 113.
0x478 – Controls a Heal Powder on Route 115.

0x47A – Controls a Potion on Route 116.
0x47B – Controls an Elixir on Route 119.
0x47C – Controls a Revive on Route 120.

0x488 – Controls an Energy Powder on Route 114.
0x489 – Controls a PP Up on Route 115.

0x4F0 - Gym Assistant of Roxanne
0x4F1 - Gym Assistant of Brawly
0x4F2 - Gym Assistant of Wattson
0x4F3 - Gym Assistant of Flannery
0x4F4 - Gym Assistant of Norman
0x4F5 - Gym Assistant of Winona
0x4F6 - Gym Assistant of Tate and Liza
0x4F7 - Gym Assistant of Wallace

0x860 - Pokémon Menu
0x861 - Pokédex Menu
0x862 - Pokénav Menu

0x867 - Got Stone Badge!
0x868 - Got Knuckle Badge!
0x869 - Got Dynamo Badge!
0x86A - Got Heat Badge!
0x86B - Got Balance Badge!
0x86C - Got Feather Badge!
0x86D - Got Mind Badge!
0x86E - Got Rain Badge!

0x8AB - Met LANETTE!

0x8C0 - Got Running Shoes!
0x8C1 - Did you win the Legendary battle? 1 - no.

0x930 - Berry from Pretty Petal Shop; reset at Midnight.

0x4000 - Set by game? Cleared when Mom enters house.
Hidden Items:
Code:
0x25 - 1 POTION; Route 104

0x2C - 1 SUPER POTION; Route 104

0x3E - 1 POKé BALL; Route 104

0x55 - 1 ANTIDOTE; Route 104

0x58 - 1 HEART SCALE; Route 104
Revised Sounds:
Code:
0x19 – “a’a’a’a’a” synth-voice.
0x1A – “i’i’i’i’i” synth-voice.
0x1B – “u’u’u’u’u” synth-voice.
0x1C – “e’e’e’e’e” synth-voice.
0x1D – “o’o’o’o’o” synth-voice.
0x1E – “n’n’n’n’n” synth-voice. Now sounds are shifted six ahead.

0x30 – Open PokéNav. Now sounds are shifted seven ahead.

0xFF – Kaching!
Note that this is far from finished; I only started this afternoon. I will add more as I find even more stuff.

I hope this will be of some help to the Emerald population.
__________________
did u no there r 21 letters in the alphabet
o i forgot 5
uraqt



Last edited by droomph; January 28th, 2012 at 05:39 PM.
Reply With Quote
  #198    
Old January 21st, 2012, 04:57 AM
sonic1's Avatar
sonic1
ASM is my life now...
 
Join Date: May 2008
Location: Portugal
Age: 19
Gender: Male
Nature: Timid
Hey, for emerald i have something too:
Spoiler:

Specials:
Code:
28 - Saves pokemon party into RAM. Used for situations of switching parties (battle frontier)
29 - Restores that party
2A - Lets you choose 3 pokemons and puts their party slot in 0x203CEF8
3B - Plays trainer encounter music (not the battle one) according to the 8015 (trainer number) VAR. Used in the game internal script of trainer spotting.
91 - Map Refresh. Used in setmaptiles. Similar to FireRed 0x8E.
AE - WildBattle using Tree wild Data.
F4 - Stops any music from playing.
FE - Shows worldmap.
1F3 - Sets National Dex

Variables:
Spoiler:

4010 - OWs with image number 240 (0xF0) gets the sprite defined in this var.
800E - When you select an item on bag, this var gets the value of that item
8015 - Opponent trainer number (when you fight someone, this value is what trainer is)

__________________

My Site (UNDER CONSTRUCTION):

(mage by Xryo)

PORTUGUESE USER
Sou o Dark rayquaza da antiga myutsu.net


My Laptop SPECS:


Credits to Eagledelt for the wonderfull sign :D

Reply With Quote
  #199    
Old January 21st, 2012, 04:07 PM
droomph's Avatar
droomph
mmm gurl that 90s
Community Supporter
 
Join Date: Sep 2011
Location: bar'jách
Age: 17
Gender: Male
Nature: Impish
Quote:
Originally Posted by EdensElite View Post
Hey Guys. I've been trying to find out how to edit the PC Boxes for a while. So far all I've find out is that it is stored in the VRAM and what I've include in the screenshot below. If anyone experienced with Hex etc. can help me out, I would really appreciate it

Findings


I managed to find the header. I havn't tried editing it yet. As I'm more interested interested in the actual box. I noticed that most boxes only use one or two different tiles repeated over and over, so maybe there isn't actually a whole image to edit unlike Gen IV games. In which case it's possible that those tiles are in that picture and I missed them.
You do realize in that picture you didn't include ALL the tiles in the tileset, right? Go check on those. When you find a couple "grainy" tiles, those are the tiles.

Quote:
Originally Posted by Awkward Squirtle View Post
Uh... they're stored in the ROM, and copied to the VRAM when the game needs to draw them to the screen. I suspect they're uncompressed in the ROM, so you could just use a tile editor to change them (if you can find them).
If you want to find it in the ROM, simply go to 0x600400, note the first hundred or so bytes (copy function?) and search for that in the actual ROM (0x8000000 onwards).
__________________
did u no there r 21 letters in the alphabet
o i forgot 5
uraqt



Last edited by droomph; January 21st, 2012 at 04:33 PM.
Reply With Quote
  #200    
Old January 22nd, 2012, 07:36 PM
aar2697
 
Join Date: Jun 2010
Age: 17
Gender: Male
Send a message via Skype™ to aar2697
For music hacking with Pokemon Emerald, you can find out the voicegroups by doing this...

1. Have two windows of Sappy open.
2. http://www.pokecommunity.com/showthread.php?t=148811 Use this page
3. One window of Sappy has Emerald. The other has Fire Red.
4. Look for a song in Fire Red that has a voicegroup from the link that you want.
5. Open the same song in the Emerald Sappy window.
6. The voicegroups correspond with each other.
7. Use the Emerald voicegroup for the new song your inserting.
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 10:55 AM.


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.