 |
 |
GoldenEye 007 Nintendo 64 Community, GoldenEye X, Nintendo 64 Games Discussion GoldenEye Cheats, GoldenEye X Codes, Tips, Help, Nintendo 64 Gaming Community
|
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6179
 |
Posted: Mon Jun 29, 2009 2:33 pm Post subject: |
 |
|
Oy those things are extremely difficult to trace...Is there any way to work around it...it could be some time before that's fixed. But thanks for block to help!
I've got it in nemu. It doesn't crash there as like last time...I'll...try. I forget how I did it last time. |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6179
 |
Posted: Mon Jun 29, 2009 4:35 pm Post subject: |
 |
|
(It's really, really cool what you did in your level btw so I kinda want this fixed...)
I wish I had my notes from last time I only have Zoinkitys crazy fix for this.
I know I traced it by breaking on 800a9ebc (P2 health), but if I could just find the address my original code used I could prob fix it.
Maybe side effect of Zoinkity's new patch |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6179
 |
Posted: Mon Jun 29, 2009 4:51 pm Post subject: |
 |
|
I sent Zoinkity the recreation of bug right before it crashes (in nemu), of course nemu doesn't actually.
Found where my prev patch was:
TLB start: 7F089CE4
(old rom patch)
WriteLongToBuffer(mainSetup.GEROM, 0xBE814, 0x8FA4004C);
WriteLongToBuffer(mainSetup.GEROM, 0xBE818, 0x28410002);
WriteLongToBuffer(mainSetup.GEROM, 0xBE81C, 0x14200036);
WriteLongToBuffer(mainSetup.GEROM, 0xBE820, 0x30840001);
WriteLongToBuffer(mainSetup.GEROM, 0xBE824, 0x0FC26C54);
WriteLongToBuffer(mainSetup.GEROM, 0xBE828, 0x0AFA4004C);
Must be crashing at a different spot.
Last time it was a bad pointer I think. |
|
|
|
|
|
 |
 |
 |
 |
 |
zoinkity 007


Joined: 24 Nov 2005 Posts: 1736
 |
Posted: Fri Jul 10, 2009 7:09 am Post subject: |
 |
|
I'll take a look at this when I get home. Just to warn, it will take me at least a week or two to get back here, so chances are Sub will figure it out by then.
Sub: I have the docs (probably) but they aren't with me. I should also have the original patch you created. _________________ (\_/) Beware
(O.o) ze
(> <) Hoppentruppen! |
|
|
|
|
|
 |
 |
 |
 |
 |
TimEh Agent

Joined: 08 May 2009 Posts: 187 Location: oakville. ONT, Canada  |
Posted: Fri Jul 10, 2009 11:44 pm Post subject: |
 |
|
thanks. no rush. Hit a road block with how i want the level to look anyways. Gonna take a break from it. Gonna try again with some fresh eyes in a week or 2 |
|
|
|
|
|
 |
 |
 |
 |
 |
zoinkity 007


Joined: 24 Nov 2005 Posts: 1736
 |
Posted: Wed Jul 22, 2009 5:54 am Post subject: Co-Op fix |
 |
|
Corrected patches and whatnot can be found here:
http://www.mediafire.com/?1hx7zueoc0k84zr
-or you can wait a few hours when Sub updates the editor ;*)
+_+
ROM fixes:
Code: | NGEE BE828 0082082B
NGEJ BE858 0082082B
NGEP BC86C 0082082B |
Co-op codelist fixes:
Replace these lines in NTSC
Code: | 812BDAF0 2C81 -> 812BDAF0 0082
812BDAF2 0004 -> 812BDAF2 082B |
I don't have a copy of the PAL version of these codes, but a similiar change would be made.
+_+
Well, here's what's happened.
This snippet of code attributes points for kills. Normally, if a non-player kill occurs--in other words, something other than player numbers 0-3--the killed player's # is set as the killer.
Code: | //7F089CE0: BE810 attribute kill: note co-op patch shown in this dASM
JAL 7F09A464 ;V0=#players
NOP
SLTI AT,V0,0002 ;TRUE if solo
BNEZ AT,7F089DC8 ;branch if solo
LW A0,004C (SP) ;SP+4C=A0: killer
JAL 7F09B150 ;V0= 8007A0B8: killed
SLTIU AT,A0,0004 ;TRUE if killer a player
BEQL R0,AT,7F089D04 ;branch if player kill
SW V0,004C (SP) ;SP+4C=V0: killed set as killer - non-player kills are now suicides
//7F089D04: BE834 |
Now, here's the funny part. In this case, there are two players. The mine, for whatever reason, is set as player 3! That means that this line:
-will still return true, even though it shouldn't. What that means is that later down the line, when this is executed:
Code: | //7F089D48: BE878
JAL 7F09B10C
LW A0,004C (SP) ;A0=killer |
-you'll get a NULL address as a pointer to "player 3"'s BONDdata, and it all goes kaput.
The fix is easy enough though. All we need to do is change the SLTIU to an SLTU, then use the #players value returned by 7F09A464 as the test number. If it is below that, it must be a player.
Code: | //7F089CF8: BE828
SLTIU AT,A0,0004 -> SLTU AT,A0,V0
2C810004 -> 0082082B |
Now it tests against the actual number of players, so you'll never overrun it.
-Zoinkity _________________ (\_/) Beware
(O.o) ze
(> <) Hoppentruppen!
Last edited by zoinkity on Sat Sep 25, 2010 8:58 am; edited 1 time in total |
|
|
|
|
|
 |
 |
 |
 |
 |
