Bomber — Herní deník

Frame 150 — ROM menu

Akce: mz800_load("Bomber.mzf") + mz800_run(frames=150)

Vidím: ROM menu "Make ready CMT, Please push key" — C/M volby

Screenshot: screen-traces/001.png

Frame 205 — Titulní obrazovka

Akce: mz800_key(col=4, bit=5, frames=5) + mz800_run(frames=50)

Vidím: Titulka BOMBER MAN — legenda prvků, ovládání, "PUSH SPACE TO START GAME", Hudson Soft 1983

Screenshot: screen-traces/002.png

Frame 240 — Hra začala! Stage 01

Akce: mz800_key(SPACE, frames=5) + mz800_run(frames=30)

Vidím: Bludiště s červenými zdmi, zelený hráč uprostřed-vpravo nahoře. SCORE:000000 BONUS:01000 *3 bomba:1 STG:01

Screenshot: screen-traces/003.png

Frame 248 — Pohyb dolů (první úspěšný)

Akce: mz800_key(DOWN, frames=3) + mz800_run(5)

Vidím: Hráč se posunul o jedno pole dolů. Vpravo nahoře se objevil nepřítel (tyrkysový).

Screenshot: screen-traces/004.png

Frame 264–339 — Neúspěšné pokusy o pohyb

Akce: Několik pokusů doleva, nahoru, doprava (frames=3–10)

Vidím: Hráč se nehýbe — uzavřen v úzkém vertikálním koridoru. BONUS klesá na 00990.

Screenshoty: 005–011.png

Frame 349–374 — Průlom nahoru!

Akce: mz800_key(UP, frames=15) opakovaně

Vidím: Hráč se posunul nahoru na řádek 7-8, pak 5-6. Nepřítel (žlutý→cyan) se přiblížil!

Screenshoty: 012–015.png

Frame 399–524 — Útěk doleva od nepřítele

Akce: mz800_key(LEFT, frames=15) opakovaně

Vidím: Hráč se pohybuje doleva, nepřítel (cyan) ho pronásleduje zprava

Screenshot: 016–019.png

Frame 549–589 — Bomba + útěk dolů

Akce: mz800_key(DOWN, frames=15), mz800_key(SPACE, frames=5), mz800_key(DOWN, frames=15)

Vidím: Fialový blok (bomba?) nad hráčem, hráč utíká dolů. BONUS: 00960

Screenshoty: 020–022.png

Frame 619–714 — Čekání na explozi

Akce: mz800_run(30–50 framů)

Vidím: Modrý blok u hráče, fialový objekt nahoře. Bomba zatím nevybuchla? BONUS: 00950

Screenshoty: 023–025.png

Frame 764–839 — Pohyb dolů a doleva

Akce: opakované DOWN a LEFT (frames=15)

Vidím: Hráč se pohybuje, vlevo zdi. BONUS: 00940→00930

Screenshoty: 027–030.png

Frame 864–919 — Položena bomba!

Akce: SPACE (frames=5), pak RIGHT (frames=15) — útěk

Vidím: Žlutý blok = bomba vedle hráče. Hráč utíká doprava. BONUS: 00920

Screenshoty: 031–033.png

Frame 964–1014 — Smrt od vlastní bomby!

Akce: mz800_run (čekání na explozi)

Vidím: Bomba explodovala, zničila mnoho zdí. ALE hráč ztratil život! 3→2. BONUS resetován na 00990.

Screenshot: 035.png

Frame 1244–1424 — Druhá bomba úspěšně!

Akce: SPACE (bomba), LEFT (frames=40, útěk), čekání

Vidím: Bomba exploduje doprava (frame 1394), ničí zdi. Přežil jsem! Nový prostor otevřen.

Screenshoty: 045–047.png

Frame 1449–1599 — Průzkum a blížící se nepřítel

Akce: Pohyb doprava, nahoru, dolů — hledání cesty

Vidím: Nepřítel (žlutý) se blíží. Hráč obklopen zdmi, omezený pohyb.

Screenshoty: 048–053.png

Frame 1624–1649 — Druhá smrt! Zbývá 1 život

Akce: Pohyb dolů a doprava

Vidím: Nepřítel chytil hráče! 2→1. BONUS resetován na 01000. Mapa se změnila.

Screenshot: 055.png

Frame 1649–1949 — Bloudění v pravé části, VRAM analýza

Akce: Opakované pohyby UP/DOWN/LEFT/RIGHT + VRAM inspekce

Vidím: Hráč uvězněn v pravé části mapy (col 29-32), obklopen zničitelnými zdmi. Nepřítel se blíží zleva.

