|
Post by Dead on Jan 14, 2011 3:55:46 GMT -5
I have probably seen it somewhere but missed it, where in the rom is links voice located _I mean seriously I can't find any ofsets anywhere! Basically I want to change links voice, but I don't want to use gameshark codes, so :/ **Will post a video of my hex editing so far later** (YES DEBUG ROM NOT 1.0 1.1 or 1.2, just to make that clear )
|
|
|
Post by Jason777 on Jan 14, 2011 4:32:02 GMT -5
If you have the code that changes link's voice to Dark Link's, you have the ROM offset:
Here's a little mini tutorial on how to do this...
Open the ROM in LemASM (or other N64 Hacking program like Renegade64)
Switch the view to the MIPS disassembly view (View --> MIPS disassembly)
Go into Edit mode (View --> Edit Mode)
The ROM is loaded at 80000400 so we would Subtract 80000400 from whatever the offset of code is. There is also a 1 kilobyte header so we would Add 1000 after that.
That should give you the ROM offset.
If you want to basically "patch" a code to the ROM, simply Disassemble the code and then copy it's sources pieces to the correct ROM offsets that its supposed to modify.
Someone correct me if I'm wrong
|
|
|
Post by Dead on Jan 14, 2011 5:46:26 GMT -5
Sounds nice I'll try that and ty^^ EDIT: I told you I heard it somewhere! I knew that but thanks! EDIT2: Oh and the n64 uses the MIPS R4300i processor and playstation 1 uses the (MIPS) R3000 so the games should be 100% backwards compatible? (I read it somewhere and want verification) If they are I have some GREAT ideas! so I would like to know that too! EDIT3: Nope that didn't work.
|
|
|
Post by Jason777 on Jan 14, 2011 15:38:11 GMT -5
what didn't work?
|
|
|
Post by Dead on Jan 14, 2011 16:04:48 GMT -5
If you have the code that changes link's voice to Dark Link's, you have the ROM offset: Here's a little mini tutorial on how to do this... Open the ROM in LemASM (or other N64 Hacking program like Renegade64) Switch the view to the MIPS disassembly view (View --> MIPS disassembly) Go into Edit mode (View --> Edit Mode) The ROM is loaded at 80000400 so we would Subtract 80000400 from whatever the offset of code is. There is also a 1 kilobyte header so we would Add 1000 after that. That should give you the ROM offset. If you want to basically "patch" a code to the ROM, simply Disassemble the code and then copy it's sources pieces to the correct ROM offsets that its supposed to modify. Someone correct me if I'm wrong that didn't work I tried it on one code and nothing happened (yes debug rom code) Then I tried it on another code and ended up in a big block looking something like this: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Any other idea? :/
|
|
|
Post by Jason777 on Jan 14, 2011 18:58:43 GMT -5
Oops! You also need to calculate a new CRC (checksum) after you are done making the changes: Tools --> Calculate CRC Heres the source I originally first learned to do this: orbitaldecay.com/N64/index.html
|
|
|
Post by Dead on Jan 15, 2011 6:42:32 GMT -5
ok.... Oh and the n64 uses the MIPS R4300i processor and playstation 1 uses the (MIPS) R3000... so the games should be 100% backwards compatible? If they are I have some GREAT ideas! so I would like to know that too! Anyone know about that?
|
|
|
Post by Secant on Jan 15, 2011 13:14:12 GMT -5
That's under the assumption backwards compatibility exists (not always the case). Obsolete functions may be overwritten with new ones, and when executed in an old way may cause bad problems, new functions may be required to render a result native to the N64, or any other thing may cause problems. I would try to find some documentation about MIPS and its compatibility with older versions, if there is any.
|
|
|
Post by Dead on Jan 15, 2011 13:54:51 GMT -5
ok but theoretically they should be at least partially backwards compatible with few or no modifications to the code? Jason777 I always recalculate the checksum after using LemAsm... I noticed that it will not work without... it still doesn't work tho... I checked the link and will try that later....
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 15, 2011 14:38:51 GMT -5
If you have the code that changes link's voice to Dark Link's, you have the ROM offset: Here's a little mini tutorial on how to do this... Open the ROM in LemASM (or other N64 Hacking program like Renegade64) Switch the view to the MIPS disassembly view (View --> MIPS disassembly) Go into Edit mode (View --> Edit Mode) The ROM is loaded at 80000400 so we would Subtract 80000400 from whatever the offset of code is. There is also a 1 kilobyte header so we would Add 1000 after that. That should give you the ROM offset. If you want to basically "patch" a code to the ROM, simply Disassemble the code and then copy it's sources pieces to the correct ROM offsets that its supposed to modify. Someone correct me if I'm wrong This kind of thing does not work for most codes, only ones that are always modifying some data that's always loaded into the same place in RAM. The voice set value loaded when Link is an adult is at 803F365A in RAM, the voice set value loaded when he's a child is at 803F372E in RAM. You'll need to find these values in ROM for yourself, or you can change a bit of assembly code to always load the same voice set.
|
|
|
Post by Dead on Jan 15, 2011 15:32:53 GMT -5
ok ty!
|
|