![]() |
Quote:
|
Quote:
|
In Firered at 0x15FD0C there's a table of pointers for the vars 0x8000-0x8014.
You can easily repoint this and add your own entries. I added 12 new ones (0x8015-0x8020) and using them all in a script worked perfectly. So instead of writing to your static addresses with 'writebytetooffset', you could just set a var. |
This is one Information About Catch areas in Pokédex FR
Probably you have problem making you hack with it Existe one table that control it Table Located at 463580 have this format [TT][XX][YY][00] TT = Shape of the catch area (varies from 00 - 06) the img explain better https://image.ibb.co/dyKP0k/untitled.png XX = X-coordinate of the area on the worldmap in the pokedex YY = Y-coordinate of the area on the worldmap in the pokedex 00 = Padding 00463580 = FILLER 00463584 = PALLET TOWN 00463588 = VIRIDIAN CITY 0046358c = PEWTER CITY 00463590 = CERULEAN CITY 00463594 = LAVENDER TOWN 00463598 = VERMILION CITY 0046359c = CELADON CITY 004635a0 = FUCHSIA CITY 004635a4 = CINNABAR ISLAND 004635a8 = INDIGO PLATEAU 004635ac = SAFFRON CITY 004635bc = ROUTE 4 004635d4 = ROUTE 10 004635b0 = ROUTE 1 004635b4 = ROUTE 2 004635b8 = ROUTE 3 004635bc = ROUTE 4 004635c0 = ROUTE 5 004635c4 = ROUTE 6 004635c8 = ROUTE 7 004635cc = ROUTE 8 004635d0 = ROUTE 9 004635d4 = ROUTE 10 004635d8 = ROUTE 11 004635dc = ROUTE 12 004635e0 = ROUTE 13 004635e4 = ROUTE 14 004635e8 = ROUTE 15 004635ec = ROUTE 16 004635f0 = ROUTE 17 004635f4 = ROUTE 18 004635f8 = ROUTE 19 004635fc = ROUTE 20 00463600 = ROUTE 21 00463604 = ROUTE 22 00463608 = ROUTE 23 0046360c = ROUTE 24 00463610 = ROUTE 25 00463614 = VIRIDIAN FOREST 0046361c = MT. MOON 00463598 = S.S. ANNE (SAME OFFSET OF VERMILLION) 004635ac = UNDERGROUND PATH (SAME OFFSET OF SAFRON) 004635ac = UNDERGROUND PATH ( SAME OFFSET OF SAFRON) 00463618 = DIGLETT'S CAVE 0046363c = VICTORY ROAD 0046359c = ROCKET HIDEOUT (SAME OFFSET OF CELADON) 004635ac = SILPH CO. (SAME OFFSET OF SAFRON) 00463638 = POKéMON MANSION 00463630 = SAFARI ZONE 0046363c = POKéMON LEAGUE (SAME OFFSET VICTORY ROAD) 00463624 = ROCK TUNNEL 00463634 = SEAFOAM ISLANDS 0046362c = POKéMON TOWER 00463620 = CERULEAN CAVE 00463628 = POWER PLANT Need search for the rest of Island Maps Credit : sfc.pokefans.net/lesson.php?id=20 for the base of my search |
How to change the Latias and Latios event after chose red and blue?
|
Changing the experience gain formula (Emerald)
** The purpose of this research isn't to learn the EXP calculation formula. We already know that. The purpose is to give offsets we can use to easily change the formula. The exact point where the game yanks a Pokemon's experience yield is here: Code:
Code:
Code:
Code:
Before these opcodes:
Code:
Code:
|
Quote:
|
Quote:
|
Quote:
I linked you to the github of my and one other guy project. We basically rewrote a huge part of the original battle engine in C and added stuff in later generations. For more info, see my signature. |
Changing global wild encounter levels (Emerald)
** Again, something I did for my own uses. Instead of changing the wild encounter tables for each route, you can make sweeping changes to all wild encounters by changing the code that uses those tables. This is what the flow for generating wild encounters looks like (call order): ROM:080B5288 walking_func ROM:080B4F4C choose_wild_pokemon_encounter ROM:080B4C74 choose_encounter_level The first function performs some check for every step (or turn) the player takes. If the player's tile is encounter-eligible it enters the second function, which eventually calls the third function, "choose_encounter_level" which does just that. Let's look at some pseudo-code: Code:
Computing "rand" Code:
Returning "rand" as the encounter level Code:
So, what now? Well, say you wanted to make encounters a bit scarier - it's as easy as adding to R4 or R7. In my own experiments I replaced the useless left-shift/right-shift opcodes near the "rand" computation with something more useful: Code:
showthread.php?p=8615361#post8615361 The value's behind pointer 0x3005D90, offset 0x14. The reason I counted from 0x3005D8c is convenience - it's used a bit later at 080B4D50: Code:
|
Quote:
|
I just happened to stumble on this
Writing C0 46 C0 46 to 0x03DF40 will allow the Weedle in the Old Man's tutorial to be female or genderless. Obviously this is only for FR but hey something similar should be out there for Emerald. Also at 0x07F88C, there is a Code:
|
Quote:
|
I did a little investigation into trainerbattle 0x9:
Rather than nop-ing out of the Oak's text function, you can just change the reserved byte from 0x3 to 0x0 to prevent Oak's text from appearing during battle. So you could re-use trainerbattle 0x9 and still have a battle that uses the text. It would look like: Code:
EDIT: setting the reserved byte to 0x0 instead of 0x3 removes the functionality allowing you to continue with a script even if you white out. I made an assembly routine to toggle the text on and off while keeping this functionality in this post, though. Additionally, trainerbattle 0x9 writes 0x0 or 0x1 to variable 0x800D (lastresult) depending on if you won or lost the battle, respectively. This allows you to branch to separate scripts depending on the result of your trainer battle |
Quote:
Doing what Knizz did, I get fix a bug in GBA emulator for android. when the OAK's battle start, the emu freezes. |
Quote:
|
There was a conflict between JPAN's set trainer levels hack and Doesntknowhowtoplay's trainer EVs hack. I may have found a way to fix it so that one can have both in their hack at the same time.
I posted it in Doesnt's original thread here, but I thought I'd link it here too so more people could see it, because it may be something useful for a lot of people's hacks if it works for everyone the way it worked for me. I haven't tested it on a clean ROM yet, but I think it should still work there too. |
Class-based Poké Balls [FR]
In Sun and Moon, NPC trainers started using different types of Poké Balls. Specifically, it's tied to their trainer class - for example, Elite Four members and Ace Trainers keep their Pokemon in Ultra Balls. Prior to this, NPC trainers only ever used basic Poké Balls. |
Quote:
(I totally think this is cool/complex enough to deserve its own thread, by the way... but hey, your call. ;)) also: 1) your Readme file is a radiant and beautiful thing and an absolute MODEL of clarity and conciseness; I sort of wish you'd write a tutorial just on how to write documentation, haha, it could not be easier to understand 2) your smart automatic double battle implementation is brilliant, by the way - what a subtle but giant improvement to the default engine and finally: Quote:
|
Quote:
I open the prompt and write "src/build" but nothing...if I write "script/build" a pop-up ask me with how program I want to open this file... How can I compile it??? Thanks :D |
Quote:
|
I hadn't seen this anywhere but my apologies if it's already been posted elsewhere.
The sprite that shows the rival walking in place in the nickname screen is different than the overworld rival character. I have no idea why; but regardless, I went ahead and searched for the appropriate offsets for the nickname screen images/palette: Code:
|
Quote:
|
Quote:
|
Choose Poké Mart Inventory Based on Badge Progress [FR]
This shouldn't need too much of an explanation. Gen IV prevented early-game Poké Marts from becoming completely useless by late-game by tying the Poké Mart's inventory to how many badges you have, rather than the location of the Mart. This is the same thing for Fire Red. Basically, if your script contains pokemart 0, it will pick the appropriate item list (which you can customize). Any argument other than zero is still understood as a static item list. Remove flag check for running [FR] Code:
Automatically unlock National Dex [FR] I could've sworn I posted this at some point, but I couldn't find it. The function responsible for determining whether you have the national dex or not is at 0x0806E25C. By making it always return true, you'll always be considered to have the national dex. To be clear, this doesn't make the Pokédex active on the start menu, but (for example) national dex Pokémon will be able to evolve and their Pokédex number will show on the summary screen (instead of ???). It's the equivalent of immediately invoking special 0x16Fat the beginning of the game. Code:
To be clear, this does not include the in-battle effect (where a Pokémon with Pickup may pick up an item that was just used), as introduced in BW; it just makes the item list depend on the level of the Pokémon, like in Emerald. Can't forget HM08 [FR] FRLG didn't use HM08 (Dive), so the move it contains can be freely forgotten without the Move Deleter. To make it like the rest of the HMs (in that the move can't be forgotten): Code:
Quote:
Quote:
Also, I apologize if moving my response to this post (it was originally two posts down) notifies you again. |
| All times are GMT -8. The time now is 8:53 AM. |
![]()
© 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.