For Home Brew Just Add Hops…Skips, Jumps, Blood, Sweat & Tears

Posted by Alex Lee on 17 October 2011 | 643 Comments

Tags: Apple IIGS, Software, Development, SCUMM, SCI, Magnetic, Magnetic Scrolls, Level 9, Interpreter, Sierra, Lucas Arts, Assembler, C, Pascal, BASIC, Toolbox

This article has been written...

a) to help anyone who's interested in Apple IIGS software development (from a complete non-expert)

and

b) to express my jealousy of how the gaming home brew scene on other abandoned platforms is thriving: Space Harrier has been ported to the Atari XL, and as I've been finalising this blog, the Commodore 64 version of Prince of Persia has just been released, made from disassembled code from the original Apple II version and much to the amazement and joy of Jordan Mechner himself! The Retroaction site lists all the new productions coming out for C64, ZX Spectrum and other platforms...and it's a lot.

 

Homebrew Space Harrier for the Atari XL Homebrew version of Prince of Persia for the C64

 

Perhaps one reason the Apple II has been lagging in this category is that it's incorrectly assumed that everyone within the community already knows what programming languages are available, what toolbox calls can be made, and what visual and audio software can be used to enhance programs. Recently there have been expressions of interest from people new to the IIGS or those who haven't used the IIGS in such a long time, they can't remember all these steps to software development.

Additionally, many developers seem to work in a bubble, with few people being aware of what others are working on. It's always great to receive an enjoyable surprise program, but this could lead to two individuals developing the same program or something similar; a doubling up of efforts that would likely result in one person's effort being made redundant.

Moreover, if the bubble is expanded to other people, enhanced graphics could be employed, sound and music added, further testing done and documentation written in league with the programmer's efforts, hopefully freeing up more time for the programmer who would otherwise take on these peripheral duties themselves.

I know that some people might remember '1WSW' (One World Software Wizards), and I'm really hesitant to even mention it all for fear of the IIGS faithful retreating back into the safety of their secluded individual development. But being included on a list of people, their skills and projects would be purely on a voluntary basis.

For example, I volunteer my services for any IIGS development in the following ways:

• Graphic Design including planning graphical user interfaces, layout & typography. I stress however that this doesn't include illustration, a skill for which I am well out of practise and don't have enough time for to produce work that I'd be happy with. I strongly recommend getting in touch with the artists at Pixel Joint for such work.
• Graphics Conversion (ensuring best possible exploitation of the abilities of the IIGS to display graphics from other formats).
• Beta testing software (albeit via Sweet 16 and KEGS)

If you'd like to make yourself available to help in the development of IIGS software, let me know and in what capacity you're able to assist. I'll add you to this article.

As for developing your own programs, here is a list of the most commonly used software available:

Programming

ORCA/M - Still Sold & Supported with complete documentation - Enables you to develop assembly language based programs. Optional tutorials are available for additional price.

ORCA/C - Still Sold & Supported with complete documentation - Enables you develop in 'C'. Optional tutorials are available for additional price.

ORCA/Pascal - Still Sold & Supported with complete documentation - Enables you to code in Pascal.

Merlin 16+ - Abandonware - Enables you to code in assembly language.

Ninja Force Assembler - Freeware - Enables you to code in assembly language.

Complete Pascal (previously TML Pascal) - Reclassified Freeware - Enables you to code in Pascal and make full use of toolbox calls.

Splat! - Reclassified Freeware - A debugger for use with Complete Pascal.

MICOL Advanced Basic v5.0 - Reclassified Freeware - Extends Applesoft BASIC, exploiting the IIGS more fully.

Iconix & Sonix - Reclassified Freeware - Extends Applesoft BASIC, exploiting the IIGS more fully, specifically in regards to graphics and sound.

Call Box - Reclassified Freeware - Extends Applesoft BASIC, by allowing you to use the IIGS toolbox.

GSoft BASIC - Recently Reclassified Freeware - Allows BASIC to take advantage of IIGS toolbox and other IIGS specific capabilities.

Hyperstudio & HyperCard - adventure style games could be potentially made with either of these hypermedia editing programs.

Foundation & Genesys - Reclassified Freeware - Resource editors to allow you to quickly create the content of pull down menus and program dialogues.

Design Master - Still Sold & Supported - Resource editor to allow you to quickly create the content of pull down menus and program dialogues.

Flaming Bird Disassembler - Freeware - Disassembles compiled assembly code for modification.

Programming Libraries

PegaSoft Draw Tools v3.1 - Shareware - a third party toolset to assist in the display of graphics and animation. Full docs included.

MegaTracker Player v? - Freeware - incredibly optimised code resource for ORCA/M projects that enables SoundSmith sequence playback with only 1 - 3% CPU resources even for a stock standard IIGS.

Tool 219 - Freeware - a system tool developed by the FTA to enable SoundSmith sequence playback.

Tool 220 - Freeware - a system tool developed by the FTA to enable NoiseTracker sequence playback. This only includes MODs from the IIGS version of NoiseTracker, not the Amiga version of NoiseTracker.

ShellPlay - freeware - a shell program to enable very high quality playback of Amiga MOD format music sequences.

libsoundGS - Created by Christopher Sheperd (no relation to Eric Sheperd), this sound library takes advantage of compact flash based storage and oversampling to playback music larger than can fit into a fully maxed out 8meg of RAM IIGS. Additionally, the library provides a means of adding other triggered sound effects to play in addition to the sampled music.

