Go Back   Project64 Forums > Public Version > Project 64 - v2.x - Cheats

Reply
 
Thread Tools Display Modes
  #1  
Old 18th July 2013, 09:56 PM
retroben's Avatar
retroben retroben is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jul 2013
Posts: 652
Default Banjo-Tooie no frameskip gameshark code!

I have found the code that sets the frameskip in Banjo-Tooie (U).

Here it is.

No Frameskipping
8007913C 0080

You can find it by searching equal to... 0/4 before/after getting hurt in the cloud-cuckooland cheese room.

I used this cheat in the emucr leaked v1.7.0.50 b23 (yes,I know 2.0/2.1 is out).

Edit:IT ALWAYS WORKS!!!!!

UPDATE:Many new codes!

master
81092BE0 0804
81092BE2 8000
81120200 03E0
81120202 0008

Never Slide On Slopes
81120000 3C0E
81120002 0000
81120004 AC8E
81120006 07C8
Requires the master code.

Other codes that require the master code like this one are on pages 12 and higher.

Last edited by retroben; 19th February 2014 at 11:47 PM. Reason: AWESOMENESS!!!
Reply With Quote
  #2  
Old 18th July 2013, 10:16 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,245
Default

Frame skipping?

Like, that option in Rice's Video Plugin that says "Skip frame", for skipping every other video drawing frame?

I'm amazed you can actually have a GS code for something like that lol, if I'm reading you properly.
Reply With Quote
  #3  
Old 19th July 2013, 12:52 AM
retroben's Avatar
retroben retroben is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jul 2013
Posts: 652
Default

Quote:
Originally Posted by FatCat View Post
Frame skipping?

Like, that option in Rice's Video Plugin that says "Skip frame", for skipping every other video drawing frame?

I'm amazed you can actually have a GS code for something like that lol, if I'm reading you properly.
Banjo-Tooie has an internal frame skipper,which means it gets choppy in large levels.
This crappy frame skipping is well known on the actual physical game in your N64 console when talon trotting in jinjo village with Super Banjo enabled.

This code's hex address is very close to the beta devil bottles code found by RWP.
If you ever entered the CCL cheese room on PJ64,you would notice very fluid skipless animation,at least until you get hurt on the spiked onion,which causes the frame skip to be set to four (how I found the code).

I recommend using the old 1.5.2 Jabo D3D plugin for flawless 60fps.
The code also works on v1.6 of PJ64,it runs even smoother than 1.7.
Add/enable the cheat in the BT's edit cheats context menu then start the game,and you will notice how smoothly the title sequence moves.
It will also be extremely noticable in Banjo's house,and whenever you get launched by a CCL flower.

If you want to,you can set it to any higher number like 9 to make it look like your computer sucks at emulation.

This code improves the overall playability of Banjo-Tooie.

I would love to see someone make a YouTube video of this Gameshark code in action on an actual N64 console,if there is anyone that has Banjo-Tooie and an N64 gameshark willing to make that video.

Or at least someone make a video of it in action in PJ64.
Reply With Quote
  #4  
Old 19th July 2013, 01:14 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,245
Default

Also have you tried setting the pointed address value to 0x99999999, or 0x9999, instead of just 9 at the lowest byte, to make sure the cheat code is targeting only an 8-bit field instead of maybe a 16-bit one?
Reply With Quote
  #5  
Old 19th July 2013, 03:41 AM
retroben's Avatar
retroben retroben is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jul 2013
Posts: 652
Default

???

I think 09 would make it skip nine frames in one digit.

I am sure there is only one digit space for this code to work on since the next byte on the right is normally an eighty like so--->04 80 ## ##

LOL byte,and right
I am rhyming!

*me making dummy voice*--->duugh me coonfewsd uhbowte poynter theeng yuu arr tawlkeeyng uhbowte.

All I can say is that the code works perfectly fine for me in its current state.

Please tell me about your experiences with it after you try it out.

To me,with the code on,it looks like
a high end,fast motion w/machine guns,First Person Shooter game.

I can't think of any specific game with smooth high speed gameplay.

Fact?:Banjo-Kazooie does not have BT's frame skipping issue.
Reply With Quote
  #6  
Old 19th July 2013, 09:18 AM
Tasoulis Tasoulis is offline
Senior Member
 
Join Date: May 2011
Posts: 164
Default

