The end of January has past, and thus came the end of another RetroChallenge event. As usual there were a number of interesting projects started, several completed, and a few derailed along the way. Count my port of Fahrfall to the Apple II in the completed category! Of course, no software is ever finished... :-)
Alpha Release
I want to make a binary available for my Apple II version of Fahrfall, but my "real world" knowledge of using an Apple II is still lacking in several ways. One of the things I don't know how to do is making disk images! In fact, I'm not even sure what sort of binary format is needed for an Apple II machine language program to be loaded from diskette...
While developing Fahrfall, I have been using the built-in monitor program on the Apple II in conjunction with a Super Serial Card and the "IN #2" and "PR #2" commands in BASIC. I used a 6502 assembler running on my Linux laptop to generate the machine code for Fahrfall, and I used a script to convert the binary output from the assembler into a series of monitor commands that I could send over the serial port. I am now making this file available as "fahrfall.txt" in the directory below:
http://www.tuxdriver.com/download/fahrfall/apple2/alpha-1/
In order to load the program, start the monitor (CALL -151 at the BASIC prompt) and upload the file through the serial port (assuming that you have already done the "IN #2" and "PR #2" as described above). Once the upload is complete, start the program executing at location $0C00 (C00G at the monitor prompt). In order to play with a joystick, just press the joystick button to start the game and use the joystick to move left and right. If you want to play with a keyboard, just press the spacebar to start the game and use the "open apple" and "closed apple" keys for left and right.
A Tale Of Two Platforms
At this point, I am tempted to make some comparisons between the CoCo and the Apple II and/or between the 6809 and the 6502. Instead, I'm going to avoid feeding the trolls and just say that both machines have (sometimes hidden) strengths and (often obvious) weaknesses that probably influenced the types of software that were historically available on each machine. There are differences between the CoCo and Apple II versions of Fahrfall, many of which are due to the strengths and weaknesses of the respective platforms. I hope that both versions feel like "native" games to the users of those platforms, as long as that doesn't interfere with making Fahrfall fun!
Moving Forward
As for what is next, that is hard to say. I like the colorful, moving background in the CoCo version of Fahrfall and I would love to bring something like that to the Apple II version, if possible. Some amount of music might be a nice addition to the Apple II version as well. Plus, there might be a better way to handle keyboard input? I'm not sure...
For some time I have wanted to go to KansasFest, a yearly Apple II convention. By all reports it is a great event, but my limited Apple II experience made me feel like too much of an outsider to be sure of having a good time. Now that I have an Apple II version of Fahrfall, at least I would have something to discuss with other KansasFest attendees! So, this may be the year I make the trip.
Anyway, I guess that is all I've got for now. I would like to thank the organizers of the RetroChallenge event as well as all of the other participants. As usual, the past month proved to be a great learning experience, a source of great reading material, and an excuse to have some good retro-fun. I hope these events keep coming until the end of time, and I intend to be involved whenever possible. I suspect that you, Dear Reader, feel the same way! So as alway, I expect you to stay tuned... :-)
If anyone does download the code and run it, then please let me know! I would love to hear your reaction to Fahrfall on the Apple II!
ReplyDeleteThanks John. I've been following along, watching the videos and your game progress over the month. The game play is a little fast for me, but I probably would need to play it some more. I am impressed that you used the VBL on the Apple //e. It makes the the graphics flicker free. As part of my retro-challenge, I wrote a routine to do VBL detection on the earlier Apple II and Apple II+ that don't have VBL built-in. http://hoop-la.ca/apple2/2015/winterwarmup/
ReplyDeleteI think that providing the program in text format to be entered in the monitor is the way to go. Once the program was entered into memory, I saved it to disk:
BSAVE FAHRFALL,A$C00,L$C64
Fahrfall can be run later from disk:
BRUN FAHRFALL
I used to use a script, but here is a one-liner I use to put binaries into the monitor entry format:
# echo "C00:" ; hexdump -v -e '":" 16/1 "%X " "\n"' fahrfall
Thanks for that input! I figured it would be something like that BSAVE command... :-)
ReplyDeleteI like your hexdump command line. FWIW, one use for my script (which includes the address for each line) is that it makes it easier to update just a section of code (especially at the end of the program). After the program got a bit longer, full uploads got painful! :-)