There is not one screenshot here. Every picture is drawn by repeating what the cartridge does: video memory is rebuilt with its own copies and then the calls that paint each thing are replayed. They are the pieces the routines draw, not screens of anyone playing. Everything else —the listing and the numbers— comes from the binary and is reproducible with make.
INIT writes jp 0x4038 into the H.KEYI hook and drops into a two-byte jr $ at 0x40A7. That empty loop is the main program: from then on everything —the sound, the controls and one step of the game— happens inside the interrupt, one step per frame.
And because the game is the interrupt, it needs a lock: 0xE005. If a step takes longer than a frame, the next interrupt plays the music and leaves without running anything else, so the game slows down but the music never breaks.
callTo jump to a computed address, 0x40A9 does pop hl and uses the return address: the table of words is packed right behind the call itself. It never returns. Five tables work that way, from the state of the game to what the player is doing.
The routine that draws the scenery, 0x5F65, does the same with arguments: the six bytes following its call are two pointers and a video address, and the push hl hands control back just after them. It is called nineteen times, four of them to write colours rather than tiles.
There is no map. The screen is a counter, 0xE054, stepped up or down by one —and on passing 255 it drops to 56—, and what is in it comes out of two thirty-two byte tables: one for the fixed obstacles and one for the moving ones, indexed by that counter modulo 32.
On top of that the stage edits the pair: stage 1 loses the spiders and the bee, stage 3 the bee, and every screen whose number ends in 0, 4 or 8 comes out empty. The ones ending in 0 are the finishing lines, and they carry the CHILD PARK sign.
There is no fall damage anywhere. There is one byte, 0xE13A, written when you press the jump button: the height you jumped from, plus sixteen. From the ground, that is the ground.
But jump from one of the middle water-jet planks and it keeps that plank's height with nothing added, and from then on landing sixteen or seventeen points below it kills you, wherever you are on the screen. The very same landing is harmless or fatal depending on where the jump started.
There is no vertical speed in the cartridge. A jump is a list of deltas between a 0xFE and a 0xFF, walked one way subtracting —going up, less and less— and the other way adding. The 0xFF turns it round and the 0xFE ends it.
The normal jump is sixteen bytes: 4 4 3 3 3 3 2 2 2 2 1 1 1 1 0 0. Thirty-two pixels of rise, sixteen frames up and sixteen down, and the fall is the rise read the other way because it is the same bytes.
At 0x447E, the tile codes being the ASCII of the letters: ALL STAGE CLEAR, PROGRAM A.H Y.I, SOUND Y.O, CG R.S C.K. No full names: initials.
They are painted in one place only, 0x445B, when the stage counter wraps from 99 back to 00. Apart from that, nothing in the cartridge is signed except the KONAMI 1984 on the title screen and at the foot of the scoreboard.
Each of these pictures is a routine of the cartridge replayed outside it: the tiles are loaded the way the ROM loads them and then whatever paints them is called, with its own pointers and its own video addresses. Under each caption is the address of the routine that draws it.