Fixing Bugs In A 37 Year Old Apple II Game

Emulators are a great way to reminisce about games and software from yesteryear. [Jorj Bauer] found himself doing just that back in 2002, when they decided to boot up Three Mile Island for the Apple II. It played well enough, but for some reason, crashed instantly if you happened to press the ‘7’ key. This was a problem — the game takes hours to play, and ‘7’ is the key for saving and restoring your progress. In 2002, [Jorj] was content to put up with this. But finally, enough was enough – [Jorj] set out to fix the bug in Three Mile Island once and for all.

The project is written up in three parts — the history of how [Jorj] came to play Three Mile Island and learn about Apple IIs in the first place, the problem with the game, and finally the approach to finding a solution. After first discovering the problem, [Jorj] searched online to see if it was just a bad disk image causing the problem. But every copy they found was the same. There was nothing left for it to be but problem in the binary.

Continue reading “Fixing Bugs In A 37 Year Old Apple II Game”

Portal Ported To the Apple II

[deater] readily admits they’re a little behind on what’s new in gaming – only having just gotten around to Valve’s 2007 release of Portal. It’s a popular game, but [deater] didn’t want anyone to miss out on the fun – so set about porting Portal to the Apple II.

The port uses the “hires” mode of the Apple II for the flashy graphics that were state of the art around 1980 or so. It’s not a copy of the full game – only the first and last levels, combined with Jonathan Coulton’s now-classic ending theme, Still Alive. As is to be expected, it’s not a wild, fast paced gaming experience, but a cool use of BASIC to put together a fun tribute to a popular franchise.

It’s a little different to the original – portals can be placed anywhere, for example – but it rings true to the original. Source code and a disk image is provided, so you can try it for yourself – even in this online emulator.

We’re looking forward to the sequel so we can use the post title “Portal 2 Ported To The Apple II, Too”, but until then, check out [deater]’s Apple II web server, also in Applesoft BASIC. Video after the break.

Continue reading “Portal Ported To the Apple II”

Portable Apple II On An AVR

The Apple II was one of the first home computers. Designed by Steve “Woz” Wozniak, it used the MOS technologies 6502 processor, an 8-bit processor running at about 1 MHz. [Maxstaunch] wrote his bachelor thesis about emulating the 6502 in software on an AVR1284 and came up with a handheld prototype Apple II with screen and keyboard.

pic_15
Prototype on veroboard

Originally, [maxstrauch] wanted to build an NES, which uses the same 6502 processor, but he calculated the NES’s Picture Processing Unit would be too complicated for the AVR, so he started on emulating the Apple II instead. It’s not quite there – it can only reference 12K of memory instead of the 64K on the original, so hi-res graphic mode, and therefore, many games, won’t work, but lo-res mode works as well as BASIC (both Integer BASIC and Applesoft BASIC.)

[Maxstrauch] details the 6502 in his thesis and, in a separate document, he gives an overview of the project. A third document has the schematic he used to build his emulator. His thesis goes into great detail about the 6502 and how he maps it to the AVR microcontroller. The build itself is pretty impressive, too. Done on veroboard, the build has a display, keyboard and a small speaker as well as a micro SD card for reading and storing data. For more 6502 projects, check out the Dis-Integrated 6502 and also, this guide to building a homebrew 6502.

Continue reading “Portable Apple II On An AVR”

Apple II Web Server Written In BASIC

The Apple II was the machine that many say launched Apple as a company. As with many popular computers of the 1980s, the Apple II maintains a steady following to this day who continue to develop new hardware and software to keep the platform alive.

[deater] had scored an Uthernet II Ethernet interface for his Apple IIe, based off the venerable W5100 chipset. He decided to have some fun and wrote a webserver for the Apple II in BASIC. The program sets up the Ethernet card with a series of PEEKs and POKEs, and then listens out for incoming packets before responding with the requisite data loaded from floppy disk.

The server can deal with HTML, text, and even JPEG and PNG images. It’s even compliant with RFC 2324. It does suffer from some limitations however — the disk format used can only hold 140 kB, it can only serve an 8kB file at a time, and due to using a lot of string manipulation in the code, is painstakingly slow.

