cpan1 Posted May 23, 2013 Share Posted May 23, 2013 Edit: Head over to the ROM Editing Directory to find your files even faster. This is a Work in progress. Please check back constantly for new information. About This post synthesizes common questions and information from around the Forum in an attempt to create a place where new hackers can easily find solutions to simple problems without the need to create repetitive threads about the problem.*So here we go: General Information Tools for BW/B2W2 Rom Editing Answers: "I need tools!" EDIT: HAVE = LOCATED IN DOWNLOADS PAGE For descriptions of the tools, go the the linked site or check the spoiler. KazoWar's BW Tools: Link - HAVE Andibad's BW Tools: Link - HAVE TwistedFatal's BW Toolbox: Link - HAVE Zero's: Starter Editor (Link) - DEAD FILE, Trainer Editor (Link) - HAVE BWTE2.0 - 1000: Link - DEAD FILE Extended version of BWTE that allows you to edit extended trpoke and trdata (up to 1000 trainers) for custom hacks. NPRE: Link - DEAD FILE PPNFR: Link - HAVE Project Pokemon NARC File Replacer: Self explanatory name, replaces files in *.narc. PPTXT: Link - HAVE Tinke .9.0.0: Link - HAVE CrystalTile 2 (CT2): Link - HAVE HxD: Link - off site Third party software VGMTrans: Link - DEAD FILE Allows you to view and listen to the music in the .sdat file. Kiwi.ds: Link - HAVE NitroExplorer: Link - HAVE A *.nds browser. Extracts and replaces files. Pokemon Rom Changer: Link - HAVE SDSME: Link - HAVE *Please don't request tools. They won't be answered. This list will be updated as new tools come out. Don't expect there to be tools for everything.* Likewise, don't request NARC files or ROMs. If Tools Don't Work… Answers: "The tool doesn't work!" or "The tool gives me errors!" There are a couple of steps you should take for this: 1. Find another tool. (e.g. if Tinke can replace narc files correctly, use PPNFR) 2a. Use Hex or 2b. Wait if the problem has already been recognized (no need for redundant posts) or ask/tell the program creator politely if it hasn't. NARC Locations: Answers: "Where is the NARC that holds [insert whatever you need] located!" B2W2 General Rom Info: Link Full List for your convince: Link Use this list for BW2 exclusively: Link *Always check here before asking where a certain NARC is! This place most likely contains everything you need. If it is not in the main thread, then click on the clicky and use Ctrl-F/Command-F/Scroll-and-search to find what you need!* Hex Editing Answers: "Where are tools for […]!" or "[Whatever tool] doesn't work!" Not everything comes with tools [yet] (e.g. Scripting), and also some tools are broken, lost, etc,etc. So hex editing is a crucial aspect that you should master or at least know the basics of. It is, simply speaking, the basics that you should learn. So, here are some simple tips: 1. Learn your editor: Learn the basics, where everything is located, how to use, and how to save 2. Learn the hex (base 16) number system: Hex is (as you guessed!) in the hex number system which is in base 16. So, instead of counting from 0-9, you count from 0-F (0 - 9, then A-F) 3. Use the programmer features on your calculator 4. Learn some binary: I know this is hex, but sometimes hex relates to binary (e.g. PWT/Subway trainers and EV values) 5. Know simple terminology (e.g. offsets, etc.) 6. Practice: Make backups and try to edit in hex before tools. It can give you a better understanding on everything and if tools fail, you know how to use hex so you don't have to waste time searching for more tools, fixes, etc.. 7. Learn how to split the hex values into their correct chunks and groupings Link to comment Share on other sites More sharing options...
cpan1 Posted May 23, 2013 Author Share Posted May 23, 2013 (edited) 4bpp vs 8bpp Before we talk about limiting colors, its important to know the difference between 4bpp and 8bpp. A 8bpp image supports 256 colors. A 4bpp image supports up to 16 colors. A quick way to check would be to use Tinke. After you load the image, go to image properties and you can see if the image is 4bpp or 8bpp. So, if your image is 8bpp, don't worry about the 16 color limit. You should have enough with 256 (hopefully). If you encounter an error, it most likely be due to something else. If your image is 4bpp (e.g. mugshots, PWT images) and your image looks funny, see below. Limiting Colors Answers: "My sprite looks fuzzy/weird/corrupted/incorrectly colored!" or "Tinke says I have too many unique colors!" The answer here is short and simple: Cut the number of colors you are using, generally down to 16 colors for the most part (that is if you are 4bpp, see above). When you are limiting your palette, you can use a program (e.g. Gimp) or be careful when you are modifying your image with an image processing program. Tutorial (Gimp): //Pictures Coming Soon 1. Open your image in Gimp (I'll be using Yellow by Coronis) 2. Image->Mode->Indexed 3. Maximum Number of Colors: 16 4. Press Convert 5. Check your image and make sure that everything is correct. Make sure that the background color is not in the image lest you want that section to be invisible! 6. Colors->Map->Rearrange Colormap… (not sure if 6-7 is needed but just in case) 7. Move the background color to index #0. 8. File->Export... -> Choose *.png 9. Reinsert File: Tinke, BWSE, BWOE, BWME, etc, etc. Replacing/Modifying Trainer Sprites Minor Modification: Simple Sprite Editing with BWSE: If you are doing a simple edit on the original image (e.g. changing colors, small, minor add ons), do what you normally do: extract the file, and edit it, and reinsert. Just make sure that you are keeping to the 16 color limit rule (if applicable, see above). Answers: "When I replaced a sprite with BWSE it looks all choppy!" Tools Needed: Tinke and/or PPNFR Using preexisting sprites (e.g. replacing Nate with Hugh): When you use BWSE, you only see the images. There are a total of 8 files! These files control other aspects of the image including palette and animations. Therefore, you must copy all of the files to the new locations using Tinke and/or PPNFR. You have to replace and/or copy all these files. You can use BWSE to get a general idea of which files contain which. For example, Sprite id#0 is Nate -> Files 0-7. Sprite id#1 is Rosa -> Files 8-15, etc. (Follows the pattern [8*n, 8*n+7] where n is the sprite index) If you need help swapping, see next post for more information. Complete Sprite Replacement: Creating a new sprite: If you are using your own image, make sure that you use the original image as a guideline so the file does not become broken. This rule applies to front and back sprites. Just make sure that they overlap correctly (see here for a good example by RubyCarbuncle). If you need help on insertion, see below. Image and Palette Replacement with Tinke (Custom Image): So lets say you created your own Image for whatever. Here is what you need to do: 1. Find the NARC and open with Tinke 2. Select the correct palette 3. If image is compressed, unpack it 4. Replace the image (if it gives you a color error, see the Limiting Colors section) 5. Select Replace Palette and upload the image again 6. Save the NARC Full Body Mugshot: Link Edited June 1, 2013 by cpan1 Link to comment Share on other sites More sharing options...
cpan1 Posted May 23, 2013 Author Share Posted May 23, 2013 (edited) Swapping Files with Tinke and/or PPNFR (Preexisting Files) Lets say you wanted to create a play as Hugh, N, Yancy, Cynthia, etc, etc. with some preexisting sprites. This is what you need to do: 1. Find the NARC and open with Tinke 2. Extract all the files you need in the original format (e.g. sprite, over world, xtransceiver, etc in whatever format it is in like *.bin) 3. Go to the files you want to replace and do the same thing 4. Swap the files. This can be done with PPNFR or Tinke 5. Save and reinsert NARC. *Note that it is important for you to identify all the files that are needed. If you don't, you will end up with choppy images, incorrect colors, etc. Example - Replace Nate with Marlon (PWT Icon): This example shows a simple image and pallet swap. 0) Load /a/2/0/1 1a) Use Tinke to extract 238.bin and 239.RLCN 1b) Do the same with 1.bin and 2.RLCN 2) Unpack the 1.narc 3) Navigate to the image and palette file (Do NOT unpack the image file! Just extract the .bin file). 4) Replace files with Tinke 5) Save and reinsert NARC. If Tinke does not work for you, then try PPNFR: 4) Open up PPNFR and open the NARC 5a) Go to Index 0 (Image) - > Replace file 5b) Replace with your 1_238.bin file 5c) Go to Index 1 (Palette) -> Replace File* 5d) Replace with your 1_239.RLCN file 6a) Go to Index 238 (Image) - > Replace file 6b) Replace with your 1_0.bin file 6c) Go to Index 239 (Palette) -> Replace File* 6d) Replace with your 1_1.RLCN file 7) Reinsert NARC into ROM.  Example - Switch Nate and Hugh Xtransceiver Sprite\ 1) Extracted the NARC and named it xtrans.narc 2) Extracted the files needed (first #) and added - "2nd number" which is the index it should go to. (e.g. xtrans_2-3.RLCN means that the original file was xtrans_2, and it needed to be moved to the index of xtrans_3, xtrans_3-2 is the opposite) 3) PPNFR to replace the files. -------------------------------- Type Effectiveness Original Post: Link Table Offsets White 1: 0x3A37C in Overlay 93 Table Offsets White 2: 0x3DC40 in Overlay 167 How to edit: 1. Extract the corresponding overlay file. 2. Uncompress it with blz.exe from CUE (blz -d overlay here) 3. Go to the correct offset: 4. Edit accordingly: attacking_type * 17 + defending type + 1 = value to seek to ->0x00 = No Damage (e.g. Ghost attacks normal) ->0x02 = 1/2 Damage (e.g. Grass attacks fire) ->0x04 = Normal Damage (e.g. Normal attacks ice) ->0x08 = 2x Damage (e.g. Fighting attacks normal) typedef enum { TYPE_NORMAL = 0x0, TYPE_FIGHT = 0x1, TYPE_FLY = 0x2, TYPE_POIS = 0x3, TYPE_GROUND = 0x4, TYPE_ROCK = 0x5, TYPE_BUG = 0x6, TYPE_GHOST = 0x7, TYPE_STEEL = 0x8, TYPE_FIRE = 0x9, TYPE_WATER = 0xA, TYPE_GRASS = 0xB, TYPE_ELEC = 0xC, TYPE_PSY = 0xD, TYPE_ICE = 0xE, TYPE_DRAGON = 0xF, TYPE_DARK = 0x10, } PokeType; The Table: NOTE: Bold = Offsets; Italics = Attacking/Defending Type; Normal = Damage Defending -> [i]0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10[/i] [b]0x000[/b]: [i]0x00[/i]: 0x04 0x04 0x04 0x04 0x04 0x02 0x04 0x00 0x02 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 [b]0x011[/b]: [i]0x01[/i]: 0x08 0x04 0x02 0x02 0x04 0x08 0x02 0x00 0x08 0x04 0x04 0x04 0x04 0x02 0x08 0x04 0x08 [b]0x022[/b]: [i]0x02[/i]: 0x04 0x08 0x04 0x04 0x04 0x02 0x08 0x04 0x02 0x04 0x04 0x08 0x02 0x04 0x04 0x04 0x04 [b]0x033[/b]: [i]0x03[/i]: 0x04 0x04 0x04 0x02 0x02 0x02 0x04 0x02 0x00 0x04 0x04 0x08 0x04 0x04 0x04 0x04 0x04 [b]0x044[/b]: [i]0x04[/i]: 0x04 0x04 0x00 0x08 0x04 0x08 0x02 0x04 0x08 0x08 0x04 0x02 0x08 0x04 0x04 0x04 0x04 [b]0x055[/b]: [i]0x05[/i]: 0x04 0x02 0x08 0x04 0x02 0x04 0x08 0x04 0x02 0x08 0x04 0x04 0x04 0x04 0x08 0x04 0x04 [b]0x066[/b]: [i]0x06[/i]: 0x04 0x02 0x02 0x02 0x04 0x04 0x04 0x02 0x02 0x02 0x04 0x08 0x04 0x08 0x04 0x04 0x08 [b]0x077[/b]: [i]0x07[/i]: 0x00 0x04 0x04 0x04 0x04 0x04 0x04 0x08 0x02 0x04 0x04 0x04 0x04 0x08 0x04 0x04 0x02 [b]0x088[/b]: [i]0x08[/i]: 0x04 0x04 0x04 0x04 0x04 0x08 0x04 0x04 0x02 0x02 0x02 0x04 0x02 0x04 0x08 0x04 0x04 [b]0x099[/b]: [i]0x09[/i]: 0x04 0x04 0x04 0x04 0x04 0x02 0x08 0x04 0x08 0x02 0x02 0x08 0x04 0x04 0x08 0x02 0x04 [b]0x0AA[/b]: [i]0x0A[/i]: 0x04 0x04 0x04 0x04 0x08 0x08 0x04 0x04 0x04 0x08 0x02 0x02 0x04 0x04 0x04 0x02 0x04 [b]0x0BB[/b]: [i]0x0B[/i]: 0x04 0x04 0x02 0x02 0x08 0x08 0x02 0x04 0x02 0x02 0x08 0x02 0x04 0x04 0x04 0x02 0x04 [b]0x0CC[/b]: [i]0x0C[/i]: 0x04 0x04 0x08 0x04 0x00 0x04 0x04 0x04 0x04 0x04 0x08 0x02 0x02 0x04 0x04 0x02 0x04 [b]0x0DD[/b]: [i]0x0D[/i]: 0x04 0x08 0x04 0x08 0x04 0x04 0x04 0x04 0x02 0x04 0x04 0x04 0x04 0x02 0x04 0x04 0x00 [b]0x0EE[/b]: [i]0x0E[/i]: 0x04 0x04 0x08 0x04 0x08 0x04 0x04 0x04 0x02 0x02 0x02 0x08 0x04 0x04 0x02 0x08 0x04 [b]0x0FF[/b]: [i]0x0F[/i]: 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x02 0x04 0x04 0x04 0x04 0x04 0x04 0x08 0x04 [b]0x110[/b]: [i]0x10[/i]: 0x04 0x02 0x04 0x04 0x04 0x04 0x04 0x08 0x02 0x04 0x04 0x04 0x04 0x08 0x04 0x04 0x02 [b]^[/b] ^Attacking Type [b]^Offsets[/b] With 0x00 = No Damage, 0x02 = 1/2 Damage, 0x04 = Normal Damage, and 0x8 = 2x Damage Makes Perfect Sense: Attacking Type: 0x08 (Steel), Defending Type 0xA (Water): You get 0x02 - > 1/2 Damage (Steel isn't very effective against water) Edited July 10, 2013 by cpan1 Link to comment Share on other sites More sharing options...
cpan1 Posted May 23, 2013 Author Share Posted May 23, 2013 (edited) Scripting See Kaphotics post Here for a tutorial on B2W2 scripting. Music ...To be completed later... Text Editing and/or Text Locations Answers: "How do you change what [character] says" and/or "Where is [thing you need] located?" To edit text, you need PPTXT and one or both of the following NARC's: Main NARC - Menus, trainer lists, trainer class names, etc. (/a/0/0/2) Story NARC - Actual storyline, what elite 4 says, etc. (/a/0/0/3) Then you can do what Kaphotics said: 3 ways to do it: Search one of her quotes on Google, add "rawdb" to your query and PP's RawDB should be the first result. The page will tell you the text file and will give you a printout of that text file for reference. Use a Lua script to see what text file is used on the current map. The text file used is in the bottom right corner. Using PPTXT, all the entire text to a text file. Ctrl-f the speech she has, and find which entry it's in. If you need to edit trainer lists and/or mugshot text, see below. Trainer List and/or Mugshot Text in PPTXT Answers: "What does the weird 'corrupted/encrypted' trainer list mean?!! I can't find what I need!" or "How do you edit ___ wants to battle?" Again, RawDB: Use line numbers to help navigate. All this is in the main.narc (/a/0/0/2) BW Trainer: File 190-(Link, cleaned), BW Mugshot: File 176-(Link) B2W2 Trainer: File 382-(Link), B2W2 Mugshot: File 368-(Link) Extending Text Files Answers: "How do I add more lines into PPTXT for my custom scripts?" There are two possible ways but both requires you to make a backup of the actual text first: Option 1 ( by Kaphotics @ about 16:00):1. Using PPNFR, go to index you need 2. Insert in that index an empty text file. 3. Go back to PPTXT, and paste back the original text and add your text If Option 1 does not work for you: Option 2: 1. Find an index that has more lines of text (lets call this file a) 2. Extract that index with Kiwi.ds 3. Using PPNFR, go to the index you need (lets call this file b) 4. Insert in that index the extracted file. (replace a with b) 5. Go back to PPTXT and paste back the original text and add your text 6. Ensure that there are the same number of lines (e.g. If a had 33 lines, ensure that the new "b" file has 33 lines, even if it is newlines Helpful Stuff RawDB: Link B2W2 General Rom Info: Link Adding NPC by Kaphotics: Link Scripting by Kaphotics: Link BW/B2W2 Item Data by Andibad: Link Resource Dump (Tutorials, etc.) by Bond697: Link LUA Scripts: Link Something Important! The search feature is your friend! If this thread doesn't answer your question, search the forums, Google, or any other place before posting your thread! Because this is so important, I will restate it: Search before asking! Searching Tips: 1. If you are too specific, generalize a little. Who knows? Your answer might be there. 2. If you are too general, be more specific. 3. Find information about your topic on games in general. There might be similarities. 4. Don't stop at the first page. True, the first page is pretty is most likely going to be the most relevant, but there just might be something on the other pages. 5. Ctrl-F, CMD-F, etc: Search the page you are on for information! 6. Find related threads. Your question might be answered there. Questions, Comments, Suggestions, Errors? Please share your thoughts below or through PM Edited May 28, 2014 by cpan1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now