User:Gau~enwiki/PK Hack

PK Hack is a Java program which aims to let users create their own RPG-style game using the Super Nintendo video game EarthBound's engine in an easy-to-use graphical interface. After loading the ROM image into PK Hack, a user can edit, among many other things, the map, the text of NPCs, the sprites, and even the photos displayed at the end of the game during the credits. Although the plurality of PK Hack's utilites are built for Earthbound, in fact PK Hack modules can be written for any Super Nintendo game.

PK Hack 0.1
The original PK Hack (version 0.1) was created in the late 1990s. It was a program that was limited to a simple enemy entry editor and a basic item editor.

PK Hack 0.2
It allowed the editing of stats of enemies (HP, PP (Psychic Points), experience gained, etc.), the editing of the effects and properties of items, and the changing of miscellaneous text. As a "joke feature", the "mini-ghost button" would, when pressed, "possess" the loaded ROM by changing the header to "BOO!". It should be noted that, though PK Hack 0.2 was very useful, most users used other programs in conjunction with it (ie: a text editor (to change the text of NPCs), a program to compress and insert bitmap images to be used for an enemy's sprite, and even a map editor).

PK Hack 0.3
PK Hack 0.3 was intended as a replacement for PK Hack 0.2, but it never evolved from the alpha stages, and today is seldom used. PK Hack 0.2 does not work with some versions of Microsoft Windows, so it was a useful alternative for some users.

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Modules
PK Hack's modules are attempted to be sorted logically into categories based on each of their purposes.

IPS Patch Maker
Used to create patches of changes made to the current ROM loaded (compared to any other ROM) using the IPS system. This is most commonly used to create patches against clean, unedited ROMs, which can then be distributed.

IPS Patch Applier
Used to apply an IPS patch to the loaded ROM.

IPS Database
Lets the user to apply and unapply a handful of IPS patches included with PK Hack. The patches have various effects, from allowing the names of characters to be one character longer, to various graphics hacks, such as forcing the game to start with a day-time palette activated.

ROM Expander
Used to convert ROMs from EarthBound's default size of 24 megabits (3 megabytes) to 32 megabits (4 megabytes) or even 48 megabits (6 megabytes).

Hex Editor
A simple hex editor included with PK Hack.

Pointer Editor
Used to change various "pointers" in the game, so that the game looks somewhere else for data. Of course, if there is a module already for editing something, it will change the pointer automatically.

Reset Button
Used to copy over a certain range of bytes from one ROM into another. This is useful when the user wants to reset some large range of data back to its original state or when the user somehow messes up their ROM and wants to fix it.

Misc. Crap Editor
Used to edit small things that don't quite fit into other categories, from which background music plays during the naming screens and in-game delivery scenes, to various in-game menu text.

Item Editor
Used to edit the data attributed to game-specific items, such as the effect it has on the user once used, how much the item costs, even the name of the item, allowing for new items to be created.

Item Transformation Editor
Used to edit the transformation process of the item "Fresh Egg", which transforms to "Chick", and finally to "Chicken", and some options associated with the change. Of course, this can even be used to create totally different transformations. For instance, "Ice Cream Cone" to "Melted Ice Cream" to "Sticky Cone", as intended by one user's distributable ips-implementation, or "hack", "Mother 3 : Hero's Genesis" (unofficial, non-Nintendo-affiliated homebrew release).

Condiment Editor
Used to alter the effects of condiment items (ie: Ketchup Packet, Pack of Salt) on food items. These food items are primarily intended to be used to enhance the effects of "true" in-game food items, such as a Hamburger, which they can do in such various ways as change the amount of HP or PP recovered following consumption.

Store Editor
Used to change the list of items each store stocks throughout the game, as well as their listed price (which may also be altered via the Item Editor).

Teleport Destination Editor
Used to change the destinations of the user's technique, PSI Teleport, as well as two additional teleport locations used in the course of the game, though unavailable to the user (teleport immediately outside of the "Montoli" Building, teleport to the center of a room inside the Montoli Building, a part of the Runaway Five rescue scene.)

[1F 21 XX] Teleport Table Editor
[1F 21 XX] is a control code which instantly changes the party's location to a pair of coordinates specified by the argument XX. This module is used to change the destinations of these teleports. Do not be confused between these "teleports" and PSI Teleport. These teleports are more commonly used as a means of linking different locations on a map, usually under the guise of a door.

"Don't Care" Names Editor
Used to change the set of default names for the party.

Misc. Text Editor
Used to change small pieces of text that don't quite fit in any other module. While the purpose of this editor mostly concerns setup menu-related text, though there is also text for ailment names and battle commands.

Phone List Editor
Used to change the game's list of phone numbers and what happens when you call them. Due to the fact that not all numbers are immediately available once the user may access, "flags" are set throughout the course of the game that determine which numbers have been "learned", and which may be "called." Those flags may also be modified in this editor.

Flyover Editor
Used to alter the flyover at the beginning of the game. It can change the text displayed, where they start and end, as well as the direction travelled.

TPT Editor
TPT stands for "text pointer table", which is a table that contains the data for all of the NPCs in the game. This editor is used to change that table. However, this module does not alter where the NPCs are placed (for the changing of graphical location, see the Map editor.)

Text Editor
Mainly used to change the text of NPCs, events, or in-battle text. However, it is also used to change the text displayed in the flyovers at the start of the game, the coffee and tea scenes (in Saturn Valley and Tenda Village, respectively), and the credits. The regular text of the game uses a complex control code system, which is described here. While the chrestomathy provides an easier-to-understand explanation of control codes, a more updated list of control codes may be found here, though some lack in-depth explanations, and some have unknown function altogether.

Starting Stats Editor
Used to change the level, items, and money each character has when they first join your party.

Level-Up Experience Editor
Used to change the amount of experience points necessary to advance a character to the next level.

Level-Up Stats Editor
Used to change how much HP, PP, attack power, defense points, and IQ points, among other things, each character gains when they advance to the next level.

Enemy Editor
Used to change the enemies you face during battle. The main features of the Enemy Editor are changing the name of the enemy, changing the enemy's stats, changing the moves the enemy uses, and changing how much money and experience points the player gains after defeating it.

Action Editor
Used to change the attacks that enemies make and the effects of items. The module changes an in-game table, which really only points to assembly code, which then actually performs the desired effect.

PSI Editor
Used to change the effects of both in-battle and out-of-battle PSI.

PSI Damage Editor
Used to change the amount of damage that can be done by PSI attacks.

Battle Entry Editor
The Enemy Editor only changes individual enemies, while the Battle Entry Editor is used to change how groups of enemies appear together.

Sprite Editor
Used to edit the out-of-battle sprites and their palettes. The interface is meant to be similar to Microsoft Paint.

SPT Editor
SPT stands for "sprite pointer table". The sprite pointer table, as expected by the name, groups sprite images together and tells the game which sprite image should be displayed when an NPC or character faces a certain direction.

Playable Sprite Table Editor
Used to change which sprites are used by party members and, if the party member is not controlled by the player in battle (ie: Pokey, Picky, Dungeon Man), which enemy they should act as.

Battle Sprite Editor
Used to edit the in-battle sprites and their palettes. The interface is meant to be similar to Microsoft Paint.

Font Editor
Used to change the fonts used in the game, including the Main font, the Mr. Saturn font, the "Big" font (which is in fact not big in size at all, and more closely resembles the Book Antiqua font, the Battle font, and finally the "Tiny" font (which is in truth quite large and bold, in comparison to the others).

Credits Font Editor
Used to change the font used in the credits of the game.

Window Border Editor
Used to change the borders of the windows in which the text of the game is displayed.

Window Position Editor
Used to change the placement of text windows. There are many windows used for different purposes, including the Cash-on-hand window, the differently-sized game-text windows, and the character inventory window.

Town Map Editor
Used to change the graphics and palettes displayed by the Town Map item.

Logo Screen Editor
Used to change the graphics and palettes of the "beginning credits" displayed when the game is started. The three different graphics credit Nintendo, APE, Inc., and HAL, in that order. This editor features an import/export utility, but only of files that are imported/exported within the utility.

Gas Station Editor
Used to change the graphic and palette of the "WAR AGAINST GIYGAS" graphic displayed after the "beginning credits" when the game is first turned on. It even allows the user to import graphics from external files (if they are the right size and do not contain too many colors).

Tile Editor
Tiles are 32x32 pixel graphics which are arranged together to create the scenery of EarthBound. The Tile Editor edits the tile graphics, palettes, and even the effects the party may experience when they walk on a certain part of a tile, such as whether or not the user will be stepping on a tile designated to act as a door, a tile in which the sprites are intended to appear behind instead infront of, or even a tile that sprites are intended to sink down into, such as a marshy or watery area, as used during the original game in the area "Deep Darkness".

Map Editor
Used to change the arrangement of tiles (see: Tile Editor), sprites, "warps" used by doors, locations of hotspots (see: Hotspot Editor), and the places where enemies appear.

Door Entry/Destination Editor
Used to edit the effects of doors (ie: where they lead to, the sound effect played (if any), text displayed when the doors are used, and a possible graphical effect (such as the player falling down into a hole, in which case the screen would rapidly scroll down, indicating the player's "falling").

Photo Editor
Used to edit the photographs that are displayed during the ending credits of the game.

Music/Flags Correlations Editor
Used to edit the groups of music which are used on the map. They are "groups of music" because one piece of music may be played instead of another if a certain event has occurred (ie: in the in-game town, Threed, following the halt of the zombie invasion, as well as at the end of the game, where Because I Love You plays almost everywhere).

Hotspot Editor
Hotspots are locations in the game which can be used to activate text when the party has walked over them. It may be more convenient to use the Map Editor to change their locations.

Event-Based Map Changes Editor
Used to edit changes (one tile replaces another in a change) that occur on the map after certain events occur).

Map Sector Properties Editor
Used to edit many properties of sectors on the map (areas of 8 tiles by 4 tiles), which determine what graphic (if any) is displayed on use of the Town Map item, if using PSI Teleport is possible, if Magic Butterflies appear, and whether or not the player may ride his bicycle, among other things.

Enemy Placement Groups Editor
Used to change the chance of encountering certain enemy groups.