Jump to content

Search the Community

Showing results for tags 'tutorial'.

  • 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 8
  • 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
    • Gen 6 Specific Edits
    • Gen 7 Specific Edits
    • Gen 8 Specific Edits
    • Gen 9 Specific Edits
  • ROM Editing
    • Stars' Pokémon Colosseum and XD Hacking Tutorial
    • Editing ROMs with Sky Editor
    • NDS Pokémon Games Hacking Tutorials
    • 3DS Pokémon Games Hacking Tutorials
    • Switch Pokémon Games Hacking Tutorials
  • RAM Editing
    • GS ACE: Coin Case
    • GS ACE: TM17
  • Gameplay related support
    • How to play Rescue Team DX ROM hacks
    • e-reader support
    • Max Raid RNG Manipulation


  • 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
  • Other
    • Creative Discussion
    • General Gaming
    • Off Topic
  • 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
  • Steel Of Time Club's Topics


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


  • Event Gallery
    • Generation 9
    • Generation 8
    • 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 9
    • Generation 8
    • Generation 7
    • Generation 6
    • Generation 5
    • Generation 4
    • Generation 3
    • Generation 2
    • Generation 1
  • Unreleased/Beta PKM Gallery
  • Tools
    • Save Editing
    • ROM Editing
    • RAM Editing
    • Files compatible w/ Saves
  • Saves and RAM edits
    • User Contributed Saves
    • User Contributed RAM edits and cheat files
    • User Contributed Super Secret Bases
  • PKM Files
    • User Contributed PKM files
  • ROM related entries
    • ROM hacks
    • Image Assets
    • Custom Resources
  • Misc
    • Images
    • Tools
  • Mystery Dungeon Hacking's Files
  • Hoopa's Café's Files
  • Super pokemon POWER's Files
  • Steel Of Time Club's Files


  • Project Pokémon
  • Evan's Dev Blog
  • Diary
  • Pokémon Mystery Dungeon: Gate of the Shooting Star
  • theSLAYER's thoughts and ramblings
  • Alack Alay!
  • Mario and Lugi
  • Diary of Borjitasstoi
  • Bigjon357
  • Benjamen
  • Céliana || Cecillia || TheRealProcyon's Fun Blog
  • the manufacturing of steel structural parts
  • Pokemon and Wordscapes Puzzle
  • The Best in Career Guidance
  • How I Get My FREE ROBUX In One Easy Lesson
  • hello kitty has a day :3
  • Dairy, perharps pokemon
  • Trainer Sagas; An original series premiering on Cupencil!
  • Pokemon and their trainer bond in Pokémon GO
  • Pokemon distribution
  • Pknx error
  • Staff Discussions's Blog
  • Mystery Dungeon Hacking's Blog
  • The Cool Kids Corner's Blog
  • Project Pokemon Fun Club!'s Blog: Random Stuff
  • Project Pokemon Fun Club!'s Blog.. So fun..So wow...SHARE YOUR NEWS!
  • Create your own Pokemon Region's Storyline
  • Create your own Pokemon Region's Team Rocket of the Region
  • Create your own Pokemon Region's Pokemon Region base off of.....
  • Create your own Pokemon Region's Pokemon Region main Character
  • Sky Editor's Sky Editor
  • Sky Editor's Blog
  • Hoopa's Café's Blog
  • Steel Of Time Club's Blog
  • SkyTemple Documentation's Documentation & Tutorial Drafts

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)

  1. ZeArk

    PKHeX on Linux

    Ok, Preface first, I managed to run PKHeX on Linux, although I haven't test whether the edited save works or not because I didn't have my game atm. Anyways this (hopefully) should be foolproof, considering I'm one and I managed to do it.... Oh and another disclaimer, don't expect the GUI will be pretty. Btw, I'll try to be as concisely as possible, I'm on my phone writing this. 1. Install PlayOnLinux. It's hassle free Wine from my limited experience, no need to manually set prefix or the like. Foolproof. 2. Download PKHeX and extract the compressed file like you would on Windows. 3. Right click .exe and choose the first option. [please refer to scr1 image] 4. The program will tell you that you missing dotnet (insert dotnet version here) and offer to download it for you by opening your browser (should be legit, it's legit Microsoft website after all). 5. Open the downloaded dotnet using the same step of the 3 step [please refer to scr2 image] and proceed to install it like you would on windows. 6. Magic(?) [scr3 image] As you can see, the GUI doesn't seems displayed properly but hey, as long as it works some cosmetics imperfections can be overlooked. Btw, just like I said on first paragraph, I haven't test whether the edited save works or nah because I currently didn't have any Pokemon games on hand, but it should works. If you have any Pokemon save game file you can test and report. Hopefully this actually works and helping many people that currently on Linux. Edit: Tested on Ultra Sun. Editing Pokemon is working [scr4 image]. So far afaik the only problem that I've encountered is in inventory editor, instead limit the items per category if you pick item on the drop-down it shows all items, irregardless of choose category [scr5 image (even if I'm on berries category but the drop-down show all items, although the Give all give category specific items)]
  2. Hello All! As I have started to make my own skins, and see myself continuing to create more in the future I've decided to create this step by step tutorial to help out! This way I can have a nice and easy place to point people towards for install instructions and as a file dump for my own created skins . What this will allow you to do: You can use any official c-gear skins that you either missed or are unobtainable due to region or release. You will also be able to use completely custom skins, I will provide my skins I have created in this thread. Ultimately you will get to turn your bland c-gear into stuff like this: PokeGen C-Gear Tutorial First and foremost you will need access to your save file. If you are simply running on an emulator or a flash cart this is easy and you should already have the knowledge of how to get this! If you are wanting to use this on your retail cartridge you will need a save dongle to retrieve your save file and then put it back on your cart. That being said, lets get started! Open up PokeGen and load your save (File>Open). Your save will load, and you will see all your Pokemon in your party and boxes show up. We are not going to change or mess with them at all, so if you are trying to keep a clean and cheat free game don't worry, the save will be fine! Your next step is to open up the C-Gear tool (Tools>C-Gear Background) You will see a new window pop up that has your current C-Gear in the left hand box. The right hand box should be empty. In my example below you can see the pikachu c-gear skin which is a standard skin available on the global link to anyone. Click the "Open" button and navigate to the C gear file that you would like to change it to. This has to be a C gear file type. Select your file in the browser and hit open. You should now see your desired skin on the right hand box. If everything looks correct on the right hand side, click the arrow in between the boxes to overwrite the c-gear skin that is currently on the game. You should now see both boxes have the skin that you want to use. That's all you need to do, pretty simple right? Close out the C-Gear Window, and save your changes! Now just put this save file back on your cartridge and you've got yourself a spiffy new c-gear to make everyone else jealous! C-Gear Skins For official skins Please head to the C-Gear Skin Gallery on Project Pokemon! Previews of my own current custom made skins can be seen by clicking the spoiler below. Download the Piggman's Skins attachment for these. For more user made custom skins, and official skins after the date of this posting, see this ProjectPokemon thread. If you have any requests for a custom skin, you may make a request, but there is no guarantee that I will do it. (I have to usually find a request interesting/fun myself before doing one) 157 July 12th 2012 Piggman's Skins..zip
  3. So I got PKHeX to work on mac… Not the simplest, nor the plausible cheapest (14 day free trial, $59 for a license), but compared to the literal day and a half I spent trying to get the free options to work? I considered what my time was worth and $59 is worth a day and a half of my time. Anywho here’s a rough tutorial, PKHeX running through Crossover on the Mac. I make no guarantees, but this is how I've gotten it to work for me. Let me know if it works for you too! Resources MacOS - I'm running 12.4 Monterey on a 2019 Intel MBP Crossover app (free 14 day trial) - https://www.codeweavers.com/crossover PKHeX - https://github.com/kwsch/PKHeX Crossover Archive - DL from Google Drive Preamble Crossover will create a container called a “Bottle” (it uses a project called Wine, get it, Bottle of Wine…Get it? #dadjokesaside Anywho). Your goal is to create a Bottle that has all the Windows bits necessary to run PKHex. There is no actual installing of PKHex, just running the .exe in a habitable space. There are two ways…. The easy way- Import Crossover Archive 1. Download the crossover archive (see above in resources) 2. Install Crossover (pretty self-explanatory, if you’re having issues check youtube “Install Crossover macos”) 3. Launch Crossover 4. Import Bottle Archive and Name it (Either of the following will get ya there) * Bottle > Import Bottle Archive… (from the system menu) * or the little + sign in the lower left and select “Import Bottle Archive” * Note: This archive includes only .NET and Core fonts 5. Run PKHex 1. Select your Bottle 2. Double-click “Run Command” (upper right, gear icons) 3. Use the “Browse” to find your PKHeX.exe file 4. Either 1. Run (one time use) * or 2. Save as Launcher (should appear in programs) * After this all you have to do is double-click the PKHeX App that will appear in the launcher. The manual way- The steps to self-build: 1. Install Crossover (pretty self-explanatory, if you’re having issues check youtube “Install Crossover macos”) 2. Launch Crossover 3. Create Bottle 1. Create a new bottle (Any of the following will get ya there) * command + N * Bottle > New Bottle (from the system menu) * or the little + sign in the lower left 2. Name your Bottle 1. Whatever you like, “PKHex Bottle” makes sense to me 3. New Bottle Type 1. Windows 7 (others might work, but for me… this is the only one that does so far) 4. Click Create 4. Create PKHex Environment 1. After a hot second, select your new bottle in the left panel and Click the big blue “Install a Windows Application” button to the lower right. 2. Type "micro" in the field, and select Microsoft .NET 4.6.1 and click “Continue” 3. In the list of compatible Bottles you should see the one you created, e.g. “PKHex Bottle”, select it and click “Continue” 4. Finally click install 5. Then comes the long, long as heck part where Cross over will download and install a couple versions of .NET 1. Accept all the EULAs 2. Do NOT click Send reports 3. Always “Restart now” (note: this does NOT restart your computer, it just allows Crossover to continue) 4. And always “continue” when asked 5. Optional Fonts: 1. Go through the same steps as above, but instead of searching for/installing .NET, search for “Core Fonts” and install that package. 2. Note: It takes far less time than the .NET stuff and helps PKHex look better. 6. Optional (but recommended BEFORE you run PKHex, see upgrade Q in FAQ) 1. Make an Archive of your Bottle 2. Right-click your bottle and select “Export <your bottle name> to Archive” 7. Run PKHex 1. Select your Bottle 2. Double-click “Run Command” (upper right, gear icons) 3. Use the “Browse” to find your PKHeX.exe file 4. Either 1. Run (one time use) * or 2. Save as Launcher (should appear in programs) * After this all you have to do is double-click the PKHeX App that will appear in the launcher. FAQ: 1. Why are there all these x86-64 preloader things running? * Crossover has to run whenever you run this app because (to the best of my knowledge) it’s basically providing the magic services that allow Windows apps to run. 2. Why Should I make an Archive before I run PKHeX? * So, in theory you can run all your PKHex.exe from a single Bottle… But the underlying tech that enables .exe to run on Windows is finicky and you could run into some issues especially when all the executables have the same filename. If you do want to run multiple PKHeX in a single Bottle, try renaming the executable before running it. I recommend adding the release date MMDDYYYY, so PKHeX.exe would become PKHeX06102022.exe. That way you’ll never get ‘em mixed up. Eventually though your bottle is gonna end up getting pretty big… But the choice is yours! 3. How do I uninstall or upgrade to a new version of PKHeX? * Simply put? It’s easier to create a new bottle or import an archive and run the new executable from it. There’s no easy way to uninstall a program once it’s associated with a Bottle. The “Move to Trash doesn’t really seem to work well.
  4. This tutorial will show how to replace textures in a .BMD0 file (Vs. Scenes, Fly sprites, etc.) First off, download the following programs: NitroExplorer2 Tinke (latest version) Mario Kart DS Editor Some kind of image editing software For this tutorial, I will be replacing Vs. Scenes. Step 1. Open NitroExplorer2 and navigate to a/1/6/6, extract the NARC. Step 2. Open the NARC with Tinke. Step 3. Find the file that you want to edit, the Vs. Scenes are usually start around the 80th file. Step 4. View the file and extract it (be sure when extracting the file you put .nsbmd at the end of what ever you named it). Step 5. Open Mario Kart DS Editor. Step 6. Goto Tools>Nitro Explorer>NSBMD ==> NSBMD + NSBTX Step 7. Select the file you extracted, and save the new .nsbmd, and the .nsbtx Step 8. You should now have a .nsbtx file, Open it in Mario Kart DS Editor. Step 9. Textures should appear, the top part contains the images, and the bottom part contains the palettes for the images. Step 10. Select the palette, then the image, and extract it as .png Step 11. Edit it however you like, color limit doesn't matter. Step 12. Save the image, then go back to Mario Kart DS Editor and replace the image. Step 13. Save the .nsbtx, and goto Tools>Nitro Explorer> NSBMD + NSBTX ==> NSBMD. Step 14. Rename the new NSBMD file to (name).BMD0 Step 15. Replace a Vs. Scene with the one you just edited. Step 16. Pack the NARC and re-insert it. Your .BMD0 should be working properly. If you have any questions, or comments, let me know .
  5. Ever notice how the majority of command-line applications require about a dozen commands for a single logical operation? This tool aims to fix that! ROMs can be extracted and repacked with a single command per operation, like so: To extract: ToolkitConsole.exe MyRom.3ds RawFiles To repack as a CIA: ToolkitConsole.exe RawFiles Repacked.cia To repack as a 0-key encrypted CCI (for use with Gateway): ToolkitConsole.exe RawFiles Repacked.3ds -key0ORToolkitConsole.exe RawFiles Repacked.3dz Note: 3dz files will be invalid until a private header is applied. To repack as a decrypted CCI (for use with Citra or Decrypt9): ToolkitConsole.exe RawFiles Repacked.3ds To repack for HANS: ToolkitConsole.exe RawFiles G:/ MyHack System requirements: .Net Framework 4.6 Free space on the system drive. Cleanup happens as soon as possible, but especially for larger ROMs, you may need several GB free. Supported formats for extraction: Decrypted CCI (aka .3DS) Decrypted CXI (what Braindump gives you) Supported formats for building: Decrypted CCI (aka .3DS) For use with Citra Can be used for Gateway and Sky 3DS (with CFW) if encrypted using Decrypt9 [*] 0-Key Encrypted CCI For use with Gateway [*] CIA For use with CFW [*] HANS RomFS, Code.Bin, and Homebrew Launcher Shortcut Planned Features: Copy private header to 0-key encrypted CCI files as they are built. Until this is done, any *.3dz files created are invalid until a private header is added. Decrypted CIA extraction This also doubles as a code library for developers. See GitHub for library usage. Latest package will be on Sky Editor's MyGet feed and may be added to NuGet at some point. Credits: SciresM for 3DS Builder (modified to use command-line arguments) profi200 for Project_CTR's makerom dnasdw for 3dstool Asia81 for HackingToolkit3DS, which provided the usage for 3dstool. Release Page GitHub Download
  6. Hi everyone! I just uploaded some Pokemon DS rom hacking tutorial vids and wanted to post them here in case they help anyone out. They are definitely not high level stuff, mostly a showcase of how to use tools like Tinke, Kiwi, PokeDS/Pis, DS Text Editor, and PPRE for trainer editing. So more of a "rom hacking for dummies" kind of guide. Topics Discussed: Pt 1: Overworld Sprites (including the elusive HM summon sprite) Pt 2: Trainer Front/Back sprites and VS faces before a gym battle Pt 3: Pokemon Sprites Pt 3.5: Advance Pokemon Edits Pt 3.75: Gen IV Sprite Editor Pt 4: Text Editing (OLD WAY) Pt 4.5: Text Editing 2 (BETTER WAY) Pt 4.75: Text Editing 2 (BEST WAY) Pt 5: Opening, Intro, Ending locations Pt 6: Enemy Trainer Pokemon Teams Pt 6.5: Trainer Editing w/ DSPRE Pt 7: Pokemon Icons Pt 7.5: Pokemon Icon Pallets Pt 8: How to use Photoshop and Graphic Gale Pt 9: Diamond/Pearl Battle Sprites Pt 10: Trainer Cards (Both Gen 4 and 5) Pt 11: HG SS Pokemon Follow Overworld Sprites Pt 12: 3D BMD0 Overworld Cutscene Trainer Sprites Pt 13: Pokemon Cries to Pretty Much Anything Pt 14: Quick Color Changes with Console Tool Pt 15: Wild Pokemon Editing w/ Advance DSPRE Tips Map Editing series: Pt 1: Pokemon DS Mapping Tutorials Pt1: Make Your First Map with PDSMS Pt 2: Pokemon DS Mapping Tutorials Pt2: How to Import Custom Maps Pt 2.5: Reshaping a World (Matrix Editing) Pt 3: Adding Buildings to Maps with PDSMS Pt 4: How to Make Warps Pt 3.25: Find HG SS Building Tilesets/Packages in SDSME Scripting series: Pt 1: Walking you through my first script! If you have any questions, leaving a youtube comment would be a much faster way to reach me.
  7. Main feature Awwww… too bad that Deoxys' stats are not recalculated after each fight like in Gen III, otherwise I would have used that. First and foremost, you have to know that the game double-checks for the 100 EV limit: the first check is triggered by the corresponding vitamin, the second check is run no matter the used vitamin. Now we choose a value to replace 64 (100) with, might as well use FC (252) for convenience's sake. Here's how you proceed to lift the limit: Decompress arm9.bin Case-by-case checks Go to offset 0×90034* and change the value 64 into FC, this is the check for the HP Up Go to offset 0×900A0* and change the value 64 into FC, this is the check for the Protein Go to offset 0×9010C* and change the value 64 into FC, this is the check for the Iron Go to offset 0×9017A* and change the value 64 into FC, this is the check for the Carbos Go to offset 0×901E8* and change the value 64 into FC, this is the check for the Calcium Go to offset 0×90254* and change the value 64 into FC, this is the check for the Zinc * Regions' differences Language Offset 1 Offset 2 Offset 3 Offset 4 Offset 5 Offset 6 Japanese 0×8F910 0×8F97C 0×8F9E8 0×8FA56 0×8FAC4 0×8FB30 Spanish HG 0×9002C 0×90098 0×90104 0×90172 0×901E0 0×9024C Korean HG 0×90728 0×90794 0×90800 0×9086E 0×908DC 0×90948 Korean SS 0×90720 0×9078C 0×907F8 0×90866 0×908D4 0×90940 Others 0×90034 0×900A0 0×9010C 0×9017A 0×901E8 0×90254 [*]Global check Go to offset 0×90A96* and change the value 64 into FC Do the same at offset 0×90ABC* and offset 0×90AC0* * Regions' differences Language Offset 1 Offset 2 Offset 3 Japanese 0×90372 0×90398 0×9039C Spanish HG 0×90A8E 0×90AB4 0×90AB8 Korean HG 0×9118A 0×911B0 0×911B4 Korean SS 0×91182 0×911A8 0×911AC Others 0×90A96 0×90ABC 0×90AC0 Bonus feature 1: Change how many EV are given by each vitamin Open the folder a/0/1/7. The amount of EV added for one given stat W by its respective vitamin X is located at byte Y on file Z. Stat Vitamin Byte File (W) (X) (Y) (Z) HP HP Up 21 45 Attack Protein 22 46 Defense Iron 23 47 Speed Carbos 24 48 Sp.Atk. Calcium 25 49 Sp.Def. Zinc 26 52 Note: First byte is assumed to be byte 0, not byte 1. That byte always has a value of 10 (0A), it's a signed value who can subtract as much as 128 EV (80) or add as much as 127 EV (7F). We're going to change that value to one who can divide 252 (FC) while staying very close to 10 (0A). Why not 12 (0C)? But what if you want to put EV not divisible by 12 in one particular stat? Well, that's what EV-reducing Berries are for Since the Vitamins are set up to give 12 EV now, it means the modulo applied here is a modulo 12. But at Lv.100 1 point in a stat equals 4 EV, thus we have to apply a modulo 3 instead (12/4). Modulo 3 is 0 => remainder of Wanted_EV/12 is 0 => no correction needed. Modulo 3 is 1 => remainder of Wanted_EV/12 is 4 => give 2 Vitamins (+24) and then 2 EV-reducing Berries (-20). Modulo 3 is 2 => remainder of Wanted_EV/12 is 8 => give 4 Vitamins (+48) and then 4 EV-reducing Berries (-40). Don't forget this is meant as an emergency feature to give the player a mean to EV-train a Lv.100 Pokémon, hence why you are allowed to complicate the feature. Bonus feature 2: Lower the EV limit from 255 to 252 Yep, we're borrowing that feature from Gen VI. Decompress overlay9_0012.bin. Go to offset 0×EC9C* and change the value FF into FC. Do the same at offset 0×ECA0*. * Regions' differences Language Offset 1 Offset 2 Japanese 0×ECA4 0×ECA8 Korean 0×ECA0 0×ECA4 Others 0×EC9C 0×ECA0 Decompress arm9.bin. Go to offset 0×4B948* and change the value FF into FC. Do the same at offset 0×4B94C*. * Regions' differences Language Offset 1 Offset 2 Japanese 0×4B3DC 0×4B3E0 Spanish HG 0×4B940 0×4B944 Korean HG 0×4BA44 0×4BA48 Korean SS 0×4BA3C 0×4BA40 Others 0×4B948 0×4B94C
  8. so i have this idea that i've been kicking around in my head probably since right after b2w2 came out in japan. i think this will be a set of games that is hacked for a good long time to come. this is quite likely the last set of main series releases on the ds. anyway, what if we could actually program for the games? i don't mean in assembly, but in C or C++. i know what i would have to do and exactly what i would have to write to create a nice, robust library for low-level manipulation of the game. for example, say you wanted to decrypt a party pokemon do something with one of its fields: (let's say the level for pkm party slot 3) u32 slot3_lv = getPkmStat(getPartyPkmAddress(&PkmBlk, 3), PKM_LV, NULL); you could do that instead of writing some assembler and compiling it with the gcc assembler from devkitarm, arm-none-eabi-as, and hoping you got the syntax right, all the pointers right, etc etc. some of the things you could do: -create your own set of overlays and load them like gamefreak using their overlay handler -not just write your own scripts, but write your own code and create your own script commands to use in your scripts -create your own data files and load them into memory to manipulate them with your own code -add your own code to the engine -add new fields and data to pkm files -add new data to the save game -add your own events and save them, add new swarms and other events -add new stuff to happen at midnight -tweak damage calculations, stat calculations, a lot of stuff without needing an AR -hell, rewrite the graphics renderer if you're feeling really enterprising my list of script commands is very nicely filled out and quite thorough- all from analyzed code, all completely correct. i've done everything on this list(barring a lame attempt at the last one). what i'm offering is a way to do it more easily through a library and higher-level code instead of assembly. something like this would be much more accessible. i have an IDA database absolutely packed with info that would be so useful to this along with quite a few pages in a notepad of stuff and even more kind of bouncing around in my head that i've never mentioned to anyone. i have a script compiler partially done, a script decompiler partially done, and the source files for libPKM prepped, but not started. this has the potential to be a full devkit for bw2. the reason i'm doing this and not just starting work directly is that i'm wondering how many people would actually use it. i can think of less than a half dozen people that even could use it. so.. would anyone out there use this? it would take hacking this game to a whole other level, but it's not worth doing if i'm going to spend a ton of time on it and no one is going to use it. i'd love it if people could get behind this a little bit because it has huge potential, but like i said i don't really know how many people can use it. thoughts?
  9. This guide is for those who are interested in editing an actual trainer/berry e-Card to use with the real e-Reader. If you are capable of save editing or you are playing on an emulator it's probably easier to inject the trainer/berry into your save file directly. Requirements your custom Trainer (ECT) or Berry (ECB) of course (can be created with this tool) e-Reader dev tools (https://caitsith2.net/ereader/devtools.htm) e-Card headerfix tool headerfix.zip (source) a hex editor (like HxD) a raw e-Card which we will use as a base (English, Japanese) Editing the raw e-Card Decode your raw e-Card with nedcenc like this: nedcenc.exe -i card.raw -d -o card.bin Open the decoded card in your hex editor. Copy the header (the first 83 (0x53) bytes as seen above) and save them for later. Copy and save the VPK (starting at offset 0x53 with "vpk0") into a new file. The full VPK size can be found at offset 0x51. Keep in mind that this is written as little endian, which means if these two byte are "81 07" the actual size is 0x781 (from 0x53-0x7D3). The rest of the decoded card is just padding, you can ignore/delete it for now. You have saved the VPK into a new file, now decompress it with nevpk: nevpk.exe -i trainer.vpk -d -o trainer_decompressed.vpk Open the decompressed VPK in your hex editor. For trainers: navigate to offset 0xD50, that's where the actual trainer data (ECT) is located, it's 188 (0xBC) bytes. For berries: the data (ECB) is at offset 0x4EA, it's 530 (0x212) bytes. For trainers: replace the data from 0xD50-0xE0B with your custom trainer and save the file. For berries: replace the data from 0x4EA-0xA19 with your custom berry. Compress your edited VPK with nevpk: nevpk.exe -i mytrainer.vpk -c -o mytrainer_compressed.vpk Note the size of your new compressed VPK! Create a new file in your hex editor and paste the header you have saved earlier in step 3. Paste your compressed VPK right after the header at offset 0x53. Now fix the VPK size at 0x51 to match the new size. Remember to write it as little endian! Fix the size info at 0x26: in the image above the value is 0x020F0622 bit 9-23 is the same as your VPK size + 2 bits are counted from left to right starting with 0 the original VPK size is 0x781 + 2 = 0x783 or in bits 0000 0111 1000 0011 0x020F0622 in bits: 0000 0010 0000 1111 0000 0110 0010 0010 convert your new VPK size into bits replace the bits marked in red in the size info convert the size info value back into hexadecimal write it back to offset 0x26 Pad the card to a proper size of 2112 (0x840) bytes. You can fill the area after the VPK until 0x83F with FF. Fix the cards checksums by droping it on headerfix.exe and you are done! You are done! You can now encode your edited card back into a raw e-Card: nedcenc.exe -i custom.bin -e -o custom.raw You can use the dotcode printer from the devtools for printing, it can print dotcodes in raw or bmp format. Keep the DPI at 300, choose your card and your printer and print it! You could as well just convert your raw card into bmp (raw2bmp.exe -i card.raw -o card.bmp) and print that. So, I hope everything was clear enough, if there are still questions feel free to ask!
  10. This is a very basic tutorial on how to add a new overworld to any map and add a connecting script to it. This is being made upon a request from somebody but I'm hoping it might help anyone else who's not sure where to start. Please note that I'm using PPRE for this tutorial. While I do appreciate that SDSME is generally more reliable, I can't seem to get it to work for Platinum. Every time I save an area's script, it just deletes the whole thing! PPRE is buggy but it's possible to get around the problems. This tutorial is primarily focused on Platinum but the content here should apply to HG/SS as well, although SDSME might actually work for those. Anyway, let's begin. 0. The Tools To do this you'll need a few things... * Your DS game and DeSmuME to run it on. * Project Pokémon's ROM Editor aka PPRE. This tutorial uses the 0.14 version. * The LUA51.dll file that allows your DeSmuME to use Lua scripts. A quick Google search should help you with this - it might be Lua51.dll or Lua5.1.dll - and the x86 DeSmuME and x64 DeSmuME will require different versions. You might need to try a few combinations to get it to work. * The Lua script for showing the player's position in Platinum. The code can be found at this pastebin (with thanks to Kaphotics for the frame) or below. I've also included the HG/SS position script below. Platinum --- while true do gui.text(0,0, string.format("X: %d, Y: %d", memory.readword(0x021C5CCE,2), memory.readword(0x021C5CEE,2))) emu.frameadvance() end HG/SS --- while true do gui.text(0,0, string.format("X: %d, Y: %d", memory.readword(0x021DA6DE,2), memory.readword(0x021DA6FE,2))) emu.frameadvance() end Simply make a new text file, paste this in and save it as <name-of-your-choice>.lua and you're good to go. 1. Find the location you want to edit. In the Maps tab in PPRE, you'll be able to select from each of the maps in the game. They're generally listed as their location with a suffix depending on whether it's inside a house etctera. The easiest way to find a specific location is to check the Text tab for a map and see if you can find text strings that match what you see in that location in-game. For example, we'll use this house in Floaroma Town as an example for this tutorial... So to find this, first we'll speak to somebody on the map to see a text string... Then find the matching map in PPRE by looking at the text tab. text_0 here matches what this guy says, so this is the map we want. 2. Add the overworld. Now that we're on the map we want in PPRE, head over to the Events tab, and click on the Overworlds secondary tab below. We'll see two 'pages', each one representing one of the overworlds in the map. Each overworld has a number of parameters, as you can see. You can ignore a lot of them, but: * ID = the identifier for the overworld. This always matches its page number in PPRE. Used for scripts that add/remove overworlds dynamically, change their location and more. * Sprite = The index for the sprite that the overworld takes on. This pg_0 refers to the woman (we can tell by the X/Y coords) so the sprite 16 is the generic woman sprite. * Movement = The index for the movement type the overworld takes on. Admittedly I'm not that familiar with this one - you can leave it at 0 for any still overworlds though. * Flag = The game has 'flags' that can be set via scripts. The number in this one represents a flag. If the respective flag is set, the overworld will _not_ appear. * Script = The index for the script. In the scripts tab you'll see pages listed as scr_1, scr_2 etcetera. Generally the index will match the script number, e.g. on this example the woman uses scr_2. You may see excessively large numbers for some things like item Pokéballs and normal trainers - in this case the overworlds use something called a level script which isn't shown in the scripts tab. * Number below script = The direction the overworld faces by default. 0 = looks up, 1 = looks down, 2 = looks left, 3 = looks right. * Line of sight = This only applies to generic trainers who will spot you and have the ! above them. The number is how many squares away they can spot you from. * Numbers two and one row above X-coordinate = Seems to control how far an NPC can move when they don't have a Movement index that keeps them still. I'm not sure on the details. * X-coordinate = The X-coordinate on the map that this overworld starts at. * Y-coordinate = The Y-coordinate on the map that this overworld starts at. * Z-coordinate = The Z-coordinate on the map that this overworld starts at. I've yet to see this used, though. On the top left of this sub-window, you'll see a little box that currently has a 2 in it. That determines how many overworlds are on the map. Just move it up to 3 to add a new pg_2! Let's try to get a new overworld to show up here. Of course, how do we know what co-ordinates these are? This is where the Lua script comes in. By activating this, the X/Y coordinate numbers where the player is standing will be drawn on the bottom screen. To activate it, in DeSmuME, go to Tools -> Lua Scripting -> New Lua Script Window. Hit Browse, select the saved .lua file that you should have done in the tools section above, and then the coordinates should pop up (assuming you've got the .dll file stuff working), e.g. In this case, the LUA script says this position is (x: 2, y: 3), so these are the parameters we'll use. For the parameters we need to change... ID = This overworld is pg_2, to set this to 2. Sprite = Let's make this Gardenia. I can tell you that Gardenia's sprite index is 127, so let's set it to that. I don't have a complete list of Platinum overworlds but a lot are the same as HG/SS, which has a list that can be found here. The number below Script = Let's set this to 1 so she looks down. X-coordinate = 2 Y-coordinate = 3 So it should look like this. You then need to back out of the Maps screen and Write ROM on PPRE. Just input a name for your ROM, hit write, and that'll save a new ROM with the changes you've just made. Then enter the area we just edited, and... There she is! However, she just doesn't respond to the player at all. That's where the script bit comes in. 3. Adding a script to your new overworld. This time we want to look at the Script tab in PPRE. We can see there's tabs for scr_1 and scr_2 here. We can also see from the overworld tab that scr_1 links to the man and scr_2 to the woman, as their overworld entries have their script indices set to those scripts respectively. scr_1 here is an example of a basic message script. Let's break it down... Fanfare 1500 = The little sound that plays when you speak to an NPC. Lockall = Locks all overworlds in place in the room. A standard when a script is active. Faceplayer = Makes the overworld using the script face towards the player. Message 0 = Displays a message with index 0. The index matches how it appears in the Text tab, i.e. Message 0 refers to text_0. WaitButton = This holds the message in place on the screen after it finishes until the player presses a button. CloseMsgOnKeyPress = This closes the message box when the player presses a button. In this case the same button will take the message off and close the box. Releaseall = Allows all overworlds to walk again. End = Signifies the end of a script. Doesn't strictly do anything but essential for the game to parse the scripts correctly. Let's make Gardenia say something! We'll need to add a new script, so hit the Add Script button to produce a scr_3 tab. In this case we can just copy and paste the entire script from scr_1 into scr_3. However, we'll want her to say something unique, so let's change the Message 0 to Message 2. You'll then have this: Good. Next thing we'll need to actually have a msg_2! Go to the text tab in PPRE and simply add a new line to the text box. You'll notice that there's a couple other characters involved in these text strings. They're just simple controls for how to format the text. Pokémon message boxes (at least in the DS games) show two lines at a time and can only show so many characters. The message DO NOT line break automatically - it's up to the programmer to split it correctly. Adding \n will add a line break, so text goes down from the first line to the second line. Adding \x25BD will add another line break that allows the text to go down from a second line to a third, or to a fourth etcetera. It allows the text to keep being fed through after a key press. Adding \r will refresh the box and start from the top again. You can look at the text in the game to see examples of how best to use these. In this case we're just going to have a \n so the message splits onto two lines. Lastly, go to the Events tab again, the overworlds tab inside this, and to pg_2, where our Gardenia overworld sprite information is. As we've written script 3, change the line labelled script to 3. And that's it! Write your ROM, re-enter the map and Gardenia should be talking to you. That's basically the process of adding new stuff in a nutshell. Obviously the scripts can get a bit more complicated than that (branching statements, making trainer battles, adding movements, having them give you items but only once, setting variables based off your gender, or your picked starter, or...) but this stuff can all be figured out just by inspecting the other maps in the game and finding similar scripts to what you want to do. I may try to make this tutorial more inclusive in the future - this is just more to get people off the ground. That said, I'm happy to field questions about Gen 4 scripting as best as I can manage. 4. A Warning about PPRE There's a big problem with PPRE 0.14 where it can corrupt scripts that have movements in them, e.g. when you talk to an NPC and they go ! or whatever, which will cause the game to freeze when it tries to do the movement. You won't have this issue in this tutorial but it's very likely to come up in any extended ROM hack. This bug occurs because PPRE 0.14 will save the script with the incorrect number of bytes. There's two ways to get around this: 1. Add in a new line to a script to bring the amount of bytes up to the correct total. My personal favourite is to just throw in: Setvarhero 0 on any random line. This normally functions as a way to show the player's name in speech, but it doesn't really do anything otherwise. However, in hex this translates into 3 bytes. The issue with PPRE 0.14 is that it ends up saving the script with an odd number of bytes, so throwing this in will make it even again and it should work. You may need to take the extra line in and out as you build up your script though. Also please note that the above is for Platinum. For HG/SS, PPRE uses a slightly different casing which you'll need to use instead (note the capital H)... SetvarHero 0 2. Open the same map but with PPRE 0.12 and save it again. You'll maintain the exact script that you wrote but PPRE 0.12 will save the script correctly and then it'll run. You may have to continuously do this as you build up your script. I'd still recommend using PPRE 0.14 to write the script as the interface is much nicer and more commands have been 'un-hexified'. You can get PPRE 0.12 from the download link on Oxnite's post here: https://projectpokemon.org/home/forums/topic/7881-ppre-download-location/
  11. Main effect: The probability is PP/65536. PP is equal to 08 by default. You can now put the value 10 (16 chances in 65536), like in Gen VI. Decompress arm9.bin. Go to offset 0×70080* and change the value 08 into QQ. QQ can take any value from 00 (no shiny at all) to FF (roughly 1 in 257 chance). *Regions' differences: Language Shiny chance Japanese 0×6FAC0 Spanish HG 0×70078 Korean HG 0×7017C Korean SS 0×70174 Others 0×70080 Side-effect: Formula reminder: (Trainer ID ⊕ Secret ID) ⊕ (16 leftmost bits of PID ⊕ 16 rightmost bits of PID) = CID What I call the CID (stands for Color ID) must be a number between 0 and 7 included for its bearer to be shiny. For example let's say you decided to update the value from 0×08 to 0×10, what will happen you may ask? Any caught Pokémon who happens to have their CID between 8 and 15 included and who weren't shiny before the update will turn shiny!
  12. So you want to make a ROM hack? First, you need a ROM to hack. It would be illegal to download one, but there are other ways to get a ROM. There's 4 major ways you can get a ROM, in order of speed (descending): USB Backup Device Slot 2 flashcart Slot 1 flashcart + EZ Flash 3in1 Slot 1 flashcart + Wi-Fi Note that 2, 3, and 4 all require that you use a DS lite (or original DS). Now for the details of each: 1. USB Backup Device There's several out there that you could find with a web search, but for ROM backups, I recommend the SMS4. I won't go into details of any others unless anyone asks. Chances are, if you have a USB backup device intended to back up ROMs, you would know. If you already have a USB backup device like the NDS Backup Adapter Plus or R4i Backup Adapter, these do not support backing up ROMs. 2. Slot 2 flashcart You have at least two choices. I recommend the NDS Backup Tool Slot 2 by Rudolph (not the red nosed). There's also a newer tool called Wood Dumper. I haven't tried it, but it looks good. 3. Slot 1 flashcart + EZ Flash 3in1 If you don't have a slot 2 flashcart but happen to have an EZ Flash 3in1, then you can use NDS Backup Tool 3in1. It will take significantly longer than the above tools, because it has to Erase the NOR Write a portion of the ROM (after you swap the flashcart with your game) Ask you to restart the tool Write the NOR to your flashcart If your ROM is over 32 MB, it will repeat this process until complete. 4. Slot 1 Flashcart + Wi-Fi Do you have lots of time? I hope you have, oh, say 12 hours to let this process go. Wi-Fi backup tools let you use your computer and your DS Lite compatible Wi-Fi to backup your ROM with the DS's very slow wireless chip. Be aware that the DS lite doesn't support WPA (which is what most people have). It only supports unsecured and WEP (which is more of an inconvenience to hackers than security). But if you happen to have compatible Wi-Fi, I recommend Rudolph's NDS Backup Tool Wifi, but it's more of a hassle to set up than Wood Dumper. NDS Backup Tool Wifi connects to your computer. Wood Dumper lets your computer connect to it. For NDS Backup Tool, refer to the readme in Pokedoc's Wi-Fi save backup tool. For Wood Dumper, find an FTP client (Windows Explorer has OK FTP support) to connect to: ftp://[ip displayed in Wood Dumper]/ If you have any questions, feel free to ask. But remember: downloading ROMs is illegal and could land you with severe legal consequences.
  13. So alot of people have been asking how I do animation swaps and stuff in my hacks, so I decided to post a tutorial. You will need: pk3DS (Latest Version) Ohana3DSRebirth (mariosonicds build) Step 1: Uncompress a/1/7/0 in pk3DS Step 2: Find the bin that contains the model that you want to use Step 3. Uncompress the bin in pk3DS, You should get a folder named ID_CM (ID being whatever number the file is) Step 4. Inside that folder you should see 9 bin files, copy the file named 0.bin Step 5. Find the bin the contains the animations you want to use, and uncompress it Step 6: You should get another folder named ID_CM that also has 9 bin files in it, overwrite the 0.bin in that folder with the one you copied Step 7: Pack the folder, you should now have a file named ID.CM Step 8. Rename the file to ID.BIN and replace the existing file Step 9. Repack the GARC Now you should have different animation ;). If you have any questions let me know!
  14. DISCLAIMER: As of now, this is only a beta (revision 4 since the Pokémon summary freeze fix), but at the very least the type chart works. NEW: Download link at the bottom of this post! You read it right, we're going to make the game take into account the Fairy-type! Also, STAB works too. But keep in mind this is still primitive and the Hall of Fame freeze on a NDS need to be addressed ASAP. While it may seem it is a one-man project, it is not; anyone who knows how to ameliorate the code or knows something useful is a welcome guest (credits will be given where they are due obviously). Part 1: Extraction Step 1: First and foremost open your Pokémon Black 2 or White 2 ROM with CrystalTile2. Step 2: Click the NDS icon (or alternatively click Ctrl+N). Step 3: Right-click on each of the following files and click Extract. arm9.bin overlay9_0167.bin overlay9_0168.bin overlay9_0207.bin overlay9_0265.bin Likewise, right-click on each of the following files and click Export. a/0/1/1 a/0/8/2 a/1/2/5 a/2/1/3 Note 1: File Reinsertion will be done on the last Part. Note 2: As a rule of thumb, overlays, arm9 and fat are NOT interchangeable between versions, but narcs are safe. Part 2: Updated type chart Step 1: Open overlay 167 with an Hex editor. Step 2: Add this at the beginning of overlay 167, yes by that I mean to add (not replace) this at offset 0×0: 04 04 04 04 04 02 04 00 02 04 04 04 04 04 04 04 04 04 08 04 02 02 04 08 02 00 08 04 04 04 04 02 08 04 08 02 04 08 04 04 04 02 08 04 02 04 04 08 02 04 04 04 04 04 04 04 04 02 02 02 04 02 00 04 04 08 04 04 04 04 04 08 04 04 00 08 04 08 02 04 08 08 04 02 08 04 04 04 04 04 04 02 08 04 02 04 08 04 02 08 04 04 04 04 08 04 04 04 04 02 02 02 04 04 04 02 02 02 04 08 04 08 04 04 08 02 00 04 04 04 04 04 04 08 04 04 04 04 04 08 04 04 02 04 04 04 04 04 04 08 04 04 02 02 02 04 02 04 08 04 04 08 04 04 04 04 04 02 08 04 08 02 02 08 04 04 08 02 04 04 04 04 04 04 08 08 04 04 04 08 02 02 04 04 04 02 04 04 04 04 02 02 08 08 02 04 02 02 08 02 04 04 04 02 04 04 04 04 08 04 00 04 04 04 04 04 08 02 02 04 04 02 04 04 04 08 04 08 04 04 04 04 02 04 04 04 04 02 04 04 00 04 04 04 08 04 08 04 04 04 02 02 02 08 04 04 02 08 04 04 04 04 04 04 04 04 04 04 02 04 04 04 04 04 04 08 04 00 04 02 04 04 04 04 04 08 04 04 04 04 04 08 04 04 02 02 04 08 04 02 04 04 04 04 02 02 04 04 04 04 04 08 08 04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Step 3: After inserting the new type-chart, change the following: 0×0C312 : 112A 08D0 => 122A 08DA 0×11226 : 1128 02D1 => 1228 02DB 0×21884 : 11 => 12 0×21896 : 11 => 12 0×218A2 : 1129 06D1 => 1229 06DB 0×218A6 : 1128 01D1 => 1228 01DB 0×218B4 : 1128 00D1 => 1228 00DB 0×218DA : 112C 0ED0 => 122C 0EDA 0×23A20 : 1128 01D0 => 1228 01DA 0×23A24 : 1129 01D1 => 1229 01DB 0×23A2C : 0201 8218 => 1222 4243 0×23B98 : 11 => 12 0×260E2 : 112E 1ED0 => 122E 1EDA 0×306F0 : 112C 3CD0 => 122C 3CDA 0×306F6 : 11 => 12 0×23A6C (B2) : 00751D02 => 40971902 (W2) : 40751D02 => 80971902 0×23BA4 (B2) : 00751D02 => 40971902 (W2) : 40751D02 => 80971902 Step 4: Save the changes done on overlay 167. The file size should go from 268,096 bytes to 268,480 bytes. Part 3: Fairy-type icon Step 1: Open a/0/8/2 with an Hex editor. Step 2: Go to offset 0×6A84 and change 1F7C1F7C into 9CF20EB9. What you did here is a change to the type-icons' palette so that it takes into account the colors for the Fairy-type. Step 3: Go to offset 0×8094 and change this: 00 00 00 00 10 11 11 11 21 22 22 22 22 22 22 22 22 22 22 FF 22 22 F2 EE 22 22 F2 2E 22 22 F2 2E 00 00 00 00 11 11 11 11 22 22 22 22 22 22 22 22 2E 22 FF 2E EF F2 EE EF EE F2 2E EF 22 F2 2E EF 00 00 00 00 11 11 11 11 22 22 22 22 22 22 22 22 22 FF 2E F2 F2 EE EF F2 F2 2E EF F2 F2 2E EF F2 00 00 00 00 11 11 11 01 22 22 22 12 22 22 22 22 2E 22 22 22 2E 22 22 22 2E 22 22 22 2E 22 22 22 22 22 F2 2E 22 22 F2 2E 22 22 E2 FF 22 22 22 EE 22 22 22 22 23 22 22 22 30 33 33 33 00 00 00 00 22 F2 2E EF EF F2 2E EF EE E2 FF EE 2E 22 EE 2E 22 22 22 22 22 22 22 22 33 33 33 33 00 00 00 00 F2 2E EF F2 F2 2E EF F2 E2 FF EE F2 22 EE 2E E2 22 22 22 22 22 22 22 22 33 33 33 33 00 00 00 00 2E 22 22 22 2E 22 22 22 FF EF 22 22 EE EE 22 22 22 22 22 22 22 22 22 32 33 33 33 03 00 00 00 00 into this: 00 00 00 00 00 00 00 00 99 99 99 99 89 88 88 88 89 88 FF FF 89 88 EF EE 89 88 EF 88 89 88 FF EF 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 8E FF 8E FF FE EE EF FE F8 8E EF F8 F8 8E EF F8 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 EF FF EF F8 EE EF FE FE 8E EF F8 EE 8E FF EF 88 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 98 8E F8 8E 98 8E F8 8E 98 EF EF 88 98 FE 8E 88 98 89 88 EF EE 89 88 EF 88 89 88 EF 88 89 88 EE 88 89 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 FF EF F8 F8 EE EF F8 F8 8E EF FF E8 8E EE EE 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 8E EF EF 88 8E EF FE 8E EF EF F8 8E EE EE E8 8E 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 8E 88 98 F8 8E 88 98 F8 8E 88 98 E8 8E 88 98 88 88 88 98 99 99 99 99 00 00 00 00 00 00 00 00 in other words (or rather images), into . Step 4: Save the changes done on a/0/8/2. Step 5: Open a/1/2/5 with an Hex editor. Step 6: Go to offset 0×BCB8 and change 1F7C1F7C into 9CF20EB9. Step 7: Go to offset 0×CF98 and change this: 00 00 00 00 00 00 00 00 33 33 33 33 43 44 44 44 43 44 44 44 43 44 44 F4 43 44 44 F4 43 44 44 44 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 44 FF 4E 44 F4 EE EF 44 EF 4E EF 44 EF F4 4E 44 44 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 44 EF 44 44 FF FE 4E F4 EE F4 4E F4 4E EF 44 44 F4 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 34 4E 44 44 34 EF 44 44 34 EF 44 44 34 4E 44 44 34 43 44 44 44 43 44 44 44 43 44 44 44 43 44 44 44 43 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 F4 4E 44 44 E4 4E 44 44 F4 4E 44 44 E4 4E 44 44 44 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 EF 44 44 F4 EE 44 44 E4 EF 44 44 F4 EE 44 44 E4 44 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 4E 44 44 34 4E 44 44 34 4E 44 44 34 4E 44 44 34 44 44 44 34 33 33 33 33 00 00 00 00 00 00 00 00 into this: 00 00 00 00 00 00 00 00 99 99 99 99 89 88 88 88 89 88 FF FF 89 88 EF EE 89 88 EF 88 89 88 FF EF 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 8E FF 8E FF FE EE EF FE F8 8E EF F8 F8 8E EF F8 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 EF FF EF F8 EE EF FE FE 8E EF F8 EE 8E FF EF 88 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 98 8E F8 8E 98 8E F8 8E 98 EF EF 88 98 FE 8E 88 98 89 88 EF EE 89 88 EF 88 89 88 EF 88 89 88 EE 88 89 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 FF EF F8 F8 EE EF F8 F8 8E EF FF E8 8E EE EE 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 8E EF EF 88 8E EF FE 8E EF EF F8 8E EE EE E8 8E 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 8E 88 98 F8 8E 88 98 F8 8E 88 98 E8 8E 88 98 88 88 88 98 99 99 99 99 00 00 00 00 00 00 00 00 Which will transform into . Step 8: Save the changes done on a/1/2/5. Step 9: Open arm9.bin with an Hex editor. Step 10: Go to offset 0×8E09D (B2) / 0×8E0C9 (W2) and change 00 into 02. Step 11: Save the changes done on arm9.bin. Part 4: Fairy-type template Step 1: Open a/0/1/1 with NDSeditor. Step 2: Double-click the file to open this window. Step 3: Tick the box and click on the leftmost icon (Extract selected) NDSeditor will extract all the files in the same folder a/0/1/1 is located at. Step 4: Move a/0/1/1 out of the folder so that only the extracted files stays. Step 5: Copy file a/0/1/1-570 (or any file ending with .rlcn) and rename it a/0/1/1-572. This will be our palette for the Fairy-type template. Step 6: Open file 572 in a Hex editor. Step 7: Wipe out the contents and paste this: 52 4C 43 4E FF FE 00 01 28 02 00 00 10 00 01 00 54 54 4C 50 18 02 00 00 03 00 00 00 00 00 00 00 00 02 00 00 10 00 00 00 CD 75 29 25 08 21 E7 1C C6 18 A5 14 84 10 63 0C 7D EE 5B 66 39 5E F6 D5 D4 C9 B1 41 1F 7C 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Step 8: Save and close your Hex editor. Step 9: On NDSeditor, click Tools and 'Make Narc file' Step 10: Select the folder where your extracted files are located and click OK. Step 11: Close NDSeditor. Step 12: Open overlay 168 with your Hex editor. Step 13: Go to offset 0×15E48 and change 0000 into 3C02. Step 14: (optional) Go to offset 0×13F0A and change 0127 into 0000. This will disable the 'Low HP' music, which I personally don't like for killing the 'tension' of fights. Step 15: Save the changes done on overlay 168. End-results: => Part 5: Hall of Fame Explanation: Step 1: Open overlay 265 with your Hex editor. Step 2: Go to offset 0×06B4 and change: CC(B81902) into C8(B81902) if B2; 0C(B91902) into 08(B91902) if W2; Step 3: Go to offset 0×2008 and change this: 00 00 00 00 2D 00 00 00 26 00 00 00 28 00 00 00 2E 00 00 00 2B 00 00 00 30 00 00 00 22 00 00 00 29 00 00 00 31 00 00 00 27 00 00 00 32 00 00 00 2A 00 00 00 25 00 00 00 2F 00 00 00 2C 00 00 00 24 00 00 00 23 00 00 00 into this: 2D 00 00 00 26 00 00 00 28 00 00 00 2E 00 00 00 2B 00 00 00 30 00 00 00 22 00 00 00 29 00 00 00 31 00 00 00 27 00 00 00 32 00 00 00 2A 00 00 00 25 00 00 00 2F 00 00 00 2C 00 00 00 24 00 00 00 23 00 00 00 [u]XX[/u] 00 00 00 What you did there really is a circular shift by 32 bits to the left, no more no less. XX can be any value between 0×22 and 0×32. Step 4: Go to offset 0×21DC and change 09 into 04. Go to offset 0×221C and change 00 into 09. Step 5: Save the changes done on overlay 265. Step 6: Open a/2/1/3 in a Hex editor. Step 7: Go to offset 0×513C and paste this: 52 4C 43 4E FF FE 00 01 28 02 00 00 10 00 01 00 54 54 4C 50 18 02 00 00 03 00 00 00 00 00 00 00 00 02 00 00 10 00 00 00 87 1A 9C 72 F5 55 B2 49 6F 3D 2D 35 EA A8 A7 9C 65 94 22 88 00 00 1F 7C 1F 7C 1F 7C 1F 7C 1F 7C 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Step 8: Save the changes done on a/2/1/3. The end result will look like this: This is a temporary fix as of now, the ideal fix would be to create a particle (.spa) specifically for the Fairy-type. The template is there to stay though. Part 6: Pokémon summary emergency freeze fix This is not a perfect fix, since what it does is that if it detects a Fairy-type icon that should be loaded, it will instead load the Normal-type icon. But at least when it comes to preventing a freeze when trying to view a Pokémon summary, it gets the job done. Step 1: Open overlay 207 with your Hex editor. Step 2: Change the following: 0×3C20 : 0698 AF21 0022 AF24 => 0049 0847 F13B0902 0×3C30 : 3118 AF20 8130 0858 => 0049 0847 033C0902 0×5EA8 : 051C 201C AF21 0022 => 0049 0847 273C0902 0×5EB8 : A800 3118 AF20 8130 => 0049 0847 393C0902 0×7888 : B000 2918 1320 0001 => 0049 0847 153C0902 Step 3: Save the changes done on overlay 207. Step 4: Open arm9.bin with an Hex editor. Step 5: Go to offset 0×8FBF0 and paste this for B2: 11 2D 00 DB 00 25 06 98 AF 21 00 22 AF 24 13 4F 38 47 11 2F 00 DB 00 27 31 18 AF 20 81 30 08 58 0F 49 08 47 11 2E 00 DB 00 26 B0 00 29 18 13 20 00 01 0C 4D 28 47 05 1C 11 2D 00 DB 00 25 20 1C AF 21 00 22 08 4C 20 47 11 2F 00 DB 00 27 A8 00 31 18 AF 20 81 30 08 58 04 49 08 47 A9 6B 1B 02 B9 6B 1B 02 11 A8 1B 02 31 8E 1B 02 43 8E 1B 02 or this for W2: 11 2D 00 DB 00 25 06 98 AF 21 00 22 AF 24 13 4F 38 47 11 2F 00 DB 00 27 31 18 AF 20 81 30 08 58 0F 49 08 47 11 2E 00 DB 00 26 B0 00 29 18 13 20 00 01 0C 4D 28 47 05 1C 11 2D 00 DB 00 25 20 1C AF 21 00 22 08 4C 20 47 11 2F 00 DB 00 27 A8 00 31 18 AF 20 81 30 08 58 04 49 08 47 E9 6B 1B 02 F9 6B 1B 02 51 A8 1B 02 71 8E 1B 02 83 8E 1B 02 Step 6: Save the changes done on arm9.bin. Part 7: Reinsertion Reinserting files will require you to first right-click and then: use Compression if you're reinserting overlays or arm9; use Import if you're reinserting anything else. Step 1: Open your Pokémon Black 2 or White 2 ROM with CrystalTile2. Step 2: Click the NDS icon (or alternatively click Ctrl+N). Step 3: Reinsert overlay 168 with the Compression option. Step 4: Extract overlay 168 but this time exceptionally with Export, you'll see why later. Step 5: Go to offset 0×363F40 and change 00 3C 1B 00 into 00 3D 1B 00, this will change the ROM (not RAM) address of overlay 168. Go to offset 0×364530 and change 00 9A E5 08 into 00 99 E5 08, this will change the ROM address of narc a/0/1/1. Step 6: Right-click on overlay9_167.bin and click 'distribution Overlay file location and space'. Step 7: Change 021998C0 into 02199740 (B2) / 02199780 (W2) and click OK. Step 8: Right-click on each of the following files and click Compression. arm9.bin overlay9_0167.bin overlay9_0207.bin overlay9_0265.bin Likewise, right-click on each of the following files and click Import. overlay9_0168.bin (this time only) a/0/1/1 a/0/8/2 a/1/2/5 a/2/1/3 Note: If you omit Steps 3 and 4 and try to reinsert overlay 168 using Compression AFTER the fat.bin has been changed, then CrystalTile2 will crash for some reason. Otherwise using Compression on overlay 168 is fine. Urgent to do: Try to load Hall of Fame Fairy-particle with a custom file, and try to get the Hall of Fame working on a real NDS. To do: Try to load the Fairy-type icon in the Pokémon summary (While I did build a workaround so that it doesn't freeze anymore on a NDS, the Fairy-type icon still cannot be loaded without throwing an error). Load the Fairy-type icon in the PC, while deactivating it if the Pokémon is not Fairy-type. Try to load the Fairy-type icon in the Pokédex. Make Struggle type 0×12, as it stands right now Struggle is considered Fairy-type. Hope you enjoyed reading. A little video to see the Fairy-type in action: [video=youtube;QE-HvGAAJnA]
  15. Hey guys So I've seen a couple threads asking how to replace the musics in Pokemon XY(I even posted one myself but remained silent) I am now starting this thread to show you how to replace the musics in XY ! (I checked there wasn't any tutorials on that) Big thank you to PlatinumMaster and his friend record reader who were the first to do it and to show me how it's done (the tutorial was written with permission) I wrote it on GBAtemp and Pokecommunity, and I thought that there were maybe people only monitoring Projectpokemon and are looking to know how, so here is the link to the tutorial https://gbatemp.net/threads/tutorial-how-to-put-custom-songs-in-xy-finally.519941/ Enjoy and if it worked/didn't worked comment down
  16. I've noticed there seems to be issues with extracting readable data from a Pokémon X/Y ROM. There are plenty of tools, like Ohana3DS and GARCTool, but they don't go together very well, and they don't support some file types. Therefore, I've posted a consolidated tutorial here for those of us who crave complete control over their data! All the files you need are in a ZIP file attached to this thread, save for the ROM because posting a 2 GB file would be a big no-no. You'll find a program labeled XObj (https://github.com/Quibilia/XObj) in the ZIP file. I wrote this program myself to examine the formats of the X/Y files and rename them accordingly. The copy of Ohana3DS Rebirth included in this ZIP file is a modified version designed to read the animations and textures in the ROM, which are containers of BCH files. I call it: Ohana3DS Transfigured! (https://github.com/Quibilia/Ohana3DS-Transfigured) The steps are as follows: 1. Run 3DS To CIA Converter.bat. Select option 5, then option 5 again. Type in the path to your ROM, and let it run. When the batch file tells you it's time to modify the files, close it. 2. Locate the subdirectory "romfs" where the batch file is stored. Enter it, and go into the subfolder "a". Copy (not move, COPY) everything in this folder to another folder labeled "XModels". The folder can be anywhere you want, as long as it's easy to get to. 3. Copy XObj.exe, GARC UnPacker.exe, and their accompanying batch files to the parent folder of XModels (if XModels is on your desktop, then your desktop), and run GARC.bat. This'll take a few minutes, so grab a soda. 4. When it's done, run XObj.exe, and it will look for any files that are compressed, and rename them to ".lz" files. Go into XModels, and enter the subdirectory "0/0/7.garc_". If there are no .lz files here, skip the next two steps. 5. Open Ohana3DS Rebirth.exe, and drag all of the .lz files into the window. They should be all grouped together in Windows Explorer (thanks, alphabetical order). It'll whir for a minute, and more likely than not stop responding, but let it run and it'll spit out some decompressed files. Go back into the parent folder of XModels, and run ClearCompressed.bat. This will delete all the compressed files, and leave the decompressed ones. Close Ohana3DS. 6. Run XObj again, and it'll convert each file in XModels to a format readable by our modified Ohana3DS. There are a lot of directories in XModels, but for this tutorial, we'll just be focusing on the files in 0/0/7.garc_, which hold the data for our favorite characters themselves. 7. Run ClearOriginals.bat, and it'll delete the original files, but leave the ones that we converted with XObj. 8. If you're looking for all of the models at once, here's where the real fun starts. Open Ohana3DS again, and go back into 0/0/7.garc_. Highlight all 8000-something files here, and drag them into the Ohana3DS window. The program will stop responding. After about five minutes, it should start responding again; when it does, the parent folder of XModels should be filled with .obj and .png files. Congratulations! You've successfully extracted all of the models and textures from your X/Y ROM. I'm still working out a conversion algorithm for the animations, but they should be convertible with Ohana3DS if you need them (just not with drag-drop support like the models and textures). 9. If you're looking for one or two models, I've outfitted Ohana3DS for that as well. Before dragging those 8000 files into the window, just go to the Open menu, and select a .PC file; this is a 3D model. From there, you can import textures in .PT format, or animations in .PB, .PK, or .PF formats. As for me, there are some questions I have about the animation files. It seems that all three formats contain more than one kind of animation, and they can be read pretty much the same way, so...what's the point in having more than one format? Also, if anyone could tell me where the skeletal animations are stored, I'd appreciate it. The material and visibility animations are stored along with the models, but the skeletal...they're hiding from me.
  17. It occurs to me that I've not actually explained how to do this yet so I figure I may as well: Step 1 - What's the file you need? You'll need to extract the a/2/7/3 .narc file from Black 2 or White 2. It doesn't really matter which. Step 2 - Starting Preparations. Open it up in a hex editor. I'd recommend crystaltile2 so you can quite easily jump between the files. Alternatively, you can use the kiwi.ds editor to extract the files separately, or whatever other method you wish. I'll walk through this tutorial using the Floccessy Ranch Grotto, which is the first file in the .narc. Step 3 - Editing the Pokémon Species. The whole of the first file looks like this: Now it's time to dissect what the file actually means! I'd highly recommend paying attention to this. It's a textified version of the Hidden Grotto listings done by Kaphotics, and it'll help you read what's going on here. The "CE 00 CE 00 CE 00 CE 00" at the start of the file is a reference to the four Pokémon who can appear with 1% frequency. In this case, Dunsparce takes up Group A, B, C, and D. Why Dunsparce? Dunsparce's index number is 206, which is 0x00CE (where 0x signifies it's a hexadecimal number). However, Pokémon games tend to use indices in a flipped form - the latter two bytes come FIRST, and then the former two bytes come last. So 00 CE becomes CE 00, and thus you see it as it's found in the data. You'll notice other similar strings within this document. As you can see from Kaphotics' list, Herdier is the middle frequency Pokémon. Herdier's National and also index number is 507 -> 0x01FB -> FB 01. You'll see two instances of "FB 01 FB 01 FB 01 FB 01" in the file (also two of "CE 00 CE 00 CE 00 CE 00). The first one refers to Black 2, and the second refers to White 2. So essentially, the file is split like this: The first part is the Black 2 encounter possibilites, the second part is what can appear in White 2. Most of the time this isn't utilised in the game, although you can see it in action in some areas such as Pinwheel Forest's interior, where Beedrill is found in Black 2 and Butterfree in White 2. In the Floccessy Ranch example, you can also see strings for Marill. Marill is 183 -> 0x00B7 -> B7 00, thus "B7 00 B7 00 B7 00 B7 00". Actually changing the species is simple - you just edit the strings shown! For example, if you always want Bulbasaur to appear in the Hidden Grotto with a 1% appearance rate, then you'd replace both instances of "CE 00 CE 00 CE 00 CE 00" with "01 00 01 00 01 00 01 00". That is of course, assuming you want the same effect in Black 2 and White 2. Alternatively, you might want any one of Bulbasaur, Charmander, Squirtle, or Pikachu to appear with a medium rate in the Hidden Grotto. This time, you'd replace the medium rate Pokémon string (Herdier, so FB 01 FB 01 FB 01 FB 01) with "01 00 04 00 07 00 19 00", referring to their index numbers 001, 004, 007 and 025 respectively. This gives them all an equal opportunity to be called (I think) when that encounter rate is selected. Thus, you can have to up to 12 Pokémon appear in a single Grotto on any version! So, that's the species. But what's the rest? N.B.: You can place any species in the Hidden Grotto, but they must have an overworld sprite in the game for them to show up. The first 493 Pokémon can all show up, but only the Unovian Pokémon shown on this sprite sheet will be able to show up successfully. Otherwise, you'll get a generic placeholder overworld (a boy with blue hair).. Step 4 - Editing the Other Pokémon Info. Let's take a look at an entire string of Pokémon hex in the Grotto, for one version: "CE 00 CE 00 CE 00 CE 00 0F 0F 0F 0F 0A 0A 0A 0A 1E 1E 1E 1E 00 00 00 00" "FB 01 FB 01 FB 01 FB 01 0F 0F 0F 0F 0A 0A 0A 0A 1E 1E 1E 1E 00 00 00 00" "B7 00 B7 00 B7 00 B7 00 0F 0F 0F 0F 0A 0A 0A 0A 1E 1E 1E 1E 00 00 00 00" Now, we already know these three strings combined make up the Pokémon selection pool for one version. The first one is the rarest, the second the middle, and the third the most common. You're also aware that there's actually four separate Pokémon that can be called in each group - although the game rarely has more than two species in the same group. (You can see an example of there being two in Route 9.) However, what does the remaining part mean? Let's analyse this... CE 00 CE 00 CE 00 CE 00 0F 0F 0F 0F 0A 0A 0A 0A 1E 1E 1E 1E 00 00 00 00 [color="Red"]CE 00 CE 00 CE 00 CE 00[/color] [color="RoyalBlue"]0F 0F 0F 0F [/color][color="SeaGreen"]0A 0A 0A 0A[/color] [color="Orange"]1E 1E 1E 1E[/color] 00 00 00 00 Suddenly the separate parts become a lot clearer! We already know the Pokémon species indices are the ones in red. The four bytes in blue refer to the maximum level that a Pokémon can be. The four bytes in green refer to the minimum level a Pokémon can be. The four bytes in orange refer to the percentage chance that the Pokémon that appears is female. Hidden Grottos don't generate Pokémon genders in the same way regular encounters do! As far as I'm aware, the last four bytes are always 00 00 00 00, so we don't need to worry about those. NOTE: It appears these values refer to the form(e) the Pokémon will take. I assume it works by slot correspondence, e.g. if your first Pokémon byte is EC 01, then set the first of these bytes to 01 and you should get the Sky Forme generating. There's one other important distinction here; the bytes are in groups of four as they each refer to a particular group! So in reality, they're split up as follows: [color="DarkOrchid"]CE 00[/color] [color="Lime"]CE 00[/color] [color="Teal"]CE 00[/color] [color="DarkRed"]CE 00[/color] [color="DarkOrchid"]0F[/color] [color="Lime"]0F[/color] [color="Teal"]0F [/color][color="DarkRed"]0F[/color] [color="DarkOrchid"]0A[/color] [color="Lime"]0A[/color] [color="Teal"]0A[/color] [color="DarkRed"]0A[/color] [color="DarkOrchid"]1E[/color] [color="Lime"]1E[/color] [color="Teal"]1E[/color] [color="DarkRed"]1E[/color] 00 00 00 00 The bytes that have a matching colour are the ones that are related to each other. Let's use one of our example strings from before... 01 00 04 00 07 00 19 00 14 14 14 14 0F 0F 0F 0F 32 32 32 32 00 00 00 00 This might be more easily read like this (even though you can't input this): "01 00 14 0F 32 00" - Species: Bulbasaur. Max Level: 20. Min Level: 15. Female rate: 50%. "04 00 14 0F 32 00" - Species: Charmander. Max Level: 20. Min Level: 15. Female rate: 50%. "07 00 14 0F 32 00" - Species: Squirtle. Max Level: 20. Min Level: 15. Female rate: 50%. "19 00 14 0F 32 00" - Species: Pikachu. Max Level: 20. Min Level: 15. Female rate: 50%. Just for a quick translation: 0x14 = 20. 0x19 = 25. 0x0F = 15. 0x32 = 50. The Pokémon in question can at any level between the max/min levels inclusive. For example, a Bulbasaur could generate in the Grotto and be encountered at Level 15, 16, 17, 18, 19, or 20. It also has a 50% chance of being female. From this it should be easy enough to see what's going on now. Just adjust the values to what you need! Quick word of warning, though. You cannot have the max and min levels be the same. If you do that, some funky stuff starts happening and they seem to be able to appear at any level they want. If you want them to appear at only one level, then use the max level as (min level + 1). This generally seems to cause them to appear at the minimum level anyway (though possibly not always). Step 5 - What's the rest? The remaining part of the Grotto files deal with the items that you can find in them. Using the Floccessy Ranch example again: The highlighted section is our items. It may look like random numbers, but when cross-compared with this page, it isn't! As we can see from that link, 0x0052 refers to a Fire Stone, 0x0054 to Water, 0x0053 to Thunder and 0x0055 to Leaf. This matches up with the Item 1 row in Kaphotics' list. Then the next bytes... 0x0002 are Ultra Balls, 0x004D is a Max Repel, and 0x0019 is a Hyper Potion. That's the item 2 list... etc. You probably get the idea by now. So, in short... First 8 bytes - 2 bytes for each group, visible item 1%. Next 8 bytes - 2 bytes for each group, visible item 4%. Next 8 - visible item 10% Next 8 - Visible item 25% The next 32 bytes refer to the four groups of hidden items, but it works in exactly the same way. There's no difference in the items between Black 2 and White 2, so whatever changes you make should appear the same in both. Step 6 - What file is what? These are listed in order in Kaphotics' list anyway, but in case you want another reference point: File 0 - Floccessy Ranch File 1 - Route 5* File 2 - Lostlorn Forest File 3 - Route 6 [Field, the one just around the corner from Driftveil] File 4 - Route 6 [Cave, the one just outside Mistralton Cave] File 5 - Route 7 File 6 - Route 13 [stairLeft, the one next to the staircase close to Cobalion] File 7 - Route 13 [stairDown, the one close to the Giant Chasm entrance] File 8 - Route 9 File 9 - Giant Chasm [in the plains, only after you defeat Ghetsis] File 10 - Route 22 File 11 - Route 23 File 12 - Abundant Shrine [Field, ie the one accessible by land only] File 13 - Abundant Shrine [Pond, you need Surf to access this one.] File 14 - Pinwheel Forest [interior, inside the forest over a river.] File 15 - Pinwheel Forest [Exterior, by the Challenge Rock.] File 16 - Route 3 [Daycare, the one just above the Doubles grass] File 17 - Route 3 [Pond, across the large pond] File 18 - Route 2 File 19 - Route 18 * The first Pokémon entry here (for your version) is the one that will appear by default when Bianca shows you this Grotto for the first time. --- Hopefully that helps some people.
  18. Don't you worry guy, I got you! I actually wanted to do the exact same thing as you, switch out all the Main character graphics with my own, except I was aiming to change the Female MC ones lol. So anyway, there is a horrible lack of tutorials on the web/youtube about editing character graphics (except sprites, seems everyone knows how to do sprites). So I started digging around the rom using Tinke, and eventually I found a reasonably easy way to get my own sprites in to replace the originals. This guide I wrote was originally like 2 paragraphs and served just to remind me in case I forgot parts of my process, but after seeing your post I decided to turn it into a full-fledged Tutorial on Trainer Graphics Editing and Swapping. It's probably still a little rough in some places, and it is sort of long, but that's only because I tried to be super super detailed on how to do everything, and documented each step and exactly how to do it. Seriously, I wrote it to be overly clarifying haha. But at least you'll never get lost between steps. Here it is (oh and I guess I can post it in a Notepad format as an attachment for easy download too): Tutorial on all Trainer Graphics Editing and Swapping (For Pokemon HeartGold and Soulsilver, but you could probably use the same process of export and import for other games) ______________________________________________________________________________ SUMMARY: This tutorial will be on editing trainer Mugshots (Mugshots are the pictures of trainer faces that pop up when you battle a character that is important enough to have his own face. It shows up right before the battle actually starts, like "VS Silver" and then it has his face.) However, the way you edit Mugshots, TrainerBacks, Trainer Battlesprites, and other trainer images are almost all completely the same. So once you finish this tutorial on editing Mugshots, you'll have a very good idea of how to edit any other trainer images. __________________________________________________________________________________ TOOLS: 1. Tinke -is your number one tool. Not only can it be used to explore the files of the rom and look at the graphics, it can export the graphics and import graphics as well, allowing you to swap graphics. 2. Console Tools -If we need to mess with a palette, this is the program is the easiest way to do so. 3. Whatever art program you use, like paint or such. Note: I would HIGHLY recommend picking a program that allows you to use Layers, as it will make editing much much easier. Personally I swear by Paint.net. Also, always save your pixel-related images as PNG. Seriously, if you save them as .jpg, it will actually blur your pixels and blend the colors together and ultimately ruin your image. It's not that noticeable with large images with lots of colors like photos, but with pixel art it is very destructive. 4. A copy of your game in ROM format. Please make sure you support Nintendo and GameFreak by buying and owning the actual game before you decide to start have fun with the ROM. _________________________________________________________ PHASE 1: -Copy and paste your rom to some other folder to make a back up. Just in case. -Make a folder called 'Mugshots' or something, so you can hold all your mugshot-related files in one place. -Download and open latest version of Tinke. -Open your Rom (the game you use) and then navigate to where the Mugshots are stored. -The folder system in Tinke works just like your computer's folder system. -The directory where Mugshots are stored is (a/1/0/9). ****NOTE: I ended up finding every directory for all the player-related graphics in the game. I will include all the directory locations at the very end of this tutorial. However for now I would recommend you stick to editing just the mugshot for this tutorial. -To to get there, you click the plus to expand each folder. -So click the plus beside the folder labeled 'a'. It will expand to show you more folders inside it. So click the plus next to folder '1', then '0', then you will find folder '9', which you cannot expand. That's where the Mugshot Graphics are. -Click folder '9' then click 'unpack'. -You will see a bunch of new files appear. These are all the Mugshots pictures used in the game. -Now go to the trainer you want to change. For this tutorial I will edit the mugshot of the trainer Silver (the jerky redheaded rival you name who fights you throughout the game) -All the files relating to Silver's Mugshot, are '9_127', '9_128', '9_129', and '9_130'. -However, only the first 2 of those files need editing. -We will be dealing the first file, the .RLCN (the colors aka a palette file), and the second file, the .RGCN (this is the actual picture) -The .RLCN file is just a palette. It contains the 16 colors used by the picture. (Silver's is 9_127.RLCN) -The .RGCN file is the picture. But Tinke won't even let you look at it with first viewing a palette file. (Silver's is 9_128.RGCN) -Alright, let's take a peek at these files! -Select the palette file (remember that's the .RLCN file), and click 'view' to see it. See the color collection? Every color used in the picture is shown here. Notice the very first color in the row. Whatever color is placed first in the palette is marked as a Transparency. This means that color in the picture will be invisible in the game. (That's why game characters don't have colored boxes around them when you play the game. It becomes invisible) -Now click on the .RGCN file right below it. (Silver's is 9_128.RGCN) ***Note, if you want to view ANY .RGCN picture, you always have to click 'view' on a .RLCN palette file first. You can't look at .RGCN pictures without first looking at a palette. -See, that's the character's mugshot. But it's scrambled. -However, there is a file right below it that will put it together the way you'd see it in the game. -So click the next file, an '.RECN' file. All this file does is assemble the scrambled picture. It just puts it together like a puzzle, and makes the background invisible. That's it. -Now click the next file after that. It's the last file for Silver. It's a '.RNAN' file. It does the same exact thing as the RECN file, but it leaves the background in. I actually prefer this one because when you edit it you can easily see where the picture's boundaries are. -So Silver's is 9_129.RNAN and click 'View' -See? It put it together for us, isn't that nice? (The natural, scrambled, raw form of the Mugshot is 256 x 24. The game naturally reassembles the picture into the actual picture we can see and understand of 96 x 64.) -And now we know what all the files are. Good! Time to export and edit them! ___________________________________________________________________ -So, if we're going to make our own trainer mugshots, we need to start with a picture that has the right dimensions. -Let's pick a trainer mugshot. You can either alter it, change the colors, or just erase their picture and draw over it with your own graphics. -Whatever you want, it's a good place to start, so let's export it to our computer. - We are actually going to export all 3 files (the pallete, the scrambled mugshot, and the unscrambled mugshot) Directions on how to Export each file to your computer will be below: -1. Click the palette file you want (.RLCN), Click 'View', click Export and save it someplace you'll remember. -2. Click the Scrambled Mugshot file you want (.RGCN), Click 'View', click Export and save it someplace you'll remember. -3. Click the Unscrambled Mugshot file you want (.RNAN), Click 'View', click Export and save it someplace you'll remember. __________________________________________________________________________ PHASE 2 -So, you can use the exported .RNAN picture as a guide to draw your mugshot. Remember to keep it within the dimensions of the picture. (96 x 64) ****Count every single color used in your picture, including the background. You CANNOT use more than 16 colors. *****The background color will end up being invisible in the game, and so make you you don't use the background color for anything else, or it too will be made invisible. -Finished your Mugshot? Completely done? If so, now we need to give it a palette. -In Tinke, Click the palette file (.RLCN) we were looking at earlier and click 'view'. It's showing us the colors again. -Click 'Import' and select the Mugshot you just drew. -It will take all the colors from your picture and put them into a palette -Click 'view' again to refresh, and there will be the colors you used in your picture! -Now, look at the first color box. Is it the color of your background? If so, this is good, and the background color will now become invisible ingame, and you can skip down to PHASE 3. If not, we need to do some extra steps to fix that and so continue on right below: -Click 'Export' to save your new palette. -Download and open the program called "Console Tools". Use it to open the new palette file (.RLCN) you just exported. -Click on each color and look at the sliders in the bottom right corner to check that the numbers for R, G, and B match exactly with your new mugshot's pictures. (they most likely will, and this is just double checking) -Make sure the color of the Background is the very first color. This is because the first color of the palette is made invisible ingame. ***Note to make it easier to reorder the color, you can click and drag the color of the background square to the front of the row. Cool. -Click File, Export it. This is the final palette you will use. -Back in Tinke, go to your palette file and click 'view' and then 'import', select your newest palette file. Click 'view' again to refresh, and there we go. We have our palette file. __________________________________________________________________ PHASE 3 -Now we need to import your Trainer mugshot in, but first we need to scramble it. See how chopped up the .RGCN picture is? The game wants it in that format. So we need to put it in that format. -Go to that exported .RGCN file (it's the long, scrambled picture) we exported. (it will be a png file now after exporting it) -Open it in your image editing software, like paint or whatever you use. ---Some things to know about this picture: >This scrambled Mugshot is 256 x 24. >It is made up segments. These segments are like puzzle pieces of the picture. >There are 3 rows of segments, 4 segments in the top row, 4 segments in the middle row, and 8 segments in the bottom row. >Each segment in the first two rows is 64 x 8. >Each segment in the last row is 32 x 8 -So just use this image as a Guide and start placing the pieces of your mugshot over it, like assembling a puzzle. -When you're finished, export this as a png. Also check that the dimensions are right. The image should be 256 x 24. -Alright, so now it is in the proper format and we can import it back into Tinke Let's check to make sure we scrambled it correctly. ______________________________________________________________________ PHASE 4 -In Tinke, go to the .RGCN file you want to replace with your own scrambled mugshot. Click 'View'. -Now, at the bottom right corner there will be 3 options, the bottom one says 'Replace palette' -MAKE SURE YOU CHECK the "Replace palette" before importing or you may end up getting major graphical transparency issues. -Click 'import', and select your scrambled mugshot. -So there is our scrambled mugshot! Let's check to make sure we scrambled it right. -Go to the file directly below this file, the .RNAN file. Select it and click 'View' Bam, it has assembled the picture to what we will see in the game. If it looks out of order, you've made a mistake when scrambling it! You'll have to try PHASE 3 again, and scramble it all over again. It's tedious, I know, but hang in there! Remember to use that scrambled mugshot we exported as a guide! -Almost done! Now, go to the directory, and look at the Folder 9 you unpacked earlier. -click the little minus square next to it. This will minimize all the pictures back into the folder. -Now click Folder 9 itself, and click 'pack'. -Now Click 'Save Rom' and you will have to save a whole new rom, this new rom will have your new graphics in it. I would save it in another folder but give it the exact same name as the rom you normally use, this way it can still use the same Save file. -Also, back up your save file, and your roms! I haven't had any problems with this so far, but it always pays to keep back ups just in case. ___________________________________________________________________________ And there we have it. You have changed the mugshots within the game. You will find that editing any other character graphics, such as battle sprites, battle backs, even the intro character graphics follow all the same steps we did here. It almost always needs a palette, and 16 colors, and needs it scrambled to whatever dimensions the .RGCN file shows. That's about it. It's really not difficult to change the graphics once you know where they are and how to export and import them. The only hard thing about this just scrambling the picture, and that's just really more tedious than it is challenging. _____________________________________________________________________ DIRECTORY/GRAPHICS LOCATIONS: So, here are the locations of other trainer graphics in-game: *****NOTE, because Trainer BattleBacks are kind of an animation, as in they have multiple frames, I beleive someone made a small program that will unscramble and scramble the images for you, which should make your life easier. Haven't tried it myself yet, but you can check it out here: https://gbatemp.net/threads/pokemon-platinum-heartgold-soulsilver-trainer-backsprite-editing.366353/ ****TIP#1: For .bin files, just select them and click unpack, then there will be a picture you can view. ****TIP#2: If you have issues certain graphics, remember that you usually have to view them in a specific order: First view the .RLCN file, then view the .RGCN file, then view the .RNAN/.RECN. ****TIP#3 Some Graphics have 2 .RGCN files (like trainer BattleBacks). Usually one of those .RGCN just appears as garbled nonsense, while the other one apears as normal. Ignore the garbled one. a/1/0/9 Mugshots -207-210 is Male MC. 211-214 is Female MC. Around 127 is silver. Around 115 is Sabrina. a/2/6/2 Intro Player Face 2_53 is palette, (2_54 both MaleMC and FemaleMC) (2_57 MaleMC) (2_58 FemaleMC) a/2/6/2 Intro Player Fullbody 2_73 to 2_74 (Both Male and Female MC) a/2/6/2 Intro Player Hand 2_81 to 2_83 (Both Male and Female Hands) a/1/2/0 Gender Select Fullbody --male 0_13, 0_17 to 0_21 AND 26-29 female siloutte a/0/4/9 Trainercard Player Sprite ---9_44 female and male sprite a/0/5/8 Trainer Battle Front Sprites ***(Note: the palette files for these seem to come after the .RGCN files, instead of before.) Male MC is 8_1 and 8_0. FemaleMC is 8_6 and 8_5. Silver is at 8_596 - 8_592 AND 8_112 ?? I don't know why he repeats. Best to change both graphics though, I suppose. a/0/0/6 Trainer Backs (throw the pokeball) (Male MC 6_1 and 6_0) (Female MC 6_6 and 6_5) ALSO, there are MC graphics at the end, like second to last set of files. END Hope this helps somebody! Now, if I missed anything, or there's an easier way you know of, let me know! (especially if there's some program for scrambling and de-scrambling ugggh) Maybe in the future I'll do this as a video tutorial. Happy Swapping!
  19. General Is PKHeX available for the Macintosh OS or Linux? No. You can use virtualization software like Parallels or VMWare to run a Windows OS virtual machine. My Pokémon won't work on WiFi battles or can't be traded. Why? This is usually a Pokémon legality issue. These problems aren't dealt with in the PKHeX subforum; see the announcement regarding cheating online. What is the Mystery Gift "Received List"? Every Gift has a unique ID associated with it. When you receive a Mystery Gift the game flags your save file as having obtained the gift, and doesn't allow it to be obtained again. PKHeX will set the used IDs for you; an ID can be deleted by right clicking the ID and choosing to "Delete". Can PKHeX create backups automatically? Yes, create a "bak" folder in the same location as the executable, and PKHeX will export a backup of every new save you load. Generations 7, 6 Is PKHeX compatible with Powersaves or Sky3DS? No. It never will be. Save files must be decrypted in order to load & save, and must be resigned before put back into your cart data. Generations 5, 4, 3 I'm using a flash card (R4, Acekard, etc) or emulator and my save file isn't able to be loaded. What's going wrong? Make sure the save data is in 4 megabit format (512KB) for Gen4/5 games, and 128KB flash for Gen3 games. Generations 2, 1 Does PKHeX support these games? Yes! Be sure you are exporting your save file in the "Battery" format (raw save file, not emulator specific).
  20. Can anyone lay out a step-by-step process for doing the same type of extreme randomizer nuzlocke that TyrannitarTube did in this series (https://www.youtube.com/watch?v=MGIM7vfCzC8)? Myself and 3 friends want to do a soul link play through on top of the other challenges that TyrannitarTube did. I've already tried looking for this, but I couldn't find anything like this. It might just be that I didn't look hard enough, but here I am. We all already have the physical ORAS games so I'm pretty sure we don't need to get an illegal ROM or anything like that. I'm sure I'm not the only one wondering how to do this so helping us out with this would surely be a service to all of humanity.
  21. So, as the title states, this is just a little tutorial on how to work around Illegal mode not changing the forms of Pokemon with Alternate Forms. It's actually really simple to do. You need to have two copies (just copy+paste the first one) of PKHeX (to make it faster) and you also need to know how to activate the hidden "illegal mode." You can look it up for yourself, however, if you do not know. The steps go as the following: 1. Open up PKHeX. 2. Create any Pokemon that has an alternate form in the alternate form you want it to be in. (Ex: Mega Charizard X) 3. Save that creation of yours. 4. Now open up the illegal mode PKHeX (Try looking up "PKHeX how to activate Illegal Mode" or something around those lines) and open up your previously saved file. The form will be retained, but don't change it to another form. (I honestly don't know what happens when that happens.) 5. Edit to your desire and overwrite the previously saved file when done. Note that this only applies to the Pokemon with alternate forms, like Rotom, All non-Mega Evolved Pokemon that are able to Mega Evolve, Kyurem, Keldeo, etc.
  22. Is this possible, I want to actually be able to use my pokedex. And the data is already in-game. Is there a way to edit ORAS/XY/BW/BW2/PT/HG/SS to support these features? I want lbs to kg and feet/inches to proper meters. Anyone know if and how to do it? Thanks, searching yielded no results.
  23. I figured out how to get PKHex working on Linux using Wine and thought I would share my info. I'm on Ubuntu 14.04 64bit using the stock repo version of Wine. First off you have a have a 32bit Wine environment which doesn't seem to be the default if your system is 64bit so you may have to move or delete your .wine directory. All you have to do is run this command to setup Wine WINEARCH='win32' winetricks dotnet40
  24. Anyone with a guide or tutorial that they would like added to this directory please post here and I will add it to the first post. Please be sure that all guides are complete and as accurate as possible. DDD's Sprite Editing Tutorial &
  25. Hey everyone! I've been trying for weeks to get Pokemon Black 2 / White 2 to look 2D thanks to camera cheats but this seems worthless. Here is the cheat : By hacking the game's maps in SDSME and exporting the models of the maps or buildings to Blender, I discovered the orthogonal perspective which shows a a perfect 2D view (as in HGSS because the 2D view is possible in those games thanks to AR cheats). The only problem in Blender is that the models look blurry and it's impossible to obtain a perfect size of the models without the blurring. That's what I mean : So I wanted to know if someone is willing to try to look into the roms and deactivate the current perspective to make the game look 2D. As a graphist and as a game creator (I'm the creator of the fangames Pokemon Cinder & Foam), I'm really interested by the graphic style of the games and it will be a really good opportunity to study the game's graphics.
  • Create New...