Relative Searcher, v.2.1
by Griffin Knodle, a.k.a. Jair, 8/26/98
E-mail:gknodle@trinity.edu
http://www.resnet.trinity.edu/users/gknodle/


WHAT IT IS
-------------------
Relative Searcher is a program you can use to find text blocks, pointer
tables, or other things in unfamiliar ROMs. Instead of searching for exact
known values, Relative Searcher searches for known changes from one byte to 
the next. It also lets you skip over bytes if you have no idea how they 
relate to the rest of your search string.


WHAT YOU'LL NEED
-------------------
Something to search.
You may also want to make a numbered table of the alphabet.


WHAT TO DO
-------------------
Enter the file to search. Now start entering search values. Hit ENTER when
you're done. Enter an asterisk (*) to skip over an unknown byte.

For example, if a game's text has the word "battle" in it, search for this
string:
1
0
19
19
11
4

Relative Searcher will look for a change of -1 (b to a), followed by +19 (a to t), 0
(t to t) and so on. This will find "battle" no matter what value the 
alphabet starts with (as long as it uses ordinary alphabetical order). This
is useful if you don't know where the letters are in a ROM's character set.

Note that because it's a relative search, the starting value doesn't matter.
You can also find "battle" with this string, for example:
3
2
21
21
13
6

Now, if you need to search for something like "hey hey", you'll have a
problem -- you can't just guess how the space relates to the letters. Use
an asterisk to skip that byte:
7
4
24
*
7
4
24

This isn't just for finding text; it can find anything you can figure out
relative values for. For example, Radia has a table of compressed words in
it. I wanted to find the pointer table for it. By looking at the words, I
could figure out the starting address of each one. Now, the problem is,
pointer addresses are two bytes long, and I had no idea how the high-order
byte related to the ones I had found. So I searched for:
11
*
16
*
20
*
24
*
28
*
32


TERMS OF USE
-------------------
This program is distributed with its source code. You may use,
distribute, and modify it freely. Only two restrictions: These terms of use 
must stay the same, and you must always include the source code with the
program. Oh, and I'd appreciate it if you credit me as the original
author.


DISCLAIMER
-------------------
All games and systems mentioned are copyright their respective companies. 
I am not responsible for any damage you may cause to your computer or 
software by using this program. Owning a ROM is illegal unless you already 
own the cartridge. If there are runners on first and second and fewer than 
two outs, a fly ball hit to an infielder shall be ruled "caught" even if 
the infielder drops it. I think that about covers everything.
