junglejourney
changeset 112:174f536c9512
Moved the initialisation code into a loader file to free up some
space for more game code.
| author | David Boddie <david@boddie.org.uk> |
|---|---|
| date | Sun Sep 04 19:06:28 2011 +0200 |
| parents | 8bf248930f5c |
| children | f4cdc821c831 |
| files | build.py loader.oph mapcode.oph |
| diffstat | 3 files changed, 165 insertions(+), 109 deletions(-) [+] |
line diff
1.1 --- a/build.py Sun Sep 04 18:08:17 2011 +0200 1.2 +++ b/build.py Sun Sep 04 19:06:28 2011 +0200 1.3 @@ -50,7 +50,7 @@ 1.4 # 1000 completion screen 1.5 # 1780 title screen 1.6 # 1F00 CODE 1.7 - # 3?00 space 1.8 + # 3??0 space 1.9 # 3D00 character table (0x24/6 = 6 entries + 1 special entry) 1.10 # n type (0 missing, 1 player, 2 projectile, 3 explosion, 1.11 # 4 item, 1.12 @@ -137,30 +137,26 @@ 1.13 1.14 files = [] 1.15 1.16 - system("ophis mapcode.oph CODE") 1.17 - code = open("CODE").read() 1.18 - code_start = 0x1f00 1.19 + system("ophis loader.oph JUNGLE") 1.20 + code = open("JUNGLE").read() 1.21 + code_start = 0x5100 1.22 + files.append(("JUNGLE", code_start, code_start, code)) 1.23 1.24 - addresses = [] 1.25 - i = 0 1.26 - while i < len(code): 1.27 - if ord(code[i]) == 0x60: 1.28 - if i + 1 < len(code): 1.29 - addresses.append(code_start + i + 1) 1.30 - i += 1 1.31 - 1.32 - files.append(("CODE", code_start, code_start, code)) 1.33 - 1.34 + data = makesprites.read_sprites([makesprites.title]) 1.35 + data += makesprites.encode(makesprites.read_sprites([makesprites.completed])) 1.36 + files.append(("TITLE", 0x5A80, 0x5A80, data)) 1.37 + 1.38 data = makesprites.read_sprites(makesprites.tiles) 1.39 files.append(("SPRITES", 0x5300, 0x5300, data)) 1.40 1.41 data = makesprites.read_sprites(makesprites.chars) 1.42 files.append(("CHARS", 0x3400, 0x3400, data)) 1.43 1.44 - data = makesprites.read_sprites([makesprites.title]) 1.45 - data += makesprites.encode(makesprites.read_sprites([makesprites.completed])) 1.46 - files.append(("TITLE", 0x5A80, 0x5A80, data)) 1.47 - 1.48 + system("ophis mapcode.oph CODE") 1.49 + code = open("CODE").read() 1.50 + code_start = 0x1f00 1.51 + files.append(("CODE", code_start, code_start, code)) 1.52 + 1.53 u = UEFfile.UEFfile(creator = 'build.py '+version) 1.54 u.minor = 6 1.55
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/loader.oph Sun Sep 04 19:06:28 2011 +0200 2.3 @@ -0,0 +1,151 @@ 2.4 +.org $5100 2.5 + 2.6 +init: 2.7 + lda #22 ; MODE 5 2.8 + jsr $ffee 2.9 + lda #5 2.10 + jsr $ffee 2.11 + 2.12 + lda #23 ; disable flashing cursor 2.13 + jsr $ffee 2.14 + lda #1 2.15 + jsr $ffee 2.16 + ldx #7 2.17 + cursor_loop: 2.18 + lda #0 2.19 + jsr $ffee 2.20 + dex 2.21 + bpl cursor_loop 2.22 + 2.23 + jsr set_hidden_palette 2.24 + 2.25 + ; Define ENVELOPEs. 2.26 + lda #0 2.27 + sta $70 2.28 + define_envelopes_loop: 2.29 + 2.30 + ldx $70 2.31 + lda envelopes_high,x 2.32 + tay 2.33 + lda envelopes_low,x 2.34 + tax 2.35 + lda #8 2.36 + jsr $fff1 2.37 + 2.38 + inc $70 2.39 + lda $70 2.40 + cmp #1 2.41 + bne define_envelopes_loop 2.42 + 2.43 + ldx #0 2.44 + init_load_window_loop: 2.45 + 2.46 + lda init_load_window_vdu_bytes,x 2.47 + jsr $ffee 2.48 + inx 2.49 + cpx #5 2.50 + bne init_load_window_loop 2.51 + 2.52 + lda #255 2.53 + ldx #<title_block 2.54 + ldy #>title_block 2.55 + jsr $ffdd 2.56 + 2.57 + lda #255 2.58 + ldx #<sprites_block 2.59 + ldy #>sprites_block 2.60 + jsr $ffdd 2.61 + 2.62 + lda #255 2.63 + ldx #<chars_block 2.64 + ldy #>chars_block 2.65 + jsr $ffdd 2.66 + 2.67 + lda #255 2.68 + ldx #<code_block 2.69 + ldy #>code_block 2.70 + jsr $ffdd 2.71 + 2.72 + jmp $1f00 2.73 + 2.74 +sprites_file_name: .byte "SPRITES", 13 2.75 +chars_file_name: .byte "CHARS", 13 2.76 +title_file_name: .byte "TITLE", 13 2.77 +code_file_name: .byte "CODE", 13 2.78 + 2.79 +sprites_block: .byte <sprites_file_name, >sprites_file_name 2.80 + .byte 0, $53, 0, 0 2.81 + .byte 0, $53, 0, 0 2.82 + .byte $60, $03, 0, 0 2.83 + .byte $60, $56, 0, 0 2.84 + 2.85 +chars_block: .byte <chars_file_name, >chars_file_name 2.86 + .byte $00, $3e, 0, 0 2.87 + .byte $00, $3e, 0, 0 2.88 + .byte $80, $12, 0, 0 2.89 + .byte $80, $50, 0, 0 2.90 + 2.91 +title_block: .byte <title_file_name, >title_file_name 2.92 + .byte $80, $5a, 0, 0 2.93 + .byte $80, $5a, 0, 0 2.94 + .byte $80, $16, 0, 0 2.95 + .byte $00, $71, 0, 0 2.96 + 2.97 +code_block: .byte <code_file_name, >code_file_name 2.98 + .byte $00, $1f, 0, 0 2.99 + .byte $00, $1f, 0, 0 2.100 + .byte $dd, $1c, 0, 0 2.101 + .byte $dd, $3b, 0, 0 2.102 + 2.103 +init_load_window_vdu_bytes: .byte 28,0,29,19,24 2.104 + 2.105 +set_hidden_palette: 2.106 + 2.107 + lda #1 2.108 + sta $70 2.109 + lda #0 2.110 + sta $71 2.111 + jsr set_palette 2.112 + 2.113 + ; Run on into the next routine. 2.114 + 2.115 +set_core_palette: 2.116 + 2.117 + lda #2 2.118 + sta $70 2.119 + lda #2 2.120 + sta $71 2.121 + jsr set_palette 2.122 + 2.123 + lda #3 2.124 + sta $70 2.125 + lda #3 2.126 + sta $71 2.127 + jsr set_palette 2.128 + 2.129 + rts 2.130 + 2.131 +set_palette: 2.132 + ; $70=logical colour 2.133 + ; $71=physical colour 2.134 + lda $70 2.135 + sta $3dfb 2.136 + lda $71 2.137 + sta $3dfc 2.138 + lda #0 2.139 + sta $3dfd 2.140 + sta $3dfe 2.141 + sta $3dff 2.142 + 2.143 + lda #$c 2.144 + ldx #$fb 2.145 + ldy #$3d 2.146 + jsr $fff1 2.147 + rts 2.148 + 2.149 +envelopes_low: .byte <explosion_envelope, <damage_envelope, <item_envelope 2.150 +envelopes_high: .byte >explosion_envelope, >damage_envelope, >item_envelope 2.151 + 2.152 +explosion_envelope: .byte 1,1,252,0,0,10,0,0,126,0,0,130,126,126 2.153 +damage_envelope: .byte 2,4,8,0,248,2,0,2,126,0,0,130,126,126 2.154 +item_envelope: .byte 3,2,2,254,1,4,4,2,126,0,0,130,126,126
3.1 --- a/mapcode.oph Sun Sep 04 18:08:17 2011 +0200 3.2 +++ b/mapcode.oph Sun Sep 04 19:06:28 2011 +0200 3.3 @@ -4239,73 +4239,7 @@ 3.4 3.5 jmp copy_title ; optimise away the rts 3.6 3.7 -sprites_file_name: .byte "SPRITES", 13 3.8 -chars_file_name: .byte "CHARS", 13 3.9 -title_file_name: .byte "TITLE", 13 3.10 - 3.11 -sprites_block: .byte <sprites_file_name, >sprites_file_name 3.12 - .byte 0, $53, 0, 0 3.13 - .byte 0, $53, 0, 0 3.14 - .byte $60, $03, 0, 0 3.15 - .byte $60, $56, 0, 0 3.16 - 3.17 -chars_block: .byte <chars_file_name, >chars_file_name 3.18 - .byte $00, $3e, 0, 0 3.19 - .byte $00, $3e, 0, 0 3.20 - .byte $80, $12, 0, 0 3.21 - .byte $80, $50, 0, 0 3.22 - 3.23 -title_block: .byte <title_file_name, >title_file_name 3.24 - .byte $80, $5a, 0, 0 3.25 - .byte $80, $5a, 0, 0 3.26 - .byte $80, $16, 0, 0 3.27 - .byte $00, $71, 0, 0 3.28 - 3.29 -init_load_window_vdu_bytes: .byte 28,0,29,19,24 3.30 - 3.31 init: 3.32 - lda #22 ; MODE 5 3.33 - jsr $ffee 3.34 - lda #5 3.35 - jsr $ffee 3.36 - 3.37 - lda #23 ; disable flashing cursor 3.38 - jsr $ffee 3.39 - lda #1 3.40 - jsr $ffee 3.41 - ldx #7 3.42 - cursor_loop: 3.43 - lda #0 3.44 - jsr $ffee 3.45 - dex 3.46 - bpl cursor_loop 3.47 - 3.48 - jsr set_hidden_palette 3.49 - 3.50 - ldx #0 3.51 - init_load_window_loop: 3.52 - 3.53 - lda init_load_window_vdu_bytes,x 3.54 - jsr $ffee 3.55 - inx 3.56 - cpx #5 3.57 - bne init_load_window_loop 3.58 - 3.59 - lda #255 3.60 - ldx #<title_block 3.61 - ldy #>title_block 3.62 - jsr $ffdd 3.63 - 3.64 - lda #255 3.65 - ldx #<sprites_block 3.66 - ldy #>sprites_block 3.67 - jsr $ffdd 3.68 - 3.69 - lda #255 3.70 - ldx #<chars_block 3.71 - ldy #>chars_block 3.72 - jsr $ffdd 3.73 - 3.74 ; Copy the title screen to a lower address in memory. 3.75 jsr copy_title_down 3.76 3.77 @@ -4318,24 +4252,6 @@ 3.78 lda #26 ; unset the text window 3.79 jsr $ffee 3.80 3.81 - ; Define ENVELOPEs. 3.82 - lda #0 3.83 - sta $70 3.84 - define_envelopes_loop: 3.85 - 3.86 - ldx $70 3.87 - lda envelopes_high,x 3.88 - tay 3.89 - lda envelopes_low,x 3.90 - tax 3.91 - lda #8 3.92 - jsr $fff1 3.93 - 3.94 - inc $70 3.95 - lda $70 3.96 - cmp #1 3.97 - bne define_envelopes_loop 3.98 - 3.99 ; Define the default high scores. 3.100 ldy #0 3.101 lda #$80 3.102 @@ -4382,13 +4298,6 @@ 3.103 3.104 high_score_default_name: .byte "- David -" 3.105 3.106 -envelopes_low: .byte <explosion_envelope, <damage_envelope, <item_envelope 3.107 -envelopes_high: .byte >explosion_envelope, >damage_envelope, >item_envelope 3.108 - 3.109 -explosion_envelope: .byte 1,1,252,0,0,10,0,0,126,0,0,130,126,126 3.110 -damage_envelope: .byte 2,4,8,0,248,2,0,2,126,0,0,130,126,126 3.111 -item_envelope: .byte 3,2,2,254,1,4,4,2,126,0,0,130,126,126 3.112 - 3.113 title_vdu_bytes: .byte 17,2, 31,4,27, "Press SPACE", 31,7,28, "to play" 3.114 title_vdu_bytes1: .byte 17,3, 31,1,30, "Copyright (c) 2011" 3.115 title_vdu_bytes2: .byte 17,3, 31,1,30, " David Boddie "