Tool 35  - Apple - a system tool included with System 6 for MIDISynth sequence playback. MIDISynth sequence playback requires many more CPU cycles than SoundSmith and is not recommended for arcade games.

Generic Tile Engine - freeware - Still being developed, the GTE enables use of an incredibly quick blitter and tile based scrolling commonly found in arcade games.

Virtual GS – plenty of Pascal and GSoft BASIC examples to help bring you into the world of IIGS programming!

Polymorph's A2 Projects – Mike Stephens' Complete Pascal programs with source code included.

Complete Pascal for the Apple IIGS - Even more info on getting the most out of Pascal development on the IIGS.

Golden Grail – CD-ROM collection put together by Jim Maricondo includes lots of sample code (including the useful music tools listed above).

 

Graphics Conversion

Convert3200 - Reclassified Freeware - a tool to convert GIF, BMP and IFF formats to the native SHR format of the IIGS in either 16, 256 or 3200 colours. Interface takes getting used to, but provides good and quick results, as well as batch conversions.

Super Convert v4.0 - Abandonware - Converts more formats than any other IIGS program including JPG, GIF, PNG and offers a wide variety of how images are translated for the IIGS. Does the best job of converting artwork to the IIGS' 640 x 200 graphics mode commonly used in desktop applications.

Prism - Abandonware - Simple to use but includes useful options for conversion, Prism can convert images to the native Super HiRes (SHR) graphics with 16, 256 or 3200 colours.

Graphics Creation & Editing

Platinum Paint - Abandonware - Most fully featured 16 colour paint program for the IIGS.

Dream Grafix - Reclassified Freeware - includes best implementation of dealing with images greater than 16 colours.

8/16 Paint - Abandonware - Simple but fast and efficient tool for artwork. Also converts graphics between the different formats supported by the IIGS, including the older 8-bit hi-res and double hi-res graphic modes.

Deluxe Paint II - Abandonware - Classic powerful paint program.

Music Sequencing & Conversion

SoundSmith - Shareware - Tracker style sequencer program that allows compositions of up to 15 tracks with 64k of instrument data. Playback allows plenty of CPU cycles for other tasks.

MODifier - Freeware - Converts older style Amiga MODs such as those created with ProTracker and NoiseTracker to SoundSmith format, also exporting instruments. Note that not all effects of MODs are supported by SoundSmith, for example, pitch bend, but conversion to SoundSmith format will ensure playback will require less CPU overhead.

NoiseTracker - Freeware - FTA developed sequencing program similar to SoundSmith, but breaks the 64k of instrument data barrier. Playback requires more CPU cycles however. NoiseTracker 2 became a desktop based program.

MIDISurgeon v2.0 - Still Sold by Syndicomm as part of GS+ Magazine issue 7, 1 - MIDISurgeon will open standard MIDI files and convert them to IIGS native MIDISynth format. This opens up enormous potential for music on the IIGS.

Audio Editing & Conversion

AudioZap - Reclassified Freeware - Possibly the most powerful audio editing program available for the IIGS. Enables you to open and convert many formats, record with the many different sound expansion cards available for the IIGS, waveform editing and adding effects, and even converting entire disks (not just ProDOS formatted disks either!) to a waveform to search for sound effects or instruments. The program can be found on the Audio & Utilities hard drive image.

I'll update this list whenever anybody makes a suggestion as to what to add.

Projects

This is a list of potential projects or projects already in started by others:

 

Project

Aims

Status

Magnetic Scrolls Interpreter

Create an interpreter from an existing platform independent program written in C that will allow play of any of the Magnetic Scrolls games including the Pawn, Guild of Thieves, Jinxter and make use of the standard IIGS GUI making toolbox calls for pull down menus, dialogues, text rendering, etc. Successful completion of IIGS port of the interpreter will enable 7 new text/graphic adventure games previously unavailable for the IIGS.

All data for games acquired and Antoine Vignau and Olivier Zardini have reverse engineered the format of the graphics, but no further work done.

Level 9 Interpreter

Create an interpreter from an existing platform independent program written in C that will allow play of any of the Magnetic Scrolls games including Scapeghost and Lancelot and make use of the standard IIGS GUI making toolbox calls for pull down menus, dialogues, text rendering, etc. Successful completion of IIGS port of the interpreter will enable multiple new text/graphic adventure games previously unavailable for the IIGS.

All data for games acquired, but no further work done.

Lucas Arts SCUMM & Sierra SCI Interpreters

Using documentation gathered from the SCUMM VM project (which is NOT able to be ported to the IIGS as it's written in C++) to reverse engineer the SCUMM interpreter, write an interpreter in C or assembly specifically for the IIGS. Level of difficulty would be high. Music can be resequenced for the IIGS from the MIDI files found on queststudios.com.

All data files from PC, Amiga and Atari ST versions collected. MIDI files collected and converted to IIGS native MIDI Synth format.

Snatcher

Using HyperCard as a development platform, recreate the Sega Mega CD version of Snatcher for the IIGS, removing some of the game audio, like speech.

Initial work with Michael Shopsin to setup graphics conversion and display of 320 mode graphics within HyperCard.

 

If you're working on a IIGS game or application, and you'd like to lighten the load, let me know or write in the comments section below. A burden shared is a burden halved!

If you've been following my blogs on 'What is the Apple IIGS?' you'll know I'm not a programmer. I know it's a big ask to anyone who can code on the IIGS, because of the time, effort and brainpower to make it happen. But I know I'm not the only one who'd like to play something new on our favourite Apple II.