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


[UTILITY] GameShark Line Counter

 
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Objectives: Complete
View previous topic :: View next topic  
Wreck
Administrator
Administrator


Joined: 14 Dec 2005
Posts: 7198
Location: Ontario, Canada

 PostPosted: Wed Oct 18, 2006 5:52 am    Post subject: [UTILITY] GameShark Line Counter Reply with quote Back to top

I'm not sure if this has been settled before, but many of us have wondered what the maximum amount of activated codes in a GameShark Pro v3.3 is. The approximated number was once 255, then lowered to 250. I believe that 248 was also once thought the max. However, after doing a bit of checking, I've found that it is actually more complex than that.

Each of the code types require a specific amount of memory in your cheating device. They are not all equal, which complicates matters more. You can't just count the number of lines you have in use, since many of those may demand more memory.

Standard codes, the typical "80" & "81" lines you see all the time, are worth 16 Bytes each. This is what I'll note as "1.00".

Activators, which begin in "D0" & "D1" (can also be "D2" & "D3", for whenever not equal to a value at such and such an address), are worth 20 Bytes a piece. They are noted as "1.25". These can not be used alone, remember. It must be paired with a Standard code in order for it to have any effect.

GS Button codes, starting in "88" & "89", are worth a whopping 40 Bytes each. These are the codes that need you to press the little button on the GameShark. They're noted as "2.50".

The available amount of Bytes in the GameShark Pro v3.3's activated codes list is 4016 - noted as "251.00".
What does this mean?

You can have on 251 Standard codes, with no Activators or GS Buttons. Just the regular old codes and nothing fancy. This is the only gaurantee. You'll need to detail what you have and calculate it for yourself.

Standards = 16 Bytes Each
Serials = 16 Bytes Each Repeat (Serial Does Not Count)
Activators = 20 Bytes Each
GS Button = 40 Bytes Each

04 Bytes = 0.25
08 Bytes = 0.50
12 Bytes = 0.75
16 Bytes = 1.00
20 Bytes = 1.25
40 Bytes = 2.50


Examples:
Here are the total code reports for The Quad. First is the old method, counting line for line. Of course, we don't include the Serial Repeaters themselves, only the number of times they copy or modify the following standard codes. Next, we have the Byte Count. Notice how there's a difference of nearly nine 'lines' just in the normal stage? That explains why sometimes, even though you may have under 251 'lines', a few of your codes won't seem to be working. The memory has already been used up, leaving those at the end of your list out.

The Quad by Wreck - Line Count
001 - Skip Intro
008 - Enable All Players
008 - Respawns
024 - Weapons
001 - Armour
001 - Flag
001 - Door
070 - Metal Crates (P.1 & P.2)
072 - Fuel Barrels (P.1 & P.2)
026 - Crate/Barrel Coord Change
004 - Weapon Coord Change
004 - Weapon Angle Change
220 - Total lines of code for The Quad
232 - Total lines of code for The Quad + NGPA Extra


The Quad by Wreck - Byte Count
001.00 - Skip Intro
008.75 - Enable All Players
008.00 - Respawns
024.00 - Weapons
001.00 - Armour
001.00 - Flag
001.00 - Door
070.00 - Metal Crates (P.1 & P.2)
076.00 - Fuel Barrels (P.1 & P.2)
029.25 - Crate/Barrel Coord Change
004.50 - Weapon Coord Change
004.00 - Weapon Angle Change
228.50 - Total lines of code for The Quad
242.00 - Total lines of code for The Quad + NGPA Extra
_________________

YOUTUBE | FACEBOOK | VAULT | MOD DB | RHDN


Last edited by Wreck on Thu Oct 19, 2006 4:10 am; edited 1 time in total
 
View user's profile Send private message Visit poster's website
bmw
Hacker
Hacker


Joined: 04 Jan 2006
Posts: 1366
Location: Michigan

 PostPosted: Wed Oct 18, 2006 9:59 am    Post subject: Reply with quote Back to top

Thanks for the info - Explains why the cap in the levels I've created is 250 - My codes are almost exclusively 80 and 81 codes with the exception of the activator codes in the enable 4 players code.

So why do the 80- codes take up a full 16 bytes? They are only 8-byte writes. Shouldn't they count for .50? That'd sure be nice if they did!

Now, I know you had told me about theoretical possibilities of expanding the number beyond 251. Is there any way, in theory, to devote some of the memory originally designed for simply storing the codes on the device (there seems to be quite a bit of it) to be used for code implementation?

Or, as MultiplayerX had suggested before, we just need to build our own gameshark Smile I can see it now - once we're finally finished hacking out multiplayer levels, we could market an "expansion pak" for the goldeneye cartridge........$$$ $$$.....
 
View user's profile Send private message Visit poster's website
The Extremist
007
007


Joined: 07 May 2006
Posts: 695
Location: Winnipeg, MB, Canada

 PostPosted: Wed Oct 18, 2006 10:42 am    Post subject: Reply with quote Back to top

Someday I hope to decompile GE and recode it from scratch. Razz
_________________
Pure hand-drawn goodness. Cool
 
View user's profile Send private message Send e-mail
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Wed Oct 18, 2006 11:33 am    Post subject: Reply with quote Back to top

Someone should make a quick program to calculate it...oh bloody heck, all right I'll do it when I have time.
 
View user's profile Send private message
Wreck
Administrator
Administrator


Joined: 14 Dec 2005
Posts: 7198
Location: Ontario, Canada

 PostPosted: Thu Oct 19, 2006 1:59 am    Post subject: Reply with quote Back to top

A calculator would be excellent for figuring out how many Bytes the activated codes actually take up in your cheating device. You'd simply need to enter in the number of Standard (80/81), Activator (D0/D1/D2/D3), and GS Button (88/89) codes. Serials would either need to be determined by the person beforehand, or calculated another way with this tool. Maybe you could enter in all of the Serials, minus the addresses that go along with them, then it'd add those together, equalling out to the number of Standard codes they create. Or, knowing SubDrag, he'll allow you to paste in all of your codes and then simply click an equal to tab.

Standard: 1.00 / 16 Bytes
Activator: 1.25 / 20 Bytes
GS Button: 2.50 / 40 Bytes
Max Mem: 251.00 / 4016 Bytes

Edit: Here's an example of just how far off the line count and byte count can really be. Using the original Multi Surface i 4-Player I'd hacked years ago, I wanted to check the amount of memory a whole bunch of GS Button codes would take up in the cheating device. The following are the codes, as well as both counts. What we thought would require only 106 'lines' of code, demands 243 'lines'. In terms of memory usage, it devours 3888 of the allotted 4016 Bytes. 3600 for the GS Buttons, 160 for the Activators, and 128 for the Standards. Isn't that insane? This certainly goes to show you, stay away from GS Button codes. The 90 in this codeset alone accounts for 225 Standard codes! You're better off using 90 Activators w/ 90 Standards for the same effect. That may be twice as many codes to enter, but less memory is necessary with this method. Who would have thought that 180 would ask for less than 90? Shocked

And if you're curious, here's the maximum amounts of each you could use...

Standard: 251 - 251.0
Activator w/ Standard: 111 w/ 111 - 249.75 (Enough leftover for an additional Standard)
GS Button: 100 - 250.0 (Enough leftover for an additional Standard)

"Multi Surface i 4-Player"
"Activation Code"
8902A8F2 0001
8902B522 0004
8832331A 0001
8A32331A 0000
8832332A 0001

5 GS
12.5

"Second Activation Code"
88079C6B 0008
89079C28 8004
89079C2A 0000
89079C2C 8004
89079C2E 0040
89079C30 8004
89079C32 0080
89079C34 8004
89079C36 00C0
89079C38 8004
89079C3A 0100
89079C3C 8004
89079C3E 0140
89079C40 8004
89079C42 0180
89079C44 8004
89079C46 01C0

17 GS
42.5

"Start Points"
89069C40 C627
89069C44 4321
89069C48 C6C6
89069C4C 801C
89069C4E 3484
89069C74 45BD
89069C78 434B
89069C7C C699
89069C80 801C
89069C82 1B84
89069CA8 C5B4
89069CAC 4321
89069CB0 C69E
89069CB4 801D
89069CB6 022C
89069CDC BF53
89069CE0 C382
89069CE4 C50C
89069CE8 801C
89069CEA 0274

20 GS
50

"1st Respawn Point"
89040000 C5D8
89040004 434B
89040008 C607
89040028 801C
8904002A 1D64

5 GS
12.5

"2nd Respawn Point"
89040040 4609
89040044 432A
89040048 C5AC
89040068 801C
8904006A 6314

5 GS
12.5

"3rd Respawn Point"
89040080 4609
89040084 439B
89040088 C663
890400A8 801C
890400AA C13C

5 GS
12.5

"4th Respawn Point"
890400C0 BF53
890400C4 C382
890400C8 C50C
890400E8 801C
890400EA 0274

5 GS
12.5

"5th Respawn Point"
89040100 C5B4
89040104 4321
89040108 C69E
89040128 801D
8904012A 022C

5 GS
12.5

"6th Respawn Point"
89040140 44FA
89040144 4382
89040148 C62B
89040168 801C
8904016A 0F6C

5 GS
12.5

"7th Respawn Point"
89040180 C627
89040184 4321
89040188 C6C6
890401A8 801C
890401AA 3484

5 GS
12.5

"8th Respawn Point"
890401C0 45BD
890401C4 434B
890401C8 C699
890401E8 801C
890401EA 1B84

5 GS
12.5

"Weapons"
D002A8F7 0024
800DA54C 0007
D002A8F7 0024
800DCFCC 0007
D002A8F7 0024
800DFA4C 0007
D002A8F7 0024
800E24CC 0007
D002A8F7 0024
800D9BFF 0064
D002A8F7 0024
800DC67F 0064
D002A8F7 0024
800DF0FF 0064
D002A8F7 0024
800E1B7F 0064

8 Standard
8 Activator
18

"Music & Sky"
88024337 0039
89044DD4 6060
89044DD6 8001
89044DD8 461C
88044DDA 0040
89044DE0 4370
89044DE4 42F0
89044DE8 41F0

8 GS
20

Line Count
05
17
20
05
05
05
05
05
05
05
05
16
08
106

Memory Count (Bytes / 251.00)
200 / 12.5
680 / 42.5
800 / 50.0
200 / 12.5
200 / 12.5
200 / 12.5
200 / 12.5
200 / 12.5
200 / 12.5
200 / 12.5
200 / 12.5
288 / 18.0
320 / 20.0
3888 / 243.0
_________________

YOUTUBE | FACEBOOK | VAULT | MOD DB | RHDN
 
View user's profile Send private message Visit poster's website
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Thu Oct 19, 2006 6:33 am    Post subject: Reply with quote Back to top

Yeah, you'll just paste it in, it'll "unroll" them in the calculation. I'll uh maybe try and do it this weekend, shouldn't take too long.
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Fri Oct 20, 2006 10:16 am    Post subject: Reply with quote Back to top

Here's the quick calculator. It's pretty simplistic, just gives you a count. If there's some additional requests I can incorporate them into the program.

Just paste it the text and click analyze. You can have a bunch of comment lines and things, so don't worry about them. Doesn't have to be just codes. Only thing you need to make sure is that patch codes, immediately below them is an 80/81 code...not sure consequences of an activator or nested patch below that...activators can be stacked (but count is still same), but not sure about patch. Well this thing just ignores the line below it.

http://www.rarewitchproject.com/media/misc/calculategamesharkstorage.exe

I just thought of something as I was making it....
so you can't make codes such as:
5000FF80 0000
801D3334 0000

Because FF = 255 codes, and that exceeds 251.0? Almost thought I've done it in the past, maybe not.
 
View user's profile Send private message
Wreck
Administrator
Administrator


Joined: 14 Dec 2005
Posts: 7198
Location: Ontario, Canada

 PostPosted: Fri Oct 20, 2006 9:48 pm    Post subject: Reply with quote Back to top

I remember back to when I was first working on the Bunker i Multi, we had only just realized definitively, that Serials are counted by the amount of times they write. What we thought would only be two lines of code, was far greater. With what is known now, atleast regarding the GameShark Pro v3.3, a Serial cannot exceed two-hundred and fifty-one writes on console. Emulation should handle it fine, since there's no real code cap that I am aware of. If there is, it's probably very high in comparison.

Max Patch on Console:
5000FB80 0000
801D3334 0000

I'll download the tool in a few minutes and try her out. Smile

Edit: Just checked it out. She works like a charm, Sub. I don't really have any suggestions, other than somebody figure out what the memory cap is for GameShark Pro versions 3.0 & 3.2. There's a very good chance that all three of the Pro series cheating devices contain a different amount of available memory for storing your activated codes. Aside from that, there's nothing I can think of. This is one sharp calculator. Excellent job. Wink
Edit: You may want to allow codes that begin in a lowercase "d" to be read the same as an uppercase "D". Some people don't capitalize letters of the alphabet in their codes. Also, have you ever seen those codes that start with a number three? Well, I don't know if they do anything differently from a normal force code, considering they use up the same amount of Bytes. Perhaps letting "30/31" codes register as "80/81" Standard would be good. GS Buttons can be "8A/8B" for whenever not holding the button, which you have included. It doesn't account for lower case letters, though. When I tested the different types, the Boot codes "F0/F1" didn't appear in the list. Maybe because they aren't always on, or called upon at any time other than the initial boot up? You can double-check, but I don't think they require any Bytes from the activated code list. Just some ideas to help avoid possible errors and miscounts.
_________________

YOUTUBE | FACEBOOK | VAULT | MOD DB | RHDN
 
View user's profile Send private message Visit poster's website
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Sat Oct 21, 2006 12:01 pm    Post subject: Reply with quote Back to top

OK, didn't think about the lowercase letters. It now supports lowercase letters, remove F0/F1 counting as 80/81, and added 30/31 (though never saw that in any codes before). Not sure how many codes EE000000 0000 or DE0XXXXX XXXX counts as. (regrab)
 
View user's profile Send private message
bmw
Hacker
Hacker


Joined: 04 Jan 2006
Posts: 1366
Location: Michigan

 PostPosted: Sat Oct 21, 2006 12:33 pm    Post subject: re: 3.2 Reply with quote Back to top

I can verify that the limit is the same for a v3.2 shark. It will accept 250.75 lines of code but won't accept 251.75.
 
View user's profile Send private message Visit poster's website
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Sat Oct 21, 2006 1:14 pm    Post subject: Reply with quote Back to top

I don't get the patch code implementation. Maybe they were just lazy, it seems like they could've made a simple for loop in ASM, and saved a ton of space.
 
View user's profile Send private message
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1687

 PostPosted: Wed Oct 25, 2006 8:28 am    Post subject: Reply with quote Back to top

EE and such are system commands and don't count towards your code total in the list.

What it does count towards is the 255 code limit for activated stuff. When creating the code list it takes a total of all selected codes listed and pops them into a table. Oddly enough it uses a 1-byte list index to increment through them as it expands them into ASM. Like that isn't the stupidest thing I've ever heard of.
_________________
(\_/) Beware
(O.o) ze
(> <) Hoppentruppen!
 
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Objectives: Complete All times are GMT - 8 Hours
Page 1 of 1

 
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 ]