-
Posts
7270 -
Joined
-
Last visited
-
Days Won
362
Content Type
Profiles
Pokédex
Portal
Technical Documentation
Pages
Tutorials
Forums
Events
Downloads
Gallery
Blogs
Everything posted by Kaphotics
-
research B2W2 General ROM Info
Kaphotics replied to Kaphotics's topic in ROM - NDS Research and Development
Trainers PKMs note: trainer names are romanized For PWT, from a while ago: http://dl.dropbox.com/u/12206225/pwt-main-opponents.htm http://dl.dropbox.com/u/12206225/pwt-bonus-sets.htm http://dl.dropbox.com/u/12206225/pwt-singles.htm http://dl.dropbox.com/u/12206225/pwt-bonus-single.htm note: trainer names were never accurately assigned for these Just if you'd want something to check against. -
guide Pokemon Black: Scripting Lessons(I try...)
Kaphotics replied to pichu2001's topic in ROM - NDS Guides and Other Resources
Set a flag when you give the egg. At the start of the script, do a checkflag to see if the egg is already given. Here's a Randomized Egg script that I wrote which gives a random baby egg, once. http://pastebin.com/raw.php?i=7gvFDa66 Take the happiny egg script for example. It uses two flags; one for checking if the egg has been offered and another that checks to see if it has been given. Happiny egg script is in file 54 for B2W2. === Script 4 === Offset: 118 LockAll Offset: 120 StoreFlag 437 Offset: 124 CompareTo 0 Offset: 128 Condition EQUAL Offset: 132 If FALSE Function 0 (339 ) Offset: 139 PlaySound 1351 Offset: 143 FacePlayer Offset: 145 StoreFlag 436 Offset: 149 CompareTo 1 Offset: 153 Condition EQUAL Offset: 157 If FALSE Function 1 (180 ) Offset: 164 Message2 0 4 4 0 0 = ' This Pokémon Egg was\nfound at the Day Care.\c\nWould you raise it? ' Offset: 174 Jump Function 2 (194 ) === Function0=== Offset: 180 Message2 0 4 3 0 0 = ' Um... Excuse me...\nTrainer?\r\nThis Pokémon Egg was found at the\nDay Care. Would you raise it? ' Offset: 190 SetFlag 436 Offset: 194 YesNoBox 0x8010 Offset: 198 StoreVar 0x8010 Offset: 202 CompareTo 0 Offset: 206 Condition EQUAL Offset: 210 If FALSE Function 3 (319 ) Offset: 217 GiveEgg (0x10F) 0x8010 440 0 Offset: 225 StoreVar 0x8010 Offset: 229 CompareTo 1 Offset: 233 Condition EQUAL Offset: 237 If FALSE Function 4 (299 ) Offset: 244 Message2 0 4 7 0 0 = ' Oh! OK!\r\nPlease take good care of this Egg!\r ' Offset: 254 CloseMessageKeyPress2 Offset: 256 SetFlag 437 Offset: 260 SetVarHero 0 Offset: 263 PlayFanfare 1317 Offset: 267 EventGreyMessage 9 0 = ' [VAR NAME: 1 0] received the Egg! ' Offset: 273 WaitFanfare Offset: 275 CloseAngryMessage Offset: 277 CloseMessageKeyPress2 Offset: 279 Message2 0 4 8 0 0 = ' Apparently, putting Pokémon Eggs next\nto healthy Pokémon is a good thing.\r\nIn other words, walk with the Egg.\r\nYou know, the Day Care is on Route 3.\nThey might be able to tell you more. ' Offset: 289 WaitButton Offset: 291 CloseMessageKeyPress2 Offset: 293 Jump Function 5 (313 ) === Function1=== Offset: 299 Message2 0 4 5 0 0 = ' Um...\r\nYour party is full.\nYou don't have room to hold the Egg. ' Offset: 309 WaitButton Offset: 311 CloseMessageKeyPress2 Offset: 313 Jump Function 6 (333 ) === Function2=== Offset: 319 Message2 0 4 6 0 0 = ' Oh... OK.\nI understand.\r\nIf you change your mind,\nplease come talk to me again. ' Offset: 329 WaitButton Offset: 331 CloseMessageKeyPress2 Offset: 333 Jump Function 7 (359 ) === Function3=== Offset: 339 PlaySound 1351 Offset: 343 FacePlayer Offset: 345 Message2 0 4 8 0 0 = ' Apparently, putting Pokémon Eggs next\nto healthy Pokémon is a good thing.\r\nIn other words, walk with the Egg.\r\nYou know, the Day Care is on Route 3.\nThey might be able to tell you more. ' Offset: 355 WaitButton Offset: 357 CloseMessageKeyPress Offset: 359 WaitMoment Offset: 361 UnlockAll Offset: 363 End -
You just need to paste them in with HxD over the previous team. You need to select the entire pkm field that you are replacing so that no extra data is added... It's been a while so I don't remember. :\
-
It works for me, I was able to edit Colress's data and it came out fine in game. Be sure you have no extra files inside your trdata/trpoke folders. Here's N.
-
nitroexplorer 2b open rom and extract /a/0/0/3 use PPTXT to open 3.narc that you just extracted find text file that the game used, change it, save text and write to narc use nitroexplorer to reinsert 3 back into its place. profit.
-
I'm just using whatever method Kazo had originally, and just improved it with the new list. ComboBox has a way where you can pre-define all the dropdowns with a list of stuff. I kinda like it more than an external .csv as it just makes 1 file. I mentioned to Dray that there's a bunch of single trainers with the 8th bit flagged, so I don't believe that it's a no-teammate aggression flag. Might be a battle mode flag to prevent crits (saw that in BW), meh.
-
Added Form/Gender/Ability editing and removed the "Unknown" for Pokemon. See my above post. Unknown for Trainers determines AI difficulty, the lowest 3 bits determine that while I have no clue what the other bits do. Hugh has bit 5 and many have bit 8 toggled. Edit: vvvvv haha yeah drayano was bitching about that so I reversed them
-
research B2W2 General ROM Info
Kaphotics replied to Kaphotics's topic in ROM - NDS Research and Development
Crossposting from my post at Smogon to here: Pickup Table Overlay 166, at 7E2 there are 2 tables of items. Same % chance per slot compared to BW. For the rare table (the 2 1% items you might get at a given level), it starts off with the first two. For every 10 levels, shift down one row. Similar deal for the common table. Example: Level 1 pickup might get row (0 or 1). Level 11 pickup might get row (1 or 2). Level 21 pickup might get row (2 or 3)... For the common table it's the same deal, except there's 8 possibilities per level. Level 1 gets row (012345678), Level 11 -> row (123456789.....) Reportedly the chances are: C0 C1 C2 C3 C4 C5 C6 C7 C8 | R1 R2 0-29 30-39 40-49 50-59 60-69 70-79 80-89 90-93 94-97 | 98 99 30% 10% 10% 10% 10% 10% 10% 4% 4% | 1% 1% -
So I looked in a decompressed arm9.bin file and I might as well document what we already know in BW -> BW2 data. At 0x8E3C0-0x8E76F, there's the class -> eyecatch table 00 00 5A 04 01 01 5A 04 02 00 5A 04 03 01 5B 04 04 00 5A 04 05 01 5B 04 06 01 64 04 07 00 64 04 08 00 65 04 09 01 65 04 0A 00 5A 04 0B 00 5A 04 0C 00 5A 04 0D 01 5F 04 0E 01 5C 04 0F 00 5C 04 10 01 5C 04 11 00 5A 04 12 01 5F 04 13 01 5A 04 14 00 5A 04 15 01 5A 04 16 00 5A 04 17 01 5A 04 18 00 5D 04 19 01 5D 04 1A 00 65 04 1B 00 64 04 1C 01 64 04 1D 00 64 04 1E 00 63 04 1F 00 5E 04 20 00 63 04 21 00 66 04 22 01 65 04 23 00 61 04 24 01 61 04 25 00 5A 04 26 01 5A 04 27 00 5A 04 28 00 5A 04 29 00 5A 04 2A 01 5B 04 2B 00 65 04 2C 00 65 04 2D 00 64 04 2E 01 62 04 28 00 5A 04 2F 01 5F 04 30 01 5D 04 31 00 5D 04 32 00 61 04 33 00 62 04 34 00 64 04 35 00 5A 04 36 01 5A 04 37 00 5A 04 38 00 5E 04 39 00 65 04 3A 00 63 04 3B 01 63 04 3C 00 65 04 3D 01 65 04 3E 00 5E 04 3F 01 61 04 40 01 5F 04 41 00 65 04 42 00 65 04 43 00 63 04 44 01 63 04 45 00 5D 04 46 01 5D 04 47 00 61 04 48 00 64 04 49 00 64 04 4A 01 66 04 4B 00 66 04 4C 01 5A 04 4D 01 5A 04 4E 00 5A 04 4F 00 5A 04 50 01 5A 04 51 00 5A 04 52 00 65 04 53 00 60 04 54 01 5F 04 55 00 65 04 56 01 66 04 57 00 5A 04 58 00 5A 04 59 00 60 04 5A 01 60 04 47 00 61 04 04 00 5A 04 46 01 5A 04 4A 01 5A 04 4B 00 5A 04 45 00 5D 04 2A 01 5A 04 29 00 5A 04 5B 01 5A 04 28 00 5A 04 5C 00 5A 04 5D 00 5A 04 33 00 62 04 49 00 64 04 23 00 61 04 24 01 61 04 45 00 5D 04 46 01 5D 04 31 00 5D 04 30 01 5D 04 5E 01 5A 04 5F 00 5A 04 60 01 5A 04 61 00 5A 04 62 01 5A 04 63 00 5A 04 64 00 5A 04 65 00 5A 04 66 00 5A 04 67 01 5A 04 68 00 5A 04 69 01 5A 04 6A 01 5A 04 6B 00 5A 04 6C 00 5A 04 6D 00 5A 04 6E 00 5A 04 6F 01 5A 04 70 00 5A 04 71 00 5A 04 72 01 5A 04 73 00 5A 04 74 01 5A 04 75 01 5A 04 76 01 5A 04 77 00 5A 04 78 00 5A 04 79 01 5A 04 7A 00 5A 04 7B 01 5A 04 7C 00 5A 04 7D 01 5A 04 7E 00 5A 04 7F 00 5A 04 80 01 5E 04 11 00 5A 04 11 00 5A 04 12 01 5F 04 12 01 5F 04 18 00 5D 04 18 00 5D 04 19 01 5D 04 19 01 5D 04 57 00 5A 04 57 00 5A 04 31 00 5D 04 31 00 5D 04 30 01 5D 04 30 01 5D 04 45 00 5D 04 45 00 5D 04 46 01 5D 04 46 01 5D 04 5C 00 5A 04 5C 00 5A 04 81 00 5A 04 82 01 5A 04 83 01 5A 04 84 01 5A 04 85 00 5A 04 86 00 5A 04 87 01 5A 04 88 00 5A 04 89 00 5A 04 8A 00 5A 04 8B 00 5A 04 8C 00 5A 04 8D 01 DB 04 8E 00 5A 04 8F 01 5A 04 90 00 5A 04 91 01 5A 04 92 00 5A 04 93 01 5A 04 94 00 5A 04 95 00 67 04 96 01 67 04 97 00 5A 04 98 00 5A 04 99 00 5A 04 9A 00 5A 04 9B 01 5A 04 9C 00 5A 04 94 00 5A 04 49 00 5A 04 61 00 5A 04 9B 01 5A 04 9D 00 5A 04 9E 01 5A 04 9F 00 5A 04 A0 01 5A 04 A1 00 5A 04 A2 01 5A 04 A3 00 5A 04 A4 01 5A 04 A5 00 5A 04 A6 01 5A 04 A7 00 5A 04 A8 01 5A 04 A9 00 5A 04 AA 00 5A 04 AB 00 5A 04 AC 01 5A 04 AD 01 5A 04 AE 00 5A 04 AF 01 5A 04 B0 00 5A 04 B1 00 5A 04 B2 01 5A 04 B3 01 5A 04 B4 00 5A 04 B5 00 5A 04 B6 01 5A 04 B7 00 5A 04 B8 01 5A 04 B9 00 5A 04 32 00 61 04 3F 01 61 04 2E 01 62 04 2B 00 65 04 BA 00 5A 04 20 00 DC 04 BB 00 5A 04 94 00 5A 04 There's 236 classes, and 236 entries. The first byte is trainer battle sprite (set in a071). These are their static images. Second byte is ???? (not gender...) Third&Fourth (one word) is their eyecatch assignment. Now, for trainer music: can't find anything obvious in the arm9, looking in the overlays now. probably in the arm9 in a different format than the eyecatch table
-
We don't know how to edit what trainer classes dictate at the moment. You can do the same method that Mariktus95 posted to re-assign the index numbers to different tracks; however the trainer classes themselves have to be edited to use a different index number so that any adverse effects don't happen. For the record, this association is most likely (again) in the arm9 binary file. It's definitely compressed, but you can see how it works in this thread: http://projectpokemon.org/forums/showthread.php?22308-Pok%E9mon-Black-and-White-Assigning-different-Trainer-Music&p=145183&viewfull=1#post145183 Now that only edited the eyecatch music, but I'd bet that somewhere in the same file there's the association table for Battle Music. edit: see next post
-
Cresselia & Heatran Rebattle Codes: Cresselia: 94000130 FFFB0000 B2000024 00000000 10036CF4 00000000 D2000000 00000000 Heatran 94000130 FFFB0000 B2000024 00000000 10036BF8 00000000 D2000000 00000000 Instructions: Hold select while entering the area.
-
In Gen IV, in game trades have a Pre-Defined PID to ensure that every trade is of the same nature/gender/ability & not shiny. In Gen V, everything is smarter such that it doesn't need a defined PID to define nature.
-
Beta: the pokécheck legality checker for generation 5
Kaphotics replied to xfr's topic in Pokémon Legality
Using the renamer guy iirc. -
Beta: the pokécheck legality checker for generation 5
Kaphotics replied to xfr's topic in Pokémon Legality
Pokemon in question: http://www.pokecheck.org/?p=detail&uid=3079386, user @thelasil Orange color text is a warning for the user to evaluate, because it is not indicative of a hack. Eggs hatched in Gen 4 have trash bytes. Yours is missing them. -
No, it edits every trainer. The game script engine just makes you face another trainer file if you play an expanded team (challenge mode only) opponent. Levels that are programmed with this program are increased/decreased in game depending on the current mode. If you are against Trainer X in Normal Mode, you'll face them at the programmed level. If you face Trainer X on CHALLENGE mode, their levels will be boosted. Etc.
-
Trainer ID and Secret ID are just the same 32 bit number. They don't change and they are exclusive to you.
-
The ends justify the means... Moved around some of the UI to allow for more space for the more descriptive classes. BWTE for Black 2 and White 2 trdata: /a/0/9/1 trpoke: /a/0/9/2 Every Trainer Class (including Gen 1-4) named, with help from Drayano. New Icon by Drayano. If you're wondering about how the game handles Challenge Mode: For extra Pokemon, the game detects what mode you are playing with and will make you face an entirely different trainer file. Levels in game are adjusted (depending on mode) and will be different from what is programmed in these files. If you have added more trainers to your game (you can call for a trainer beyond 813 with your own event scripts!), you can edit them with this expanded version up to 1000 trainers. EDIT: Added Gender/Form/Ability editing. BWTE 2..zip BWTE_2_src..zip
-
Had the source for BWTE and just expanded the Name/Class table it takes from. Since B2W2 has more trainers and different Names -> Trainer #, I just left it without names for class & names for trainers for now. edit: attachment deleted, see later post for the real deal
-
Use PokeGen and copy over the PID; both are displayed in decimal anyways.
-
1) you'd like to make a _legal_ one. it's BACD (restricted to 0-FFFF seeds) for almost all of them; certain "average joe" ones are just normal wild type and mass generated ones are for MYSTRY etc.
-
Not at the moment.
-
Beta: the pokécheck legality checker for generation 5
Kaphotics replied to xfr's topic in Pokémon Legality
Yep. Just a hack. For the record, it's been implemented already. (private pkm but just saying it's been working for a while) Please, don't trust @caldemc for any uploads because they're (almost) always hacked. -
Beta: the Pokécheck VS. Player (battle video parser)
Kaphotics replied to xfr's topic in RAM - 3DS Research & Development
Sorting actions by priority and speed... Get stat(5) on Graveler = 36 Get stat(5) on Excadrill = 308 Get stat(5) on Excadrill = 308 Get stat(5) on Ditto = 47 Get stat(5) on Graveler = 36 Get stat(5) on Ditto = 47 Get stat(5) on Ditto = 47 Get stat(5) on Excadrill = 308 Get stat(5) on Graveler = 36 Get stat(5) on Ditto = 47 Next in speed: Excadrill Next in speed: Ditto Next in speed: Graveler Resorting actions after turn start trigger... Get stat(5) on Excadrill = 308 Get stat(5) on Ditto = 47 Get stat(5) on Excadrill = 308 Get stat(5) on Graveler = 36 Get stat(5) on Ditto = 47 Get stat(5) on Graveler = 36 Affected(10): Ditto Scotty's Excadrill used Aerial Ace on Ditto. Pretty sure it's just because when it transformed it didn't copy the speed stat over to Ditto. No speed tie ever happened :} -
guide Pokemon Black: Scripting Lessons(I try...)
Kaphotics replied to pichu2001's topic in ROM - NDS Guides and Other Resources
I've been using NPRE's source and improving it to read B2W2 script commands and output the script's function. It's now way better than the Lua script I previously posted. http://dl.dropbox.com/u/12206225/NPRE-1226.zip To see scripts, open ROM, navigate to /a/0/5/6, right click and Open As [script (narc)]. Dropdown on the top left to change what script you are viewing. Since NPRE is open source, I included the source that I compiled from. With this and pretty good knowledge of commands, it's possible to make in-game events. [video=youtube;8tBDVstp1hM] (script that is executed, commented). Image is just flashy to not give away the premise of the video, but to whore views on YouTube. note~ overworld and text edits were done, using HxD and the structure I posted at B2W2 General ROM Info && PPTXT.