Das erste Spiel für den P500: PACMAN

  • Pacman ist hier: https://github.com/vossi1/pm500


    Fort läuft auch im Rasterinterrupt.

    Das Spiel ist übrigens, wie auch Pacman, vom Atari 800 portiert worden.

    Auf den Ataris läuft es deutlich besser, da man das Antic-Programm nur ändern muss um den passenden Ausschnitt aus der map auszuwählen. Der Antic erledigt das also quasi in Hardware.

    Auf dem C64 muss kontinuierlich Map-Ausschnitt in den Bildschirmspeicher kopiert werden. Das geht nur durch selbstmodifizierten code in akzeptabler Zeit. Allerdings zuckt das Bild deshalb immer noch gelegentlich.


    dmdcalc:


    ldx #16 ; playfield lines to calc

    ldy #1 ; lda map... address parameter offset

    clc


    dmclclp:


    lda adr1_i

    sta dmmadr,y

    lda adr1_i+1

    sta dmmadr+1,y

    tya

    adc #6 ; calc next lda instr

    tay

    inc adr1_i+1

    dex

    bne dmclclp


    ; copy screen

    ldx #39


    dmmadr:


    lda map+$000,x ; only dummy address - will be calculated in game!

    sta play_scrn+3*40,x

    lda map+$100,x

    sta play_scrn+4*40,x

    lda map+$200,x

    sta play_scrn+5*40,x

    lda map+$300,x

    sta play_scrn+6*40,x

    lda map+$400,x

    sta play_scrn+7*40,x

    lda map+$500,x

    sta play_scrn+8*40,x

    lda map+$600,x

    sta play_scrn+9*40,x

    lda map+$700,x

    sta play_scrn+10*40,x

    lda map+$800,x

    sta play_scrn+11*40,x

    lda map+$900,x

    sta play_scrn+12*40,x

    lda map+$a00,x

    sta play_scrn+13*40,x

    lda map+$b00,x

    sta play_scrn+14*40,x

    lda map+$c00,x

    sta play_scrn+15*40,x

    lda map+$d00,x

    sta play_scrn+16*40,x

    lda map+$e00,x

    sta play_scrn+17*40,x

    lda map+$f00,x

    sta play_scrn+18*40,x

    dex

    bpl dmmadr

  • Bist Du mit der Portierung von Fort Apocalypse auf den P500 schon weitergekommen?

    Was?

    Boah, echt?


    Eines meiner Lieblingsspiele!


    Hab es 20 Jahre nicht mehr gespielt.

    Aber heuer im Frühling, Spiel gestartet, Mission beendet, beim ersten Versuch ... :)