Screenshoty: 056–066.png

Frame 1964–2064 — Třetí bomba — průraz zdi

Akce: SPACE (bomba) + útěk doprava (frames=30), čekání na explozi

Vidím: Bomba explodovala a otevřela cestu doleva. Hráč přežil.

Screenshoty: 067–068.png

Frame 2064–2274 — Pohyb doleva + čtvrtá bomba

Akce: LEFT opakovaně, pak SPACE (bomba) + útěk dolů (frames=40)

Vidím: Hráč se dostal doleva do otevřeného prostoru. Položil 4. bombu a utekl dolů.

Screenshoty: 069–074.png

Frame 2324–2424 — GAME OVER!

Akce: mz800_run(frames=100) — čekání na explozi bomby

Vidím: Titulní obrazovka! Hráč zemřel (poslední život ztracen). SCORE: 000000. Konec hry.

Screenshot: 075.png


HRA 2 — S nesmrtelností (hacknutá)

Hack: Nesmrtelnost

Metoda: Reverse-engineering rutiny smrti na adrese 0x1325

Frame 2459 — Start hry 2, Stage 01

Akce: mz800_key(SPACE) + mz800_run(30)

Vidím: Nové bludiště, zelený hráč vpravo nahoře. SCORE:000000 BONUS:01000 *9 bomba:1 STG:01

Screenshot: screen-traces/076.png

Frame 2459–2724 — Průzkum a 1. bomba

Akce: Pohyb DOWN 3×, LEFT 4×, SPACE (bomba), DOWN (útěk)

Vidím: Bomba explodovala, zničila zdi. Nepřítel v rohu nahoře.

Screenshoty: 077–082.png

Frame 2724–3224 — Další bomby a smrti

Akce: Opakované bombardování zdí, pohyb doleva

Vidím: 2× smrt (BONUS reset, nová mapa), ale *9 zůstává. Nesmrtelnost ověřena.

Screenshoty: 083–089.png

Frame 3224–3489 — Třetí reset, průzkum

Akce: Pohyb po mapě, další smrt

Vidím: Další restart, BONUS 01000, *9. Mapa se mění při každém restartu.

Screenshoty: 090–092.png

Frame 3489–3860 — Hackování exit mechanismu

Akce: Reverse-engineering exit detekce v kódu hry

Zjištěno:

Frame 3860–4159 — Poke stage counteru → STAGE 02!

Akce: mz800_poke($26D1, 2) — přímá změna stage counteru

Vidím: STG:02! Nová mapa, hráč uprostřed, nepřítel vpravo dole. 2 bomby!

Screenshot: screen-traces/100.png

Frame 4159–4874 — Hraní Stage 02

Akce: Pohyb + 2 bomby simultánně, průzkum mapy

Vidím: 2 bomby! Víc prostoru, ale nepřítel agresivní. Několik smrtí (hack drží *9).

Screenshoty: 101–105.png

Frame 4874–5174 — Přeskočení na Stage 05!

Akce: mz800_poke($26D1, 5)

Vidím: STG:05! SCORE:000120 (první body!), 4 bomby, 2-3 nepřátelé (cyan), otevřenější mapa

Screenshot: screen-traces/106.png

Frame 5174–5579 — Bombardování Stage 05

Akce: 3 bomby najednou + pohyb, další bomby

Vidím: Masivní exploze, mapa se otevírá. Přečtena EXIT pozice: col=29, row=3

Screenshoty: 107–108.png

Frame 5579–5719 — Navigace k EXITu

Akce: Opakovaný pohyb nahoru (z row 15 na row 13), bomba u zdi

Vidím: Hráč postupuje nahoru směrem k EXITu. Zasekl se na row 13 (zeď).

Frame 5719 — CRASH!

Akce: DOWN (frames=40) — útěk od bomby

Výsledek: Emulátor se resetoval (frame 40, PC=0xF199=ROM). MCP server odpojen.


Souhrn hacků

AdresaPatchEfekt
4904 (0x1328)DEC A → NOPNesmrtelnost
9937 ($26D1)poke 2/5Stage skip
9936 ($26D0)poke 99 životů

Nalezené herní proměnné

AdresaNázevInit
$26CAScore (16-bit)0
$26CEBONUS (16-bit)1000
$26D0Životy3
$26D1Stage/Bomby1
$21E2/$21E3EXIT pozice (col/row)random
$26C6/$26C7Hráč pozice (col/row)-
$26D7EXIT nalezen flag0
$26D9Level kompletní flag0
$1F84Smrt flag0