14 Commits

Author SHA1 Message Date
Pecusx a6478ae361 Musique rythmée :) 2024-10-16 12:39:12 +02:00
Pecusx fe0e9640af Not ALONE :) 2024-10-16 09:15:29 +02:00
Pecusx 8a789527b1 Better loops 2024-10-16 09:03:37 +02:00
Pecusx 5d39d86ea1 Issue #1 fixed! 2024-10-15 09:25:09 +02:00
Pecusx 5f2bd3130d New symbols 2024-08-30 10:06:35 +02:00
Pecusx 6ff92bb0da Proper dino.xex 2024-08-25 19:10:30 +02:00
Pecusx cc878e35a6 Joy 2B+ support :) 2024-08-25 17:42:01 +02:00
Pecusx fd95eab62f It's easy game 2024-08-25 16:57:19 +02:00
Pirx 49ba83f111 information during loading 2024-08-25 09:52:12 -04:00
Pecusx 57248e8675 PAL/NTSC version 2024-08-25 12:18:11 +02:00
Pirx cedbfca387 stereo fix 2024-08-20 09:55:51 -04:00
Pirx d0acb58131 stereo fix 2024-08-20 08:29:14 -04:00
Pirx 666168f60b stereło pokey init 2024-08-20 08:04:47 -04:00
Pecusx e2fc8e2eae Better L/R change 2024-08-20 12:08:59 +02:00
9 changed files with 112 additions and 41 deletions
+13 -7
View File
@@ -1,16 +1,22 @@
Technical Difficulties No Internet (aka The Dino Crisis)
# Technical Difficulties No Internet (aka The Dino Crisis)
Warsaw, Miami 2024
A very small entry to (SV2K24SE)[https://sillyventure.eu/en/].
A very small entry to [SV2K24SE](https://sillyventure.eu/en/).
Code: [Pecus](https://github.com/Pecusx) and [pirx](https://github.com/pkali)
Msx: Alex and Jochen Hippel
Used portions of LZSS player by [DMSC](https://github.com/dmsc/lzss-sap)
Used portions of LZSS player by [dmsc](https://github.com/dmsc/lzss-sap)
Assembly:
`mads dino.asm -o:dino_.xex -d:ALONE=0`
`mads intro/tech_diff.asm -o:tech_diff.xex`
`cat intro/tech_diff.xex dino_.xex > tdc.xex; rm dino_.xex`
```
mads dino.asm -o:dino_.xex -d:ALONE=0
mads intro/tech_diff.asm -o:tech_diff.xex
cat intro/tech_diff.xex dino_.xex > tdc.xex; rm dino_.xex
```
Stand-alone game (no intro):
`mads dino.asm -o:dino.xex -d:ALONE=1`
```
mads dino.asm -o:dino.xex -d:ALONE=1
```
BIN
View File
Binary file not shown.
+4 -3
View File
@@ -142,10 +142,11 @@ ShapesTableH
.by >ground_1
.by >ground_2
diff_object_gap ; min distance between obstacles by difficulty level
.by 18,17,15,13,11,9,8,7,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5
.by 24,22,20,18,16,14,12,11,10,9,8,8,8,8,8,8,8,8,8,8,8,8,8
;.by 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
;----------vars----------
CloudHpos .by 0,0,0,0
diff_level .ds 1
DinoJumpTr .by 1,2,3,4,4,3,2,1
JumpLen = 7
DinoJumpTr .by 1,2,3,4,4,4,3,2,1
JumpLen = 8
.endif ; .IF *>0
+50 -14
View File
@@ -1,5 +1,5 @@
SCR_HEIGHT = 8
WORLD_LENGTH = 64
WORLD_LENGTH = 44
DIFF_LEVELS = 20
.IFNDEF ALONE
.def ALONE = 1 ; standalone version
@@ -24,17 +24,19 @@ swap_table=$0600 ; table for swap bytes in left characters :)
.zpvar JumpPhase .byte
.zpvar Hit .byte
.zpvar Level .byte
.zpvar PaddleState .byte
.zpvar play_flag .byte
.zpvar NTSCounter .byte
;---------------------------------------------------
icl 'lib/ATARISYS.ASM'
icl 'lib/MACRO.ASM'
;---------------------------------------------------
.IF ALONE =1
; dark screean and BASIC off
org $2000
PLAYER
icl 'music/playlzs16.asm' ; Music Player
ORG $3000
; dark screean and BASIC off
mva #0 dmactls ; dark screen
mva #$ff portb
; and wait one frame :)
@@ -72,12 +74,12 @@ status_line_addr
:4 .byte SKIP8
.byte MODE2
.byte SKIP8,SKIP8 ; empty lines
.byte SKIP8,SKIP8,SKIP8 ; empty lines
.rept SCR_HEIGHT, #
.rept SCR_HEIGHT-1, #
.byte MODE2+LMS+SCH ; gr.0+LMS+HSCRL
line:1_addr
.word screen+$100*#
.word screen+$100*(#+1)
.endr
.byte JVB
.word GameDL
@@ -127,6 +129,12 @@ WorldTable
:WORLD_LENGTH+1 .byte 0 ; ground
;---------------------------------------------------
FirstSTART
mva #0 dmactls ; dark screen
mva #$ff portb
; and wait one frame :)
waitRTC ; or waitRTC ?
jsr Check2button ; reset JoyB2+ state
sta PaddleState
jsr ClearScreen
jsr GenerateCharsets
jsr GenerateClouds
@@ -137,6 +145,7 @@ NewGame
jsr SetStatusToR
jsr SetStart
jsr WorldToScreen
mva #>font4 chbas
jsr FadeColorsIN
jsr PlayInGameMusic
jsr GameR
@@ -148,6 +157,7 @@ NewGame
jsr SetStatusToL
jsr SetStart
jsr WorldToScreen
mva #>font4l chbas
jsr FadeColorsIN
jsr PlayInGameMusic
jsr GameL
@@ -398,18 +408,19 @@ SwapLoop
bpl @-
rts
.endp
;-----------------------------------------------
.proc ClearScreen
ldy #44 ; visible screen len
ldy #WORLD_LENGTH ; visible screen len
lda #0
ClearLoop
sta screen+$0700,y
;sta screen+$0700,y
sta screen+$0600,y
sta screen+$0500,y
sta screen+$0400,y
sta screen+$0300,y
sta screen+$0200,y
sta screen+$0100,y
sta screen+$0000,y
;sta screen+$0000,y
dey
bne ClearLoop
rts
@@ -435,7 +446,7 @@ NothingToDraw
jsr ClearScreen
ldx #0 ; start position (world)
stx temp_b
lda #42 ; start position (screen)
lda #WORLD_LENGTH-1 ; start position (screen)
sta temp_b2
ToScreenLoop
lda WorldTable,x
@@ -444,10 +455,9 @@ ToScreenLoop
ldx temp_b2
jsr ShowObjectL
NothingToDraw
dec temp_b2
inc:ldx temp_b
cpx #WORLD_LENGTH
bne ToScreenLoop
dec temp_b2
bpl ToScreenLoop
rts
.endp
;-----------------------------------------------
@@ -1072,6 +1082,8 @@ DinoLoop4
beq Up
lda TRIG0 ; Fire = Up
beq Up
jsr Check2button ; 2nd button = down
bcc Down
; check keyboard
lda SKSTAT
cmp #$f7 ; SHIFT
@@ -1319,9 +1331,17 @@ pressed
rts
.endp
;--------------------------------------------------
Check2button
lda PADDL0
and #$c0
eor #$C0
cmp PaddleState
rts
;--------------------------------------------------
.proc PrepareMusicPlayer
jsr StopMusic
VMAIN VBLinterrupt,7 ; jsr SetVBL
mva #0 NTSCounter
rts
.endp
.proc PlayInGameMusic
@@ -1346,9 +1366,23 @@ pressed
.endp
.proc VBLinterrupt
lda play_flag
beq @+
beq NoMusic
; music - PAL/NTSC check
lda PAL
and #%00001110
beq IsPAL
; NTSC ...
inc NTSCounter
lda NTSCounter
cmp #5
bne PlayMusic
mva #0 NTSCounter
beq NoMusic
PlayMusic
IsPAL
jsr PLAYER
@ pla
NoMusic
pla
tay
pla
tax
@@ -1390,9 +1424,11 @@ screen
.align $100
MUSIC1_DATA
ins 'music/InGame.lzss' ; ingame music
.ds 1
MUSIC1_DATA_END
.align $100
MUSIC2_DATA
ins 'music/GameOver.lzss' ; game over music
.ds 1
MUSIC2_DATA_END
run FirstSTART
BIN
View File
Binary file not shown.
+38 -10
View File
@@ -8,6 +8,7 @@
.zpvar temp_b .byte
.zpvar temp_w2 .word
.zpvar temp_w3 .word
.zpvar NTSCounter .byte
;---------------------------------------------------
icl '../lib/ATARISYS.ASM'
icl '../lib/MACRO.ASM'
@@ -22,8 +23,11 @@
ini $3000
org $2000
PLAYER
icl '../music/playlzs16.asm' ; Music Player
icl '../music/playlzs16.asm' ; Music Player, dmsc lzss
;---------------------------------------------------
leet_screen = $a000 ; further than samples
leet_screen_end = leet_screen + 32*9
ORG $2c00
start1
mva #$ff portb
@@ -84,6 +88,18 @@ next_letter
jmp @-
leet_end
; normal (not leeted) text back
mwa #pre_screen temp_w
mwa #leet_screen temp_w3
ldy #0
@
lda (temp_w),y
sta (temp_w3),y
inw temp_w
inw temp_w3
cpw temp_w #pre_screen_end
bne @-
jsr StopMusic
jsr wait_for_releasing_keyz
rts
@@ -152,6 +168,7 @@ leet_speeks_h
mwa #MUSIC_DATA_END song_end_ptr
jsr init_song
VMAIN VBLinterrupt,7 ; jsr SetVBL
mva #0 NTSCounter
rts
.endp
.proc StopMusic
@@ -166,12 +183,23 @@ leet_speeks_h
rts
.endp
.proc VBLinterrupt
; music - PAL/NTSC check
lda PAL
and #%00001110
beq IsPAL
; NTSC ...
inc NTSCounter
lda NTSCounter
cmp #5
bne PlayMusic
mva #0 NTSCounter
beq NoMusic
PlayMusic
IsPAL
jsr PLAYER
NoMusic
jmp XITVBV
.endp
leet_screen
.ds 32*9
leet_screen_end
.endp
.align $100
MUSIC_DATA
ins '../music/title.lzss' ; title music
@@ -181,8 +209,6 @@ MUSIC_DATA_END
;---------------------------------------------------
org $3000
screen
ins 'difficulties.bmp',+62
DL
:13 .by SKIP8
.by MODEF+LMS
@@ -289,9 +315,8 @@ exit_tech_diff
lda #$40
sta $d40e ; NMI On
cli ; IRQ on
mva #0 DMACTLS
sta dmactl
;jmp quiet ; rts
;jmp quiet ; rts ; POZOR PREMATURE OTTIMIZZAZIONE
.proc quiet
ldx #8
@@ -367,4 +392,7 @@ samples_end_h
.by >sample_end2
.by >sample_end4
finito
org $b000 ; empty space I hope
screen
ins 'difficulties.bmp',+62
ini start
Binary file not shown.
+7 -7
View File
@@ -45,7 +45,12 @@ bit_data .ds 1
; Song Initialization - this runs in the first tick:
;
.proc init_song
;POKEY_INIT
mva #0 AUDCTL
sta AUDCTL+$10
mva #3 SKSTAT
sta SKSTAT+$10
;clear buffers
lda #0
tax
@@ -54,12 +59,6 @@ bit_data .ds 1
inx
bne @-
;clear pokey_save
ldx #8
@ sta pokey_save,x
dex
bpl @-
mva #1 bit_data
; here initializes song pointer:
@@ -73,6 +72,7 @@ clear
; Read just init value and store into buffer and POKEY
jsr get_byte
sta POKEY, x
sta pokey_save,x
sty chn_copy, x
cbuf
sta buffers + 255
BIN
View File
Binary file not shown.