Time Pilot is a multidirectional shooter arcade video game designed by Yoshiki Okamoto and released by Konami in 1982. While engaging in aerial combat

Search code, repositories, users, issues, pull requests...

submited by
Style Pass
2024-11-23 18:30:04

Time Pilot is a multidirectional shooter arcade video game designed by Yoshiki Okamoto and released by Konami in 1982. While engaging in aerial combat, the player-controlled jet flies across open airspace that scrolls indefinitely in all directions.

Players assume the role of a pilot of a futuristic fighter jet trying to rescue fellow pilots trapped in different time eras. In each level, players battle enemy aircraft and then a stronger aircraft. Players' fighter jet is in the center of the screen at all times. Players eventually battle a mothership of the time period they are in; once the mothership is defeated, they move onto the next time period. Parachuting pilots will occasionally appear, and award players points if collected.

This repo contains versions and ports of Time Pilot that I made for modern and vintage computers. In 2021 I started making a version for the Apple IIgs in 65816 assembly language. I had the ui, high scores, game flow, shooting, parachute, bosses and core rendering all done. It was at the point where I needed to make the enemy AI that I stopped. At the end of 2023 I decided I wanted to get back to it. I thought going through the 65816 code and writing it in C might be a good exercise to help me remember what I had done.

After I finished that task, I wrote the AI all in C as well. The C code is a little odd, since it is in many ways a direct translation of the 65816 to C so lots of global variables - everything I had in zero page, for example. Also, the Apple IIgs has only one frame buffer, so the only way to make this game is to "race the beam" (erase and redraw the screen right after the vertical CRT beam has drawn that part of the screen, and before that beam comes round to update that part of the screen) and some remnants of this is left in the C code, either directly as something called scanLine but also through an erase and draw array system. It doesn't hurt anything; it will just seem weird and out of place to anyone looking at the code. Lastly, the game is 16-bit (almost exclusively uses int16_t or uint16_t).

Leave a Comment