The images on this site are not captures, but the emulator does get used: to check them. The difference matters. A capture proves the game runs; dumping the VRAM and comparing it against what tools/graficos.py draws proves the format has been understood.
Two Tcl scripts for openMSX, without a single breakpoint: the dumps go by emulated clock, so they repeat.
tools/omsx_vram.tcl six dumps of the start-up, out to 12 s
tools/omsx_juego.tcl eight dumps with the game running, from 14 to 45 s
Each one saves the VRAM's 16,384 bytes, the eight VDP registers and a screenshot.
python3 tools/graficos.py holeinone.rom 0x8000 comprueba work/omsx
On the title screen, of the 13,664 bytes in the four tables 13,655 match. The nine that differ are the scoreboard digits on rows 1, 2, 3, 6 and 7 - the TOP and the stroke counts - which the game writes as it plays and which come from no table in the cartridge.
From the game itself come six dumps in which the 480 cells of the course are identical to the ones the script interpreter draws, hole by hole: 2,880 cells in a row without one difference. And with the game running, the pattern and colour tables are still exactly the title's, all 12,288 bytes.
02 E2 06 FF 03 36 07 01
The sixth cleared one thing up: R6 = 0x07 puts the sprite patterns at 0x3800, so the 608 bytes 0xBE0D decompresses there are the game's nineteen 16x16 sprites.