Submission #10718: arnaud33200's SMS California Games "Maximum Score" (392611) in 08:56.808

Sega Master System
California Games
Maximum Score
Bizhawk 2.11.1
32167
59.9227510135505
10936
PowerOn
California Games (UE) [!].sms
182b179a1226fb5b1e1cf6bb2f351c50
Maximum Score
392611
08:56.807
Submitted by arnaud33200 on 9/8/2026 2:29 AM
Submission Comments

Game objectives

  • Emulator used: Bizhawk 2.11.1
  • Get the max score for each sport events (regardless the order)
  • Manipulate RNG to reach max score
  • Skip high score bonus game to avoid boring time

Final Scores

The game doesn’t provide a final score, so I’m calculating by adding up all the scores from each event.
Final Score = 392611
Event Score Summary
Half Pipe 32383 get the max speed and do max points per cycle
Flying Disk 1530 Overhead catch with no running
BMX 202550 do as much jump + trick as possible, especially front flip
Skating 5280 jump spin every obstacle
Surfing 9.0 do all the tricks and stay on the wave until the end
Foot Bag 150860 do all the tricks, grind the biggest point and hit seagull

Comments

  • Used knowledge from California Games All Events TAS, for logic and ram addresses.
  • Do “Compete In One Event” to go faster between events, I can do a soft reset to skip the high score bonus game (which is slow and boring). Also allow me to do the events in any order, especially keeping the RNG manip at the end
  • use SMSHawk instead of Genplus-gx because the reset input is a proper soft reset (see discord thread)
  • only use the bonus for BMX for high jump, other bonus either make things more boring (Foot Bag) or complicated to get max score (Surf)
  • Got all the voice audio in the event intro screen, because it’s fun!
  • Alternate between button 1 and button 2 when menuing to the next event, it’s faster.

Event by event comments

Half Pipe

  • The max 999 points can be reached only after getting enough speed, so I do the hand plant trick until I get this speed.
  • Alternating between air turn and hand plant gives the most point in a go and return, the hand plant makes the return faster.

Flying Disk

  • The less you run, the more you get points with the disk distance (as the manual says). Funny enough you get the max points per throw (160) by not moving at all.
  • Overhead catch gives de most point (350), it’s great for not moving and get all the most points from the disk
  • We can also get the max points with max speed and max angle, the distance to run is short enough so we still get 160
  • Left diving also gives 350 points but it involves running which is not good for the disk distance points.
  • Get the new bike bonus and reset immediately after the flag is set to quickly move to the next event (BMX)

BMX

  • There is a time bonus, we get more points if we finish earlier, but we must stop at the end line. So we must pedal as much as possible between jumps
  • We want to jump as much as possible and prioritize the following tricks: front flip (6000), back flip (3000), 360 (2000) tabletop (1000).
  • Sometimes we skip a jump so we got enough time to a front flip, it would happen if 2 bumps are close to each other.
  • Put some wheely in between jumps if cannot jump as soon as possible, it gives between 100 and 200 points
  • Break at the last moment to get highest time bonus by holding left and smashing button 1

Skating

  • goal is to spin jump every obstacle, so we get 4x points
  • obstacles has different points value: 10, 20 or 30
  • no need to jump over, simply jump on the same vertical line, 2 obstacles can be jumped at once
  • falling on an obstacle or the side of the road brings you back exactly where you fell, so it won’t allow us to redo an obstacle again
  • Need to go slower for some obstacles so I can make sure I jump over them properly, especially when they are very close to each others

Surfing

  • The manual clarifies about the maximum score of 9: Jumps 2.5 points, Number of turns 2.5 points, Tubes 2.5 points, Time on the Surfboard: 1.0 points & Stay until the end: 0.5.
  • Looking at the assembly code I was able to figure how the requirements for max score (see Other Comments section)
  • Doing up and down constantly, the game requires this all the time
  • The most difficult part is staying in the tube, not sure if anyone can do it casually
  • I would have showed case the different animals when we fail (seagull, dolphin, shark) but failing once doesn’t give you the max score

Foot Bag

  • Keeping the most RNG event for the event, so I don’t need to resync the other events
  • I’m manipulating the RNG to get as many seagull as possible, they give 1000 when hit.
  • This is a count base RNG, only soft reset can manipulate it, this is why I got a bit of waiting time
  • I start the event much later so I get the first seagull right when the timer starts
  • need to do all the stun to get the bonus point of 66k, then I grind doda and reverse doda to get the biggest points (5000)
  • Do the jester trick at the last moment because the ball goes too far off to chain other tricks