Wow... this actually works indeed! I just put that code in PJ v2.1 with Glide and checked fps counter to see the exact frame rate and... BAM! 60fps! (in fact, fps counter isn't needed, anyone can see it with his own eyes how smooth it actually is)

Problem is, my computer is a Pentium 4 3.0ghz so after the title screen (which runs at 60fps) the rest of the game runs in slow motion and my CPU at 100% but i still get 40-50fps from the game. Which means if my computer was faster, i would definitely get 60fps.

This is awesome and i wonder if this can be done in other games. I know that Goldeneye and Perfect Dark can be run at 60fps using 1964 ultrafast, so i am thinking that maybe something similar can be done with a gameshark code? And what would happen if someone sets this code on a real N64? I don't think it would work since the frame limit was there in the first place because the console can't handle smoother frame rate with this game and its there to maintain the frame rate at a steadier, but lower frame rate with no huge ups and downs. Also, do you know if this messes up the timing in the game overall (time limit games, etc)?

Anyway, great job Retroben. This is indeed very interesting.


Quote:
Originally Posted by retroben View Post
I can't think of any specific game with smooth high speed gameplay.
You mean on the N64? At 60fps? F-Zero X is the only one i know.

Last edited by Tasoulis; 19th July 2013 at 09:29 AM.
Reply With Quote
  #7  
Old 19th July 2013, 01:52 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,245
Default

Quote:
Originally Posted by retroben View Post
???

I think 09 would make it skip nine frames in one digit.

I am sure there is only one digit space for this code to work on since the next byte on the right is normally an eighty like so--->04 80 ## ##

LOL byte,and right
I am rhyming!

*me making dummy voice*--->duugh me coonfewsd uhbowte poynter theeng yuu arr tawlkeeyng uhbowte.
I don't mean from left-to-right.

I mean from right-to-left.

MIPS is a big-endian machine, so your code:
8007913F 0000
writes 8 bits, 0x00, to *(DRAM + 0x07913F).

However, this is an un-aligned byte address.
It's very likely that 0x7913E is also part of the data segment you're writing to.

So if you set 0x07913F to 0x00, it does not always guarantee frame skip is set to 0.
If you set 0x07913E to 1, 2 or whatever, then it's 256 TIMES the value at ...3E, plus whatever you put in 3F.

I haven't had a chance to try out the code yet since I'm not at my home computer, but I'll try it eventually. Good work regardless.
Reply With Quote
  #8  
Old 19th July 2013, 05:04 PM
retroben's Avatar
retroben retroben is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jul 2013
Posts: 652
Default @Tasoulis

If you know how,you can search for a cheat with PJ64 debugger in Goldeneye and/or Perfect Dark.

If you can't switch between two different areas immediately,you will have to manipulate save states.

All you have to do is first go to a point in the game where it skips frames,make a savestate,go to a place that the game runs with less/no frames skipped,and make a different savestate.

Now to find the cheat,you search in unchanged,then changed after you load each savestate over the other one.

You could also progress into another area normally and load back if you know the next area is more/less choppy than the previous one.

If you know of an area in the game that can run flawlessly with no choppy speeds,you can search for equal to zero in this area to shorten your search.

If you run out of cheats to find,after your first search,look at the 50000th/last result's address,you can put this part in the "start addr." box for your next search.
(e.g 50,000--->8007653C:0078--->this would be the highest possible found address in your search limit,put this in the starting address to search further down.)

Warning:the 2.0/2.1 versions of PJ64 crash on memory search for an unknown reason,you will have to use 1.6/1.7/or some other clean 1.7 version for it to search without immediately crashing.

EDIT:I have just encountered a non mapped space error when getting to file select on PJ64 v1.6 if you run the game with "no frameskip" already enabled before starting emulation.

This crash does not happen in 1.7 versions,at least not in the beta 23 emucr leak.

Last edited by retroben; 19th July 2013 at 05:20 PM.
Reply With Quote
  #9  
Old 19th July 2013, 05:23 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,245
Default

Well I finally got around to trying the code out.

It seems your update about using offset - 3 was correct.
This is actually a sign-extended 32-bit word.

So doing *(INT32 *)(DRAM + 0x07913C) = 0x80000000 .. 0xFFFFFFFF implies a negative skip.
It would be the same thing as just zeroing it like you tried to do.

If we add the following line before yours in the code, your method should fail to zero the frame skip:
Code:
8107913C 7FFF
8007913F 0000
I would suggest zeroing the upper immediate of the register, just to make sure in case the game might try to write to there later.

Code:
8107913C 0000 // if you set this to 0x8000 to 0xFFFF it's negative,
// and the game seems to just treat that as if you set it to 0 instead, so, same
8107913E 0000
Reply With Quote
  #10  
Old 19th July 2013, 05:27 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,245
Default

If you like you could also make this into a user-modifiable cheat code.

Try:
Code:
8107913C 0000
8107913E ????
And on the "Options <value><label>" box on the right, give the user some values to pick from when they double-click your cheat so they can plug them in.

I guess I would do:
Code:
0000 skips no frames
0001 skips 1 frame
0002 2 frames
0003 3 frames
0004 4 frames
0008 8 frames
0010 16 frames
But I haven't thoroughly enough tested this code to know if maybe there might be some other values more useful than those you might find.

Anyway nice code, glad you found out about it.
Reply With Quote
Reply

Tags
banjo-tooie, gameshark

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 06:10 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.