There is not one screenshot here. The pictures are drawn by repeating what the cartridge does: the same bytes go up to video memory at the same addresses, and the screen is built from its own label lists. Everything else —the listing and the numbers— comes from the binary and is reproducible with make.
The five years the panel paints are at 0x4E7C, four characters each: 1910, 1940, 1970, 1984 and 2001. In the arcade that fourth era is 1982, the year of the original; this conversion changed it, even though the cartridge itself signs ©KONAMI 1983.
When the game is left alone, the joystick does not come from any random generator. 0x546B takes the R register —the memory refresh one— and uses it to pick a byte of the code from 0x5399 on; that byte goes straight into 0xE009 as if it came from the controls.
So the demo flies by reading the very program that is flying it.
The MSX can only show four sprites on a line, so Time Pilot keeps the sprites for the planes and draws the eight shots in the name table. Each slot is four bytes (0xE230): the cell, the direction and the character.
Before painting itself, each shot reads the cell it is heading for (0x557B): if what is there is not sky, it is not drawn. That way they neither overwrite each other nor cover the scenery.
The controls say which of the sixteen directions you want (0x545B), and the plane turns one step at a time until it gets there, always the short way round (0x53CE). Each direction has its own 32 bytes of artwork at 0x6F2B, and only the one in use is in video memory: it goes up as soon as it changes.
0xE01F counts from 0 to 5 and a six-entry table (0x4118) says what is due: on one frame the shots, the clouds and the plane; on another the background; on another the big machine; and on the remaining three, the enemies. Splitting it like that is what lets it move so much on an MSX1.
The bytes from 0x798B on are uploaded into two different character sets, one for the menu and one for the font. Since colour in SCREEN 2 goes per character, having the same drawing under two numbers is what allows the same alphabet in two colours without spending twice the cartridge. The digits (0x79D3) do the same.
To shut channel 2 up at once, 0x5C8F does not touch the PSG: it points the channel at the 0xFF that closes the program at 0x7E40. The channel reads the end and goes quiet on its own, the usual way.
Every era uploads its enemies’ patterns, and the biplane, the fighter and the jet each bring eight rotations. The era 3 helicopter brings 96 bytes: three drawings (0x75F2).
And that era gets exactly behaviours 5, 6 and 7, the only three that do not turn. The behaviours are handed out according to the drawings there are.
Measured in openMSX over a recorded game: 50.11% of the frame, 10.09 ms out of 20.1, with two independent methods agreeing. And the six-phase split comes out even, from 8.81 to 11.10 ms.
With the attract mode running, which fires non-stop, it goes up to 71.32%.
Other cartridges from the same house hide their catalogue number and their title in katakana at the end of the ROM, a detail documented by Manuel Pazos. There is nothing here: from 0x7F1E to the last byte there are just 226 padding bytes, all 0xFF.
Each of these pictures is the cartridge replayed outside it: the characters go up the way the ROM sends them, with their colours, and the screen is built from the same label lists. Under each caption is the address it comes from.