A cross-platform modern casino game for MSX2 and Commodore 64.
This is an experiment intended to help me learn both the secrets of the Z80 and 6502 architectures, but also develop something that would be playable on two different retro systems. I also want to create an engaging and fair casino game with modern table games such as Three Card Poker and modern video slots that have features such as bonus games and "linked" awards.
I intend to do the majority of the development in C. Rather than reinvent the wheel I will be relying on well-known machine-specific libraries for both platforms. The core game code, however, will be 100% original.
Games Planned: (Subject to Change)
- Big Wheel/"Chuck-A-Luck" (Core logic completed 20 Aug 2024)
- Blackjack:
- Traditional Blackjack
- Craps
- Poker:
- Video Poker (Core logic completed 21 Aug 2024)
- Three Card Poker
- Let It Ride
- "Ultimate" Texas Hold 'Em
- Roulette (Core logic completed 17 Aug 2024)
- Slot Machines: (not mentioned: line variants, simulated-linked play, or theming)
- Traditional Three-Reel (Core logic completed 13 Aug 2024)
- Video (with bonus games)
Other Features Planned: (Subject to Change)
- Background Music
- Persistent Bankroll (via password or save)
"Stretch goals":
- Games:
- Blackjack: Lucky Ladies Blackjack (or other side-bet based variants)
- Poker: interactive-betting five-card poker
- Slot Machines: Traditional Five-Reel
- Features:
- Cross-platform password compatibility
- Full Windows version
The primary platform for release will be the MSX2 with NO modifications.
The following libraries and tools will be used for MSX2 development:
- SDCC (http://sdcc.sourceforge.net/)
- Fr3el Project (https://github.com/mvac7/SDCC_MSX_fR3eL)
- MegaLinker (https://github.com/MartinezTorres/megalinker)
- Arkos Tracker 2 (https://www.julien-nevo.com/arkostracker/)
Testing will be done in emulators such as VICE64 and openMSX, with the end goal of running them on native hardware. The only concessions on hardware verisimilitude that will be made are the fact that on the MSX2 I'll be using just a flash cartridge, and on the C64 I'll be using an SD-to-1541 adapter and a machine modded with the MechBoard64 mechanical keyboard upgrade. Aside from these, the game will be playable on stock out-of-the-box hardware.
MSX2 base requirements (subject to change):
- MSX2-compatible machine (minimum 64k RAM)
- One cartridgee slot (Stock on MSX machines; will use MegaLinker for MegaRom bank switching)
- MSX-MUSIC compatible sound module (usually stock on most MSX2 machines)
MSX2 Release Format: CARTRIDGE (or ROM via MegaFlashROM-- cartridge manufacturing is possible if there's interest)
MSX2 Release Schedule: TBD
The following libraries and tools will be used for Commodore 64 development:
- SDCC (http://sdcc.sourceforge.net/)
- TBD
Commodore 64 base requirements:
- TBD
C64 Release Format: TBD
C64 Release Schedule: TBD (after the MSX2 version)
As this is my first major project in pure C, as well as my first major projects for the MSX and C64, my focus is on encapsulation and portability. Core logic for the games will be written with as few stack variables as possible, so that memory management may be handled on a machine-by-machine basis; malloc() has been my personal bete noire particularly on older systems so I may end up coding the memory management by hand to static address locations (which is certainly not my first choice).
I intend to release a proof-of-concept, bare-bones graphical slot machine for the two legacy platforms first. As of this writing (13 Aug 2024) I expect to release this sample by the end of 2024.
All code will be open-source under the BSD license with an exception made for gambling purposes, specifically: You may NOT use this code to create any derivative work that will be used for real-money gambling. Game rules are used without the permission of their original creators (in the case of Let It Ride or Lucky Ladies Blackjack) but please go easy on me, this is just an experiment.
This project is intended for EDUCATIONAL and ENTERTAINMENT USE ONLY. This is a casual project and not intended to facilitate or promote real-money gambling. The software does not and will not include code to purchase credits for gambling with real money. Donations to the author via Ko-Fi or GoFundMe will not result in obtaining credits in the game, but they will make her a little happier, so please consider it.
Fairness and randomness of the RNG is not guaranteed. This code is NOT GUARANTEED to comply with local, regional, or national statutes or laws regarding simulated gambling. The author will not be held liable for any civil or criminal penalties arising from the possession or use of this software where it is not legal to possess or use it.