Not one capture here. Every picture is drawn from the bytes of the ROM, by running in Python the very same decompressors, figure builders and sprite painters the Z80 runs, and then checked byte for byte against openMSX's VRAM: the eight screens dumped from the emulator —the intro, the title and the six rings— come out with zero differences in colour (6,144 bytes), patterns (6,144) and the 768 tiles of the screen, and on the first bout in the two boxers' figures as well. The listing and the numbers are reproducible with make, and reassembling gives back the ROM byte for byte.
The names come from a table of six pointers at 0x5661: RED·WOLF, M.B.ALLI, MOAI·KING, SANCHESS, CHINA·KHAN and MOAI·Jr. The figures, though, come from a table of three words at 0x52C9 —0x825C, 0x9670 and 0xABB4— which 0x4F8D indexes with (0xE207) & 3.
And still the six look different: every opponent figure carries one piece more than it declares —0x5005 does an inc b on the opponent's turn— and 0x5034 only paints it in the second round: for SANCHESS instead of RED WOLF's head (the hair down to the neck), for CHINA KHAN on top of M.B.ALLI's (the pigtail) and for MOAI Jr. instead of MOAI KING's empty sprite. And only the moai gets colour 4 turned into 0x0C by 0x526F and 0x51BE: blue into green. Checked against the emulator's VRAM, sprites included, at zero.
When a punch ends, 0x49BC adds to whoever threw it what the table at 0x6854 says —3, 2, 1 and 1—, and the punch that hurts the other most (0x6850: 12, 10, 9 and 2) is also the one that tires you most. Both tables run in the same order.
And the punch has a window: 0x49FB loads 0xC0 into (0xE24C) or (0xE24D), and 0x4CCF spends it with one srl per frame. Of the two bits, carry only comes out on the seventh and eighth frame: outside that the punch cannot land.
(0xE21E) and (0xE21F) do not add up points: they add up faults. One for carrying three damage levels more than the other, one for having landed fewer punches, and twice whatever (0xE23E) or (0xE261) says. At the end 0x4ECD does 10 - faults and raises both marks together until one reaches ten. It is the ten-point must system of real boxing.
At 0xBFF0, behind the filler, sit the title in katakana backwards, the length (13), the catalogue number in BCD (0x36) and 0xAA: RC-736 and コナミのボクシング. Finding the format is Manuel Pazos's work; here it is only read.
And at 0x4010 there is a second header "AB" with 07 36 behind it: the one the Konami Game Master reads from the other slot. With this one, eight cartridges in the series carry it.
With a single player, the boxer on the left is driven by decide_la_maquina (0x4A6B) and the human is the one on the right, the one wired to port 1 and the cursor keys. Three independent things say so: when they are placed (0x49FE) the one at 0xE232 gets column 22 and the one at 0xE255 column 2; when walking, one closes in by adding and the other by subtracting; and the machine closes in to the right (0x4A83) and backs off to the left (0x4B39), which is what the left-hand corner calls for.
In scene 2 —the attract match— the right-hand boxer is driven by the Z80's R register (0x4836): both of them play on their own.
The round timer is not a binary counter: it is the four tiles from (0xE212) to (0xE215), in ASCII, which 0x5798 dumps to row 1, column 14. They count down from the end; when the units wrap from '0' to '9' they borrow from the tens, and when the tens wrap from '0' they go back to '5'. It starts at 3:01, which after the first tick reads 3:00.
The same screen six times, built from the ROM with what changes on each: the name from the table at 0x5661, the figure from the one at 0x52C9 and, on the second round, the colour swap at 0x526F. Not one is a capture, and all six come out with zero differences against the emulator's VRAM.
Under each picture is where it comes from and what is on it.