A solitaire style game for the Commodore 64
Find a file
2026-01-02 16:16:40 +01:00
charpad_cards First commit in fresh repo 2026-01-02 13:21:20 +01:00
charpad_color_sprites First commit in fresh repo 2026-01-02 13:21:20 +01:00
charpad_rank_sprites First commit in fresh repo 2026-01-02 13:21:20 +01:00
.gitignore First commit in fresh repo 2026-01-02 13:21:20 +01:00
cardconsts.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
carddeck.c65 Cleaned up ZP usage. 2026-01-02 16:16:05 +01:00
cardgame.c65 Cleaned up ZP usage. 2026-01-02 16:16:05 +01:00
cardmoves.c65 Cleaned up ZP usage. 2026-01-02 16:16:05 +01:00
cardrender.c65 Cleaned up ZP usage. 2026-01-02 16:16:05 +01:00
cardsprites.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
cardtests.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
claude_code_docker.sh First commit in fresh repo 2026-01-02 13:21:20 +01:00
cm.sh First commit in fresh repo 2026-01-02 13:21:20 +01:00
docker-compose.yml First commit in fresh repo 2026-01-02 13:21:20 +01:00
Dockerfile First commit in fresh repo 2026-01-02 13:21:20 +01:00
exomizer_compress_prg.sh First commit in fresh repo 2026-01-02 13:21:20 +01:00
gameloop.c65 Cleaned up ZP usage. 2026-01-02 16:16:05 +01:00
joystick.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
joysticktests.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
LICENSE Initial commit 2026-01-02 13:10:38 +01:00
mouse.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
piles.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
pointer.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
random.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
README.md First commit in fresh repo 2026-01-02 13:21:20 +01:00
start_in_vice.sh Added starter shell scripts 2026-01-02 16:16:40 +01:00
start_on_u64.sh Added starter shell scripts 2026-01-02 16:16:40 +01:00
start_on_uii+l.sh Added starter shell scripts 2026-01-02 16:16:40 +01:00
testgames.c65 First commit in fresh repo 2026-01-02 13:21:20 +01:00
utils.c65 Cleaned up ZP usage. 2026-01-02 16:16:05 +01:00

Solitaire C64

A classic Klondike solitaire card game for the Commodore 64, written in c65gm.

Features

  • Full Klondike Solitaire: Stock, waste, 7 tableaus, and 4 foundation piles
  • Dual Input Support: Play with joystick or 1351 mouse
  • Draw Modes: Toggle between draw-1 and draw-3 gameplay
  • Custom Graphics: Character-based card rendering using extended color mode
  • Sprite Cursor: Visual pointer for card selection and movement
  • Smart Shuffling: Hardware-seeded RNG for true randomness

Technical Details

Language: c65gm (C-like language for 6502/C64) Memory Layout: Code at $3000, custom charset at $2000 Graphics: Extended Color Mode (ECM) with custom character set Input: CIA joystick ports + 1351 proportional mouse support

Building

Requires the c65gm compiler and ACME assembler:

./cm.sh

Outputs main.prg ready to load on C64 or emulator.

Project Structure

  • cardgame.c65 - Main entry point and initialization
  • gameloop.c65 - Game loop, interaction, and pile detection
  • cardmoves.c65 - Move validation and execution logic
  • cardrender.c65 - Card and pile rendering routines
  • carddeck.c65 - Deck shuffling and dealing
  • mouse.c65 / joystick.c65 - Input handling
  • pointer.c65 - Sprite cursor management
  • cardsprites.c65 - Sprite data for cursor

License

See LICENSE file for details.