Jump to navigation Jump to search

Game Patches

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 description="".

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.txt/bgb.txt
Backgrounds.
bga/bgb (folders)
Background images.
entrancetypes.txt
Entrance types.
levelnames.xml
Levels.
music.txt
Soundtracks.
spritecategories.xml
Sprite categories.
spritedata.xml
Sprites and their settings.
spritelistdata.txt
Defines what types of IDs sprites use.
spritenames.txt
Sprite names.
sprites.py
Code for sprite images.
sprites (folder)
Sprite images.
tilesetinfo.xml
Tile randomization data.
tilesets.xml
Tilesets.
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 base attribute 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 base attribute 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 base or the game attributes 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)