zoinkity 007


Joined: 24 Nov 2005 Posts: 1736
 |
Posted: Wed Jul 22, 2009 10:02 am Post subject: NTSC Codelist |
 |
|
The Spy Who Loved Me - Corrected Co-Op Kill Fix
NTSC - North American Codeset
Code: | "Co-op Fix #62" .off
812BDAE0 3C02
812BDAE2 8008
812BDAE4 8C42
812BDAE6 A0B8
812BDAE8 AFA2
812BDAEA 002C
812BDAEC 8FA4
812BDAEE 004C
812BDAF0 0082
812BDAF2 082B
812BDAF4 1420
812BDAF6 0003
812BDAF8 0000
812BDAFA 0000
812BDAFC 8FA4
812BDAFE 002C
812BDB00 AFA4
812BDB02 004C
812BDB04 3C0C
812BDB06 7F08
812BDB08 358C
812BDB0A 9D00
812BDB0C 0180
812BDB0E 0008
812BDB10 0000
812BDB12 0000
812BDB18 3C0C
812BDB1A 802B
812BDB1C 358C
812BDB1E DAE0
812BDB20 0180
812BDB22 0008
812BDB24 0000
812BDB26 0000
8100D058 3C02
8100D05A 8040
8100D05C 0040
8100D05E 8809
8100D060 3C10
8100D062 B00C
"Co-op (2)" .off
81400000 2610
81400002 CB30
81400004 160B
81400006 0005
81400008 3C10
8140000A 802C
8140000C DE02
8140000E DB18
81400010 FCC2
81400012 1CF0
81400014 DE02
81400016 DB20
81400018 FCC2
8140001A 1CF8
8140001C 8FBF
8140001E 001C
81400020 8FB0
81400022 0014
81400024 0220
81400026 0008
81400028 0000
8140002A 1025
.end |
_________________ (\_/) Beware
(O.o) ze
(> <) Hoppentruppen! |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6179
 |
|
|
|
|
|
 |
 |
 |
 |
 |
TimEh Agent

Joined: 08 May 2009 Posts: 187 Location: oakville. ONT, Canada  |
Posted: Wed Jul 22, 2009 8:11 pm Post subject: |
 |
|
awsome! weird how this didnt show new post when zoinkity replied. |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
 |