- .db 16,7 ;invulnerable....:.......:
- .db %10000000,%01010100 ; █ O O O
- .db %10011110,%00101010 ; █ OOOO O O O
- .db %10111000,%00010101 ; █ OOO O O O
- .db %10111111,%10101010 ; █ OOOOOOO O O O
- .db %10111111,%00010101 ; █ OOOOOOO O O O
- .db %10111000,%00101010 ; █ OOO O O O
- .db %10011110,%01010100 ; █ OOOO O O O
-
-;---------------------------- texts -------------------------------------------
-
-txt_about: .db "v0.9.94 ","by Shiar "
- .db "(ICQ#43840958)",0
-txt_1player: .db "1 PLAYER",0
-txt_2players: .db "2 PLAYERS",0
-txt_level: .db "LEVEL ",0
-txt_gameover: .db "GAME OVER!",0
-txt_lives: .db "Lx0?",0
-
-;---------------------------- save data ---------------------------------------
-
-stored_data_start:
-
-PutWhere .dw GRAPH_MEM ;where to put the wide sprites
-
-timer .db $00 ;frame counter
-level .db $00 ;level number
-levelp .dw level01 ;pointer to level data
-
-eventenemy .db $02 ;enemy type
-eventtime .db $15 ;enemy frequency
-eventleft .db $00 ;nr. of enemies still to come
-nextevent .db $50 ;time to next event
-
-score .dw $0000
-
-your_pickup .db $00
-your_occ .db $00 ;0=normal 1..16=exploding
-your_inv .db $50 ;invincibility left
-your_armor .db $13 ;HP left
-lives .db $04 ;
-x .db $16 ;x-pos
-y .db $46 ;think about it..
-hp .db $00 ;hitpoints left
-
-torp_occ .db $00 ;torp.state: 0=unavail 1=avail 2=presnt
-torp_pos .dw $0000 ;torpedo position (x,y)
-
-ybullets .dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;10 x (state,x,y)
-ebullets .dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;10 x (state,x,y)
-
-nrenemies = 10
-enemies .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
-
-enemiesxtra .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- .dw $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
-add2enemy = 40
-
-; %111111 (HP left) 11 (00=no enemy 01=exploding 10=normal 11=moving)
-; %11111111 (ship type or explosion frame) %11111111 (x) %11111111 (y)
-
-;---------------------------- enemy data --------------------------------------
-
-sprites:
- .db $00
- .db spr_enemy01-spr_enemy00
- .db spr_enemy02-spr_enemy00
- .db spr_enemy03-spr_enemy00
- .db spr_enemy04-spr_enemy00
- .db spr_enemy05-spr_enemy00
- .db spr_enemy06-spr_enemy00
- .db spr_enemy07-spr_enemy00
+ .db 16,7 ;laser .......:.......:
+ .db %10000000 ;█ ▒
+ .db %10001010 ;█ █ █ ▒▒▒ ▒
+ .db %11101100 ;███ ██ ▒▒▒ ▒
+ .db %11110111 ;████ ███████▒▒▒█▒
+ .db %11101100 ;███ ██ ▒▒▒ ▒
+ .db %10001010 ;█ █ █ ▒▒▒ ▒
+ .db %10000000 ;█ ▒
+ .db 7
+ .db %00000000
+ .db %00000000
+ .db %00000000
+ .db %11111111
+ .db %00000000
+ .db %00000000
+ .db %00000000
+spr_icon05:
+ .db 16,7 ;multiple.......:.......:
+ .db %10000011 ;█ ███ ▒
+ .db %10000001 ;█ ████ ██ ▒
+ .db %10000001 ;█ ████ ▒
+ .db %10000011 ;█ ███ ▒
+ .db %10011000 ;█ ██ ▒
+ .db %10111100 ;█ ████ ██ ██▒
+ .db %10011000 ;█ ██ ▒
+ .db 7
+ .db %10000000
+ .db %11100110
+ .db %11100000
+ .db %10000000
+ .db %00000000
+ .db %11000011
+ .db %00000000
+spr_dividerline:
+ .db 8,7
+ .db 128,128,128,128,128,128,128 ;128 = %10000000
+
+;---------------------------- texts -----------------------------------------
+
+txt_email: .db "www.shiar.org ",127 ;title screen
+ .db " shiar0@hotmail.com",0
+_txt_email = $3A01 ;$3A1E=just email
+txt_about: .db "v0.99.810 ",127," by Shiar",0 ;right behind txt_email
+_txt_about = $3321
+txt_menu1: .db "NEW GAME",0
+txt_menu2: .db "CONTINUE",0
+
+txt_level: .db "LEVEL ",0 ;new level screen
+txt_lives: .db "Lx0",0
+txt_savekey: .db "Press [F1] to save",0
+
+txt_gameover: .db "GAME OVER!",0 ;game over screen
+txt_score: .db "Score",0
+txt_hiscore: .db "Hiscore",0
+
+txt_pressenter: .db "Enter to continue",0 ;pause
+txt_teacher: .db "(2",Lpi,"*.98)/sin 13",0 ;teacher
+txt_teacherans: .db Lneg,"14.6549373495",0
+
+;---------------------------- save data -------------------------------------
+
+storehi_start:
+hiscore .dw 0 ;default hiscore
+hiname .db "shiar.99",0 ; " " name
+storehi_end:
+
+storesave_start: ;--SAVED GAME-- defs:
+level .db 1 ;level number 1
+levelp .dw level01 ;pointer to level data l01
+pickuptimer .db 4 ;counts when to place a pickup 4
+your_ship .dw spr_ship01 ;your sprite sprs1
+your_score .dw 0 ;current score 0
+your_pickup .db 5 ;pickups already picked up 0
+your_occ .db 0 ;0=normal 1..16=exploding 0
+your_inv .db 0 ;invincibility left 0
+your_armor .db 12 ;HP left 12
+your_lives .db 3 ;lives left 3
+your_weapon .db 0 ;current weapon upgrade 0
+your_multiples .db 0 ;multiples present 0
+your_tail .db 0 ;tail beam present 0
+storesave_end:
+
+time2invert: .db 0 ;time until b<>w switch (0 at startup)
+
+;------------------------------ levels data ---------------------------------
+
+;format:boss: [moveType] [enemyType]
+; @level: [nr.dif.enemies]x [enemy nr]
+; [min. enemy frequency] [enemy frequency max.inc] [next lvl]
+; [level_info: 0000:damage 0:diagfire 0:ground 0:ceiling 0:?]
+; [level_move] [tunnel size] [groundtype] [stars1] [stars2]
+;efrequency must be odd if halfluring!
+
+ .db 0 ;storyline ID
+level00: ;[y-pos] [x-pos] [text,0] [SFX lines; 0=more text] [-1=end]
+ .db 25,33,"Imperial ships have",0,0
+ .db 31,9,"been sent to intercept you",0,31-25+6,-1
+
+ .db 20 ;boss for level01
+level01: ;intro-like, just a few enemies to begin with
+ .db 2,6,8
+ .db 26,70,20,%00010000,0,0,0
+ .db 1,1
+
+ .db 21
+level02: ;first wave of enemies; easeey
+ .db 3,6,7,8
+ .db 20,60,60,%00100000,0,0,0
+ .db 1,1
+
+ .db 22
+level03: ;some more enemies
+ .db 4,7,8,9,10
+ .db 17,40,75,%00110000,0,0,0
+ .db 1,1
+
+ .db 0
+ .db 1,1,"Long-Range scanners are ",
+ .db "showing",0,0
+ .db 8,1,"lots of enemy vessels ",
+ .db "advancing fast.",0,8-1+6
+ .db 24,1,"I'm changing course to a",
+ .db " nearby ",0,0
+ .db 31,1,"asteroid belt and try to",0,0
+ .db 38,1,"lose them inthere.",0,38-24+6,-1
+
+ .db 23
+level04: ;approaching asteroid belt
+ .db 7,11,11,12,12,13,1,2
+ .db 12,24,80,%00111000
+ .db 2,0,0,1,1
+
+ .db 24
+level05: ;light asteroid belt
+ .db 5,11,12,1,2,4
+ .db 12,24,80,%00111000
+ .db 2,0,0,1,1
+
+ .db 25
+level06: ;inside asteroid belt
+ .db 6,13,1,2,3,4,5
+ .db 7,18,180,%01011000
+ .db 2,0,0,1,1
+
+ .db 0,1,1,"That's it for now...",0,5,-1
+
+endlevel = 6
+
+ .db 0
+ .db 1,1,"And the storyline conti",
+ .db "nues.....",0,5
+ .db 9,1,"You decide to fly close",
+ .db " to the",0,0
+ .db 15,1,"surface of a nearby pl",
+ .db "anet =)",0,15-9+6,-1
+
+ .db 26
+level03b:
+ .db 1,2
+ .db $13,40,$4b,%00100100,0,-5,1
+ .db 1,1
+
+ .db 0
+
+ .db 0
+ .db $01,01,"Blablabla...",0,1
+ .db $01,34,"this storyline sux",0,0,1,39
+ .db $FF
+
+ .db 27
+level03a:
+ .db 1,$03
+ .db $2d,$3f,%00110110,0,-9,1
+ .db -1,-1 ;=%11111111=line
+
+ .db $07,$08
+level04b:
+ .db 1,$04
+ .db $11,$41,%00100001,0,0,0
+ .db 1,1
+ .db $07,$09
+level05a:
+ .db 1,$05
+ .db $11,$45,%00100101,%10,-7,1
+ .db 1,1
+ .db $07,$08
+level06c:
+ .db 1,$06
+ .db $19,$3a,%00100111,0,-4,1
+ .db 1,1
+
+ .db $07,$09
+level07:
+ .db 1,$07
+ .db $09,$ff,%00100001,0,0,0
+ .db 1,1
+
+;------------------------------ enemies -------------------------------------
+
+;format: [HP64] [000000:HP 00:occ] [sprite] [xpos] [appearance(ypos)]
+; [movetype] [time2fire] [firefreq]
+;appearances: 1=random; 2=lure; 3=halflure
+;case movetype:
+; 1=updown; 2=1/4x; 3=1/2x; 4=1.5x; 5=2x; 6=smart; 7=y-lure;
+; 8=y-lure 1/2x; 9=x; 10=x+y-lure 1/2x
+enemyspecs:
+;1-5=asteroids
+ .db 0,%00100110,(spr_enemyA1-spr_enemy00)/2,128,1,0,0,0
+ .db 0,%00111110,(spr_enemyA2-spr_enemy00)/2,128,1,0,0,0
+ .db 0,%01011010,(spr_enemyA3-spr_enemy00)/2,128,1,4,0,0
+ .db 1,%00001010,(spr_enemyA4-spr_enemy00)/2,128,1,3,0,0
+ .db 0,%00111110,(spr_enemyA4-spr_enemy00)/2,128,1,5,0,0
+;6-10=basic enemies
+ .db 0,%00010010,(spr_enemyE1-spr_enemy00)/2,128,1,0,10,0 ;weak
+ .db 0,%00110010,(spr_enemyE4-spr_enemy00)/2,128,1,3,6,50 ;slow
+ .db 0,%00100110,(spr_enemyE2-spr_enemy00)/2,128,1,0,1,0
+ .db 0,%00101110,(spr_enemyE3-spr_enemy00)/2,128,3,0,19,39
+ .db 0,%00101010,(spr_enemyE5-spr_enemy00)/2,128,3,4,1,0 ;fast
+;11-12=backwards
+ .db 0,%00011110,(spr_enemyB1-spr_enemy00)/2,0,3,11,19,92
+ .db 0,%00101110,(spr_enemyB2-spr_enemy00)/2,0,1,12,11,45
+ .db 0,%00110110,(spr_enemyB3-spr_enemy00)/2,0,1,11,10,41 ;small
+
+ .db 0,%00001111,(spr_enemyN3-spr_enemy00)/2,128,2,1,87,5
+ .db 0,%00000011,(spr_enemy00-spr_enemy00)/2,1,0,0,0,0 ;15
+ .db 0,%00000011,(spr_enemy00-spr_enemy00)/2,1,0,0,0,0 ;16
+ .db 0,%00000011,(spr_enemy00-spr_enemy00)/2,1,0,0,0,0 ;17
+ .db 0,%00000011,(spr_enemy00-spr_enemy00)/2,1,0,0,0,0 ;18
+ .db 0,%00000011,(spr_enemy00-spr_enemy00)/2,1,0,0,0,0 ;19
+;20-23=first bosses
+ .db 1,%00101011,(spr_boss2-spr_enemy00)/2,127,1,8,20,12 ;small
+ .db 1,%00110011,(spr_boss1-spr_enemy00)/2,127,1,8,15,10
+ .db 1,%01001011,(spr_boss1-spr_enemy00)/2,127,3,10,10,9
+ .db 0,%11111111,(spr_boss3-spr_enemy00)/2,127,3,10,1,4 ;weak+rapidfire
+;24-25=asteroid bosses
+ .db 2,%00001011,(spr_bossA1-spr_enemy00)/2,127,1,10,36,14
+ .db 2,%00110011,(spr_bossA1-spr_enemy00)/2,127,2,10,28,12
+;26-27=big bosses
+ .db 2,%00000111,(spr_boss4-spr_enemy00)/2,127,3,7,18,7
+ .db 2,%01001011,(spr_boss5-spr_enemy00)/2,127,3,7,18,7