Jump to content

Search the Community

Showing results for tags 'research'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Pokémon
    • Pokémon (Ultra Sun/Ultra Moon)
    • Pokémon (Sun/Moon)
    • Pokémon (PSMD)
    • Pokémon (EoS)
  • Egg Groups
    • Egg Groups (Ultra Sun/Ultra Moon)
    • Egg Groups (Sun/Moon)
  • Moves
    • Moves (Ultra Sun/Ultra Moon)
    • Moves (Sun/Moon)
    • Moves (PSMD)
    • Moves (EoS)
  • Abilities
    • Abilities (Ultra Sun/Ultra Moon)
    • Abilities (Sun/Moon)
    • Abilities (PSMD)
  • Types
    • Types (Ultra Sun/Ultra Moon)
    • Types (SM)
    • Types (PSMD)
    • Types (EoS)


  • Generation 7
  • Generation 6
  • Generation 5
  • Generation 4
  • Mystery Dungeon 3DS
  • Mystery Dungeon NDS
  • Sprite Index
  • Other


  • Project Pokémon
  • Games
    • Pokémon Ultra Sun and Ultra Moon
    • Pokémon Sun and Moon
    • Pokémon Super Mystery Dungeon


  • Save Editing
    • Managing GB/GBC Saves
    • Managing GBA Saves
    • Managing NDS Saves
    • Managing 3DS Saves
    • Managing Gamecube Saves
    • Managing Wii Saves
    • Managing Switch Saves
    • Using PKHeX
    • Gen 3 Specific Edits
    • Gen 4 Specific Edits
    • Gen 5 Specific Edits
  • ROM Editing
    • Stars' Pokémon Colosseum and XD Hacking Tutorial
    • Editing ROMs with Sky Editor
  • RAM Editing
    • GS ACE: Coin Case
    • GS ACE: TM17
  • Gameplay related support
    • e-reader support


  • ProjectPokemon.org
    • Announcements
    • News Discussion
    • Project Pokémon Feedback
    • Introductions
  • Event Pokémon
    • Event Pokémon News
    • Event Contributions
  • Technical Discussions
    • ROM
    • Saves
    • RAM and Live Edits
    • Hardware
    • General Development
  • Pokémon Discussions
    • Pokémon Games Discussion
    • Pokémon Online Play
    • Pokémon Franchise
    • Pokémon Trivial Games
  • Other
  • Mystery Dungeon Hacking's Discussions
  • The "I Love Cats" Club's Discussions
  • The Cool Kids Corner's Discussions
  • Team Valor's General Discussion
  • Pokemon USUM Breeder's Club's Rules
  • Pokemon USUM Breeder's Club's Post breeding stories & pictures here
  • Pokemon USUM Breeder's Club's Competitive Breeding Requests
  • Pokemon USUM Breeder's Club's Non-Competitive Breeding Requests
  • Pokemon USUM Breeder's Club's Introduce self
  • The PBOE, (Pokémon Brotherhood of Evil)'s Topics
  • Sky Editor's Topics
  • Sky Editor's Questions
  • Hoopa's Café's Topics
  • Super pokemon POWER's Topics


  • Community Calendar
  • Pokémon Event Calendar
  • The "I Love Cats" Club's Events
  • Hoopa's Café's Important Dates
  • Super pokemon POWER's Events


  • Event Gallery
    • Generation 7 (Switch)
    • Generation 7 (3DS)
    • Generation 6
    • Generation 5
    • Dream World
    • C-Gear Skins
    • Pokédex Skins
    • Pokémon Musicals
    • Pokémon World Tournaments
    • Generation 4
    • Generation 3
    • Generation 2
    • Generation 1
  • In-Game Series
    • Generation 7
    • Generation 6
    • Generation 5
    • Generation 4
    • Generation 3
    • Generation 2
    • Generation 1
  • Unreleased/Beta PKM Gallery
  • Tools
  • ROM Hacks
  • Saves
  • PKM Files
  • Misc Tools
  • Mystery Dungeon Hacking's Files
  • Sky Editor's Files
  • Hoopa's Café's Files
  • Super pokemon POWER's Files


There are no results to display.

There are no results to display.

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start




About Me

Friend Code (Nintendo Switch)

Friend Code (3DS)

NNID (Wii U)

