Game patches are powerful plug-ins which alter the files Reggie Next loads in order to customize the editor for a particular mod (such as Newer Super Mario Bros Wii). In addition to standalone game patches, you can also use another patch as a base and work from there. The difficulty is relatively simple, as long as you are familiar with XML files.
Initial Steps[edit | edit source]
The first thing to do is to make a new folder in
reggiedata/patches. This folder will contain all the patch's files. The name doesn't make a difference, but pick something unique and descriptive.
The first file to create inside the folder is called main.xml. It contains basic information about the game patch and links to files and folders. Open it with a text editor and add the following data:
<?xml version="1.0"?> <game name="" version="" description=""> </game>
The name of the mod your game patch represents goes between the quotes in
name="", the latest version of the hack goes in
version="", and you can write a short description in
Adding Files[edit | edit source]
To replace the files that Reggie Next uses, you first need to have those replacements. Below is a list of files and folders you can modify with a game patch and their purpose. Once you've decided what to modify, decide which files need to be overwritten entirely and which only need to be patched. You can also import files from other patches (see below).
|Filename||Can Patch?||Can Overwrite?||Description|
|bga/bgb (folders)||Background images.|
|spritedata.xml||Sprites and their settings.|
|spritelistdata.txt||Defines what types of IDs sprites use.|
|sprites.py||Code for sprite images.|
|sprites (folder)||Sprite images.|
|tilesetinfo.xml||Tile randomization data.|
|ts1_descriptions.txt||Descriptions for objects in Pa0 tilesets.|
Many mods nowadays are based off Newer Super Mario Bros Wii. If this applies to your mod as well, you can configure your patch to automatically account for this. Instead of copying the entire NewerSMBW game patch and making changes, you can tell the program to only import files which have been modified after NewerSMBW's. To do this, add the following attribute to the <game> tag in main.xml:
base="Newer Super Mario Bros. Wii"
The value between the quotes needs to be the same as the name value of the game patch you want to reference.
Adding Entries to Main.xml[edit | edit source]
After making a file or folder, you need to add a tag to main.xml so Reggie Next can recognize it. There are two kinds of tags you can use:
<file name="" game="" path="" patch="" /> <folder name="" game="" path="" />
File tags specify individual files, and folder tags specify entire folders.
- Name is not the filename. It's a unique ID. To get each entry's name, just take the filename and drop the extension.
- Game (optional) is the equivalent of the
baseattribute in the
<game>tag mentioned before, and it can be used to define from which patch to pull the specific file/folder. Do not use this if the
baseattribute is defined.
- Path is the file/folder's name.
- Patch (optional) can be set to true or false, and specifies whether the replacement file should be used to make changes to the original or if it should completely replace it, if supported (see table above). Reggie's default behaviour is to patch whenever possible.
Here is an example of a finalized main.xml :
Misc Tips[edit | edit source]
- Avoid creating patches for files that don't need it (for example, entrance types are usually never edited, so it's pointless to add entrancetypes.txt to your patch).
- Use the
gameattributes whenever possible, you will benefit from a smaller patch size, easier upgradeability and faster loading.
- When creating individual patch files, look at the ones in other patches for a reference.
- To create background/sprite images, refer to this page.
- To randomize a tileset and add the resulting data to Reggie, refer to this page.
- If you are looking to simply change a sprite's name, use spritenames.txt instead of spritedata.xml. The structure is similar to other .txt files: put each sprite's number, followed by a colon, a space and the new name in a new line (for example, to rename the "Goomba" sprite to "Fire Goomba", type
20: Fire Goomba, where "20" is the sprite number)