ds: I hate git

Merge branch 'master' of https://github.com/deater/dos33fsprogs
This commit is contained in:
Vince Weaver 2019-11-04 09:53:27 -05:00
commit d7f6313e0f
37 changed files with 2085 additions and 4299 deletions

View File

@ -9,12 +9,12 @@ B2D = ../bmp2dhr/b2d
all: demosplash.dsk
demosplash.dsk: HELLO LOADER BOOK_HGR2C.BIN MUSICTEST # DEMOSPLASH
demosplash.dsk: HELLO LOADER DEMOSPLASH
cp empty.dsk demosplash.dsk
$(DOS33) -y demosplash.dsk SAVE A HELLO
$(DOS33) -y demosplash.dsk BSAVE -a 0x1400 LOADER
# $(DOS33) -y demosplash.dsk BSAVE -a 0x1700 DEMOSPLASH
$(DOS33) -y demosplash.dsk BSAVE -a 0x1700 MUSICTEST
$(DOS33) -y demosplash.dsk BSAVE -a 0x1700 DEMOSPLASH
# $(DOS33) -y demosplash.dsk BSAVE -a 0x1700 MUSICTEST
####
@ -23,39 +23,46 @@ HELLO: hello.bas
../asoft_basic-utils/tokenize_asoft < hello.bas > HELLO
#####
#DEMOSPLASH: demosplash.o
# ld65 -o DEMOSPLASH demosplash.o -C ../linker_scripts/apple2_1700.inc
#demosplash.o: demosplash.s \
# zp.inc hardware.inc \
# appleII_intro.s vapor_lock.s delay_a.s \
# pt3_lib_init.s pt3_lib_core.s pt3_lib_mockingboard.s \
# interrupt_handler.s \
# starbase.s starbase_action.s \
# graphics/starbase/starbase.inc \
# graphics/sprites/alien.inc graphics/sprites/astronaut.inc \
# dya_space_demo.pt3 appleII_40_96.inc \
# book.s book_40_48d.inc \
# missing.s \
# escape.s
# ca65 -o demosplash.o demosplash.s -l demosplash.lst
#####
DEMOSPLASH: demosplash.o
ld65 -o DEMOSPLASH demosplash.o -C ../linker_scripts/apple2_1700.inc
demosplash.o: demosplash.s \
zp.inc hardware.inc \
appleII_intro.s vapor_lock.s delay_a.s \
pt3_lib_init.s pt3_lib_core.s pt3_lib_mockingboard.s \
interrupt_handler.s \
starbase.s starbase_action.s \
graphics/starbase/starbase.inc \
graphics/sprites/alien.inc graphics/sprites/astronaut.inc \
dya_space_demo.pt3 appleII_40_96.inc \
book.s book_40_48d.inc \
missing.s \
escape.s
ca65 -o demosplash.o demosplash.s -l demosplash.lst
#####
MUSICTEST: musictest.o
ld65 -o MUSICTEST musictest.o -C ../linker_scripts/apple2_1700.inc
musictest.o: musictest.s \
zp.inc hardware.inc \
appleII_intro.s font.s \
pt3_lib_init.s pt3_lib_core.s pt3_lib_mockingboard.s \
pt3_lib_play_frame.s pt3_lib_write_frame.s \
interrupt_handler.s \
missing.s missing_screen_update.s \
starbase.s \
starbase_action.s \
missing.s k_40_48d.inc create_update_type1.s \
graphics/starbase/starbase.inc \
graphics/sprites/alien.inc graphics/sprites/astronaut.inc \
escape.s create_update_type2.s offsets_table2.s \
book.s book_40_48d.inc \
credits.s credits_bg.inc offsets_table.s \
dya_space_demo2.pt3
ca65 -o musictest.o musictest.s -l musictest.lst
ca65 -o demosplash.o demosplash.s -l demosplash.lst
#####
@ -86,9 +93,15 @@ BOOK_HGR2C.BIN: book_hgr2.bmp
#####
credits_bg.inc: credits_bg.png
$(PNG_TO_40x48D) asm credits_bg.png credits > credits_bg.inc
book_40_48d.inc: book_40_48d.png
$(PNG_TO_40x48D) asm book_40_48d.png book > book_40_48d.inc
k_40_48d.inc: k_40_48d.png
$(PNG_TO_40x48D) asm k_40_48d.png k > k_40_48d.inc
#####
clean:

113
demosplash/NOTES Normal file
View File

