solitaire-c64/README.md

44 lines
1.4 KiB
Markdown

# 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:
```bash
./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.