X-Git-Url: http://git.shiar.nl/wormy.git/blobdiff_plain/84c4b19c197df6dca9789632275554935e83e44e..5921ae1521e78d38c0257c19691686b355b934ba:/wormy.z80 diff --git a/wormy.z80 b/wormy.z80 index 7e13673..754b085 100644 --- a/wormy.z80 +++ b/wormy.z80 @@ -16,8 +16,8 @@ ; ßÛÛÛß ßÛÛßß ßÛÛÛÛÛß ÛÛ ÛÛÝ ßÛÛÛÛÛÛÛÛÛß ;_______________________________________________________________________________ ; -; Version : 98% (0.98.226) -; Release Date : 2002 February 26 +; Version : 100% (1.00.36) +; Release Date : 2002 March 6 ; Author(s) : Shiar ; Email Address : wormy@shiar.org ; Web Page : www.shiar.org @@ -27,8 +27,9 @@ ; Other games by author(s) : Nemesis beta ; Additional Credits to : Matthew Shepcar : wrote original Peaworm, end'98 ; Jonah Cohen : helped writing worm -; Files : wormy.z80 (89kB) : 515ad14b922572bdc8a96e780b8b24ca -; wormy.86p (6512) : efef32a8c541b4585087f55deb31f51d +; Files : wormy.txt (9283) : ed15e942a99b40e5a584c597cb13df46 +; wormy.z80 (100k) : 977109a7d25f3227fe817edbcc36ad9a +; wormy.86g (8914) : fbff7c36687c1e7e3113c29069021718 ;_______________________________________________________________________________ ;--- notes --------------------------------------------------------------------- @@ -42,83 +43,39 @@ ; crazy optimizations and weird coding, it may be harder to ; understand than the average blob of code. This is probably _not_ ; the best source to learn z80 from. w00t the Shyer Way (tm). -; * Email me. If you've got suggestions, tell me. +; * Email me. If you've got suggestions|patches|questions: tell me. ; * Don't scroll down if you get scared easily. ;--- index --------------------------------------------------------------------- -;-* TO_DO -; | future features -;--* #INCLUDE -;---* STORAGE -; | permanent -; | temporary -; | layout -;----* PROG_START -; | search levels -;-----* LEV_SELECT -;------* MORE_INIT -; | trig tables -;-------* MAIN_MENU -; | draw menu -; | options menu -; | main menu -; | display current settings -; | handle menukeys -; | change name -;--------* MISC_PROCS -;---------* START_GAME -; | link -; | client -; | set/send worms -; | host -; | load game -; | draw level -; | prepare -;----------* GAME_LOOP -;-----------* KEYS -; | pause menu -;------------* GAME_OVER -; | who won? -; | display worms -; | quit -;-------------* WORM_STUFF -;--------------* WORM_ALIVE -; | move worm -; | draw worm -;---------------* BOUNCYBALL -;----------------* WORMY_HIT -; | multifood -; | ctf -; | main -; | foodmatch|SP -; | take pea -; | misc -;-----------------* PROCS -;------------------* SCORE -;-------------------* DISPLAY -;--------------------* DRAW -; | pixel -; | findpixel -; | objects -; | circle -; | box -; | fatline -; | line -;---------------------* LINK! -; | multiple bytes -; | foo -; | send -; | recv -; | common -;----------------------* INT_LEVELS -;-----------------------* DATA -; | graphics -; | menus -; | text -; | foo -; | game settings -;------------------------* THAT'S_ALL +; * TO_DO : future features +; * #INCLUDE +; * STORAGE : permanent; temporary; layout +; * PROG_START : search levels +; * LEV_SELECT +; * MORE_INIT : trig tables +; * MAIN_MENU : draw menu; options menu; main menu; display +; current settings; handle menukeys; change name +; * MISC_PROCS +; * START_GAME : link; client; set/send worms; host; load game; +; draw level; prepare +; * GAME_LOOP +; * KEYS : pause menu +; * GAME_OVER : who won?; display worms; quit +; * WORM_STUFF +; * WORM_ALIVE : move worm; draw worm +; * BOUNCYBALL +; * WORMY_HIT : multifood; ctf; main; foodmatch|SP; take pea; +; misc +; * PROCS +; * SCORE +; * DISPLAY +; * DRAW : pixel; findpixel; objects; circle; box; +; fatline; line +; * LINK! : multiple bytes; foo; send; recv; common +; * INT_LEVELS +; * DATA : graphics; menus; text; foo; game settings +; * THAT'S_ALL ;_______________________________________________________________________________ ; _______ _____ ______ _____ @@ -126,28 +83,27 @@ ; | |_____| ____ |_____/ |_____| ;_______________________________________________________________________________ -; 98% = CURRENT -; X [119] ED: new 53 file format with support for 128 objects instead of 32 -; X [119] LVL: episode #4: 10 hard sp levels (ordered XO-XO-XO-X) -; X [120] fixed greymask (and it now ands instead of ors) -; X [120] fixed growth set after death -; X [121] fixed linkplay (couldn't turn it on anymore..) -; X [121] LVL: Wormage + Wormage ][ (2x 10 sp levels) -; X [121] pea randomizer doesn't give x>128 -; X [121] mixed single-/multipea singleplayer levels (re)set correctly -; X [126] circles left|above 0,0 drawn correctly now! -; X [126] fixed multiple pages of levelfiles -; X [29] optimized a few more bytes (less empty bytes so prettier binary ;) -; X [225] ED: ctf/race level copy/move fix -; X [225] LVL: episode #1: 5 ctf+5 race; episode #3 removed (all in #1 now) -; X [225] add v2 id (yas2) -; 1% * LINK: >Somehow do a lot of testing with 2 calcs< *sigh* -; * LVL: episode #5: 10 easy sp levels (do i _have_ to?) -; * LVL: Eric's Yumworms (ep#5?) -; * LVL: Free Bird -; * LVL: Jonah? -; * scorebar last digit (at 128-3) not displayed by _vputs -; 1% * fix any bugs that come up +; 99% = PREVIOUS +; X [34] freeze when no space left to place pea (break after 10k tries) +; X [34] wow another bit of code 'reniced' (easter egg or something :) +; X [34] two more jp to jr +; X [34] highly improved randomizer (values >127 were rare) +; X [36] replace 'left' at the change-control prompt +; X [36] ED: fixed immediate exit at level preview when using enter key +; X [36] bouncies drawn after placing peas (causing overwrites) +; X [36] FIX: skip string length bytes when running from yas +; X [36] ED: pointer to ending message realigned +; X [36] LVL: end messages fixed in affected episodes +;100% = CURRENT +; * scorebar last digit (at 128-3) not displayed by _vputs :( +; * save last played level (in levelfile prolly) +; * automatically start players in multiplayer games after certain time +; * muliplayer bonuses/powerups (shrink, lives, stun, inverse, etc.) +; * levels with random pixels appearing during game +; * no borders (move players from one side to another) +; * hiding levels crashes?? (ishell 2.01 rom 1.6) +; * use selected player on main menu as first player in singleplayer games + ;--- future features ----------------------------------------------------------- @@ -155,11 +111,13 @@ ; ; * correct team winners ; * level compression -; * arrow to offscreen peas -; * sound -; * startpos -; * pause in linkplay -; * coop (DON'T COUNT ON IT) +; * ubersized bouncies (sprites) +; * arrow to offscreen peas +; * w00t AI +; * sound +; * startpos +; * pause in linkplay +; * coop (DON'T COUNT ON IT) ;_______________________________________________________________________________ ; _/_/_____ __ _ _______ _ _ ______ _______ @@ -207,17 +165,17 @@ _EXLP = $4493 ;swap (hl),(de) b times _GETB_AHL = $46C3 ;a=(ahl) \ hl=ahl _OP1TOOP6 = $4263 - #define buffer ;use display buffer (otherwise write directly to screen) - #define readymask ;"greys" out the field before starting a level - #define coolzgfx ;nice graphics for game over screen + #define id2 ;yas2 level identifier - this'll add (65) bytes + #define buffer ;use display buffer, otherwise write directly to screen (11) + #define readymask ;"greys" out the field before starting a level (20) +;#define readytext ;-displays "prepare" before level starts (42) + #define coolzgfx ;nice graphics for game over screen (98) #define spprotect ;options not changable for singleplayer modes ;#define intlevels ;-internal levels -;#define readytext ;-displays "prepare" before level starts - #define id2 ;yas2 level identifier (adds 65 bytes) ;-to become invincible, define the magic word :D -levelhead = 'w' -levelhead2 = 97 ;wormy levels header = "0" +levelhead = 'w' +levelhead2 = 97 ;wormy levels header = "0" ;_______________________________________________________________________________ ; _______ _______ _____ ______ _______ ______ _______ @@ -272,7 +230,7 @@ drawctfpea2 = peaspos+6 ;--- layout -------------------------------------------------------------------- -;(wormN) set: +;(wormN) offs: set: heading = 0 ;level* pos = 2 ;level* pos2 = 4 ;level @@ -303,17 +261,17 @@ wormsize = 30 ;^mark^ start: ;turn back NOW! nop ;and so it begins... jp Start -#ifdef id2 +#ifndef id2 + ld bc,$5242 + rst 10h + .dw WormIcon +#else ld (bc),a nop ld d,h rst 10h .dw WormIcon .dw WormData -#else - ld bc,$5242 - rst 10h - .dw WormIcon #endif ld d,a ld c,a @@ -328,17 +286,17 @@ start: ;turn back NOW! .db %1010010 jr nz,$+47 dec l - .db " 98% .225",0 + .db " v1.00.36",0 WormIcon: - .db 8,2 - .db %00000000,%00111100 - .db %00000000,%01010010 - .db %00000000,%01100001 - .db %01100011,%10011001 - .db %10010100,%01101001 - .db %10011001,%00011001 - .db %01000010,%11000001 - .db %00111100,%00111110 + .db 8,2 ;Rkaydees' icon: + .db %00000000,%00111100 ; XX + .db %00000000,%01010010 ; XXX + .db %00000000,%01100001 ; XX + .db %01100011,%10011001 ; XX + .db %10010100,%01101001 ; XX + .db %10011001,%00011001 ; XX + .db %01000010,%11000001 ; X XX + .db %00111100,%00111110 ; XXXX #ifdef id2 WormData: .db 1 @@ -358,11 +316,12 @@ yasexec: rst 10h ex de,hl ld a,b + cal _AHL_PLUS_2_PG3 ;skip past length bytes cal skiptitle ;title (plus size+header <- all non-0) ; cal skiptitle ;description jp leveldataAHL-3 yasdetect: - cal _AHL_PLUS_2_PG3 ;skip past length bytes + cal _AHL_PLUS_2_PG3 ;skip past length bytes cal _Get_Word_ahl ld hl,levelhead+(levelhead2*256) call _cphlde @@ -401,6 +360,9 @@ int_end: ;--- search levels ------------------------------------------------------------- Start: + cal _runindicoff + cal _flushallmenus + cal _RAM_PAGE_7 ld hl,$BFFF ;VAT start ld ix,templevels @@ -666,9 +628,9 @@ levelloaded: ; | | | |_____| | \_ |______ _____ __|__ | \_| __|__ | ;_______________________________________________________________________________ +; cal _runindicoff ;this is after level selection (run from yas1 or restart) +; cal _flushallmenus ;so this stuff should already be done earlier or by yas ld (SpSave),sp - cal _runindicoff - cal _flushallmenus im 1 ld a,$D4 @@ -906,30 +868,30 @@ notoselect jr nz,optionMenu seloright: - dec a + dec a ;Lives jr z,changelives - dec a + dec a ;Limit jr z,changelimit - dec a + dec a ;Speed jr z,changespeed - dec a + dec a ;Rotation jr z,changeturn - dec a + dec a ;Growth jr z,changegrowth - + ;Back seloleft: ld a,b - dec a + dec a ;Lives jr z,bchangelives - dec a + dec a ;Limit jr z,bchangelimit - dec a + dec a ;Speed jr z,bchangespeed - dec a + dec a ;Rotation jr z,bchangeturn - dec a + dec a ;Growth jr z,bchangegrowth -_optionMenu: +_optionMenu: ;Back jr optionMenu changelives: @@ -1071,15 +1033,15 @@ notselect jr nz,mainMenu selright: - or a + or a ;Mode jr z,changegame - dec a + dec a ;Level jr z,changelevel - dec a + dec a ;Link jr z,changelink - dec a + dec a ;Worms jr z,changenrworms -; dec a +; dec a ;worm# ; jr z,changecurworm changecurworm: @@ -1092,15 +1054,15 @@ changecurworm: selleft: ld a,b - or a + or a ;Mode jr z,bchangegame - dec a + dec a ;Level jr z,bchangelevel - dec a + dec a ;Link jr z,bchangelink - dec a + dec a ;Worms jr z,bchangenrworms -; dec a +; dec a ;worm# ; jr z,bchangecurworm bchangecurworm: @@ -1200,9 +1162,9 @@ waitcustomkey: or a jr z,waitcustomkey cp K_EXIT - ret z + ret z ;cancel cp K_MORE - jr z,waitcustomkey + jr z,waitcustomkey ;ignore ld (ix),a ret @@ -1210,6 +1172,8 @@ changekeys: cal getwormname ld hl,txtKleft cal getcustomkey ;left + ld a,93 + ld (_penCol),a cal getcustomkey ;right ; jr dispmenusets @@ -1419,15 +1383,15 @@ continue: cal releasekeys jr enternameloop -chartable: ;("!@#$%,0" also used in _D_HL_DECI) - .db ".<>!" ;down|L|R|up|-|-|-|- +chartable: + .db ".<>!" ;down|L|R|up|-|-|-|-|[enter] .db "w00t!" ;(makes code look way better) - .db "XTOJE0",-2 ;enter|+|-|*|/|^|clear|- - .db " WSNID9",-3 ;(-)|3|6|9|)|tan|custom|- - .db "ZVRMHC8",-4 ;.|2|5|8|(|cos|prgm|del - .db "YUQLGB7#" ;0|1|4|7|ee|sin|table|xvar - .db $D9,"-PKFA6'" ;on|sto|,|x2|ln|log|graph|alpha - .db "54321*",-5,$D0 ;F5|F4|F3|F2|F1|2nd|exit|more + .db "XTOJE0",'w' ;+|-|*|/|^|clear|- w + .db " WSNID9",$F8 ;(-)|3|6|9|)|tan|custom|- o + .db "ZVRMHC8",$A7 ;.|2|5|8|(|cos|prgm|[del] o + .db "YUQLGB7#",$C2 ;0|1|4|7|ee|sin|table|xvar|[on] t + .db "-PKFA6'" ;sto|,|x2|ln|log|graph|alpha + .db "54321*",$AE,$D0 ;F5|F4|F3|F2|F1|2nd|[exit]|more nameentered: ;d=0 pop ix ;stringbegin @@ -2001,6 +1965,7 @@ levelhasbeensetup: leveldone: psh hl ; >> levelp new cal forceshowstats + cal handlethoseneatlittleballs ld a,(gamecar) rla ;and _dataPmult @@ -2123,11 +2088,7 @@ nodispupdate: cal tryDrawPea ;pea#2 noctfpeas2draw: - - ld a,0 -nrballs =$-1 - or a - cal nz,handlethoseneatlittleballs + cal handlethoseneatlittleballs ld ix,worm1 ld a,1 @@ -2159,7 +2120,7 @@ CheckExit: rla ;=$17 (c=EXIT-key) ;or$A7 (c=0) jp c,GameLoop - jp Exit ;jr? + jr Exit ;--- pause menu ---------------------------------------------------------------- @@ -2522,7 +2483,7 @@ hiscrposhl =$-2 hiscrposa =$+1 adc a,0 ;ahl=saveloc ret -savestr: ;hiscore (00AAA) _D_HL_DECI (00000) +savestr: ;hiscore (01ABC) _D_HL_DECI (01234) .db $BB,"w00t",0 iswinner: @@ -2781,7 +2742,10 @@ drawworm: inc hl ld (hl),b inc hl - cal resbit + ;(resbit) + ld a,h + and (ix+storepos) + ld h,a ld (ix+head),l ld (ix+head+1),h @@ -2810,7 +2774,10 @@ removetailbit: inc hl ld b,(hl) inc hl - cal resbit + ;(resbit) + ld a,h + and (ix+storepos) + ld h,a psh hl cal res4pixels ;rm last bit pop hl @@ -2837,8 +2804,12 @@ ResPixel: ;_______________________________________________________________________________ handlethoseneatlittleballs: + ld a,0 +nrballs =$-1 + or a + ret z ;no bouncies to handle + ld b,a ;(nrballs) ld hl,balls - ld b,a ;a=(nrballs) handleballs psh bc psh hl @@ -2976,12 +2947,11 @@ sel_otherpea: jr c,hitflag ;no peas hit: ld a,e ;peek a (that's x86asm for pop\push ;) - bit 1,a ;%10 = carrying flag? + bit 1,a ;%1O = carrying flag? jr z,_wormdead ;if not just die - xor %11 ;drop flag - ld (ix+reserv),a + and %1 ;which flag? ld hl,drawctfpea1 ;restore #1 - jr z,nottheotherflag ;which flag? (=and %1) + jr nz,nottheotherflag inc hl ;ld hl,drawctfpea2 inc hl ;restore #2 nottheotherflag: @@ -2994,14 +2964,16 @@ hitflag: ;correct pea hit xor %11 ;invert flag taken + ownflag ld (ix+reserv),a and %10 ;just returned? - psh af ;safe z-flag psh bc ;safe position + psh af ;safe z-flag cal DrawPea ;remove - ld e,20 ;flag captured+returned - cal z,IncScore - pop bc pop af + pop bc ret nz ;flag taken: continue game ;drawworm + ld e,20 ;flag captured+returned + psh bc + cal IncScore + pop bc ld a,3 ;draw delay ld (drawctfpea1),a ;redraw.. ld (drawctfpea2),a ;..both flags @@ -3024,7 +2996,7 @@ hitworm: PeaY =$-2 PeaX =$-1 cal chkpeahit - jr nc,_wormdead + jp nc,wormdead ;--- take pea ------------------------------------------------------------------ @@ -3088,12 +3060,12 @@ chkpeahit: ;bc=ownpos;hl=peapos (destr:ad) ;--- misc ---------------------------------------------------------------------- checkhitlapline: - ld a,(peaspos) ;63 + ld a,(peaspos) ;63 usually sub b ;x==63 jr z,nextlaphalf - inc a - ret nz -nextlaphalf: + inc a ;(more checkin' since wormies just have those _huge_ heads ;) + ret nz ;x!=62 +nextlaphalf: ;x==62|63; a=0 ld a,(peaspos+1) ;yline cp c ;ypos ld a,1 @@ -3120,26 +3092,22 @@ checklap: ; | | \_ |_____| |_____ ______| ;_______________________________________________________________________________ -releasekeys: - halt +releasekeys: ;---------->promise me you'll never let go... + halt ;-------------------->i won't let go.... ld a,%10000000 ;all key-masks out (1),a - in a,(1) + in a,(1) ;--------------->i'll never let go..... inc a ;cp %11111111 (no keys pressed) jr nz,releasekeys ;keep waitin cal GET_KEY ;clear buffer - ret - -resbit: - ld a,h - and (ix+storepos) - ld h,a - ret + ret ;--------------------->*die* (we are VICTORIOUS! muha) randompos: ld b,a Random: ;(2..b+2) - ld a,r + ld a,r ;0..127 + scf ;not just even values: + rla ;6543210C Seed =$+1 add a,0 ld (Seed),a @@ -3195,11 +3163,16 @@ handledworm =$-2 ld (ix+pos2),a ;y2 ld (ix+pos2+1),a ;x2 + ld a,(handledworm) ;who are we? (1-4) + cpl ;invert (just bit 0 actually) + and 1 ;group 1 (1,3) or 0 (2,4) + ld (ix+reserv),a ;reset halflap|flags to starting settings + inc (ix+died) dec (ix+lives) psh af - ld a,(gametype) - cp gamectf ;ctf no death penalty + ld a,(gamecar) + and _datadecs ;ctf and race no death penalty cal nz,DecScore10 pop af ret nz ;HandleWorm done @@ -3290,16 +3263,24 @@ multpealoop: ret NewPea: + ld de,$293A ;counter :) +newpealoop: + dec de + ld a,d + or e + jp z,Exit ;break after 10554 tries to prevent freeze when field filled ld a,(FieldWidth) - add a,127-4 + add a,126 cal randompos ld h,a ld a,(FieldHeight) - add a,56-4 + add a,55 cal randompos ld l,a + psh de cal CheckPea - jr nz,NewPea + pop de ;counter + jr nz,newpealoop cal sendnewpeaoverlink ld (PeaY),hl DrawPea: ;hl=(PeaY) @@ -4266,7 +4247,7 @@ linktest: out (1),a ;select keys in a,(1) ;input bit 6,a ;exit key - jp z,Exit ;break! + jr z,linkerr ;break! linkfine: in a,(7) and %11 @@ -4375,6 +4356,7 @@ wtPicture: ;title .db %00011111,%11101111,%11110000,%00111111,%10000111,%00000001,%10000000,%00000011,%11111111,%11110000,%00111110,%00011110,%00010111,%01011101,%10010101,%01100101 .db %00001111,%10000011,%11100000,%00011111,%00000011,%00000001,%10000000,%00000000,%11111111,%11100000,%00000000,%00000000,%11100101,%01010101,%01000110,%01010011 +#ifdef coolzgfx wtWormy: ;g/o .db %00000110,%00111000,%00000000,%00111100,%00001111,%10001110,%00111100,%01111000,%00001100,%11011000,%11100011,%10000000,%00000000,%11111100,%00111000,%00000000 .db %00011001,%01000110,%11100000,%11000010,%00011100,%11011111,%01111110,%11111000,%00011110,%11011101,%11110111,%11000000,%00111111,%00000011,%01000110,%11100000 @@ -4383,10 +4365,8 @@ wtWormy: ;g/o .db %01001100,%00011000,%00000000,%00000100,%00011000,%11011111,%01100010,%11001100,%00110011,%01101101,%10000111,%11000001,%00011100,%00111000,%00011000,%10000010 .db %01010010,%00100100,%01100000,%00011000,%00011111,%11011011,%11101110,%11111100,%00011111,%01111000,%11110110,%11100000,%11000000,%11000110,%00101001,%10000010 .db %01100001,%11000011,%10011111,%11100000,%00001111,%10001001,%11001100,%01111000,%00001110,%00110000,%01100110,%01100000,%00111111,%00000001,%11000110,%01111100 - ;.db %00000000,%00000001,%10000000,%00000000,%00001111,%10000000 - -#ifndef coolzgfx +#else txtGO: .db 5,5,5,5,5," GAME OVER ",$CF,$CF,$CF,$CF,$CF,0 #endif @@ -4444,7 +4424,7 @@ txtDef: .db "Default",0 txtYes: .db "Yes",0 txtNo: .db "No",0 txtKleft: .db ":left",0 -txtKright: .db "/right",0 +txtKright: .db "right",0 posLevsel = $0320 txtLevsel: .db $CF," SELECT LEVELS ",5,0 txtWaitn: .db "Waiting";"...",0 @@ -4504,7 +4484,7 @@ _datasingl = %00000100 ;singleplayer=1 (=hiscore+keep_length+nextlevel) _dataPctf = %00001000 ;ctf peas=1 __bitPctf = 3 _datatime = %00010000 ;time incs score (timematch) -;reserved %00100000 ;for future use +_datadecs = %00100000 ;decrease score on death=1 _datafood = %01000000 ;food present=0 (6!) _dataPmult = %10000000 ;multiple peas=1 (no _datafood) (7!) @@ -4517,19 +4497,19 @@ _dataPmult = %10000000 ;multiple peas=1 (no _datafood) (7!) ; | | | | | | Úturn speed (8=def) ; | | | | | | | Úscore limit (0=none) gamesingle = 0 ; | | | | | | | | -datasingle:.db %00000110,3,1,1,-1,-1, 8, 0 ;Singleplayer (SP; 3 lives) +datasingle:.db %00100110,3,1,1,-1,-1, 8, 0 ;Singleplayer (SP; 3 lives) gamepeas = 1 -datapeas: .db %00000100,1,1,1,-1,126,8, 0 ;Peaworm (SP; 1 live, 127 growth) +datapeas: .db %00100100,1,1,1,-1,126,8, 0 ;Peaworm (SP; 1 live, 127 growth) gametron = 2 -datatron: .db %01010100,1,1,1,-1, 0, 8, 0 ;Tron (SP; 1 live, cont.growth) +datatron: .db %01110100,1,1,1,-1, 0, 8, 0 ;Tron (SP; 1 live, cont.growth) gamedeathm = 3 -datadeathm:.db %01000000,3,2,1,-1,42, 8, 0 ;Deathmatch (3 lives, 50 growth) +datadeathm:.db %01100000,3,2,1,-1,42, 8, 0 ;Deathmatch (3 lives, 50 growth) gamefoodm = 4 -datafoodm: .db %00000000,0,2,1,-1,-1, 8,10 ;Foodmatch (100 score) +datafoodm: .db %00100000,0,2,1,-1,-1, 8,10 ;Foodmatch (100 score) gamemfoodm = 5 -datamfoodm:.db %11000010,0,2,1,-1,-1, 8,10 ;MuchFoodmatch (10 peas) +datamfoodm:.db %11100010,0,2,1,-1,-1, 8,10 ;MuchFoodmatch (10 peas) gametimem = 6 -datatimem: .db %01010000,1,2,1,-1, 0, 8, 0 ;Timematch (1 live, cont.growth) +datatimem: .db %01110000,1,2,1,-1, 0, 8, 0 ;Timematch (1 live, cont.growth) gamerace = 7 datarace: .db %01000000,0,2,1,-1,-1, 8,10 ;Race (100 score) gamectf = 8