New splash screen (sorry KAZ :) ).

And start from "Polish Rainbow" color scheme.
This commit is contained in:
Pecusx
2023-04-02 15:44:19 +02:00
parent 83969e747b
commit ab965c00b4
11 changed files with 5376 additions and 2 deletions
+3 -2
View File
@@ -191,7 +191,8 @@ FirstZpageVariable = $57
.ELSE
icl 'lib/ATARISYS.ASM'
icl 'lib/MACRO.ASM'
icl 'artwork/Scorch50.asm' ; splash screen and musix
;icl 'artwork/Scorch50.asm' ; splash screen and musix
icl 'splash_v2/splash.asm' ; splash screen and musix
.ENDIF
;-----------------------------------------------
@@ -315,7 +316,7 @@ no5200splash
bpl @-
; set gradient to the full LGBTIQQAAPP+ flag on start
mva #1 GradientNr ; #1 to set gradient number 2 :) (next one)
mva #0 GradientNr ; #1 to set gradient number 2 :) (next one)
jsr SelectNextGradient.NotWind
; generate linetables
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+134
View File
@@ -0,0 +1,134 @@
; --- dmsc LZSS player routine
song_data
ins 'mmm_16.lzs'
song_end
buffers
.ds 256 * 9
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Song Initialization - this runs in the first tick:
;
.proc init_song
mva #1 bit_data
; Example: here initializes song pointer:
;mwa #song_data song_ptr
; Init all channels:
ldx #8
ldy #0
clear
; Read just init value and store into buffer and POKEY
jsr get_byte
sta POKEY, x
sty chn_copy, x
cbuf
sta buffers + 255
inc cbuf + 2
dex
bpl clear
; Initialize buffer pointer:
sty bptr
sty cur_pos
rts
.endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Wait for next frame
;
.proc wait_frame
lda 20
delay
cmp 20
beq delay
.endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Play one frame of the song
;
.proc play_frame
lda #>buffers
sta bptr+1
lda song_data
sta chn_bits
ldx #8
; Loop through all "channels", one for each POKEY register
chn_loop:
lsr chn_bits
bcs skip_chn ; C=1 : skip this channel
lda chn_copy, x ; Get status of this stream
bne do_copy_byte ; If > 0 we are copying bytes
; We are decoding a new match/literal
lsr bit_data ; Get next bit
bne got_bit
jsr get_byte ; Not enough bits, refill!
ror ; Extract a new bit and add a 1 at the high bit (from C set above)
sta bit_data ;
got_bit:
jsr get_byte ; Always read a byte, it could mean "match size/offset" or "literal byte"
bcs store ; Bit = 1 is "literal", bit = 0 is "match"
sta chn_pos, x ; Store in "copy pos"
jsr get_byte
sta chn_copy, x ; Store in "copy length"
; And start copying first byte
do_copy_byte:
dec chn_copy, x ; Decrease match length, increase match position
inc chn_pos, x
ldy chn_pos, x
; Now, read old data, jump to data store
lda (bptr), y
store:
ldy cur_pos
sta POKEY, x ; Store to output and buffer
sta (bptr), y
skip_chn:
; Increment channel buffer pointer
inc bptr+1
dex
bpl chn_loop ; Next channel
inc cur_pos
.endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Check for ending of song and jump to the next frame
;
; not checking really so the tune gets funky :)))
;lda song_ptr + 1
;cmp #>song_end
;bne wait_frame
;lda song_ptr
;cmp #<song_end
;bne wait_frame
end_loop
rts
song_ptr = get_byte + 1
.proc get_byte
lda song_data+1
inc song_ptr
bne skip
inc song_ptr+1
skip
rts
.endp
Binary file not shown.
Binary file not shown.
+73
View File
@@ -0,0 +1,73 @@
; ----------------------------------
; RastaConverter by Ilmenit v.Beta7
; ----------------------------------
missiles
.ds $100
player0
.he 00 00 00 00 00 00 00 00 78 74 38 30 FE 7E FE 7C
.he FE 7C 7E 7E 1E 1C 7C 78 7C 3C 78 3C 38 7E FC FE
.he FC 7C FC FF 7F FF 7F FF 7F FF 6F 3F 7F 3F 1F 3F
.he 1F EE FE FE FE F9 F5 FE 7F 0E 9C 0C 00 00 00 FF
.he FE FE FF FF FF FF FF FE FF FF FF FF FF FF FF FF
.he FE FF FF FF FF FF FF FF FE FF FF FF FF FF FF FF
.he FF FF FF FF FF FF FF FF FF 3F 3F 3F 1F 1D 1D 19
.he 06 3F 3F F8 7C 7E 5F DF 7F FF 3F 77 7F F7 FF CF
.he 9F 9F DF FF FF F8 F3 FF F7 F7 77 76 92 02 8A C6
.he 8A 47 08 26 CD 05 69 38 E8 3C BE 35 6E A3 B3 B7
.he D3 65 E6 70 60 85 02 8A C7 C6 C1 40 40 F0 F1 78
.he 59 DC E0 E0 E0 E4 40 4C C0 FD FD FB FF FF FF FD
.he FD FE FF FE FE FD 6C 0B 13 1A 3C 3C 38 12 10 10
.he 30 00 12 10 49 D9 71 79 38 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
player1
.he 00 00 00 00 00 00 00 00 70 28 1C 3C 1C 3C 1C 1C
.he 1E 1E 3E 1E 1E 0E 86 E3 E3 F3 F3 F4 FF FF FF BF
.he FE BF FE 7F 7E 7E 7E 7F 7E 7E 7F 7E 7E 7F 7E 7E
.he 7F FE FE FF FE 7F 7F FF FF FC 7C 78 78 78 78 87
.he 83 87 C3 87 43 C7 83 C7 C3 C3 C7 E7 EF EC CA F8
.he 7E 7E 7E 7E 1C 70 F8 30 57 60 70 86 07 06 07 E6
.he EF 83 2B 8B 0E 1B 2F 1B 0F BA 4F 18 6E 38 6E 39
.he 4F B7 6D DF 6D FB 6D 9F 6D FF EF FF 7F 7F 7F FF
.he 7F FF FF 7F FF 7F FF 40 C8 0F 0E 90 30 1B 7D 7F
.he 7F 7F 7F 4F 1F 3F 7F 7F 7F 5F 3F 3F 7F FF FF FF
.he 7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.he FF FD F7 FD F7 FD 77 03 1C 48 BC CC FC CC FC CE
.he FC CF F5 7B AC 7F AC 7F B0 D4 B0 DC B2 D8 B2 D8
.he B6 E0 F8 E0 FC E0 F8 E0 FA 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
player2
.he 00 00 00 00 00 00 00 00 F8 F8 20 30 38 78 38 7C
.he 38 3C 18 3C 18 3C 08 1F 1F 1F 1F 1F 1F 01 1E 1E
.he 0E 02 00 03 07 03 07 83 07 C7 87 87 07 C7 07 87
.he 07 0F 07 07 06 07 02 06 0E 06 1E 1E 1E 3E 1E 3E
.he 1E 3E 1E 3E 1E 3C 1E 3C 1C 3C 3C 3C 1C 3C 1C 3C
.he 18 3C 18 3C 1C 3C 1E 3C 9E B4 1C 1A 1C 1E 1E 3E
.he 1E 1E 1E 1E 3E 1E 1E 1E 18 3E 1E 7E 3E 7E 3E DE
.he 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E
.he 1E 1E 1E 1E 1E 1E 1E FA FA FA FA 3C 8C 03 C0 E7
.he C4 10 0E 0C F3 D8 BE BF 7F DF BD FD F6 D7 D3 D0
.he CB D6 CF 72 7E C7 EF 27 47 CB F2 5F E8 78 70 3C
.he 30 1C FD 78 F4 DC FD DD FC 01 03 03 03 03 03 03
.he 03 0B 06 03 0F 10 19 38 19 3A 1E 3F 5B DF FD DF
.he FF FF 73 F3 D9 93 C5 D1 C1 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
player3
.he 00 00 00 00 00 00 00 00 F0 C0 F0 C0 E0 E0 E6 EE
.he 62 FA 74 B8 F4 FD B7 DF C7 CF 67 EF 67 F6 F2 FA
.he FE FE FF F8 F8 F8 F8 C0 80 80 C0 80 C0 C0 C0 C0
.he C0 C0 C0 C0 E0 1F 07 0F 18 18 18 18 1C 3C 3E 3E
.he 5E 4E 4E 0F 4F 0E F0 70 F0 30 F0 B0 03 20 6A 06
.he 06 06 81 83 E3 E7 BE 9F BF 07 07 03 07 03 7B 03
.he F8 6F 4A 2B E3 2D 70 2F BF 80 F2 2E 00 00 20 30
.he 30 30 38 07 07 07 03 07 07 C0 60 60 70 70 70 70
.he 78 70 39 38 39 C0 E2 E2 37 37 57 B7 D7 34 77 7F
.he F7 FF FF FC 7C FF 6F 77 7F 7F 7F 7F 7F 7F 7F 7F
.he 7E 7F 7F 7E 7E 7E 7E 7E 7E 7E 7D 7F 7C 7E 7C 3C
.he FF 07 12 F7 DB FF DA FF DE FF 5E FF 59 7F 1A 3F
.he 5B 7C 4A 3D 1A 3F 5A 2E DA 3E DA 06 DB 7F 4B 7F
.he 1B 3F 0B 0F 0B 0F 0B 07 03 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
File diff suppressed because it is too large Load Diff
+41
View File
@@ -0,0 +1,41 @@
; ----------------------------------
; RastaConverter by Ilmenit v.Beta7
; ----------------------------------
; Initial values
lda #$0F
sta colpf0
lda #$98
sta colpf1
lda #$97
sta colpf2
lda #$00
sta COLBAK
lda #$FB
sta COLPM0
lda #$96
sta COLPM1
lda #$8F
sta COLPM2
lda #$95
sta COLPM3
lda #$7E
sta HPOSP0
lda #$4E
sta HPOSP1
lda #$61
sta HPOSP2
lda #$2E
sta HPOSP3
lda #$0
ldx #$0
ldy #$0
; Set proper count of wsyncs
:2 sta wsync
; Set proper picture height
PIC_HEIGHT = 209
+264
View File
@@ -0,0 +1,264 @@
/***************************************/
/* Use MADS http://mads.atari8.info/ */
/* Mode: GED- (bitmap mode) */
/***************************************/
icl "splash.h"
; --- dmsc LZSS player routine on zero page
org $80
chn_copy .ds 9
chn_pos .ds 9
bptr .ds 2
cur_pos .ds 1
chn_bits .ds 1
bit_data .ds 1
; ---
org $00
fcnt .ds 2
fadr .ds 2
fhlp .ds 2
cloc .ds 1
regA .ds 1
regX .ds 1
regY .ds 1
byt2 .ds 1
zc .ds ZCOLORS
* --- BASIC switch OFF
org $2000\ mva #$ff portb\ rts\ ini $2000
* --- MAIN PROGRAM
org $2010
IFT PIC_HEIGHT>=204
scr ins "output.png.mic", 0, 8160
:16 .byte 0
ins "output.png.mic" , +8160
ELS
scr ins "output.png.mic"
EIF
.ifdef nil_used
nil :8*40 brk
eif
.ALIGN $0400
ant ANTIC_PROGRAM scr,ant
fnt
ift USESPRITES
.ALIGN $0800
.ds $0300
pmg SPRITES
eif
icl "lzss_player.asm" ; player (and data) for splash music
main
jsr init_song
* --- init PMG
ift USESPRITES
mva >pmg pmbase ;missiles and players data address
mva #$03 pmcntl ;enable players and missiles
eif
lda:cmp:req $14 ;wait 1 frame
sei ;stop interrups
mva #$00 nmien ;stop all interrupts
mva #$fe portb ;switch off ROM to get 16k more ram
ZPINIT
////////////////////
// RASTER PROGRAM //
////////////////////
; jmp line239
jmp raster_program_end
LOOP lda vcount ;synchronization for the first screen line
cmp #$02
;sta colpf0
;sta colpm0
;sta colbak
bne LOOP
mva #%00111110 dmactl ;set new screen width
mva <ant dlptr
mva >ant dlptr+1
icl "output.png.rp.ini"
;--- wait 18 cycles
jsr _rts
inc byt3
;--- set global offset (23 cycles)
jsr _rts
cmp byt3\ pha:pla
;--- empty line
jsr wait54cycle
inc byt2
icl "output.png.rp"
raster_program_end
lda >fnt+$400*$00
sta chbase
c0 lda #$00
sta colbak
c1 lda #$00
sta colpf0
c2 lda #$00
sta colpf1
c3 lda #$00
sta colpf2
c4 lda #$00
sta colpf3
s0 lda #$03
sta sizep0
sta sizep1
sta sizep2
sta sizep3
mva #$ff sizem
sta grafm
mva #$20 hposm0
mva #$28 hposm1
mva #$d0 hposm2
mva #$d8 hposm3
mva #$02 pmcntl
lda #$14
sta gtictl
//--------------------
// EXIT
//--------------------
lda trig0 ; FIRE #0
beq stop
lda trig1 ; FIRE #1
beq stop
lda consol ; START
and #1
beq stop
lda skctl ; ANY KEY
and #$04
bne skp
stop mva #$00 pmcntl ;PMG disabled
tax
sta:rne hposp0,x+
; silent
lda #0
ldx #8
@ sta POKEY,x
dex
bpl @-
;no glitching please (issue #67)
lda #0
sta $D400 ;dmactl
sta $022F ;dmactls
mva #$ff portb ;ROM switch on
mva #$40 nmien ;only NMI interrupts, DLI disabled
cli ;IRQ enabled
rts ;return to ... DOS
skp
//--------------------
jsr play_frame
jmp LOOP
;---
wait54cycle
:2 inc byt2
wait44cycle
inc byt3
nop
wait36cycle
inc byt3
jsr _rts
wait18cycle
inc byt3
_rts rts
byt3 brk
;---
.MACRO ANTIC_PROGRAM
:+8 dta $4e,a(:1+$0000+#*40)
:+8 dta $4e,a(:1+$0140+#*40)
:+8 dta $4e,a(:1+$0280+#*40)
:+8 dta $4e,a(:1+$03C0+#*40)
:+8 dta $4e,a(:1+$0500+#*40)
:+8 dta $4e,a(:1+$0640+#*40)
:+8 dta $4e,a(:1+$0780+#*40)
:+8 dta $4e,a(:1+$08C0+#*40)
:+8 dta $4e,a(:1+$0A00+#*40)
:+8 dta $4e,a(:1+$0B40+#*40)
:+8 dta $4e,a(:1+$0C80+#*40)
:+8 dta $4e,a(:1+$0DC0+#*40)
:+8 dta $4e,a(:1+$0F00+#*40)
:+8 dta $4e,a(:1+$1040+#*40)
:+8 dta $4e,a(:1+$1180+#*40)
:+8 dta $4e,a(:1+$12C0+#*40)
:+8 dta $4e,a(:1+$1400+#*40)
:+8 dta $4e,a(:1+$1540+#*40)
:+8 dta $4e,a(:1+$1680+#*40)
:+8 dta $4e,a(:1+$17C0+#*40)
:+8 dta $4e,a(:1+$1900+#*40)
:+8 dta $4e,a(:1+$1A40+#*40)
:+8 dta $4e,a(:1+$1B80+#*40)
:+8 dta $4e,a(:1+$1CC0+#*40)
:+8 dta $4e,a(:1+$1E00+#*40)
:+4 dta $4e,a(:1+$1F40+#*40)
:+4 dta $4e,a(:1+$1FF0+#*40)
:+8 dta $4e,a(:1+$2090+#*40)
:+8 dta $4e,a(:1+$21D0+#*40)
:+8 dta $4e,a(:1+$2310+#*40)
:+8 dta $4e,a(:1+$2450+#*40)
dta $41,a(:2)
.ENDM
CL
.MACRO ZPINIT
.ENDM
ZCOLORS = 0
;---
ini main
;---
opt l-
.MACRO SPRITES
icl "output.png.pmg"
.ENDM
USESPRITES = 1
+55
View File
@@ -0,0 +1,55 @@
.enum @@dmactl
blank = %00
narrow = %01
standard= %10
wide = %11
missiles= %100
players = %1000
lineX1 = %10000
lineX2 = %00000
dma = %100000
.ende
.enum @@pmcntl
missiles= %1
players = %10
trigs = %100
.ende
.enum @@gtictl
prior0 = %0
prior1 = %1
prior2 = %10
prior4 = %100
prior8 = %1000
ply5 = %10000 ; Fifth Player Enable
mlc = %100000 ; Multiple Color Player Enable
mode9 = %01000000
mode10 = %10000000
mode11 = %11000000
.ende
* ---------------------------------------------------------------------------------------------
* --- GTIA
* ---------------------------------------------------------------------------------------------
gtictl = PRIOR ; rejestr kontroli uk³adu GTIA
gtiactl = gtictl
pmcntl = GRACTL ; rejestr kontroli graczy i pocisków
* ---------------------------------------------------------------------------------------------
* --- POKEY
* ---------------------------------------------------------------------------------------------
irqens = $0010 ; rejestr-cieñ IRQEN
irqstat = $0011 ; rejestr-cieñ IRQST
skstres = SKRES ; rejestr statusu z³¹cza szeregowego (Z)
* ---------------------------------------------------------------------------------------------
* --- ANTIC
* ---------------------------------------------------------------------------------------------
chrctl = CHACTL ; rejestr kontroli wyœwietlania znaków