1986 · Epyx

About this page

This minisite was contributed by air. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/world-games with me to Gold.

Footprint

Every byte of the C64's 64 KB, one pixel each, 512 to a row. Lit pixels are what this game is: its code, graphics, level data, sound, text, tables and variables, exactly where they sit in memory. Dim areas are screen and working memory; dark is unused.

This game is in 12 parts. The map is of The shell: loader, dispatcher and world records, which stays in memory; the band marked as varying holds whichever of the 11 parts loaded over it is there. The Source tab has the listing of each part that has one.

Status

Tiersilver
Coverage100 % of the bytes the game uses have a description
Comments checkedNot audited. No audit has checked every comment, and the last sample of 80 comments had 8 wrong, so between 5 and 19 % of the listing’s comments are likely wrong. How listings are checked
Build analysedEpyx disk, 1986, two sides (C64 Preservation Project G64s, world_games_s1[epyx_1986](pal) and world_games_s2[epyx_1986](pal), MD5 2ab5a751... and f983b43d...)
Copyagent-draft
Toolsemulator: release v3.14.0, v3.14.0-linux-x86_64-gui.zip, disassembler: regenerator2000 0.9.20, host: Linux x86_64 (Ubuntu 24.04.5, cloud container), node: 22.22.0
Modelclaude-opus-5-5
Kit version0.0.268

How the listing was checked

Every step that measured the Source tab’s comments or made them more accurate, in the order it happened, with the models that did it. Accuracy of the Source explains each step and what the row above makes of them.

StepByWhat it foundOf the listing
Researchclaude-opus-5-5Looked the game up online (its manual, reviews or wiki pages) before reading its code.
Annotationclaude-opus-5-5Wrote the listing’s comments. 100 % of the program is described, in 4,243 comments.
Sample 1claude-opus-5-58 of 80 comments wrong, so between 5 and 19 % of the listing is likely wrong. All 8 were then corrected.
60 of the 3,797 hand-written comments and 20 of the 446 written from templates, checked by a fresh agent against the code; 7 of the wrong were hand-written

likely wrong the sample’s range corrected right, or likely right not yet measured

Contributors

Other places to love this game

What the game does, and where we found it

Read this before annotating code. What the game is documented to do, with verification status against the binary. Statuses: open (documented, not found yet), traced (in the code, could not be exercised; say what was tried), confirmed (in the code, consistent with the emulator), live (observed directly), differs (the code does something else). "Absent" is not a status. Every address names its part.

Sources:

Credits, from the title screen (title part): "Programmed by: K-Byte", Matt Decker, Joe Simko, Chris Oesterling, Doug Dragin, Bob Maddwell, Jay Braman, Jeff Webb, Brent DeGraaf and Steve Mage; "Graphics by" Michael Kosaka, Jenny Martin, Suzie Greene and Courtney Granner. The C64-Wiki gives Jeff Webb and Steve Mage as the musicians. Published by Epyx in 1986, and in Europe by U.S. Gold.

Features

