Jump to content
IGNORED

Game Druid flashes on NTSC machines. Is a fix available?


a8isa1

Recommended Posts

  • 3 weeks later...

So, with the fourth soft sprite active we're over available ntsc vbl time...

 

Profiler >

$32de 56% in-game vcount loops
$356c 75% includes call to _3664 proc
$3664 64% proc includes calls to the multiple soft sprite procs
$33ec 58% sw spr update

 

(original unaltered xex is attached)

 

 

_3206        ldx #$31
        ldy #$4f
        lda #$06
        jsr setvbv

        lda #$c0
        sta nmien

        jsr $482b    ; proc: wipe pmg garbage

        lda #0
        sta _57a8    ;

        jsr _3e34    ;

        lda #$80
        sta nmien

        jsr _54fc    ;

        inc $fe
        lda #1
        sta audctl

        ldx #$e0
        stx audf1

        inx
        stx audf2

        lda #0
        sta $e8

_323b        ldx vcount
        cpx #$3a
        bne _323b

        lda #0
        sta wsync
        sta colbak
        sta color0
        sta color1
        sta color2
        sta color3

_3256        txa
        clc
        adc $14
        tay
        txa
        sec
        sbc $14
        sta wsync
        sta color1
        tya
        sta colbak
        dex
        lda vcount
        cmp #$75
        bne _3256

        jsr _32f6

        lda $e8
        lsr @
        lsr @
        lsr @
        lsr @
        ora #$a0
        sta audc1
        sta audc2

        lda #$20
        jsr _3b62
        jsr _3caa

        lda $14
        and #3
        bne _323b

        dec $e8
        bne _323b

        dec $fe
        jsr $4fe9
        jsr _559c

        rts

        lda #0
        sta $e0
        lda #8
        sta $e1

_32a5        ldy #$7c
_32a7        lda ($e0),y
        and #$7f
        cmp #$7f
        beq _32bc

        dey
        dey
        dey
        dey
        bpl _32a7

        inc $e1
        inc $e1
        jmp _32a5

_32bc        ldx #4
        sty $e8
_32c0        ldy $e8
        lda #$2e
        sta ($e0),y
        iny
        sta ($e0),y
        iny
        sta ($e0),y
        iny
        sta ($e0),y
        lda $e0
        clc
        adc #$80
        sta $e0
        bcc _32da

        inc $e1
_32da        dex
        bne _32c0

        rts

_32de        lda vcount        ; 56%
        cmp #$74
        bne _32ea

        sta wsync
        beq _32f2

_32ea        cmp #$75
        beq _32f2

        cmp #$76
        bne _32de

_32f2        sta wsync
        rts

;---------------------------------------

_32f6        lda #0
        sta colbak
        sta hposp0
        sta hposp3
        sta hposm0
        sta hposm1
        sta hposm2
        sta hposm3
        lda $22f
        sta dmactl
        lda $26f
        sta gtictl

        lda #$80
        sta chbase

        lda $d000    ;m0pf
        ora $d001    ;m1pf
        sta $57b8

        lda $d005    ;p1pf
        ora $d006    ;p2pf
        sta $57b7

        lda #$b4
        sta color0

        lda #$b8
        sta color1

        lda #$bc
        sta color2

        lda #$8a
        sta color3

        lda $57a2
        bne _339b

        lda $57a1
        bne _3366

        lda $579b
        bmi _3366

        lda $14
        ora #4
        sta $81

        eor #$fb
        sta $83

        lda random
        ora #4
        sta $84
        bne _3375

_3366        lda $5782
        sta $81
        lda $5784
        sta $83
        lda $5785
        sta $84

_3375        lda $5797
        beq _3391

        lda $14
        and #$30
        bne _3382

        lda #$20
_3382        sta $5796
        lda random
        and #$f
        ora #$a
        ora $5796
        bne _3394

_3391        lda $5783

_3394        sta $82
        lda $5781
        sta $80

_339b        lda $d008    ;m0pl
        ora $d009    ;m1pl
        and #2
        bne _33b8

        lda $d008    ;m0pl
        ora $d009    ;m1pl
        and #8
        beq _33b8

        jsr $450c    ;
        jsr $3c6c    ;
        jsr $3c6c    ;

_33b8        sta hitclr
        lda $10
        and #$bf
        sta irqen
        inc $14

_33c4        rts

;------------------------------------------------------------------------------------

_33c5        lda $94,x        ; sw spr spawn
        lsr @
        tay
        lda #0
        ror @
        clc
        adc $90,x
        sta $d8
        sta $dc
        pha
        tya
        clc
        adc #8
        sta $d9
        clc
        adc #1
        sta $dd
        pla
        clc
        adc #$80
        sta $da
        lda $d9
        adc #0
        sta $db
        rts

;---------------------------------------------------------------------------------------

_33ec        ldx $b3            ; sw spr update
        lda $56ff,x
        sta $e6
        lda $5703,x
        sta $e7
        lda $5797
        beq _3410

        lda $14
        and #2
        lsr @
        tay
        lda $56cb,y
        sta $e0
        lda $56cd,y
        sta $e1
        jmp _345b

_3410        ldy $5786,x
        cpy #2
        bcc _3424

        lda $56c1,y
        sta $e0
        lda $56c5,y
        sta $e1
        jmp _345b

