By modifying various files, it is possible to change the text that is displayed in game.
Many of the files which contain game text are stored as binary/hexadecimal files, and a Hex Editor is highly recommended if you intend to go about editing these files.
For the purposes of this guide, we'll be changing the file 'data/frontend/str_en.bcs', which can be found in your Dead Rising 2 install directory. This file contains the majority of the text encountered in the game with the language set to English, the other 'str_XX.bcs' files in this directory contain the text for other languages. The same principles here should be applicable across all language files.
Important Information[edit source]
- All strings (words, sentences and the like) are helpfully stored in plain text, so no awkward mapping needs to be done here.
- All strings are NULL separated. This means that every identifiable piece of text that game uses must end with the NULL character, 00 (in hex).
Mappings that you Do Need[edit source]
- Line breaks are stored simply as ASCII character 10, Line Feed. This is 0A in Hex.
- Line breaks do not require a Carriage Return character to function correctly.
How to Edit a File Using a Hex Editor[edit source]
- Read the manual that came with your editor!
- If that hasn't made you go cross-eyed, press on.
How to Edit Dead Rising 2's Text[edit source]
This section assumes some familiarity with your Hex Editor, and terminology frequently used in Hex Editing.
Before you do anything else, make a backup of any file you intend to edit!
When you first open 'str_en.bcs' in your Hex Editor, not much is immediately apparent. But if you scroll down to address 0x0000F2F6, you'll find one of the options found on the main menu, "START GAME". A short way above, you'll also see some of the "Tips" that get displayed on the Loading screens.
Easiest: How to edit Dead Rising 2 without a hex editor[edit source]
You can edit the same amount of characters in notepad++ without having to use a hex editor.
Open str_en.bcs with notepad++
Find an unused entry that has the same amount of characters. Alternatively, find an unused entry that has more characters than you need, and add extra spaces between, before or after words to make the character number count be the same.
Write the new text under the old text in a new file. Every character is the same length in regular Notepad, so you can measure easily.
Copy the new text and paste it over the old.
No Hex editing needed.
Changing text with same number of characters[edit source]
This is the simple way to edit text, but has a major restriction, your new text must be the same length, or shorter, than the existing text.
To edit the text, type over the top (overwrite) the text that is currently there.
- Go to 0x0000F2F5.
- Change the text to read "GAME START", making sure that you leave the NULL character, 00, at the end.
- Save the file.
- Load the game.
- Observe the text on the Main Menu has changed.
You can edit nearly any piece of game text in this way.
Expanding the Text[edit source]
It is however possible, but more difficult, to change the text to say something longer than it currently does.
Again, we'll use the "START GAME" text as an example.
Go to 0x0000F2F5.
- Observe the text says "START GAME" and is NULL separated from the next piece of text, "JOIN CO-OP GAME" found at address 0x0000F300.
Go to 0x0000778C
- The 4 bytes of data starting here is a pointer to the piece of text we found earlier, "START GAME" (0x0000F2F5), 0000F2F5 is backwards here, written as F5 F2 00 00. This pointer tells the game where it should find the text to display.
- This information has been stored in Little Endian format: basically it's stored right-to-left, rather than left-to-right, so "F5 F2 00 00", rather than "00 00 F2 F5".
- So, to find the pointer to the piece of text you wish to change, you must search the file looking for the address of the piece of text you want to change. "START GAME" is found at address 0x0000F2F5. So you must search for "F5F20000" (some Hex Editors will want you to search for "0000F2F5", this will vary from editor to editor) - remember the pointers are stored in Little Endian format.
- Don't forget that when searching for Hexadecimal data as we are doing here, rather than text, you may need to switch your Hex Editor's Search function into Hexadecimal Mode, or similarly named - not all Editors will require this.
- Notice that the next pointer, found 4 bytes later at address 0x00007790, is "00 F3 00 00" or 0x0000F300, which takes you back to "JOIN CO-OP GAME".
- These pointers are not NULL separated.
Go near the bottom of the file to address 0x0005DEF0. This part of the file is essentially empty, being filled with lots of NULL characters. This makes a great place for us to put some of own text.
Type some text here, such as "LONG TEXT IS LONG", making sure to leave a NULL character after your own text.
Return to 0x0000778C, and change this pointer to point to our new text at 0x0005DEF0, by replacing "F5 F2 00 00" with "F0 DE 05 00".
Save the file.
Load the game.
Observe that the text on the Main Menu has changed, and that we changed the text to something that was longer than the original text. In this way it should be possible to change any text in the game, to almost anything.