@ -0,0 +1,113 @@
TODO:
CYCLE: Apple II intro
+ Remove keyboard pause
CYCLE: MISSING notice
+ Add missing text
+ Autogen the active background code
PLAIN: Hollowed out book
+ Meanwhile on a distant starbase, a prisoner
receives a mysterious package...
+ Draw this sequence
PLAIN: STARBASE OOTW sequence
+ Update graphics
+ Update backgrounds
+ Time things
+ Ship flame (from last year's demo)
CYCLES: ESCAPE ship sequence
+ Read keypress from file
+ Add music playing
PLAIN? BOOK READING
CYCLES: CREDITS
14 * 256 = 3.5k, 4.2s
* 5 =17.5k, 21s
compact=11
11*256=2.75k
* 6 = 16.5k, 25s
30 unique tracks
64*4=256
0=A_low
1=A_high (half)
2=B_low
3=B_high (half)
4=C_low
5=C_high (half)
6=Noise (5bits)
7=enable
8=A_amp (4+envelope)
9=B_amp (4+envelope)
10=C_amp (4+envelope)
11=EnvelopeL
12=EnvelopeH
13=Envelope_Shape (half)
0 1 0 1 2 3 2 4
5 6 7 8 9 10 9 11
12 13 14 15 19 16 17 18
20 21 22 23 24 25 30 26
27 28 29
35 segments = 64*3= 192 bytes each, 3.2s*35 = 112 1:52s
; Possible solution
; Text message transition
; if 15%, can decode 6 frames for each one played?
;
2:07
:30 to start of actual music
:43 start upbeat
1:30 end of second blank spot
loop
cyc APPLE II logo (pixel transition)
cyc AGT FROGYSUE
BOOK w GUN
STARBASE
cyc ESCAPE
message about book?
cyc BOOK
cyc CREDITS
4*11*256=11k
Memory Map
~~~~~~~~~~
0000-00ff zero page
0100-01ff stack
0200-02ff ?????
0300-03ff nibble table, irq vectors
0400-07FF lores page1
0800-0bff lores page2
0c00-0fff (used as page3)
1400-16ff Loader
1700-???? executable
9000-bfff audio buffer
c000-cfff I/O
d000-ffff ROM
Size:
base+music+a2intro = 10k (compress to 6k)
+ missing = additional 10k
missing = 20k, comment out displaycode 12k, so 8k of display code

View File

@ -1,3 +1,26 @@
TODO:
CYCLE: Apple II intro
+ Remove keyboard pause
CYCLE: MISSING notice
+ Add missing text
+ Autogen the active background code
PLAIN: Hollowed out book
+ Meanwhile on a distant starbase, a prisoner
receives a mysterious package...
+ Draw this sequence
PLAIN: STARBASE OOTW sequence
+ Update graphics
+ Update backgrounds
+ Time things
+ Ship flame (from last year's demo)
CYCLES: ESCAPE ship sequence
+ Read keypress from file
+ Add music playing
PLAIN? BOOK READING
CYCLES: CREDITS
14 * 256 = 3.5k, 4.2s
* 5 =17.5k, 21s

61
demosplash/TODO Normal file
View File

@ -0,0 +1,61 @@
General:
+ get music working
OPENER:
+ Done?
MISSING:
+ Add colored bars for accent?
PACKAGE:
+ Implement
STARBASE:
+ Fix sprites
+ Keyboard emulation
+ change colors of shield? laser? blast?
+ room0
- open with wall blasting open
- run down steps
- blast open door
- run through
+ room1
- columns
- run in
- duck, start shield
- blash shield, alien
- run through doors
+ room2 (planet)
- shoot another alien?
- foreground animation (robot?)
+ room3 (ship)
- blast control / free ship/
- run to ship
- engines start
- some sort of fade-to-white transition
ESCAPE:
+ Get working
+ Keyboard emulation
READING:
+ Add message of some sort?
CREDITS:
+ implement text
+ implement rasterbars
012345678901
CODE: DEATER
MUSIC: DYA
MISC MAGIC: QKUMBA
THANKS:
FROGYSUE
S. SUSIE
0101TALBOT
18*4=

View File

@ -1,9 +1,9 @@
ANSI2PNG = ~/research/ansi2gif/ansi2gif.git/ansi2png
all: kfest.png
all: kfest2020.png
kfest.png: kfest.ans
$(ANSI2PNG) --ysize auto kfest.ans > kfest.png
kfest2020.png: kfest2020.ans
$(ANSI2PNG) --ysize auto kfest2020.ans > kfest2020.png
clean:
rm -f kfest.png *~
rm -f kfest2020.png *~

View File

@ -4,20 +4,8 @@
; by deater (Vince Weaver) <vince@deater.net>
; Zero Page
;FRAME = $60
;BLARGH = $69
;DRAW_PAGE = $EE
;LASTKEY = $F1
;PADDLE_STATUS = $F2
;TEMP = $FA
WHICH = $E3
book:
lda #0
sta WHICH
end_book:
;===================
; init screen
@ -31,17 +19,17 @@ book:
lda #0
sta DRAW_PAGE
;===================
; setup grahics
jsr create_update_type1
;=============================
; Load graphic page0
lda WHICH
asl
asl ; which*4
tay
lda pictures,Y
lda #<book_low
sta GBASL
lda pictures+1,Y
lda #>book_low
sta GBASH
lda #$c ; load image to $c00
@ -61,20 +49,12 @@ book:
bit SET_GR ; 4
bit FULLGR ; 4
jsr wait_until_keypressed
;=============================
; Load graphic page1
lda WHICH
asl
asl ; which*4
tay
lda pictures+2,Y
lda #<book_high
sta GBASL
lda pictures+3,Y
lda #>book_high
sta GBASH
lda #$c ; load image to $c00
jsr load_rle_gr
@ -87,9 +67,6 @@ book:
; GR part
bit PAGE0
jsr wait_until_keypressed
;==============================
; setup graphics for vapor lock
;==============================
@ -128,72 +105,34 @@ loopR: dex ; 2
;================================================
; Display Loop
;================================================
; each scan line 65 cycles
; 1 cycle each byte (40cycles) + 25 for horizontal
; Total of 12480 cycles to draw screen
; Vertical blank = 4550 cycles (70 scan lines)
; Total of 17030 cycles to get back to where was
; We want to alternate between page1 and page2 every 65 cycles
; vblank = 4550 cycles to do scrolling
; 2 + 48*( (4+2+25*(2+3)) + (4+2+23*(2+3)+4+5)) + 9)
; 48*[(6+125)-1] + [(6+115+10)-1]
book_loop:
ldy #96 ; 2
book_outer_loop:
bit PAGE0 ; 4
ldx #12 ; 65 cycles with PAGE0 ; 2
book_page0_loop: ; delay 61+bit
dex ; 2
bne book_page0_loop ; 2/3
; bit(4) -1(fallthrough) + loop*5 -1(fallthrouh)+4 extra = 61
; 5L = 55
bit PAGE1 ; 4
ldx #11 ; 65 cycles with PAGE1 ; 2
;
book_page1_loop: ; delay 115+(7 loop)+4 (bit)+4(extra)
dex ; 2
bne book_page1_loop ; 2/3
dey ; 2
bne book_outer_loop ; 2/3
jsr $9000 ; cycle-counted page0/page1 flip code
;======================================================
; We have 4550 cycles in the vblank, use them wisely
;======================================================
; do_nothing should be 4550+1 -2-9 -7= 4533
jsr book_do_nothing ; 6
lda KEYPRESS ; 4
bpl book_no_keypress ; 3
rts
book_no_keypress:
jmp book_loop ; 3
; do_nothing should be
; 4550
; -12 -- enter/leave flip code
; -10 -- keypress code
; =======
; 4528 cycles
;=================================
; do nothing
;=================================
; and take 4533-6 = 4527 cycles to do it
; and take 4528
book_do_nothing:
; Try X=4 Y=174 cycles=4525 R2
; Try X=4 Y=174 cycles=4525 R3
nop ; 2
lda TEMP ; 3
ldy #174 ; 2
bloop1:
@ -206,13 +145,13 @@ bloop2:
bne bloop1 ; 2nt/3
rts ; 6
lda KEYPRESS ; 4
bpl book_no_keypress ; 3
rts ; 6
book_no_keypress:
jmp book_loop ; 3
pictures:
.word book_low,book_high
.include "book_40_48d.inc"

View File

@ -0,0 +1,135 @@
; Autogenerates code that does interleaved Page0/Page1 lores mode
; but leaving room for 14 pixels/line of per-scanline color
UPDATE_START = $9000
DEFAULT_COLOR = $0
create_update_type1:
ldx #192
lda #<UPDATE_START
sta OUTL
lda #>UPDATE_START
sta OUTH
lda #<one_scanline
sta INL
lda #>one_scanline
sta INH
create_update_outer_loop:
ldy #0
create_update_inner_loop:
lda (INL),Y
sta (OUTL),Y
iny
cpy #49
bne create_update_inner_loop
; toggle PAGE0/PAGE1
txa
and #$1 ; ror?
clc
adc #$54
ldy #1
sta (OUTL),Y
clc
lda #49
adc OUTL
sta OUTL
lda OUTH
adc #0
sta OUTH
dex
bne create_update_outer_loop
ldy #0
lda #$60
sta (OUTL),Y
rts
BARS_START = 46
;===========================
; from 40 to 168?
setup_rasterbars:
lda #4 ; which page
sta RASTER_PAGE
ldx #BARS_START
lda #<(UPDATE_START+(BARS_START*49))
sta OUTL
lda #>(UPDATE_START+(BARS_START*49))
sta OUTH
setup_rasterbars_outer_loop:
ldy #6
lda #13
sta RASTER_X
setup_rasterbars_inner_loop:
txa
pha
inx
txa ; start one earlier
lsr
lsr
and #$fe
tax
clc
lda gr_offsets,X
adc RASTER_X
inc RASTER_X
sta (OUTL),Y
iny
clc
lda gr_offsets+1,X
adc RASTER_PAGE
sta (OUTL),Y
iny
iny
pla
tax
cpy #48
bne setup_rasterbars_inner_loop
clc
lda #49
adc OUTL
sta OUTL
lda OUTH
adc #0
sta OUTH
lda RASTER_PAGE
eor #$04
sta RASTER_PAGE
inx
cpx #184
bne setup_rasterbars_outer_loop
rts
one_scanline:
.byte $2C,$54,$C0 ; bit PAGE0 ; 4
.byte $A9,DEFAULT_COLOR ; lda #$0b ; 2
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $8D,$00,$02 ; sta $200 ; 4
.byte $A5,$FA ; lda TEMP ; 3

View File

@ -0,0 +1,143 @@
; Autogenerates code for Type2 (escape)
; First 9 (?) lines = text mode
;
UPDATE2_START = $9000
;DEFAULT_COLOR = $0
create_update_type2:
ldx #192
lda #<UPDATE2_START
sta OUTL
lda #>UPDATE2_START
sta OUTH
lda #<another_scanline
sta INL
lda #>another_scanline
sta INH
create_update2_outer_loop:
ldy #0
create_update2_inner_loop:
lda (INL),Y
sta (OUTL),Y
iny
cpy #47
bne create_update2_inner_loop
; toggle PAGE0/PAGE1
txa
and #$1 ; ror?
clc
adc #$54
ldy #1
sta (OUTL),Y
clc
lda #47
adc OUTL
sta OUTL
lda OUTH
adc #0
sta OUTH
dex
bne create_update2_outer_loop
ldy #0
lda #$60 ; rts
sta (OUTL),Y
rts
;BARS_START = 46
.if 0
;===========================
; from 40 to 168?
setup_rasterbars:
lda #4 ; which page
sta RASTER_PAGE
ldx #BARS_START
lda #<(UPDATE_START+(BARS_START*49))
sta OUTL
lda #>(UPDATE_START+(BARS_START*49))
sta OUTH
setup_rasterbars_outer_loop:
ldy #6
lda #13
sta RASTER_X
setup_rasterbars_inner_loop:
txa
pha
inx
txa ; start one earlier
lsr
lsr
and #$fe
tax
clc
lda gr_offsets,X
adc RASTER_X
inc RASTER_X
sta (OUTL),Y
iny
clc
lda gr_offsets+1,X
adc RASTER_PAGE
sta (OUTL),Y
iny
iny
pla
tax
cpy #48
bne setup_rasterbars_inner_loop
clc
lda #49
adc OUTL
sta OUTL
lda OUTH
adc #0
sta OUTH
lda RASTER_PAGE
eor #$04
sta RASTER_PAGE
inx
cpx #184
bne setup_rasterbars_outer_loop
rts
.endif
another_scanline:
.byte $2C,$54,$C0 ; bit PAGE0 ; 4
.byte $A2,$01 ;smc018: ldx #$01 ; 2
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A9,$00 ; lda #$00 ; 2
.byte $9D,$00,$02 ; sta $c00,X ; 5
.byte $A2,$00 ; ldx #$00 ; 2
.byte $A5,$85 ; lda ZERO ; 3
.byte $9D,$00,$02 ; sta $c00,X ; 5
;========== ;===
; 47??? ; 65

602
demosplash/credits.s Normal file
View File

@ -0,0 +1,602 @@
; Uses the 40x48d page1/page2 every-1-scanline pageflip mode
; self modifying code to get some extra colors (pseudo 40x192 mode)
; by deater (Vince Weaver) <vince@deater.net>
credits:
;===================
; init screen
jsr TEXT
jsr HOME
bit KEYRESET
;===================
; init vars
lda #0
sta DRAW_PAGE
sta FRAME
lda #<credits_text
sta CREDITS_POINTERL
lda #>credits_text
sta CREDITS_POINTERH
;==================
; setup graphics
jsr create_update_type1
jsr setup_rasterbars
; change to page0/page0/page1/page1 for first 32 lines
; 0101010101010101010101010101010101010101
; 1100110011001100110011001100110011001100
; | *| *| *| *--------| *| *| *| *
; 0 34 78 12 5 4 78 12 56 9
; 11 1 2 22 33 33 3
lda #$54
sta $9001+(49*3)
sta $9001+(49*7)
sta $9001+(49*11)
sta $9001+(49*15)
sta $9001+(49*27)
sta $9001+(49*31)
sta $9001+(49*35)
sta $9001+(49*39)
lda #$55
sta $9001+(49*0)
sta $9001+(49*4)
sta $9001+(49*8)
sta $9001+(49*12)
sta $9001+(49*24)
sta $9001+(49*28)
sta $9001+(49*32)
sta $9001+(49*36)
;=============================
; Load graphic page0
lda #<credits_low
sta GBASL
lda #>credits_low
sta GBASH
lda #$c ; load image to $c00
jsr load_rle_gr
lda #4
sta DRAW_PAGE
jsr gr_copy_to_current ; copy to page1
; GR part
bit PAGE1
bit LORES ; 4
bit SET_GR ; 4
bit FULLGR ; 4
; jsr wait_until_keypressed
;=============================
; Load graphic page1
lda #<credits_high
sta GBASL
lda #>credits_high
sta GBASH
lda #$c ; load to $c00
jsr load_rle_gr
lda #0
sta DRAW_PAGE
jsr gr_copy_to_current
; GR part
bit PAGE0
; jsr wait_until_keypressed
;==============================
; setup graphics for vapor lock
;==============================
jsr vapor_lock
; vapor lock returns with us at beginning of hsync in line
; 114 (7410 cycles), so with 5070 lines to go
; GR part
bit LORES ; 4
bit SET_GR ; 4
bit FULLGR ; 4
jsr gr_copy_to_current ; 6+ 9292
; 5070 + 4550 = 9620
; 9292
; 12
; 6
; ====
; 310
; - 3 for jmp
; 307
; Try X=9 Y=6 cycles=307
ldy #6 ; 2
tloopA: ldx #9 ; 2
tloopB: dex ; 2
bne tloopB ; 2nt/3
dey ; 2
bne tloopA ; 2nt/3
jmp credits_loop ; 3
.align $100
;================================================
; Display Loop
;================================================
; each scan line 65 cycles
; 1 cycle each byte (40cycles) + 25 for horizontal
; Total of 12480 cycles to draw screen
; Vertical blank = 4550 cycles (70 scan lines)
; Total of 17030 cycles to get back to where was
; We want to alternate between page1 and page2 every 65 cycles
; vblank = 4550 cycles to do scrolling
credits_loop:
jsr $9000
;======================================================
; We have 4550 cycles in the vblank, use them wisely
;======================================================
; 4550 -- VBLANK
; -582 -- erase 22+4*(8+6+126) = 582
; -696 -- move+draw 4*(16+26+6+126) = 696
; -10 -- keypress
; -12 -- call/return of draw code
; -446 -- do_words
;=======
; 2804
pad_time:
; we erase, then draw
; doing a blanket erase of all 128 lines would cost 3459 cycles!
;=========================
; do words
;=========================
jsr draw_credits ; 6+440
;=========================
; ERASE
;=========================
lda #$00 ; 2
sta smc_raster_color1_1+1 ; 4
sta smc_raster_color1_2+1 ; 4
sta smc_raster_color2_1+1 ; 4
sta smc_raster_color2_2+1 ; 4
sta smc_raster_color3_1+1 ; 4
;=============
; 22
; erase red
lda red_x ; 4
and #$7f ; 2
tax ; 2
jsr draw_rasterbar ; 6+126
; erase yellow
lda yellow_x ; 4
and #$7f ; 2
tax ; 2
jsr draw_rasterbar ; 6+126
; erase green
lda green_x ; 4
and #$7f ; 2
tax ; 2
jsr draw_rasterbar ; 6+126
; erase red
lda blue_x ; 4
and #$7f ; 2
tax ; 2
jsr draw_rasterbar ; 6+126
;=========================
; MOVE and DRAW
;=========================
;============
; move red
ldy red_x ; 4
lda movement_table,Y ; 4
sta red_x ; 4
and #$7f ; 2
tax ; 2
;==========
; 16
; draw red
lda #$33 ; 2
sta smc_raster_color1_1+1 ; 4
sta smc_raster_color1_2+1 ; 4
lda #$bb ; 2
sta smc_raster_color2_1+1 ; 4
sta smc_raster_color2_2+1 ; 4
lda #$ff ; 2
sta smc_raster_color3_1+1 ; 4
;=============
; 26
jsr draw_rasterbar ; 6+126
;============
; move yellow
ldy yellow_x ; 4
lda movement_table,Y ; 4
sta yellow_x ; 4
and #$7f ; 2
tax ; 2
;==========
; 16
; draw yellow
lda #$88 ; 2
sta smc_raster_color1_1+1 ; 4
sta smc_raster_color1_2+1 ; 4
lda #$dd ; 2
sta smc_raster_color2_1+1 ; 4
sta smc_raster_color2_2+1 ; 4
lda #$ff ; 2
sta smc_raster_color3_1+1 ; 4
;=============
; 26
jsr draw_rasterbar ; 6+126
;============
; move green
ldy green_x ; 4
lda movement_table,Y ; 4
sta green_x ; 4
and #$7f ; 2
tax ; 2
;==========
; 16
; draw green
lda #$44 ; 2
sta smc_raster_color1_1+1 ; 4
sta smc_raster_color1_2+1 ; 4
lda #$cc ; 2
sta smc_raster_color2_1+1 ; 4
sta smc_raster_color2_2+1 ; 4
lda #$ff ; 2
sta smc_raster_color3_1+1 ; 4
;=============
; 26
jsr draw_rasterbar ; 6+126
;============
; move blue
ldy blue_x ; 4
lda movement_table,Y ; 4
sta blue_x ; 4
and #$7f ; 2
tax ; 2
;==========
; 16
; draw blue
lda #$22 ; 2
sta smc_raster_color1_1+1 ; 4
sta smc_raster_color1_2+1 ; 4
lda #$66 ; 2
sta smc_raster_color2_1+1 ; 4
sta smc_raster_color2_2+1 ; 4
lda #$ff ; 2
sta smc_raster_color3_1+1 ; 4
;=============
; 26
jsr draw_rasterbar ; 6+126
;============================
; WAIT for VBLANK to finish
;============================
; Try X=61 Y=9 cycles=2800 R4
nop
nop
ldy #9 ; 2
tloop1: ldx #61 ; 2
tloop2: dex ; 2
bne tloop2 ; 2nt/3
dey ; 2
bne tloop1 ; 2nt/3
lda KEYPRESS ; 4
bpl cno_keypress ; 3
rts
cno_keypress:
jmp credits_loop ; 3
;========================
; Draw a rasterbar
; unroll as memory is free! haha
;========================
; X is location
; 2+22+24+24+24+24+6 = 126
draw_rasterbar:
ldy #0 ; 2
;====
lda y_lookup_l,X ; 4
sta OUTL ; 3
lda y_lookup_h,X ; 4
sta OUTH ; 3
smc_raster_color1_1:
lda #$33 ; 2
sta (OUTL),Y ; 6
;============
; 22
inx ; 2
lda y_lookup_l,X ; 4
sta OUTL ; 3
lda y_lookup_h,X ; 4
sta OUTH ; 3
smc_raster_color2_1:
lda #$bb ; 2
sta (OUTL),Y ; 6
inx ; 2
lda y_lookup_l,X ; 4
sta OUTL ; 3
lda y_lookup_h,X ; 4
sta OUTH ; 3
smc_raster_color3_1:
lda #$ff ; 2
sta (OUTL),Y ; 6
inx
lda y_lookup_l,X ; 4
sta OUTL ; 3
lda y_lookup_h,X ; 4
sta OUTH ; 3
smc_raster_color2_2:
lda #$bb ; 2
sta (OUTL),Y ; 6
inx
lda y_lookup_l,X ; 4
sta OUTL ; 3
lda y_lookup_h,X ; 4
sta OUTH ; 3
smc_raster_color1_2:
lda #$33 ; 2
sta (OUTL),Y ; 6
rts ; 6
red_x: .byte $10
yellow_x: .byte $20
green_x: .byte $30
blue_x: .byte $40
;=================================
; draw credits
;=================================
; credits pointer
;
; noframe: 13 = 13 (need 427) +12
; end: 13+12= 25 (need 415) +83
; newchar: 13+12+4+79 = 108 (need 333) +332
; putchar: 13+12+4+377+28+6 = 440
draw_credits:
inc FRAME ; 5
lda FRAME ; 3
and #$f ; 2
beq credits_handle_next ; 3
;====
; 13
credits_long_delay:
; -1
; 12+1 = 13 cycles
lda TEMP ; 3
lda TEMP ; 3
lda TEMP ; 3
nop ; 2
nop ; 2
credits_skip:
; 83 cycles
lda #56 ; 2
jsr delay_a ; delay 25+a (81)
credits_short_delay:
; 332 cycles-6 = 326
; 83 cycles
lda #56 ; 2
jsr delay_a ; delay 25+a (81)
; 243 cycles
lda #216 ; 2
jsr delay_a ; delay 25+a (241)
rts ; 6
credits_handle_next:
ldy #0 ; 2
lda (CREDITS_POINTERL),Y ; 5
cmp #$ff ; 2
beq credits_skip ; 3
;===
; 12
; -1
cmp #'@' ; 2
bcs credits_put_char ; bge ; 3
;====
; 4
credits_check_xy:
; -1
sta CREDITS_Y ; 3
iny ; 2
lda (CREDITS_POINTERL),Y ; 5
sta CREDITS_X ; 3
iny ; 2
;====
; 14
lda (CREDITS_POINTERL),Y ; 5
sta colors_hi ; 4
iny ; 2
lda (CREDITS_POINTERL),Y ; 5
sta colors_hi+1 ; 4
iny ; 2
lda (CREDITS_POINTERL),Y ; 5
sta colors_lo ; 4
iny ; 2
lda (CREDITS_POINTERL),Y ; 5
sta colors_lo+1 ; 4
iny ; 2
;===
; 44
clc ; 2
tya ; 2
adc CREDITS_POINTERL ; 3
sta CREDITS_POINTERL ; 3
lda #0 ; 2
adc CREDITS_POINTERH ; 3
sta CREDITS_POINTERH ; 3
jmp credits_short_delay ; 3
;====
; 21
credits_put_char:
ldx CREDITS_X ; 3
ldy CREDITS_Y ; 3
jsr put_char ; 6+365
;======
; 377
clc ; 2
lda CREDITS_X ; 3
adc #4 ; 2
sta CREDITS_X ; 3
clc ; 2
lda #1 ; 2
adc CREDITS_POINTERL ; 3
sta CREDITS_POINTERL ; 3
lda #0 ; 2
adc CREDITS_POINTERH ; 3
sta CREDITS_POINTERH ; 3
;=====
; 28
draw_credits_end:
rts ; 6
.align $100
credits_text:
.byte 0,10, $B1,$3F,$F3,$1B, 'C','O','D','E','[' ; "CODE:"
.byte 6,8, $B1,$3F,$F3,$1B, 'D','E','A','T','E','R' ; "DEATER"
.byte '@','@' ; time pad
.byte 0,10, $00,$00,$00,$00, 'C','O','D','E','[' ; "CODE:"
.byte 6,8, $00,$00,$00,$00, 'D','E','A','T','E','R' ; "DEATER"
.byte 0,8, $D8,$9F,$F9,$8D, 'M','U','S','I','C','[' ; "MUSIC:"
.byte 6,14, $D8,$9F,$F9,$8D, 'D','Y','A' ; "DYA"
.byte '@','@' ; time pad
.byte 0,8, $00,$00,$00,$00, 'M','U','S','I','C','[' ; "MUSIC:"
.byte 6,14, $00,$00,$00,$00, 'D','Y','A' ; "DYA"
.byte 0,8, $72,$6F,$F6,$27, 'M','A','G','I','C','[' ; "MAGIC:"
.byte 6,8, $72,$6F,$F6,$27, 'Q','K','U','M','B','A' ; "QKUMBA"
.byte '@','@' ; time pad
.byte 0,8, $00,$00,$00,$00, 'M','A','G','I','C','[' ; "MAGIC:"
.byte 6,8, $00,$00,$00,$00, 'Q','K','U','M','B','A' ; "QKUMBA"
.byte 0,8, $C4,$CF,$FC,$4C, 'T','H','A','N','K','S' ; "THANKS"
.byte 6,4, $C4,$CF,$FC,$4C, 'F','R','O','G','Y','S','U','E' ; "FROGYSUE"
.byte '@' ; time pad
.byte 0,8, $00,$00,$00,$00, 'T','H','A','N','K','S' ; "THANKS"
.byte 6,4, $00,$00,$00,$00, 'F','R','O','G','Y','S','U','E' ; "FROGYSUE"
.byte 0,10, $75,$5F,$F5,$57, 'A','@','V','M','W' ; "A VMW"
.byte 6,0, $75,$5F,$F5,$57, 'P','R','O','D','U','C','T','I','O','N'
; "PRODUCTION"
.byte 255 ; done
credits_text_end:
.assert >credits_text = >(credits_text_end-1), error, "credits_text crosses page"

BIN
demosplash/credits_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -18,6 +18,51 @@ demosplash2019:
jsr clear_ay_both
jsr pt3_init_song
;====================================
; generate 4 patterns worth of music
; at address $9000
lda #0
sta FRAME_PAGE
lda #0
sta FRAME_OFFSET
frame_decode_loop:
jsr pt3_make_frame
jsr pt3_write_frame
inc FRAME_OFFSET
bne frame_decode_loop
inc r0_wrsmc+2 ; 6
inc r1_wrsmc+2 ; 6
inc r2_wrsmc+2 ; 6
inc r4_wrsmc+2 ; 6
inc r13_wrsmc+2 ; 6
inc r6_wrsmc+2 ; 6
inc r7_wrsmc+2 ; 6
inc r8_wrsmc+2 ; 6
inc r9_wrsmc+2 ; 6
inc r11_wrsmc+2 ; 6
inc r12_wrsmc+2 ; 6
inc FRAME_PAGE
lda FRAME_PAGE
cmp #3
bne frame_decode_loop
lda #0
sta FRAME_OFFSET
; lda #1
; sta LOOP
@ -45,41 +90,68 @@ demosplash2019:
; apple II intro
;============================
nop
nop
nop
; jsr appleII_intro
;===========================
; show some pictures
;============================
; start music
; cli ; enable interrupts
;===========================
; missing scene
;===========================
; jsr missing_intro
; nop
; nop
; nop
jsr missing_intro
;========================
; start irq music
;========================
; cli ; enable interrupts
;===========================
; book scene
;============================
; jsr open_book
;===========================
; starbase scene
;===========================
; jsr starbase
jsr starbase
;===========================
; escape scene
;===========================
jsr escape
nop
nop
nop
; jsr escape
;===========================
; book scene
;===========================
; jsr book
nop
nop
nop
; jsr end_book
;===========================
; credits
;===========================
jsr credits
; wait wait wait
@ -101,18 +173,24 @@ wait_until_keypressed:
; Apple II intro
.include "appleII_intro.s"
.include "appleII_40_96.inc"
.align $100
.include "vapor_lock.s"
.include "delay_a.s"
.include "gr_unrle.s"
.include "gr_offsets.s"
.include "gr_copy.s"
.include "gr_offsets.s"
;.include "text_print.s"
.include "gr_pageflip.s"
.align $100
.include "gr_fast_clear.s"
;.include "gr_overlay.s"
.align $100
.include "movement_table.s"
.include "font.s"
.align $100
.include "offsets_table.s"
; missing
.include "missing.s"
@ -121,16 +199,30 @@ wait_until_keypressed:
.include "starbase.s"
; escape
.include "escape.s"
;.include "escape.s"
; book
.include "book.s"
; credits
.include "credits.s"
; Music player
.include "pt3_lib_core.s"
.include "pt3_lib_init.s"
.include "pt3_lib_mockingboard.s"
.include "interrupt_handler.s"
.include "pt3_lib_play_frame.s"
.include "pt3_lib_write_frame.s"
.include "create_update_type1.s"
.include "create_update_type2.s"
; Pictures (no need to align)
.include "appleII_40_96.inc"
.include "earth.inc"
.include "book_40_48d.inc"
.include "credits_bg.inc"
PT3_LOC = song
@ -138,4 +230,4 @@ PT3_LOC = song
; must be page aligned
.align 256
song:
.incbin "dya_space_demo.pt3"
.incbin "dya_space_demo2.pt3"

View File

@ -18,51 +18,6 @@ demosplash2019:
jsr clear_ay_both
jsr pt3_init_song
;====================================
; generate 4 patterns worth of music
; at address $9000
lda #0
sta FRAME_PAGE
lda #0
sta FRAME_OFFSET
frame_decode_loop:
jsr pt3_make_frame
jsr pt3_write_frame
inc FRAME_OFFSET
bne frame_decode_loop
inc r0_wrsmc+2 ; 6
inc r1_wrsmc+2 ; 6
inc r2_wrsmc+2 ; 6
inc r4_wrsmc+2 ; 6
inc r13_wrsmc+2 ; 6
inc r6_wrsmc+2 ; 6
inc r7_wrsmc+2 ; 6
inc r8_wrsmc+2 ; 6
inc r9_wrsmc+2 ; 6
inc r11_wrsmc+2 ; 6
inc r12_wrsmc+2 ; 6
inc FRAME_PAGE
lda FRAME_PAGE
cmp #3
bne frame_decode_loop
lda #0
sta FRAME_OFFSET
; lda #1
; sta LOOP
@ -90,20 +45,8 @@ frame_decode_loop:
; apple II intro
;============================
nop
nop
nop
; jsr appleII_intro
;===========================
; missing scene
;===========================
jsr missing_intro
;===========================
; show some pictures
;============================
@ -113,7 +56,11 @@ frame_decode_loop:
; cli ; enable interrupts
;===========================
; missing scene
;===========================
; jsr missing_intro
;===========================
; starbase scene
@ -125,7 +72,7 @@ frame_decode_loop:
; escape scene
;===========================
; jsr escape
jsr escape
;===========================
; book scene
@ -155,46 +102,43 @@ wait_until_keypressed:
; Apple II intro
.include "appleII_intro.s"
.include "appleII_40_96.inc"
.align $100
.include "vapor_lock.s"
.include "delay_a.s"
.include "gr_unrle.s"
.include "gr_copy.s"
.include "gr_offsets.s"
.include "gr_copy.s"
;.include "text_print.s"
;.include "gr_pageflip.s"
.include "gr_pageflip.s"
.align $100
.include "gr_fast_clear.s"
;.include "gr_overlay.s"
.align $100
.include "font.s"
; missing
.include "missing.s"
; Starbase
;.include "starbase.s"
.include "starbase.s"
; escape
;.include "escape.s"
.include "escape.s"
; book
;.include "book.s"
.include "book.s"
; Music player
.include "pt3_lib_core.s"
.include "pt3_lib_init.s"
.include "pt3_lib_mockingboard.s"
.include "interrupt_handler.s"
.include "pt3_lib_play_frame.s"
.include "pt3_lib_write_frame.s"
; Images (no need to align)
.include "credits_bg.inc"
PT3_LOC = song
; must be page aligned
.align 256
song:
.incbin "dya_space_demo2.pt3"
.incbin "dya_space_demo.pt3"

View File

@ -5,11 +5,6 @@
; by deater (Vince Weaver) <vince@deater.net>
; TODO:
; end level after a certain number of points
; track score properly
escape:
;===================
@ -59,6 +54,13 @@ escape:
sta ASTEROID_SPEED
sta XPOS
;==================
; setup graphics
jsr create_update_type2
; jsr setup_rasterbars
;=============================
; Load graphic page0
@ -107,8 +109,7 @@ escape:
jsr move_and_print
; ; GR part
; GR part
bit PAGE0
;==============================
@ -165,13 +166,15 @@ loopRR: dex ; 2
sprites_display_loop:
.include "sprites_screen.s"
jsr $9000
;.include "sprites_screen.s"
;======================================================
; We have 4550 cycles in the vblank, use them wisely
;======================================================
; 4550 -- VBLANK
; -12 -- call to graphics code
;-1835 -- draw ship (131*14)+1
; -829 -- erase ship (100*8)+(14*2)+1
; -167 -- erase fire
@ -883,7 +886,7 @@ done_sparkle:
pad_time:
pad_time2:
;============================
@ -1150,9 +1153,9 @@ keypress_done:
sprite_line:
sty TEMPY ; 3
lda y_lookup_l,Y ; 4
lda y_lookup2_l,Y ; 4
sta OUTL ; 3
lda y_lookup_h,Y ; 4
lda y_lookup2_h,Y ; 4
sta OUTH ; 3
;=======
; 17
@ -1224,9 +1227,9 @@ sprite_line:
erase_line:
sty TEMPY ; 3
lda y_lookup_l,Y ; 4
lda y_lookup2_l,Y ; 4
sta OUTL ; 3
lda y_lookup_h,Y ; 4
lda y_lookup2_h,Y ; 4
sta OUTH ; 3
;=======
; 17
@ -1274,9 +1277,9 @@ erase_line:
fire_line:
sty TEMPY ; 3
lda y_lookup_l,Y ; 4
lda y_lookup2_l,Y ; 4
sta OUTL ; 3
lda y_lookup_h,Y ; 4
lda y_lookup2_h,Y ; 4
sta OUTH ; 3
;=======
; 17
@ -1365,7 +1368,7 @@ erase_fire:
.align $100
random_values:
.incbin "random.data"
.include "sprites_table.s"
.include "offsets_table2.s"
.include "text_print.s"
.align $100
.include "gr_putsprite_fast.s"
@ -1373,8 +1376,6 @@ random_values:
;.assert >gr_offsets = >gr_offsets_done, error, "gr_offsets crosses page"
.assert >escape_wait_loop = >(escape_wait_loop_end-1), error, "escape_wait_loop crosses page"
.include "earth.inc"
.align $100
ship_sprite:

View File

@ -165,27 +165,27 @@ font_high:
;H1L ** ** ** ** ** ** ** ** ** **
;L1L ** ** ** ** ** ** ** ** ** ** ** ** **
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; G
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; H
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; I
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; J
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; K
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; L
.byte $f0,$0f,$0f,$ff,$00,$ff,$00,$00 ; G
.byte $ff,$00,$ff,$ff,$0f,$ff,$00,$00 ; H
.byte $0f,$ff,$0f,$00,$ff,$00,$00,$00 ; I
.byte $00,$00,$ff,$f0,$00,$ff,$00,$00 ; J
.byte $ff,$00,$ff,$ff,$0f,$f0,$00,$00 ; K
.byte $ff,$00,$00,$ff,$00,$00,$00,$00 ; L
;H0H ** ** ** ** ** ** ** ** ** **
;L0H ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
;H0H ** ** ** ** ** ** ** ** **
;L0H ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
;H0L ** ** ** ** ** ** ** ** ** ** ** ** **
;L0L ** ** ** ** ** ** ** ** ** ** ** ** ** **
;H1H ** ** ** ** ** ** ** ** ** ** ** ** **
;L1H ** ** ** ** ** ** ** ** ** ** **
;H1L ** ** ** ** ** ** ** ** ** ** ** ** **
;L1L ** ** ** ** ** ** ** ** ** **
;H1L ** ** ** ** ** ** ** ** ** ** **
;L1L ** ** ** ** ** ** ** ** **
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; M
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; N
.byte $ff,$f0,$f0,$ff,$0f,$ff,$00,$00 ; M
.byte $ff,$0f,$f0,$ff,$00,$ff,$00,$00 ; N
.byte $f0,$0f,$f0,$ff,$f0,$ff,$00,$00 ; O
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; P
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; Q
.byte $ff,$0f,$f0,$ff,$0f,$00,$00,$00 ; P
.byte $f0,$0f,$f0,$0f,$f0,$0f,$00,$00 ; Q
.byte $ff,$0f,$f0,$ff,$0f,$f0,$00,$00 ; R
;H0H ** ** ** ** ** ** ** ** ** ** ** ** **
@ -197,24 +197,26 @@ font_high:
;H1L ** ** ** ** ** ** ** ** ** ** **
;L1L ** ** ** ** ** ** ** ** **
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; S
.byte $f0,$0f,$0f,$00,$0f,$ff,$00,$00 ; S
.byte $0f,$ff,$0f,$00,$ff,$00,$00,$00 ; T
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; U
.byte $ff,$00,$ff,$ff,$f0,$ff,$00,$00 ; U
.byte $ff,$00,$ff,$0f,$f0,$0f,$00,$00 ; V
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; W
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; X
.byte $ff,$00,$ff,$ff,$f0,$ff,$00,$00 ; W
.byte $ff,$00,$ff,$f0,$0f,$f0,$00,$00 ; X
;H0H ** ** ** ** **
;L0H ** ** **
;H0L ** ** **
;L0H ** ** ** **
;H0L ** ** ** **
;L0L ** ** ** **
;H1H ** **
;L1H ** **
;H1L ** **
;L1H ** ** **
;H1L ** ** **
;L1L ** ** ** **
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; Y
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; Z
.byte $ff,$00,$ff,$00,$ff,$00,$00,$00 ; Y
.byte $0f,$0f,$ff,$f0,$00,$00,$00,$00 ; Z
.byte $00,$f0,$00,$00,$f0,$00,$00,$00 ; : ([)
@ -229,26 +231,27 @@ font_low: ; 2 pages later
.byte $ff,$ff,$0f,$ff,$f0,$f0,$00,$00 ; E
.byte $ff,$ff,$0f,$ff,$00,$00,$00,$00 ; F
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; G
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; H
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; I
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; J
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; K
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; L
.byte $ff,$00,$f0,$0f,$f0,$ff,$00,$00 ; G
.byte $ff,$f0,$ff,$ff,$00,$ff,$00,$00 ; H
.byte $00,$ff,$00,$f0,$ff,$f0,$00,$00 ; I
.byte $00,$00,$ff,$00,$f0,$0f,$00,$00 ; J
.byte $ff,$f0,$0f,$ff,$00,$ff,$00,$00 ; K
.byte $ff,$00,$00,$ff,$f0,$f0,$00,$00 ; L
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; M
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; N
.byte $ff,$ff,$f0,$ff,$00,$ff,$00,$00 ; M
.byte $ff,$0f,$ff,$ff,$00,$ff,$00,$00 ; N
.byte $ff,$0f,$ff,$0f,$f0,$0f,$00,$00 ; O
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; P
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; Q
.byte $ff,$f0,$ff,$ff,$00,$00,$00,$00 ; P
.byte $ff,$0f,$ff,$0f,$00,$ff,$00,$00 ; Q
.byte $ff,$ff,$0f,$ff,$00,$ff,$00,$00 ; R
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; S
.byte $ff,$f0,$00,$f0,$f0,$0f,$00,$00 ; S
.byte $00,$ff,$00,$00,$ff,$00,$00,$00 ; T
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; U
.byte $ff,$00,$ff,$0f,$f0,$0f,$00,$00 ; U
.byte $ff,$00,$ff,$0f,$ff,$0f,$00,$00 ; V
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; W
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; X
.byte $ff,$00,$ff,$ff,$0f,$ff,$00,$00 ; W
.byte $0f,$f0,$0f,$ff,$00,$ff,$00,$00 ; X
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; Y
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; Z
.byte $ff,$f0,$ff,$00,$ff,$00,$00,$00 ; Y
.byte $00,$f0,$0f,$ff,$f0,$f0,$00,$00 ; Z
.byte $00,$0f,$00,$00,$0f,$00,$00,$00 ; : ([)

View File

@ -0,0 +1,26 @@
CC = gcc
CFLAGS = -Wall -O2
LFLAGS =
all: creator offsets offsets2
creator: creator.o
$(CC) -o creator creator.o $(LFLAGS)
creator.o: creator.c
$(CC) $(CFLAGS) -c creator.c
offsets: offsets.o
$(CC) -o offsets offsets.o $(LFLAGS)
offsets.o: offsets.c
$(CC) $(CFLAGS) -c offsets.c
offsets2: offsets2.o
$(CC) -o offsets2 offsets2.o $(LFLAGS)
offsets2.o: offsets2.c
$(CC) $(CFLAGS) -c offsets2.c
clean:
rm -f *.o creator offsets offsets2

View File

@ -0,0 +1,18 @@
#include <stdio.h>
int main(int argc, char **argv) {
int i,j,page=0;
for(i=0;i<192;i++) {
printf("\n; Line %d\n",i);
printf("\tbit\tPAGE%d\t;4\n",page);
printf("\tlda\t#$0b\t; 2\n");
for(j=0;j<14;j++) {
printf("\tsta\t$200\t; 4\n");
}
printf("\tlda\tTEMP\t; 3\n");
page=!page;
}
return 0;
}

View File

@ -0,0 +1,32 @@
#include <stdio.h>
#define NUMBER 128
//#define START 32
//#define START 40
#define START 48
int main(int argc, char **argv) {
int i;
printf("y_lookup_h:\n");
for(i=0;i<NUMBER;i++) {
if (i%8==0) printf(".byte\t");
//printf(">(smc%3d+1)",i+START);
printf(">($%4X)",0x9000+(i+START)*49+4);
if (i%8!=7) printf(",");
else printf("\n");
}
printf("y_lookup_l:\n");
for(i=0;i<NUMBER;i++) {
if (i%8==0) printf(".byte\t");
//printf("<(smc%3d+1)",i+START);
printf("<($%4X)",0x9000+(i+START)*49+4);
if (i%8!=7) printf(",");
else printf("\n");
}
return 0;
}

View File

@ -0,0 +1,32 @@
#include <stdio.h>
#define NUMBER 128
#define START 32
//#define START 40
//#define START 48
int main(int argc, char **argv) {
int i;
printf("y_lookup2_h:\n");
for(i=0;i<NUMBER;i++) {
if (i%8==0) printf(".byte\t");
//printf(">(smc%3d+1)",i+START);
printf(">($%4X)",0x9000+(i+START)*47+4);
if (i%8!=7) printf(",");
else printf("\n");
}
printf("y_lookup2_l:\n");
for(i=0;i<NUMBER;i++) {
if (i%8==0) printf(".byte\t");
//printf("<(smc%3d+1)",i+START);
printf("<($%4X)",0x9000+(i+START)*47+4);
if (i%8!=7) printf(",");
else printf("\n");
}
return 0;
}

View File

@ -1,130 +0,0 @@
;=========================================================
; gr_twoscreen_scroll, 40x48 version
;=========================================================
; offset is in BG_SCROLL, must be multiple of 2
;
; two screens, top is at $1000, bottom at $BC00
; copy lines Y-48 from $1000 to $c00
; copy lines 0 - (48-y) from $BC00 to $c00
gr_twoscreen_scroll:
lda #0
sta TEMPY ; dest
ldy BG_SCROLL
cpy #48
beq gr_twoscreen_bottom ; no top to draw
gr_twoscreen_top:
; calculate source
lda gr_offsets+1,Y
clc
adc #($10-4)
sta gr_twoscreen_smc_src+2
lda gr_offsets,Y
sta gr_twoscreen_smc_src+1
tya
pha
; calculate destination
lda TEMPY
tay
lda gr_offsets+1,Y
clc
adc #($c-4)
sta gr_twoscreen_smc_dst+2
lda gr_offsets,Y
sta gr_twoscreen_smc_dst+1
ldx #0
gr_twoscreen_line_loop:
gr_twoscreen_smc_src:
lda $1000,X
gr_twoscreen_smc_dst:
sta $c00,X
inx
cpx #40
bne gr_twoscreen_line_loop
inc TEMPY
inc TEMPY
pla
tay
iny
iny
cpy #48
bne gr_twoscreen_top
;===============================
; now copy the bottom from $BC00
lda BG_SCROLL
beq done_twoscreen_bottom ; if 0, no bottom
gr_twoscreen_bottom:
ldy #0
gr_twoscreen_bottom_loop:
; calculate source
lda gr_offsets+1,Y
clc
adc #($bc-4)
sta gr_twoscreen_bottom_smc_src+2
lda gr_offsets,Y
sta gr_twoscreen_bottom_smc_src+1
tya
pha
; calculate destination
lda TEMPY
tay
lda gr_offsets+1,Y
clc
adc #($c-4)
sta gr_twoscreen_bottom_smc_dst+2
lda gr_offsets,Y
sta gr_twoscreen_bottom_smc_dst+1
ldx #0
gr_twoscreen_bottom_line_loop:
gr_twoscreen_bottom_smc_src:
lda $BC00,X
gr_twoscreen_bottom_smc_dst:
sta $c00,X
inx
cpx #40
bne gr_twoscreen_bottom_line_loop
inc TEMPY
inc TEMPY
pla
tay
iny
iny
cpy BG_SCROLL
bne gr_twoscreen_bottom_loop
done_twoscreen_bottom:
rts ; 6

View File

@ -12,9 +12,9 @@
astro_stand:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
@ -44,9 +44,9 @@ astro_walk_progression:
astro_walk_left1:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ab,$bb,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$22,$a2,$66,$aa
@ -55,9 +55,9 @@ astro_walk_left1:
astro_walk_left2:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ba,$bb,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$22,$a2,$66,$aa
@ -66,9 +66,9 @@ astro_walk_left2:
astro_walk_left3:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ba,$2b,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$22,$a2,$66,$aa
@ -77,9 +77,9 @@ astro_walk_left3:
astro_walk_left4:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ba,$2b,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$22,$a2,$6a,$aa
@ -88,9 +88,9 @@ astro_walk_left4:
astro_walk_left5:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$bb,$22,$aa,$aa
.byte $fa,$aa,$22,$aa,$aa
.byte $aa,$66,$22,$aa,$aa
@ -99,9 +99,9 @@ astro_walk_left5:
astro_walk_left6:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ba,$2b,$aa,$aa
.byte $aa,$6a,$22,$aa,$aa
.byte $fa,$66,$a2,$2a,$aa
@ -110,9 +110,9 @@ astro_walk_left6:
astro_walk_left7:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$6a,$22,$aa,$aa
.byte $aa,$66,$a2,$2a,$aa
@ -121,9 +121,9 @@ astro_walk_left7:
astro_walk_left8:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ba,$2b,$aa,$aa
.byte $aa,$6a,$22,$aa,$aa
.byte $aa,$66,$a2,$22,$aa
@ -132,9 +132,9 @@ astro_walk_left8:
astro_walk_left9:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$aa,$62,$a2,$fa
@ -143,9 +143,9 @@ astro_walk_left9:
astro_walk_left10:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$a2,$bb,$aa,$aa
.byte $aa,$ba,$bb,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
@ -286,8 +286,8 @@ astro_run_left9:
kick1:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$ba,$2b,$aa,$aa
.byte $bb,$ab,$22,$ba,$aa
.byte $aa,$aa,$22,$aa,$aa
@ -303,8 +303,8 @@ kick1:
shooting1:
.byte 5,8
.byte $AA,$AA,$8A,$8A,$AA
.byte $AA,$AA,$bb,$88,$AA
.byte $0A,$0A,$AA,$2B,$AA
.byte $AA,$AA,$bb,$88,$8A
.byte $0A,$0A,$AA,$2B,$88
.byte $AA,$A0,$AB,$B2,$AA
.byte $AA,$AA,$AA,$22,$AA
.byte $AA,$AA,$AA,$22,$AA
@ -347,8 +347,8 @@ crouch1:
.byte 3,8
.byte $aa,$aa,$aa
.byte $8a,$8a,$aa
.byte $bb,$88,$aa
.byte $aa,$2b,$aa
.byte $bb,$88,$8a
.byte $aa,$2b,$88
.byte $aa,$bb,$aa
.byte $aa,$bb,$aa
.byte $22,$22,$aa
@ -359,8 +359,8 @@ crouch2:
.byte $AA,$aa,$aa,$aa,$AA
.byte $AA,$aa,$aa,$aa,$AA
.byte $AA,$8a,$8a,$aa,$AA
.byte $AA,$bb,$88,$aa,$AA
.byte $AA,$aa,$2b,$2a,$AA
.byte $AA,$bb,$88,$8a,$AA
.byte $AA,$aa,$2b,$28,$AA
.byte $AA,$aa,$bb,$22,$AA
.byte $AA,$ba,$2b,$aa,$AA
.byte $AA,$52,$f2,$f2,$AA
@ -477,8 +477,8 @@ astro_jump_progression:
jump1:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$2b,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
@ -488,7 +488,7 @@ jump1:
jump2:
.byte 5,8
.byte $8a,$8a,$aa,$aa,$aa
.byte $bb,$88,$aa,$aa,$aa
.byte $bb,$88,$8a,$8a,$aa
.byte $aa,$2b,$22,$aa,$aa
.byte $aa,$22,$bb,$aa,$aa
.byte $aa,$a2,$bb,$aa,$aa
@ -499,7 +499,7 @@ jump2:
jump3:
.byte 5,8
.byte $8a,$8a,$aa,$aa,$aa
.byte $bb,$88,$aa,$aa,$aa
.byte $bb,$88,$8a,$8a,$aa
.byte $aa,$2b,$22,$aa,$aa
.byte $aa,$22,$bb,$aa,$aa
.byte $aa,$a2,$bb,$aa,$aa
@ -510,7 +510,7 @@ jump3:
jump4:
.byte 5,8
.byte $8a,$8a,$aa,$aa,$aa
.byte $bb,$88,$aa,$aa,$aa
.byte $bb,$88,$8a,$8a,$aa
.byte $aa,$2b,$22,$aa,$aa
.byte $aa,$22,$bb,$aa,$aa
.byte $aa,$a2,$bb,$aa,$aa
@ -521,7 +521,7 @@ jump4:
jump5:
.byte 5,8
.byte $b8,$88,$aa,$aa,$aa
.byte $ab,$b8,$aa,$aa,$aa
.byte $ab,$b8,$8a,$8a,$aa
.byte $ba,$b2,$2b,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
@ -532,8 +532,8 @@ jump5:
jump6:
.byte 5,8
.byte $aa,$b8,$88,$aa,$aa
.byte $aa,$ab,$b8,$aa,$aa
.byte $ab,$ba,$b2,$aa,$aa
.byte $aa,$ab,$b8,$8a,$aa
.byte $ab,$ba,$b2,$aa,$a8
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$66,$22,$2a,$fa
@ -543,8 +543,8 @@ jump6:
jump7:
.byte 5,8
.byte $aa,$b8,$88,$aa,$aa
.byte $aa,$ab,$b8,$aa,$aa
.byte $aa,$aa,$b2,$aa,$aa
.byte $aa,$ab,$b8,$8a,$aa
.byte $aa,$aa,$b2,$a8,$aa
.byte $ab,$ab,$22,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$66,$22,$2a,$fa
@ -554,8 +554,8 @@ jump7:
jump8:
.byte 5,8
.byte $aa,$8a,$8a,$aa,$aa
.byte $aa,$bb,$88,$aa,$aa
.byte $aa,$aa,$2b,$aa,$aa
.byte $aa,$bb,$88,$8a,$aa
.byte $aa,$aa,$2b,$88,$aa
.byte $aa,$b2,$bb,$aa,$aa
.byte $aa,$aa,$22,$aa,$aa
.byte $aa,$2a,$22,$aa,$aa
@ -590,8 +590,8 @@ crouch_shooting:
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$8a,$8a,$aa
.byte $AA,$AA,$bb,$88,$aa
.byte $0A,$0A,$aa,$2b,$2a
.byte $AA,$AA,$bb,$88,$8a
.byte $0A,$0A,$aa,$2b,$28
.byte $AA,$A0,$ba,$bb,$22
.byte $AA,$AA,$2a,$2b,$aa
.byte $AA,$AA,$52,$f2,$f2
@ -607,8 +607,8 @@ crouch_kicking:
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$8a,$8a,$aa
.byte $AA,$AA,$bb,$88,$aa
.byte $AA,$AA,$aa,$2b,$2a
.byte $AA,$AA,$bb,$88,$8a
.byte $AA,$AA,$aa,$2b,$28
.byte $AA,$AA,$aa,$bb,$22
.byte $AA,$AA,$2a,$bb,$a2
.byte $5A,$56,$A2,$f2,$f2

View File

@ -9,7 +9,7 @@ all: starbase.inc
starbase.inc: $(PNG2RLE) \
jail.png hallway.png window.png ship.png
$(PNG2RLE) asm jail.png jail_rle >> starbase.inc
$(PNG2RLE) asm jail.png jail_rle > starbase.inc
$(PNG2RLE) asm hallway.png hallway_rle >> starbase.inc
$(PNG2RLE) asm window.png window_rle >> starbase.inc
$(PNG2RLE) asm ship.png ship_rle >> starbase.inc

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1 @@
{"modelVersion":2,"piskel":{"name":"ootw_running","description":"","fps":5,"height":48,"width":80,"layers":["{\"name\":\"Layer 1\",\"opacity\":1,\"frameCount\":9,\"chunks\":[{\"layout\":[[0],[1],[2],[3],[4],[5],[6],[7],[8]],\"base64PNG\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAAwCAYAAAA4jE03AAAGOUlEQVR4nO3dsZHbOABAUc64BceuZGu4GhQ7dD0KPOM6LtoCTj24Boc3vGSp2QMFASBBEqCeZ37gXVICnyAtqKXl4fLX3+Pnxu9v4/j9bfz6z79Vu72P4+19rH67R98vP378+B19HPz48ePHb9/7HbYGnA4gbG/IreLHj1+/8ePHr9/48Tuy4fLjy3j58WXzM5Cp6c9RB1z7AeTHjx8/fvz48eP3Wn6zBfS9j6/XHmBrZyJrx8GPHz9+/Pjx48fvtfzul3BMZx5LAXMHMm139JlIrfjx49dv/Pjx6zd+/I5sCMGWXhNTupJv5Qxk7fj48ePXXvz48ePHj9+WftUW0KV33Dpgbvz48es3fvz49Rs/fkc2+xSOtYC5cL0BxsbLjx+/9uPHjx8/fvxq+u2+gO7l2pdhGMZhGJKg/Pjxay9+/Pjx48dvS7/kAjp8a3/twMKVfGtnIr+/Xcbf3y53wBQkP378+PHjx4/f0fHb1y95DfTazwlMvWW/1ZnO0kK4FCQ/fvz48ePHjx+/1/LbfAGdKryf8Pb3PkNpbQLy48ePHz9+/Pjxa8tvfgnHBBYcULjdVoBTse1TvwKoBV48Afnx48ePHz9+/Pi9hF/8GujggFoBXFopdBQs+Do/fvz48ePHjx+/1/JL/yPC8AB3Blx6RnG9Xsfr9VoMPJs4qfjx48ePHz9+/Pi9lF/8Eo7Y32sDRgYWfn8pYOk1O7EHNHsC8uPHjx8/fvz48Tu1nwW0CciPHz9+/Pjx48dv1QI6VgCZe01J6gBqA07bT4Clb+XPIGvFjx8/fvz48ePH7xR+ixfQn3s0gAk0PIAQOoQLwUsBQ7jFgOGDWuDBjx8/fvz48ePH77x+yxbQwY3nHNBsgOHtBgONAeae+YRv4ZdejD4bVwi5ZgLy48ePHz9+/Pjx69Yv/R+pZLYXYO6Bp85AYqDRcaUmID9+/Pjx48ePH7+X8DvdAnrtW/ivPgH58ePHjx8/fvz4PfdLfwpHrMgN5h5IbcDoAT/pIVzmcUad+PHjx48fP378+J3aL/0/Eaa+H7mDGGBY7P7u3//4+nQty9TsdoLxhNs/Anx4/7FyJyA/fvz48ePHjx+/U/utX0AnYGNgiwF/3sbx5y0N+LFddcC1Pvz48ePHjx8/fvy69lu+gM4sesaRgJ+BbACYBVcKy48fP378+PHjx+/UfrstoJPbpgAjcDHAcL/eJyA/fvz48ePHjx+/NvzyPwd6bWsHOgzjMAy77bd6AvLjx48fP378+PE7pV/xAjp2BlCjaVCPvpf71n3YszOQKmPmx48fP378+PHj16TfI8caY04uoGMHdx9I6ZnIwu4AsW0WTMBH+5c+QPz48avnF77gPX0HgZ/5x4/fCf2eLfz45ftNPz8eOlbwuy+gU2cBsx9kO8Ht9gReCnlSv+IFDL+HL3z8zL8j/bz+mX/mX39+oSO/ZX7ZC+iFfuUL6J3h1j6Bi18AI5DVJmDjfuFE41fnCcyPHz9+/Pgt8cteAPLb1W8IoWIr76MBh1+Xcfh1KQec9it9AocTK3Oi8ePHjx8/fvz48Tu3X3QBHe4Qnomk4Kdu7+N4ex/jD1DkfsL9JojUA10CuGbcyYnXud/XP2/j1z9v/Pjx69AvfP2bmv7w47elX+jm+ctvT7/Qcfp5Utuv+HOgo7+SWXp2kdo/XAgvPAOZAP8HXjKOSsfVi1/OAoYfv639ZvvzW+Q39XkByC/uF3Pkl+f37MTD8zffL/Y85pfn9/T1sILfEHvhiLX55xLG7vfZQqRgv9QZy+bH0anf0v1f1S9rAciP305+rdSLX6uOvfo9XEDzy96+lXnIL7ifswKu3W+z4+jMrzXH1v1iv1ryA6Rs/sROdI927MWvlR+4vfq16sjv3H7hn9YcW/dLbV/bMWsBPaF9bm/Q2MSqtf2mD36Hfi05nsHvCLce/VpcOPfod/Rv2nr1a9GR3+v5teTYk19su60cV78DPQPMveblRePHj1+/8ePHr9/48avqUXzR9AQW+bv48Ws3fvz49Rs/fvzaaXj09rwkSZKkaIcPQJIkSeqpwwcgSZIk9dThA5AkSZJ66vABSJIkST11+AAkSZKknjp8AJIkSVJPHT4ASZIkqZv+AyhEkcakR4mMAAAAAElFTkSuQmCC\"}]}"],"hiddenFrames":[]}}

View File

@ -1,7 +1,36 @@
jail_rle: .byte $28 ; ysize=48
.byte $A0,$78,$55, $A0,$FF,$00, $A0,$69,$00, $AB,$50, $A0,$1D,$00, $AC,$55, $50
.byte $A0,$1B,$00, $AE,$55, $50, $A0,$19,$00, $A0,$10,$55, $50, $A0,$17,$00
.byte $A0,$12,$55, $A0,$16,$50, $A0,$FF,$55, $A0,$19,$55
.byte $A0,$12,$77, $57,$57, $A0,$14,$55, $AE,$77, $57,$57, $A0,$18,$55, $AA,$77
.byte $57,$57, $A7,$55, $00, $A0,$01,$A0, $50, $A0,$01,$A0, $A3,$55
.byte $00, $A0,$01,$A0, $50, $A0,$01,$A0, $A3,$55, $00, $A0,$01,$A0
.byte $50, $A0,$01,$A0, $A0,$16,$55, $00, $A0,$01,$AA, $55, $A0,$01,$AA
.byte $55, $76, $55, $00, $A0,$01,$AA, $55, $A0,$01,$AA
.byte $55, $76, $55, $00, $A0,$01,$AA, $55, $A0,$01,$AA
.byte $55, $76, $A9,$55, $95, $99, $A9,$55, $00
.byte $A0,$01,$AA, $55, $A0,$01,$AA, $55, $77, $55, $00
.byte $A0,$01,$AA, $55, $A0,$01,$AA, $55, $77, $55, $00
.byte $A0,$01,$AA, $55, $A0,$01,$AA, $55, $77, $AA,$55, $99
.byte $95, $A8,$55, $00, $A0,$01,$AA, $55, $A0,$01,$AA, $55
.byte $77, $55, $00, $A0,$01,$AA, $55, $A0,$01,$AA, $55
.byte $77, $55, $00, $A0,$01,$AA, $55, $A0,$01,$AA, $55
.byte $77, $AA,$55, $59, $A9,$55, $00, $A0,$01,$AA, $55
.byte $A0,$01,$AA, $55, $77, $55, $00, $A0,$01,$AA, $55
.byte $A0,$01,$AA, $55, $77, $55, $00, $A0,$01,$AA, $55
.byte $A0,$01,$AA, $55, $77, $A0,$14,$55, $00, $A0,$01,$AA, $55
.byte $A0,$01,$AA, $55, $77, $55, $00, $A0,$01,$AA, $55
.byte $A0,$01,$AA, $55, $77, $55, $00, $A0,$01,$AA, $55
.byte $A0,$01,$AA, $55, $77, $A0,$12,$55, $05,$05, $00, $0A
.byte $05, $0A, $05, $07, $05, $00, $0A
.byte $05, $0A, $05, $07, $05, $00, $0A
.byte $05, $0A, $05, $07, $05, $AF,$55, $45
.byte $A0,$18,$44, $AD,$55, $45, $AE,$44, $94, $44, $94
.byte $44,$44, $94, $A6,$44, $AB,$55, $45, $A0,$10,$44, $49
.byte $94, $99, $44,$44, $99,$99, $A5,$44, $AA,$05, $04
.byte $A0,$11,$44, $49, $44, $49, $44,$44, $49, $A6,$44
.byte $71,$71, $A9,$77, $70, $04, $A0,$1B,$44, $AD,$77, $70
.byte $04, $A0,$19,$44, $AF,$77, $70, $04, $A0,$17,$44, $A0,$11,$77
.byte $70, $04, $A0,$15,$44, $A0,$13,$77, $70, $04, $A0,$13,$44
.byte $A0,$15,$77, $70, $A0,$12,$04, $A0,$78,$77, $17,$17, $A0,$26,$77, $A3,$11
.byte $17, $A0,$24,$77
.byte $A1
hallway_rle: .byte $28 ; ysize=48
.byte $A3,$55, $A0,$11,$AA, $AD,$55, $A7,$AA, $55,$55, $A0,$01,$A5, $A0,$11,$AA

View File

@ -1,3 +1,4 @@
5 HOME
200 PRINT CHR$ (4)"CATALOG"
' 200 PRINT CHR$ (4)"CATALOG"
200 PRINT CHR$ (4)"BRUN LOADER"

View File

@ -4,75 +4,109 @@ k_low: .byte $28 ; ysize=48
.byte $A0,$18,$00, $10, $00,$00, $50, $10, $A0,$22,$00, $11
.byte $10, $00, $55, $A5,$11, $10, $A0,$1D,$00, $10
.byte $31,$31, $10, $55, $A6,$11, $A0,$1D,$00, $11, $31
.byte $33, $11, $15, $A6,$11, $A5,$00, $01, $A0,$16,$00
.byte $11, $33, $11, $13, $11, $01,$01, $11,$11
.byte $01, $10, $01, $11, $00,$00, $55, $A0,$18,$00
.byte $11, $33, $11, $44, $04, $54,$54, $41
.byte $54,$54, $14, $41, $11, $40, $04, $55
.byte $A0,$17,$00, $11,$11, $13, $31, $44, $04, $5F
.byte $50, $44, $55, $5F, $10, $44, $14
.byte $50, $55, $05, $A0,$17,$00, $11, $13, $03
.byte $33, $11, $15, $A6,$11, $A5,$00, $01, $00
.byte $62, $60, $62, $00, $62, $A3,$00, $62
.byte $60, $00, $62, $00, $62, $00,$00, $62
.byte $A4,$00, $11, $33, $11, $13, $11, $01,$01
.byte $11,$11, $01, $10, $01, $11, $00,$00, $55
.byte $A3,$00, $76, $00, $76, $00, $06, $70
.byte $76, $00, $76, $70, $00, $76, $00
.byte $76, $00,$00, $76, $A4,$00, $11, $33, $11
.byte $44, $04, $54,$54, $41, $54,$54, $14, $41
.byte $11, $40, $04, $55, $A0,$17,$00, $11,$11, $13
.byte $31, $44, $04, $5F, $50, $44, $55
.byte $5F, $10, $44, $14, $50, $55, $05
.byte $A3,$00, $62, $60, $00,$00, $62, $60, $02
.byte $00, $62, $00, $62, $00, $62, $A3,$00
.byte $02, $60, $02, $00, $11, $13, $03
.byte $10, $14, $40, $45,$45, $14, $45,$45, $41
.byte $14, $11, $15, $05, $00, $01, $A0,$16,$00
.byte $10,$10, $00, $01, $11, $55,$55, $15, $11
.byte $51, $55, $A4,$11, $A0,$19,$00, $01,$01, $A3,$00, $05
.byte $55, $A3,$51, $55, $51, $A3,$11, $A0,$19,$00, $11,$11
.byte $A4,$00, $55, $A4,$71, $55, $A3,$11, $A0,$19,$00, $11
.byte $A5,$00, $05, $55, $17,$17, $A5,$11, $A0,$19,$00, $11,$11
.byte $00,$00, $10, $00,$00, $55,$55, $A3,$11, $51,$51, $15
.byte $A0,$19,$00, $01, $10, $00,$00, $11, $00,$00, $05
.byte $55, $11, $51, $55, $15, $A3,$11, $A0,$18,$00
.byte $11, $31, $33, $10, $A4,$00, $05, $A3,$55
.byte $A3,$11, $01, $A0,$18,$00, $10, $01, $00, $01
.byte $A4,$00, $80, $A5,$55, $A0,$1A,$00, $11, $01, $30,$30
.byte $01, $A3,$00, $88, $A3,$55, $05, $A0,$1B,$00, $01
.byte $11, $01,$01, $10, $00,$00, $55, $58, $85,$85
.byte $A0,$1D,$00, $11,$11, $00,$00, $01, $00,$00, $55, $00
.byte $50, $05, $A0,$1D,$00, $01,$01, $A4,$00, $50, $A3,$55
.byte $A0,$1E,$00, $01,$01, $A4,$00, $55,$55, $05, $AB,$00
.byte $14, $11, $15, $05, $00, $01, $00,$00
.byte $76, $A3,$00, $76, $00, $76, $00, $06
.byte $70, $06, $00, $06, $70, $76, $00,$00
.byte $76, $00,$00, $10,$10, $00, $01, $11, $55,$55
.byte $15, $11, $51, $55, $A4,$11, $A0,$1A,$00, $01
.byte $A3,$00, $05, $55, $A3,$51, $55, $51, $A3,$11
.byte $A6,$00, $62, $00,$00, $02, $60, $A0,$14,$00, $55
.byte $A4,$71, $55, $A3,$11, $A5,$00, $70, $76, $70
.byte $00, $70, $06, $A0,$14,$00, $05, $55, $17,$17
.byte $A5,$11, $A0,$1D,$00, $10, $00,$00, $55,$55, $A3,$11, $51,$51
.byte $15, $A5,$00, $62, $02, $62, $00, $62
.byte $00, $02, $60, $00, $02, $60, $00
.byte $62, $00, $62, $00, $62, $00, $62
.byte $A5,$00, $11, $00,$00, $05, $55, $11, $51
.byte $55, $15, $A3,$11, $A4,$00, $76, $00, $76
.byte $00, $76, $00, $70, $06, $00, $70
.byte $06, $00, $76, $00, $76, $00, $76
.byte $00, $06, $70, $76, $00, $33, $10
.byte $A4,$00, $05, $A3,$55, $A3,$11, $01, $A0,$1B,$00, $01
.byte $A4,$00, $80, $A5,$55, $A0,$1C,$00, $30,$30, $01, $A3,$00
.byte $88, $A3,$55, $05, $A0,$1C,$00, $11, $01,$01, $10
.byte $00,$00, $55, $58, $85,$85, $A0,$1D,$00, $11,$11, $00,$00
.byte $01, $00,$00, $55, $00, $50, $05, $A0,$1D,$00
.byte $01,$01, $A4,$00, $50, $A3,$55, $A0,$1E,$00, $01,$01, $A4,$00
.byte $55,$55, $05, $AB,$00
.byte $A1
k_high: .byte $28 ; ysize=48
.byte $A0,$1A,$00, $C0, $A7,$CC, $22,$22, $CC,$CC, $C2, $2C
.byte $A0,$19,$00, $20, $CC,$CC, $5C, $5A, $0A,$0A, $5A
.byte $5C, $A4,$CC, $C2, $2C, $A0,$19,$00, $C2, $0A
.byte $00, $5A, $0A, $A3,$00, $0A, $5A, $5C
.byte $A3,$CC, $22, $A0,$18,$00, $2C, $5C, $00, $90
.byte $DA, $50,$50, $A5,$00, $5A, $CC, $C4, $CC
.byte $A0,$17,$00, $22, $2C, $5A, $99, $A5,$DD, $DA
.byte $A3,$00, $5A, $CC, $C4, $CC, $A0,$16,$00, $20
.byte $B2,$B2, $2C, $99, $A6,$DD, $5A, $A3,$00, $A3,$CC
.byte $A0,$16,$00, $22, $B2, $BB, $22, $D9, $A6,$DD
.byte $5A, $A3,$00, $CC, $42, $44, $A0,$15,$00, $22
.byte $BB, $22, $2B, $22, $8D,$8D, $DD,$DD, $8D
.byte $D8, $8D, $DD, $00,$00, $99, $A3,$44, $A0,$15,$00
.byte $22, $BB, $22, $66, $C6, $96,$96, $6D
.byte $96,$96, $D6, $6D, $DD, $60, $06, $99
.byte $44,$44, $4C, $A0,$14,$00, $22,$22, $7B, $B2, $66
.byte $C6, $9F, $98, $66, $99, $9F, $D8
.byte $66, $D6, $90, $99, $C9, $A3,$CC, $A0,$14,$00
.byte $22, $2B, $CB, $2C, $26, $6C, $69,$69
.byte $D6, $69,$69, $6D, $D6, $DD, $D9, $59
.byte $5C, $C2, $CC,$CC, $A0,$14,$00, $2C,$2C, $CC, $C2
.byte $22, $99,$99, $79, $DD, $9D, $99, $A4,$DD
.byte $00, $0A, $5C, $CC,$CC, $A0,$14,$00, $C2,$C2, $44
.byte $C4, $CC, $C9, $99, $A3,$97, $99, $9D
.byte $A3,$DD, $00,$00, $50, $CC,$CC, $A0,$14,$00, $22,$22, $44
.byte $A3,$CC, $99, $A4,$F7, $99, $A3,$DD, $00,$00, $0A
.byte $CC,$CC, $A0,$14,$00, $22, $C4,$C4, $CC, $CB, $CC
.byte $C9, $99, $7F,$7F, $D7, $A4,$DD, $A3,$00, $CC,$CC
.byte $A0,$14,$00, $22,$22, $CC, $B4, $2C, $4C, $CC
.byte $99,$99, $A3,$DD, $9D,$9D, $D9, $A3,$00, $CC,$CC, $A0,$14,$00
.byte $C2, $2C, $CC,$CC, $22, $CC,$CC, $C9, $99
.byte $DD, $9D, $99, $D9, $A3,$DD, $00,$00, $CC,$CC
.byte $A0,$14,$00, $22, $B2, $BB, $24, $CC,$CC, $0C
.byte $00, $09, $A3,$99, $A3,$DD, $0D, $00,$00, $CC,$CC
.byte $A0,$14,$00, $2C, $C2, $CC, $C2, $CC, $A3,$00
.byte $50, $A5,$99, $A4,$00, $0C, $CC, $A0,$14,$00, $22
.byte $C2, $BC,$BC, $C2, $A3,$00, $5A, $A3,$99, $09
.byte $A6,$00, $0C, $A0,$14,$00, $C2, $22, $C2, $42
.byte $2C, $00,$00, $99, $9A, $59,$59, $A0,$1D,$00, $22,$22
.byte $CC, $C4, $02, $00,$00, $99, $22, $92
.byte $09, $A0,$1D,$00, $C2,$C2, $CC,$CC, $00,$00, $90, $A3,$99
.byte $A0,$1E,$00, $C2,$C2, $CC, $0C, $00,$00, $99,$99, $09
.byte $AB,$00
.byte $A0,$19,$00, $20, $CC,$CC, $A0,$01,$AC, $A0,$01,$AA, $0A,$0A, $A0,$01,$AA
.byte $A0,$01,$AC, $A4,$CC, $C2, $2C, $A0,$19,$00, $C2, $0A
.byte $00, $A0,$01,$AA, $0A, $A3,$00, $0A, $A0,$01,$AA, $A0,$01,$AC
.byte $A3,$CC, $22, $A0,$18,$00, $2C, $A0,$01,$AC, $00, $90
.byte $DA, $A0,$02,$A0, $A5,$00, $A0,$01,$AA, $CC, $C4, $CC
.byte $A0,$17,$00, $22, $2C, $A0,$01,$AA, $99, $A5,$DD, $DA
.byte $A3,$00, $A0,$01,$AA, $CC, $C4, $CC, $A0,$16,$00, $20
.byte $B2,$B2, $2C, $99, $A6,$DD, $A0,$01,$AA, $A3,$00, $A3,$CC
.byte $00, $20, $A3,$00, $20, $00,$00, $20,$20, $00
.byte $A3,$20, $00, $A3,$20, $A4,$00, $22, $B2, $BB
.byte $22, $D9, $A6,$DD, $A0,$01,$AA, $A3,$00, $CC, $42
.byte $44, $76, $70, $76, $00, $76, $A3,$00
.byte $76, $70, $00, $76, $00, $76, $00,$00
.byte $76, $A4,$00, $22, $BB, $22, $2B, $22
.byte $8D,$8D, $DD,$DD, $8D, $D8, $8D, $DD, $00,$00
.byte $99, $A3,$44, $FF, $00, $FF, $00, $0F
.byte $F0, $FF, $00, $FF, $F0, $00, $FF
.byte $00, $FF, $00,$00, $FF, $A4,$00, $22, $BB
.byte $22, $66, $C6, $96,$96, $6D, $96,$96, $D6
.byte $6D, $DD, $60, $06, $99, $44,$44, $4C
.byte $A3,$20, $00, $20,$20, $A3,$00, $20, $A3,$00, $20
.byte $00,$00, $20, $00, $20, $00, $22,$22, $7B
.byte $B2, $66, $C6, $9F, $98, $66, $99
.byte $9F, $D8, $66, $D6, $90, $99, $C9
.byte $A3,$CC, $76, $70, $00,$00, $76, $70, $06
.byte $00, $76, $00, $76, $00, $76, $A3,$00
.byte $06, $70, $06, $00, $22, $2B, $CB
.byte $2C, $26, $6C, $69,$69, $D6, $69,$69, $6D
.byte $D6, $DD, $D9, $A0,$01,$A9, $A0,$01,$AC, $C2, $CC,$CC
.byte $FF, $A3,$00, $FF, $00, $FF, $00, $0F
.byte $F0, $0F, $00, $0F, $F0, $FF, $00,$00
.byte $FF, $00,$00, $2C,$2C, $CC, $C2, $22, $99,$99
.byte $79, $DD, $9D, $99, $A4,$DD, $00, $0A
.byte $A0,$01,$AC, $CC,$CC, $A3,$20, $00,$00, $20, $AF,$00, $02
.byte $44, $C4, $CC, $C9, $99, $A3,$97, $99
.byte $9D, $A3,$DD, $00,$00, $A0,$01,$A0, $CC,$CC, $00, $76
.byte $00,$00, $06, $70, $A0,$10,$00, $44, $A3,$CC, $99
.byte $A4,$F7, $99, $A3,$DD, $00,$00, $0A, $CC,$CC, $F0
.byte $FF, $F0, $00, $F0, $0F, $A0,$10,$00, $C4
.byte $CC, $CB, $CC, $C9, $99, $7F,$7F, $D7
.byte $A4,$DD, $A3,$00, $CC,$CC, $20, $00, $20, $00
.byte $20, $00,$00, $20, $00,$00, $20, $00, $20
.byte $00, $A3,$20, $00,$00, $20, $00,$00, $CC, $B4
.byte $2C, $4C, $CC, $99,$99, $A3,$DD, $9D,$9D, $D9
.byte $A3,$00, $CC,$CC, $76, $06, $76, $00, $76
.byte $00, $06, $70, $00, $06, $70, $00
.byte $76, $00, $76, $00, $76, $00, $76
.byte $A3,$00, $CC,$CC, $22, $CC,$CC, $C9, $99, $DD
.byte $9D, $99, $D9, $A3,$DD, $00,$00, $CC,$CC, $FF
.byte $00, $FF, $00, $FF, $00, $F0, $0F
.byte $00, $F0, $0F, $00, $FF, $00, $FF
.byte $00, $FF, $00, $0F, $F0, $FF, $00
.byte $BB, $24, $CC,$CC, $0C, $00, $09, $A3,$99
.byte $A3,$DD, $0D, $00,$00, $CC,$CC, $A0,$16,$00, $CC, $C2
.byte $CC, $A3,$00, $A0,$01,$A0, $A5,$99, $A4,$00, $0C, $CC
.byte $A0,$16,$00, $BC,$BC, $C2, $A3,$00, $A0,$01,$AA, $A3,$99, $09
.byte $A6,$00, $0C, $A0,$15,$00, $22, $C2, $42, $2C
.byte $00,$00, $99, $9A, $A0,$02,$A9, $A0,$1D,$00, $22,$22, $CC
.byte $C4, $02, $00,$00, $99, $22, $92, $09
.byte $A0,$1D,$00, $C2,$C2, $CC,$CC, $00,$00, $90, $A3,$99, $A0,$1E,$00
.byte $C2,$C2, $CC, $0C, $00,$00, $99,$99, $09, $AB,$00
.byte $A1

BIN
demosplash/k_40_48d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -18,6 +18,11 @@ missing_intro:
lda #0
sta DRAW_PAGE
;=============================
; setup graphics code
jsr create_update_type1
;=============================
; Load graphic page0
@ -130,19 +135,38 @@ mloopB: dex ; 2
missing_display_loop:
.include "missing_screen_update.s"
jsr $9000 ; update_type1
;.include "missing_screen_update.s"
;======================================================
; We have 4550 cycles in the vblank, use them wisely
;======================================================
; do_nothing should be
; 4550
; -6
; -10
; -12 jsr/ret to update_type1
; - 7 check keypress
; - 3 jmp loop
;=============
; 4534
; 4528
; blah, current code the tight loops are right at a page boundary
do_nothing_missing:
; want 4528
; Try X=4 Y=174 cycles=4525 R3
lda TEMP ; nop 3
ldy #174 ; 2
gloop1: ldx #4 ; 2
gloop2: dex ; 2
bne gloop2 ; 2nt/3
dey ; 2
bne gloop1 ; 2nt/3
jsr do_nothing_missing ; 6
lda KEYPRESS ; 4
bpl missing_no_keypress ; 3
@ -155,45 +179,7 @@ missing_no_keypress:
.align $100
;=================================
; do nothing
;=================================
; and take 4534-6 = 4528 cycles to do it
; blah, current code the tight loops are right at a page boundary
do_nothing_missing:
; want 4528-12=4516
; Try X=4 Y=174 cycles=4525 R3 -3 X loops
; Try X=3 Y=215 cycles=4516
nop ; 2
nop ; 2
nop ; 2
nop ; 2
nop ; 2
nop ; 2
ldy #215 ; 2
gloop1: ldx #3 ; 2
gloop2: dex ; 2
bne gloop2 ; 2nt/3
dey ; 2
bne gloop1 ; 2nt/3
rts ; 6
.include "k_40_48d.inc"
krg:
.byte $0

File diff suppressed because it is too large Load Diff

257
demosplash/movement_table.s Normal file
View File

@ -0,0 +1,257 @@
movement_table:
.byte $01 ; 0 -> 1
.byte $02 ; 1 -> 2
.byte $03 ; 2 -> 3
.byte $04 ; 3 -> 4
.byte $05 ; 4 -> 5
.byte $06 ; 5 -> 6
.byte $07 ; 6 -> 7
.byte $08 ; 7 -> 8
.byte $09 ; 8 -> 9
.byte $0A ; 9 -> 10
.byte $0B ; 10 -> 11
.byte $0C ; 11 -> 12
.byte $0D ; 12 -> 13
.byte $0E ; 13 -> 14
.byte $0F ; 14 -> 15
.byte $10 ; 15 -> 16
.byte $11 ; 16 -> 17
.byte $12 ; 17 -> 18
.byte $13 ; 18 -> 19
.byte $14 ; 19 -> 20
.byte $15 ; 20 -> 21
.byte $16 ; 21 -> 22
.byte $17 ; 22 -> 23
.byte $18 ; 23 -> 24
.byte $19 ; 24 -> 25
.byte $1A ; 25 -> 26
.byte $1B ; 26 -> 27
.byte $1C ; 27 -> 28
.byte $1D ; 28 -> 29
.byte $1E ; 29 -> 30
.byte $1F ; 30 -> 31
.byte $20 ; 31 -> 32
.byte $21 ; 32 -> 33
.byte $22 ; 33 -> 34
.byte $23 ; 34 -> 35
.byte $24 ; 35 -> 36
.byte $25 ; 36 -> 37
.byte $26 ; 37 -> 38
.byte $27 ; 38 -> 39
.byte $28 ; 39 -> 40
.byte $29 ; 40 -> 41
.byte $2A ; 41 -> 42
.byte $2B ; 42 -> 43
.byte $2C ; 43 -> 44
.byte $2D ; 44 -> 45
.byte $2E ; 45 -> 46
.byte $2F ; 46 -> 47
.byte $30 ; 47 -> 48
.byte $31 ; 48 -> 49
.byte $32 ; 49 -> 50
.byte $33 ; 50 -> 51
.byte $34 ; 51 -> 52
.byte $35 ; 52 -> 53
.byte $36 ; 53 -> 54
.byte $37 ; 54 -> 55
.byte $38 ; 55 -> 56
.byte $39 ; 56 -> 57
.byte $3A ; 57 -> 58
.byte $3B ; 58 -> 59
.byte $3C ; 59 -> 60
.byte $3D ; 60 -> 61
.byte $3E ; 61 -> 62
.byte $3F ; 62 -> 63
.byte $40 ; 63 -> 64
.byte $41 ; 64 -> 65
.byte $42 ; 65 -> 66
.byte $43 ; 66 -> 67
.byte $44 ; 67 -> 68
.byte $45 ; 68 -> 69
.byte $46 ; 69 -> 70
.byte $47 ; 70 -> 71
.byte $48 ; 71 -> 72
.byte $49 ; 72 -> 73
.byte $4A ; 73 -> 74
.byte $4B ; 74 -> 75
.byte $4C ; 75 -> 76
.byte $4D ; 76 -> 77
.byte $4E ; 77 -> 78
.byte $4F ; 78 -> 79
.byte $50 ; 79 -> 80
.byte $51 ; 80 -> 81
.byte $52 ; 81 -> 82
.byte $53 ; 82 -> 83
.byte $54 ; 83 -> 84
.byte $55 ; 84 -> 85
.byte $56 ; 85 -> 86
.byte $57 ; 86 -> 87
.byte $58 ; 87 -> 88
.byte $59 ; 88 -> 89
.byte $5A ; 89 -> 90
.byte $5B ; 90 -> 91
.byte $5C ; 91 -> 92
.byte $5D ; 92 -> 93
.byte $5E ; 93 -> 94
.byte $5F ; 94 -> 95
.byte $60 ; 95 -> 96
.byte $61 ; 96 -> 97
.byte $62 ; 97 -> 98
.byte $63 ; 98 -> 99
.byte $64 ; 99 -> 100
.byte $65 ; 100 -> 101
.byte $66 ; 101 -> 102
.byte $67 ; 102 -> 103
.byte $68 ; 103 -> 104
.byte $69 ; 104 -> 105
.byte $6A ; 105 -> 106
.byte $6B ; 106 -> 107
.byte $6C ; 107 -> 108
.byte $6D ; 108 -> 109
.byte $6E ; 109 -> 110
.byte $6F ; 110 -> 111
.byte $70 ; 111 -> 112
.byte $71 ; 112 -> 113
.byte $72 ; 113 -> 114
.byte $73 ; 114 -> 115
.byte $74 ; 115 -> 116
.byte $75 ; 116 -> 117
.byte $76 ; 117 -> 118
.byte $77 ; 118 -> 119
.byte $78 ; 119 -> 120
.byte $79 ; 120 -> 121
.byte $7A ; 121 -> 122
.byte $7B ; 122 -> 123
.byte $FB ; 123 -> 251
.byte $7B ; 124 -> 123
.byte $7B ; 125 -> 123
.byte $7B ; 126 -> 123
.byte $7B ; 127 -> 123
.byte $00 ; 128 -> 0
.byte $80 ; 129 -> 128
.byte $81 ; 130 -> 129
.byte $82 ; 131 -> 130
.byte $83 ; 132 -> 131
.byte $84 ; 133 -> 132
.byte $85 ; 134 -> 133
.byte $86 ; 135 -> 134
.byte $87 ; 136 -> 135
.byte $88 ; 137 -> 136
.byte $89 ; 138 -> 137
.byte $8A ; 139 -> 138
.byte $8B ; 140 -> 139
.byte $8C ; 141 -> 140
.byte $8D ; 142 -> 141
.byte $8E ; 143 -> 142
.byte $8F ; 144 -> 143
.byte $90 ; 145 -> 144
.byte $91 ; 146 -> 145
.byte $92 ; 147 -> 146
.byte $93 ; 148 -> 147
.byte $94 ; 149 -> 148
.byte $95 ; 150 -> 149
.byte $96 ; 151 -> 150
.byte $97 ; 152 -> 151
.byte $98 ; 153 -> 152
.byte $99 ; 154 -> 153
.byte $9A ; 155 -> 154
.byte $9B ; 156 -> 155
.byte $9C ; 157 -> 156
.byte $9D ; 158 -> 157
.byte $9E ; 159 -> 158
.byte $9F ; 160 -> 159
.byte $A0 ; 161 -> 160
.byte $A1 ; 162 -> 161
.byte $A2 ; 163 -> 162
.byte $A3 ; 164 -> 163
.byte $A4 ; 165 -> 164
.byte $A5 ; 166 -> 165
.byte $A6 ; 167 -> 166
.byte $A7 ; 168 -> 167
.byte $A8 ; 169 -> 168
.byte $A9 ; 170 -> 169
.byte $AA ; 171 -> 170
.byte $AB ; 172 -> 171
.byte $AC ; 173 -> 172
.byte $AD ; 174 -> 173
.byte $AE ; 175 -> 174
.byte $AF ; 176 -> 175
.byte $B0 ; 177 -> 176
.byte $B1 ; 178 -> 177
.byte $B2 ; 179 -> 178
.byte $B3 ; 180 -> 179
.byte $B4 ; 181 -> 180
.byte $B5 ; 182 -> 181
.byte $B6 ; 183 -> 182
.byte $B7 ; 184 -> 183
.byte $B8 ; 185 -> 184
.byte $B9 ; 186 -> 185
.byte $BA ; 187 -> 186
.byte $BB ; 188 -> 187
.byte $BC ; 189 -> 188
.byte $BD ; 190 -> 189
.byte $BE ; 191 -> 190
.byte $BF ; 192 -> 191
.byte $C0 ; 193 -> 192
.byte $C1 ; 194 -> 193
.byte $C2 ; 195 -> 194
.byte $C3 ; 196 -> 195
.byte $C4 ; 197 -> 196
.byte $C5 ; 198 -> 197
.byte $C6 ; 199 -> 198
.byte $C7 ; 200 -> 199
.byte $C8 ; 201 -> 200
.byte $C9 ; 202 -> 201
.byte $CA ; 203 -> 202
.byte $CB ; 204 -> 203
.byte $CC ; 205 -> 204
.byte $CD ; 206 -> 205
.byte $CE ; 207 -> 206
.byte $CF ; 208 -> 207
.byte $D0 ; 209 -> 208
.byte $D1 ; 210 -> 209
.byte $D2 ; 211 -> 210
.byte $D3 ; 212 -> 211
.byte $D4 ; 213 -> 212
.byte $D5 ; 214 -> 213
.byte $D6 ; 215 -> 214
.byte $D7 ; 216 -> 215
.byte $D8 ; 217 -> 216
.byte $D9 ; 218 -> 217
.byte $DA ; 219 -> 218
.byte $DB ; 220 -> 219
.byte $DC ; 221 -> 220
.byte $DD ; 222 -> 221
.byte $DE ; 223 -> 222
.byte $DF ; 224 -> 223
.byte $E0 ; 225 -> 224
.byte $E1 ; 226 -> 225
.byte $E2 ; 227 -> 226
.byte $E3 ; 228 -> 227
.byte $E4 ; 229 -> 228
.byte $E5 ; 230 -> 229
.byte $E6 ; 231 -> 230
.byte $E7 ; 232 -> 231
.byte $E8 ; 233 -> 232
.byte $E9 ; 234 -> 233
.byte $EA ; 235 -> 234
.byte $EB ; 236 -> 235
.byte $EC ; 237 -> 236
.byte $ED ; 238 -> 237
.byte $EE ; 239 -> 238
.byte $EF ; 240 -> 239
.byte $F0 ; 241 -> 240
.byte $F1 ; 242 -> 241
.byte $F2 ; 243 -> 242
.byte $F3 ; 244 -> 243
.byte $F4 ; 245 -> 244
.byte $F5 ; 246 -> 245
.byte $F6 ; 247 -> 246
.byte $F7 ; 248 -> 247
.byte $F8 ; 249 -> 248
.byte $F9 ; 250 -> 249
.byte $FA ; 251 -> 250
.byte $FB ; 252 -> 251
.byte $FC ; 253 -> 252
.byte $FD ; 254 -> 253
.byte $FE ; 255 -> 254

View File

@ -0,0 +1,34 @@
y_lookup_h:
.byte >($9934),>($9965),>($9996),>($99C7),>($99F8),>($9A29),>($9A5A),>($9A8B)
.byte >($9ABC),>($9AED),>($9B1E),>($9B4F),>($9B80),>($9BB1),>($9BE2),>($9C13)
.byte >($9C44),>($9C75),>($9CA6),>($9CD7),>($9D08),>($9D39),>($9D6A),>($9D9B)
.byte >($9DCC),>($9DFD),>($9E2E),>($9E5F),>($9E90),>($9EC1),>($9EF2),>($9F23)
.byte >($9F54),>($9F85),>($9FB6),>($9FE7),>($A018),>($A049),>($A07A),>($A0AB)
.byte >($A0DC),>($A10D),>($A13E),>($A16F),>($A1A0),>($A1D1),>($A202),>($A233)
.byte >($A264),>($A295),>($A2C6),>($A2F7),>($A328),>($A359),>($A38A),>($A3BB)
.byte >($A3EC),>($A41D),>($A44E),>($A47F),>($A4B0),>($A4E1),>($A512),>($A543)
.byte >($A574),>($A5A5),>($A5D6),>($A607),>($A638),>($A669),>($A69A),>($A6CB)
.byte >($A6FC),>($A72D),>($A75E),>($A78F),>($A7C0),>($A7F1),>($A822),>($A853)
.byte >($A884),>($A8B5),>($A8E6),>($A917),>($A948),>($A979),>($A9AA),>($A9DB)
.byte >($AA0C),>($AA3D),>($AA6E),>($AA9F),>($AAD0),>($AB01),>($AB32),>($AB63)
.byte >($AB94),>($ABC5),>($ABF6),>($AC27),>($AC58),>($AC89),>($ACBA),>($ACEB)
.byte >($AD1C),>($AD4D),>($AD7E),>($ADAF),>($ADE0),>($AE11),>($AE42),>($AE73)
.byte >($AEA4),>($AED5),>($AF06),>($AF37),>($AF68),>($AF99),>($AFCA),>($AFFB)
.byte >($B02C),>($B05D),>($B08E),>($B0BF),>($B0F0),>($B121),>($B152),>($B183)
y_lookup_l:
.byte <($9934),<($9965),<($9996),<($99C7),<($99F8),<($9A29),<($9A5A),<($9A8B)
.byte <($9ABC),<($9AED),<($9B1E),<($9B4F),<($9B80),<($9BB1),<($9BE2),<($9C13)
.byte <($9C44),<($9C75),<($9CA6),<($9CD7),<($9D08),<($9D39),<($9D6A),<($9D9B)
.byte <($9DCC),<($9DFD),<($9E2E),<($9E5F),<($9E90),<($9EC1),<($9EF2),<($9F23)
.byte <($9F54),<($9F85),<($9FB6),<($9FE7),<($A018),<($A049),<($A07A),<($A0AB)
.byte <($A0DC),<($A10D),<($A13E),<($A16F),<($A1A0),<($A1D1),<($A202),<($A233)
.byte <($A264),<($A295),<($A2C6),<($A2F7),<($A328),<($A359),<($A38A),<($A3BB)
.byte <($A3EC),<($A41D),<($A44E),<($A47F),<($A4B0),<($A4E1),<($A512),<($A543)
.byte <($A574),<($A5A5),<($A5D6),<($A607),<($A638),<($A669),<($A69A),<($A6CB)
.byte <($A6FC),<($A72D),<($A75E),<($A78F),<($A7C0),<($A7F1),<($A822),<($A853)
.byte <($A884),<($A8B5),<($A8E6),<($A917),<($A948),<($A979),<($A9AA),<($A9DB)
.byte <($AA0C),<($AA3D),<($AA6E),<($AA9F),<($AAD0),<($AB01),<($AB32),<($AB63)
.byte <($AB94),<($ABC5),<($ABF6),<($AC27),<($AC58),<($AC89),<($ACBA),<($ACEB)
.byte <($AD1C),<($AD4D),<($AD7E),<($ADAF),<($ADE0),<($AE11),<($AE42),<($AE73)
.byte <($AEA4),<($AED5),<($AF06),<($AF37),<($AF68),<($AF99),<($AFCA),<($AFFB)
.byte <($B02C),<($B05D),<($B08E),<($B0BF),<($B0F0),<($B121),<($B152),<($B183)

View File

@ -0,0 +1,34 @@
y_lookup2_h:
.byte >($95E4),>($9613),>($9642),>($9671),>($96A0),>($96CF),>($96FE),>($972D)
.byte >($975C),>($978B),>($97BA),>($97E9),>($9818),>($9847),>($9876),>($98A5)
.byte >($98D4),>($9903),>($9932),>($9961),>($9990),>($99BF),>($99EE),>($9A1D)
.byte >($9A4C),>($9A7B),>($9AAA),>($9AD9),>($9B08),>($9B37),>($9B66),>($9B95)
.byte >($9BC4),>($9BF3),>($9C22),>($9C51),>($9C80),>($9CAF),>($9CDE),>($9D0D)
.byte >($9D3C),>($9D6B),>($9D9A),>($9DC9),>($9DF8),>($9E27),>($9E56),>($9E85)
.byte >($9EB4),>($9EE3),>($9F12),>($9F41),>($9F70),>($9F9F),>($9FCE),>($9FFD)
.byte >($A02C),>($A05B),>($A08A),>($A0B9),>($A0E8),>($A117),>($A146),>($A175)
.byte >($A1A4),>($A1D3),>($A202),>($A231),>($A260),>($A28F),>($A2BE),>($A2ED)
.byte >($A31C),>($A34B),>($A37A),>($A3A9),>($A3D8),>($A407),>($A436),>($A465)
.byte >($A494),>($A4C3),>($A4F2),>($A521),>($A550),>($A57F),>($A5AE),>($A5DD)
.byte >($A60C),>($A63B),>($A66A),>($A699),>($A6C8),>($A6F7),>($A726),>($A755)
.byte >($A784),>($A7B3),>($A7E2),>($A811),>($A840),>($A86F),>($A89E),>($A8CD)
.byte >($A8FC),>($A92B),>($A95A),>($A989),>($A9B8),>($A9E7),>($AA16),>($AA45)
.byte >($AA74),>($AAA3),>($AAD2),>($AB01),>($AB30),>($AB5F),>($AB8E),>($ABBD)
.byte >($ABEC),>($AC1B),>($AC4A),>($AC79),>($ACA8),>($ACD7),>($AD06),>($AD35)
y_lookup2_l:
.byte <($95E4),<($9613),<($9642),<($9671),<($96A0),<($96CF),<($96FE),<($972D)
.byte <($975C),<($978B),<($97BA),<($97E9),<($9818),<($9847),<($9876),<($98A5)
.byte <($98D4),<($9903),<($9932),<($9961),<($9990),<($99BF),<($99EE),<($9A1D)
.byte <($9A4C),<($9A7B),<($9AAA),<($9AD9),<($9B08),<($9B37),<($9B66),<($9B95)
.byte <($9BC4),<($9BF3),<($9C22),<($9C51),<($9C80),<($9CAF),<($9CDE),<($9D0D)
.byte <($9D3C),<($9D6B),<($9D9A),<($9DC9),<($9DF8),<($9E27),<($9E56),<($9E85)
.byte <($9EB4),<($9EE3),<($9F12),<($9F41),<($9F70),<($9F9F),<($9FCE),<($9FFD)
.byte <($A02C),<($A05B),<($A08A),<($A0B9),<($A0E8),<($A117),<($A146),<($A175)
.byte <($A1A4),<($A1D3),<($A202),<($A231),<($A260),<($A28F),<($A2BE),<($A2ED)
.byte <($A31C),<($A34B),<($A37A),<($A3A9),<($A3D8),<($A407),<($A436),<($A465)
.byte <($A494),<($A4C3),<($A4F2),<($A521),<($A550),<($A57F),<($A5AE),<($A5DD)
.byte <($A60C),<($A63B),<($A66A),<($A699),<($A6C8),<($A6F7),<($A726),<($A755)
.byte <($A784),<($A7B3),<($A7E2),<($A811),<($A840),<($A86F),<($A89E),<($A8CD)
.byte <($A8FC),<($A92B),<($A95A),<($A989),<($A9B8),<($A9E7),<($AA16),<($AA45)
.byte <($AA74),<($AAA3),<($AAD2),<($AB01),<($AB30),<($AB5F),<($AB8E),<($ABBD)
.byte <($ABEC),<($AC1B),<($AC4A),<($AC79),<($ACA8),<($ACD7),<($AD06),<($AD35)

View File

@ -20,7 +20,7 @@ starbase_new_room:
lda #0
sta GAME_OVER
jsr ootw_city
jsr starbase_setup_room
c4_check_done:
lda GAME_OVER
@ -57,17 +57,9 @@ wait_loop:
rts
.include "starbase_action.s"
;.include "text_print.s"
;.include "gr_pageflip.s"
;.include "gr_unrle.s"
;.include "gr_fast_clear.s"
;.include "gr_copy.s"
.include "gr_hlin.s"
.include "gr_twoscreen_scroll.s"
.include "gr_putsprite.s"
;.include "gr_putsprite_flipped.s"
.include "gr_putsprite_crop.s"
;.include "gr_offsets.s"
.include "keyboard.s"
.include "starbase_astronaut.s"

View File

@ -4,12 +4,12 @@
; starbase_init
;=======================
;=======================
; call once before entering city for first time
; call once before entering starbase for first time
starbase_init:
lda #0
sta WHICH_ROOM
sta BG_SCROLL
sta DIRECTION ; left
sta LASER_OUT
sta BLAST_OUT
sta CHARGER_COUNT
@ -20,18 +20,16 @@ starbase_init:
sta ACTION_TRIGGERED
sta ACTION_COUNT
lda #1
sta DIRECTION ; right
lda #100
sta GUN_CHARGE
;====================
; reset doors
lda #DOOR_STATUS_CLOSED
sta c4_r0_door0_status
sta c4_r0_door1_status
lda #DOOR_STATUS_LOCKED
sta c4_r0_door2_status
sta c4_r0_door3_status
sta c4_r0_door4_status
sta c4_r0_door0_status
;===============
; set up aliens
@ -58,23 +56,14 @@ starbase_init:
lda #1
sta HAVE_GUN
lda #19
lda #0
sta ASTRONAUT_X
lda #230 ; start offscreen
lda #10
sta ASTRONAUT_Y
lda #28
sta fall_down_destination_smc+1
lda #28
sta fall_sideways_destination_smc+1
lda #P_FALLING_DOWN ; fall into level
lda #P_STANDING
sta ASTRONAUT_STATE
lda #$2c
sta falling_stop_smc
rts
@ -83,7 +72,7 @@ starbase_init:
; enter new room in jail
;===========================
;===========================
ootw_city:
starbase_setup_room:
;=================================
; setup vars
@ -114,12 +103,12 @@ ootw_city:
bne room1
;======================
; Room0 with recharger
; Room0 with ramp
room0:
; set up doors
lda #5
lda #2
sta NUM_DOORS
lda #<door_c4_r0
@ -130,26 +119,22 @@ room0:
; set up room limits
lda #(6+128)
lda #(-3+128) ; stop at wall
sta LEFT_LIMIT
lda #(39+128)
sta RIGHT_LIMIT
; set right exit
lda #1
sta cer_smc+1
; set left exit
lda #0
sta cel_smc+1
lda ASTRONAUT_STATE
cmp #P_FALLING_DOWN
beq room0_falling
; set right exit
lda #1
sta cer_smc+1
lda #28
lda #10
sta ASTRONAUT_Y
room0_falling:
; load background
lda #>(jail_rle)
@ -343,47 +328,10 @@ ootw_room_already_set:
;============================
;============================
; City Loop
; starbase Loop
;============================
;============================
city_loop:
;======================================
; draw split screen if falling into pit
;======================================
; only fall in room3
lda WHICH_ROOM
cmp #3
bne no_scroll
lda BG_SCROLL
beq no_scroll
lda FRAMEL ; slow down a bit
and #$1
bne no_scroll_progress
inc BG_SCROLL
inc BG_SCROLL
no_scroll_progress:
ldy BG_SCROLL
cpy #48
bne scroll_it
; exit to next room when done scrolling
lda #0
sta BG_SCROLL
lda #4
sta WHICH_ROOM
rts
scroll_it:
jsr gr_twoscreen_scroll
no_scroll:
starbase_loop:
;================================
;================================
@ -393,101 +341,6 @@ no_scroll:
jsr gr_copy_to_current
;=========================
;=========================
; Handle Falling into Pit
;=========================
;=========================
lda WHICH_ROOM
cmp #3
beq check_falling
cmp #4
beq check_falling
jmp not_falling
check_falling:
; only fall if falling sideways/down
lda ASTRONAUT_STATE
cmp #P_FALLING_SIDEWAYS
beq falling_sideways
cmp #P_FALLING_DOWN
beq falling_down
jmp not_falling
falling_sideways:
; if falling sideways
lda BG_SCROLL
cmp #16
bcc before ; blt
lda FRAMEL
and #$3
bne no_fall_undo
dec ASTRONAUT_X
dec ASTRONAUT_Y
dec ASTRONAUT_Y
dec ASTRONAUT_Y
dec ASTRONAUT_Y
no_fall_undo:
jmp scroll_check
before:
lda FRAMEL
and #$1
bne extra_boost
inc ASTRONAUT_X
extra_boost:
jmp scroll_check
falling_down:
; if falling down, and Y>=32, then impale
lda ASTRONAUT_Y
cmp #32
bcc scroll_check ; blt
lda #9
sta ASTRONAUT_X
lda #38
sta ASTRONAUT_Y
lda #0
sta GAIT
lda #P_IMPALED
sta ASTRONAUT_STATE
jmp not_falling
scroll_check:
lda BG_SCROLL ; if done scrolling, re-enable falling
bne scroll_bg_check22
lda #$2c ; re-enable falling
sta falling_stop_smc
jmp not_far_enough
scroll_bg_check22:
lda ASTRONAUT_Y ; once Y=22, stop falling (scroll instead)
cmp #22
bcc not_far_enough ; blt
lda #$4c ; disable yinc in falling
sta falling_stop_smc
not_far_enough:
not_falling:
;==================================
; draw background action
;==================================
@ -506,9 +359,9 @@ bg_room0:
tay
lda #11
lda #0
sta XPOS
lda #24
lda #26
sta YPOS
lda recharge_bg_progression,Y
@ -524,21 +377,6 @@ bg_room0:
lsr
tay
lda #5
sta XPOS
lda #24
sta YPOS
lda recharge_sprite_progression,Y
sta INL
lda recharge_sprite_progression+1,Y
sta INH
jsr put_sprite
c4_no_bg_action:
@ -550,7 +388,7 @@ c4_no_bg_action:
jsr handle_keypress
;===============================
; move physicist
; move astronaut
;===============================
jsr move_astronaut
@ -568,84 +406,41 @@ c4_no_bg_action:
done_room_limits:
;=============================
;=============================
; Detect if falling off ledge
;=============================
;=============================
;===============
; draw astronaut
;===============
; only fall in room#3
; only have slope in room0
lda WHICH_ROOM
cmp #3
bne regular_room
; don't start fall if impaled or already falling
lda ASTRONAUT_STATE
cmp #P_IMPALED
beq regular_room
cmp #P_FALLING_DOWN
beq regular_room
cmp #P_FALLING_SIDEWAYS
beq regular_room
; only start falling if y>=18
lda ASTRONAUT_Y
cmp #18
bcc regular_room ; blt
; only start falling if x>=7 and positive
lda ASTRONAUT_X
bmi regular_room
cmp #7
bcc regular_room ; blt
lda ASTRONAUT_STATE
cmp #P_JUMPING
beq fall_sideways
; if not jumping then fall down
lda #P_FALLING_DOWN
sta ASTRONAUT_STATE
lda #2
sta BG_SCROLL
jmp regular_room
fall_sideways:
lda #P_FALLING_SIDEWAYS
sta ASTRONAUT_STATE
lda #2
sta BG_SCROLL
regular_room:
;===============
; draw physicist
;===============
; if in charger, draw that
lda WHICH_ROOM ; charger only room0
bne just_draw_astronaut
; adjust y for slope
lda ASTRONAUT_X
cmp #10
bne just_draw_astronaut
cmp #11
bcc asstr_above ; blt
lda GUN_CHARGE
cmp #200
bcs just_draw_astronaut ; bge
cmp #22
bcs asstr_below ; bge
lda #P_STANDING
sta ASTRONAUT_STATE
sec
sbc #11
and #$fe ; our sprite code only draws even y
adc #11
jsr draw_charger
jmp asstr_adjust_y
jmp after_draw_astronaut
asstr_below:
lda #22
jmp asstr_adjust_y
asstr_above:
lda #10
asstr_adjust_y:
sta ASTRONAUT_Y
jsr recalc_walk_collision
just_draw_astronaut:
jsr draw_astronaut
@ -686,18 +481,18 @@ no_draw_alien:
;========================
lda WHICH_ROOM
cmp #2
beq c4_room2_cover
beq c4_room0_cover
cmp #4
beq c4_room4_cover
jmp c4_no_fg_cover
c4_room2_cover:
c4_room0_cover:
lda #0
sta XPOS
lda #18
lda #6
sta YPOS
lda #<causeway_door_cover
@ -830,72 +625,11 @@ still_in_city:
lda #0
sta GAME_OVER
jmp city_loop
jmp starbase_loop
done_city:
rts
recharge_sprite_progression:
.word recharge_sprite1
.word recharge_sprite2
.word recharge_sprite3
.word recharge_sprite4
recharge_sprite1:
.byte 1,10
.byte $eA
.byte $ff
.byte $ee
.byte $ff
.byte $e6
.byte $ff
.byte $6e
.byte $ff
.byte $fe
.byte $a6
recharge_sprite2:
.byte 1,10
.byte $fA
.byte $f6
.byte $ef
.byte $fe
.byte $66
.byte $fe
.byte $6e
.byte $f6
.byte $6e
.byte $af
recharge_sprite3:
.byte 1,10
.byte $eA
.byte $f6
.byte $ef
.byte $ef
.byte $6f
.byte $f6
.byte $e6
.byte $f6
.byte $6f
.byte $ae
recharge_sprite4:
.byte 1,10
.byte $fA
.byte $fe
.byte $fe
.byte $6e
.byte $fe
.byte $6e
.byte $ee
.byte $f6
.byte $ef
.byte $ae
recharge_bg_progression:
.word recharge_bg1
.word recharge_bg2
@ -958,15 +692,17 @@ recharge_bg4:
; 0x18
causeway_door_cover:
.byte 8,8
.byte $00,$00,$00,$00,$00,$00,$22,$AA
.byte $00,$00,$00,$00,$00,$00,$22,$AA
.byte $00,$00,$00,$00,$00,$00,$22,$AA
.byte $00,$00,$00,$00,$00,$00,$02,$2A
.byte $00,$00,$00,$00,$00,$00,$00,$22
.byte $00,$00,$00,$00,$00,$00,$00,$22
.byte $00,$00,$00,$00,$00,$00,$00,$22
.byte $00,$00,$00,$00,$00,$00,$00,$22
.byte 6,10
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$11,$00,$00,$00
.byte $00,$00,$11,$11,$00,$00
.byte $00,$00,$00,$11,$00,$00
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00
; 30x8
pit_door_cover:
@ -1002,39 +738,26 @@ door_c4_r0:
.word door_c4_r0_xmax
door_c4_r0_status:
c4_r0_door0_status: .byte DOOR_STATUS_CLOSED
c4_r0_door1_status: .byte DOOR_STATUS_CLOSED
c4_r0_door2_status: .byte DOOR_STATUS_LOCKED
c4_r0_door3_status: .byte DOOR_STATUS_LOCKED
c4_r0_door4_status: .byte DOOR_STATUS_LOCKED
c4_r0_door0_status: .byte DOOR_STATUS_LOCKED
c4_r0_door1_status: .byte DOOR_STATUS_LOCKED
door_c4_r0_x:
c4_r0_door0_x: .byte 7
c4_r0_door1_x: .byte 18
c4_r0_door2_x: .byte 29
c4_r0_door3_x: .byte 31
c4_r0_door4_x: .byte 33
c4_r0_door0_x: .byte 6
c4_r0_door1_x: .byte 37
door_c4_r0_y:
c4_r0_door0_y: .byte 24
c4_r0_door1_y: .byte 24
c4_r0_door2_y: .byte 24
c4_r0_door3_y: .byte 24
c4_r0_door4_y: .byte 24
c4_r0_door0_y: .byte 6
c4_r0_door1_y: .byte 18
door_c4_r0_xmin:
c4_r0_door0_xmin: .byte 0 ; 7-4-5
c4_r0_door1_xmin: .byte 11 ; 18-4-5
c4_r0_door2_xmin: .byte 20 ; 29-4-5
c4_r0_door3_xmin: .byte 22 ; 31-4-5
c4_r0_door4_xmin: .byte 24 ; 33-4-5
c4_r0_door0_xmin: .byte 0 ; 37-4-5
c4_r0_door1_xmin: .byte 28 ; 37-4-5
door_c4_r0_xmax:
c4_r0_door0_xmax: .byte 11 ; 7+4
c4_r0_door1_xmax: .byte 21 ; 18+4
c4_r0_door2_xmax: .byte 33 ; don't care
c4_r0_door3_xmax: .byte 35 ; don't care
c4_r0_door4_xmax: .byte 37 ; don't care
c4_r0_door0_xmax: .byte 4 ; ??
c4_r0_door1_xmax: .byte 39 ; ??

View File

@ -398,4 +398,3 @@ door_exploding_sprite6:
.byte $FA,$AA,$AA
.byte $AF,$A5,$AA

View File

@ -152,18 +152,24 @@ BLAST_OUT = $D8 ; 2+
SHIELD_OUT = $D9 ; 2+
ALIEN_OUT = $DA ; 2+
RASTER_PAGE = $DA ; rasters
LASER_OUT = $DB ; 2+
RASTER_X = $DB ; rasters
GUN_CHARGE = $DC ; 2+
CREDITS_POINTERL= $DC ; credits
MONSTER_AI = $DD ; C1 underwater
ACTION_COUNT = $DD ; C4
CREDITS_POINTERH= $DD ; credits
BG_BEAST = $DE ; C1
ACTION_TRIGGERED= $DE ; C4
CREDITS_X = $DE ; credits
ON_ELEVATOR = $DF ; ALL
CREDITS_Y = $DF ; credits
LEFT_LIMIT = $E0 ; ALL
RIGHT_LIMIT = $E1 ; ALL

View File

@ -2,7 +2,18 @@
#include <math.h>
#define ANGLE_STEPS 16
#define ANGLE_STEPS 64
static int double_to_fixed(double d) {
int temp;
temp=d*4096;
return temp;
}
int main(int argc, char **argv) {
@ -12,7 +23,7 @@ int main(int argc, char **argv) {
printf("Sin\n");
for(i=0;i<ANGLE_STEPS;i++) {
angle=3.1415926535897932384*2.0*((double)i/(double)ANGLE_STEPS);
printf("%d %lf\n",i,sin(angle));
printf("%d %lf %x\n",i,sin(angle),double_to_fixed(sin(angle)));
}
printf("Cos\n");