FeatureStatusWhere
Title screen, fire to go on to the menulivetitle part, $10B1; seen 30 October 2026
Menu: compete in all the events, in some, in one; practise one; number of joysticks; see the world records; travelogue on or offlivemenu part, $1037; the screen seen 30 October 2026
Choice by joystick and fire, or by the option's number on the keyboardlivemenu part, pick, $1AFC: the 4 key chose practice, the A key weightlifting
Up to eight players enter their names and each chooses a country by its flaglivemenu part, reg_name, $3C19; move_frame, $3DFF: "#1 ENTER YOUR NAME" over the flags seen
Eighteen countries to represent, each with its anthemlivemenu part, tune_list, $32C0: eighteen anthems, one of them Epyx's; the S key played the anthem under the frame
A verification screen after the names, YES or NOtracedmenu part, check_players, $1651: "IS THIS CORRECT?"
Travelogue: before each event a page on the country and the sport, with a globe, an airliner and the event's picturelivetravelogue part, event_page, $14AB
Weightlifting (Russia): snatch and clean and jerk, three attempts at each, weight chosen left and right, the lift by down and up at the right momentsliveweightlifting part, wl_round, $10F4; wl_choose_weight, $13B7; wl_script, $183D
Weightlifting: three judges' lights, two white for a good lift; the timing gets harder as the weight risestracedweightlifting part, wl_judges, $14ED; wl_vote, $1577; wl_timing, $1493. The first judge's delay, wl_divide ($1DF2), was called live
Weightlifting: a lifter who holds the weight too long goes red and breaks through the platform (C64-Wiki)tracedweightlifting part: the colour goes light red, orange, red, purple, blue every 64 frames (wl_skin_colours, $1572); at 255 frames script 5 or 6 plays ($1546). What each script shows was not watched
Weightlifting: above 225 kg the game counts on in 5 kg steps after each good lift (C64-Wiki, a player's report)differsweightlifting part, $124F, $146C: a good lift at 225 kg makes the next weight 230 kg, and from there right on the stick raises it 5 kg a push with no limit, since the stick stops only at exactly 225 kg. Past 225 kg the timing factor is read from code (live)
Weightlifting: the game crashes at 865 kg (C64-Wiki, a player's report)liveweightlifting part, wl_plates, $1985; wl_strip, $1C31: at 865 kg the last plate's offset wraps to +127 and the column writer is entered at $1C63, the second byte of an STA, $F2, a code that halts the processor; in VICE the processor stopped there, and at 860 kg the plates were drawn
Barrel jumping (Germany): choose the number of barrels, skate by left and right in rhythm, fire jumps, down prepares for landing, three attemptsconfirmedbarrel-jumping part, bj_stride, $1A9D; bj_takeoff, $1105; bj_landing, $115D; the event's screen seen
Cliff diving (Mexico): four heights, fire to dive, up arches the back, down straightens before the water, left avoids the bottom; wind shown by an arrow; the water rises and fallsdifferscliff-diving part: six levels, not four (cd_choose_level, $1457; cd_level_score, $2879); the rest is as documented (cd_body, $20C6; cd_water, $1F65; cd_waves, $13D2; cd_wind_bars, $15E1)
Slalom (France): left and right turn, fire held sharpens the turn and the speed; gates in alternating colours, five seconds for each one missed; a fall disqualifiesconfirmedslalom part, sl_turn_frames, $8714; sl_gate_check, $F2E5; $C55E; $8755
Slalom: a gate hit head-on wipes outdiffersslalom part, sl_flag_hit, $F371: head on, a fall only when the frame counter is below 100, 100 frames in 256; otherwise the flag bends. Live
Log rolling (Canada): two lumberjacks, left and right in rhythm, fire slows and reverses the log; balance meters; the last on the log wins, points from balance and timeconfirmedlog-rolling part, lr_step, $2183; lr_meters, $1CB2; lr_points, $33D0. Fire reverses the way the lumberjack runs
Bull riding (USA): five bulls, Ferdinand, Elmer, Bob, Tornado and Earthquake; buck, spin and halt answered by the stickconfirmedbull-riding part, br_choose_bull, $190A; br_stick_left, $17A1; br_stick_right, $17C8
Bull riding: an eight-second ridediffersbull-riding part, br_clock, $1C9F: the clock counts 2 hundredths in 3 frames, so 8 on the clock is 1200 frames, 24 seconds on PAL. Live
Bull riding: in practice a second player controls the bulltracedbull-riding part, br_joystick_bull, $22E3: the sixth bull, "JOYSTICK (PORT 1)"
Caber toss (Scotland): run by left and right in rhythm, fire held to plant, released to throw; the caber must turn overconfirmedcaber-toss part, ct_hold_caber, $1A6B; ct_release, $1AD0; ct_landing, $22AC
Sumo (Japan): moves without fire (forearm, push, slap) and with fire held (utchari, pull, grab, trips); stamina and balance; out of the ring or down losestracedsumo part, su_standing, $2193; su_throw, $22F9; su_push, $2495; su_ring, $1F1F
Two players at once in log rolling and sumo; otherwise in turnstracedlog-rolling part, lr_draw_pairs, $3133; sumo part, su_choose, $1984
Awards after each event: placings, medals, the winner's anthemtracedmenu part, event_results, $17D4; award_medal, $15BE; ceremony, $184B
Grand champion after all events: gold 5, silver 3, bronze 1 pointtracedmenu part, count_points, $157C
World records saved to the disk, with the name and countrydiffersshell part, records, $0E00: the name and the result, no country; saved by save_records ($0A51) after a new record, practice included
Bull riding: the bull's moves are fixed from the moment the ride starts (C64-Wiki, a player's report on VICE snapshots)tracedbull-riding part, br_random, $2351: each move comes from the frame counter and the generator's own state; the generator is called only by the pennants, every third frame, and by the bull's choice of move, so nothing the rider does during the ride changes it, and a snapshot restored before a ride replays the same bull

Beyond the documentation

Found in the code, not in the manual.

Open questions

Each part of the game has its own symbol map and listing, parts/<id>/symbols.json and parts/<id>/listing.json; the ids are the ones in its Source pages’ addresses. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.