In the late 90's my SlackWare Linux distribution came bundled with a neat little game called xBill.
The goal of the game is to prevent the 'Bills' from spreading Windows to other computing devices.
This game was addressing a very relevant topic in the 90's, where Microsoft's antitrust behavior was pushing out competitors on the market.
United States vs Microsoft Corp. on WikipediaIn 1999, a port for Palm OS was released (handsomely named pBill) but unfortunately it refuses to run on any color devices. On the latest OS5 devices, it straight up sends your device in a reboot.
1999 was only a year before the very first Palm with colors was released, the IIIc. So I can imagine that this game did not get the attention it should have gotten since color PDA's quickly became common ground.
The official xBill homepageNow ofcourse you can already guess where this is going...
The game came bundled with the source code, so I spend a couple of my free evenings to create an update, so it would run on 'modern' Palm PDA's (you know, the fancy ones that can show colors).
You can play the game directly in the browser or you can install it onto your Palm device from here:
Game download and in-browser emulatorHere's what I set out to do:
- Make it run on all devices (running OS 3.5 or higher)
- Add color support with hi-res graphics
First, I needed to get it to compile. Luckily, there is the prc-tools-remix toolchain which contains the compiler and linker I need.
Then came the part of figuring out against which SDK it was compiled. After some tweaking, I was able to get it to build using the old Palm 3.1 SDK, from there I worked my way up to the 3.5 SDK and then finally onto the OS 5.3 SDK.
I copied over the image resources from the desktop version of xBill, which were more than large enough to accommodate a hi-res version of the game.
Then I added a script to convert the images into a usable size and format.
Once that was done, another script was created to automatically generate the RCP files. These are files that tell the resource linker where to find the images and in what format it can expect them.
PRC Tools RemixNext up was replacing the old drawing routines with the built-in functions that were available in later SDK's.
I also added a static background buffer to minimize the need to redraw sprites that don't change (Position of the computers never change during a game, until you switch levels).
To put the cherry on the top, I tweaked the start screen a bit to show off the colors and updated the game's icon to match with the one from the desktop xBill.
I've tried finding the original author online but unfortunately his website is no longer functional.
In fact, the only 'pBill' reference I found is from an old repository listing open source applications for Palm OS.
I'm now sending out a couple of e-mails hoping to get in touch with the original author or someone who worked on xBill.
PalmOS open-source software listing on LinuxMafiaAnd ofcourse the full source code is available on GitHub. I would not recommend using this as an example for building PalmOS games, since some of the code is not so clean and hastily cobbled together.
My MiniGolf game however is a better candidate if you want to delve into PalmOS game programming.
Source code for pBill Source code for Captain's MiniGolfYou can get in touch through Mastodon:
@rxpz@social.linux.pizzaxBill for PalmOS receives an update after 25 years was published on 2024-09-24