Zophar's Message Domain

Go Back   Zophar's Message Domain > Emulation Talk > Rom Hack

Reply
 
Thread Tools Display Modes
Old 09-28-2010, 10:20 AM   #1
Bannanas
Regular Member
 
Join Date: Sep 2010
Posts: 34
Default Editing Text (N64)

This is a tutorial i found.

Text Modifiers FAQ/Guide v0.2 by FoxDie a.k.a Ryan Barlow

What are Text Modifiers?

Text modifiers are ways of altering text in a computer game (or program) using a game enhancer
or Hex editor.
They are usually several lines long, and all AR/GS text modifiers start with either 30/80 for
PSX or 80/81/ for N64. Text modifiers usually have no useful function so they are usually used
for personal enjoyment and/or to personalise a game (i.e. rename Mishkin to FoxDie in
GoldenEye). Many hackers do not include text mods as 'codes' as they are too simple to find
(and have no real use) to be called a 'code'.

---------------
What is needed to make a text mod?

If you are using a N64 AR/GS 3.x you will need an expansion pack (that is not being used by the
game). If you are using a PSX AR/GS 3.x though, you just need the cartridge. Also you need to
know the Hex digits for each letter (Shown below).

---------------
What are the Hex digits for the letters and numbers?

Here they are:

A=41/61 B=42/62 C=43/63 D=44/64 E=45/65 F=46/66
G=47/67 H=48/68 I=49/69 J=4A/6A K=4B/6B L=4C/6C
M=4D/6D N=4E/6E O=4F/6F P=50/70 Q=51/71 R=52/72
S=53/73 T=54/74 U=55/75 V=56/76 W=57/77 X=58/78
Y=59/79 Z=5A/7A 0=30 1=31 2=32 3=33
4=34 5=35 6=36 7=37 8=38 9=39

Other Symbols:

@=40 "=22 #=23 $=24 %=25 &=26
'=27 (=28 *=2A +=2B ,=2C -=2D
.=2E /=2F :=3A ;=3B== 3D ?=EF
[=5B \=5C

Other values of interest are;

00 - This indicates the start of the next name
20 - This is a space

---------------
Ok then, how do I make a text mod?

The simplest way is to use the AR/GS's inbuilt Text Search (located in the Memory Editor).
Then search for a word you know is used near where you are in the game.

I.e.

On GoldenEye 007 search for 'Mishkin' while on Multiplayer character select.
The address found was 8029DE4C through to 8029DE52. We want to replace 'Mishkin' with
'FoxDie', so using the chart above we can see that F=46, o=6F, x=78, D=44, i=69, and e=65. When
you replace the letters you will see we now have the name 'FoxDien'. The last 'n' is not needed
so replace it with a 00 (This tells the game that another name is going to start, in this case
'Boris'). Now this should have fixed our problem and we should now have 'FoxDie'.
Check this by scrolling over to 'Mishkin' in the Character Select and see what it now says.

Ok, so now you've changed the name in the Memory Editor. But how do I make that into a code,
I hear you ask? Its simple. Using the example above, you can see the first memory location
mentioned is 8029DE4C and if you were paying attention you should realise we changed this into
a F (46 in hex). Put those two parts of a code together and you have 8029DE4C 0046. You have
now got the code to change the first letter.

Simply do the same thing with all the letters of the name and the code should look like this:

8029DE4C 0046
8029DE4D 006F
8029DE4E 0078
8029DE4F 0044
8029DE50 0069
8029DE51 0065
8029DE52 0000

You now have the code!!

~TIP~

To make the above code shorter we could make it '16-bit'. This can only be done on even
addresses. These are addresses ending in 0, 2, 4, 6, usual one), with the first
address going first in the values (the last four digits out of the 12).
So for;

8029DE4C 0046 &
8029DE4D 006F

you could make it into;

8129DE4C 466F

This (the above code) would work the same as having the two codes separate.

As I said before. An address ending in a odd number wouldn't work and would just write the last
two digits in the value.

The '16-bit' writing of codes is effective when used correctly as it cuts the amount of codes
down considerably (nearly half in this case).

You would then input this into your AR/GS as you would a normal code. Go to the section of the
game where the section of text should be changed and see if it worked.

---------------
What happens if I want to make a name longer then it was originally?

Well there are two possible ways. One way is to see if there are any spare digits next to the
name (like two or more sets of 00's).

This could be used for turning 'Boris' into 'NerdBoy'.

Firstly you would find the location, as we did before (8029DE54-8029DE58). Then change the
letters as before, making:

8129DE54 4E65
8129DE56 7264
8029DE58 0042

This spells 'NerdB'. If you look just after 'NerdB' (in the memory editor) you will see three
sets of 00. Only the last set is needed. Thus we can change the other two sets into 6F and 79
(in that order). This will make;

8129DE54 4E65
8129DE56 7264
8129DE58 426F
8029DE5A 0079

Just always make sure you leave at least one set of 00's, or, in this case, his name would be
mixed with Ourumov's (adding a 40 at 8029DE5B would make 'Boris@Ourumov').

**ANOTHER METHOD**

If this doesn't work you could always go into Ourumov's memory section and use his digits
(remembering to still use at least one set of 00's when finished with the name).

So as Ouromov's section starts at 8029DE5C (with the 8029DE5B being the 00) you could change
both 8029DE5B & 8029DE5C into different values. But then you would have to remember to change
8029DE5D or afterwards to a 00.

This method is know as 'Bleeding'. The problem with this is it will mess up the next persons
name.

---------------
Glossary:

Hexadecimal - A form of counting which has 16 digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,
C, D, E, F) rather then the usual 10

Action Replay - A device made by Datel allowing you to change the coding of a game (Known
as a GameShark in America)

PSX - Short way of writing Playstation. Due to original development name

N64 - Short way of writing Nintendo 64. For obvious reasons

AR - Short for the Action Replay. See 'Action Replay'

GS - Short for Gameshark. See 'Gameshark'

---------------
Acknowledgements:

FoxDie - Wrote it all
Sutaz - For info on Text Modifiers in 'The Secrets of Professional GameShark
Hacking'. Also for the Hex digits
Bannanas is offline   Reply With Quote
Old 09-28-2010, 12:01 PM   #2
kone191
Senior Member
 
kone191's Avatar
 
Join Date: Oct 2008
Posts: 107
Default

???
kone191 is offline   Reply With Quote
Old 09-28-2010, 04:05 PM   #3
InVerse
Senior Member
 
Join Date: Jul 2002
Location: Midwest, U.S.
Posts: 1,489
Default

#1) That method utilizes cheat devices (GameShark/Action Replay) and will only be useful for modifying very small snippets of text. The tutorial was written for a site dedicated to hacking GoldenEye via cheat devices and was intended to be used on real carts, not on ROMs.

#2) The tutorial assumes that the game being hacked will utilize standard ASCII values for it's text. While this is true for Golden Eye and Zelda and a few other games, it certainly isn't always the case. As such, the tutorial is limited in scope. (And if the game uses ASCII values, you can just hack the game with a hex editor and nothing else.(Open Ocarina of Time in a hex editor, scroll to 0x88e334 and there's the text.))

#3) Unless you're expecting your users to actually enter any Gameshark codes you create when they try your hack, thus ensuring that you lose at least 60% of your potential audience, then you're going to have to convert the codes into ROM addresses and permanently apply them. It would just be easier to hack the ROM directly.
InVerse is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:59 AM.

Contact Us - Zophar's Domain - Archive - Top

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.