#include "asm86.h"
#include "ti86asm.inc"
- .org $EA00-20
+ .org $E9E3-16 ;$E9E3-[name size]
- .db 'T',0 ;worm header (Test version)
- .dw hiscore-single ;leveldata size
+ .db "89" ;worm header (version .88)
+ .db 16,"Worm LevelPack I" ;level name
+ .dw hiscore-single ;leveldata size
levelsdata:
- .dw single ;points to singleplayer levels
- .dw 0 ;...peaworm level (0 = no levels/empty level)
- .dw deathmatch ;...deathmatch
- .dw foodmatch ;...foodmatch
- .dw linkmatch ;...linkmatch
- .dw hunting ;...hunting
- .dw race ;...race
- .dw ctf ;...capture the flag
+ .dw single ;points to singleplayer levels
+ .dw 0 ;...peaworm level (0 = no levels/empty level)
+ .dw deathmatch ;...deathmatch
+ .dw foodmatch ;...foodmatch
+ .dw linkmatch ;...linkmatch
+ .dw hunting ;...hunting
+ .dw race ;...race
+ .dw ctf ;...capture the flag
+ .db 2,2,3,2 ;max. choosable level+1 for each gametype
+ .db 2,2,2,2 ;so: 2 = level 1 only; 4 = level 1 to 3 available
single:
- .db 5,4,15 ;peas in level, delay (0=fastest), pea-growth
- .db 15,5 ;begin_size, sprite size (0=use default sprite)
- .db %01110000 ;sprite
+ .db 5,4,15 ;peas in level, delay (0=fastest), pea-growth
+ .db 15,5 ;begin_size, sprite size (0=use default sprite)
+ .db %01110000 ;sprite
.db %10001000
.db %10001000
.db %10001000
.db %01110000
- .db 0 ;balls (0 or 1)
- .db 0,2,63 ;your start d (0=down,$80=up), y, x
- .db 128,57 ;field width (128-255), height (57-255)
- .db 0,0 ;no additional lines, boxes
+ .db 0 ;balls (see below)
+ .db 0,2,63 ;your start d (0=down,$80=up), y, x
+ .db 128,57 ;field width (128-255), height (57-255)
+ .db 0,0 ;no additional lines, boxes
.db 8,4,15,15,0,0
.db $40,14,2
.db 128,57
- .db 1 ;one line:
- .db 28,28,100,28 ;line coords: x1,y1,x2,y2
+ .db 1 ;one line:
+ .db 28,28,100,28 ;line coords: x1,y1,x2,y2
.db 0
.db 9,4,15,15,0,0
.db 28,41,100,41
.db 0
- .db 4,3,15,10,0,1 ;...bouncing ball
- .dw $20F ;ball begin position
- .db 0,2,63
+ .db 4,3,15,10,0,1
+ .db 2,4,0 ;1 bouncing ball, begin y, x, direction (%11=left+up)
+ .db 0,2,124
.db 128,57
.db 2
.db 28,14,100,41
.db 0
.db 12,3,15,15,0,0
- .db $40,4,0
+ .db $40,2,2
.db 128,90
.db 6
.db 20,16,54,16
.db 0
.db 8,2,15,15,0,0
- .db $C0,72,48
+ .db $C0,67,48
.db 128,128
.db 13
.db 34,56,56,34
.db 91,106,115,106
.db 0
- .db 255 ;end marker
+ .db 255 ;end marker
;Code to run when all levels are done:
;Worm waits a second, then screen is cleared and this code will be run.
;If you don't want an ending, simply put <ret>.
ld hl,endtext
- call _puts ;display text
- jp _getkey ;wait for a key
- ;jp ? = call ? + ret
+ call _puts ;display text
+ jp _getkey ;wait for a key
+ ;jp ? = call ? + ret
endtext:
.db " Congratulations!!",0
deathmatch:
.db 8,5,15,31,0,0
- .db $40,28,2 ;begin stats for each player
- .db $C0,28,125 ;player 2 moves left
- .db $00,2,63 ;player 3 moves down
- .db $80,54,63 ;player 4 moves up
+ .db $40,28,2 ;begin stats for each player
+ .db $C0,28,125 ;player 2 moves left
+ .db $00,2,63 ;player 3 moves down
+ .db $80,54,63 ;player 4 moves up
.db 128,57
.db 0
- .db 4 ;4 boxes:
- .db 16,12,48,12 ;x1,y1,x2,ysize(y2-y1)
- .db 80,12,112,12 ;...
+ .db 4 ;4 boxes:
+ .db 16,12,48,12 ;x1,y1,x2,ysize(y2-y1)
+ .db 80,12,112,12 ;...
.db 16,34,48,12
.db 80,34,112,12
+ .db 8,4,18,15,0,0
+ .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64
+ .db 128,57
+ .db 0,0
+
foodmatch:
ctf:
hiscore:
- .dw 0 ;singleplayer hiscore will be saved here
+ .dw 0 ;singleplayer hiscore will be saved here
+ .dw 0 ;same for peaworm hiscore
.end