P.C. Fuzz

From C64-Wiki
Jump to navigationJump to search
P.C. Fuzz
Title screen of the game
Title screen of the game
Game No. 511
Voting 4.00 points, 2 votes
Developer Jeff Gamon, Chris Gill
Company Anirog
Publisher TS Software, Sonnenverlag, Pubblirome
Musician David Dunn
HVSC-File /MUSICIANS/D/Dunn_David/P_C_Fuzz.sid
Release 1984
Platform C64
Genre Arcade
Gamemode Single player
Operation Joystick
Media Datassette Diskette
Language Language:english Language German Language:Italian
Information German version "Schupos" published 1985 by Sonnenverlag
Italien version "Vigili" published 1985 by Pubblirome


Description[edit | edit source]

Police Officer Fuzz

In the game "P.C. Fuzz", the player controls a police constable who rides a unicycle down a high street at night. As usual, this street is teeming with shady characters at such a late hour — and to make matters worse, a gang of criminals is attempting to rob all the banks on the street at that very moment! So, armed only with his police baton, our officer must defend himself against bomb-throwing bank robbers, aggressive punks, and staggering drunks.


Shooting down balloons is a quick way to earn points
Beating up drunken revelers is also rewarded




Backstory[edit | edit source]

Police car
Bank robbers' getaway car

"P.C. Fuzz is patrolling the high street on his unicycle, dealing with the everyday problems of disorderly drunks and pogoing punks. But suddenly an ordinary day turns into a day of exciting action! The mafia has come to town and intends to clean out the high street banks. Getaway cars are laid on to make good the hoods escape, and the villains have a large supply of knock-out gas bombs. P.C. FUZZ is armed only with his trusty truncheon, but with the aid of his versatile tool it may be possible to foil the robbers' dastardly plot and gain long-awaited promotion."

Design[edit | edit source]

During the game, the main street at night is always visible, running horizontally across the center of the screen and moving smoothly from right to left as the policeman rolls along it on his unicycle. The player character can move in all directions within the displayed area, but always faces right and can only throw his baton in the direction of travel to defend himself against opponents. Information about the current game status is displayed at the bottom of the screen, while the star-studded night sky is shown at the top (the stars, inexplicably, are animated using parallax scrolling — this effect is only visible in the very first illustration in this article and has been suppressed in the remaining animations to save memory).

Technical details regarding the programming of the graphics can be found in the "Graphics Technology" section.


The police officer can deflect the bank robbers' bombs...
...but the perpetrators escape with their loot.



Sound[edit | edit source]

A two-part theme plays continuously during the game (though it can be turned off from the title screen), and a short, also two-part, sequence plays at the end of the game (see section "Theme"). Otherwise, the sound output is limited to providing background noise for the gameplay.


Sound of throwing the police baton (1.07 s)
Sound of falling off the unicycle (0.72 s)



Hints[edit | edit source]

Stunned bank robber

The goal of the game is to keep the character — the police officer on his unicycle — rolling down the night street for as long as possible, arresting bank robbers, confiscating their loot, and defusing their bombs. If the bank robbers are hit by the police baton, which can be thrown like a boomerang, they are stunned enough for the officer to grab them by the collar and carry them to the bottom of the street, where a white and blue patrol car arrives shortly afterward, stops on the right side of the screen, and takes the perpetrator into custody. However, if the officer falls off his bicycle during the arrest, the bank robber regains consciousness and makes a run for it.

Burst money bag

The baton renders bombs harmless by detonating them, and it bursts balloons and bags of money, preventing the robbers from making off with their loot. Caution is advised, however, regarding punks and drunks who sporadically appear out of nowhere and can knock the officer to the ground upon contact. These can be driven away by well-aimed throws of the police baton.

If the player character loses a unicycle after a collision with an opponent or a bomb, the police car appears after a short time and brings a new police officer. After pressing the fire button or after a short waiting period, this officer begins his duties.

Money bags

If the police officer lets the bank robbers get away with it for too long, a black getaway car appears at the bottom of the street. The robbers load their loot, in the form of dark blue money bags, into the car before fleeing or even getting in themselves and driving off.

