"PocketNES ROM Builder" user manual, because simple isn't simple enough. Required Library Files .------------------------------------------------------------- | ALSO REFER TO TROUBLE SHOOTING ON http://hoe.pocketheaven.com/ | FOR FURTHER HELP. | | (tabctl32.ocx and Comdlg32.ocx are now included in the zip) | These are the source of almost all start up problems you may, | and probly will, have with this program. The required librarys | you need are: | msvbvm60.dll http://blitz.phpwebhosting.com/programs/msvbvm60.zip | Comdlg32.ocx http://blitz.phpwebhosting.com/programs/Comdlg32.ocx | tabctl32.ocx http://blitz.phpwebhosting.com/programs/tabctl32.ocx | | The first thing to do if you get an error saying you're missing | one of thouse is download it from the page to the right of each | description (it should say which one you're missing), then put it | into your C:\windows\system\ or C:\windows\system32\ directorys. | If the download is in a zip... please unzip it. \____________________________________________________________ How to install the Hacks and tech info about them. .------------------------------------------------------------- | This format was basicly invented by Hank Chill, and this data | base which comes with this is game genie codes converted over | by Hank Chill. The file must be named "neshacks.txt" and be | in the same directory as the ROM Builder's .EXE file. | The basic layout of the file is that each game is marked by | having 2 forward slashes, a space, and then a region/PRG# | number inside of (). Each hack is then listed immediately after | the games title. They are all CRLF deliminated and are organized | as follows: | $0x32bitHexOffset 16bitCompairValue=16bitNewValue [+ same again] - description | The [+ same again] is an optional paramiter for codes that | need to edit more then one offset. There can be as many of these | as needed. So for example: | $0x0000C1C0 C8=EA + 0x0000EBB5 C8=EA - Never Lose Seed | There can also be varible values. These are expressed by putting | one or more X's into the newvalue field. If you have a varible, then | you must leave the compair value out. So for example: | $0x0000E41E XX - Start with XX Lives | All offsets are offsets in the ROM files, so they DO calculate | in the 16byte iNES header. \____________________________________________________________ Local Files .------------------------------------------------------------- | | Dir | .---------------------------------------------------------- | | By clicking on the "Dir" button, the file list box, will | | change into a list of current directorys. The changing of | | the current directory in this list, will effect what | | directory the files in the file list are currently on. | | Files | .---------------------------------------------------------- | | This will undo the above actions. This will change the | | directory list box back into the files list box. You can | | add roms from any number of directorys, the program will | | not error. | | Add | .---------------------------------------------------------- | | The program will loop through all selected ROM files, and | | load all of there information into an array (SRAM, Size, | | and so forth) to speed up later accessing of this information. | | Because of this, if you are adding a very large number of | | ROMs, it might take a tiny bit of time, but nothing major. | | If this button is pressed durring directory selection, the | | full directory is added. \____________________________________________________________ Global Information .------------------------------------------------------------- | | Version | .---------------------------------------------------------- | | This will attempt to detect what the currently loaded Pocket | | NES version is, based only off of it's file size. Variations | | of PocketNES are not included. This will not prevent you | | from clicking the wrong Build button. | | That bar thingie | .---------------------------------------------------------- | | That is a graphical representation of how much free space | | is left on your cart. The closer it gets to full, the redder | | it gets. \____________________________________________________________ Options .------------------------------------------------------------- | | Execution Arguments | .---------------------------------------------------------- | | These are the paramiters that will be executed on the program. | | There are a few dynamic varibles that can be used. Such as, | | $d will make it insert the directory of the built pocketnes | | rom, and $f will give it the file name. Make note, $d will | | have the \ on the end, so to refer to it in full, $d$f must | | be used. All variables must be done in lowercase, unless | | otherwise told. | | Pad ROM | .---------------------------------------------------------- | | This will make the file size of the built rom a multiple | | of the number given in the INI, refer to the INI Section | | for full details. If none is set, it defaults to 32kbytes. \____________________________________________________________ Hacks .------------------------------------------------------------- | Please refer to the section "How to install the Hacks and | tech info about them." for general information about this. | | Find ROM in list | .---------------------------------------------------------- | | If you click the "Find ROM in list" button while you have | | a selected rom, the program will do it's best to search the | | archive for a title that comes the closist to it, then select | | it as the currently active game title. If it found no matches, | | this does not mean there are no codes for this title, it simply | | means your ROM's name may be too differnt from the game's | | title in the archive for it to be able to find it. | | Partial Search | .---------------------------------------------------------- | | Partial search means it will auto-scroll the game listing | | down to what matches how much you've entered into the text | | box the best. When a game is clicked in the ROMs list box, | | the first 5 letter are automaticly put into Partial Search. | | Hack installation and tech information. | .---------------------------------------------------------- | | Refer to the top section "How to install the Hacks and | | tech info about them." \____________________________________________________________ Information .------------------------------------------------------------- | This will toss all the information that this program contains | about the selected ROM. Such as, if a follow varible was found, | give you a comment on compatability if one exists, and all the | GoodNES info as well. \____________________________________________________________ Global Option Editor .------------------------------------------------------------- | None of the name changes are done to the file names, they | only edit the ROM's internaly stored name that will apear | in PocketNES. | | Splash Screen | .---------------------------------------------------------- | | This requires you give it a 76800 byte 15bit .RAW file. | | If you give it a bmp, dib, gif, jpg, wmf, emf, ico, or cur | | file, it will popup a dialog box, asking you if you wish | | to Stretch it. If you do not stretch the picture, it will | | get cropped (if too large) or boarded (if too small) down | | to 240x160. The program will then prompt you to save your | | newly generated .RAW file, and will automaticly insert it | | into the title picture filename box. | | Renaming Tools -> Put a * next to ROMs smaller then 192kb | .---------------------------------------------------------- | | All roms smaller then, or equal to, 192kb in size, will | | have their names postfixed with a " *" This is used to tell | | which titles are small enough for multi-boot support. | | Renaming Tools -> Numbering -> Add numbers | .---------------------------------------------------------- | | Going from the top to the bottom of the ROMs list the ROM's | | name will be prefixed with a number, a peroid, then a space. | | So, for example, "Blah" will become "4. Blah" assuming it's | | the forth ROM down. | | Renaming Tools -> Numbering -> Remove numbers | .---------------------------------------------------------- | | This will remove every thing to the left of the first found | | peroid in every ROMs title. It is suppose to be used to | | remove numbers added in the above specific way. | | Renaming Tools -> Remove GoodNES Info | .---------------------------------------------------------- | | "GoodNES Info" can be defined as the extended amounts of | | information that GoodNES appends to the end of the ROM's | | title in it's file name. For example, (U), (!), and so on. | | By pressing this button, the program will remove every thing | | after, and including, the first "(" in the ROM's name. | | Renaming Tools -> Replace Underscores | .---------------------------------------------------------- | | The program will go through all internaly stored ROM names | | and replace All found underscores ("_") with spaces (" "). | | Renaming Tools -> Case -> Proper Casing | .---------------------------------------------------------- | | The program will go through the ROM list captalizing the | | first letter of each word, and forcing the rest to lower | | case. The program will skip over "the" and "of" if they | | are in a spot other then the first word. | | Renaming Tools -> Alphabatize | .---------------------------------------------------------- | | This will make a fast run through the ROMs titles and resort | | them according to alphanumeric order. IF YOU HAVE MORE THEN | | ONE ROM GOING BY THE SAME TITLE, IT WILL ERROR! | | Renaming Tools -> Renaming Script | .---------------------------------------------------------- | | First use the Editor to build your script. Scripts are | | executed in accending order (from top to bottom). They're | | very basic to understand and to use. Once you've built your | | script, to execute it, click "Run Renaming Script." | | If you're brave, and wish to manualy edit the script, it's | | stored in the same directory as the executable for the program | | under the file name "DFScript.txt". Case does matter. \____________________________________________________________ Tools -> PogoNES -> Extension Renamer .------------------------------------------------------------- | Due to limitations of PogoShell, only files with an extension | that is fully in uppercase will be reconized. This tool will | go through every file in the directory you give it and rename | all of their extensions to be either fully uppercase or fully | lower case. | | Filter | .---------------------------------------------------------- | | The filter text edit is the top right most one. It controls | | which files to display. By default, it's *.nes, this means | | all files with have the extension .nes will show, so thouse | | will be the only ones renamed. You can change it or give it | | multiple renaming pattermiters. For example, say you wanted | | to only rename the games with "(vs)" (nintendo VS. system) | | in there name, you'd give it "*(vs)*.nes" then press enter. | | To give it multiple filtering options, semi-colen deliminate | | them. For example, say you wanted all nes and txt files to | | be filtered in, then you'd give it "*.nes;*.txt" \____________________________________________________________ INI .------------------------------------------------------------- | The INI goes by the file name "PNESROMB.ini" and should be | located in your windows directory. It gets created and set | to defaults when the program it first run. It saves the new | information when ever you change it in the program, not upon | exit. All sections of the INI described here are done in a | "header->sub section" format. So for example, File->Path would | look like, | [file] | path=C:\Gaming\Nes\Roms\ | All changes to INI require you restart the program for them to | take full effect. Some settings can only be edited inside the | INI, not the program. | | File->Pattern | .---------------------------------------------------------- | | This changes the filter pattern for the file name listing. | | It's defaulted to *.nes, and null forces it to default. There | | is no way to change this inside the program. | | Options->BankSize | .---------------------------------------------------------- | | This is the size of the smallest bank on your cart for your | | built rom. It should be put in in byte size. | | | Options->BuffSize | .---------------------------------------------------------- | | This is how many ROMs the program can have loaded at once. | | By default, it's 500. If you need more (or what to save ram) | | feel free to add this section to the INI to change it. \____________________________________________________________ Version History .------------------------------------------------------------- | 0x.xx.03 - Version 1.5 (BETA) | > Moved over to using decimals in version numbers. They were getting obsurd. | > Implimented new ROM List display. You can select from 4 differnt views. | > Fixed a weird bug where if a zip was added that contained no roms, the next | added file had the zip flag set (no reports of this causing problems). | 01.15.03 - Version 1d2 (BETA) | > Zip support has been added. You can have as many files in the zip as you | please, but it will only use the first nes rom. | > Fixed bug that would cause crash when adding unknown ROMs with the Auto-pal | timing option turned on. (Thanks Camus) | > Hanks new Hacks DB format is supported. This new DB formatting includes: | Tree views for grouped codes, and | Tree views for modifier codes (only one can be selected). | This adds alot of functionality to the Hacks DB, hope you guys enjoy, both | Hank and I put alot of work into this one. | Fast note: If you click the parent node to a grouped listing, all the grouped | items will be checked/unchecked. If you click the parent node to a modifier | listing, nothing happens :P | > I removed a debugging popup if you build the rom with padding turned on. | > Fixed a bug which crashes the program when you pick an unknown ROM. | > Removed the mapper checking code I forgot to remove that was causing the | constant "Mapper not supported" message popup for a few people. | 09.11.02 - Version 1d | > PogoNES build will output the file extensions as .nes, not .NES. Use the | renamer tool if you wish to beg to differ. | > The new Renaming Tools have been added: | Add GoodNES Codes | Give all GoodNES name (no codes) | Give all GoodNES name (with codes) | > The list of games for "Hacks" no longer exists. It will automaticly find | the correct entry for you. | > Option to Pad the ROM now so it properly fits in a bank. From what I | can see, bank sizes are dynamic depending upon which cart you own, so | it's changable in the INI. It defaults to 32768bytes (32KByte) | > You can now change the buffer size by using the INI, read the section in | this document for further information. | > Out of Buffer Space error has been included and wount crash the program | any more. (Thanks Camus) | > Mapper support detection has been removed because it's not worth the effort. | > A "Used Cart Space" bar has been added. When it's full, the cart is full. | The more it fills up, the redder it gets. | > A right click 'select all' has been added to the rom list, shortcut keys are | alt/ctrl/shift(use any of them)+A. | > When browsing directorys, you can use the 'add' button to add the full dir. | > Fixed a 'small' overlook in my binary search allagorithm (Thanks TideGear). | > CRC32 Checksums are now stored in the file crc32cache.ini (in the same dir | as the ROM builder), so you'll experience slow down only the first time | a ROM is added. | > "Display Output Window" menu item has been added. | > The option "Prompt about adding [b], [o], and unknown ROMs" has been | added. Much like the Auto-Pal Timing, this works over the internal | ripped GoodNES database, and not by file name. | > The option "Give ROM it's proper GoodNES name" has been added. | > The option "Give ROM it's proper GoodNES codes" has been added. | > "Compatability" tab is now named "Information" tab. And it will give you | information regarding all it's GoodNES information, along with compatability | list information, and if there is a sprite following varible found. | > The option "Automaticly turn on 'use pal timing' flag for (E) ROMs" now | works over looking it up if it's (E) in the database- not by filename. | > "Database" button for sprite following varibles has been removed. The only | way to use them is now through the option to automaticly add them. | > Compat.txt and PocketNESVarsList.txt are no longer needed, they are now | meshed into BigList.txt along with a ripped GoodNES CRC32/ROM Name DB. | 08.19.02 - Version 1c1 | > Mapper checking now supports multiple PocketNES versions. This should help | you out if you use Flubba's hack (1 or 2), or if you're still using PocketNES8. | > You can now double click on a rom in the list to add it (Thanks Pheonix) | 08.13.02 - Version 1c | > The option "Automaticly turn on 'use pal timing' flag for roms with | (E) in filename" has been added. | > "Partial Search" for Hacks is now implimented. (Thanks Hank Chill) | > The "Game Genie" tab has been converted over to the "Hacks" tab, and | now uses Hank Chill's offset database. Unlike the Game Genie codes, | this isn't hardly as buggy (I've yet to find one that dosn't work), | and has nearly just as many codes. (BIG thanks to Hank Chill) | > A bug in the "Convert .RAW to .BMP" tool that kept causing it to crash | while saving has been fixed. (Thanks Hank Chill) | > All the tools for PocketNES 7a have been removed. If you really needed | them, email me, I'll put them into a seperate program for you. This | made the EXE size decently smaller (60kb'ish). | 08.06.02 - Version 1b.1 | > A big "wooopsie" fixed that was causing the program to error out each | time it was run with no ini file. | 08.01.02 - Version 1b | > Fixed a bug where the saved "0 prefix numbering" wasn't being properly | loaded at start up. (Thanks TideGear) | > Now loads properly if saved PocketNES ROM isn't there. (thanks SkyBaby) | > "Build" button now gives you two build options when clicked, "Build | PocketNES (v8)" and "Build PogoNES Dir." With the second, you select a | dir and it fills it with the roms you selected, with all the naming | options you selected. (Thanks TideGear) | > "Select Directory" dialog now has "New Dir" button for making new dirs | plus last used directory gets saved/restored for each differnt call to it. | > File size now refreshes when a splash screen is set/unset. (Thanks TideGear) | > In the options, you can now have ROM Numbering prefix it with 0's, and you can | also change what character(s) seperates the ROM's title from the numbering. | Better checking to see if numbers are there or not have been added. | > File associations with .PNEs is no longer set on start up. In options, click | "Set File Associations with .PNE files." inorder to do the same thing. | > In the Mark ROMs options, "Add Mark as very last character" has been added. | > "Renaming Script" has been added, read it's section in this file for more info. | 07.19.02 - Version 1a | > "NES ROM Separator" has been added under Tools->PogoNES. This is used | for separating games that are small enough from ones that are too | large for multi-boot, into seperate directorys. | > Loads of spelling error corrections (thanks BigJohn & Tidegear). | > * adder is now called "Mark roms smaller then 192kb." Options have | been added to change the 'mark' and to allow it before or after | the roms title (thanks Tidegear). | > I fixed a bug where the file size was showing up smaller then it | it should be (typoed 1024 as 1204, thanks Tidegear). | > Bug with the initial directory for the save dialog in the "Build" | button has been fixed. | 07.16.02 - Version 1 | > Renaming tools for "Make all upercase" and "Make all lowercase" | have been added in. | > It apears the 7a+ mode for the ROM Splitter works for version 8, | so it's been moved from the "7a or before" tools section. | > PogoNES renamer tool has been created and added. | > "SRAM/SaveState/CFG Manager" for PocketNES version 8 has been | finished. | > "Compatablity" tab has been finished. I was scared this was | going to slow the program down alot, but I put alot of extra | effort into speed. Note the "bugs" in the section for this. | > "Tools" menu has been organized. | > "Quick Run" has been added into the "Tools" menu. | > "Prompt if you're adding a double of a ROM." option has been added. | > New Hot Keys: | Ctrl+1: Move current ROM up by one. | Ctrl+2: Move current ROM down by one. | + (the key): Add currently selected ROMs from the File list. | > "Alphabatize" has finaly been coded. DON'T USE THIS SORT IF YOU | HAVE MORE THEN ONE GAME IN THE LIST BY THE SAME TITLE. | > Now file assosiates with .PNE (PocketNES ROM Builder Project | Files) so you can just double click them in explorer to load | them. I think there is either no icon, or the wrong icon for them. | > "Disable missing file/directory error messages on start up" | option has been added. | > MUCH better initialization error checking. No more need to | delete the INI if you run into path not found errors. Plus it | can now run with out even a game genie code directory. | > ROMs full path is now displayed in the ROM Options Editor | when you click it. | > Can now drag and drop from the Local Files to the ROMs list. | > While in the ROMs list, the delete key can be pressed to remove | the selected roms from the list. | > More then one ROM in the ROMs list can be selected at a time, | making mass deleting simpler. Wount work for up/down. | > "Automaticly set sprite following varibles if in the list" option | has been added. | > You can now drag and drop files into the ROMs list from explorer. | > Better error checking for if the file is really a nes rom. | > "User Defined Replace" has been added in. | > "Database" button has been untypoed (Thanks BigJohn). | > Reimplimented "Add * to ROMs under 192kb" and ROM numbering. | 06.24.02 - Public beta 3 | > All PocketNES 8 stuff added in, and now only supports | version 8. | > "Save Project" and "Load Project" now work fine. | > The window size is smaller. | > The last used directory on common dialogs is now saved and | restored. | > "Warn if game's mapper is not in supported mapper list" | option has been added + new ini section for it. | > A front end for the compatablitys list has been added in. | > "NES SRAM Manager/importer" has been added. | > Fixed the problem with "Save State Manager"'s save files | being 2 bytes too small in this version. | > "SRAM Builder" renamed to "Save State Builder." | > "Fix Casing" has been added. | > "Replace Underscores" has been added. | > Selecting your SRAM Save Slot has been fixed. | > There is now a right click menu for the added ROM list. | 05.31.02 - Public beta 2a | > Drive can now be selected in the same place the directory | can be. | > File pattern can now be changed, refered to the INI section | of this manual. | 05.31.02 - Public beta 2 | > My other programs, ROM Splitter and SRAM Builder are now | built in, with newer versions of each. | > Added in .RAW viewer/converter. | > "add" button gets hidden while in Dir display mode. | > Added in build status display bar. | > In options, custom program arguments can be added. | > Automatic start of linking software in options now added. | > Now saves last used .NES directory. | 05.24.02 - Public beta 1 | > Innitial Release \____________________________________________________________ Contributers/Thanks (in no special order) .------------------------------------------------------------- | Loopy - For making all of this possible to begin with. | Titney - For managing the PocketNES page, the PocketNES | forums, and for compiling the varible list which this program | uses. | Cowering - For GoodNES which is the program this program | got it's crc32/nes game title db from. | Detonate - For coding a crc32 algorithm which this program | uses a modified form of (sped it up a tad ;]). | Robert Durbin - For giving me his code to GameGenie.exe, even | though none of it was used in the final release, it was still | a help. | TideGear - Plenty of program concepts and debug support. | Hank Chill - For giving some bug testing, plus a HUGE offset | archive which he invented/built him self. | BigJohn - For good idea contributions and beta testing. | Yoshi - For having ungodly amounts of knowledge on the | NES system, and then writing it into a nice, readable, | document (iNES header information came from there). | Brad Skidmore - Help with file associations. | To every one on the PocketNES forums, and to any one I missed. \____________________________________________________________ Copy rights .------------------------------------------------------------- | "NES" is copy right to Nintendo. http://www.nintendo.com | "PocketNES" is copy right to Loopy. http://nes.pocketheaven.com | "PocketNES ROM Editor" is copy right to me, Hoe. http://blitz.phpwebhosting.com | You are welcome to distributed this program freely, as long as this document, in | a 100% unedited form, is also included with it. \____________________________________________________________ 2002 Hoe, HoeBot@HotMail.com PocketNES ROM Builder, our INI is bigger then their INI. PocketNES ROM Builder, it makes java apps look unbloated.