_3424        tya
        beq _3429

        lda #$60
_3429        sta $e2
        ldy $8c,x
        lda $5717,y
        sta $e0
        lda $571b,y
        sta $e1
        ldy $a0,x
        lda $e0
        clc
        adc $571f,y
        sta $e0
        lda $e1
        adc $5727,y
        sta $e1
        lda $e0
        clc
        adc $578e,x
        bcc _3452

        inc $e1
_3452        clc
        adc $e2
        sta $e0
        bcc _345b

        inc $e1

_345b        lda #8
        sec
        sbc $88,x
        sta $b0
        clc
        adc #$10
        sta $b1
        ldx #0
        stx $b2

_346b        stx $e2        ; $b2 lp

_346d        lda $b2        ; lp 0-8
        asl @
        asl @
        clc
        adc $b3
        tay
        lda #0
        sta $e5
        lda $b4,y
        and #$7f
        asl @
        rol $e5
        asl @
        rol $e5
        asl @
        rol $e5
        sta $e4
        lda $e5
        adc #$84
        sta $e5
        ldy #0

_3491        lda $e2
        cmp $b0
        bcc _349b

        cmp $b1
        bcc _34a7

_349b        lda ($e4),y
        sta ($e6),y
        iny
        lda ($e4),y
        sta ($e6),y
        jmp _34ba

_34a7        lda ($e0,x)
        ora ($e4),y
        sta ($e6),y
        iny
        lda ($e0,x)
        ora ($e4),y
        sta ($e6),y
        inc $e0
        bne _34ba

        inc $e1

_34ba        iny
        inc $e2
        inc $e2
        cpy #8
        bne _3491

        tya
        clc
        adc $e6
        sta $e6
        bcc _34cd

        inc $e7

_34cd        inc $b2
        lda $b2

        cmp #3
        beq _346b        ; reset $e2

        cmp #6
        beq _346b        ; reset $e2

        cmp #9
        bne _346d        ;

        rts

;----------------------------------------------------------------------------

_34de        ldy #0            ; sw spr
        lda $b4,x
        sta ($d8),y
        lda $b8,x
        sta ($da),y
        lda $bc,x
        sta ($dc),y
        iny
        lda $c0,x
        sta ($d8),y
        lda $c4,x
        sta ($da),y
        lda $c8,x
        sta ($dc),y
        iny
        lda $cc,x
        sta ($d8),y
        lda $d0,x
        sta ($da),y
        lda $d4,x
        sta ($dc),y
        rts

;----------------------------------------------------------------------------

_3507        ldy #0            ; sw spr
        lda ($d8),y
        sta $b4,x
        lda $a8,x
        sta ($d8),y
        lda ($da),y
        sta $b8,x
        lda $a8,x
        clc
        adc #1
        sta ($da),y
        lda ($dc),y
        sta $bc,x
        lda $a8,x
        clc
        adc #2
        sta ($dc),y
        iny
        lda ($d8),y
        sta $c0,x
        lda $a8,x
        clc
        adc #3
        sta ($d8),y
        lda ($da),y
        sta $c4,x
        lda $a8,x
        clc
        adc #4
        sta ($da),y
        lda ($dc),y
        sta $c8,x
        lda $a8,x
        clc
        adc #5
        sta ($dc),y
        iny
        lda ($d8),y
        sta $cc,x
        lda $a8,x
        clc
        adc #6
        sta ($d8),y
        lda ($da),y
        sta $d0,x
        lda $a8,x
        clc
        adc #7
        sta ($da),y
        lda ($dc),y
        sta $d4,x
        lda $a8,x
        clc
        adc #8
        sta ($dc),y
        rts

;---------------------------------------------------------------------------- _356c

        ldx #3        ; proc .. 75% cpu
_356e        lda $a0,x
        bmi _357b

        jsr _33c5
        jsr _34de
        jsr _35b9

_357b        dex
        bpl _356e

        jsr _3a71

        ldx #0
_3583        lda #0
        sta $579c
        jsr _3664    ; 64% ... includes soft sprite proc calls above
        ldx $b3
        lda $579c
        beq _3595

        jsr _38a8

_3595        inx
        cpx #4
        bne _3583

        ldx #3
_359c        lda $a0,x
        bmi _35b5

        lda #0
        sta $579c
        jsr _3a15
        jsr _35d7
        ldx $b3
        lda $579c
        beq _35b5

        jsr _38a8

_35b5        dex
        bpl _359c

        rts

;----------------------------------------------------------------------------

_35b9        lda $14            ;
        and #2
        bne _35d6

        lda $5786,x
        clc
        adc $578a,x
        bpl _35ca

        lda #1
_35ca        cmp #6
        bne _35d3

        lda #$ff
        sta $a0,x
        rts
;---------------
_35d3        sta $5786,x

_35d6        rts
;---------------
_35d7        stx $b3
        lda $a0,x
        bpl _35de

        rts
;---------------
_35de        lda $98,x
        beq _35ed

        bmi _35ea

        jsr _3761
        jmp _35ed

_35ea        jsr _37b8

_35ed        lda $9c,x
        beq _35fc

        bmi _35f9

        jsr _36a9
        jmp _35fc

_35f9        jsr _370a

_35fc        lda $98,x
        ora $9c,x
        bne _3613

        lda $5797
        bne _362f

        lda $57b9
        bpl _3613

        lda $5786,x
        cmp #2
        bcc _362f

_3613        lda $98,x
        beq _3621

        bpl _361d

        lda #0
        beq _362b

_361d        lda #$30
        bne _362b

_3621        lda $9c,x
        bpl _3629

        lda #$48
        bne _362b

_3629        lda #$18

_362b        sta $578e,x

        rts
;---------------
_362f        lda $5797
        beq _3652

        sta $9c,x
        ldy $5786,x
        cpy #2
        bcs _364a

        sta $578a,x
        lda #2
        sta $5786,x
        lda #$1f
        sta $57cf

_364a        txa
        pha
        jsr _3bdc
        pla
        tax
        rts
;---------------
_3652        lda #1
        sta $a4,x
        lda $14
        and #6
        bne _3663

        txa
        pha
        jsr _3bdc
        pla
        tax
_3663        rts

;---------------------------------------------------------------

_3664        stx $b3        ; proc _3664 64% cpu ................
        lda $a0,x
        bpl _366b

        rts
;---------------
_366b        lda $5797
        bne _3679

        lda $14
        and #$f
        lsr @
        cmp $b3
        beq _369f

_3679        lda $98,x
        beq _3688

        bmi _3685

        jsr _384f

        bcc _3688

        rts
;---------------
_3685        jsr _387a

_3688        lda $9c,x
        beq _369f

        bmi _369c

        jsr _382f
        lda $5797

        beq _369f

        jsr _382f
        jmp _369f

_369c        jsr _383e

_369f        jsr _33c5    ; sw spr calls
        jsr _3507
        jsr _33ec

        rts

;-------------------------------------------------------------------------

_36a9        lda $5797
        bne _36b4

        lda $88,x
        cmp #2
        bne _3709

_36b4        lda $ee
        sec
        sbc $90,x
        clc
        adc #2
        cmp #6
        bcs _36cc

        lda $ef
        sec
        sbc $94,x
        cmp #4
        bcs _36cc

        jmp _3819

_36cc        lda $5797
        bne _3709
        inc $94,x
        jsr _33c5
        dec $94,x
        ldy #1
        lda ($dc),y
        jsr $444e
        bcs _36fc

        lda $8c,x
        beq _36ed

        iny
        lda ($dc),y
        jsr $444e
        bcs _36fc

_36ed        lda $8c,x
        cmp #3
        beq _3709

        ldy #0
        lda ($dc),y
        jsr $444e
        bcc _3709

_36fc        lda #0
        sec
        sbc $9c,x
        sta $9c,x
        jsr _3893
        inc $579c

_3709        rts
;-----------------------------
_370a        lda $88,x
        cmp #8
        bne _3760

        lda $ee
        sec
        sbc $90,x
        clc
        adc #2
        cmp #6
        bcs _3728

        lda $94,x
        sec
        sbc $ef
        cmp #4
        bcs _3728

        jmp _3819

_3728        dec $94,x
        jsr _33c5
        inc $94,x
        ldy #1
        lda ($d8),y
        jsr $444e
        bcs _3753

        lda $8c,x
        beq _3744

        iny
        lda ($d8),y
        jsr $444e
        bcs _3753

_3744        lda $8c,x
        cmp #3
        beq _3760

        ldy #0
        lda ($d8),y
        jsr $444e
        bcc _3760

_3753        lda #0
        sec
        sbc $9c,x
        sta $9c,x
        jsr _3893
        inc $579c

_3760        rts
;-----------------------------
_3761        lda $8c,x
        cmp #3
        bne _37b7

        lda $ee
        sec
        sbc $90,x
        cmp #5
        bcs _377f

        lda $ef
        sec
        sbc $94,x
        clc
        adc #3
        cmp #7
        bcs _377f

        jmp _3811

_377f        lda $5797
        bne _37b7

        jsr _33c5
        ldy #3
        lda ($da),y
        jsr $444e
        bcs _37aa

        lda $88,x
        cmp #8
        beq _379d

        lda ($dc),y
        jsr $444e
        bcs _37aa

_379d        lda $88,x
        cmp #2
        beq _37b7

        lda ($d8),y
        jsr $444e
        bcc _37b7

_37aa        lda #0
        sec
        sbc $98,x
        sta $98,x
        jsr _3893
        inc $579c

_37b7        rts
;-----------------------------
_37b8        lda $8c,x
        bne _3810

        lda $90,x
        sec
        sbc $ee
        cmp #4
        bcs _37d4

        lda $ef
        sec
        sbc $94,x
        clc
        adc #3
        cmp #7
        bcs _37d4

        jmp _3811

_37d4        lda $5797
        bne _3810

        dec $90,x
        jsr _33c5
        inc $90,x
        ldy #0
        lda ($da),y
        jsr $444e
        bcs _3803

        lda $88,x
        cmp #8
        beq _37f6

        lda ($dc),y
        jsr $444e
        bcs _3803

_37f6        lda $88,x
        cmp #2
        beq _3810

        lda ($d8),y
        jsr $444e
        bcc _3810

_3803        lda #0
        sec
        sbc $98,x
        sta $98,x
        jsr _3893
        inc $579c

_3810        rts
;-----------------------------
_3811        lda $5797
        bne _3821

        sta $98,x
        rts
;-----------------------------
_3819        lda $5797
        bne _3821

        sta $9c,x
        rts
;-----------------------------
_3821        lda $57b7
        and #4
        beq _382e

        lda #0
        sta $98,x
        sta $9c,x

_382e        rts
;-----------------------------
_382f        dec $88,x
        dec $88,x
        lda $88,x
        bne _383d

        lda #8
        sta $88,x
        inc $94,x

_383d        rts
;-----------------------------
_383e        inc $88,x
        inc $88,x
        lda $88,x
        cmp #$0a
        bne _384e

        lda #2
        sta $88,x
        dec $94,x

_384e        rts
;-----------------------------
_384f        inc $8c,x
        lda $8c,x
        cmp #4
        bne _3878

        lda #0
        sta $8c,x
        inc $90,x
        lda $90,x
        cmp #$7d
        bne _3878

        lda $5797
        beq _386e

        lda #$ff
        sta $a0,x
        sec
        rts
;-----------------------------
_386e        lda #0
        sec
        sbc $98,x
        sta $98,x
        inc $579c

_3878        clc
        rts
;-----------------------------
_387a        dec $8c,x
        bpl _3892

        lda #3
        sta $8c,x
        dec $90,x
        lda $90,x
        bne _3892

        lda #0
        sec
        sbc $98,x
        sta $98,x
        inc $579c

_3892        rts
;-----------------------------
_3893        lda $98,x
        and $9c,x
        beq _38a7
        lda random
        bmi _38a3

        lda #0
        sta $98,x
        rts
;-----------------------------
_38a3        lda #0

        sta $9c,x

_38a7        rts
;-----------------------------
_38a8        lda #0
        sec
        sbc $a4,x
        sta $a4,x
        rts
;-----------------------------
        lda $579b
        bpl _38df

        lda $57a0
        bpl _38df

        lda $5798
        bne _38c4

        lda $5797
        bne _38df

_38c4        lda $14
        and #7
        bne _38df

        lda $5797
        bne _38d6

        lda random
        cmp #$40
        bcs _38df

_38d6        ldx #3

_38d8        lda $a0,x
        bmi _38e0

        dex
        bpl _38d8

_38df        rts
;-----------------------------
_38e0        stx $b3
        lda #9
        sta $57a5
_38e7        dec $57a5
        beq _38df

        lda $5797
        beq _3904

        ldy $57a8
        lda $572f,y
        clc
        adc #1
        sta $90,x
        lda $5737,y
        sta $94,x
        jmp _395b

_3904        lda random
        and #$0f
        sec
        sbc #8
        sta _3b60
        lda $f0
        asl @
        asl @
        asl @
        asl @
        clc
        adc $ee
        clc
        adc _3b60
        sta $90,x
        bmi _38e7

        lda $86
        clc
        adc #$2a
        cmp $90,x
        bcc _38e7

        lda $86
        cmp $90,x
        bcs _38e7

        lda random
        and #7
        sec
        sbc #4
        sta _3b60
        lda $f1
        asl @
        asl @
        asl @
        clc
        adc $ef
        clc
        adc _3b60
        sta $94,x
        cmp #$40

_394a        bcs _38e7
        lda $87
        clc
        adc #$0d
        cmp $94,x
        bcc _38e7

        lda $87
        cmp $94,x
        bcs _394a

_395b        jsr _33c5
        ldy #0
        jsr _3a5d
        bcs _394a

        iny
        jsr _3a5d
        bcs _394a

        iny
        jsr _3a5d
        bcs _394a

        lda $5797
        beq _3981

        lda #0
        sta $a0,x
        sta $ac,x
        lda #1
        jmp _39f0

_3981        lda $57a8
        asl @
        asl @
        asl @
        asl @
        sta _3b60
        lda $94,x
        lsr @
        lsr @
        and #$fc
        sta _3b61
        lda $90,x
        lsr @
        lsr @
        lsr @
        lsr @
        lsr @
        clc
        adc _3b60
        clc
        adc _3b61
        tay
        lda $a0
        and $a1
        and $a2
        and $a3
        bpl _39d3

        lda $9d00,y
        beq _39b7

        cmp #2
        bne _39bb

_39b7        lda #$0c
        bne _39ce

_39bb        lda $5784
        and #$f
        clc
        adc #2
        sta _3b60
        lda random
        and #$f0
        ora _3b60

_39ce        sta $5783
        sta $82

_39d3        lda $9d00,y
        bne _39e4

        lda $5783
        cmp #$0c
        beq _39e2

        jmp _38e7

_39e2        lda #0

_39e4        sta $a0,x
        lda #2
        sta $ac,x
        lda #1
        sta $a4,x
        lda #0

_39f0        sta $9c,x
        lda #0
        sta $98,x
        sta $8c,x
        lda #8
        sta $88,x
        lda #5
        sta $5786,x
        lda #$ff
        sta $578a,x
        lda #$1f
        sta $57ce
        jsr _33c5
        jsr _3507
        jsr _33ec
        rts
;-----------------------------
_3a15        lda $5797
        bne _3a48

        lda $5786,x
        cmp #2
        bcs _3a26

        lda $57b9
        bmi _3a2d

