This commit is contained in:
Antoine Vignau 2024-02-22 14:16:37 +01:00
parent 856c51e721
commit d9b04facb5
8 changed files with 12827 additions and 12479 deletions

Binary file not shown.

View File

@ -670,7 +670,7 @@ L6469
rep #$30 rep #$30
PushLong ptrSCREEN PushLong ptrSCREEN
PushLong #HGR2 PushLong #HGR2
PushLong #32768 PushLong #hgrTOMOVE
_BlockMove _BlockMove
sep #$30 sep #$30
@ -4700,7 +4700,7 @@ L8289 HEX 220F8888888888888888CCCFC4C5A0D2
HEX A0 HEX A0
*--------------------------------------- *---------------------------------------
* PRINT CHAR - TOTO * PRINT CHAR
*--------------------------------------- *---------------------------------------
coutHGR1 STA theA ; char in $1E coutHGR1 STA theA ; char in $1E
@ -4791,73 +4791,135 @@ L82B4 STA hgrPAGE ; page in $1F
mx %11 mx %11
*--- sprite de 2 de large *--- sprite de 2 de large
*
L82DF LDY theYSCREEN *L82DF LDY theYSCREEN
JSR setHGRPOINTER * JSR setHGRPOINTER
LDY theXSCREEN * LDY theXSCREEN
LDA [ptrHGR1],Y ; 1 * LDA [ptrHGR1],Y ; 1
AND theMASK1 * AND theMASK1
ORA sprDATA,X * ORA sprDATA,X
STA [ptrHGR1],Y * STA [ptrHGR1],Y
INX * INX
INY * INY
LDA [ptrHGR1],Y ; 2 * LDA [ptrHGR1],Y ; 2
AND theMASK2 * AND theMASK2
ORA sprDATA,X * ORA sprDATA,X
STA [ptrHGR1],Y * STA [ptrHGR1],Y
INX * INX
INX * INX
INC theYSCREEN * INC theYSCREEN
DEC nbLINES * DEC nbLINES
BNE L82DF * BNE L82DF
RTS * RTS
*
*--- sprite de 3 de large *--- sprite de 3 de large
*
L8301 LDY theYSCREEN *L8301 LDY theYSCREEN
JSR setHGRPOINTER * JSR setHGRPOINTER
LDY theXSCREEN * LDY theXSCREEN
LDA [ptrHGR1],Y ; 1 * LDA [ptrHGR1],Y ; 1
AND theMASK1 * AND theMASK1
ORA sprDATA,X * ORA sprDATA,X
STA [ptrHGR1],Y * STA [ptrHGR1],Y
INX * INX
INY * INY
LDA sprDATA,X ; 2 * LDA sprDATA,X ; 2
STA [ptrHGR1],Y * STA [ptrHGR1],Y
INX * INX
INY * INY
LDA [ptrHGR1],Y ; 3 * LDA [ptrHGR1],Y ; 3
AND theMASK2 * AND theMASK2
ORA sprDATA,X * ORA sprDATA,X
STA [ptrHGR1],Y * STA [ptrHGR1],Y
INX * INX
INC theYSCREEN * INC theYSCREEN
DEC nbLINES * DEC nbLINES
BNE L8301 * BNE L8301
RTS * RTS
*
tblMASK1 HEX 000103070F1F3F ; mask1 *tblMASK1 HEX 000103070F1F3F ; mask1
tblMASK2 HEX F8F0E0C080FEFC ; mask2 *tblMASK2 HEX F8F0E0C080FEFC ; mask2
*--------------------------------------- *---------------------------------------
* DRAW SPRITE AT X,Y * DRAW SPRITE AT X,Y - TOTO
*--------------------------------------- *---------------------------------------
* draw a sprite at real HGR X,Y (eg. 175,111) * draw a sprite at real HGR X,Y (eg. 175,111)
drawSPRITEXY drawSPRITEXY
STY theYSCREEN STY theYSCREEN
STA theA STA theA
jsr setHGRPOINTERS
JSR getXBYBI JSR getXBYBI
STA theXSCREEN STA theXSCREEN
STX sprTABLE * STX sprTABLE
JSR getSPRITEDATA * JSR getSPRITEDATA
LDX #sprHEIGHT ; nb lignes * LDX #sprHEIGHT ; nb lignes
STX nbLINES * STX nbLINES
LDX #$00 * LDX #$00
LDA sprTABLE * LDA sprTABLE
CMP #$05 * CMP #$05
BCS L8376 * BCS L8376
rep #$30
lda #0
tax
tay
lda #sprHEIGHT
sta nbLINES2
lda theXSCREEN ; Y for column
and #$ff
tay
lda theA ; X for sprite
and #$ff
asl
tax
lda tblSPRITES,x
tax
]lp lda |$0000,x ; sprite
* eor #-1
and [ptrHGR1],y ; fond
ora [ptrHGR2],y ; fond
sta [ptrHGR1],y ; fond
iny
iny
inx
inx
lda |$0000,x ; sprite
* eor #-1
and [ptrHGR1],y ; fond
ora [ptrHGR2],y ; fond
sta [ptrHGR1],y ; fond
iny
iny
inx
inx
sep #$20
lda |$0000,x ; sprite
* eor #-1
and [ptrHGR1],y ; fond
ora [ptrHGR2],y ; fond
sta [ptrHGR1],y ; fond
rep #$20
iny
tya
clc
adc #160-5 ; 5 = 10 pixels
tay
inx
dec nbLINES2
bne ]lp
sep #$30
rts
mx %11
*--- sprite de 2 de large *--- sprite de 2 de large
@ -4962,6 +5024,7 @@ L83C3 LDY theYSCREEN
INC theYSCREEN INC theYSCREEN
DEC nbLINES DEC nbLINES
BNE L83C3 BNE L83C3
stz fgCOLLISION
RTS RTS
*--- sprite de 3 de large *--- sprite de 3 de large
@ -5001,6 +5064,7 @@ L83F5 LDY theYSCREEN
INC theYSCREEN INC theYSCREEN
DEC nbLINES DEC nbLINES
BNE L83F5 BNE L83F5
stz fgCOLLISION
RTS RTS
*--------------------------------------- *---------------------------------------
@ -5700,7 +5764,7 @@ calcHGRX TYA
tblDELTAX HEX FEFF000102 ; -2, -1, 0, 1, 2 tblDELTAX HEX FEFF000102 ; -2, -1, 0, 1, 2
*------------------------------- *-------------------------------
* CIRCLE ANIMATION * CIRCLE ANIMATION - LOGO
*------------------------------- *-------------------------------
circleANIMATION circleANIMATION
@ -5713,6 +5777,12 @@ circleANIMATION
*--- hide the level *--- hide the level
rep #$30
PushWord #0
_ClearScreen
sep #$30
rts
LDX #$AA ; 170 LDX #$AA ; 170
STX $6D STX $6D
LDX #$00 ; 0 LDX #$00 ; 0
@ -5729,6 +5799,15 @@ L88BD LDA #$01 ; 1
STA $72 ; 1 STA $72 ; 1
JSR printMEN JSR printMEN
JSR printLEVEL JSR printLEVEL
rep #$30
PushLong #HGR2
PushLong ptrSCREEN
PushLong #hgrTOMOVE
_BlockMove
sep #$30
rts
L88CB JSR L88D7 L88CB JSR L88D7
INC $6D INC $6D
LDA $6D LDA $6D

