Cross Platform Prog8 Game Development

178

In the latest video, CommodoreSam returns with Cross Platform Prog8 Game Development, the fourth entry in his ongoing series about programming the 6502 using Prog8. This time, he takes his simple but charming title, 6502 Fart Bombs, and transforms it into a multi-system marvel. The project now runs on the Commodore PET, VIC-20, C64, C128, C16, Plus/4, Commander X16, and even a curious experimental build for the OtterX.

From the start, the video captures the joy of seeing the same game spring to life across vastly different systems. Prog8, the focus keyphrase of this episode, proves its flexibility by letting Sam and Andrew reuse much of the same code across these machines. Each platform, of course, brings its quirks—screen sizes, color limits, and memory constraints—but the structure of Prog8 keeps the workflow efficient.

The Challenge of Many Machines

Sam walks through each version, starting with the green-screen PET edition. Its monochrome look gives the game a stripped-down but nostalgic charm. Moving up to the VIC-20 and C64, color and grid size expand. The C128, naturally, handles larger board layouts and introduces adjustable difficulty levels, one of the newest additions in version 1.5.

By the time the game reaches the Plus/4 and C16, the differences in display and color palettes make fine-tuning necessary. The Plus/4, for instance, handles colors quite differently from the C64, forcing adjustments to maintain readability. Prog8’s modular setup made these tweaks manageable without rewriting the entire program.

The Commander X16 version steals the spotlight near the end, showing off its crisp 8-megahertz performance and wider playfield. Sam hints that it might become his favorite target for future projects, though he admits the C64 still holds his heart.

Inside the Prog8 Project Structure

After showing the gameplay across machines, Sam switches to his development environment, using IntelliJ to display how the source folders are arranged. Each platform has its own small “platform.p8” file containing configuration data such as screen size, color setup, and memory specifics.

Most of the code still lives in the main source file, but the platform files make the project portable. When compiling, Prog8 imports the correct platform definitions automatically, ensuring that variables like board size and random number seeding adapt to the chosen machine.

The video emphasizes how flexible Prog8 is for cross-compiling: a single core engine can run across multiple Commodore computers with minor changes. Developers can choose whether to write platform-specific code for full optimization or aim for broad compatibility with shared logic.

Custom Targets Explained

Andrew takes over to explain “custom targets,” a feature allowing Prog8 to support systems that aren’t built into the compiler by default. He demonstrates how he created custom target files for the VIC-20 and Plus/4.

Using simple configuration files, he defines each system’s memory map, screen dimensions, and library dependencies. These external targets can then be used to compile games exactly as if they were native. Andrew plans to submit them to the official Prog8 repository, making them available to everyone.

He shows how each target is set up in a configuration directory, complete with text-based IO libraries that handle screen drawing, cursor movement, and color plotting. These modules make the game’s cross-platform display logic possible. The pair discuss how this setup simplifies porting future projects, even to unreleased hardware such as the Mega65.

From PET to Plus/4 Gameplay Showcase

Returning to gameplay, Sam demonstrates how the new difficulty settings change the grid size and bomb count. Each difficulty level pulls unique parameters from the platform files, allowing different screen capacities to feel balanced.

He plays through versions on both the PET and Commander X16, pointing out how each machine handles the same logic differently. The PET uses a blinking cursor to highlight the player’s position since it lacks color, while the C64 and Plus/4 versions use visual highlights.

Small quality-of-life improvements appear throughout version 1.5, such as a clean exit screen that returns to a ready prompt instead of cluttering the display. It’s a simple touch, but one that reflects careful thought for usability across platforms.

Looking Ahead for Prog8 Projects

Sam teases future updates, mentioning potential features like sound effects and controller or mouse support. He invites viewers to vote in the comments on whether the game should get an “expert” difficulty level or expanded grid sizes for the Commander X16’s wider screen mode.

He closes by encouraging viewers to check out his GitHub repository, where every commit and release is available for download. For those interested in programming with Prog8, he points to the Commander X16 Discord server, which hosts an active community discussing the language’s development and examples.

A Platform-Hopping Success

Cross Platform Prog8 Game Development highlights how accessible multi-system 8-bit programming can be when the right tools are in place. By building 6502 Fart Bombs v1.5 around a shared core and lightweight platform files, Sam and Andrew prove that writing for classic machines doesn’t have to mean rewriting everything from scratch.

Prog8 continues to grow as both a hobbyist and serious development tool for vintage systems, and this video makes a strong case for giving it a try. Anyone curious about cross-platform 6502 programming—or just eager to see some clever PET gameplay—will want to watch it all the way through.

Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments