Search the Community
Showing results for tags 'resource'.
-
OK, I'll just begin with my story. Pokémon Black and White. NARC a/0/6/6 contains the move animations. All 559 original moves have their own animation script, such that the first 560 files of a/0/6/6 contain the move animations for each move (with file 000 being a dummy file). Additionally, files 561 up to 600 are also in-battle animations, for example the "using a held item" animation, the "Shiny" sparkle, or the trapping move animations (animations shown when you are trapped by Bind, for example). EDIT 1: Found out that files 561 until 600 are actually dummy files and NOT the in-battle animation files. Instead, moves 560 until 658 are linked to these in-battle animations by default. Any move after 658 will have no move animation and make the game crash. This means that there possibly is some kind of overlay table that links moves 1-559 to the corresponding move animation in a/0/6/6, and that moves 560 until 658 are called when a specific in-battle animation is required. Move animations can be interchanged quite easily. For example, if we copy file 343 Covet and replace it with file 126 Fire Blast, we will see that Fire Blast now uses the Covet animation: Now, this was quite easy! So let's continue. Say I'm adding the Generation VI moves like KazoWAR has done before in B2W2's Project 721. Adding new moves to "move data" a/0/2/1, and adding the new texts to a/0/0/2 is all quite easy. However, a problem shows up when adding new move animations. I came up with a "clever" idea to add dummy moves in a/0/2/1 move_data for move 560 until 600, and to add Gen VI moves starting at 601 (such that 601 would be Flying Press, and so on). Why? Because then I could add new move animations to a/0/6/6 starting at file 601, such that the other in-battle animations 560 until 600 were untouched. As an example, Play Nice should now be move 630 in this game. I again added a dummy animation of Covet to a/0/6/6/630. Unfortunately, when I now use Play Nice in-battle, it somehow uses the animation of "being trapped by Bind" (see below) - and although I'm not sure which animation that would be exactly, it is one of the animations of file 560 until 600. Because when I try to use Phantom Force, which should be move 607, it uses the animation of "using a held item" in-battle. Long story. All I'm asking for is some ideas. Could somebody think of why this is happening? Also, given that both a/0/6/6 (move animations) and a/0/2/1 (move data) now contain "dummies" for files 560 until 600, shouldn't everything just be working correctly? My best guess would be that the move data files a/0/2/1 could have some kind of pointer to their respective move animations. Given that I copied data from ORAS directly, Play Nice (now move 630) would then most probably still point to move animation 589 (which is Play Nice's original index number). But I could not find a pointer anywhere. Also, if a completely different pointer table would exist somewhere in an overlay, then why do the added moves Play Nice (#630) and Phantom Force (#607) point so 'nicely' to exactly these in-game animations from 560 until 600? EDIT 2 @ May 25 With the help of Kaphotics, the answer has been found! In fact, every move after 559 gets a battle effect from NARC a/0/6/7 in BW (move effects; which is a/0/6/6 in B2W2, and move animations is a/0/6/5 in B2W2). So if you want to add new moves, add the animations to this NARC starting at move ID 659. Any ideas are welcome, thanks a lot for reading!
-
Here is the SCRIPT STUFF and the Sprite Hex below by Me Lockall-Locks NPCs and starts script. Faceplayer-Makes NPC face you. Message #-Assign a text number, it will bring up that line of dialouge. WaitButton-Waits until you press A or B CloseMsgOnKeyPress-Closes the message upon pressing A or B (goes with waitbutton) TrainerBattle # 0 1-Assign a trainer's number to have the battle against that trainer Releaseall-(must be there with lockall) allows other NPCs to move again. End-ends script, must have too Applymovement # mov_#-applies movement to the OW the # is assigned to, and applies the movement set assigned to the mov_# Waitmovment-waits til movement is finished before continueing the script. Removepeople #-removes the NPC assigned to it Receive MEgg-recieve the Togepi Egg GiveEgg 175 11-Cynthia's egg script from platinum Setflag 106-?Gives Pokemon option? Setflag 283-Gives Bag Option Setflag 284-Gives Trainer Option Setflag 285-Gives Save option Serflag 286-Gives Option option Setflag 156-Gives PokeGear ActPkgrFunction 1-Loads Town Map into Pokegear GiveRShoes-Gives Running Shoes PlayMusic 1067-Plays Oak's theme ActPokedex-Activates the Pokedex Setflag 107-Gives Pokedex Option MOVEMENT COMMANDS Exclaim SeeUp SeeRight SeeDown SeeLeft WalkUpFast/Normal/Slow WalkRightFast/Normal/Slow WalkDownFast/Normal/Slow WalkLeftFast/Normal/Slow RunUp RunRight RunDown RunLeft JumpFacingUp JumpFacingRight JumpFacingDown JumpFacingLeft Jumps one/two JumpUpOne/Two JumpRightOne/Two JumpDownOne/Two JumpLeftOne/Two PauseWalkUpFast/Normal/Slow PauseWalkRightFast/Normal/Slow PauseWalkDownFast/Normal/Slow PauseWalkLeftFast/Normal/Slow TEXT \n break, \r new text Sprites 000 = Soul Silver Hero Male 001 = Little Boy (Platinum) 002 = Little Girl (Platinum) 003 = Male School Kid (Platinum) 004 = Youngster (Platinum) 005 = Bug Catcher (Platinum) 006 = Lass (Platinum) 007 = Battle Girl (Platinum) 008 = School Girl (Platinum) 009 = Generic Male (Platinum) 00A = Rocker (Platinum) 00B = Ace Trainer Male (Platinum) 00C = Generic Female (Platinum) 00D = Beauty (Platinum) 00E = Ace Trainer Female (Platinum) 00F = Balding Male 010 = Barry's Mom (Platinum) 011 = Old Man (Platinum) 012 = Old Woman (Platinum) 013 = Fat Guy (Platinum) 014 = Hiker 015 = Biking Male Hero 016 = Reporter (Platinum) 017 = Camera Man (Platinum) 018 = Store clerk 1 019 = Store Clerk 2 01A = FREEZE 01B = FREEZE 01C = FREEZE 01D = Male Scientist (Platinum) 01E = Female Scientist (Platinum) 01F = Rough Neck (Platinum) 020 = FREEZE 021 = Female Skiier (Platinum) 022 = Officer (Platinum) 023 = Idol (Platinum) 024 = Gentleman (Platinum) 025 = Socialite (Platinum) 026 = Male Biker (Platinum) 027 = Female Biker (Platinum) 028 = Engineer (Platinum) 029 = Farmer (Platinum) 02A = Cowgirl (Platinum) 02B = Clown (Platinum) 02C = Artist (Platinum) 02D = Athlete Male (Platinum) 02E = FREEZE 02F = FREEZE 030 = FREEZE 031 = FREEZE 032 = Ruin Maniac (Platinum) 033 = Black Belt (Platinum) 034 = Picnic Boy (Platinum) 035 = Picnic Girl (Platinum) 036 = Fisherman 037 = Parasol Girl (Platinum) 038 = Sailor 039 = FREEZE 03A = FREEZE 03B = Waiter (Platinum) 03C = Waitress (Platinum) 03D = FREEZE 03E = Rich Boy (Platinum) 03F = Rich Girl (Platinum) 040 = FREEZE 041 = FREEZE 042 = FREEZE 043 = FREEZE 044 = Blizzard Ace Trainer Male (Platinum) 045 = Blizzard Ace Trainer Female (Platinum) 046 = Psychic Male (Platinum) 047 = Pikachu (Platinum) 054 = Strength Boulder (Platinum) 055 = Rock Smash Rock (Platinum) 056 = Cut Bush (Platinum) 057 = Item Pokeball 061 = Soul Silver Hero Female 062 = Biking Soul Silver Hero Female 063 = Professor Elm 07E = Roark 07F = Gardenia 080 = Crasher Wake 081 = Maylene 082 = Fantina 083 = Candice 084 = Byron 085 = Volkner 08D = Cheryl 08E = Riley 08F = Marley 090 = Buck 091 = Mira 092 = School Boy (HG/SS) 094 = Rival (Silver) 0A8 = Gym Stalker Guy (HEYA FUTURE CHAMP!) 0A9 = Tower Tycoon Paulmer 0AF = Pokemon Mansion Maid (Platinum) 0B0 = Diamond/Pearl Hero Male Holding Up Pokeball 0B1 = Diamond/Pearl Hero Female Holding Up Pokeball 0B2 = Soul Silver Hero Male Kneeling 0B3 = Soul Silver Hero Female Kneeling 0B4 = Diamond/Pearl Hero Male Watering Berries 0B5 = Diamond/Pearl Hero Female Watering Berries 0B7 = Book 0BC = Soul Silver Hero Male Fishing 0BD = Soul Silver Hero Female Fishing 0C1 = Green Mystery Gift Man 0C4 = Diamond/Pearl Hero Male Checking Watch 0C5 = Diamond/Pearl Hero Female Checking Watch 0C6 = Soul Silver Hero Male Kneeling 0C7 = Soul Silver Hero Female Kneeling 0C8 = Soul Silver Hero Male Handing Pokeballs 0C9 = Soul Silver Hero Female Handing Pokeballs 0D2 = Ruins Of Alph Wall 0D3 = Red 0DA = Thief 0DB = Shrine Woman With Candles 0DC = Sprout Tower Monk 0DD = Female Rocket 0DE = Male Rocket 0DF = Rocket Executive Athena 0E0 = Rocket Leader Apollo 0E1 = Male Snowboarder 0E3 = Pyro-Maniac 0E5 = Biker 0E8 = Kimono Woman 0E9 = Kurt 0EA = Clefairy Doll 0EB = Bill 0EC = SS Aqua Captain 0ED = Red Gyarados 0EE = Diamond/Pearl Hero Male 0EF = Diamond/Pearl Hero Female 0F0 = FREEZE 0F1 = FREEZE 0F2 = FREEZE 0F3 = FREEZE 0F4 = FREEZE 0F5 = FREEZE 0F6 = FREEZE 0F7 = FREEZE 0F8 = Soul Silver Hero Dancing? 0F9 = Soul silver Female Dancing? 0FA = Shrine Woman Without Candles 0FB = Other Part of a Door (Left) 0FC = Other Part of a Door (Right) 0FD = Crate 0FE = Magnet Train Support Beam 0FF = Magnet Train Support Beam 100 = Part of a Door 101 = Part of another Door 102 = Rocket Soul Silver Hero Male 103 = Rocket Soul Silver Hero Female 104 = Rocket Male Hero Handing Pokeballs to Nurse Joy 105 = Rocket Female Hero Handing Pokeballs to Nurse Joy 106 = ??? Apricorn Tree 107 = Red Apricorn Tree 108 = Yellow Apricorn Tree 109 = Blue Apricorn Tree 10A = Green Apricorn Tree 10B = Pink Apricorn Tree 10C = White Apricorn Tree 10D = Black Apricorn Tree 10E = Red Apricorn 10F = Yellow Apricorn 110 = Blue Apricorn 111 = Green Apricorn 112 = Pink Apricorn 113 = White Apricorn 114 = Black Apricorn 115 = Factory Head Thorton 116 = Hall Matron Argenta 117 = Castle Valet Dirach 118 = Arcade Star Dahlia 119 = Lady Caitlin 11A = Green Colored Frontier Worker 11B = Maroon Colored Frontier Worker 11C = Battle Frontier Entrance Worker 11D = Male Wi-Fi Plaza Worker 11E = Female Wi-Fi Plaza Worker 11F = Persian Statue 120 = Golden Dresser Hiding Rocket's Secret Base 121 = Little Boy 122 = Door Of Some Kind 123 = Ruins Of Alph Podium 124 = Patch of Dirt 125 = Rocket Admin Lambda 126 = Rocket Admin Lance (Rocket) 127 = Platinum Hero Male 128 = Platinum Hero Female 129 = Kneeling Rocket Male Hero 12A = Kneeling Rocket Female Hero 12B = Orange Mystery Gift Man 12C = FREEZE 12D = FREEZE 12E = FREEZE 12F = FREEZE 130 = FREEZE 131 = FREEZE 132 = FREEZE 133 = FREEZE 134 = FREEZE 135 = FREEZE 136 = FREEZE 137 = FREEZE 138 = FREEZE 139 = FREEZE 13A = FREEZE13B = Little Boy (HG/SS) 13C = Little Girl (HG/SS) 13D = Youngster (HG/SS) 13E = Bug Catcher (HG/SS) 13F = Mini-Skirt 140 = Blonde Girl With Pig Tails 141 = Brown Haired School Girl 142 = Brown Haired Boy 143 = Rocker 144 = Elite Trainer Male 145 = Generic Woman 146 = Beauty (HG/SS) 147 = Elite Trainer Female 148 = Balding Man 149 = House Wife 14A = Old Man (Daycare Grandpa) 14B = Old Woman (Daycare Grandma) 14C = Fat Guy (HG/SS) 14D = Hiker 14E = Store Clerk 1 14F = Nurse Joy 150 = Downstairs Pokecenter Clerk 151 = HG/SS GTS Clerk 152 = Poke-Geek 153 = FREEZE 154 = FREEZE 155 = Gentleman (HG/SS) 156 = Male Swimmer 157 = Female Swimmer 158 = Black Belt (HG/SS) 159 = Picnic Boy 15A = Picnic Girl 15B = Fisherman 15C = Sailor 15D = MISSINGNO. 15E = Gold Trophy 15F = Psychic Male (HG/SS) 160 = Falkner 161 = Bugsy 162 = Whitney 163 = Morty 164 = Chuck 165 = Jasmine 166 = Pryce 167 = Clair 168 = Elite 4 Will 169 = Elite 4 Koga 16A = Elite 4 Bruno 16B = Elite 4 Karen 16C = Champion Lance 16D = Your Mother 16E = Professor Oak 16F = Kid Playing DS 170 = Lt. Surge 171 = Sabrina 172 = Misty 173 = Erika 174 = Janine 175 = Brock 176 = Blaine 177 = Green 178 = Silver Trophy 179 = PokeManiac 17A = Juggler 17B = Bronze Trophy 17C = Banette 17D = Sudowoodo Tree 17E = Eusine 17F = Kobushi (Pokethlon Champion) 180 = Hajime 181 = Giovanni 182 = Ruins Of Alph Researcher 183 = Sprout Tower Master 184 = FREEZE 185 = DJ Kurumi (DJ Mary? Pink haired DJ) 186 = Lapras 187 = FREEZE 188 = Daisy 189 = Red's Mom 18A = Bug Catching Contest Host 18B = ??????? 18C = Pokethlon Medal 18D = Pokethlon Scroll 18E = Pokethlon Shoes 18F = Pokethlon Jacket 190 = Pokethlon Red Flag 191 = Pokethlon Pokegear 192 = Pokeball In a Glass Jar 193 = Pokethlon Self Statue Male 194 = Pokethlon Self Statue Female 195 = FREEZE 196 = Ice Block 197 = Soul Silver Hero Male Pokethlon Outfit 198 = Soul Silver Hero Female Pokethlon Outfit 199 = Rotom Microwave 19A = Rotom Fan 19B = Rotom Fridge 19C = Rotom Washer 19D = Rotom Mower 19E = Slowpoke 19F = Bulbasaur 1A0 = ??? 1A1 = ??? 1A2 = ??? 1A3 = ??? 1A4 = ??? 1A5 = Steven Stone 1A6 = Cynthia 1A7 = Soul Silver Hero Male Checking Watch 1A8 = Soul Silver Hero Female Checking Watch 1A9 = Ho-oh 1AA = Lugia 1AB = Radio Station Attendant 1AC = Bulbasaur 1AD = Ivysaur 1AE = Venasaur 1AF = Venasaur 1B0 = Charmander 1B1 = Charmeleon 1B2 = Charizard 1B3 = Squirtle 1B4 = Wartortle 1B5 = Blastoise 1B6 = Caterpie 1B7 = Metapod 1B8 = Butterfree 1B9 = Weedle 1BA = Kakuna 1BB = Beedrill 1BC = Pidgey 1BD = Pidgeotto 1BE = Pidgeot 1BF = Rattata 1C0 = Ratticate 1C1 = Spearow 1C2 = Fearow 1C3 = Ekans 1C4 = Arbok 1C5 = Pikachu 1C6 = Pikachu 1C7 = Raichu 1C8 = Sandhsrew 1C9 = Sandslash 1CA = Nidoran Female 1CB = Nidorina 1CC = Nidoqueen 1CD = Nidoran Male 1CE = Nidorino 1CF = Nidoking 1D0 = Clefairy 1D1 = Clefable 1D2 = Vulpix 1D3 = Ninetails 1D4 = Jigglypuff 1D5 = Wigglytuff 1D6 = Zubat 1D7 = Golbat 1D8 = Oddish 1D9 = Gloom 1DA = Vileplume 1DB = Paras 1DC = Parasect 1DD = Venonat 1DE = Venomoth 1DF = Diglett 1E0 = Dugtrio 1E1 = Meowth 1E2 = Persian 1E3 = Psyduck 1E4 = Golduck 1E5 = Mankey 1E6 = Primape 1E7 = Growlithe 1E8 = Arcanine 1E9 = Poliwag 1EA = Poliwhirl 1EB = Poliwrath 1EC = Abra 1ED = Kadabra 1EE = Alakazam 1EF = Machop 1F0 = Machoke 1F1 = Machamp 1F2 = Bellsprout 1F3 = Weepinbell 1F4 = Victreebel 1F5 = Tentacool 1F6 = Tentacruel 1F7 = Geodude 1F8 = Graveler 1F9 = Golem 1FA = Ponyta 1FB = Rapidash 1FC = Slowpoke 1FD = Slowbro 1FE = Magnemite 1FF = Magneton 200 = Farfetch'd 201 = Doduo 202 = Dotrio 203 = Seel 204 = Dewgong 205 = Grimer 206 = Muk 207 = Shellder 208 = Cloyster 209 = Ghastly 20A = Haunter 20B = Gengar 20C = Onix 20D = Drowzee 20E = Hypno 20F = Krabby 210 = Kingler 211 = Voltorb 212 = Electrode 213 = Exeggcute 214 = Exeggutor 215 = Cubone 216 = Marowak 217 = Hitmonlee 218 = Hitmonchan 219 = Lickitung 21A = Koffing 21B = Weezing 21C = Rhyhorn 21D = Rhydon 21E = Chansey 21F = Tangela 220 = Kangaskhan 221 = Horsea 222 = Seadra 223 = Goldeen 224 = Seaking 225 = Staryu 226 = Starmie 227 = Mr. Mime 228 = Scyther 229 = Jynx 22A = Electabuzz 22B = Magmar 22C = Pinsir 22D = Tauros 22E = Magikarp 22F = Gyarados 230 = Lapras 231 = Ditto 232 = Eevee 233 = Vaporeon 234 = Jolteon 235 = Flareon 236 = Porygon 237 = Omanyte 238 = Omastar 239 = Kabuto 23A = Kabutops 23B = Aerodactyl 23C = Snorlax 23D = Articuno 23E = Zapdos 23F = Moltres 240 = Dratini 241 = Dragonair 242 = Dragonite 243 = Mewtwo 244 = Mew FREEZE freezes the game when you use it. PPRE can read only Dec numbers, but these are Hex numbers. So open up Calculator, and go to the Programmer Mode for Windows 7. I don't know what to press for the other software so you have to figure out yourself. Go to Hex and type in the number for the sprite. Click on Dec next to get the Dec number. Write this in PPRE.
-
In spoiler for convience
-
When you add new trainers to fight against, there's usually no text associated with them while fighting. The solution is found on narc a/0/5/7. The file itself, without the header, is 6868 bytes long. Each reference is 4 bytes long. 6868 / 4 = 1717 references. Each of these references points to its corresponding message on text file 728 from narc a/0/2/7. To add a new message on text file 728, use Spiky's DS Map Editor. Format is TT TT MM PP TT TT is the Trainer slot number (little endian, as always). MM is the condition for the text to display. PP is the padding (always 00). Conditions for the message to display (in hex): Single Battle: 00 Trainer text upon noticing you or if you talk to him/her (overworld) 01 Trainer text if you defeat him/her (fight) 02 Trainer text after you defeated him/her (overworld) 0F Trainer text if he sends in his/her last conscious Pokémon (fight) 10 Trainer text if his/her last conscious Pokémon is on critical health (fight) 14 Trainer text if you lose or draw (fight) Double Battle: 03 First trainer text upon noticing you or if you talk to him/her (overworld) 04 First trainer text if you defeat him/her (fight) 05 First trainer text after you defeated him/her (overworld) 06 First trainer text if you only have 1 conscious Pokémon before engaging the fight (overworld) 07 Second trainer text upon noticing you or if you talk to him/her (overworld) 08 Second trainer text if you defeat him/her (fight) 09 Second trainer text after you defeated him/her (overworld) 0A Second trainer text if you only have 1 conscious Pokémon before engaging the fight (overworld) I seem to run into some problems though when appointing new Trainers: _I only got condition 01 to work so far; _0F, 10 and 14 just don't trigger at all, so there must be something else still… To do: Test the rest.
-
Introduction: Scripting is what coordinates and executes in-game events to create a story for the player. Gen III hacks have been able to tell new stories with custom scripts written from scratch; future hacks in more current generations are key for good hacks. This thread is to provide information in regards to how to script, what script commands do, and some example scripts. I'll try to go more in depth than pichu2001 did in his basic tutorial thread; if you are just starting off scripting, you should definitely read his thread first. Starting Information: First you need to extract the Script .narc with NitroExplorer, and unpack it into the individual files with editor.exe (kiwi.ds). Program & Lua starter kit: download here The location of the scripts is /a/0/5/6 There is currently no XSE equivalent of symbolic scripting for B2W2. We're doing this with hex. So have a hex editor ready (HxD or Hex Workshop), and get PPNFR to replace the individual scripts you edit. How do you know what script is used where? You currently need to use a Lua script while emulating. The script depicted below is in the starter kit. At the bottom right corner of the touch-screen, it tells you which Script is being used. Correlate this with the file numbers you extracted from the narc. Script Structure: As previously described by pichu2001 , the script contains two parts. The pointers and the scripts that are pointed to. Pointers are 4 bytes long (32 bits); the first script in this example image points to 00 00 00 38, which is equivalent to 00000038 = 0x38. 0x38 bytes after this pointer is the start of script 1. Use this formula to find the script's location in the file: Current Read Offset + Pointer Value = Script Offset In this example image, 0x04+0x38 = 0x3C. The first script is located at 0x3C... unfortunately it starts off reading as "End", so the script ends there. Try finding the offset of Script 2; you should get 0x3E, which just so happens to start right after Script 1 ends. To tell the game to stop reading pointers, a 16 byte "STOP" = 13 FD is used (0xFD13). After the STOP, there are no more pointers and the raw script command data starts. Pointers are an important part of the file; if you insert anything between existing data, the pointers will point to improper locations. I'll cover this later. Hello World: Interpreting Existing Scripts Knowing how to script requires you to observe how commands are normally used by others. I'll show you an example script that has an NPC says a text line and ends the script when dismissed. Above is the example script file. As you can see, it contains one script, which starts at 0x06. [color="purple"]02 00 00 00[/color] [u][i]13 FD[/i][/u] [color="blue"]2E 00 A6 00 47 05 74 00 3D 00 00 04 0A 00 00 00 00 00 32 00 3F 00 30 00 2F 00 02 00 00 00[/color] First we must separate out our script data. Remove everything before the start of our script (everything before 0x06) [color="blue"]2E 00 A6 00[/color] [color="green"]47 05[/color] [color="blue"]74 00 3D 00[/color] [color="green"]00 04 0A 00 00 00 00 00[/color] [color="blue"]32 00 3F 00 30 00 2F 00 02 00[/color] 00 00 Looks decent, let's make this more easily to see: [color="blue"]2E 00[/color] -- [color="red"]LockAll[/color] [color="blue"]A6 00[/color] [color="green"]47 05[/color] -- [color="red"]PlaySound Clink[/color] [color="blue"]74 00[/color] -- [color="red"]FacePlayer[/color] [color="blue"]3D 00[/color] [color="green"]00 04 0A 00 00 00 00 00[/color] -- [color="red"]Message2, text line 0xA, default settings[/color] [color="blue"]32 00[/color] -- [color="red"]WaitKeypress[/color] [color="blue"]3F 00[/color] -- [color="red"]CloseMessage2[/color] [color="blue"]30 00[/color] -- [color="red"]WaitDelay[/color] [color="blue"]2F 00[/color] -- [color="red"]UnlockAll[/color] [color="blue"]02 00[/color] -- [color="red"]End[/color] 00 00 -- Padding to make the file's size divisible by 0x4 This is gibberish to the untrained eye, so I'll explain what each line does in 'English'. [color="red"]LockAll[/color] [color="blue"]0x002E[/color] -- Stop all movements of NPCs and Player. LOCK EVERYTHING. [color="red"]PlaySound Clink[/color] [color="blue"]0x00A6[/color] [color="green"]0x0547[/color] -- Play a sound, sound number 0x0547 - "clink" [color="red"]FacePlayer[/color] [color="blue"]0x0074[/color] -- Make the NPC that was interacted with face the player [color="red"]Message2[/color] [color="blue"]0x003D[/color] -- Pops up a speech bubble from the interacted with NPC [color="green"]0x0400[/color] -- Tells the game to use the current text file [color="green"]0x000A[/color] -- Tells the game to use text line 0xA [color="green"]0x0000[/color] -- Tells the game to place the bubble away from interaction [color="green"]0x0000[/color] -- Tells the game to use the default speech bubble [color="red"]WaitKeypress[/color] [color="blue"]0x0032[/color] -- Wait until a button is pressed before proceeding [color="red"]CloseMessage2[/color] [color="blue"]0x003F[/color] -- Close the popped up speech bubble [color="red"]WaitDelay[/color] [color="blue"]0x0030[/color] -- Waits a frame; cools down the game [color="red"]UnlockAll[/color] [color="blue"]0x002F[/color] -- Allow all NPCs and player to move [color="red"]End[/color] [color="blue"]0x0002[/color] -- Ends the script; read no further! Pretty easy to interpret when you know what each command is... Value Storage: Flags, Containers (const) and Variables The game likes to keep track of what has happened in game, and your choices that you have made. If you get an item from an NPC, the game sets a flag so that the NPC doesn't give it out again. The game also sets flags to prevent NPCs from spawning (so that progress based NPCs appear/disappear) [*]If you choose a certain starter, the game sets a Const container to know what Rival teams to face you against. Constants are stored in the save file along with flags. [*]Variables are temporary values that are used to contain values for a short time. Variables do the majority of the work in scripts. They are defined by some command, then later used as dynamic parameters. Essentially symbolic math. Variables are not saved in the save file; however if they are not cleared/set properly their values can persist into other custom scripts. When you are done with them, clear them! Conclusion: Part 1 This introduction to scripting is just touching the surface on what you can do with B2W2 scripting. With over 800 commands at your disposal (more than 3x that of Gen III), there's so much more you can do!
-
So I came across a thread on the Glitch City forums involving what happens when a Pokemon with an invalid species index gets hacked into the game. And, from what I've seen so far, it produces some pretty interesting results: Pokemon in a box that have invalid species indexes (0x323 - 0x340) So, for any of you that are scratching their heads at what's going on, allow me to shed some light on it. Programmed into the game is a list of Pokemon species with their associated index number to reference them easier. The list in Sun/Moon starts at hexadecimal value 0x1 (Bulbasaur), and ends at value 0x322 (Marshadow). Pokemon that have an index value outside of this range will actually still appear in the game, although they are very glitchy. As you can see in the image above, some of them have an egg sprite when in the PC, and others get stuck with the loading symbol, because the game doesn't know how to process them. There is one I found (index 0x323) that has the battle model of an egg, "Egg" as its species name, and an egg sprite when put into the box. However, rather than being an egg that hatches, it has stats, a nature, an ability, attacks, et cetera, so it can technically go into battle*. It's things like this that I find make this world of Gen VII glitch Pokemon interesting. * Actually, the game crashes when it's sent or switched into battle (which may or may not be possible to fix via a ROM patch), but you get the gist. So what can and can't I do with these Glitched Pokemon? Alright, so there are obviously things that you can't do with these Pokemon, and I'll try to outline them as much as I can. If I'm missing or forgetting something, let me know. You CAN: Manage these Pokemon in your PC boxes and your party (although it has been reported to crash the game at higher indexes) View the summary and quick details if in the PC (same as above) Use items on them (including Rare Candies) View them in Pokemon Refresh Put them in Poke Bank (with a chance of getting banned) Not much else, but a lot of things are untested, so I'll put them in a separate list below. You CAN'T: Battle with these Pokemon (crashes) Go online using the Pokemon (Wonder Trade, GTS, etc.) Tell me if you find anything else! Untested: Putting these Pokemon into the day-care Infrared / Local trading Other things I haven't thought of yet. Okay, cool, so how do I obtain such Pokemon? Since PkHex limits the species indexes to only valid ones, we will need to use a modded version that allows us to create invalid Pokemon. I'm not sure if it's against the rules to put a direct link to this program, so I'll put a link to the Glitch City thread that has it: http://forums.glitchcity.info/index.php?topic=7730.0 (Created by Wack0. Scroll down to find the post with the Google Sites mirror, since the original host is dead). Everything is the same, despite it being an old build, except in the species and attack selectors, you can choose every single possible index number, all the way up to 0xFFFF. We can select one, and place the resulting Pokemon into a slot in our save's box. Import the save using your preferred save manager, and that's all there is to it! KEEP IN MIND: This modded version of PkHex has to load and sort through 66,338 entries in the species drop-down (0x0 - 0xFFFF plus every pokemon species), and even more in the attack drop-downs. As such, this version is EXTREMELY laggy for all computers. I might create a new program to circumvent this, but in the meantime, this is all we have. I'd suggest not even going into the attacks tab and leave it as the default moveset, just because it takes so long to load. Let me know what you think of this concept! Thank you for reading, and have a nice day!
-
Hi. I decided to make this because i haven't seen any scripts listed for SDSME, they are all for PPRE. (Ctrl+F is your friend) Basic commands: Miscellaneous commands: Movements: (Movement 0x(ID) - Movement is the type of movement, ID is the number of times the movement is used. Overworld ID'S (Credit to Drayano) Pokemon selection screen (still needs some working on): I will be updating this whenever i find new scripts so check back often! If you have any questions or comments feel free to ask. Use this site for Dec to Hex or Hex to Dec conversion: http://www.binaryhexconverter.com/hex-to-decimal-converter
-
I am proud to present you the Gen VI mini icons (as per their ORAS incarnation) to use for NDS Pokémon games. How to use: 1°) Download the file Poké-icons.zip at the end of this post and extract its contents. It contains 5 icons files to use with the corresponding games, as well as a folder full of Pokémon icons in PNG format. 2°) Open your NDS Pokémon ROM with CrystalTile2. 3°) Click the NDS icon or Ctrl+N to open the file browser. 4°) Here is where the icons are located in each game: Diamond & Pearl: poketool/icongra/poke_icon.narc Platinum: poketool/icongra/pl_poke_icon.narc HeartGold & SoulSilver: a/0/2/0 Black & White: a/0/0/7 Black 2 & White 2: a/0/0/7 5°) Right-click on the corresponding narc and click Import to update it with the corresponding file for the game: Diamond & Pearl: Gen 4 (1-DP) Platinum: Gen 4 (2-Pt) HeartGold & SoulSilver: Gen 4 (3-HGSS) Black & White: Gen 5 (1-BW) Black 2 & White 2: Gen 5 (2-B2W2) 6°) Now Right-click on arm9.bin (located at the beginning of the file browser) and click Extract, unless you're using a Diamond, Pearl or Platinum ROM in which case you can click Export since the arm9 in those 3 games are not compressed. 7°) Open the extracted arm9 with a hex editor. 8°) Search for the following string: Gen 4: 00 01 01 01 00 00 00 00 02 02 01 01 00 01 02 02 Gen 5: 00 11 11 11 00 00 00 00 22 22 11 11 00 11 22 22 The hex editor should return 1 result only. The format for Gen 5 is slightly different, this is because Gen 5 icons have 2 files per Pokémon, one icon for the male and one for the female. The leftmost nybble is the palette for the female, while the rightmost nybble is the palette for the male. Usually the female-icon is an empty file, except for Unfezant, Frillish and Jellicent. 9°) Now that you have located the offset of the palettes, copy-paste this: Gen 4: [color="#000000"]00 01 01 01 00 00 00 00 02 02 01 01 00 01 02 02 00 00 00 02 01 00 00 02 02 02 00 02 02 00 00 00 02 02 02 00 00 02 01 00 00 02 02 01 00 00 00 00 00 02 02 02 01 01 01 00 01 01 00 00 00 00 00 02 02 02 00 02 00 01 01 01 00 00 00 00 02 00 00 01 01 00 00 01 02 02 02 02 02 02 00 00 02 02 02 02 02 01 00 00 00 00 00 01 01 01 02 02 01 02 02 00 01 00 00 02 00 00 00 00 02 02 00 01 02 01 00 02 02 00 00 00 02 02 00 00 00 00 00 00 01 02 02 02 00 00 00 00 00 00 02 00 01 01 01 00 00 00 00 00 00 02 02 02 02 00 00 01 00 02 00 00 01 00 01 00 00 01 01 00 00 00 01 00 00 01 01 01 01 00 02 01 01 01 00 00 02 02 00 01 00 00 00 02 00 02 00 02 01 00 02 00 00 01 00 00 00 02 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 02 01 02 02 01 01 01 00 01 02 02 02 01 01 01 00 01 01 01 01 01 00 00 00 00 00 00 02 02 02 02 00 02 00 02 01 00 01 01 01 01 01 00 00 00 00 01 01 01 00 00 01 01 02 02 02 01 01 01 01 02 02 02 02 00 00 00 02 02 02 02 02 02 00 00 01 00 00 00 00 02 00 01 02 00 00 02 00 01 00 00 00 02 01 00 01 01 01 01 00 00 00 02 01 00 00 00 00 00 01 00 00 01 00 00 02 02 00 01 00 00 00 01 01 00 00 00 02 00 00 00 00 00 00 00 01 00 00 02 00 00 00 00 02 00 00 00 00 02 00 01 00 00 01 01 01 01 00 02 00 00 00 00 00 00 02 02 01 01 00 00 00 01 00 00 00 01 01 01 01 00 00 00 00 00 00 01 00 00 00 02 02 02 02 02 02 00 00 02 00 02 02 00 00 01 00 00 00 01 00 00 00 02 00 00 01 01 00 02 00 00 01 00 00 00 01 01 00 00 01 00 00 01 00 00 01 01 00 00 02 00 01 00 02 02 00 00 00 00 00 02 00 00 00 00 00 00 00 01 01 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00[/color] [color="#FF0000"]00 01 00 00 00 00 00[/color] [color="#008000"]00 00 00 01[/color] [color="#000000"]For DP, don't copy the red nor the green part at the end.[/color] [color="#FF0000"]For Pt, don't copy the green part at the end.[/color] [color="#008000"]For HGSS, copy all.[/color] BW: 00 11 11 11 00 00 00 00 22 22 11 11 00 11 22 22 00 00 00 22 11 00 00 22 22 22 00 22 22 00 00 00 22 22 22 00 00 22 11 00 00 22 22 11 00 00 00 00 00 22 22 22 11 11 11 00 11 11 00 00 00 00 00 22 22 22 00 22 00 11 11 11 00 00 00 00 22 00 00 11 11 00 00 11 22 22 22 22 22 22 00 00 22 22 22 22 22 11 00 00 00 00 00 11 11 11 22 22 11 22 22 00 11 00 00 22 00 00 00 00 22 22 00 11 22 11 00 22 22 00 00 00 22 22 00 00 00 00 00 00 11 22 22 22 00 00 00 00 00 00 22 00 11 11 11 00 00 00 00 00 00 22 22 22 22 00 00 11 00 22 00 00 11 00 11 00 00 11 11 00 00 00 11 00 00 11 11 11 11 00 22 11 11 11 00 00 22 22 00 11 00 00 00 22 00 22 00 22 11 00 22 00 00 11 00 00 00 22 00 00 22 22 00 00 00 00 00 00 00 00 00 00 00 00 22 11 22 22 11 11 11 00 11 22 22 22 11 11 11 00 11 11 11 11 11 00 00 00 00 00 00 22 22 22 22 00 22 00 22 11 00 11 11 11 11 11 00 00 00 00 11 11 11 00 00 11 11 22 22 22 11 11 11 11 22 22 22 22 00 00 00 22 22 22 22 22 22 00 00 11 00 00 00 00 22 00 11 22 00 00 22 00 11 00 00 00 22 11 00 11 11 11 11 00 00 00 22 11 00 00 00 00 00 11 00 00 11 00 00 22 22 00 11 00 00 00 11 11 00 00 00 22 00 00 00 00 00 00 00 11 00 00 22 00 00 00 00 22 00 00 00 00 22 00 11 00 00 11 11 11 11 00 22 00 00 00 00 00 00 22 22 11 11 00 00 00 11 00 00 00 11 11 11 11 00 00 00 00 00 00 11 00 00 00 22 22 22 22 22 22 00 00 22 00 22 22 00 00 11 00 00 00 11 00 00 00 22 00 00 11 11 00 22 00 00 11 00 00 00 11 11 00 00 11 00 00 11 00 00 11 11 00 00 22 00 11 00 22 22 00 00 00 00 00 22 00 00 00 00 00 00 00 11 11 00 11 11 11 00 00 00 00 00 00 22 22 22 22 22 00 00 11 11 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 11 11 22 00 00 00 11 00 11 11 11 11 22 00 11 11 11 11 00 11 11 00 00 00 11 00 22 11 00 00 00 00 00 00 00 00 11 11 00 00 00 00 22 22 22 11 11 11 00 00 00 00 00 11 11 00 00 00 11 00 00 00 00 00 22 11 11 00 00 00 00 00 00 00 11 22 22 22 11 11 22 00 00 00 11 11 22 00 22 00 00 00 00 00 22 00 00 11 11 22 00 22 22 22 00 00 00 22 11 11 00 00 00 00 00 00 11 22 11 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 11 00 11 00 00 00 00 00 00 00 00 11 00 00 11 00 22 11 11 11 00 22 22 22 22 B2W2: 00 11 11 11 00 00 00 00 22 22 11 11 00 11 22 22 00 00 00 22 11 00 00 22 22 22 00 22 22 00 00 00 22 22 22 00 00 22 11 00 00 22 22 11 00 00 00 00 00 22 22 22 11 11 11 00 11 11 00 00 00 00 00 22 22 22 00 22 00 11 11 11 00 00 00 00 22 00 00 11 11 00 00 11 22 22 22 22 22 22 00 00 22 22 22 22 22 11 00 00 00 00 00 11 11 11 22 22 11 22 22 00 11 00 00 22 00 00 00 00 22 22 00 11 22 11 00 22 22 00 00 00 22 22 00 00 00 00 00 00 11 22 22 22 00 00 00 00 00 00 22 00 11 11 11 00 00 00 00 00 00 22 22 22 22 00 00 11 00 22 00 00 11 00 11 00 00 11 11 00 00 00 11 00 00 11 11 11 11 00 22 11 11 11 00 00 22 22 00 11 00 00 00 22 00 22 00 22 11 00 22 00 00 11 00 00 00 22 00 00 22 22 00 00 00 00 00 00 00 00 00 00 00 00 22 11 22 22 11 11 11 00 11 22 22 22 11 11 11 00 11 11 11 11 11 00 00 00 00 00 00 22 22 22 22 00 22 00 22 11 00 11 11 11 11 11 00 00 00 00 11 11 11 00 00 11 11 22 22 22 11 11 11 11 22 22 22 22 00 00 00 22 22 22 22 22 22 00 00 11 00 00 00 00 22 00 11 22 00 00 22 00 11 00 00 00 22 11 00 11 11 11 11 00 00 00 22 11 00 00 00 00 00 11 00 00 11 00 00 22 22 00 11 00 00 00 11 11 00 00 00 22 00 00 00 00 00 00 00 11 00 00 22 00 00 00 00 22 00 00 00 00 22 00 11 00 00 11 11 11 11 00 22 00 00 00 00 00 00 22 22 11 11 00 00 00 11 00 00 00 11 11 11 11 00 00 00 00 00 00 11 00 00 00 22 22 22 22 22 22 00 00 22 00 22 22 00 00 11 00 00 00 11 00 00 00 22 00 00 11 11 00 22 00 00 11 00 00 00 11 11 00 00 11 00 00 11 00 00 11 11 00 00 22 00 11 00 22 22 00 00 00 00 00 22 00 00 00 00 00 00 00 11 11 00 11 11 11 00 00 00 00 00 00 22 22 22 22 22 00 00 11 11 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 11 11 22 00 00 00 11 00 11 11 11 11 22 00 11 11 11 11 00 11 11 00 00 00 11 00 22 11 00 00 00 00 00 00 00 00 11 11 00 00 00 00 22 22 22 11 11 11 00 00 00 00 00 11 11 00 00 00 11 00 00 00 00 00 22 11 11 00 00 00 00 00 00 00 11 22 22 22 11 11 22 00 00 00 11 11 22 00 22 00 00 00 00 00 22 00 00 11 11 22 00 22 22 22 00 00 00 22 11 11 00 00 00 00 00 00 11 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 11 00 11 00 00 00 00 00 00 00 00 11 00 00 11 00 22 11 11 11 11 00 00 00 00 00 00 22 22 22 22 10°) Save and close the hex editor. 11°) Now you can re-insert the arm9 in the ROM with CrystalTile2 by right-clicking Compression (if your ROM doesn't load then try Import instead). This is the end result: NDS Pokémon icons have to fit a rectangle of 32 by 24 pixels, so I did my best to port them within that limitation. Credits: _Zhorken for ripping the ORAS Pokémon icons. _MeroMero (myself) for porting the icons to use with older gens. _pleoNeX for Tinke. _the angel-team for CrystalTile2. Now enjoy the updated icons Poké-icons.zip
-
Video courtesy of Wooggle Smith, showcasing the Facade glitch : [video=youtube;frLwdt3bSW4] Every time Facade is used, the sprite of the Pokémon who used the move will go up (or down for some Pokémon) by 1 pixel. To fix that graphical oversight: _Go to narc wazaeffect/we.arc (DPPt) or a/0/1/0 (HGSS) _Go to file 263 (which is the index number of the move Facade) _Replace all 6 instances of 05 00 05 00 with 04 00 04 00 But that's not all, there's also a glitch with the move Strength which moves the sprite of the Pokémon who used it by 2 pixels to the right. Again to fix this: _Go to narc wazaeffect/we.arc (DPPt) or a/0/1/0 (HGSS) _Go to file 70 (index number of Strength) _Search for the string 0A000000 05000000 16000000 87070000 8BFFFFFF, and replace the 0A000000 with 08000000. And that's it, Pokémon sprites won't erroneously shift up/down/right anymore after applying those 2 simple mods.
-
Hi everyone, While rounding up my rom hack, I am trying to implement some new events / wild Pokémon that are battleable on a current day (or time). Of course, this is already in the game (think of Musharna, which is only battleable in Dreamyard on Fridays). Now, I have found two important parts in the script for Dreamyard's Musharna: The first part contains the usual script handler for Musharna, with the battle handler, which also sets flags after the battle The second part, which is a totally different script, first of all sets the flag of Musharna (by setting the flag, Musharna will NOT appear) and thereafter, checks if the conditions are true (i.e., if it is indeed Friday). If the condition is true, the flag of Musharna is cleared, such that it will appear: 28 00 20 80 00 00 Create internal variable 20 80 and set value to 00 00 CF 00 20 80 Store current day in variable 20 80 09 00 20 80 Take variable 20 80 08 00 05 00 If equal to 5 (5 = Friday) 11 00 01 00 Condition equal 10 00 60 09 Check flag 60 09 08 00 01 00 If equal to 1 11 00 01 00 Condition equal 10 00 BC 0A Check flag BC 0A 08 00 00 00 If equal to 0 (unset) 11 00 01 00 Condition equal 11 00 07 00 ? 11 00 07 00 ? 1F 00 FF 0A 00 00 00 Jump A steps to (*) 24 00 EC 02 Clear flag EC 02 (makes Musharna appear) 1E 00 04 00 00 00 Jump 4 steps to (&) 23 00 EC 02 (*) Set flag EC 02 (makes Musharna disappear) 28 00 20 80 00 00 (&) Set internal variable 20 80 to value 00 00 02 00 End script This part (as showed in the code above) is very interesting and it appears in the Dreamyard's map_event_data file as the first script. It also lacks "2E 00 Start script" and "02 00 End script", so it rather seems to be a global check. There is one main problem: I do not know how this script is called. My idea is that it somehow is set as a global script that is ran whenever the player enters the Dreamyard basement - but I'm not sure! The script is quite straightforward, but for this to work on other maps, I need to know how it is activated. Any help is appreciated, thanks a lot! NB: Also, the flag BC 0A that is checked for during the script is set after Musharna has been defeated, such that Musharna is not reappearing on Fridays if it has already been battled. I also do not know when and how this flag BC 0A is unset. If anyone knows more about this part specifically, please let me know! As a workaround, for new events I'm thinking about creating a custom flag that is unset everytime the Champion is beaten.
-
This is sort of half curiosity, half something I want to do but regardless I want to find out I've been wondering how to go about editing Wild Pokemon in Black and White seeing as there's no tool out for it yet that I'm aware of. Unfortunately I am completely clueless about what .narc file it is or anything like that... The only info I can find is a post on PokéCommunity that says the location of the data on White, but I've tried looking there with a hex editor and I can't find anything. Granted, my hex knowledge is hardly the best so I might be looking incorrectly. Any help/further knowledge would be nice, if possible. Never mind, got it!
-
I have began Updating the Graphics for Fire Red and Leaf Green and have them ready to release now there will be 2 patch types with the patcher included in the file. Lunar IPS Tsukuyomi I will continue to update the game graphics and hope everyone enjoys them
-
I think the title pretty much says it all here. There's at least a couple unofficial logos that have made it into translations but I haven't seen the official one yet. Yeah some of them are probably better than the official ones but I'll leave that up to you... Download replacement NARC Replace the /a/0/4/6 file with that one; I recommend using Nitro Explorer for the job.
-
This was going to be a longer thing about what's wrong with "hacking" here and with the Pokemon community in general. I'm not going to bother since it would all fall on deaf ears. I'll just copy and paste parts of the end bit from what I wrote: So.. I'm done. The link at the bottom is to all of my stuff- databases, notes, the spreadsheet, programs, etc. The IDBs are also in text format(.s is plain text; don't use notepad though- they're too big). I'm sure more than a few people will want some of the lists and .bss sections from the different binaries in them- especially the script commands and such ... That said, I'm not exactly leaving completely. I will still be working on PokeGen occasionally and the development "library" for W2. A few of those headers are done. Expect something like the main boost lib where almost the entire thing is headers and it will come with instructions for building code and a list of what to install(DevkitARM and such). (You're going to want IDA 6.1.110315 to view the IDB files. That's where the most useful stuff is. arm9-white2_decompressed_U.idb is the main one.) http://hack.thundaga.com/hacking_stuff.7z
-
Edit: Head over to the ROM Editing Directory to find your files even faster. This is a Work in progress. Please check back constantly for new information. About This post synthesizes common questions and information from around the Forum in an attempt to create a place where new hackers can easily find solutions to simple problems without the need to create repetitive threads about the problem.*So here we go: General Information Tools for BW/B2W2 Rom Editing Answers: "I need tools!" If Tools Don't Work… Answers: "The tool doesn't work!" or "The tool gives me errors!" NARC Locations: Answers: "Where is the NARC that holds [insert whatever you need] located!" Hex Editing Answers: "Where are tools for […]!" or "[Whatever tool] doesn't work!"
-
Yeah, didn't see a topic for this, so I figured, "Why not start one?" :B EDIT: Narc is a/0/2/1. [u]Fire Punch[/u] [color="#cc0000"]09[/color] [color="#FF4500"]04[/color] [color="#FFA500"]01[/color] [color="#CCCC00"]4b[/color] [color="#a5d800"]64[/color] [color="#00CC00"]0f[/color] [color="#00CCCC"]00 00[/color] [color="#00CCFF"]04[/color] [color="blue"]00[/color] [color="#6600FF"]0a 01[/color] [color="#9933FF"]00 00[/color] [color="#FF00FF"]00[/color] [color="#FF707B"]00[/color] [color="#999999"]04 00 00 00 00 00 00 00 00 00 00 00 00 00 53 53[/color] c9 00 00 00 [u]Blaze Kick[/u] [color="#cc0000"]09[/color] [color="#FF4500"]04[/color] [color="#FFA500"]01[/color] [color="#CCCC00"]55[/color] [color="#a5d800"]5a[/color] [color="#00CC00"]0a[/color] [color="#00CCCC"]00 00[/color] [color="#00CCFF"]04[/color] [color="blue"]00[/color] [color="#6600FF"]0a 01[/color] [color="#9933FF"]00 00[/color] [color="#FF00FF"]01[/color] [color="#FF707B"]00[/color] [color="#999999"]c8 00 00 00 00 00 00 00 00 00 00 00 00 00 53 53[/color] 49 00 00 00 [u]Ice Punch[/u] [color="#cc0000"]0e[/color] [color="#FF4500"]04[/color] [color="#FFA500"]01[/color] [color="#CCCC00"]4b[/color] [color="#a5d800"]64[/color] [color="#00CC00"]0f[/color] [color="#00cccc"]00 00[/color] [color="#00CCFF"]03[/color] [color="blue"]00[/color] [color="#6600FF"]0a 01[/color] [color="#9933FF"]00 00[/color] [color="#FF00FF"]00[/color] [color="#FF707B"]00[/color] [color="#999999"]05 00 00 00 00 00 00 00 00 00 00 00 00 00 53 53[/color] c9 00 00 00 [u]ThunderPunch[/u] [color="#cc0000"]0c[/color] [color="#FF4500"]04[/color] [color="#FFA500"]01[/color] [color="#CCCC00"]4b[/color] [color="#a5d800"]64[/color] [color="#00CC00"]0f[/color] [color="#00cccc"]00 00[/color] [color="#00CCFF"]01[/color] [color="blue"]00[/color] [color="#6600FF"]0a 01[/color] [color="#9933FF"]00 00[/color] [color="#FF00FF"]00[/color] [color="#FF707B"]00[/color] [color="#999999"]06 00 00 00 00 00 00 00 00 00 00 00 00 00 53 53[/color] c9 00 00 00 [u]Glare[/u] [color="#cc0000"]00[/color] [color="#FF4500"]01[/color] [color="#FFA500"]00[/color] [color="#CCCC00"]00[/color] [color="#a5d800"]5a[/color] [color="#00CC00"]1e[/color] [color="#00cccc"]01 00[/color] [color="#00CCFF"]01[/color] [color="blue"]00[/color] [color="#6600FF"]00 01[/color] [color="#9933FF"]00 00[/color] [color="#FF00FF"]00[/color] [color="#FF707B"]00[/color] [color="#999999"]43 00 00 00 00 00 00 00 00 00 00 00 00 00 53 53[/color] 58 00 00 00 Byte 00 (09): Type Byte 01 (04): Mechanics flags? I don't really know... (involves attacks making contact and affected by Protect/Detect/Quick Guard/Wide Guard and status moves being reflected by Magic Coat/Bounce) Byte 02 (01): Damage Category Byte 03 (4b): Base Power (should be obvious) Byte 04 (64): Base Accuracy (again, obvious; although setting it to 65/101 will make the move never miss, like Swift) Byte 05 (0f): Base PP Bytes 06 & 07 (00 00): Unknown. Byte 08 (04): Secondary Effect 1 - Status Byte 09 (00): Unknown; maybe linked to 08? Bytes 0a & 0b(0a 01): Secondary Effect 1 - Percentage (should be obvious) Bytes 0c & 0d(00 00) Unknown Byte 0e (00): Chance for critical hits Byte 0e (00) Unknown. Bytes 0f-1e (04 00 00 00 00 00 00 00 00 00 00 00 00 00 53 53): No clue; though Byte 20 seems to be c9 for every move boosted by Iron Fist, and 49 and 58 for other moves. Bytes 20 & 21 (c9 00): More mechanics flags. Bytes 22 & 23 (00 00): Unknown, possibly padding. So yeah, let's experiment with move modification, shall we?
-
Hi, people. I have a question about Pokémon Black & White script editing. I know that: a/1/2/5 contains the overworld data. a/0/5/7 contains the scripts. My question is: how is the overworld data calling up scripts from the script narc? I know that overworlds have hex data for ''script'' added, but I don't know how that corresponds with the data in the script narc (a/0/5/7). I know for example that the overworld data is grouped per map. So all data of Route 2 is together in one part of the narc. For example, the script hex data of the Lass on Route 2 is BA 0B. Which part of the script narc does that relate with? How is the script data arranged?