This commit is contained in:
2024-12-06 10:57:06 -05:00
parent c046142676
commit 7481834050
2 changed files with 25 additions and 34 deletions
+24 -33
View File
@@ -43,12 +43,11 @@ maxMemory = 7 ; number of saved pixel positions
maxBrickLines = 14 ; maximum number of lines of bricks to be eradicated maxBrickLines = 14 ; maximum number of lines of bricks to be eradicated
.zpvar xpos ypos .word = $80 ; position of the ball .zpvar xpos ypos .word = $80 ; position of the ball
.zpvar color .byte ; color of the pixel to plot
.zpvar deXpos deYpos .byte ;position for deletion .zpvar deXpos deYpos .byte ;position for deletion
.zpvar dX dY .word ;main loop shortcuts to the table values .zpvar dX dY .word ;main loop shortcuts to the table values of delta
;.zpvar dx dy .word ;delta
;xpos, dx - "static point precision" - [dx+1].[dx] (big endian!) ;xpos, dx - "static point precision" - [dx+1].[dx] (big endian!)
;this static point precision is emulated with .word calcs, just a result is the high byte ;this static point precision is emulated with .word calcs, just a result is the high byte
.zpvar color .byte ; color of the pixel to plot
.zpvar currBall collisionCheck racquetPos MyClok eXistenZstackPtr .byte .zpvar currBall collisionCheck racquetPos MyClok eXistenZstackPtr .byte
.zpvar xMemAddr yMemAddr .word ; address where to store memories of the current ball .zpvar xMemAddr yMemAddr .word ; address where to store memories of the current ball
.zpvar temp .word .zpvar temp .word
@@ -61,13 +60,13 @@ RMT_zpvars = AutoPlay+1 ; POZOR!!! RMT vars go here
;--------------------------------------------------- ;---------------------------------------------------
org $2000 org $2000
MODUL MODUL
ins 'art/muzyka_stripped.rmt',+5 ins 'art/muzyka_stripped.rmt',+5 ; my RMT 1.28 on WINE is apparently broken. I lost some hair here (5, not 6)
.align $100 .align $100
icl 'art/rmtplayr.a65' icl 'art/rmtplayr.a65'
;--------------------------------------------------- ;---------------------------------------------------
.align $400 .align $400
font font
ins 'art/Mild West.fnt' ins 'art/Mild West.fnt' ; https://damieng.com/typography/zx-origins/mild-west/
dl dl
.by SKIP3 .by SKIP3
dta MODE2+LMS,a(statusBuffer) dta MODE2+LMS,a(statusBuffer)
@@ -87,13 +86,13 @@ DLracquetAddr0
.wo dl .wo dl
;--------------------------------------------------- ;---------------------------------------------------
dl_level dl_level
.by SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8 :8 .by SKIP8
dta 6+LMS,a(LevelText) dta 6+LMS,a(LevelText)
.by JVB .by JVB
.wo dl_level .wo dl_level
;--------------------------------------------------- ;---------------------------------------------------
dl_start dl_start
.by SKIP3,SKIP8,SKIP8 :6 .by SKIP3
dta 6+LMS,a(StartText) dta 6+LMS,a(StartText)
dta 6,SKIP4 dta 6,SKIP4
dta 6,SKIP8,SKIP8 dta 6,SKIP8,SKIP8
@@ -108,7 +107,7 @@ dl_start
.wo dl_start .wo dl_start
;--------------------------------------------------- ;---------------------------------------------------
dl_over dl_over
.by SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8 :8 .by SKIP8
dta 6+LMS,a(OverText) dta 6+LMS,a(OverText)
.by SKIP8 .by SKIP8
dta 6 dta 6
@@ -123,9 +122,9 @@ racquetDisp
;-------------------------------------------------- ;--------------------------------------------------
statusBuffer statusBuffer
dta d" Lives: 5 HS: 000000 Score: 000000 " dta d" Lives: 5 HS: 000000 Score: 000000 "
score=statusBuffer+33 score = statusBuffer+33
HiScore=statusBuffer+17 HiScore = statusBuffer+17
Lives=statusBuffer+8 Lives = statusBuffer+8
LevelText LevelText
dta d" entering level 000 " dta d" entering level 000 "
OverText OverText
@@ -133,7 +132,7 @@ OverText
dta d" YOUR SCORE: 000000 " dta d" YOUR SCORE: 000000 "
StartText StartText
dta d" ," dta d" ,"
dta d"GAME BY PIRX & PECUS" dta d"GAME by PIRX & PECUS"
dta d" MUSIC by ALEX " dta d" MUSIC by ALEX "
dta d"press start to START" dta d"press start to START"
;-------------------------------------------------- ;--------------------------------------------------
@@ -193,7 +192,7 @@ JNotFire
and #$01 and #$01
;sta HSCROL ;sta HSCROL
;pos print /* ;pos print
lda racquetPos lda racquetPos
:4 lsr :4 lsr
clc clc
@@ -205,6 +204,7 @@ JNotFire
clc clc
adc #'0' adc #'0'
sta hexDump+1 sta hexDump+1
*/
mva #0 dliCount mva #0 dliCount
; mva #13 VSCROL ; FOX gfx mode only ; mva #13 VSCROL ; FOX gfx mode only
@@ -278,7 +278,6 @@ skipSoundFrame
rti rti
*/ */
sta DLI_A sta DLI_A
;stx DLI_X
mva #$80 PRIOR mva #$80 PRIOR
lda VCOUNT lda VCOUNT
@@ -1253,10 +1252,7 @@ brickcolorTab
jsr RASTERMUSICTRACKER ;Init jsr RASTERMUSICTRACKER ;Init
lda dmactls lda #@dmactl(standard|dma)
and #$fc
ora #$02 ; normal screen width
;ora #$01 ; narrow screen width
sta dmactls sta dmactls
mwa #dl dlptrs mwa #dl dlptrs
vdli DLI vdli DLI
@@ -1689,18 +1685,17 @@ Numbers
.byte '0123456789' .byte '0123456789'
lineAdrL lineAdrL
:margin .byte <marginLine ;8 lines of margin space :margin .byte <marginLine ;8 lines of margin space
:maxLines .byte <(display+40*#) :maxLines .byte <(display+screenBytes*#)
;:margin .byte <marginLine ;8 lines of margin space :256-maxLines-1*margin .by <marginLine ; (display+40*#) ;just to let the plot smear on full .byte ypos
:256-maxLines-1*margin .by <marginLine; (display+40*#) ;just to let the plot smear on full .byte ypos
lineAdrH lineAdrH
:margin .byte >marginLine :margin .byte >marginLine
:maxLines .byte >(display+40*#) :maxLines .byte >(display+screenBytes*#)
;:margin .byte >marginLine :256-maxLines-1*margin .by >marginLine ; (display+40*#) ;just to let the plot smear on full .byte ypos
:256-maxLines-1*margin .by >marginLine; (display+40*#) ;just to let the plot smear on full .byte ypos
; $E000 is an address in ROM - the trick to avoid spawning new balls!
bittable bittable
.byte %11110000 .byte %11110000
debittable
.byte %00001111 .byte %00001111
.byte %11110000
RNColtable ; Right Nibble color Table RNColtable ; Right Nibble color Table
.byte %00000000 .byte %00000000
.byte %00000001 .byte %00000001
@@ -1721,9 +1716,7 @@ LNColtable ; Left Nibble color Table
.byte %01100000 .byte %01100000
.byte %01110000 .byte %01110000
.byte %10000000 .byte %10000000
debittable ;--------------------------------
.byte %00001111
.byte %11110000
clear_vars_start clear_vars_start
dxTableL :maxBalls .byte 0 dxTableL :maxBalls .byte 0
dxTableH :maxBalls .byte 0 dxTableH :maxBalls .byte 0
@@ -1750,7 +1743,6 @@ xposMemTable
:maxBalls*maxMemory .byte 0 :maxBalls*maxMemory .byte 0
yposMemTable yposMemTable
:maxBalls*maxMemory .byte 0 :maxBalls*maxMemory .byte 0
clear_vars_end
;addressess of the tables with snake pixels ;addressess of the tables with snake pixels
xposMemTableAdrL xposMemTableAdrL
:maxMemory .byte 0 :maxMemory .byte 0
@@ -1763,6 +1755,8 @@ yposMemTableAdrH
;table for keeping the count on the last position to be deleted from the "snake" ;table for keeping the count on the last position to be deleted from the "snake"
memCycleTable memCycleTable
:maxBalls .byte 0 :maxBalls .byte 0
clear_vars_end
;--------------------------------
statusBar statusBar
dta d"rc$" dta d"rc$"
hexDump hexDump
@@ -1773,10 +1767,7 @@ dyDisp
dta d" balls$" dta d" balls$"
ballDisp ballDisp
dta d" " dta d" "
marginLine :40 .byte 0 marginLine .ds screenBytes
.ds $400 ; buffer for RMT player
.align $100
;PLAYER
;-------------------------------- ;--------------------------------
; names of RMT instruments (sfx) ; names of RMT instruments (sfx)
;-------------------------------- ;--------------------------------
BIN
View File
Binary file not shown.