Could anybody tell me how to hack characters into the sram with sfhack?
I found a .zip file with a bunch of .sfm files and a readme that says you can patch them into the sram with sfhack to get more characters.
never dabbled in that myself, but here's what i could find in the documentation:
MCR: Write ROM character to module
MCS: Write SRAM character to module
MRS: Refresh dumped SRAM character
These two modes are the centerpoint and main purpose of the SFHack
utility. Using these modes, the user can copy a character from the ROM
or the SRAM into an independent file. At any time, this character can then
be copied back from the module file into an SRAM edit slot in a matter of
seconds. This ability allows users to mix and match characters in the SRAM
on-the-fly, without having to deal with referencing templates or entering
all of the character information again. The module files in which the
characters are stored by these modes may contain any number of characters,
allowing users to store the characters in individual module files or in an
archive-like module that contains all of the available SRAM characters.
Due to the possibility of confusion for archives containing multiple
wrestlers, I decided that some extra information was needed to help
distinguish between the different characters without having to restore
them in an SRAM. After some thought on the matter, I decided to store three
descriptive strings along with the character data. The strings would hold
information to describe the character, the suit of the character, and the
person who created the character. The latter of the three is provided in
case a person wishes to archive different people's versions of a particular
wrestler. Later, I decided to add the MRS mode, which is an SRAM character
to module dumping mode that does not require the three identification
strings, because it only allows dumping into an existing record (it is
intended for redumping SRAM characters that have been updated). The syntax
of the two modes is:
sfhack mcr (ROM) (Slot) (Outfit) (Name) (Suit) (Maker) (Module) (Rec)
sfhack mcs (SRAM) (Slot) (Name) (Suit) (Maker) (Module) (Rec)
sfhack mrs (SRAM) (Slot) (Module) (Rec)
In the above command lines, the ROM and SRAM items are paths to the
SFPWXP ROM and SRAM files respectively, while Slot is the number used to
identify which character is to be copied to the module. In the case of the
ROM, the character index is the internal index used to identify the
character. The list of ROM character indexes appears in the CODES document.
In the case of the SRAM, on the other hand, the character slot is literally
the number of the SRAM edit slot that holds the character. For the ROM
character mode, an extra argument, Outfit, must be specified. The reason
for this is that ROM characters have four different suits, each with an
accompanying color scheme, while an SRAM character, by default, only has
one (supposedly, the Turbo File allows multiple suits for SRAM characters,
but it has not been and probably will never be emulated).
The Outfit argument is the index of the suit to use when copying the
character (character modules use the SRAM format for quicker insertion and
copying, so only one suit is stored in a character module). When in the
game, the initial ROM character suit that is visible on the character
selection screen is suit 0. After selecting the character, you can press
right to cycle through the other suits in order.
The Name, Suit, and Maker arguments are the three descriptive strings
mentioned above. Keep in mind, these three strings are only to identify
the character record stored in the module slot and have no direct bearing
on the character record. Each of these three arguments is a string and
should be surrounded by quotes if they contain embedded spaces. For
example, to use Kevin Sullivan as the Name, it should be written as
"Kevin Sullivan" (this is why I put quotes around these arugments in the
usage of the mode). Also, due to the shell's handling of the double quotes
("), quotes within the identification strings should be either a single
quote (') or apostrophe (`). For example, to use Bret "The Hitman" Hart as
the name, enter it as "Bret 'The Hitman' Hart" and NOT "Bret "The Hitman"
Hart". Each string allows up to 39 characters. Do NOT exceed this length-
to do so could corrupt the other strings and character data. (In v0.62,
I set this so that strings longer that 39 characters are truncated to 39
character, but older versions of SFHack do NOT truncate.)
The Module and Rec arguments are the module file and the record index
in the file (starting at 0) to write the character to. When writing a
character INTO a module file, the Rec can be any of the existing module
record slots or the next, currently non-existant slot. For example, if you
wanted to create a new module file, which means the file currently contains
0 records (because it doesn't exist yet), then you want to write to slot
0 in the module file (the module file will be created by SFHack). On the
other hand, if the file already contained 4 characters, then the Rec
values 0-3 could be used to copy the new character over one of the existing
four records or a Rec value of 4 could be used to add the character as a
new record, making the module file contain 5 records.
Since these are the most important modes in the game, I'll go through
a general example of how to use these modes. For the example, I'll use ROM
characters (for simplicity) and run through how to dump all suits of a ROM
character. For the example, I am going to use Hulk Hogan (ROM #62). Now, to
start off with, we'll just start by dumping the first suit, which will also
create the module. To be able to find it later, I think I'll call the
module HOGAN.FPM, where the .FPM extension stands for Fire Pro Module. Now,
the first Hogan suit (0) in the game is his old trademark yellow & red
Hulkamania outfit. So, for the suit name, I'll use "Hulkster - Yellow &
Red". So the first command line is (Due to the lengths of the commands, I
have to show the command on two lines. When entering the commands, do NOT
hit enter until the entire command is in.):
sfhack mcr sfpwx.fig 62 0 "Hulk Hogan" "Hulkster - Yellow & Red"
"Human (ROM)" hogan.fpm 0
So, now there should be a file called HOGAN.FPM. If you use the MCC mode
with HOGAN.FPM as the module file, you should see the listing:
Index: Character Information:
0: Hulk Hogan / Hulkster - Yellow & Red / Human (ROM)
As you can see, the three strings shown in the module listings are the
three identification strings entered during the character dump. Now, we
still have three other suits. Since we want to store all of the suits in
the module file, the next three suits should be written to module records
1, 2, & 3 respectively (remember that you can only write to up to one
record after the end of the module file, so we have to dump the characters
to those slots in that order). Now the second Hogan suit is the black
trunks. I have never seen him wearing these, so I don't know what persona
he was in at that time, so I'll use a generic suit reference like "Black
Trunks". The third suit has Hogan back before the bleach-blonde look. From
what I've heard, Hogan once wrestled under the name Terry Boulder. I think
this may be the suit, but I could be wrong. So just in case, I'll use a
generic reference for this one too, like "Brown Hair & Yellow Trunks". The
last Hogan suit is a white trunks outfit, like the ones Hogan was wearing
in his Rocky appearance as Thunderlips. However, since I don't know whether
or not he actually wrestled in these (though he probably did), I'll just
use another generic description, "White Trunks". So the next three
commands, in order, are:
sfhack mcr sfpwx.fig 62 1 "Hulk Hogan" "Black Trunks" "Human (ROM)"
hogan.fpm 1
sfhack mcr sfpwx.fig 62 2 "Hulk Hogan" "Brown Hair & Yellow Trunks"
"Human (ROM)" hogan.fpm 2
sfhack mcr sfpwx.fig 62 3 "Hulk Hogan" "White Trunks" "Human (ROM)"
hogan.fpm 3
Now, when you use the MCC mode to catalog the HOGAN.FPM module, you see:
Index: Character Information:
0: Hulk Hogan / Hulkster - Yellow & Red / Human (ROM)
1: Hulk Hogan / Black Trunks / Human (ROM)
2: Hulk Hogan / Brown Hair & Yellow Trunks / Human (ROM)
3: Hulk Hogan / White Trunks / Human (ROM)
That's all there is to it! Before someone emails me saying this doesn't
work, I put the HOGAN.FPM file created using this in the EXAMPLES
directory. Other than the possibility of a typo, this example is correct.