_3a26        lda #0
        sta $98,x
        sta $9c,x
        rts
;-----------------------------
_3a2d        lda $a4,x
        bmi _3a5c
        lda $ef
        clc
        adc #1
        cmp $94,x
        beq _3a40

        bcc _3a44

        lda #1
        bne _3a46

_3a40        lda #0
        beq _3a46

_3a44        lda #$ff

_3a46        sta $9c,x

_3a48        lda $ee
        cmp $90,x
        beq _3a54

        bcc _3a58

        lda #1
        bne _3a5a

_3a54        lda #0
        beq _3a5a

_3a58        lda #$ff

_3a5a        sta $98,x

_3a5c        rts
;-----------------------------
_3a5d        lda ($d8),y
        jsr $444e
        bcs _3a70

        lda ($da),y
        jsr $444e
        bcs _3a70

        lda ($dc),y
        jsr $444e

_3a70        rts
;-----------------------------
_3a71        ldx #3

_3a73        lda $a0,x
        bmi _3a7a

        jsr _3a7e
_3a7a        dex
        bpl _3a73

        rts
;-----------------------------
_3a7e        lda $94,x
        cmp #$3c
        bne _3a87

        jmp _3b36

_3a87        lda $5786,x
        cmp #2
        bcs _3a96

        lda $579b
        bmi _3a97

        jmp _3b3b

_3a96        rts
;-----------------------------
_3a97        lda $57c1
        beq _3ad1

        lda $57bd
        bpl _3ad1

        lda $f6
        sec
        sbc $90,x
        clc
        adc #2
        cmp #6
        bcs _3ad1

        lda $f7
        sec
        sbc $94,x
        clc
        adc #3
        cmp #7
        bcs _3ad1

        txa
        pha
        jsr _3c6c
        jsr _3c6c
        lda $5797
        beq _3acc

        jsr _3c6c
        jsr _3c6c

_3acc        pla
        tax
        jmp _3b3b

_3ad1        lda $57a9
        sec
        sbc $90,x
        cmp #3
        bcs _3b0d

        lda $57aa
        sec
        sbc $94,x
        cmp #3
        bcs _3b0d

        jsr $450c
        lda $a0,x
        asl @
        clc
        adc $a0,x
        clc
        adc $57a6
        tay
        lda $ac,x
        sec
        sbc $573f,y
        sta $ac,x
        txa
        pha
        lda $573f,y
        tay
        lda $5756,y
        jsr _3b62
        pla
        tax
        lda $ac,x
        bmi _3b3b

_3b0d        lda $87
        clc
        adc #$0f
        cmp $94,x
        bcc _3b36

        lda $5797
        bne _3b24

        lda $87
        sec
        sbc #3
        cmp $94,x
        beq _3b36

_3b24        lda $86
        clc
        adc #$2c
        cmp $90,x
        beq _3b36

        lda $86
        sec
        sbc #3
        cmp $90,x
        bne _3b3a

_3b36        lda #$ff
        sta $a0,x

_3b3a        rts
;-----------------------------
_3b3b        lda $5797
        bne _3b49

        txa
        pha
        lda #$ff
        jsr _3b62
        pla
        tax

_3b49        lda #1
        ldy $5797
        beq _3b52

        lda #5

_3b52        sta $5786,x
        lda #1
        sta $578a,x
        lda #$1f
        sta $57cf
        rts
;-----------------------------
_3b60        dta $00

_3b61        dta $00

_3b62        ldx #7

_3b64        pha
        clc
        adc $5792
        sta $5792
        bcc _3b71

        inc $5793

_3b71        pla
        dex
        bne _3b64

        lda $5793
        cmp #$40
        bcc _3ba4

        sec
        sbc #$40
        sta $5793

_3b82        ldx $5794
        lda $2bd9,x
        bne _3b90
        lda #$50
        sta $2bd9,x
        rts
;-----------------------------
_3b90        cmp #$56
        bne _3b98

        cpx #$1f
        beq _3ba4

_3b98        cmp #$57
        bne _3ba1

        inc $5794
        bne _3b82

_3ba1        inc $2bd9,x

_3ba4        rts
;-----------------------------
        lda $57af
        cmp #$bf
        beq _3bd6

        inc $57af
        lda $57af
        and #1
        bne _3bd5

        lda #2
        sta $57c6
_3bbb        ldx $57b0
        lda $2b61,x
        bne _3bc9

        lda #$50
        sta $2b61,x
        rts
;-----------------------------
_3bc9        cmp #$57
        bne _3bd2

        inc $57b0
        bne _3bbb

_3bd2        inc $2b61,x

_3bd5        rts
;-----------------------------
_3bd6        lda #0
        sta $57b1
        rts
;-----------------------------
_3bdc        lda $57af
        beq _3c39

        lda $57b1
        bne _3c39

        lda $57a3
        bne _3c39

        dec $57af
        lda $57af
        and #1
        beq _3c14

        lda #2
        sta $57c7

_3bfa        ldx $57b0
        lda $2b61,x
        bne _3c07

        dec $57b0
        bpl _3bfa

_3c07        cmp #$50
        bne _3c11

        lda #0
        sta $2b61,x
        rts