Other Comments

potential improvements

I'm very confident I got the very max score for skating and surfing, other events might have some slight improvements by doing deeper research, especially if we look at the code itself.
  • go faster on BMX to get a better time bonus, maybe there is a better strategy to consider when bumps are close to each other
  • Better RNG manipulation for Foot bag to get more seagulls, also I’m wondering if there is a way to get a doda trick faster or if there is a better way to get more points faster.
  • For flying disk, if there is a way to trick the game so we can run without without getting a penalty, then we can get more disk distance points.
  • There might be a way to do surfing with the new surf board bonus, you cannot stay in the tube long but might be possible by doing full circle. I would be difficult but fun.

Flying Disk

Address Notes
0x0079 disk speed from 160 to 960 (2 bytes)
0x007C disk direction: 255 go up & 0 go down
0x007B disk angle increase every 2 frames, from 110 to 271, when reach 256, set angle flag to 0
0x006E Catcher X position, used to find the min position to run to

BMX

Address Notes
0x0060 flag for new bike bonus, used to reset as early as possible and skip the rest of bonus stage
0x0072 BMX y, used to find the highest jump
0x0066 BMX speed from 0 to 3, used to time the big jump
0x007A state, used to start pedaling as soon as possible when it goes from 1 to 0

Surfing

I spent some time figuring out how the score works because this is the only event when the score is shown at the very end. To ma For the score, jumps, turns and stay are calculated using a points table.
Trick Address Points Table Notes
Stay 0x00A2 $7003 increase every 201 frames, from $0 to $15. Index calculated by doing a bit rotation to the right (rra) and mask with $0E (and $0E)
Jumps 0x00A3 / from $0 to $19 (2.5 points), points is simply decimal value divide by 10
Turns 0x00A6 0x6DD9 increase every 8 frames while turning. Index calculated by multiplying by 8 then divide by 255 ($ff), need 640 ($280) to get 2.5 points ($19)
Tube 0x00A5 0x6DF1 increase every 128 frames while in the tube. Index is the value, the max can be reached with $14 (20)
Turn Points Table
0x00A6 value $20$40$60$80$A0$C0$E0$100$120$140$160$180$1A0$1C0$1E0$200$220$240$260$280$2A0$2C0$2E0
points 0.40.81.21.61.822.22.22.22.22.22.32.32.32.32.42.42.42.42.52.52.52.5
Tube Points Table
0x00A5 value $1$2$3$4$5$6$7$8$9$A$B$C$D$E$F$10$11$12$13$14$15$16$17
points 0.61.21.61.82.02.12.22.22.22.22.22.32.32.32.32.42.42.42.42.52.52.52.5
Stay Points Table
0x00A2 value $1$2$3$4$5$6$7$8$9$A$B$C$D$E$F$10$11$12$13$14$15
points 0.00.00.00.10.10.10.10.20.20.20.20.40.40.40.40.70.70.70.71.01.0
The final score is in 0x1CA0 and 0x1CA1, and gets a bonus 0.5 points at the very end when leaving the wave because it closes completely.

Foot Bag

This is the only event with RNG: 1 for the ball and 1 for the seagulls passing by (george). This RNG is a count type of RNG where the game constantly increases a counter and read/write in some specific places in RAM. It’s basically a seed RNG which is set when doing a soft reset. Player inputs doesn’t impact the values, however it seems that the event announcing voice impacts this RNG, probably doing some updates on those specific RAM addresses.
Address Notes
0x0081 to 0x0084 ball kick logs/history, used by the game to figure tricks depending what the player did
0x0085 to 0x008F Count for each tricks, we need at least 1 for all of them to get bonus points
0x0079 Ball X velocity (signed), value is slightly random and can be manipulated by kicking the ball earlier or later. Velocity is negative when kicking for right side and positive when kicking from left
0x0056 Seagull spawn timer, increase every frames and check for RNG (0x005F) when it’s $00
0x005F Seagull RNG value, only spawn a seagull when the value is a multiple of 8 (and $07)
Last Edited by arnaud33200 7 hours ago
Page History Latest diff List referrers Change Log