View File

@ -433,7 +433,14 @@ bitable DB $00 ; 0..4: sprite is 2-col wide
*--- From a X in HGR (0..139) coordinate to a Y column in HGR (0..39) *--- From a X in HGR (0..139) coordinate to a Y column in HGR (0..39)
xbytable DB $00 ; and the index within the table xbytable
]debut = $0
lup 140
dfb <]debut
]debut = ]debut+2
--^
DB $00 ; and the index within the table
DB $00 DB $00
DB $00 DB $00
DB $00 DB $00

View File

@ -35,6 +35,7 @@ maxHEIGHT = 192 ; lines
hgrHEIGHT = 176 hgrHEIGHT = 176
hgrWIDTH = 160 ; 40 hgrWIDTH = 160 ; 40
hgrTOMOVE = 28160 ; 176*160
modeEDIT = 0 ; to decode level modeEDIT = 0 ; to decode level
modeGAME = 1 modeGAME = 1

View File

@ -348,16 +348,16 @@ spr00 hex 0000000000 ; empty
hex 0000000000 hex 0000000000
hex 0000000000 hex 0000000000
hex 0000000000 hex 0000000000
spr01 hex 4444400040 ; diggable floor spr01 hex 4444400044 ; diggable floor
hex 4444400040 hex 4444400044
hex 4444400040 hex 4444400044
hex 4444400040 hex 4444400044
hex 0000000000 hex 0000000000
hex 4000444440 hex 4000444444
hex 4000444440 hex 4000444444
hex 4000444440 hex 4000444444
hex 4000444440 hex 4000444444
hex 4000444440 hex 4000444444
hex 0000000000 hex 0000000000
spr02 hex 4444444440 ; solid floor spr02 hex 4444444440 ; solid floor
hex 4444444440 hex 4444444440

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -187,7 +187,10 @@ noSOUND _HideMenuBar
dex dex
bpl ]lp bpl ]lp
sep #$30 ; MAJ le banc des pages jsr loadLEVELS ; exit 8-bit
mx %11
lda ptrSCREEN+2 lda ptrSCREEN+2
sta ptrHGR1+2 sta ptrHGR1+2
brl theGAME brl theGAME
@ -294,7 +297,7 @@ loadLEVELS9 ldx #0 ; clear all levels
]lp stal ptrLEVELS,x ]lp stal ptrLEVELS,x
inx inx
inx inx
cpx #38400+256 cpx #38400 ; 150 x 256
bcc ]lp bcc ]lp
ldx #256-2 ldx #256-2