;-----------------------------
_3c11        dec $2b61,x

_3c14        lda $57af
        bne _3c39

        ldx #6
        lda #0

_3c1d        sta $577a,x
        dex
        bpl _3c1d

        stx $579b
        stx $57b9
        jsr $4fe9
        lda #1
        sta $14
        ldx #3
        stx $57bb
        inx
        stx $57cc

_3c39        rts
;-----------------------------
        lda $57b2
        cmp #$bf
        beq _3c66

        inc $57b2
        lda $57b2
        and #1
        bne _3c65

_3c4b        ldx $57b3
        lda $2b89,x
        bne _3c59

        lda #$50
        sta $2b89,x
        rts
;-----------------------------
_3c59        cmp #$57
        bne _3c62

        inc $57b3
        bne _3c4b

_3c62        inc $2b89,x

_3c65        rts
;-----------------------------
_3c66        lda #0
        sta $57b4
        rts
;-----------------------------
_3c6c        lda $57b2
        beq _3ca9

        lda $57b4
        bne _3ca9

        dec $57b2
        lda $57b2
        and #1
        beq _3c9b

_3c80        ldx $57b3
        lda $2b89,x
        bne _3c8d

        dec $57b3
        bpl _3c80

_3c8d        cmp #$50
        bne _3c98

        lda #0
        sta $2b89,x
        beq _3c9b

_3c98        dec $2b89,x

_3c9b        lda $57b2
        bne _3ca9

        ldx #3
        stx $57bd
        inx
        stx $57cd

_3ca9        rts
;-----------------------------
        lda $14
        and #3
        bne _3d17

        ldx #6

_3cb2        lsr $85b8,x
        ror $85c1,x
        lsr $85b8,x
        ror $85c1,x
        ldy random
        cpy #$20
        bcc _3cd1

        lda $85b8,x
        ora #$40
        cmp #$55
        beq _3cd1

        sta $85b8,x

_3cd1        dex
        dex
        dex
        bpl _3cb2

        inc _3d18
        ldx _3d18
        cpx #3
        bne _3ce5

        ldx #0
        stx _3d18

_3ce5        lda _3d19,x
        sta $e0
        lda _3d1c,x
        sta $e1
        ldy #$47

_3cf1        lda ($e0),y
        sta $87b0,y
        dey
        bpl _3cf1

        ldx $57a8
        lda $5772,x
        beq _3d17

        ldx #$1f
        lda $14
        and #8
        bne _3d0b

        ldx #$0f

_3d0b        ldy #$0f

_3d0d        lda _3df7,x
        sta $8790,y
        dex
        dey
        bpl _3d0d

_3d17        rts
;-----------------------------

;        _3d18 -> _3e33 not disassembled

;------------------------------------------------------------------------------------

        org $3e34

_3e34        ldx #0
        ldy #$6c
        lda $57a8
        bne _3e41

        ldx #0
        ldy #$68

_3e41        stx $e8
        sty $e9
        lda #$28
        sta $e0
        lda #$85
        sta $e1

        ldy #0
_3e4f        lda ($e8),y
        sta ($e0),y
        inc $e8
        bne _3e59

        inc $e9

_3e59        inc $e0
        bne _3e4f

        inc $e1
        lda $e1
        cmp #$88
        bne _3e4f

        lda $57a8
        asl @
        asl @
        asl @
        asl @
        asl @
        clc
        adc #0
        sta $e0
        lda #$67
        adc #0
        sta $e1
        ldy #$1f

_3e7a        lda ($e0),y
        sta $8528,y
        dey
        bpl _3e7a

        jsr $3e95

        ldx $57a8
        cpx #4
        bcc _3e94

        lda $5772,x
        bne _3e94

        jsr $329d

_3e94        rts

 

 

        org $53d5

_53d5        pha            ; dli1

        lda #$c
        sta wsync
        sta color1

        mva #0 color2
        mwa #_53ef $200

        pla
        rti
;-------------
_53ef        pha

        lda #$c
        sta wsync
        sta color1

        mva #0 color2
        mva #$84 colpm0
        mva #$32 colpm1
        mva #$1a colpm2
        mva #$16 colpm3

        mva #$7c hposp0
        mva #$88 hposp1
        mva #$a1 hposp2
        mva #$b8 hposp3

        mwa #_5431 $200

        pla
        rti
;-------------
_5431        pha
        mva #0 hposp0
        sta hposp3

        mwa #_5446 $200

        pla
        rti
;-------------
_5446        pha

        lda $fd
        beq _5467    ;

        sta wsync

        lda #$a8
        sta hposp0
        sta hposp1
        sta hposp2
        sta hposp3

        mva #0 hposm0
        sta hposm1

        jmp _54ed

;---------------

_5467        lda $fe
        sta wsync
        bne _5482

        mva $80    color0
        mva $81    color1
        mva $82    color2
        mva $83    color3

_5482        mva $56c1 chbase

        lda $22f
        ora $56c2
        sta dmactl

        lda $fe
        sta wsync
        sta wsync
        bne _54a0

        mva $84 colbak

_54a0        txa
        pha
        mvx $f4 hposp3
        inx
        lda $fc
        beq _54af
        stx hposp0

