X-Git-Url: http://git.shiar.nl/wormy.git/blobdiff_plain/8dcbed707c51a18497a464a3a383b82263c76f71..1ef9903729b6d0785ae56e2422120b030f3ef1f6:/wormlvl.z80 diff --git a/wormlvl.z80 b/wormlvl.z80 index fd1c51a..1eeda2e 100644 --- a/wormlvl.z80 +++ b/wormlvl.z80 @@ -1,43 +1,46 @@ #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 @@ -48,9 +51,9 @@ single: .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 @@ -96,7 +99,7 @@ single: .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 @@ -108,7 +111,7 @@ single: .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 @@ -126,7 +129,7 @@ single: .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. @@ -134,27 +137,32 @@ single: ;If you don't want an ending, simply put . 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: @@ -193,7 +201,8 @@ race: hiscore: - .dw 0 ;singleplayer hiscore will be saved here + .dw 0 ;singleplayer hiscore will be saved here + .dw 0 ;same for peaworm hiscore .end