An interesting, but little known fact about video games passwords has not yet been mentioned here, so I will go over it. I'll even provide a little tutorial / demonstration, you lucky people.
Basically, in the case of games which have one password to correspond to each level etc. (ie not games like Metroid mentioned above) it is often possible to find out a complete list of the passwords in the game simply by knowing one of them, and using a relative search to find the others. They are usually stored in a big block in the ROM, uncompressed, and they are very easy to find.
Demonstration
To follow the demonstration you will need:
- A clean, unpatched ROM of Little Magic for the SNES. If you're unsure, confirm this is a good dump with Nach's SNES Rom Tools. Actually, it probably doesn't matter too much if you have Gideon Zhi's translation patch on, but I'm not sure (I use soft patching) and I don't want to have people complaining that it doesn't work with the patch on. So use an unpatched version. Source: Well, I can't tell you where to get this, for fear of E2 being hit with a big Lawstick. However, a little searching around on Google should bring up the goods.
- A text editor (Notepad or similar is fine) would be useful to look at the password properly. And make sure it's unzipped.
- Windows, and preferably not Windows XP. Sorry, but there are hardly any ROM hacking tools available for OSes other than Windows, and many of the best are DOS based, which leads to them not working in XP. I'm sure there are workarounds, and Windows tools which you can get, but I'm using Hexposure, which is a DOS based Hex Editor. If you only have XP, well, you might just have to muddle along with some other tools. And if you have Linux, hell, you could probably write your own Hex Editor... lj recommends frhed for a free Hex editor, and says that actually the DOS Virtual Machine for XP isn't bad, and is much better than NT, ME, or 2000. That's probably true, but I saw a lot of posts on a ROMhacking forum from people who had upgraded to XP and found that none of their favourite DOS tools worked any more. lj also notes that if DOS tool doesn't work on XP, there is no way it will work with anything later than 98, so bear that in mind. Source: (If you haven't already got it, I doubt you'll buy it for this). All reputable shops, Software sites, and countless illegal places...
- Zsnes (my favourite) or another similar SNES emulator (Snes9x or SNEeSe is fine). Source: www.zsnes.com
- A Hex Editor - as I've mentioned, I prefer Hexposure, but I'm sure any other major one (like Thingy or Hex Workshop) will do. Source: www.romhacking.com
What you want to do first is load up the game, because without at least one password it all becomes a little tricky. So start Zsnes and pick your Little Magic file in the load game dialogue. Start a new game (even though it's Japanese, the "New Game" and "Password" messages are English) and press select (you'll have to configureto "commit suicide". Do this continuously to lose all your lives (you only get a password when you lose all your lives) and then you should be given a number. Quick, write it down. What's that? You forgot it? Never mind, it was 372025.
Just to check that was right, reset the game and type in that password in the box. You should be taken to the first level again. Simple. However, to make sure we have the right passwords (and to provide us with a longer relative search string) we should get the password for the next level. Yeah, you're actually going to have to play the game. Ain't it a hard life?
It'd take me too long to tell you about the game play mechanics of the game, (although if you really want to know, here they are) but basically, all that you need to do to get through the first level is push the block upwards by pressing, yes, you guessed it, "up" on the control pad. Keep pushing it up until it rests on the grey panel on the floor. Then move the character to stand on the other grey panel. The level should then end. Now that you're on Level 2, you have to commit suicide continuously again to get the next password. This one is 053127. Reset the game and type that in. You are taken to Level 2, so clearly we have the right passwords. Now all that is left to do is finding them in the ROM.
Fire up Hexposure or whatever Hex Editor you have chosen to use. You need to load the Little Magic file (remember, unzipped) into the editor. Once that's in, find the relative search function. In Hexposure, just press F6. Now, you want to relative search for the password we found from level 1. To do this, just type it in the box and press enter. When it's found, depending on the editor, you may be asked if you wish to create a table file. Select yes. Now, you should be shown a massive block of numbers (look in the character view, not the Hex view, unless you are very good at reading Hex). If you look closely, you see that after the 6 numbers for the level 1 password, there follows the 6 number password for level 2, so we're definitely in the right place. Just to check, make sure that the first character of the level 1 password is at $0000A9E0 - if so, you've done it right.
However, the numbers all squashed up don't make for much in the way of easy reading. To remedy this, find the memory location of the end of the numbers block - it's $0000AC3D in case you can't find it. Next you need to dump the contents of the ROM between these two locations - find the dumping feature of the editor and enter in the two memory locations. A text file will be created containing the number block, but unfortunately it's a bit hard to read, because it's just a big block of characters. Since each password is 6 numbers long, an ideal solution would be to create a linebreak after each set of 6 numbers, so each password is on a separate line. If you can't be bothered to do this, have no fear...
372025
053127
919310
441234
907138
716464
265919
851710
242035
334211
622898
335170
984427
025959
359905
653126
119697
461932
451783
046627
248586
250195
773059
181779
935500
451500
514064
231906
193444
211747
725681
069319
090583
526074
983712
597726
475420
125573
187879
190251
835610
488631
471441
275095
278393
975893
254443
027808
637648
094850
403584
195190
698582
885059
527718
050825
560036
431978
395969
460226
113419
498435
481482
089618
642266
292713
628791
721337
559422
351269
845818
711856
261853
550072
222492
556444
106075
245568
974994
596435
521215
531272
610631
839137
231696
628976
224331
908356
617544
394600
916762
118547
195320
961645
330083
673597
219682
500292
328309
992221
930917
Simply copy that big block into a text file, save it, and it'll be nice, big and readable. Now, the fun begins*...
There are a number of things you can do with a full password list. For a start, you can go to any level in the game, including the end sequence, simply by typing in the number. Want to see the end of May's quest? Simple, just enter in 930917 and have a look. Not a lot of point unless you read Japanese, but now that you have the password list, you can select your level in the translated version as well, which is all nice and Englishified.
Even more interestingly, you can change the game's passwords. Simply use the Hex editor to get to which every password you want, and change it to whatever 6 character number sequence you like. I wouldn't like to try and add in non-number characters, as the game would probably just not work anymore... And naturally, make sure the password you add is different from all the others. Then simply save the file, and when it is loaded in the emulator, not only will entering the new password in the entry screen take you to whatever level, that level will display you the new password should you lose all your lives on it. This is because both these functions (checking the user entered password, and displaying the password on game over) use this single number block, as opposed to two blocks, so changing one entry in the block works for both functions.
As to what exactly the use of this is, well, there's nothing particularly obvious. If you ever need to get to the end of a game, to, for example, test the ending in a hacked version (I discovered and used this very method to confirm to Gideon Zhi that the Little Magic patch was complete, right up to the end of the game) then this is useful, as hacking save states or using Game Genie codes can randomly mess up games. And naturally, if you want passwords in a game to spell out something (in this game that would be hard, since they are numbers, but in, for example, Cameltry, the passwords are stored as letters, so you could put subliminal messages into a game, should you so wish**.
I hope this has been interesting and enlightening to at least some of you. If there is a bit of the tutorial I haven't made clear, please, tell me about it. If you want to see more ROM hacking stuff on E2... then wait for me to learn some more! In the meantime, www.romhacking.com has a hefty selection of tutorials for your amusement.
* - I bet you were wondering when that was going to happen...
** - I do not endorse or sponsor this use of my method. If you try it though, do tell me about the results.
Thanks to lj for comments and corrections.