Before you get too excited, the machine is running on a local network only, so you can’t check it out from here. However, [deater] has kindly released the source code if you wish to run it for yourself.

If you’re thirsty for more 8-bit action, check out this Apple II playing animated GIFs.

A New OS For Apple II Computers

Although this sort of work is usually reserved for KansasFest and other forums for highly technical and very skilled Apple enthusiasts, [John Brooks]’s release of a new version of the ProDOS operating system is no less important. It is, without a doubt, the greatest release the Apple II platform will see for the next few years. This swan song of the Apple II platform is simply ProDOS 2.4, an update to the last version of Apple’s ProDOS, last released in 1993.

For a bit of historical context, ProDOS was not the operating system that shipped with the Apple ][ in 1977. That OS was simply called DOS. ProDOS, released in 1983, included support for the new 3.5″ floppy drives, allowed for hierarchical directories, supported hardware interrupts, and kept the Apple ][ line going well into the 90s. Despite these improvements, not all Apple ][ systems were supported. The original ][ and ][+ were out in the cold. Now, with the ability to add Compact Flash and USB devices to an Apple ][, even the latest version of ProDOS is horribly out of date.

[John]’s release of ProDOS 2.4 fixes all of this. This release is the most important development in the Apple ][ ecosystem in recent memory, and will remain so for at least a decade. The only person who still uses an Apple ][ as a daily driver agrees, and ProDOS 2.4 is now enshrined in The Archive for all eternity.

prodos-2-4-bitsy-bye-768x543New features abound, although most of them are geared toward the now thirty-year-old Apple IIGS. These features include enhanced utility in GS/OS – the Apple equivalent of the Commodore GEOS – slot remapping, and an OS that is both smaller and loads faster. Older machines aren’t left out, and ProDOS includes the usual features and improvements found in ProDOS 2.x that weren’t available in the Apple ][, Apple ][+ and un-enhanced Apple //e.

The killer feature and one more thing of this release is the BitsyBye utility, a small ($300!) system program that allows you to boot various Apple II devices and programs. Think of this as the Norton Commander of the Apple II ecosystem, allowing slots to be selected, booting the most recently used ProDOS device, and basic file system exploration. BitsyBye also includes an easter egg. A few utilities are also included on the ProDOS 2.4 disk image including ADTPro, Shrinkit archive expander, and disk utilities.

A 140k ProDOS 2.4 disk image is available on [John]’s site and on Archive.org. Since you’re probably not downloading directly to an Apple II disk, grab ADTPro and load it over audio.

An Apple II Joystick Fix For Enjoyable Gameplay

We all remember the video games of our youth fondly, and many of us want to relive those memories and play those games again. When we get this urge, we usually turn first to emulators and ROMs. But, old console and computer games relied heavily on the system’s hardware to control the actual gameplay. Most retro consoles, like the SNES for example, rely on the hardware clock speed to control gameplay speed. This is why you’ll often experience games played on emulators as if someone is holding down the fast forward button.

The solution, of course, is to play the games on their original systems when you want a 100% accurate experience. This is what led [Chris Osborn] back to gameplay on an Apple II. However, he quickly discovered that approach had challenges of its own – specifically when it came to the joystick.

The Apple II joystick used a somewhat odd analog potentiometer design – the idea being that when you pushed the joystick far enough, it’d register as a move (probably with an eye towards smooth position-sensitive gameplay in the future). This joystick was tricky, the potentiometers needed to be adjusted, and sometimes your gameplay would be ruined when you randomly turned and ran into a pit in Lode Runner.

The solution [Chris] came up with was to connect a modern USB gamepad to a Raspberry Pi, and then set it to output the necessary signals to the Apple II. This allowed him to tune the output until the Apple II was responding to gameplay inputs consistently. With erratic nature of the original joystick eliminated, he could play games all day without risk of sudden unrequested jumps into pits.

The Apple II joystick is a weird beast, and unlike anything else of the era. This means there’s no Apple II equivalent of plugging a Sega controller into an Atari, or vice versa. If you want to play games on an Apple II the right way, you either need to find an (expensive) original Apple joystick, or build your own from scratch. [Chris] is still working on finalizing his design, but you can follow the gits for the most recent version.