During the game, a counter labeled "STREET BONUS" counts down in the lower right corner of the screen. According to the instructions, the player receives the current value of this counter as a point bonus once they have arrested at least 3 window shoplifters and 3 bank robbers, popped at least 2 blue, 3 yellow, and 4 orange balloons, secured 4 money bags, and chased away 10 punks or drunks. Even with the use of Trainers, the author of this article was unable to meet these requirements even once, so this behavior of the game could not be verified.


Unprovoked and without warning, the police officer uses his baton against punks...
...but is then attacked by one of them and knocked to the ground.



Screen Layout[edit | edit source]


Typical scene from the game



Enemies[edit | edit source]

The main objective of the game is to arrest as many bank robbers as possible (left illustration in the gallery below) and have them transported away in a police car. However, they resist by throwing bombs (second illustration) at P.C. Fuzz. Caution is also advised when encountering punks and drunks (third and fourth images in the gallery), as these opponents can knock the police officer to the ground.


Bank Robber
1000 + 1000 points

Bomb
200 points

Punk
100 points

Drunkard
200 points



Controls[edit | edit source]

While the title screen is displayed, you can first choose whether a two-part accompaniment melody should play continuously during the game: The default setting, as shown in the bottom left corner of the intro, is "MUSIC ON"; pressing the F1  key toggles between muting and playing the melody. The game itself is controlled with a joystick in port 2; pressing the SPACE  key or the fire button starts the game.

During the game, the street scrolls from right to left at a constant speed. The game character, a police officer on a unicycle, must follow this movement: He always faces right, i.e., in the direction of travel, and can only throw his baton to the right (either horizontally or diagonally upwards). However, he can roll a short distance backward or forward, thereby moving left or right within a movement radius of approximately half the screen width (152 pixels). He can also steer a small distance — 26 pixels — up or down to avoid opponents and obstacles.

Specifically, the following actions are possible:

  • Joystick left: As long as the police officer has not yet reached the left edge of his movement radius, he rolls backward on his unicycle and thus moves to the left on the screen.
  • Joystick right: As long as the right edge of the movement radius has not yet been reached, the police officer rolls forward and moves to the right on the screen.
  • press fire button: The police officer moves upwards
  • press fire button: The police officer moves downwards
  • Joystick forwards and press fire button: The police officer jumps in place
  • Joystick right forwards and press fire button: The police officer jumps forwards (moves to the right on the screen)
  • Joystick left forwards and press fire button: The police officer jumps backwards (moves to the left on the screen)
  • Joystick right and press fire button: The police officer throws his baton horizontally to the right
  • press fire button: The police officer throws his baton to the upper right

Tips[edit | edit source]

  • In the presence of bank robbers, the police officer should never be positioned at the far left edge of the screen in order to be able to jump backwards in order to jump over an an approaching bomb.
  • If a bank robber throws a bomb at the far left edge of the screen, it will usually reach the end of its lifespan before it has moved all the way to the right. Therefore, if the game situation allows, staying at the far right edge of the screen offers some protection against this danger.

Solution[edit | edit source]

The game has no solution, for example, by police constable Fuzz finally receiving his well-deserved promotion once he has arrested all the bank robbers. Instead, he must roll down Main Street night after night and round after round, as long as his supply of unicycles lasts.


The police constable manages to thwart the money exchange...
... by knocking the bank robber unconscious with his police baton...
... and having him transported away in the patrol car




Cheats[edit | edit source]

In the CSDb there is a crack each for Derbyshire Ram and Weird Science with a trainer function. Both offer the option to give the player character unlimited lives when starting the program. Only the crack of Derbyshire Ram (left illustration in the gallery below) is recommended, because the other version is corrupted and after some time shows serious errors in the graphics.


Derbyshire Ram trainer
Weird Science trainer



Alternatively, trainer functions can also be achieved by modifying the game's machine code after loading it by entering POKE commands before starting it with RUN. Since the program code is copied after loading before the game starts, such POKEs depend on the crack used; for example, the following list for the Crack by Cracker Force Nijmegen provides a number of interesting trainer functionalities that can be used independently:

POKE 15249,189 : REM DO NOT DECREMENT "STREET BONUS"
POKE 15301,173 : REM INFINITE NUMBER OF UNICYCLES
S=9 : POKE 2352,S+48 : REM "STREET BONUS" STARTING AT 1000*S INSTEAD OF 5000
E=7 : POKE 2357,E    : REM GAME STARTS AT E INSTEAD OF 4 SPARE UNICYCLES

