From: Mischa Poslawsky Date: Tue, 8 Jan 2002 23:33:12 +0000 (+0100) Subject: wormy 0.97.109 X-Git-Url: http://git.shiar.nl/wormy.git/commitdiff_plain/7ad6d272ed2820c7e2c8c884d1184072168d80d0 wormy 0.97.109 --- diff --git a/wormy.z80 b/wormy.z80 index 22131ff..ab13324 100644 --- a/wormy.z80 +++ b/wormy.z80 @@ -16,8 +16,8 @@ ; ßÛÛÛß ßÛÛßß ßÛÛÛÛÛß ÛÛ ÛÛÝ ßÛÛÛÛÛÛÛÛÛß ;_______________________________________________________________________________ ; -; Version : 97% (0.97.15) -; Release Date : 2002 January 15 +; Version : 97% (0.97.19) +; Release Date : 2002 January 9 ; Author(s) : Shiar ; Email Address : wormy@shiar.org ; Web Page : www.shiar.org @@ -39,6 +39,7 @@ ;* Although I've commented & labeled quite some stuff, I can't guarantee ; everybody will understand it. This is probably not the best source ; to learn z80 from. w00t the Shyer Way (tm). +;* Also read wormy.txt please, thank you ;* Don't scroll down if you get scared easily. ;_______________________________________________________________________________ @@ -48,25 +49,37 @@ ;_______________________________________________________________________________ ; 97% = DONE - -; 2% * misc (bugs, &&&, pollish, &&, &) -; X score >9 dispay [15] -; * mem at worm #4 (still 12 bytes or so.. or more? or less?) +; X [15] lives >9 dispay +; X [15] sp modes not configurable +; X [16] LVL: episode #2: 10 sp levels +; X [17] lives stats for every liveslimited game (also !dm) +; X [18] LINK: fix transmit game/level data +; X [19] datalevels+nrlevels not in program if !intlevels +; X [19] mem at worm #4 (still 12 bytes or so.. or more? or less?) +; X [19] alter level editor to use new address and set level id #97 +; 1% * misc (bugs, &&&, pollish, &&, &) +; * menu s/limit/peas in multifm +; * autogrowth doesn't always work ; * look at init-z in line routine again -; X sp modes not configurable [15] -; * team score +; * team score! ; * random pixel still occurs -; * levels: Wormage | Jonah? | 2 | 3 | 4 -; * LINK -; 1% * fix transmit game/level data (?) -; * >Somehow do a lot of testing with 2 calcs< *sigh* +; * LINK: optimize transmit +; 1% * LINK: >Somehow do a lot of testing with 2 calcs< *sigh* +; * LINK: called "Linkmatch" at g/o +; * LVL: episode #3: at least 5 lvls for each mp mode +; * LVL: episode #4: 10 sp levels, including multipeas +; 1% * LVL: episode #5: ... +; * LVL: Wormage +; * LVL: Free Bird +; * LVL: Jonah? ;100% = bugs fixed + levels done - +;> * switchable scoredecrease on death? +; * wall at pickup position fix ; * arrow to offscreen peas -; * multiple peas in sp level -;>110%: sound, startpos (?) -;>120%: coop (DON'T COUNT ON IT) +;110% * sound +; * startpos +;120% * coop (DON'T COUNT ON IT) ;_______________________________________________________________________________ ; _/_/_____ __ _ _______ _ _ ______ _______ @@ -130,27 +143,32 @@ _GETB_AHL = $46C3 ;a=(ahl) \ hl=ahl ;--- permanent --- -ScrBuffer = $8820 ;-A7FF (20*FF=1FE0) +ScrBuffer = $8420 ;-A3FF (20*FF=1FE0) +worm4p = $A400 ;-A5FF (200) %101001O0 +;free = $A600 ;-A7FF (200) worm2p = $A800 ;-ABFF (400) %10101O00 -worm1 = $AC00 ;-AC1D (31d) -worm2 = $AC1F ;-AC3B (1F) -worm3 = $AC3E ;-AC59 (1F) -worm4 = $AC5D ;-AC77 (1F) -balls = $AC7C ;-ACFF (3x43d) -SinCosTable = $AD00 ;-AE00 (4*40) -turn10 = $AE01 ;-AE01 (1) (counter) -peaspos = $AE02 ;-AE05 (4+) (peas) -;free = $AE06 ;-AFFF (1FA) +SinCosTable = $AC00 ;-AD00 (4*40) +worm1 = $AD01 ;-AD1F (1F) +worm2 = $AD20 ;-AD3E (1F) +worm3 = $AD3F ;-AD5D (1F) +worm4 = $AD5E ;-AD7C (1F) +balls = $AD7D ;-AE00 (<=3x44d) +turn10 = $AE01 ;-AE01 (1) (counter) +peaspos = $AE02 ;-AF05 (4-260) (peas) +;free = $AF06 ;-AFFF (F9) worm1p = $B000 ;-B7FF (800) %1011O000 worm3p = $B800 ;-BBFF (400) %10111O00 +;buffer = $BC00 ;-BF90 (390) ;free = $BF91 ;-BFFF (6F) ;program = $D748 ;-EFFF (186D+4A) ;6327 -worm4p = $F000 ;-F3FF (400) %11110O00 -leveldata = $F400 ;-FA70 (<=671) - ;can you believe i actually left $269 bytes of memory unused?!? +leveldata = $F080 ;-F9FF (<=97F) +#ifndef intlevels +datalevels = $FA00 ;-FA11 (12) (>=$C000) +nrlevels = $FA12 ;-FA1B (A) (<$FA70) +#endif ;MEM|8---9---A---B---C---D---E---F---| ;there's something wrong -; |..[------]||[]|......[-----]|[].| ;if you still understand +; |..[------]||[]|......[-----]|[].| ;if you still understand < OUTDATED < ; | SCREEN 2* 13 PRGM 4LV | ;after looking at this ;--- temporary --- @@ -162,7 +180,8 @@ DispBuffer = $BC00 ;(10x57d) @game #else DispBuffer = $FC70 #endif -lefttotalb = $AFFF +linklevel = $AECC ;(<=134) @game+init +lefttotalb = $BF91 ;(1) @game drawctfpea1 = peaspos+4 drawctfpea2 = peaspos+6 @@ -193,7 +212,7 @@ start: ;turn back NOW! .db %1010010 jr nz,$+47 dec l - .db " 97% .15",0 + .db " 97% .19",0 WormIcon: .db 8,2 .db %00000000,%00111100 @@ -206,7 +225,7 @@ WormIcon: .db %00111100,%00111110 levelhead = 'w' -levelhead2 = 95 ;wormy levels header = "95" +levelhead2 = 97 ;wormy levels header = "97" int_handler: ex af,af' @@ -310,7 +329,7 @@ loadgametype: inc bc pop af pop de ;counter - dec d ;8x + dec d ;9x jr nz,loadgametype ret @@ -1284,13 +1303,10 @@ clroldsetsloop: hlatlevel: ;d must be 0 psh hl ;loadgamecar ld a,(Gametype) ;8bytes -> 7bytes - ld e,a - add a,a ;nc - add a,e - add a,a ;8->2bytes - add a,28+1 ;go to datalevels + add a,a ld e,a ;=de - sbc hl,de ;datalevels + ld hl,datalevels + add hl,de cal _ldHLind ;ld hl,(hl) pop de ;de=loadgamecar inc de \ inc de @@ -1542,8 +1558,8 @@ sethost: cal recvstuff pop hl ;loadgamecar pop de ;leveldata - ld hl,templevels ;&&&&&&& - ld de,datalink + ld de,linklevel ;&&&&&&& + ld hl,datalink psh de psh hl ;loadgamecar ld b,8 @@ -1647,7 +1663,7 @@ setspeed: ld de,peagrowth ldi ld a,(hl) - ld (worm1+grow),a + ld (worm1+grow),a ;&&sh ld (worm2+grow),a ld (worm3+grow),a ld (worm4+grow),a @@ -3341,9 +3357,9 @@ nameshown: ret showstat: ;(multiplayer) - ld a,(Gametype) - cp gamedeathm - jr z,showlives + ld a,(wormbeglives) + or a + jr nz,showlives showscore: cal ldscoreinhl cal _D_HL_DECI @@ -3978,7 +3994,7 @@ sendnewpeaoverlink: ld a,(gameCar) rra ;and _datalink ret nc ;no link - ld a,(ix+left) + ld a,(worm1+left) or a jr z,receivenewpeaoverlink ld c,l ;send pea's pos @@ -4275,14 +4291,10 @@ txtGO: .db 5,5,5,5,5," GAME OVER ",$CF,$CF,$CF,$CF,$CF,0 #endif #ifdef intlevels -datalevels: .dw LevelDef, LevelDefM - .dw LevelDefT,LevelDefM - .dw LevelDefM,LevelDefM,LevelDefM +datalevels: .dw LevelDef, LevelDefM,LevelDefT + .dw LevelDefM,LevelDefM,LevelDefM,LevelDefM .dw LevelDefR,LevelDefC nrlevels: .db 2,3,1,3,3,3,3,3,1,0 ;=defaults -#else -datalevels: .dw 0,0,0,0,0,0,0,0,0 -nrlevels: .dw 0,0,0,0,0 #endif _datalink = %00000001 ;linkplay @@ -4334,7 +4346,7 @@ worm3set: .dw worm3p,worm3p .db %11111011,1,-01,K_COMMA,K_STO worm3name: .db "NIBBLER ",0 worm4set: .dw worm4p,worm4p - .db %11111011,0,-01,K_PLUS,K_ENTER + .db %11111101,0,-01,K_PLUS,K_ENTER worm4name: .db "JIM ",0 defhiscrpos: