game over!

This commit is contained in:
Antoine Vignau 2024-02-26 22:43:27 +01:00
parent c1cb1f4d36
commit c40f0feca8
7 changed files with 7338 additions and 7070 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

View File

@ -5737,46 +5737,45 @@ tblDELTAX HEX FEFF000102 ; -2, -1, 0, 1, 2
* CIRCLE ANIMATION - LOGO * CIRCLE ANIMATION - LOGO
*------------------------------- *-------------------------------
caMAXSTEP = 190 ; 170 caMAXSTEP = 170 ; 170
caDFTCENY = 88 caDFTCENY = 88
caDFTCENX = 160 ; 140 caDFTCENX = 160 ; 140
circleANIMATION circleANIMATION
LDA #caDFTCENY ; 88 LDA #caDFTCENY ; 88
STA $73 STA caCENTERY
LDA #caDFTCENX ; 140 LDA #caDFTCENX ; 140
STA $74 STA caCENTERX
LDA fgCIRCLE ; inner or outer animation? LDA fgCIRCLE ; inner or outer animation?
BEQ L88BD ; show the level BEQ L88BD ; show the level
*--- hide the level *--- hide the level
LDX #caMAXSTEP ; 170 LDX #caMAXSTEP ; 170
STX $6D STX caCURRENTY
LDX #0 ; 0 LDX #0 ; 0
STX caFGMODE STX caFGMODE
L88B6 JSR L88D7 L88B6 JSR caDOIT
DEC $6D DEC caCURRENTY
BNE L88B6 BNE L88B6
*--- show the level *--- show the level
L88BD LDA #$01 ; 1 L88BD LDA #1 ; 1
STA $6D STA caCURRENTY
STA fgCIRCLE STA fgCIRCLE
STA caFGMODE ; 1 STA caFGMODE ; 1
lda #>oldHGR1 ; was 2 **logo** lda #>oldHGR1 ; was 2 **logo**
sta activePAGE sta activePAGE
jsr drawINFOBAR
* JSR printMEN JSR printMEN
* JSR printLEVEL JSR printLEVEL
L88CB JSR L88D7 L88CB JSR caDOIT
INC $6D INC caCURRENTY
LDA $6D LDA caCURRENTY
CMP #caMAXSTEP ; 170 CMP #caMAXSTEP
BNE L88CB BNE L88CB
RTS RTS
@ -5784,203 +5783,232 @@ L88CB JSR L88D7
caMAXMASK = 1 ; HGR: 6, SHR: 1 caMAXMASK = 1 ; HGR: 6, SHR: 1
L88D7 LDA $6D caDOIT LDA caCURRENTY
STA $69 STA caY16
LDA #$00 LDA #$00
STA $6A STA caY16+1
STA $67
STA $68
LDA $69
ASL
STA $6B
LDA $6A
ROL
STA $6C
LDA #$03
SEC
SBC $6B
STA $6B
LDA #$00
SBC $6C
STA $6C
LDA $73
SEC
SBC $6D
STA $75
LDA #$00
SBC #$00
STA $79
LDA $73
STA $76
STA $77
LDA #$00
STA $7A
STA $7B
LDA $73
CLC
ADC $6D
STA $78
LDA #$00
ADC #$00
STA $7C
LDA $74
SEC
SBC $6D
TAX
LDA #$00
SBC #$00
JSR caCALCX
STY $7D
STA $81
LDX $74
LDA #$00
JSR caCALCX
STY $7E
STY $7F
STA $82
STA $83
LDA $74
CLC
ADC $6D
TAX
LDA #$00
ADC #$00
JSR caCALCX
STY $80
STA $84
L8951 LDA $68
CMP $6A
BCC L896F
BEQ L8969
L8959 LDA $67
CMP $69
BNE L8968
LDA $68
CMP $6A
BNE L8968
JMP caDRAWPOINTS
L8968 RTS
L8969 LDA $67 STA caFROM ; from 0
CMP $69 STA caFROM+1
BCS L8959
L896F JSR caDRAWPOINTS LDA caY16 ; to Y*2
LDA $6C
BPL L89A7
LDA $67
ASL ASL
STA $6F STA caTO
LDA $68 LDA caY16+1
ROL ROL
STA $70 STA caTO+1
LDA $6F
ASL LDA #$03 ; corrige de 3
STA $6F SEC
LDA $70 SBC caTO
ROL STA caTO
STA $70
LDA $6B
CLC
ADC $6F
STA $6F
LDA $6C
ADC $70
STA $70
LDA #$06
CLC
ADC $6F
STA $6B
LDA #$00 LDA #$00
ADC $70 SBC caTO+1
STA $6C STA caTO+1
*--- On calcule les Y
LDA caCENTERY ; Point 1
SEC ; vers le haut
SBC caCURRENTY
STA caY1
LDA #$00
SBC #$00
STA caY1high
LDA caCENTERY ; Point 2
STA caY4 ; Point 3
STA caY3
LDA #$00
STA caY4high
STA caY3high
LDA caCENTERY ; Point 4
CLC ; vers le bas
ADC caCURRENTY
STA caY2
LDA #$00
ADC #$00
STA caY2high
*--- On calcule les X
LDA caCENTERX ; points ˆ gauche
SEC
SBC caCURRENTY
TAX
LDA #$00
SBC #$00
JSR caCALCX
STY caX1 ; x1 index
STA caX1mask ; x1 mask index
LDX caCENTERX ; points centraux
LDA #$00
JSR caCALCX
STY caX2
STY caX3
STA caX2mask
STA caX3mask
LDA caCENTERX ; points ˆ droite
CLC
ADC caCURRENTY
TAX
LDA #$00
ADC #$00
JSR caCALCX
STY caX4 ; x4 index
STA caX4mask ; x4 mask index
*-- On boucle
L8951 LDA caFROM+1 ; a-t-on tout affichŽ ?
CMP caY16+1
BCC L896F ; non
BEQ L8969
L8959 LDA caFROM
CMP caY16
BNE L8968
LDA caFROM+1
CMP caY16+1
BNE L8968
JMP caDRAWPOINTS ; dernier point et sort
L8968 RTS ; oui
L8969 LDA caFROM
CMP caY16
BCS L8959 ; oui
L896F JSR caDRAWPOINTS ; non
*---
LDA caTO+1 ; en + ou en -
BPL L89A7
LDA caFROM ; *2
ASL
STA caTEMP16
LDA caFROM+1
ROL
STA caTEMP16+1
LDA caTEMP16 ; *4
ASL
STA caTEMP16
LDA caTEMP16+1
ROL
STA caTEMP16+1
LDA caTO ; temp16 += to
CLC
ADC caTEMP16
STA caTEMP16
LDA caTO+1
ADC caTEMP16+1
STA caTEMP16+1
LDA #$06 ; +=6
CLC
ADC caTEMP16
STA caTO
LDA #$00
ADC caTEMP16+1
STA caTO+1
JMP L8A14 JMP L8A14
L89A7 LDA $67 L89A7 LDA caFROM
SEC SEC
SBC $69 SBC caY16
STA $6F STA caTEMP16
LDA $68 LDA caFROM+1
SBC $6A SBC caY16+1
STA $70 STA caTEMP16+1
LDA $6F
LDA caTEMP16
ASL ASL
STA $6F STA caTEMP16
LDA $70 LDA caTEMP16+1
ROL ROL
STA $70 STA caTEMP16+1
LDA $6F
LDA caTEMP16
ASL ASL
STA $6F STA caTEMP16
LDA $70 LDA caTEMP16+1
ROL ROL
STA $70 STA caTEMP16+1
LDA $6F
LDA caTEMP16
CLC CLC
ADC #$10 ADC #$10
STA $6F STA caTEMP16
LDA $70 LDA caTEMP16+1
ADC #$00 ADC #$00
STA $70 STA caTEMP16+1
LDA $6F
CLC
ADC $6B
STA $6B
LDA $70
ADC $6C
STA $6C
LDA $69 LDA caTEMP16
CLC
ADC caTO
STA caTO
LDA caTEMP16+1
ADC caTO+1
STA caTO+1
LDA caY16
PHP PHP
DEC $69 DEC caY16
PLP PLP
BNE L89EC BNE L89EC
DEC $6A DEC caY16+1
L89EC INC $75 L89EC INC caY1
BNE L89F2 BNE L89F2
INC $79 INC caY1high
L89F2 DEC caX4mask
L89F2 DEC $84
BPL L89FC BPL L89FC
LDA #caMAXMASK LDA #caMAXMASK
STA $84 STA caX4mask
DEC $80 DEC caX4
L89FC INC $81
LDA $81 L89FC INC caX1mask
LDA caX1mask
CMP #caMAXMASK+1 CMP #caMAXMASK+1
BNE L8A0A BNE L8A0A
LDA #$00 LDA #$00
STA $81 STA caX1mask
INC $7D INC caX1
L8A0A DEC caY2
L8A0A DEC $78 LDA caY2
LDA $78
CMP #$FF CMP #$FF
BNE L8A14 BNE L8A14
DEC $7C DEC caY2high
L8A14 INC $67
L8A14 INC caFROM
BNE L8A1A BNE L8A1A
INC $68 INC caFROM+1
L8A1A INC $83
LDA $83 L8A1A INC caX3mask
LDA caX3mask
CMP #caMAXMASK+1 CMP #caMAXMASK+1
BNE L8A28 BNE L8A28
LDA #$00 LDA #$00
STA $83 STA caX3mask
INC $7F INC caX3
L8A28 DEC caY4
L8A28 DEC $76 LDA caY4
LDA $76
CMP #$FF CMP #$FF
BNE L8A32 BNE L8A32
DEC $7A DEC caY4high
L8A32 INC $77
L8A32 INC caY3 ; y++
BNE L8A38 BNE L8A38
INC $7B INC caY3high
L8A38 DEC $82 L8A38 DEC caX2mask ; mask--
BPL L8A42 BPL L8A42
LDA #caMAXMASK LDA #caMAXMASK ; reset mask
STA $82 STA caX2mask
DEC $7E DEC caX2 ; x--
L8A42 JMP L8951 L8A42 JMP L8951
*----------------------------------- *-----------------------------------
@ -6020,69 +6048,72 @@ L8A64 ROL $70
*----------------------------------- *-----------------------------------
caDRAWPOINTS caDRAWPOINTS
LDY $7C LDY caY2high
BNE L8A8C BNE L8A8C
LDY $78 LDY caY2
CPY #$B0 CPY #176
BCS L8A8C BCS L8A8C
JSR setHGRPOINTERS JSR setHGRPOINTERS
LDY $7F LDY caX3
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8A81 BCS L8A81
LDX $83 LDX caX3mask
JSR caDRAW JSR caDRAW
L8A81 LDY $7E L8A81 LDY caX2
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8A8C BCS L8A8C
LDX $82 LDX caX2mask
JSR caDRAW JSR caDRAW
L8A8C LDY $79
L8A8C LDY caY1high
BNE L8AAF BNE L8AAF
LDY $75 LDY caY1
CPY #$B0 CPY #176
BCS L8AAF BCS L8AAF
JSR setHGRPOINTERS JSR setHGRPOINTERS
LDY $7F LDY caX3
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8AA4 BCS L8AA4
LDX $83 LDX caX3mask
JSR caDRAW JSR caDRAW
L8AA4 LDY $7E L8AA4 LDY caX2
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8AAF BCS L8AAF
LDX $82 LDX caX2mask
JSR caDRAW JSR caDRAW
L8AAF LDY $7B
L8AAF LDY caY3high
BNE L8AD2 BNE L8AD2
LDY $77 LDY caY3
CPY #$B0 CPY #176
BCS L8AD2 BCS L8AD2
JSR setHGRPOINTERS JSR setHGRPOINTERS
LDY $80 LDY caX4
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8AC7 BCS L8AC7
LDX $84 LDX caX4mask
JSR caDRAW JSR caDRAW
L8AC7 LDY $7D L8AC7 LDY caX1
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8AD2 BCS L8AD2
LDX $81 LDX caX1mask
JSR caDRAW JSR caDRAW
L8AD2 LDY $7A
L8AD2 LDY caY4high
BNE L8AF5 BNE L8AF5
LDY $76 LDY caY4
CPY #$B0 CPY #176
BCS L8AF5 BCS L8AF5
JSR setHGRPOINTERS JSR setHGRPOINTERS
LDY $80 LDY caX4
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8AEA BCS L8AEA
LDX $84 LDX caX4mask
JSR caDRAW JSR caDRAW
L8AEA LDY $7D L8AEA LDY caX1
CPY #hgrWIDTH CPY #hgrWIDTH
BCS L8AF5 BCS L8AF5
LDX $81 LDX caX1mask
JMP caDRAW JMP caDRAW
L8AF5 RTS L8AF5 RTS
@ -6149,6 +6180,8 @@ L8B23 JSR L8BCF
CLC CLC
RTS RTS
*--- Data here is a list of lines to draw
L8B7A JSR drawGOLINE L8B7A JSR drawGOLINE
HEX 000102030405060708090A020100 HEX 000102030405060708090A020100
L8B8B JSR drawGOLINE L8B8B JSR drawGOLINE
@ -6172,35 +6205,63 @@ L8C13 JSR drawGOLINE
L8C24 JSR drawGOLINE L8C24 JSR drawGOLINE
HEX 0000000000010A03010000000000 HEX 0000000000010A03010000000000
L8C35 HEX 8080808080808080808080808080 *--- Data here is the HGR data
L8C43 HEX C0AAD5AAD5AAD5AAD5AAD5AAD580
L8C51 HEX 9080808080808080808080808082
L8C5F HEX 90AAD1A2D5A885A8C5A2D4A29582
L8C6D HEX 908291A2C5A88088C5A294A09082
L8C7B HEX 908290A2C4A88088C5A294A09082
L8C89 HEX 908290A2C4A88188C4A2D4A09582
L8C97 HEX 90A2D1A2C4888088C4A284A08582
L8CA5 HEX 908291A2C4888088C4AA84A08582
L8CB3 HEX 908291A2C4888088C48A84A09182
L8CC1 HEX 90AA91A2C4A885A88582D4A29182
L8CCF DA L8C35-$D *L8C35 HEX 8080808080808080808080808080
DA L8C43-$D *L8C43 HEX C0AAD5AAD5AAD5AAD5AAD5AAD580
DA L8C51-$D *L8C51 HEX 9080808080808080808080808082
DA L8C5F-$D *L8C5F HEX 90AAD1A2D5A885A8C5A2D4A29582
DA L8C6D-$D *L8C6D HEX 908291A2C5A88088C5A294A09082
DA L8C7B-$D *L8C7B HEX 908290A2C4A88088C5A294A09082
DA L8C89-$D *L8C89 HEX 908290A2C4A88188C4A2D4A09582
DA L8C97-$D *L8C97 HEX 90A2D1A2C4888088C4A284A08582
DA L8CA5-$D *L8CA5 HEX 908291A2C4888088C4AA84A08582
DA L8CB3-$D *L8CB3 HEX 908291A2C4888088C48A84A09182
DA L8CC1-$D *L8CC1 HEX 90AA91A2C4A885A88582D4A29182
*L8CCF DA L8C35-$D
* DA L8C43-$D
* DA L8C51-$D
* DA L8C5F-$D
* DA L8C6D-$D
* DA L8C7B-$D
* DA L8C89-$D
* DA L8C97-$D
* DA L8CA5-$D
* DA L8CB3-$D
* DA L8CC1-$D
* The new GAME OVER 000102 03040506 07 08090A 0B 0C0D0E0F10 11 12131415 161718 191A1B1C 1D 1E1F2021 22 23242526 27 28292A2B 2C 2D2E
L8C35 hex 000000,00000000,00,000000,00,0000000000,00,00000000,000000,00000000,00,00000000,00,00000000,00,00000000,00,0000
L8C43 hex 000066,66666666,66,666666,66,6666666666,66,66666666,666666,66666666,66,66666666,66,66666666,66,66666666,60,0000
L8C51 hex 006000,00000000,00,000000,00,0000000000,00,00000000,000000,00000000,00,00000000,00,00000000,00,00000000,00,6000
L8C5F hex 006000,66666660,00,666660,00,6666666660,00,66666660,000000,06666666,00,66600060,00,66666660,00,66666660,00,6000
L8C6D hex 006000,60000060,00,600060,00,6666600060,00,66600000,000000,06000666,00,66600060,00,66600000,00,60000060,00,6000
L8C7B hex 006000,60000000,00,600060,00,6000600060,00,66600000,000000,06000666,00,66600060,00,66600000,00,60000060,00,6000
L8C89 hex 006000,60000000,00,600060,00,6000600060,00,66666000,000000,06000006,00,66600060,00,66666000,00,66666660,00,6000
L8C97 hex 006000,60006660,00,666660,00,6000600060,00,60000000,000000,06000006,00,66600060,00,60000000,00,66666000,00,6000
L8CA5 hex 006000,60000060,00,600060,00,6000600060,00,60000000,000000,06000006,00,66666660,00,60000000,00,66666000,00,6000
L8CB3 hex 006000,60000060,00,600060,00,6000600060,00,60000000,000000,06000006,00,66666000,00,60000000,00,66600060,00,6000
L8CC1 hex 006000,66666660,00,600060,00,6000600060,00,66666660,000000,06666666,00,00600000,00,66666660,00,66600060,00,6000
L8CCF DA L8C35
DA L8C43
DA L8C51
DA L8C5F
DA L8C6D
DA L8C7B
DA L8C89
DA L8C97
DA L8CA5
DA L8CB3
DA L8CC1
drawGOLINE PLA ; pour afficher game over drawGOLINE PLA ; pour afficher game over
STA ptrDATA STA ptrDATA
PLA PLA
STA ptrDATA+1 STA ptrDATA+1
LDY #$50 LDY #$50 ; 1<>re ligne
STY theY STY theY
BNE L8D12 BNE L8D12
L8CF1 JSR setHGRPOINTER L8CF1 JSR setHGRPOINTER
@ -6212,17 +6273,23 @@ L8CF1 JSR setHGRPOINTER
STA L8D08+1 STA L8D08+1
LDA L8CCF+1,X LDA L8CCF+1,X
STA L8D08+2 STA L8D08+2
LDY #$0D
L8D08 LDA L8D08,Y * LDY #$0D ; 1<>re colonne
ldy #$39
ldx #0
L8D08 LDA L8D08,x
STA [ptrHGR1],Y STA [ptrHGR1],Y
INY INY
CPY #lvlWIDTH-1 * CPY #$1B ; derni<6E>re colonne
inx
cpx #$2f
BCC L8D08 BCC L8D08
L8D12 JSR L8D4C L8D12 JSR L8D4C
INC theY INC theY
LDY theY LDY theY
CPY #hfoeACTION CPY #$5F ; derni<6E>re ligne
BCC L8CF1 BCC L8CF1
LDX L8D4B LDX L8D4B
LDY #$FF LDY #$FF
L8D22 DEY L8D22 DEY
@ -6230,10 +6297,20 @@ L8D22 DEY
DEX DEX
BNE L8D22 BNE L8D22
INC L8D4B INC L8D4B
LDA fgINPUT LDA fgINPUT
CMP #chrK CMP #chrK
BEQ L8D3B BEQ L8D3B
LDAL BUTN1 cmp #chrJ
beq L8D23
cmp #chrP
bne L8D3B
jsr read4PLAY
bmi L8D41 ; button 1 pressed?
bvs L8D41 ; button 2 pressed?
bvc L8D3B
L8D23 LDAL BUTN1
BMI L8D41 BMI L8D41
LDAL BUTN0 LDAL BUTN0
BMI L8D41 BMI L8D41

View File

@ -129,7 +129,7 @@ theJOYY = $66
caFROM = $67 caFROM = $67
caY16 = $69 caY16 = $69
caTO = $6b caTO = $6b
caLINE = $6d caCURRENTY = $6d
caTEMP16 = $6f caTEMP16 = $6f
sprTABLE = $71 sprTABLE = $71
caFGMODE = $72 ; 0: hide, 1: draw caFGMODE = $72 ; 0: hide, 1: draw

Binary file not shown.

File diff suppressed because it is too large Load Diff