Kategorier

Head driver på MZ-800

Den første computer jeg fik adgang til var en MZ-800, og jeg husker et specifikt spil. Det kunne være fedt at undersøge, om der egenligt var flere baner end de tre jeg kan huske, da spillet var ret svært.

Man kører rundt på et gitter, og skal farvelægge hele området uden at blive ramt af et par andre, som også kører på samme gitter. Når hele gitteret er farvelagt, går man videre til næste bane.

Efter at have gennemsøgt nettet i en times tid, lykkedes det at finde en MZ-800-emulator, som kan bruges på Linux, og også et bibliotek af en spilsamling for MZ-800 og MZ-700. Heldigvis var der screenshots af spillene, da jeg ikke kan huske hvad spillet hed. Det viser sig at hedde “Head Driver”.

Spillet booter let op i emulatoren, og efter et par forsøg på at gennemføre første bane igen efter 30 år, finder jeg hurtigt ud af at det kommer til at tage lang tid. Emulatoren har dog et par medfølgende værktøjer, som blandt andet kan dumpe indhold af ram til en fil. Ved at dumpe ram før og efter der er brugt et liv, kan der tages en hurtig søgning efter forskelle i ram – specielt hvor en byte skifter til det nye antal liv til rådighed. Antallet af liv findes således på offset 0x6244, og ved at rette dette til 0xFF i det kørende spil får man 255 liv.

Herefter er det trivielt at gennemføre alle banerne, også selv om man dør en masse gange. Med mere tid, kunne det være interessant at finde det tjek i koden, som afgør om man er ramt ind i en fjende. Det kunne så erstattes med en NOP eller et ubetinget hop i stedet, og derved ville man være udødelig. Det må blive en anden gang.

Herunder er alle banerne. Der er faktisk kun de tre jeg husker, hvorefter spillet hopper til første bane igen, men nu med 3 fjender i stedet for to. Der kommer ikke flere fjender herefter.

Spillet kan også ses i aktion på youtube. Bemærk at dette er med en anden emulator, som ikke håndterer specielle tegnsæt korrekt. Derfor bliver grafikken ikke den samme. Det ses specielt på fjenderne, samt statusteksterne i bunden af skærmen.

Første bane
Anden bane
Tredje bane
Første bane, anden omgang
Anden bane, anden omgang
Tredje bane, anden omgang