Project64 Forums

Project64 Forums (
-   Project 64 - v2.x - Cheats (
-   -   Banjo-Tooie no frameskip gameshark code! (

retroben 17th February 2014 11:52 PM

I wish I knew how to make a code that reads the 32bit value and writes to +3E0 of said addresses value so I can make the status codes work in real-time.

By this I mean...

Always take the current value from the 0x80135490 or 0x80135494 address and make it the address to write to +3E0 or higher for all other address locations.

+3E0-3E1=FF 01

An example is to always be able to change Banjo's or Kazooie's transparency at any time because the other lines would detect where the address moves to in real-time and write to it successfully.

Edit:just adding another offset value.

+0630=Potential Moonjump

HatCat 18th February 2014 12:43 AM


Originally Posted by retroben (Post 52100)
+3E0-3E1=FF 01

3E0 - 3E1 is just 0 - 1.
It's negative one, not FF 01. Idk wtf you got that from.

retroben 18th February 2014 12:51 AM

I toyed around with the theoretical moonjump and got it to go far beyond the limits of the original Banjo-Tooie levitation code.

retroben 18th February 2014 05:50 AM

It is context sensitive.

It is sensitive to context.

That is a dash,not a minus sign.
It is the length between the pointing addresses I found and the transparency strength.
This includes the walking/talon trot byte as well.

Offset from pointed address:
3E0 and 3E1

Values of resulting address:
FF and 01
Transparency and Walking Style

A style of 03=Kazooie Alone's B attack while moving.

HatCat 18th February 2014 01:43 PM

All the less reason for it to make sense.

Why would you want GameShark to use offsets?
You already have to use absolute RDRAM addresses in the codes anyway, and you have more than enough space for doing so. There's no need for secret, hidden offsets like +3E0; just put the complete address in.

The only part about your wish that made sense was reading in a whole 32-bit value for comparison, which obviously can be done in effect.

retroben 18th February 2014 07:03 PM

Because in this situation,the address it writes to constantly changes its location. *DUH!*

To prevent more confusion,the green offset was for the original code.

0000=Transparency and Walk Style
+0630=Jump Gravity

At least you got the jist of what I was going on about.

If you are familiar enough with Cheat Engine's pointer codes on games like SADX,Sonic Heroes,and SA2BHD, then you should know exactly what offsets are used for.

I want to read the occasionally changing 32bits value from 0x80135490 as the address to write into,but I need it to read my +3E0 offset to properly write a value to the current transparency strength address regardless of where the original position of that address was.

For the other things like action modifier and levitation,I would just add the other offset to the +3E0 offset,making the combined total of +A10 for writing to the current "Levitation" address location.

I hope you understand this correctly.

HatCat 18th February 2014 07:08 PM

You don't need offsets for anything.
135490 + 3E0 is 135870, so just use that.

"pointer codes?"
"transparency strength address?"

Where do you come up with such artificial terms?
Basically any cheat code targeting an effective address, offset or otherwise, *IS* a "pointer" code.

retroben 18th February 2014 07:57 PM

So you thought I was writing to 0x80135490,a static address?

That is not the address to write to,that is the address to read the 32bit value from.
The value is not the exact address to write to.
I need offsets so I can write to the address that I want to,which is xxxxx3E0 higher than the 32bit value found in 0x80135490.


Address to read from.

32bits Value found in 0x80135490
80 1C 52 70

Current address to offset from.


The address 0x801C5650 would be the current location of Banjo's transparency and walking style "2bytes" FF 01.

Changing FF into a low number will make it possible to see through Banjo.
Changing it to 00 would make Banjo invisible with the model still intact.

If the address changes,so will the value in 0x80135490,which is what I am counting on with a code that constantly reads the 32bit value of that address and uses it as the base address to add my offset to.

The offset value is always the same,but the address changes along with the value in 0x80135490.

Addresses in the 80180000-80330000 range or possibly higher are the constantly changing ones that can't be normally used because they are not static addresses like the instant Banjo Image modifier which is always in the same address locations of 0x80117DDA and 0x80117DEA.

I found out that 0x80117DDE and 0x80117DEE are the Banjo-Dragon image modifiers.
So if you have Dragon Kazooie,the normal code doesn't work,and if you are Banjo-Kazooie,the xE addresses will not change you.
If you have Dragon Kazooie,you will have to use the xE addresses to change your image instead of the xA addresses.

Why two addresses,you ask?
One is the hi-res Banjo,while the other one is the low-res Banjo when zooming out.

Edit:to clarify everything,the existing size modifier code runs on a pointer engine which changes Banjo's,and Kazooie's size whenever you are playing as that character,meaning that it may even change mumbo's size when playing as him.
I can't figure out how to change the code's position so it affects the transparency or walking style of the currently active character.
I wish that I could though.

HatCat 18th February 2014 08:08 PM

I never said that.
I said 135490 + 3E0 is 135870, which is the exact address.
I didn't say anything about 135490 being the exact address. You just add 3E0 to it like I said.


Originally Posted by retroben (Post 52137)
I need offsets so I can write to the address that I want to,which is xxxxx3E0 higher than the 32bit value found in 0x80135490.

So add 0x0003E0 to 0x135490, and what do you get?

retroben 18th February 2014 08:38 PM

*palms face with a headache caused by frustration*




FOUND "in" 0x80135490

I want to add 0x0003E0 to 0x1C5270 or whatever the number currently is to get the intended code to always work.

The 0x80135490 tells me where to find Banjo's status codes.
The byte I want to modify is always 3E0 above 0x1C5270 or whatever the number currently is.

That is why I want a code that checks the value in 0x80135490 and uses that 32bit value (val=801C5270 or whatever it currently is) as my base address while using another command to add the desired amount (+3E0) to the base address (801C5270 or whatever it currently is).

All times are GMT. The time now is 06:25 PM.

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