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)


  • Pokémon HOME
  • Generation 9
  • 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
    • Events Help and Questions
  • 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
    • Pokémon HOME
    • 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
    • Pokémon GO -> HOME Transfers
    • 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
  • 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
  • Upgrated PPRE2 Editing Gen IV Pokemon Stats/Moves Beta Release!
  • Pokémon cards in Canada
  • UTI Relief Starts Here at Prime Health
  • 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. Complete title: Treat two different lines as the same species for breeding purposes Disclaimer: For now this goes for games in: English French German Spanish (SS only) We already have the Nidos and Volbeat+Illumise. This time we're going to add (not replace mind you) two new rules for breeding (males on the left, females on the right): the controversial Tauros+Miltank Gyarados+Milotic Decompress arm9.bin First we're going to change the pointer so that it points to the new piece of code, go to offset 0×6CA88 and change FFF7AEFE into 91F0F6FF At offset 0×FEA78 add this: F8 B5 84 B0 0D 1C 01 A9 00 90 6D F7 A1 FB 00 24 01 AF A6 00 B8 59 05 21 00 22 6F F7 D5 FD 61 00 03 AA 50 52 10 1C 40 5A 84 28 04 D1 01 20 60 40 28 70 6C 70 08 E0 B8 59 71 F7 6E FA 01 28 03 D1 01 20 2C 70 60 40 68 70 60 1C 00 04 04 0C 02 2C DF D3 28 78 41 00 03 A8 40 5A 72 F7 B3 FB 04 1C 1D 2C 09 D1 00 98 2A F7 15 FC 02 21 89 03 08 42 01 D0 20 24 00 E0 1D 24 F1 2C 09 D1 00 98 2A F7 09 FC 02 21 89 03 08 42 01 D0 80 24 00 E0 F1 24 1C 48 84 42 09 D1 00 98 2A F7 FC FB 02 21 89 03 08 42 01 D0 81 24 00 E0 16 4C 13 48 84 42 09 D1 00 98 2A F7 EF FB 02 21 89 03 08 42 01 D0 0F 4C 00 E0 0D 4C 0E 48 84 42 00 D1 44 1E 68 78 41 00 03 A8 40 5A 84 28 0B D1 28 78 81 00 01 A8 40 58 71 F7 1A FA 01 28 03 D0 69 78 28 78 68 70 29 70 20 1C 00 00 04 B0 F8 BD 3A 01 00 00 39 01 00 00 EA 01 00 00 5D 01 00 00 This is it, or it is? Not quite, remember that in gen IV if you try to breed male Nidoran / Volbeat with a Ditto the offspring will always be male. This is because the code checks when the offspring is female Nidoran or Illumise, if it is the case then the egg has a 50 % of hatching into either the species of the female or the species of the male. To fix this follow the following steps: Open your ROM in CrystalTile2 Extract the folder poketool/personal/pms.narc: This is what the game use to tell the offspring that the a given species of Pokémon will produce. We're going to change the following: 20 00 into 1D 00 (3 times) 80 00 into F1 00 (once) 81 00 into 5D 01 (twice) 39 01 into 3A 01 (once) Note: you can also give Tauros egg moves now.
  2. Credits go to PowMikelan98 for discovering this and giving me permission to post this. Original post: http://wahackforo.com/t-21923-pag20#195 Open your HeartGold or SoulSilver ROM with CrystalTile2 Go to folder a/1/8/0 right-click and then click on sub-file sort. The data is 89 bytes for each Pokémon, the first bunch of data being that of Pokémon with ID 0. For example to go to the data of Milotic (ID 350), we do this simple operation: 350×89=31150 31150 is 79AE in hexadecimal, thus you add 79AE to 3C to get the relative address for Milotic's data. Note: first byte is labelled as byte 0, not byte 1. For each Pokémon: byte 1 governs the movement's type when a Pokémon is sent out (for example 0×13 (19) makes the Pokémon flash with electricity, like Raichu or Jolteon for example). byte 86 is the sprite's position on the Y-axis, a signed value who moves the sprite from 128 pixels down (80) to 127 pixels up (7F). byte 87 is the shadow's position on the X-axis, a signed value who moves the shadow from 128 pixels to the left (80) to 127 pixels to the right (7F). byte 88 is the shadow's size: 0=none 1=small 2=medium 3=big
  3. I wasn't kidding when I said that I had a load of tutorials to write down. Decompress arm9.bin Go to offset 0×FF4AE* You should see this: 68 01 FF 00 CA 00 2A 01 FE 00 B7 00 B7 01 3A 01 7A 00 B6 01 3B 01 B9 00 BE 01 3C 01 8F 00 CA 01 3D 01 E2 00 96 01 3E 01 3B 01 B8 01 3F 01 71 00 B1 01 40 01 66 01 Format is BB BB II II DD DD. BB BB is the baby produced when at least one parent holds the corresponding item. II II is the item that at least one parent has to hold. DD DD is the default baby when none of the parent holds the corresponding item. For example we’re going to dissect the 7th row, shall we? 96 01 is a Pokémon ID. Invert the 2 bytes and you get 01 96. Converting from base 16 to base 10 we get 406. Oh, it’s Budew! This is the same principle with the item ID and the default baby ID. Item ID: 3E 01 => 01 3E => 318 => Rose Incense Default baby ID: 3B 01 => 01 3B => 315 => Roselia The instruction is as follows: If at least one of the Parents hold the Rose Incense, Budew will hatch from the egg, otherwise Roselia hatch from the egg. So if you have understood, it means we basically have to replace all 9 instances of DD DD by their corresponding BB BB. By changing the aforementioned bytes you get this: 68 01 FF 00 68 01 2A 01 FE 00 2A 01 B7 01 3A 01 B7 01 B6 01 3B 01 B6 01 BE 01 3C 01 BE 01 CA 01 3D 01 CA 01 96 01 3E 01 96 01 B8 01 3F 01 B8 01 B1 01 40 01 B1 01 Neat, now how about you go and hatch that Budew without a Rose Incense, hum? * Regions’ differences: Language Offset Japanese 0×FFEC2 English 0×FF4AE French 0×FF492 German 0×FF462 Italian 0×FF426 Spanish HG 0×FF496 Spanish SS 0×FF49E Korean HG 0×FFB5A Korean SS 0×FFB52
  4. I know, I'm on thread-spree lately, and it's not over since I have at least 4 more tutorials to get down! Disclaimer: Read all the paragraph before attempting any manipulation. Decompress overlay9_0012.bin Go to the very bottom of the file You should see something like that: 2D 00 2E 00 2F 00 30 00 67 00 AD 00 FD 00 3F 01 40 01 30 01 95 01 C0 01 Q: What are those? A: Those are the very moves blocked by Soundproof. Each move is 2 bytes long, for example let’s try this one: 30 01. Invert the 2 bytes and you get 01 30. Now convert from hex to decimal and you get 304. 304 is the ID number for the move Hyper Voice! Well what move are we trying to break already? Oh yes, Heal Bell. So the move Heal Bell has been assigned the ID number 215. Okay 215 in hexadecimal is D7, since moves are 2 bytes long instead let’s go with 00 D7. Invert the 2 bytes and you get D7 00. Time to go and check against the previous string… … … HEY! But there’s no bytes equal to D7 00 in there! Explanation: Actually this string lists the moves blocked by an opponent’s Soundproof! Have you ever tried to use Heal Bell against that Exploud? Believe it or not but it will work. When it comes to the move Heal Bell, the game will instead perform a check against all of your team members’ abilities, and if a Pokémon affected by a major status condition happens to have Soundproof, it will not be healed. Tough luck, huh? But this will come to an end with those simple-to-follow steps. Decompress overlay9_0012.bin Go to offset 0×98A0* and change the value D7 into 00 Do the same at offset 0×21ADE* Go to offset 0×98B0* and change the value 2B into FF (anything between 7C and FF included will do the trick) Do the same at offset 0×9906* and offset 0×21AE4* Offset 0×98A0 is the check for Heal Bell’s execution for the Pokémon on the battlefield, on the side of the Heal Bell’s user. Offset 0×21ADE is the check for Heal Bell’s execution for the remaining team members of the Heal Bell’s user team. Offset 0×98B0 is the check for Soundproof against the Heal Bell’s user. Offset 0×9906 is the check for Soundproof against the teammate of the Heal Bell’s user (Double battle only). Offset 0×21AE4 is the check for Soundproof against the remaining team members of the Heal Bell user’s team. Basically the new instruction is: check if [Pokémon] used move with ID 0 and check for every instance of ability with ID 255. Note: You shouldn’t replace 2B by 00, because the ability with ID number 0 is used in-game when an ability gets cancelled (Gastro Acid comes to mind), whereas you can replace D7 by 00 since there is no legitimate way to get the move with ID number 0. * Regions’ differences: Language Offset 1 Offset 2 Offset 3 Offset 4 Offset 5 Japanese 0×98A8 0×98B8 0×990E 0×21AE6 0×21AEC Korean 0×98A4 0×98B4 0×990A 0×21AE2 0×21AE8 Others 0×98A0 0×98B0 0×9906 0×21ADE 0×21AE4
  5. So today we're going to restore the missing code needed to evolve some Pokémon by leveling them up in a specific location. More specifically Eevee into Leafeon, Eevee into Glaceon, Magneton into Magnezone and Nosepass into Probopass. As it is, there's currently no way to obtain those evolutions on a retail card without trading them to DPPt. This is the code for the location-specific evolution (this comes from Platinum btw): 07 4B 00 22 19 88 88 42 04 D1 50 1C 41 00 04 48 40 5A 70 47 92 1C 1B 1D [b][u]YY[/u][/b] 2A F3 D3 00 20 70 47 [b][u]XX XX XX XX[/u][/b] XX XX XX XX is the offset for the following data : 81 01 1A 00 CB 00 19 00 CF 00 18 00 D0 00 18 00 D1 00 18 00 D2 00 18 00 D3 00 18 00 D4 00 18 00 D5 00 18 00 D6 00 18 00 D7 00 18 00 D8 00 18 00 D9 00 18 00 DA 00 18 00 DB 00 18 00 DC 00 18 00 DD 00 18 00 FE 01 18 00 FF 01 18 00 48 02 18 00 49 02 18 00 Format is MM MM EE EE MM MM is the map number EE EE is the evolution method For example the first 4 bytes are read like this: 81 01 => 01 81 => map 385 which is Route 217 (oustide) 1A 00 => 00 1A => evolution method 26 which is used to evolve Eevee into Glaceon Ergo if you level up Eevee on Route 217, it will evolve into Glaceon. YY is the total of map-related evolution, times 2. Map-related evolutions are 4 bytes long each, the total is 84 bytes long. 84 / 4 = 21 Then multiply by 2. 21 × 2 = 42 42 is 2A in hex, thus in Pokémon Platinum YY is equal to 2A. As surprising as it may be, the function still exists in HGSS, or rather the leftovers. So how are we going to restore the code ? Step 1: Open Pokémon HG or SS with CrystalTile2. Step 2: Decompress the arm9 by right-clicking and then selecting Extract(U). Step 3: We're going to search for a place to fit in the new code, a place with enough unused FF FF should do the trick. Why not for example the address 0×11025C ? Step 4: Copy and paste this string: 07 4B 00 22 19 88 88 42 04 D1 50 1C 41 00 04 48 40 5A 70 47 92 1C 1B 1D [b][u]12[/u][/b] 2A F3 D3 00 20 70 47 [b][u]C8 02 11 02[/u][/b] Step 5: We need to paste the new map-data too. But wait a second, none of Leafeon, Glaceon, Magnezone or Probopass are listed in the Johto Dex! To alleviate that issue, map-specific evolution are going to be Kanto-only. Eevee into Leafeon : Virdian Forest (that one is a given) Eevee into Glaceon : Seafoam Islands except the Gym part (again, a given) Magneton into Magnezone and Nosepass into Probopass : Route 10 and Power Plant (reasoning being that Power Plant used to be home to Magnemite and Magneton) That makes for 9 maps in total, thus 36 bytes in total, hence why YY in this code is equal to 12. Copy and paste this string at address 0×1102C8 (thus XX XX XX XX is equal to C8 02 11 02 which is 021102C8 in little-endian): 92 00 1A 00 C5 01 1A 00 C6 01 1A 00 C7 01 1A 00 C8 01 1A 00 93 00 19 00 12 00 18 00 84 01 18 00 D3 01 18 00 Step 6: A problem arises, there are 3 routines who use a Branch linking to the map-evo function, thus we have to modify the pointers: Go to address 0×3CE04 and change FEFC02FC into D3F02AFA. Go to address 0×51E5C and change E9F7D6FB into BEF0FEF9. Go to address 0×81E6E and change B9F7CDFB into 8EF0F5F9. This is only for English versions for now, I will eventually update with offsets for all regions. Step 7: Save your modified arm9 and close the Hex editor. Step 8: Reinsert the arm9 into your ROM. Now you won't need to transfer the aforementioned Pokémon to DPPt with this trick, so go and evolve that Eevee / Magnemite / Nosepass.
  6. Ive searched youtube, forums, pokecheck, all types of sites to try and get it right but everytime i try to make a pokemon with pokegen for pokemon pearl something always comes out wrong to make my pokemon ineligible. I would very much appreciate if someone could make a personal video of the pokemon im trying to make. It might be a bit much to ask for just myself, but i would very much appreciate it. Anyone looking to help i can send the details of the pokemon, stats, trainer id etc etc...
  7. Hi all, my name is Zappo23! This is my very first tutorial, a complete guide to PokeGen for beginners. I tried to answer as many questions as possible with this tutorial, explaining every part with painstaking detail. This is the first tutorial that I'm posting. The reason I chose to make a PokeGen tutorial is that information about how to use it seemed too scattered. So, I decided to make a full-fledged tutorial. In Word, it's 24 pages long :biggrin:. But luckily for you, I have it here in PDF format hosted by Scribd. Complete with pictures and examples, this tutorial is sure to answer any questions you might have about a particular aspect of PokeGen. Also, if you read my tutorial and see that something is missing, or that any information is incorrect, please do not hesitate to tell me because I will fix it and update it as soon as possible after such occurrence. This link will redirect you to Scribd.com, which is a safe and secure, FREE document hosting site. Also, the conversion was kinda bad so the hyperlinks to downloads are THERE, it's just...their lines are ABOVE them instead of beneath them. Basically, every time you see a blue line, click underneath it:biggrin: . My next tutorial is going to be ShinyGTS. I also noticed about ShinyGTS that solutions to several different types of problems are also scattered around the web, so I am going to make it my personal mission to compile all the information I have learned into one comprehensive tutorial and troubleshooting guide. I hope you guys enjoy my tutorial!
  8. With this article posted pokebeach. I decided to try to see If I could modify and even add new formes to the game. The data chart in the article can be found in a/0/1/6, the stats files. The files in the narc match up to each Pokemon's national pokedex number. after 649 are the stats for formes. I am not sure what file 668 is, I added my two new files as file 669 and 670. For the Pokemon you want to add a forme too, open the file that matches there pokedex number and edit these offsets. offset 0x1C(2 byte) = Nobis offset 0x1E(1 byte) = Sprite offset 0x20(1 byte) = Formes Make the Nobis equal the file in a/0/1/6 you want its stats to be, leave it at 0 if the stats do not change. The Sprite is the number for what sprite to use. You can only use sprites that come after Genesect. using 1 will use the first sprite after Genesect. The sprite files are in a/0/0/4. Each Pokemon uses 20 files for their set of sprites. After Genesect's last forme sprite, there is some other data there and a long list of palette files. Not 100% sure what these are for, might be used for Arceus and all his alternate forme's colors. I added 15 dummy files to pad it to 14300 files so it would take up the space of 3 sprites(60 files) and make my added sprites be align to the 20 files per sprite rule. For this example I copied Reshiram and Zekrom's sprites. You also need to add sprites for the part icon. These files can be found in a/0/0/7. The first file is a pal file, followed by 2 files per sprite. Since there is 60 files (3 sprites) of dummy data after Genesect's last forme sprite, we must also add 6 dummy files (3 sprites) to the party icon file before adding our own. For this example I also copied Reshiram and Zekrom's sprites. Forme is the number of formes a pokemon has. If the pokemon has no extra formes this number is 0. If the Pokemon has 1 or more alternate formes then the number is the number for extra formes plus the base form. Shaymin has this value as 2 for it's Land and Sky forme. Pokemon who have a 1 here only have 1 forme in the current game and extra formes in future games. If a Pokemon has more that 1 extra forme, when it is in the first alternate forme it uses the data for the Nobis and Sprite Bytes. The next forme will use the data after those. Example would be Nobis of 669 and Sprite of 63 will cause the first alternate forme to use Nobis 669 and Sprite 63, the second alternate forme will use Nobis 670 and Sprite 64. I do not have any idea how to change formes in game with pokemon who have new forme, but you can have them appear in the wild in the forme and it will keep the forme once captured. Here is a video showing the results.
  9. PPRE Tutorial & FAQ Welcome to the Project Pokémon´s ROM Editor Tutorial and FAQ! Please go to THIS TOPIC to download the newest version of PPRE. This tutorial should give you all the information you'll need to get the programme working. Some extra information is given in CODE fields. You can ignore these parts of the tutorial if you already know how it works. If you already have your map with the downloaded files and a Rom File, you can SKIP STEP 1. If you're uncertain if you did the right things, just read STEP 1 as well. Tutorial Step 1 First create a New Map. For example, go to My Documents, hit the right mouse button and select 'New > Map'. Rename this map to 'PPRE' for convenience. I'll call the new created map PPRE from now on. The second step is to download the programme. Check the official PPRE Topic for a download link. What you actually download is a .ZIP file. [size=3][b]Extra:[/b] [i]What are .ZIP files and how do I open them?[/i][/size] With special programmes, you can create .ZIP files. .ZIP files make it easier to carry different files; it compresses SEVERAL files to ONE file. For example; to get PPRE working, you need 3 other files. Instead of downloading these 3 other files seperately, you can just download them all at once via a .ZIP (''package'') file. You can open .ZIP files with programmes like WinRAR or WinZIP. Evaluation Versions of these programmes can be downloaded for free from their sites. Just click one of the links below to go to their official site. [list] [*][url="http://www.rarlab.com/download.htm"]WinRAR[/url] [*][url="http://www.winzip.com/index.htm"]WinZIP[/url] [/list] Open the downloaded .ZIP file with either WinRAR of WinZip. It contains 4 files, which should be: ndstool.exe ppre.exe Tabel.tbl thenewpoketext.exe If this is correct, select the 4 Files and hit the right mouse button. Now click 'Extract...' (or something like that, it might differ between the programmes). (Check the Spoiler for an image) A new screen opens. Search for your new created map and hit the Unzip / Extract button. The 4 files will be extracted to your new map! You now need a Pokémon Rom. It has to be one of the following Roms: Pokémon Diamond Pokémon Pearl Pokémon Platinum Pokémon Heart Gold Pokémon Soul Silver [size=3][b]Extra:[/b] [i]Where can I download a Rom File?[/i][/size] Please remember though that Rom Files are [b]ILLEGAL[/b]. You may only use them if you have an original copy of the game. I can't help you with downloading a Rom file as they are illegal. NEVER ask for a Rom File on this forum. The rom has to be UNTRIMMED (untouched). The Rom should be in a .ZIP file, too. You have to Extract the Rom to the SAME NEW MAP! The following thing is very IMPORTANT. Open your new map where your Rom File should be. Now RENAME the Rom File. For example, if you have a Pokémon Diamond rom, rename it to: diamond.nds, if you have a Pokémon Platinum Rom, rename it to platinum.nds and if you have a Soul Silver Rom, rename it to soulsilver.nds, etc.! This might seem unnecessary, but it is very important. What we have is a New Map (hopefully named PPRE) with 5 files (the 4 PPRE files and 1 Pokémon Rom). Step 2 Now you have to open the ppre.exe file. Double click to open it. You should see the following screen (beta-number might differ). Follow the following steps to get the programme working. Never forget any of these steps or it will go wrong! Step 1: type in the name of your Rom (which should be diamond.nds, pearl.nds, platinum.nds, heartgold.nds or soulsilver.nds) in the RED TEXT FIELD. With 'Red' I mean the red-circled field as you can see in the screenshot above. You have to add the '.NDS' suffix! Step 2: Now you click the green-circled button 'Set Rom'. A black screen should open. Please wait, it will take around 1 minute. Do not click anywhere during the progress. When the black screen goes away, you can continue to Step 3. [size=3][b]Extra:[/b] [i]What is happening during Step 2?[/i][/size] The ppre programme is now 'opening' your rom. It uses the ndstool.exe file to create a temporary map, which is needed to edit your Rom. In your PPRE map, a new map should be created, called: tmp_platinum if your game was Pokémon Platinum Version, or tmp_pearl if your game was Pearl, and so on! This map is needed to edit with PPRE, so DO NOT delete that map. Step 3: it's time to edit! I might create a tutorial about how that works, too, but for now, you should be able to do it yourself! You can edit POKéMON, MAPS and TRAINERS. As this is a Beta, you can not edit ABILITIES, ITEMS, MOVES, etc. yet. Don't click that buttons. Step 4: ah, so you changed the things you like? You made Lugia evolve into Magikarp and Pikachu evolve into Arceus? Eh, nice. Now you have to save your game. Take a look at the screenshot. You see the blue-circled textfield? You have to enter the following: pearledit.nds if you were editing a Pearl Rom, platinumedit.nds if you were editing a Platinum Rom, heartgoldedit.nds if you were editing a Heart Gold Rom and so on! Step 5: now click the orange/yellow-circled button 'Write ROM'. Wait a minute again and take a look at your PPRE map. A new file called platinumedit.nds (or something else, depending on the rom you're changing) should be created! YOU NOW PERFECTLY EDITED YOUR ROM! Thanks for using this tutorial! Happy Rom-editing! [ --- I'LL ADD THE FAQ HERE VERY SOON AND UPDATE IT FROM TIME TO TIME, PLEASE HAVE SOME PATIENCE! --- ] @ the Moderators, as my mother language is not English, be free to edit any typo's and spelling errors.
  10. Sorry guys but the results are in and this isn't working. I don't know what else to try so consider this project dead until further notice. The following is kept for informational purposes only: MUST-READ: There are several important pieces of information that you should be aware of here: I recommend that you DO NOT use the method I am going to detail here. This method is potentially risky and much more restricting than simply using a save editor (which I do recommend). This requires your copy of D/P/Pt/HG/SS to be retail; no flashcards. This requires at least one DS "Phat" or DS Lite. The second DS can be any model DS, as long as it will run Black/White from a flashcard. This requires that you flash the firmware of your DS "Phat" or Lite. Flashing carries an inherent risk of bricking your device and/or voiding your warranty. I am not responsible if that happens. That said, I have flashed my DS without a problem and will provide guidance for you. Firmware can be flashed back to its untouched state later. If after reading the above bulleted items, for whatever reason, you still want to try this method, follow the step-by-step instructions below. For now the modifications I've made are only available as part of Project Pokemon's English translation patch. Make sure you have applied the latest version from here to your B/W ROM. Just let me know if this doesn't meet your needs. Now we need to flash your DS "Phat"/Lite. Download FlashMe from here and place it on your flashcards's microSD(HC). Make sure your flashcard is in the Phat/Lite you want to flash. Boot your flashcard and run FlashMe. As it will tell you, you should plug in the charger before continuing. Once that's done press x+b twice. Now you'll see a new paragraph followed by a line reading "Progress:" ... If the progress percentage goes right to 100 and you get a new paragraph saying it's safe to turn of the DS, you're done. Most likely in that last step you didn't make it past 0%. If that's the case, get out a small Phillips screwdriver and a small flathead screwdriver. Use the Phillips to open up the battery compartment of your DS. Depending on if you have a Phat or Lite, you will see something like this: The part circled in red might have a bit of paper stuck over it, you will have to remove it. You can either discard it or try to stick it back when you're done. Now you have exposed the SL1 terminal (circled in red). As FlashMe says, we need to short this. Use your flathead screwdriver to bridge the two sides. Make sure you're applying constant, firm (but not hard) pressure on the screwdriver. Flip your DS around, still holding the screwdriver in place, and have another look at the percentage. It should be progressing upwards now. If it pauses don't panic, just adjust the screwdriver a bit and it should continue. Continue holding the screwdriver until you get a message that it is safe to turn off the DS. Turn it off and you're done flashing. You can ditch the screwdriver and put your battery cover back on. Upon turning on your DS again you'll notice that the health and safety screen is gone, this is normal. You can now PokeShift/Transfer Machine as you normally would, only with an English game. Just make sure the English game is in your flashed DS and your B/W is patched as mentioned in step one. Enjoy! Technical Note (You don't need to read this.) Some folks out there might be wondering why it's necessary to flash the client DS. After all, nobody has needed to flash a DS since practically the beginning of time right? Well, as you probably know B/W uses download play for cross-generation communication. That brought in an ancient problem in respect to editing the regions. The region is of course specified in the download play ROM (which is inside and sent from the B/W ROM); problem is, Nintendo decided in developing the original DS that all download play ROMs must be RSA signed to prevent unauthorized code execution. Lucky for me there was an ancient solution to this ancient problem: flashing, which removes the RSA signature check from the DS's firmware, freeing it to run my slightly modified ROM. =) I'd like to give a big thanks to to those who worked on FlashMe and its custom firmware; this wouldn't be possible without them.
  11. EDIT: I added a new script at the bottom of this post. Hi guys, this is my first tutorial so sorry for mistakes Anyways, like the title says, it's about Pokemon Trainer Battle Scripting. So far I only know it works for HG/SS. If you want to use in Platinum or D/P, feel free to try and please tell me if it works. On to the tutorial. Here are the tools you need: Once you've downloaded the things needed, put your HG/SS rom into PPRE's folder. Then open up PPRE and click on choose rom. Select your rom and click Set Rom. Then command prompt should appear. PPRE is extracting your rom now. Once PPRE has finished, click on Trainers. Once you opened up Trainers, select a random trainer from the list. Edit the Trainer's information now(Number of Pokemon he/she had and so on). Once you changed the number of Pokemon, click another trainer from the list and go back to the trainer you edited to see that the number of Pokemon had changed. NOTE: I can't seem to edit the Trainer's name, so I used an older version of PPRE, which worked. However, the Pokemon's level is maximum 99 and I cant save my scripts using that. After you've edited the Trainer, TAKE NOTE OF THE NUMBER BESIDE HIS/HER NAME. IT'S VERY IMPORTANT. For me it's 24. Save your changes afterwards. Next, go to Maps and choose the map you want. For me I'm going to use Cianwood City Gym. Go to the Events tab and click on Overworlds. See the number at the top right corner? That's the number of overworlds. Click on the up arrow to increase the number of overworlds. You might see a new tab now. Type in the ID of the overworld, which is this: Now type in the sprite. The values for them are here: However, PPRE can read only Dec numbers, but these are Hex numbers. So open up Calculator, and go to the Scientific Mode for XP. I don't know what to press for the other computers so you have to figure out yourself. Go to Hex and type in the number for the sprite. Click on Dec next to get the Dec number. Write this in PPRE. Next for the movement. I don't really have the list for the movements(I'm too lazy to figure out :'( So if you got the list, please tell me and I will give credit.) However I do know that 15 is facing down and 20 is facing up.) Type it in the box. Flag... I don't really know what's that but I will figure it out sometime, probably after B/W is released.. I'm just too busy :sleeping: Script we will come to it later. Line of Sight, by the name, you probably know what's it. It's use for detection for normal trainers, like when you're walking along Viridan Forest when a trainer spot you. X-, Y- and Z- coordinate, pretty simple. I don't know bout Z though. Anyway, you might ask, how do we find the X and Y coordinate? Simple! Using the Lua Script, open it in DeSmuME and activate the script! Move to the spot where you want your trainer to be at and he will stand there! However the Lua Script doesn't work on Patched Roms. After finding out the X and Y coordinate, type it in the boxes. Once you've done all these, take note of the ID of your overworld. Next, go to the Text tab. You will see that there's already a lot of text. Write your trainer's beginning and losing text like this: text_[continued number]="[text]" So for example I want to write this: Yo! This is a guide! And the text number is 5, I will write in PPRE this: text_5="Yo! This is a guide!" Just remember, \n is for line break and \r is for new box. After writing your text, note down the text numbers - both beginning and lose text. I don't know how to make the winning text activate, sorry Now go to the Scripts text and go to Scripts. Press add script and go to the new script. Now we can begin writing our script. Example of Script: Lockall starts your script. Lockall is basically the same as the script starter you use when hacking GBA games. Faceplayer, too, exists in GBA hacking. Just let the trainer turn to you when you talk to him/her. Message [number] is the text you wrote just now. [number] is the text number which I told you to note. WaitButton and CloseMsgOnKeyPress works together. The trainer battle will begin after you pressed A or B(WaitButton). The message will then close(CloseMsgOnKeyPress). TrainerBattle [number] 0 1 starts your trainer battle. [number] is the trainer number I told you to note just now. You can see why it's important now. Message [number] is the losing text. Releaseall MUST be present if you wrote Lockall. It releases the NPCs around. End is the ending of the script. VERY IMPORTANT. Now that you finished your script, save your changes. Go back to PPRE and type in your rom name, also remember to write in the ".nds" without the quotient marks. After your rom has finished creating, open your rom and enjoy! Also if you want to edit the sprite of your trainer, I might write a tutorial on it, but it's best if you follow KazoWAR's on Youtube. Thanks for reading my tutorial! This is my first tutorial so I hope you would rate my skills on writing tutorials. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Here's a completely optional part: Removing people. Basically, after you've finished your battle, you can make the trainer disappear. Here's an example of the script: The new part edited, as you can see, is Applymovement 5 mov_1 Waitmovement Removepeople 5 Before I go into explaining, go to Maps, choose your map and Scripts, before finally going to Movements. Choose Add Movement. A new tab should form. Now, you have to write your movement. The movement format must be like this: [movement_name] [number_of_times] Movement_name is the type of movement you want your OW to move, such as the 1 I used, WalkDownNormal. Here's a list of the movements: Number of times is the number of steps you want your OW to move. Pretty simple, you should understand. Now to explain the script. Applymovement [OW ID] [mov_[id]] is put into your script. Applymovement is to apply a movement on [OW ID] which is your OW's ID, which I explained earlier at the previous post, and [mov_[id]] is the ID of your movement. For me it's mov_1. Waitmovement is to wait for the movement to be finished before the OWs can be released. Removepeople [OW ID] is to remove the OW you assigned to. By now you should know what's [OW ID]. So now that your movement script is finished, save your changes, write your rom and begin playing! ~Hope this helps!~ LUA Script.zip
  12. Ok not sure if im posting this in the right place but Here it is Credit to CodeBrain for this one: First, open up your rom with NDS Top System. Then load your Rom. Then, go to the browse section, and open the poketool folder. (Look at image Tut-01 in attached.) Go into the pokegra folder, and right click on pl_pokegra. Click extract and save it somewhere. (Look at images Tut-02 and Tut-03 in Attached.) Open pl_pokegra in Poke DS/Pic Platinum. Head down to number 1495, and click the SavePng option. Save it in the a folder with any name. Do this with 1497, and 1499 as well (Save them in same folder!) (Look at images Tut-04, Tut-05 and Tut-06 in attached.) Open them all in Adobe Photoshop. Look at the FRONT sprite. Click on Image, then Mode, and finally on Color Table. (Look at images Tut-07, and Tut-08 in attached.) Edit the colors as you wish, but only from the COLOR TABLE. In this case, I recolored Lugia into Shadow Lugia. Here is his sprite: While still in the Color Table menu, click the Save button, and name it something. Look at the back sprite. Click Image, Mode, and finally Color Table. (Look at images Tut-09 and Tut-10 in attached) Click load, and find your previously saved table. (Last step) Your image SHOULD look the same as this: i19.photobucket.com/albums/b152/ShadowFireMario/back.png If it only looks slightly different, then it shouldnt be a big deal. When I say small, I mean like the eye color is different. Just replace it with the real color thats in the COLOR TABLE ONLY. If it really looks different (aka the purple is orange) then your not using the same palette. Save both images, doesnt matter if it's interlaced or not (I dont think it does...). Open Pokemon DS/Pic Platinum (In case you closed it) and go to #1495. Replace this image and the next one with the Shadow Lugia back sprite. Replace #'s 1497, 1498, 1499, and 1500 with Shadow Lugia's Front sprite. (Look at images Tut-11, and Tut-12, in attached.) If done correctly, no palette errors should occur. If there is (Such as a corrupted image or colors arent right, etc.) See the FAQ. Open NDS Top System, go to the Poketool folder, then the pokegra folder. Right click on pl_pokegra.narc, and click import. Find your edited pl_pokegra.narc, and import it in. Load up your game and see if it worked! I made a shadow lugia sprite Also thanks to SCV for making PokePic Platinum
  13. Download the patch: HeartGold - SoulSilver For those of you who just want to use this and don't give a crap about how it works, follow these simple steps: If you don't have them already, you'll need CrystalTile2 and Tsukuyomi UPS (or any UPS patching tool). I've tailored this guide/patch to work with any HG/SS ROM, no matter how much anti-anti-piracy, translation, etc. crap you've applied. Open your HG/SS ROM with CrystalTile2 (you can ignore the small window that pops up when you first open the program) and go to Tools>NDS File System. A new window will pop up with a long list of files. Scroll down until you see the one labeled "overlay9_0074", right click it, and select export. Save the file anywhere you like. Open Tsukuyomi UPS and select "apply patch to an existing file". Use the file you exported as the target file and apply the patch that corresponds to your game. Switch back to CrystalTile and right click the same file as last time, then select import and browse to your patched "overlay9_0074.bin". You're done! Save the ROM and you're ready to start migrating from your English GBA games. Now for details. I'd done this before on D/P/Pt but HG/SS's overlay files are compressed, so it wasn't as simple as the find and replace it had been in D/P/Pt. Initially this had me stumped because although I knew the files were compressed (and there's documentation around on how they're compressed), I am not much of a programmer and didn't have any tool to help me decompress the files. Yesterday though I realized that the function was included in CrystalTile2, a program that has been sitting on my desktop for some months but never got fully explored. Fail. Anyway, just right click a compressed overlay in CrystalTile's NDS filesystem explorer and you'll have the option of decompressing and saving it or opening a decompressed file and compressing it to that location. The process once you've got the decompressed overlay (#74) is easy enough; do a text search in a hex editor for AXVJ. It'll find a small list of game IDs for the 3rd gen pokemon games in which you can replace all J's with the letter corresponding to your language and vice versa. Save and compress/insert the edited overlay and you're good to go. Any 4th gen game can be hacked to accept any third gen game in a similar manner. Hope this is useful to someone! A big thanks to Mewtwo2000 who originally showed me how to do this for D/P.
  14. I can't find one anywhere (that's suitable for me, and specifically for games). I already understand Hexadecimal, Binary, Octal (Not that I'll need it), Decimal (THE HARD KIND), and how to convert between them. I also know Logic Gates, but that probably only applies to hardware, not software. I want to learn about addresses, and what order I would put a code in, and things like that. I own a Trainer Toolkit, but I don't understand large portions of the manual. If anyone could give me a link to a website that I don't have to sign up for, I would be eternally grateful. I still don't get what 32-bit addresses and "If equal to/If more/less than" means. If you know an incredible tutorial that I would have to sign up for, that would be fine, too. Thanks in advance!
  15. Smudge sigs almost always look good. Often, its pretty easy to actually get started with making them. This tutorial is a quick compilation of what I do to create signatures. Heres the tutorial: http://www.youtube.com/watch?v=LXfkI2P6ajs Result: Find your own render, there are plenty. Just look around. In any case, I'd like to make a request. Use this specific format for learning. There are many much better formats that you'll learn over time. My format is outdated, but I don't feel like doing a new tutorial. Still, you I hope you find it useful. Thanks!
  16. So, if you want to fix the freezing problems, there is an ActionReplay DS code and a Codebreaker DS code that allows you to play without freeze. The ARDS code is 020DD9E4 E1A00000 (You have to tick the "RAW" box on NO$GBA) The CBDS code is 220DD9E4 E1A00000 (You don't need to tick the "RAW" box) I found the ARDS code on the internet, then converted it to CBDS using a code converter, tested it and it worked. Now, if you have a flashcart that supports full ARDS (Including raw) or supports CBDS, you're good to go. Please note that I only tested these on NO$GBA, so it might only work on this. If you want to help me, you can tell me if R4DS supports either raw ARDS codes or CBDS. I know if supports ARDS, but I don't know about CBDS and raw ARDS codes.
  17. Hi ProjectPokemon, I have noticed many translation hacks and yet their translations are missing english banner informations. I don't think images are necessary but here is an example if you don't understand what I'm talking about: "Pokemon Heart Gold NDS Version Nintendo" So now you're translation(s) can look more official! I have only done Heart Gold so far so I don't have a Soul Silver file yet but tell me if I should upload one You just need a uncompressed Pokemon: Heart Gold Version ROM (not supplied because it would be illegal to distribute them), TheNEWPokeText (I think we all know where it is located), and the edited banner file (Click here to Download). Just replace the banner.bin file located in your "tmp_XYZ" folder (Note: Not actually "XYZ" but your ROM's name) and repack the files into your ROM and you're done. Remember to give credit to me if used Project X out
  18. 0. Why PyQt? When ever one plans the development of an application, an important consideration is the language one will use to code it. Some of the things that can play a role are: Will the application have a GUI Will the application be cross-platform or platform specific. Do you want a high-level or low-level language (or something in between) Nowadays, it is very common to want to develop applications that have a user friendly GUI. For windows only applications C# is a great option. Visual C# Express is available for free from Microsoft and has an easy to use GUI builder. However, if one wants to code a cross-platform application C# is no longer such an attractive option. While The Mono Project aims to allow for C# applications to be cross-platform there are many things missing. C++, a very popular and poweful language, is a cross platform language, but unfortunately it does not have a standard GUI builder. What one must do is decide on a package to use for the GUIs. Some populat options are WxWidgets and Qt. However, C++ is a low-level language. If one prefers a high-level language to stay away from all the complications of programming in C++, Python is a great option. Like C++, it is a cross-platform language. Also like C++, it does not have a standard GUI package. Because Qt is one of the more powerful and expansive GUI packages for C++ and has been ported to python, PyQt is one of the best options for developing GUI applications with Python. The official PyQt introduction can be found here: http://www.riverbankcomputing.co.uk/software/pyqt/intro Or particulat interest is: As mentioned in the official Why PyQt?, Python is an interpreted language, whereas C++ is a compiled language. This can mean slower applications. When speed is a crucial issue, one might choose C++ despite having to deal with the low-level language implications. I. Getting Started Here a few things that you need to get started with PyQt. Python 2.6 http://www.python.org/download/ PyQt4 for python 2.6 http://www.riverbankcomputing.co.uk/software/pyqt/download I started learning pyqt from this book: http://www.qtrac.eu/pyqtbook.html Even if you cannot buy the book or find it at a library it is still useful to get this: http://www.qtrac.eu/pyqtbook26.zip Inside you will find sample code and more importantly Make PyQt (makepyqt.pyw) Make PyQt is a python program that will turn the ui files made using the Qt Designer. II. A PyQt IDE While it is possible to develop pyqt programs with only a text editor, there are many conveniences that once can take advantage of. I would at least recommend using the Qt Designer (comes with PyQt) and Make PyQt (makepyqt.pyw) to generate the code needed for the GUIs. Combined with something like Programmer's Notepad this works very nicely. However, for those who prefer to use an IDE, there is a good option. The Eric4 IDE is a great tool that helps keep one's projects in order. I will be using it for the examples. III. Example (Updated example, comming soon) PyQt programs begin as follows: from PyQt4.QtCore import * from PyQt4.QtGui import * import ui_ppremain PyQt4.QtCore and PyQt4.QtGui are the basic modules that we need to make PyQt Programs. import ui_ppremain, imports the file ui_ppremain.py, which is what makepyqt.pyw outputs when you choose to build in the directory where you have your ui files. and the code that executes the program as follows: app = QApplication(sys.argv) mw = MainWindow() mw.show() app.exec_() the code for the main window would be: class MainWindow(QMainWindow, ui_ppremain.Ui_MainWindow): def __init__(self,parent=None): super(MainWindow,self).__init__(parent) self.setupUi(self) self.updateUi() self.romname=""; def updateUi(self): self.nameLabel.text="ROM Name:" One thing to notice is that indentation is important in python. Structure is provided through indentation rather than braces as in other languages. More concrete examples to come later. Feel free to ask questions.
  • Create New...