Found 48 results

  1. For a while I thought to myself, there should be a ROM hack format that patches individual files in the ROM, instead of the ROM itself. Meanwhile, psy_commando had a similar idea (I'm making a new thread so that one will be exclusively for PMD2). The current discussion for those who haven't read it: I've been working on upgrading Sky Editor to make making ROM hacks like these easier, and before I actually write code for making patches, I think it's time that we ROM hack tool developers discussed and made a standard. Here's my proposition: a "mod pack" zip contains one or more smaller mods and the patching tools. A "mod" zip contains all the data needed for 1 patch. Having various smaller mods allows them to be reused in other packs, and to let users pick which mods to apply to their ROM. For example, maybe in Rutile Ruby or Star Sapphire, what if I hypothetically wanted the increased XP curve, but didn't want any changes to items. I could then apply the "XP Curve" mod, but not the "Item Balance" mod. Here's a more technical proposition: File structure of the Mod zip (probably called .ndsmod or .3dsmod): /Mod.json Contains information about the mod like Name, Author, Target ROM, etc. Lists IO operations that need to be done (maybe I want to swap /Data/Sound/BGM/bgm0045.smd and /Data/Sound/BGM/bgm0003.smd or delete the entire /TOP directory) Can optionally list other mods that must be applied before or after this one. (For mods of a mod; patching files that are added by other mods). (Optional) /Patcher.exe Optional patcher in case weird file types are included, or to allow for randomizers. Usage: "patcher.exe [directory]", where directory is the path of the ROM directory (the one containing arm9.bin, arm7.bin, and the Data and Overlay directories). /Files/ Contains certain kinds of patch files in the same directory structure as ndstool extracts them. Ex. /Files/Data/BACK/expback.bgp.xdelta is an xdelta patch for the file at /Data/BACK/expback.bgp Ex. /Files/Data/FONT/kaomado.kao.kaopatch is a special file the patching utility knows how to handle that adds more images inside the file at /Data/FONT/kaomado.kao. The advantage over a binary difference is that multiple mods can independently add images without interfering with each other. Ex. /Files/Data/Back/MyBackground.bgp.file is a brand new file to be added at /Data/Back/MyBackground.bgp Any directories present anywhere in the folder hierarchy in /Files will be added in the appropriate place. File structure of the Mod Pack zip: /Pack.json Contains information about the mod pack like Name, Author, Target ROM, etc. /Patcher.exe and/or /Patcher.bat and/or other comparable OS specific patcher file. Should probably be required to support command line arguments (patcher.exe [inputFile] [outputFile]). /Mods/ - contains one or more mod zips. /Tools/ - contains any tools or executables needed by the patcher. Exact name doesn't matter as long as end users don't need to worry about its contents. /Tools/FileFormats.json Maps executables (or comparable files like .py) that know how to handle individual file patches to the proper extension, like the .kaopatch example above Ex. Could have an entry for .kaopatch that points to "/Tools/RomEditor.exe -kaopatch -i {Input} -o {Output}", where {Input} and {Output} are replaced with input and output paths. Ex. Could have an entry for .kaopatch that points to "/Tools/KaoPatch.exe" where usage "kaopatch.exe [inputFile] [outputFile]" is implied This format is designed for NDS Roms, but should also work with 3DS Roms (as long as the patcher is included). Formats of the .json files can be finalized later. This format should be as legal as xdelta patches unless I've overlooked something. Feel to post questions/comments/concerns about any aspect of it, especially if you're a ROM hacking tool developer or a ROM hack developer. [Edit 8/2] Updated details to match my current development.
  2. the type effectiveness table is in DllBattle.cro @ 0xD12A8
  3. Since it doesn't seem like anyone knows how the data is stored, here's a start: Most *.bin files are archive files. They're similar to narc, but slightly different. 0x0-3: Unknown; 00 00 00 00 0x4-7: Number of Files 0x8-B: Start of 1st file 0xC-F: Length of 1st file (8+8x) to (B+8x): Start of file index x (C+8x) to (F+8x): Length of file index x where x=0 to (value of 0x4-7) - 1 I might work on it more, but I'll give more time into my save editor for this game. Have fun, ROM researchers! [edit] Attached simple .Net Framework 4.0 command line utility to extract files from a bin archive. [edit 2] An untested version for .Net Framework 2.0 has been uploaded. Sky Rom Editor..zip .Net 2.0 Sky Rom E.zip
  4. Well, after using the PokeRadar a lot, chaining, and having a few chains seemingly break for no reason, I was hoping to find out what exactly makes it work? I'm familair with ASM, but I'm not sure where I'd start with NDS. If anyone has information on solid evidence for how the PokeRadar works (mostly to keep the chain going, like how it calculates the chances of continuing the chain per patch), please post here.
  5. Hi guys, I'm fairly new to ROM Hacking, but I've already got a hack in production underway, which you can find information on in the ROM Edit Ideas section (Probably gonna recreate it in the Progressing Edits once I get up to the first gym done and release a beta test version). It will include things like Edited trainers, pokemon stats, pokemon types, new wild pokemon, etc. But of course, I had to learn how to edit this data. I did most of the stats and types and such by using a tool by TwistedFatal, but with changed types, of course came other things like, for example, the TMs and HMs that each pokemon could learn. That specifically is what inspired me to make this thread. I never could find a thread about TM and HM compatability. I got the information about that from Drayano. But as it turns out, ALL of the Pokemon's data (except for movesets) is located in the same narc. So, lets take a look at exactly what is in this narc file. First off, you should extract the a/0/1/6 narc file using Nitro Explorer. Next, I reccomend downloading Crystaltile2, it is a phenomenal hex editor with a feature that makes editing the hex so much easier. In the best download I found, there are two .dll files that are missing, but you can just google search them and put them in the same folder as CT2 and it should work. And for one last preparation, I reccomend you go to this website:http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html. This is an amazing Hex-Decimal-Binary converter. Now, open up the a016 narc with Crystaltile2 and in the side window that pops up, double click on the section that has "(narc file name) 1" in it. This will take you straight to Bulbasaur's Data. Let's take a closer look at it. The first byte of each Pokemon's Data is the HP stat (in Hex of course) for Bulbasaur, this is 2D, which is 45 in Decimal. Say you wanted to raise the HP stat to 65. Just type in 65 on the decimal line on that site I linked you to, and replace that 2D with whatever pops up in the Hexadecimal line (should be 41). The second byte is the base Attack Stat. 3rd is base Defense, 4th is base speed, 5th is base Sp. Atk, and 6th is base Sp. Def. This should be the exact same order for every pokemon's data. Now for the 7th and 8th bytes, I have not tested this yet, however, they should be the Pokemon types. According to this thread:this explaining things about move data, 0B, which is in byte 7 of bulbasaur's data, corresponds to the Grass type, which just so happens to be Bulbasaur's primary type. It's 8th byte, which is 03, corresponds to poison type, which is Bulbasaur's secondary type. So, more than likely, the 7th and 8th bytes are the pokemon's types. In Bulbasaur's 9th byte, we have 2D, which is 45 in decimal, which just so happens to be Bulbasaur's catch rate. In the 10th byte for Bulbasaur we have 01, which I do not know exactly what that does. My theory is that it could be it's national Pokedex number. The byte after that (11th) as two 0s in Bulbasaur's data, which could have numbers in it when it gets to the higher pokedex numbers. Probably the National dex number in hex, split into pairs, and then reversed, just like it is for the moves when editing those via hex. This is only a theory and requires testing. Now we have the 12th byte. In Bulby's data, this is another 01. I honestly have no idea what this does. Perhaps there are two different Pokedex numbers that really come into play when you get to the Unova Pokemon? I will be editing this if I find out anything new. Bytes 13-18 are just a bunch of 0s for bulby. These may come into play more in other pokemon, I have not looked into this much yet, this research is a work in progress for me. I will edit the post when and if I find out anything. I have also been unable to figure out byte 19 or 20 off of info from Serebii alone either. I will edit the post if I find out something, as usual. If it helps anyone, Bulbasaur's byte 19 is 1F (31 in dec) and byte 20 is 14 (20 in dec). My conjecture is that maybe they have something to do with Egg Groups. Byte 21 appears to be Base happiness, as the 46 there in Bulbasaur's slot (70 in decimal) is equivelant to the info on Serebii. I am not sure what bytes 22-24 are. Byte 25 appears to be a slot for abilities, because in Bulbys data, it has 41, which is 65 in decimal. According to the Ability list on Bulbapedia, 65 is Overgrow's index number. Byte 26 is probably the second ability a pokemon could have, but since Bulbasaur doesn't have one, it has only 0s there. This is made even more likely by the fact that the value in byte 27 of Bulby's data corresponds to the ability, Clorophyll (index number 34, which is 22 in hex), which bulbasaur can have through the Dream World. Bytes 29-32 are 0s in Bulbasaur's data, so I'm not yet sure what those mean. I will experiment more with that later. Byte 33 has a 01 in Bulbasaur's data. I'm not sure what exactly this means yet either. Byte 34 has a 03. Again, not quite sure what this means. Byte 35 has 40 (64 in hex). Not quite sure what that means either. Byte 36 has 00. Clueless yet again. In fact, I have no clue what pretty much all the bytes do for a while. Perhaps it is what tells the pokedex to say in the pokedex entry's and classification, cries, honestly idk. But that's why I'm researching, to find out. Now, at Byte 41, I finally find something I know about. I'm just going to say right now, Thank you so much Drayano, he's the one who taught me how to read this part. Now, we start getting into why I even decided to do the research of this narc file. The TM HM compatability. Now, at Bulbasaur's byte 21, we find the hex value, 20. If we put that into the hex section of the coverter I linked you too, we actually need to look at the binary equal to that value. It should show up as 100000, now add two zeros to the beginning of this, and we have a string of 8 numbers in binary code. This string represents Bulbasaur's compatability, to TM01-08. But the tricky part, is that it goes backwards, so the first number actually represents TM 08, and it goes backwards down the line to TM 01. The 0s mean bulbasaur can't learn that TM. The 1s mean it can. So let's get into a bit more detail shall we. After you added the two 0s to make it a string of 8 the first number is a 0, meaning that Bulbasaur can't learn TM 08. The next number is another 0, meaning it can't learn TM 07. The next number, however is a 1, meaning that Bulbasaur CAN learn TM 06. The rest are 0s, meaning that Bulbasaur can't learn TMs 05-01. Say you wanted it to be able to learn TM 01, you would go into the converter and replace the corresponding number in the binary section (in this case the last one), and replace the old hex number with the new hex number that came up on the Hex line of the converter. Now, you may be wondering "What about all the other TMs?" That comes with the next several bytes. These bytes each represent Bulbasaur's conpatability with 8 different TMs (don't forget it's in backwards order, so instead of TM 09-16, it's actually 16-09, and same for all the other bytes). When you get to the byte that's supposed to represent TMs 96-90, you may be thinking "Hey! There is no TM 96!" Well that's correct. Instead, HM 01 takes up that spot. Then, the byte after that only represents the 5 remaining HMs (so the binary string should only be 5 digits long). One last thing to note, obviously, if any of these bytes contains two 0s, that means bulbasaur can't learn ANY of the 8 TMs that that byte represents. There should be 13 bytes containing TM HM compatability data. And finally, after the TM HM compatability bytes, we come up on some more bytes that I don't know what they do. Hurrah! I have a feeling that one of the groups of bytes that consisted of mostly 00s with a 01 thrown in had something to do with the amount of EVs given out upon defeating a bulbasaur in the wild, but I do not know which. So anyway, that's all I could figure out for now. I'll be sure to edit this post with the appropriate info if I find out anything new.
  6. A friend of mine has tried comparing an unpacked patched rom (Japanese!) with another unpatched. Rudolph patch seems to change 3 bytes in overlay 001 and 112 (if I remember well...). Comparing other language rom with one japanese appeared that other have one more overlay file. Sizes are not compatible and if you try to put japanese overlay in non-japanese rom, it will crash. We are trying to develop a program that allow us to save the structure of files in a rom when we unpack it (ndstool repack it, but put files alphabetically).
  7. Hey I was going through some scripts in my HeartGold ROM with PPRE yesterday when I found something quite interesting. When you open the map editor and open the map "Burned Tower R1-02" there's three scripts. The first one just checks a flag and the second one triggers Raikou and Entei to roam, the third one, however, is quite interesting. This is its code: Fanfare 1500 Lockall Faceplayer Cryfr 245 0 Waitcry Setflag 164 [b]WildBattle2 245 40 0 [/b] Clearflag 164 CheckTrainerLost 0x800c If 0x800c 0 CheckLR 1 func_4 StoreEmbStatus? 0x4002 If 0x4002 3 CheckLR 1 func_5 If 0x4002 4 CheckLR1 1 func_6 Releaseall End As you can see in the bold part, it uses the command WildBattle2 245 40 0. Now 245 is the number for Suicune in the Pokedex. Does that mean it was originally planned for Suicune to be catchable right in the Burned Tower like in Crystal? Interestingly enough, the flag 164 that it sets before and clears after the battle is the one that is also checked in the first script. As I said, I have only started to look into this yesterday so I don't have much knowledge about scripting in general (it's very hard to even find information about scripting for the fourth generation) but I guess my assumption is right? Well the command clearly triggers a battle with Suicune, that's for sure. Is there a way that we can find out the means to trigger this script in the game? Lastly I want to say that I'm sorry if this is an already well-known fact but a quick google search before posting this didn't bring up any results. I'd like to have your opinion on this. For reference, the ROM I looked into was the US version of HeartGold and I can guarantee that it was not modified in any way. I do not know if that script is also present in SoulSilver, might have to look into that.
  8. Maybe this was already known but I couldn't find anything about it on the Internet, so here I go. I think I may have found something weird about how the Counter / Mirror Coat / Metal Burst trio behaves against damage-reducing berries (including the Chilan Berry). Note that this behavior is for Gen IV only (Gen V onwards it behaves like one would expect it to.) What is already known: Counter sends back to the attacker 200% of the damage taken by a physical attack, and fails against special attacks and Ghost-type Pokémon. Mirror Coat sends back to the attacker 200% of the damage taken by a special attack, and fails against physical attacks and Dark-type Pokémon. Metal Burst sends back to the attacker 150% of the damage taken by an offensive move, provided the attacker was faster this turn. What I accidentally stumbled upon: Damage-reducing berries, when activated, doesn't touch the actual damage value (like it does with Focus Sash for example), rather it seems that the calculation for halving the damage is done separately from the actual damage value read by the game. Hence for example if a move was supposed to deal 200 HP damage, the berry will activate and will deal instead 100 HP damage (rounded down), but the game doesn't update the damage value (it still reads it as -200). Thus if a damage-reducing berry was activated this turn and the user happens to use one of the "Sends back to attacker" move, it will deal 200% damage (150% damage if Metal Burst) of the value stored in-game instead of the actual damage dealt. That is in this example, Counter/Mirror Coat (Metal Burst) would deal 400 HP (300 HP) damage and not 200 HP (150 HP) like one would expect! If this was already known, I'm sorry and you can slap me a thousand times.
  9. I reply the same that I put in gbatemp: I made a bit of researcher in the save files and this is what I found: - The size of 1 "save state" is 0x24000. - In the file (512 KB) there are 2 "save state" (just like before), however, the second "save state" does not begins in the offset 0x40000, but 0x24000. - This seems that in the "save state" is only one block/footer, it is in the offset 0x23F8C with 16 byte of size. - The footer structure is (little endian): --- 0x0: Current number of save count (uint). --- 0x4: Size of the block (it is 0x23F9C) (uint) --- 0x8: Constant of the game (in White is 0x31053527) (uint). --- 0xC: Padding = 00 00 (ushort) --- 0xE: Cheksum (unknow to me). Well, the checksum, the most important thing, seems to be changed, I don't know if this is still CRC16, but maybe (I thinks so) GF just changed the initial value or the final XOR value, but I don't know how to find this. However, the pokemon structure DON'T changed, and fact, anybody can manualy put a pokemon of 4 generation (.bin extension) in the save with the correct offset (but ofcourse too, fixed the checksum), except the size of the pokemon in the party, now is 220 bytes. This is another usefull offsets: - Party pokemons: 0x18E08 - Box pokemons: 0x400 - Trainer name: 0x19404 - PD: I hope that my english can be understand ^ _ ^ U.
  10. In the course of trying to edit every aspect of a pokemon for ROM hacking purposes, I've made some findings that may prove useful. Note that no tools exist to do this (yet), so I will just provide some insights on how each file works and those of you competent with a hex editor should be able to figure out the rest. The relevant file is (/data)/application/zukanlist/zkn_data/zukan_data.narc in a D/P ROM's internal filesystem. Unpack the narc (I used kiwi.ds's NDS Editor) and you'll get a folder with 58 binary files. Files 00 through 10 contain information pertaining to the height an weight comparison features of the pokedex, 11-58 contain lists of pokemon index numbers in various orders for use by the pokedex's search feature. Following is a list of each file, what information it holds, and notes on how it is structured. 00 I wasn't able to figure out anything about this file. Editing it did not seem to result in any changes in the pokedex -- maybe the information is related to the dex but actually used elsewhere. Of note is that it is the same length as 01, indicating 4 bytes per pokemon. 01 - Weight 4 bytes per pokemon. The number stored, divided by 10, equals the weight of the pokemon in kilograms used by the "weight check" feature. Note that numerical value in kg/lbs expressed by the pokedex IS NOT calculated from this. It is stored separately in msg.narc along with most other textual data in the game. I haven't taken the time to find the thresholds on which the animation used by the scale changes; if somebody wants to do this it would be appreciated. 02 I wasn't able to figure out anything about this file. Editing it did not seem to result in any changes in the pokedex -- maybe the information is related to the dex but actually used elsewhere. Length indicates 1 byte per pokemon. 03 - Trainer Scale Divisor (for female player) The number stored, divided by 256, equals the divisor used in scaling the trainer graphic in the height comparison feature. For example, if the divisor is 2, the size of the trainer will be half its unscaled size. 04 - Pokemon Scale Divisor (for female player) The number stored, divided by 256, equals the divisor used in scaling the pokemon graphic in the height comparison feature. 05 - Trainer Scale Divisor (for male player) The number stored, divided by 256, equals the divisor used in scaling the trainer graphic in the height comparison feature. 06 - Pokemon Scale Divisor (for male player) The number stored, divided by 256, equals the divisor used in scaling the pokemon graphic in the height comparison feature. 07 - Trainer Y-position (for female player) The higher this value, the further down the screen the trainer graphic used in the height comparison feature is. Default value is 8. 08 - Pokemon Y-position (for female player) Pokemon graphic used in height comparison feature is moved down by as many pixels as the value stored specifies. Values prefixed with FF instead of 00 will actually be moved up by 0xFFFF - x + 1 where x is the value stored. 09 - Trainer Y-position (for male player) The higher this value, the further down the screen the trainer graphic used in the height comparison feature is. Default value is 9. 10 - Pokemon Y-position (for male player) Pokemon graphic used in height comparison feature is moved down by as many pixels as the value stored specifies. Values prefixed with FF instead of 00 will actually be moved up by 0xFFFF - x + 1 where x is the value stored. 11 - National Dex order Listing of pokemon index numbers in the order that they appear in the National dex. In this case that is just the numbers 0-493. I have tried adding a 494th entry but unfortunately it did not result in a new pokedex entry. 12 - Sinnoh Dex order Listing of pokemon index numbers in the order that they appear in the Sinnoh dex. Pokemon that do not appear are omitted. 13 - Alphabetical order Listing of pokemon index numbers in alphabetical order. As with height and weight, editing the name of a given pokemon will not automatically update this. 14 - Heaviest to Lightest order You get the picture by now. 15 - Lightest to Heaviest order 16 - Tallest to Shortest order 17 - Shortest to Tallest order 18-26 - Subsections of Alphabet Each file contains a listing of pokemon index numbers with names that start with a letter in the given subset of the alphabet. Within each file the order is alphabetical. For example, file 18 contains an alphabetical list of all pokemon that start with the letters A, B or C. The letters associated with each file are as follows: 18-ABC 19-DEF 20-GHI 21-JKL 22-MNO 23-PQR 24-STU 25-VWX 26-YZ 27-43 - Types Each file contains a listing of pokemon that are of the given type; dual-type pokemon are listed in the file for each type. Within each file the order goes by national dex number. The type associated with each file is as follows: 27-normal 28-fight 29-flying 30-poison 31-ground 32-rock 33-bug 34-ghost 35-steel 36-fire 37-water 38-grass 39-electric 40-psychic 41-ice 42-dragon 43-dark 44-57 - Body Styles Each file contains a listing of pokemon that are of the given body style. Within each file the order goes by national dex number. Body style information is used exclusively in the pokedex and to the best of my knowledge these list are the only thing that makes a pokemon one style or another. The body style associated with each file is as follows (names for the different styles are never provided, so I'm using the actual graphics for clarity): 44- 45- 46- 47- 48- 49- 50- 51- 52- 53- 54- 55- 56- 57-
  11. Hey guys, Most of you think the freezing is caused by a build-in anti-piracy code. But... I wanted to let you know there's also a possibility that there isn't enough free memory when you play HG/SS on a flashcard. Do anyone of you know the 'hack' in D/P/Pt with the layers of the map in Jubilife City (quickly moving through these layers to get Darkrai)? Well, I thought the freezing problem in HG/SS is may be the same problem. Because, while I was playing HG (on my M3), I was running through Violet City, but when I ran past the gym from the left, the right part of the city was blacked out (and actually no gym, because the area that was blacked out, was kinda overlapping the gym). That area wasn't loaded and I couldn't walk through it. It was just solid black. Then I moved upwards into a invisible warp (it was the door of the missing gym), but then the game froze completely in black. It's just a thought I'd like to share with you. I don't know if this is really the case, but since I've encountered this, I thought that it needed to be considered as a possibility: The game loads too much maps or other information in its memory, but forgets to dispose this in some way or something which cause these random freezes/crashes... Or, since I've read there were other flashcards without freezing, the problem might lay in the emulation of some flashcards. I don't know if someone of you have this or something samilar, but I haven't seen this anywhere at the moment (or I've searched with the wrong words). Too bad I didn't take a picture of it... but before I realized I entered the invisible gym. When this happens a next time, I'll make sure I take a picture of it Grtzz!!
  12. **The first part of my tutorials is here if you're looking for it - -hacking-tutorial-part-1-File-decompression-recompression'>http://projectpokemon.org/forums/showthread.php?46250-Stars-Pokemon-colosseum-and--hacking-tutorial-part-1-File-decompression-recompression** images: There are still a lot of things I haven't been able to figure out on my own so far. It is to be hoped, that with my knowledge of pokemon colosseum and hacking now available to more people we will see some progress. Some things on the list are things I've started to piece together but got stuck. Some things I just couldn't find at all. I. physical/special split Done II. Editing map scripts Done III. Editing textures Done IV. Editing models - Things I haven't been able to figure out at all - I. Where is the weakness/resistance table ?! Done It's been in the same format in all the other games but I can't seem to figure it out for colosseum or . II. I know where the sound files are but I don't know how to edit them. Their file names and magic bytes might give the formats away though. I just don't know much about music formats and its a low priority for me. III. ASM hacking Done The majority of it will be in start.dol. The gamecube runs on the powerPC architecture which is very well documented and in fact I have a hex editor on my mac that was able to disassemble the code for me without me needing to specify any details. My assemly programming isn't great though as I kind of missed those lectures in uni ... (damn!) Understanding the game's programming could allow all sorts of hacks like making new move effects (e.g. trick room or quiver dance), make new abilities (e.g. adaptability or mega launcher) increasing the walking speed or adding new battle mechanics from later generations like drizzle expiring or not switching in your next pokemon when one dies until the end of the turn (For those who don't know, back in gen III, in double battles if one pokemon fainted you had to replace it straight away meaning if you doubled up on a slot then you could knock out that pokemon and then hit the next pokemon switched in on the same turn). We could also change things like the chances of finding shiny pokemon (which is set to 0 in ) or the critical hit chances and damage multiplier like in gen VI. Research images 1.zip Research images 2.zip
  13. Although KazoWAR has a tool to edit overworld sprites, I've isolated the hex values for each individual NPC. The list is based off of Kazo's BWOE. The hex values aren't exactly linear as a couple sprites are repeated and some values produce a blank image (not defaulted to the blue hair boy sprite, simply invisible.) This way it is easier to obtain the hex for the NPC that you desire. The list will be updated with the Pokemon values when I have the time to sift through the rest of the values. To use it, simply look for the sprite in BWOE, take note of its number then flip the corresponding hex value. (example: #27 = 0x0016 = 16 00) 6. 0x0001 - Male protagonist walking / running 7. 0x0002 - Male protagonist biking 8. 0x0003 - Male protagonist swimming 9. 0x0004 - Female protagonist walking / running 10. 0x0005 - Female protagonist biking 11. 0x0006 - Female protagonist swimming 12. 0x0007 - Cheren 13. 0x0008 14. 0x0009 15. 0x000A 16. 0x000B 17. 0x000C 18. 0x000D 19. 0x000E 20. 0x000F 21. 0x0010 22. 0x0011 23. 0x0012 24. 0x0013 25. 0x0014 26. 0x0015 27. 0x0016 28. 0x0017 29. 0x0018 30. 0x0019 31. 0x001A 32. 0x001B 33. 0x001C 34. 0x001D 35. 0x001E 36. 0x001F 37. 0x0020 38. 0x0021 39. 0x0022 40. 0x0023 41. 0x0024 42. 0x0025 43. 0x0026 44. 0x0027 45. 0x0028 46. 0x0029 47. 0x002A 48. 0x002B 49. 0x002C 50. 0x002D 51. 0x002E 52. 0x002F 53. 0x0030 54. 0x0031 55. 0x0032 56. 0x0033 57. 0x0034 58. 0x0035 59. 0x0036 60. 0x0037 61. 0x0038 62. 0x0039 63. 0x003A 64. 0x003B 65. 0x003C 66. 0x003D 67. 0x003E 68. 0x003F 69. 0x0040 70. 0x0041 71. 0x0042 72. 0x0043 73. 0x0044 74. 0x0045 75. 0x0046 76. 0x0047 77. 0x0048 78. 0x0049 79. 0x004A 80. 0x004B 81. 0x004C 82. 0x004D 83. 0x004E 84. 0x004F 85. 0x0050 86. 0x0051 87. 0x0052 88. 0x0053 89. 0x0054 90. 0x0055 - Cilan 91. 0x0056 - Lenora 92. 0x0057 - Burgh 93. 0x0058 - Elesa 94. 0x0059 - Clay 95. 0x005A - Skyla 96. 0x005B - Brycen 97. 0x005C - Iris 98. 0x005D - Shauntal 99. 0x005E - Grimsley 100. 0x005F - Marshal 101. 0x0060 - Caitlin 102. 0x0061 - Alder 103. 0x0062 - Plasma grunt male 104. 0x0063 - Plasma grunt female 105. 0x0064 - Ghetsis 106. 0x0065 107. 0x0066 108. 0x0067 - N 109. 0x0068 110. 0x0069 - Professor Juniper 111. 0x006A 112. 0x006B 113. 0x006C - Cuttable tree 114. 0x006E - Pokeball (overworld) 115. 0x006F 116. 0x0071 117. 0x0072 118. 0x0073 119. 0x0074 120. 0x0075 121. 0x0078 122. 0x0079 123. 0x007A 124. 0x007B 125. 0x007C 126. 0x007D 127. 0x007E 128. 0x007F 129. 0x0080 130. 0x0081 131. 0x0082 132. 0x0083 133. 0x0084 134. 0x0085 135. 0x0086 - Bianca 136. 0x0088 - Male protagonist ????? 137. 0x0089 - Female protagonist ????? 138. 0x008A - Male protagonist ????? 139. 0x008B - Female protagonist ????? 140. 0x008C - Male protagonist healing Pokemon 141. 0x008D - Female protagonist healing Pokemon 142. 0x008F 143. 0x0090 144. 0x0093 145. 0x0094 146. 0x0095 147. 0x0096 148. 0x0097 149. 0x0099 150. 0x009A 151. 0x009B 152. 0x009C - Male protagonist using fly (?) 153. 0x009D - Female protagonist using fly (?) 154. 0x009E - Male protagonist balancing (on beam) 155. 0x009F - Female protagonist balancing (on beam) 156. 0x00A0 - Male protagonist fishing 157. 0x00A1 - Female protagonist fishing 158. 0x00B2 - Cress 159. 0x00B3 - Chili 160. 0x00B4 - Drayden 161. 0x00B5 162. 0x00B6 - Shadow Triad 163. 0x00B7 164. 0x00B8 165. 0x00BA - Darmanitan zen mode statue 166. 0x00BB 167. 0x00BC 168. 0x00BD 169. 0x00BE 170. 0x00BF 171. 0x00C0 172. 0x00C1 173. 0x00C3 174. 0x00C6 175. 0x00C7 176. 0x00C8 177. 0x00C9 178. 0x00CA 179. 0x00CC - Plasma flag 180. 0x00CD 181. 0x00CE 182. 0x00CF 183. 0x00D0 184. 0x00D1 185. 0x00D2 186. 0x00D3 - Reshiram 1 187. 0x00D4 - Reshiram 2 188. 0x00D5 - Zekrom 1 189. 0x00D6 - Zekrom 2 190. 0x00D7 - Cynthia 191. 0x00D8 - Pokeball (overworld) 192. 0x00D9 193. 0x00DA 194. 0x00DB 195. 0x00DC 196. 0x00DD - Reshiram 3 197. 0x00DE - Zekrom 3 I don't know if this holds any importance as well, but I've isolated a couple values that produce "blank" sprites or are a copy of another. I'll post them below in the event that they might actually be useful to someone. 0x0000 0x006D 0x0070 0x0076 0x0077 0x0087 0x008E 0x0091 0x0092 0x0098 = 0x0038 / 61 Repeated (Male Guitarist) 0x00A2 = 0x00D1 / 184 Repeated (Cottonee) 0x00A3 = 0x0015 / 25 Repeated (Woman - Red Shirt) 0x00A4 = 0x002E / 46 Repeated (Karate Guy) 0x00A5 = 0x0025 / 42 Repeated (Female Ranger) 0x00A6 -> 0x00B1 0x00B9 0x00C2 0x00C4 0x00CA 0x00CB These were obtained by using an lua script provided by Kaphotics and KazoWAR's BWOE.
  14. 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
  15. I've managed to make a patch for the Battle Subway for BW & BW2. The list with changes made by me are at this link: http://www.mediafire.com/view/?jcp91l58n9pyrz7 Here's what the patch does: -Increase number of Pokemon in database to 1612 -All trainers in Normal line have a huge Pokemon roster -Few Super Line Pokemon were edited in terms of moveset, items and EV spread -Partner Pokemon roster is 464 (310 in Attack and 154 in Defense) NOTE: If you already have a patched rom, such as BlazeBlack2... don't worry. Use the NitroExplorer to extract the narcs from the clean rom that's been patched for the Battle Subway and reinsert them in the rom you're currently playing. Leave feedback and any suggestions of who should I fix in the Super Line and enjoy fighting in the ultimate Battle Subway. Link: https://www.dropbox.com/s/io1214wdgsufxad/BattleSubwayPatch.zip
  16. So, when using PPRE to edit trainers, there is a 0Ch value. Does anyone have any specific details on it? A while back, Alpha and I speculated that it could be trainer difficulty, because of the values in it we noticed: - 1 (most trainers) - 3 (Falkner) - 5 (Chuck, and some other trainers) - 7 (most Gym leaders, some regular trainers, etc) - 33 (a random trainer, some pokemaniacs) - 35 (a Rival battle where he has 3 lvl 16-18 Pokemon, and another where he has 4, around lvl 20) There may even be some trainers in the 60s or 70s.... Schookid Sherman or something? Does anyone have any further details on this or experience with how it affects things in-game? If they are the difficulty, do you know what specifically it changes? (AI, IVs?) And to what degree? I may do some more research and experimenting myself later this week.
  17. Deciphering data/fielddata/mapmatrix/map_matrix.narc in Diamond/Pearl's contents. I would appreciate it if anyone that has looked into it before provide their insight. And if you figured out the structure of the contents, I'd appreciate it if you could post it here. I do know the structure of a NARC file, I'm looking into the contents of the map_matrix.narc file. If Alpha reads this, SCV said that you might know more about map_matrix.narc's contents. Shoutout.
  18. Hi im trying to learn as much as i can about pokemon coding all that sortta stuff if any one can help i would greatly appreciated it, im not sure if this is the right place to post this please warn me if it is so i can move it to the correct thread
  19. I have a lot of information on which I'll be adding to this post. I've been writing an app to streamline the hacking process and I've pretty much completed the logic and just need to complete the UI now. As a result there is a lot of code that is quite useful as a reference. It's all in the swift programming language which I doubt many people here use but it should be simple enough to figure out what it all does. Here's a link to the repository : -Code'>https://github.com/PekanMmd/Pokemon--Code Part 1 of my tutorials: -hacking-tutorial-part-1-File-decompression-recompression'>http://projectpokemon.org/forums/showthread.php?46250-Stars-Pokemon-colosseum-and--hacking-tutorial-part-1-File-decompression-recompression I'll be updating this post with more details. Enumerations: Constants: Texture Editing: Data Tables: Gift and Trade Pokemon:
  20. the type effectiveness table is in DllBattle.cro @ 0xDB428
  21. Post additions (pinned replies): [Apr 24th, 2009] AngelSl (pcap log of GTS communication): post#12 [Mar 1st, 2010] LordLandon (logged GTS communication in more close details): post#39 [Mar 2st, 2010] LordLandon (information on actually trading with a fake GTS server): post#41 [Mar 2st, 2010] LordLandon (python script to act as GTS server): post#43 [Mar 22nd, 2010] LordLandon (python script, IP fix): post#100 [Mar 23rd, 2010] magical (clarification how data prefix is encoded on website): post#104 [Mar 23rd, 2010] イーブイ (started Wiki article, check next page after clicking this link for more test results): post#105 [Apr 8th, 2010] AngelSl (dnsserver.py modification hint -to support CNAMEs and not only IPs): post#193 [Apr 10th, 2010] Vlad (port check tool in AutoIT3): post#224 [Apr 11th, 2010] Vlad (dns and http server package): post#129 Note about LordLandon's Python application: You get "An error occurred while attempting to communicate (00000) Please turn off the power, restart this DS system, and try again. If this message keeps appearing, please contact Nintendo Consumer Service." when the .pkm file is a storage file. It must be a party file in order to work properly (issue is that storage files are 136bytes while party once are 236bytes). Original post text: Odd that no one is curious, but I am so here I go! Basically the game talks to Nintendo and the global trade center, but I wonder if we can get some of that data from external tools. I am pretty sure the official GTC flash site also reads from here, anyway I found out the URL addresses by hex searching in the rom file (platinum), here are the results: http://gamestats2.gs.nintendowifi.net/pokemondpds/common/setProfile.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/post.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/post_finish.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/get.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/result.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/delete.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/return.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/search.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/exchange.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/exchange_finish.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/worldexchange/info.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/battletower/roomnum.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/battletower/download.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/battletower/upload.asp http://gamestats2.gs.nintendowifi.net/pokemondpds/battletower/info.asp Obviously one is the battletower and other is the trade. Now it seems to operate on GET and POST, since I found a lot of HTTP headers. They also set a User-Agent that I think is called "GameSpyHTTP" (but might be a variable name or refrence, as I also saw "User-Agent: HTTP_X_GAMECD" a line or two above. Anyway it is possible to get information of trades and pokemons available using external tools, thus you may create a "alert me when X is available" tool if you like, or filter out those "I want a Mew for a Mew" people that are just annoying. Any thoughts or information you have learned?
  22. this is just gonna be a link dump right now. i'll organize later... General File Formats/Tutorials Graphics/Text Editing Sound Editing Important Tools Edit: Head over to the ROM Editing Directory to find your files even faster.
  23. Hi ProjectPokemon, I'd like to say Pokemon: Black and White are NOT untouchable, in fact, most of the files look like they're the same as HG/SS (for example, a/0/0/0 etc) although a few files have been added, and as you can imagine, many have been edited for the new things in B/W but the file structure looks pretty much the same. I haven't seen anyone actually decompress a B/W ROM yet (so I guess I'm the first w00t) so I thought I'd post this. It's not really a tutorial as much as a demonstration but here is a picture to prove my words : http://img7.imageshack.us/img7/6082/hni0001b.jpg (It's pretty big so you can clearly see it's been hacked/modified) In case your wondering it's just a simple hack - I hacked the game title on the boot screen to show what I talked about above. Also to prove this is in fact the Pokemon White ROM instead of something like DPPtHGSS with a modified icon and header, here is another image I took of my DS actually playing Pokemon White : http://img31.imageshack.us/img31/7622/hni0004df.jpg (An epic Picture of ZEKROM on the titlescreen - I love it!) The unfortunate part is BW has a really weird Anti-Piracy this time around. There is no lag, the game runs really great, but: 1) No Pokemon can gain experience (henceforth making it impossible to completely win the game with lvl 5 Pkmn alone) 2) Saving seemed to work until I tried loading the save, which didn't work too well Might've just been a setting of mine that was incorrect (There are editable settings in Wood R4) so I'm not 100% sure this is the AP's fault. But anyways, even the beginning gameplay was great. *insert-something-here-reader lol* - Project X
  • Create New...