What you've always wanted, a poorly done FF7 clone for the Apple II.
Yes, I'm using the 40x40 15-color Low-resolution graphics mode of the Apple II.
This means the game could in theory run on the original Apple II released
in 1977 (if you had been fabulously rich enough to populate all 48k of RAM).
Again, this is more of a demo than a game. I was putting together
ym5 music files for my
chiptune player and came across some
FF7 sheet music for "Highwind Takes to the Skies" and "Still More Fighting".
And as often happens, one thing leads to another.
Demo showing updated speeds as well as some discussion of the optimizations
Demo of the Mode7 Flying code:
How it Works
It's coded up in 6502 assembly this time. Which is a pain, especially
if you are trying to operate on 16-bit values.
The sound routine is the famous
Electric Duet routine made by Paul Lutus.
Getting pretty sound of an Apple II is hard, as you are more or less
bitbanging a speaker from the CPU. No SID chip or programmable timer
The sound files are made with a custom tracker I made for my AY-3-8910
chiptune player (as you could get AY-3-8910 based soudcards for the
Be sure you have SDL-1.2-devel installed.
On Debian something like apt-get install libsdl1.2-dev
cd into the gr-sim directory, run make,
then run ./tfv
Directions / Key Bindings
Press "H" for help.
Arrows and W/A/S/D move you.
Z/X speed up / slow down when flying.
Space is emergency brake.
Return (Enter) for action (landing, activating, entering)
M brings up the world map
I brings up the inventory
Sorry, this is a semi-autobiographical game and there are a lot of
inside jokes from my undergrad and high school years (roughly 1995-1998).
Many many years ago, a group of us lived deep in the basement of
One of the roommates (who is now fairly prominent at Firaxis) was not
an Engineering/CS major and thus had time to play video games. So we lived
vicariously through him as he played through FF7. A picture of me as a FF7
character was drawn on a whiteboard, and that got scanned in and is the basis
for the character in this particular version.
This project has gotten out of control. I thought it would take maybe
a week or two like my previous Apple II games
but no, this is much
26 November 2017
Took the Mode7 code to 40x40 graphics. This killed the framerate.
With much heroic action, including a lot of self-modifying code, I got
it back up to 5fps again.
25 November 2017
Optimized the Mode7 code from 5fps to 9fps.
Most of the pain was using an optimized multiply routine that sped up
16-bit x 16-bit multiplies from 700cycles to 200 cycles.
18 November 2017
Got the worldmap code going in the Apple assembly code.
9 October 2017
Got the Mode7 code going well enough to record a demo.
We won't talk about the mess trying to get both kdenlive, vokoscreen,
and wine32 installed and working on Debian Sid. Did get that sorted
but then libreoffice had stopped working.
7 September 2017
Was stuck the last 2 weeks trying to get a signed 16x16 multiply
working. May have finally got it going.
23 August 2017
Have the mode7 flying and graphics more or less acceptable.
I'm not sure how it will translate to 6502. Need to put together
some fixed point math routines.
17 August 2017
More or less got simple Mode7 type flying going.
16 August 2017
Start making the code use page flipping on Apple II. A big pain.
12 August 2017
Start moving the C code to use page flipping.
11 August 2017
Add collision detection on world map. Doesn't work very well.
22 July 2017
Info screen with stats now works.
20 July 2017
Add menu support.
25 June 2017
Port opener to 6502 assembly. Flickers, need to make it use
page flipping. Also slower framerate than I would have hoped.
17 May 2017
Added text mode support to emulator.
12 May 2017
6502 sprite routines sort of working.
6 May 2017
RLE low-res graphics loaded. Properly skips the address windows
in the graphics/text display address maps.