_54af        txa
        clc
        adc #7
        sta hposm3

        mva #$14 colpm3

        lda $fc
        beq _54c3

        lda #$10
        bne _54c5

_54c3        lda #$3a

_54c5        sta colpm0
        mva #$84 colpm1
        mva #$0c colpm2

        lda $ec
        ldx $fc
        bne _54db

        sta hposp0

_54db        sta hposp1
        sta hposp2
        pla
        tax
        mva $f2 hposm0
        mva $f3 hposm1

_54ed        sta hitclr

        mwa #_53d5 $200        ; dli1

        pla
        rti

;-----------------------------------------------

_54fc        ldx $57a8
        lda $5649,x
        sta $e2

        lda $5651,x
        sta $e3

        ldx #$35
        lda #0

_550d        sta $5681,x
        dex
        bpl _550d

        ldx #$1b
        stx $b4
        dex
        stx $b8
        ldx #4
        lda #0

_551e        sta $5781,x
        sta $80,x
        dex
        bpl _551e

        jsr _5591
        jsr $32f6

_552c        ldx vcount
        cpx #$3f
        bne _552c

_5533        lda $5642,x
        beq _5547

        ldy #4
        sta wsync
_553d        lda ($e2),y    ; .. during game start seq ..
        sta color0,y
        dey
        bpl _553d

        bmi _5559

_5547        sta wsync
        sta colbak
        sta color3
        sta color2
        sta color1
        sta color0

_5559        ldx vcount    ;
        cpx #$74
        bcc _5533

_5560        lda vcount    ;
        cmp #$75
        bne _5560

        jsr $32f6    ; score panel dli during game start seq

        jsr $3caa    ;

        dec $b4
        inc $b8
        ldx $b4
        inc $5681,x
        ldx $b8
        inc $5681,x
        lda $b4
        bne _552c

        ldy #4

_5581        lda ($e2),y
        sta $5781,y
        sta $80,y
        dey
        bpl _5581

        iny
        sty $57a1
        rts
;---------------
_5591        lda vcount
        cmp #$74
        bne _5591
        sta wsync
        rts
;---------------
        jsr $4fe9
        ldx #3

_55a1        lda $a0,x
        bmi _55af
        jsr $33c5
        jsr $34de
        lda #$ff
        sta $a0,x

_55af        dex
        bpl _55a1

        lda #1
        sta $57a1

        jsr $482b
        ldx #9
        lda #0

_55be        sta $2c30,x
        dex
        bpl _55be

        sta $5797
        ldx $57a8
        lda $5649,x
        sta $e2
        lda $5651,x
        sta $e3
        ldx #$35
        lda #1

_55d8        sta $5681,x
        dex
        bpl _55d8

        mvx #$1b $b4
        dex
        stx $b8
        jsr _5591
        jsr $32f6        ;

_55eb        ldx vcount
        cpx #$3f
        bne _55eb

_55f2        lda $5642,x
        beq _5606
        ldy #4
        sta wsync

_55fc        lda ($e2),y
        sta color0,y
        dey
        bpl _55fc
        bmi _5618

_5606        sta wsync
        sta colbak
        sta color3
        sta color2
        sta color1
        sta color0

_5618        ldx vcount        ;
        cpx #$74
        bcc _55f2

_561f        lda vcount        ;
        cmp #$75
        bne _561f

        jsr $32f6        ;
        jsr $3caa        ;

        dec $b4
        inc $b8
        ldx $b4
        dec $5681,x
        ldx $b8
        dec $5681,x
        lda $b4
        bne _55eb

        ldx #4
_5640        sta $5781,x
        sta $80,x
        dex
        bpl _5640

        rts

 

NMI ....

 

 

_c018        bit nmist
        bpl _c020

        jmp ($200)    ; dli

_c020        cld
        pha
        txa
        pha
        tya
        pha
        sta nmires
        jmp ($222)    ; $314f

        cld
        jmp ($216)    ; $c030

_c030        pha
        lda irqst
        and #$20
        bne _c045

        lda #$df
        sta irqen

        lda $10
        sta irqen

        jmp ($20a)     ; $eb2c = ---------->    tya
                    ;        pha
_c045        txa            ;        lda skstat
        pha            ;        sta skrest
        lda $d1ff        ;        bmi $eb3a
        and pdmsk        ;        ldy #$8c
        beq _c052        ;        sty $30
                    ;    _eb3a    and #$20
        jmp ($238) ; $c96e    ;        bne _eb42
                    ;        ldy #$8e
_c052        ldx #6            ;        sty $30
_c054        lda _c0cf,x        ;    _eb42    lda $38
        cpx #5            ;        beq _eb59
        bne _c05f        ;        lda serin
                    ;        cmp $31
        and $10            ;        beq _eb51
        beq _c064        ;        ldy #$8f
                    ;        sty $30
_c05f        bit irqst        ;    _eb51    lda #$ff
        beq _c06a        ;        sta $39
                    ;        pla
_c064        dex            ;        tay
        bpl _c054        ;        pla
                    ;        rti
        jmp _c0a0

_c06a        eor #$ff
        sta irqen
        lda $10
        sta irqen
        cpx #0
        bne _c07d

        lda $26d
        bne _c0a0

