ShootersForever.com Forum Index

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


multi questions
Goto page Previous  1, 2
 
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department
View previous topic :: View next topic  
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6179

 PostPosted: Mon Jun 29, 2009 2:33 pm    Post subject: Reply with quote Back to top

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.
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6179

 PostPosted: Mon Jun 29, 2009 4:35 pm    Post subject: Reply with quote Back to top

(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 Sad 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
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6179

 PostPosted: Mon Jun 29, 2009 4:51 pm    Post subject: Reply with quote Back to top

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.
 
View user's profile Send private message
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1736

 PostPosted: Fri Jul 10, 2009 7:09 am    Post subject: Reply with quote Back to top

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!
 
View user's profile Send private message Send e-mail
TimEh
Agent
Agent


Joined: 08 May 2009
Posts: 187
Location: oakville. ONT, Canada

 PostPosted: Fri Jul 10, 2009 11:44 pm    Post subject: Reply with quote Back to top

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
 
View user's profile Send private message
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1736

 PostPosted: Wed Jul 22, 2009 5:54 am    Post subject: Co-Op fix Reply with quote Back to top

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:
Code:
"SLTIU   AT,A0,0004"

-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
 
View user's profile Send private message Send e-mail
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1736

 PostPosted: Wed Jul 22, 2009 10:02 am    Post subject: NTSC Codelist Reply with quote Back to top

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!
 
View user's profile Send private message Send e-mail
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6179

 PostPosted: Wed Jul 22, 2009 1:44 pm    Post subject: Reply with quote Back to top

Fantastic Smile Well done! I just updated the patch on vault, it isn't automatically done in the editor anymore (should it?).

http://www.goldeneyevault.com/viewfile.php?id=69
 
View user's profile Send private message
TimEh
Agent
Agent


Joined: 08 May 2009
Posts: 187
Location: oakville. ONT, Canada

 PostPosted: Wed Jul 22, 2009 8:11 pm    Post subject: Reply with quote Back to top

awsome! weird how this didnt show new post when zoinkity replied.
 
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department All times are GMT - 8 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
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

Cobalt 2.0 BB theme/template by Jakob Persson.
Copyright © 2002-2004 Jakob Persson


Powered by BB © 01, 02 BB Group

 


Please Visit My Other Sites: GoldenEyeForever.com | GrandTheftAutoForever.com

Got kids? Check out my Dora The Explorer site with games and coloring pages!

Our forums feature Nintendo 64 games, GoldenEye 007 N64 New Maps and Missions, GoldenEye Cheats, N64 Emulator, Gameshark, GoldenEye Multiplayer and more!

[ Privacy Policy ]