Internal Data Structures[edit | edit source]

For developing custom trainer functions and for analyzing or manipulating the data used by the game, knowledge of memory allocation and internal workings is helpful. The following table therefore compiles some information about "P.C. Fuzz".

Address Content Value range Comments
$2A2A—$2A2C "Street bonus" without the last digit "0 000...999 Storage as a 3-digit number in screen/ASCII code
$2A2D—$2A31 Highscore without the last digit "0" 00000...99999 Storage as a 5-digit number in screen/ASCII code
$2A32 Spare unicycles remaining 0...9 Number does not include the unicycle currently being ridden by the police constable

Votes[edit | edit source]

Voting of the C64-Wiki users (10=the best vote):
4.00 points at 2 votes.
You need to be logged in to cast a vote.
C64 Games 7 January 7, 2026 - 6 - 22578 downs
Lemon 64 5,42 January 7, 2026 - 26 votes
Ready 64 7 January 7, 2026 - 2 voti
Rombach 7 1986 - "Verdict 3"
Universal Videogame List 2.7/5 January 8, 2026
Commodore Horizons Graphics 6/10, Sonics 6/10, Gameplay 6/10 Issue 12 (December 1984)
Computer Praxis Note 3 (Grafik 2, Sound 3, Action 2, Spielwitz 2, Spielidee 3) Ausgabe 19 (Februar 1985)
Home Computing Weekly 2/5 (instructions 80%, playability 50%, graphics 75%, value for money 50%) Issue 96 (January 22-28, 1985)
Personal Computer Games 6/10 (graphics 7/10, sound 8/10, originality 7/10, lasting interest 4/10) Issue 15 (February 1985)
Your Commodore 2/5 Issue 5 (February 1985)
Your Computer 3/5 Vol. 5 No. 1 (January 1985)

Critics[edit | edit source]

Stephan64: "At first glance, a graphically pleasing game from the early days of the C64 with a nice background melody, and at the same time a humorous relic from a time when a punk was still the ultimate terror of all respectable citizens. Unfortunately, however, the gameplay quickly becomes utterly boring and frustrating. Therefore, it gets the well-deserved rating of "particularly annoying" from me, and considering its early release year and clever programming, a merciful 3 points."

Shakermaker303: "ANIROG released some nice games. This one looks cute, but my frustration level is pretty high. What I'm missing is the ability to throw the stick backward. Because when you have a bank robber on your tail — although I wonder why a bank robber would chase the law with his loot — it gets too tricky for me."

Rombachs C64-Spieleführer II: "A graphically impressive game that unfortunately loses its appeal due to the monotony of its plot."[1] (verdict 3)[2].

Miscellaneous[edit | edit source]

Cover[edit | edit source]

The cassette version of "P.C. Fuzz" was available in both a cassette sleeve and a game box. The following gallery shows these two versions in their correct size ratio.

Cassette version cover in cassette sleeve
Cassette version cover in cassette box



Inlay[edit | edit source]


Game box inlay for the cassette version, outside
Game box inlay for the cassette version, inside



Cassette sleeve inlay, outside
Cassette sleeve inlay, inside



Cassette[edit | edit source]

Cassette for the game "P.C. Fuzz"

Theme[edit | edit source]

The following gallery shows the title theme and the end-of-game tone sequence in standard musical notation. For creative reuse, the sheet music is also available as a PDF document (File:PCFuzz Theme PDF.pdf) and in ABC musical notation (File:PCFuzz Theme.abc.txt).


Sheet music for the title theme (first page), reconstructed by logging all write accesses to the SID
Sheet music for the title theme (second page)
Sheet music for the melody at the end of the game



Video Recording[edit | edit source]


Longplay of the game

Accesories[edit | edit source]

The cassette version of "P.C. Fuzz" included a leaflet the size of the cassette case (6 double-sided printed pages, 6 x 10 cm, unfolded to 36 x 10 cm) containing the game instructions in five languages (English, German, French, Dutch, and Spanish).


Leaflet with operating instructions, front (Dutch/Spanish)



Leaflet with operating instructions, back (English/French/German)



Technical Details[edit | edit source]

Grafik[edit | edit source]

The screen display is in text mode (screen memory at address $0400, character set from $3800), with the passing starry sky in the top five lines of text and the game score information in the bottom two lines in monochrome, and the rest of the game scene in the night street in multicolor mode.