_c07d        lda _c0d7,x
        tax
        lda $200,x
        sta jveck
        lda $201,x
        sta $28d
        pla
        tax
        jmp ($28c)    ; $eaec

        lda #0
        sta $11
        sta $2ff
        sta $2f0
        sta $4d
        pla
        rti
;-----------
_c0a0        pla
        tax
        bit pactl
        bpl _c0ad

        lda porta
        jmp ($202)    ; $c0cd

_c0ad        bit pbctl
        bpl _c0b8
        lda portb
        jmp ($204)    ; $c0cd

_c0b8        pla
        sta $28c
        pla
        pha
        and #$10
        beq _c0c9

        lda $28c
        pha
        jmp ($206)    ; $c0cd

_c0c9        lda $28c
        pha
_c0cd        pla
        rti

        ; _c0cf -> _c0de

_c0df        jmp _c0df

        inc $14
        bne _c0ee

        inc $4d
        inc $13
        bne _c0ee

_c0ec        inc $12

_c0ee        lda #$fe
        ldx #0
        ldy $4d
        bpl _c0fc

        sta $4d
        ldx $13
        lda #$f6
_c0fc        sta $4e
        stx $4f
        lda $2c5    ; c1
        eor $4f
        and $4e
        sta color1
        ldx #0
        jsr _c255    ; $c255 = ------->    _c255    ldy $218,x
        bne _c114    ;                bne _c262
                ;                ldy $219,x
        jsr _c24f    ;                beq _c26f
_c114        lda $42        ;                dec $219,x
        bne _c120    ;            _c262    dec $218,x
                ;                bne _c26f
        tsx        ;                ldy $219,x
        lda $104,x    ;                bne _c26f
        and #4        ;                lda #0
        beq _c123    ;                rts
                ;            _c26f    lda #$ff
_c120        jmp _c28a    ;                rts

_c123        lda trig3
        cmp $3fa
        bne _c0df
                    ; shadow > hw ----------------------------------

        lda penv        ; Light pen v/h positions ??
        sta lpenv
        lda penh
        sta lpenh

        lda sdlsth
        sta dlisth
        lda sdlstl
        sta dlistl

        lda sdmctl
        sta dmactl

        lda gprior
        sta prior

        lda vsflag ; $26c
        beq _c162

        dec vsflag ; $26c
        lda #8
        sec
        sbc vsflag ;
        and #7
        sta vscrol

_c162        ldx #8
        stx consol

_c167        cli
        lda pcolr0,x ; $2c0
        eor $4f
        and $4e
        sta colpm0,x
        dex
        bpl _c167

        lda chbas  ; $2f4
        sta chbase
        lda chact  ; $2f3
        sta chactl
        ldx #2
        jsr _c255
        bne _c18b

        jsr _c252        ; ---->

_c18b        ldx #2

_c18d        inx
        inx
        lda $218,x
        ora $219,x
        beq _c19d

        jsr _c255    ; see above

        sta cdtma1,x

_c19d        cpx #8
        bne _c18d

        lda skstat    ;
        and #4
        beq _c1b0

        lda keydel ; $2f1
        beq _c1b0

        dec keydel

_c1b0        lda $22b
        beq _c1f3

        lda skstat    ;
        and #4
        bne _c1ee

        dec srtimr ; $22b
        bne _c1f3

        lda keydis
        bne _c1f3

        lda keyrep ; $2da
        sta srtimr ; $22b
        lda kbcode
        cmp #$9f
        beq _c1f3

        cmp #$83
        beq _c1f3

        cmp #$84
        beq _c1f3

        cmp #$94
        beq _c1f3

        and #$3f
        cmp #$11
        beq _c1f3

        lda kbcode
        sta ch      ; $2fc
        jmp _c1f3

_c1ee        lda #0
        sta srtimr ; $22b

_c1f3        lda porta
        lsr @
        lsr @
        lsr @
        lsr @
        sta stick1
        sta stick3
        lda porta
        and #$f
        sta stick0
        sta stick2
        lda trig0
        sta strig0
        sta strig2
        lda trig1
        sta strig1
        sta strig3
        ldx #3
_c21f        lda pot0,x
        sta paddl0,x
        sta paddl4,x
        dex
        bpl _c21f

        sta potgo
        ldx #2
        ldy #1
_c232        lda stick0,y
        lsr @
        lsr @
        lsr @
        sta ptrig1,x
        sta ptrig5,x
        lda #0
        rol @
        sta ptrig0,x
        sta ptrig4,x
        dex
        dex
        dey
        bpl _c232

        jmp (vvblkd)

_c24f        jmp (cdtma1)

_c252        jmp (cdtma2)

_c255        ldy cdtmv1,x
        bne _c262

        ldy cdtmv1+1,x
        beq _c26f

        dec cdtmv1+1,x
_c262        dec cdtmv1,x
        bne _c26f

        ldy cdtmv1+1,x
        bne _c26f

        lda #0
        rts

_c26f        lda #$ff
        rts

        asl @
        sta intemp
        txa
        ldx #5
        sta wsync
_c27c        dex
        bne _c27c

        ldx intemp
        sta vimirq+1,x
        tya
        sta vimirq,x
        rts

_c28a        pla
        tay
        pla
        tax
        pla
        rti

druid.xex

Link to comment
Share on other sites

  • 1 year later...
  • 3 years later...
  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...