****************************************************************** GGG SSSSS CCCC CCCC CCCC GGGGGGG SSSSSSSSS CCCCCCCC CCCCCCCC CCCCCCCC GGGGGGGGG SSSSS SSS CCC CCC CCC CCC CCC CCC GGG SSSSS CCC CCC CCC GGG GGGGG SSSSS CCC CCC CCC GGG GGG SSSSS CCC CCC CCC GGGGGGGGG SSS SSSSS CCC CCC CCC CCC CCC CCC GGGGGGG SSSSSSSSS CCCCCCCC CCCCCCCC CCCCCCCC GGG SSSSS CCCC CCCC CCCC ------------------------------------------------------------------ Game Software Code Creators Club ------------------------------------------------------------------ Faq written by Code Master Bryan Black - brianj@htc.net - President ****************************************************************** N64 Enable Code FAQ!! Version 1.10 - Last Updated On 01-21-00 ****************************************************************** Version Notes: 1.00 - Initial Release, may have spelling errors, etc.. :) Webmasters & FAQ Writers: Do NOT add this to any other FAQ. You may add it for download on your wepage, provided you do not change anything, and you do not add it to any other FAQ, html page, etc.. ****************************************************************** Welcome to the second GSCCC Faq!! ****************************************************************** This faq is designed to help people learn some info about the N64 Enable Codes, why and how they work. This is a senstitive subject, as I'm sure that the Big N doesnt want us to know this kind of information. But, with us being crackers, we have figured this information out. The information contained in this FAQ is 100% knowledge of Code Master, no help/ideas from anyone are in this FAQ. ****************************************************************** Information That Is Needed To Know Before Tackling This Code ****************************************************************** ASM - aka Assembly Language knowledge is good to know, because these codes that are being written are in fact ASM codes. Well, let's cut to the chase, what could Nintendo possibly be doing to cause a problem with the Cheat Device. Not only does it disable the Code Generator's Button to goto the In-Game Menu, but no codes will work without an Enable Code either. This means that they are doing something that disables how the Cheat Device works. Well, here's some information that not many know, and I have figured this info out over my time with hacking N64. Cheat Device Pro (Version 3.0 & Higher) uses WatchLo & WatchHi Co-Processor break points to know when to activate the codes that have been turned on. Well, obviously, if they changed the WatchLo & WatchHi Co-Processor registers, it would make Cheat Device not be able to set its own 'Break Points' to know when to activate the codes, thus disabling the Cheat Device. ****************************************************************** The Actual Searching Method!! ****************************************************************** Well, obviously if you cant use the In-Game Code Generator, then you cant dump memory to the PC, so you ask, how do I search for this? Well, simple, you must have an Illegal Rom copy of the cartridge :P (Well, having a 'Backup' copy of an N64 rom is not illegal in all places if you own the original cartridge, but for the sake of argument we'll just say it is.) In the rom file, you need to get yourself a Disassembler, to disassemble the N64 Rom into R4300i coding. (aka ASM) I recommend either N64PSX.EXE by Nagr, or Niew by Titanik. Both are good, and can be used to help find this command. Well, now what is the command that we are looking for? Obviously, if they want to change a Co-Processor register, you would just set the register equal to something else right? Exactly, there is a Co-Processor opcode called 'mtc0', which means, 'Move To Co-Processor 0'. Well, you need to find an line that is something like, 'mtc0 $v0,$s2' or 'mtc0 $v0,$s3'. In this opcode, the first register can be 'anything', $at, $v0, $v1, $a0, etc.. But the 2nd register must be $s2 or $s3. Why must it be that register? Simple, the opcode is moving a register to the Co-Processor registers, which have different names as well. So, in essense, $s2 is equal to WatchLo, and $s3 is equal to WatchHi. Make sense now? They are setting WatchLo or WatchHi with this 'mtc0 xxx,$s2/$s3' line. It also happens that the Cheat Device needs both WatchLo & WatchHi to function properly. So they can change either WatchLo or WatchHi to make the Cheat Device not set its own break point to turn on codes, or check to see if the GS Button was pressed, etc.. OK, now I know the 'mtc0 xxx,$s2/$s3' line in the ROM, how do I make that into a Cheat Device code? Simple enough. Write down the rom address of the line, lets say the line was 0005A278h. Now you need to goto the rom address 00000008h in your disassembler, this is where the game's 'Entry Point' is stored. For most games, it will have 80000400h at this line. So, take this address you just got from 00000008h in the rom, and add the 0005A278h to it, and your total is 8005A678h and then subract 1000h from it and the address becomes 80059678h. And to make the Final Enable Code, change the beginning of the code to F1, so you have F1059678h. And last, but not least add 2400 to the end of that and there you have it, F1059678 2400, your final 'Enable Code'. ****************************************************************** Tips & Tricks Of The Trade ****************************************************************** Now, there are some key tips to finding this type of code. 1) None really here, unless u make your own program to disassemble the rom yourself and check for the 'mtc0 xxx,$s2/$s3' line. If you can and do this, it becomes very simple to make an Enable Code. ****************************************************************** And There You Have It... ****************************************************************** There you have it!! The first EVER N64 Enable Code FAQ on how to make them. Note that the codes will only work on Cheat Device 3.0 Or Higher because of the F1 at the beginning of the code means that the Cheat Device activates before the game even starts to run. ****************************************************************** Credits & Greetz!! ****************************************************************** Credits: FAQ 100% Written By Code Master (So Far) Game Software Code Creators Club http://www.cmgsccc.com/ Proofreading Credits: Y2Kola -------- Greetz: GSCCC Members: - ViperByte, NiteStash, Infected, Cain, Netsewn, Crono, Chaotic, - CzarDragon, CodeShark, Alanlav, Raysurx, Number 12, FNG - (http://www.cmgsccc.com/) GSC Members: - Kong, ShadowKnight, Crocc, Macrox, FoxDie, Zapdos, AdultLink -(http://www.gscentral.com/) (I know I have missed a lot of members, but those are the ones I know :)) Other: - Thunder2 ************************************************************************* ------------------------------------------------------------------------- Game Software Code Creators Club ------------------------------------------------------------------------- ************************************************************************* If you find any mistakes in this FAQ, Spelling, Methods, Or Have anything to add to it, please send the updates to brianj@htc.net. So I can add them. Yes, your name will be in the credits and you will get credit for your new ideas. If its just a spelling error, I guess I can add a credit for "Spelling Errors Fixed"? LOL ------------------------------------------------------------------------- If you like this FAQ, and would find more FAQ's like these useful in the future, please email your thoughts to brianj@htc.net and GSCCC might write some more FAQ's in the future. ------------------------------------------------------------------------- So, until next time, keep those PC's hacking and Cheat Devices cracking. And Most of ALL, THANX FOR SUPPORTING GSCCC!!! ************************************************************************* ----------------- http://www.cmgsccc.com -------------------------------- ************************************************************************* |