Sprites are used to display all the characters, the balloons with the loot, and the cars. The program uses raster interrupts in raster lines 0, 89, 112, 153, 202, and 232 to reuse the sprites multiple times with each screen refresh (Sprite multiplexing). Thus, police constable Fuzz can consist of 3 sprites (plus 1 sprite for his club), each punk of 2 sprites, and each car of 6 sprites. Only a single sprite is used for each balloon, each bag of money, and each bomb — and for each of the bank robbers, who consequently appear somewhat diminutive.

Fastloader[edit | edit source]

The cassette version of "P.C. Fuzz" uses an integrated software fast loader, which is automatically activated during loading and speeds up the loading process by approximately a factor of 8. Each program block is preceded by a 4-byte data structure containing the program's start and end addresses, followed by a 2-byte address that is first pushed onto the stack and then accessed via an RTS instruction. Thanks to optimized encoding (shorter intervals for 0 and 1 bits, no checksums, no duplicate storage of program data), loading "P.C. Fuzz" takes less than two minutes, whereas the KERNAL's datasette routines would require more than a quarter of an hour for a program of this size.

What is striking about this fast loader is the immense effort the authors have made to complicate an analysis of its operation. The machine code of the load routines is distributed roughly equally between the latter part of the program header block (address $370—$03E7) and the subsequently loaded program (address $0335—$036F), and must also be decrypted after loading by a bitwise left shift. The program loop that performs this shift operation begins at address $033C and is exited as soon as it processes the jump offset of its own final branch instruction and redirects it to a new jump target:

; Exiting the decoding routine
0335: LDA $D020 ; Fetch border colour to A
0338: STA *$B7  ; and chache
033A: BNE $0370 ; Always jump to the fastloader
; Start of the decoding routine
033C: CLC       ; Start decoding by left-shift with 0 bit
033D: ROL $03E7 ; Rotate/decode fastloader backwards, starting at end address $03E7
0340: DEC $033E ; Move pointer to next address to be rotated/decoded (modification of the preceding command!) 
0343: BNE $033D ; Jump backwards; the jump offset finally will be changed to address $0335 by shifting left

The program header contains the copyright notice (C) TEQUILA BELGIUM - ANIROG UK; the first data block read by the fast loader also contains the message (C) XROM SYSTEM TEQUILA SUNRISE BELGIUM BRUSSELS 1984. This data block is loaded into the address range $FE00—$0001 (with a wraparound from $FFFF to $0000), thus overwriting, among other things, the processor port and hiding the BASIC ROM. This block must also first be decoded by decrementing each data byte by 1; the decoding routine is exited once the branch instruction's jump offset is modified at the end:

; Start of the decoding routine
FF7E: SEI       ; Deactivate interrupts
FF7F: BIT $D02C ; Will place opcode "BNE $FF51" at address $FF81
FF82: DEC $FFF8 ; Decrement/decode the reloaded program section backwards from end address $FFF8
FF85: DEC $FF83 ; Move pointer to next address to be decremented/decoded (modification of the preceding command!)
FF88: BNE $FF82 ; Jump backwards; the jump offset finally will be changed to address $0335 by decrementing

The program header also contains one of the following dates: MASTER DATE:21/09/1984 (in this case, the cassette contains the game "P.C. Fuzz" once on each side) or MASTER DATE:26/09/84 (and the game appears twice consecutively on each side of the cassette).

The routines for synchronization and for reading a bit and a byte are identical to those in the fast loaders of the games "Aquanaut (Interceptor)" and "Loco", and largely identical to those of "Elidon".

Highscore[edit | edit source]

Topscore of Ivanpaduano
Topscore of Ivanpaduano
  1. Ivanpaduano - 27.950 (01.02.2026)
  2. Shakermaker303 - 11.150 (11.02.2026)
  3. Stephan64 - 10.800 (20.01.2026)


#2 Shakermaker303 #3 Stephan64
#2 Shakermaker303 #3 Stephan64


Links[edit | edit source]

Magazine

Sources[edit | edit source]

  1. Pascal Ciampi, Ralf Tellgmann: "Rombachs C64-Spieleführer II", Rombach, 1986, page 171
  2. Pascal Ciampi, Ralf Tellgmann: "Rombachs C64-Spieleführer II", Rombach, 1986, page 384