; Dying Eyes ; ; "tired disguised oblivion...is everything i do" ; ; "in the company of pseudo-suns... ; happy birthday to me" ; ; "i think i've reached that point... ; where giving up and going on..are both the same dead end to me ; both the same old song" ; ; "goodbye my little moon...i'd rather look at Saturn" ; ; Innovated by Alex Highsmith ; ; TO DO: TOWER. END OF GAME ; #include "crash82.inc" .db "Dying Eyes",0 G_2nd = G_2ND TempLine = TEXT_MEM+1 PicCoor = TEXT_MEM+20 offset = TEXT_MEM+22 NASR_Status = TEXT_MEM+23 KURAICOUNTER = TEXT_MEM+24 ENEMYCOUNTER1 = TEXT_MEM+25 OK = TEXT_MEM+27 BKX = TEXT_MEM+61 BKY = TEXT_MEM+62 WHICHENEMY = TEXT_MEM+30 NUMBEROFENEMIES = TEXT_MEM+31 ENEMYHP1 = TEXT_MEM+32 ENEMYHP2 = TEXT_MEM+34 ENEMYHP3 = TEXT_MEM+36 ENEMYST1 = TEXT_MEM+38 ENEMYST2 = TEXT_MEM+40 ENEMYST3 = TEXT_MEM+42 ENEMYSPEED1 = TEXT_MEM+44 ENEMYSPEED2 = TEXT_MEM+46 ENEMYSPEED3 = TEXT_MEM+48 ENEMYCOUNTER2 = TEXT_MEM+49 DUMMY1 = TEXT_MEM+51 DUMMY2 = TEXT_MEM+52 ENEMYBACK1 = TEXT_MEM+55 ENEMYBACK2 = TEXT_MEM+57 ENEMYBACK3 = TEXT_MEM+59 Save = TEXT_MEM+63 COUNTER = TEXT_MEM+65 MAXDEFENSE = TEXT_MEM+66 REGENCHECK = TEXT_MEM XPGAINED = TEXT_MEM2+70 ENEMYDFD1 = TEXT_MEM2+64 ENEMYDFD2 = TEXT_MEM2+66 ENEMYDFD3 = TEXT_MEM2+68 MAPVAR = TEXT_MEM2+60 STRENGTHMAX = TEXT_MEM2+78 BUILDUP = TEXT_MEM2+74 RELIFE = TEXT_MEM2+75 DEFENSEMAX = TEXT_MEM2+76 LEADERCHECK = TEXT_MEM2+80 ;;Save VARS TOLEVEL = TEXT_MEM2+82 HP = TEXT_MEM2+84 MP = TEXT_MEM2+86 XP = TEXT_MEM2+88 GOLD = TEXT_MEM2+90 MAXHP = TEXT_MEM2+92 STRENGTH = TEXT_MEM2+94 KURAILEVEL = TEXT_MEM2+96 MAXMP = TEXT_MEM2+98 SPEED = TEXT_MEM2+100 INTELLIGENCE = TEXT_MEM2+102 WEAPON = TEXT_MEM2+104 DEFENSE = TEXT_MEM2+106 DUNGEONCHECK = TEXT_MEM2+108 SCENARIO = TEXT_MEM+108 ENEMYCOUNTER3 = TEXT_MEM+109 DOUBLE = TEXT_MEM2+110 BMPLOC = TEXT_MEM+68 ;$808F MAPINDEX = TEXT_MEM+70 ;$8091 ; 8092 MAPSTART = TEXT_MEM+72 ;$8093 ; 8094 VIDINDEX = TEXT_MEM+74 ;$8095 ; 8096 WHEREAT = TEXT_MEM+76 ;$8097 ; 8098 STANDING = TEXT_MEM+78 ;$8099 ; 809A COUNT = TEXT_MEM+90 ;$80A1 X = TEXT_MEM+91 ;$809B Y = TEXT_MEM+92 ;$809C OLDX = TEXT_MEM+84 ;$809D ; 809E OLDWHERE = TEXT_MEM+86 ;$809F ; 80A0 ld a,%10001100 ;Needed for FIND_PIXEL ($4116) out (2),a set 7,(IY+$14) ld a,1 ld (NASR_Status),a ;set to display pic LOADGAME: call DEADORLIVEMAN ld (hl),0 call FADE_OUT call DRAWWALLS ld hl,NewGame ld de,$0E05 call DISPSTRING ld bc,$2325 ld hl,Logo call NASRWARP ld hl,SaveGame ld de,$0705 call DISPSTRING call FADE_IN LOADLOOP2: call GET_KEY cp G_2 jr z,LOADGAME2 cp G_3 jr z,NEWGAME cp G_CLEAR RET Z cp G_1 jr nz,LOADLOOP2 LOADGAME1: ld hl,SaveSSI ld (DUMMY1),hl LD hl,SAVERAM ld de,scenario1 jr LOADIT LOADGAME2: ld hl,SaveSSI2 ld (DUMMY1),hl LD hl,SAVERAM2 ld de,scenario2 LOADIT: push de LD DE,TOLEVEL LD BC,28 LDIR ld hl,Loaded ld de,$2F22 call DISPSTRING ld hl,(DUMMY1) ld de,WhichSpells ld bc,24 ldir pop de ex de,hl ld a,(hl) ld (SCENARIO),a call WaitKey call ERASESCREEN ld a,(DUNGEONCHECK) cp 8 jp z,TOTOWN2 jp FROMLOAD NEWGAME: ld de,Chests ld hl,MAP2 call CHESTINIT ld hl,MAP3 ld de,Chests2 call CHESTINIT INITSLOTS: ld hl,ZeroSet ld de,WhichSpells ld bc,24 ldir xor a ld (DOUBLE),a ld (COUNTER),a ld (SCENARIO),a ld (LEADERCHECK),a inc a ld (KURAILEVEL),a ld (DUNGEONCHECK),a ld hl,0 ld (MAXHP),hl ld (TOLEVEL),hl ld (MAXMP),hl ld (STRENGTH),hl ld (INTELLIGENCE),hl ld (SPEED),hl ld (XP),hl ld (GOLD),hl ld hl,5 ld (DEFENSE),hl ld (WEAPON),hl call DRAWWALLS ld hl,172 call LEVELUP call DRAWWALLS call INVERTSCREEN set 3,(IY+05) ld de,$1720 ld hl,Awakened call DISPSTRING3 ld de,KuraiText1 ld bc,KuraiText2 ld hl,KuraiText3 call KURAITALKS START: LD DE,29 LD HL,$001D jp MAP2PLACER UPDATEMOVE: ; SET (X) TO NEW X,Y COORD LD (WHEREAT),HL ; SET HL TO POINT TO TOP-LEFT CORNER DRAWMAP: ; (X) AND (WHEREAT) SHOULD STILL BE UNCHANGED call REFRESHMAP LD A,(HL) LD HL,(X) LD (OLDX),HL LD HL,(WHEREAT) LD (OLDWHERE),HL ld a,(COUNTER) inc a ld (COUNTER),a cp 20 jp z,INITBATTLE KEYLOOP: call GET_KEY CP G_2nd jp z,STATUSSCREEN CP G_LEFT JR Z,LEFT CP G_RIGHT JR Z,RIGHT CP G_UP jr z,UP CP G_CLEAR RET Z CP G_DOWN JR NZ,KEYLOOP DOWN: LD HL,(STANDING) LD DE,36 ADD HL,DE LD A,(HL) cp 3 jr nc,SOMETHING LD A,(Y) INC A LD (Y),A LD HL,(WHEREAT) LD DE,36 ADD HL,DE jr UPDATEMOVE LEFT: LD HL,(STANDING) LD DE,$FFFF ADD HL,DE LD A,(HL) cp 3 jr nc,SOMETHING LD A,(X) DEC A LD (X),A LD HL,(WHEREAT) LD DE,$FFFF ADD HL,DE jr UPDATEMOVE RIGHT: LD HL,(STANDING) inc hl LD A,(HL) cp 3 jr nc,SOMETHING LD A,(X) INC A LD (X),A LD HL,(WHEREAT) inc hl jp UPDATEMOVE UP: LD HL,(STANDING) LD DE,$FFDC ADD HL,DE LD A,(HL) CP 3 JR NC,SOMETHING LD A,(Y) DEC A LD (Y),A LD HL,(WHEREAT) LD DE,$FFDC ADD HL,DE jp UPDATEMOVE SOMETHING: ld a,(hl) CP 7 jp z,KEYLOOP CP 6 jp z,TOWN CP 5 jp z,CASTLEORMAN cp 4 jp z,CAVEORELSE STAIRS: ld bc,(X) ld a,(DUNGEONCHECK) or a jp z,TOWER cp 4 jp z,FAITHCAVE cp 7 jp z,BANDITSTAIRS cp -1 jp z,LASTSTAIRS cp -2 jp z,FAITHCAVE2 ; you get the faith armor cp 8 jp nc,INTOWN ld a,b cp $0C jr z,STAIRSOUT1 cp $03 jr z,STAIRS2 or a jr z,STAIRSOUT2 cp $04 jr z,STAIRSD1 cp $0D jr z,STAIRSD2 cp $0F jr z,STAIRSD3 cp $07 jr z,STAIRSD5 cp $0B jr z,STAIRSD6 cp $08 jr z,STAIRSD7 STAIRS1: ld bc,$0316 ;; Y,X jr CONTINUEST STAIRS2: ld a,(SCENARIO) or a call z,TALK1 ld bc,$0206 ;; Y,X jr CONTINUEST STAIRSOUT1: ld a,(DUNGEONCHECK) cp 3 jr z,STAIRSD4 ld a,(SCENARIO) cp 1 jp z,LEADER1 LD HL,$0C18 LD DE,456 JUMPTOMAP: jp RETURNTOMAP2 STAIRSOUT2: LD HL,$0812 LD DE,306 jr JUMPTOMAP STAIRSD1: ld bc,$0D16 jr CONTINUEST STAIRSD2: ld bc,$0412 jr CONTINUEST STAIRSD3: ld bc,$0C0C jr CONTINUEST STAIRSD4: ld bc,$0F17 jr CONTINUEST STAIRSD5: ld bc,$0B11 jr CONTINUEST STAIRSD7: ld a,(SCENARIO) cp 4 jr c,LOCKED jp z,LEADER3 STAIRSOUT3: ;; goes to other side LD HL,$0810 LD DE,304 jp RETURNTOMAP3 STAIRSD6: ld bc,$070C CONTINUEST: LD (X),bc push bc ld hl,0 LOOPOF36: ld de,36 add hl,de djnz LOOPOF36 pop bc ld b,0 add hl,bc ex de,hl FROMPLACE: push de LD HL,BITMAPS2 LD (BMPLOC),HL LD HL,(MAPVAR) LD (MAPSTART),HL pop de ADD HL,DE jp UPDATEMOVE LOCKED: call DRAWWALLS ld de,$1C1E ld hl,Locked call DISPSTRING jp RETFROMSTATS FAITHCAVE: ld a,b cp $0E jr z,STAIRSOUT4 cp $04 jr z,STAIRSE2 cp $02 jr z,STAIRSE3 cp $0B jr z,STAIRSE4 cp $09 jr z,STAIRSE5 cp $03 jr z,STAIRSE6 cp $05 jr z,STAIRSE7 cp $13 jr z,STAIRSE9 cp $14 jr z,STAIRSE10 cp $01 jr z,STAIRSE11 cp $0C jr z,STAIRSE12 or a jr z,STAIRSE13 ;; stairs 8 have the same coord as stairs1, so it is within staire1: STAIRSE1: LD bc,$0400 jr CONTINUEST STAIRSE2: ld a,c cp $1F jr z,STAIRSE8 LD bc,$0700 jr CONTINUEST STAIRSE3: LD bc,$0B08 CONTINUEST2: ;;to save bytes jr CONTINUEST STAIRSE4: LD bc,$0200 jr CONTINUEST2 STAIRSE5: LD bc,$0307 jr CONTINUEST2 STAIRSE6: LD bc,$0907 jr CONTINUEST2 STAIRSE7: LD bc,$041F jr CONTINUEST2 STAIRSE8: ld bc,$0506 jr CONTINUEST2 STAIRSE9: ld bc,$0117 jr CONTINUEST2 STAIRSE10: ld bc,$0C04 jr CONTINUEST2 STAIRSE11: ld bc,$131D jr CONTINUEST2 STAIRSE12: ld bc,$141D jr CONTINUEST2 STAIRSE13: ld a,(SCENARIO) cp 6 jp z,LEADER4 STAIRSOUT4: ;; leads out of faith cave LD HL,$0202 LD DE,74 RETURNTOMAP3C: ;;to save bytes jp RETURNTOMAP3 BANDITSTAIRS: ld a,b cp $0F jr z,STAIRSF1 cp $08 jr z,STAIRSF2 cp $13 jr z,STAIRSOUT5 cp $06 jr z,STAIRSF5 cp $0D jr z,STAIRSF6 cp $0A jr z,STAIRSF7 cp $01 jr z,STAIRSOUT6 STAIRSF4: ld a,c cp $1F jr z,STAIRSF8 ld bc,$0F16 jr CONTINUEST2 STAIRSF1: ld a,c cp $16 jr z,STAIRSF3 ld bc,$0813 jr CONTINUEST2 STAIRSF2: ld bc,$0F09 jr CONTINUEST2 STAIRSF6: ld bc,$0616 jr CONTINUEST2 STAIRSF5: ld bc,$0D0F CONTINUEST3:;; to save bytes jr CONTINUEST2 STAIRSF8: ld bc,$0A15 jr CONTINUEST3 STAIRSF3: ld bc,$0012 LD (X),bc ld de,18 FROMPLACE2: ;; to save bytes jp FROMPLACE STAIRSOUT6: ld a,(SCENARIO) cp 8 jp z,LEADER5 STAIRSOUT5: ;; leads out of BANDITCASTLE LD HL,$0BFF LD DE,395 jr RETURNTOMAP3C STAIRSF7: ld bc,$FF1F LD (X),bc ld de,-5 jr FROMPLACE2 LASTSTAIRS: ld a,b cp $12 jp z,STAIRSL15 cp $04 jp z,STAIRSL16 cp $09 jr z,STAIRSL1 cp $0E jr z,STAIRSL2 cp $13 jr z,STAIRSL3 cp $06 jr z,STAIRSL4 cp $01 jr z,STAIRSL5 cp $05 jp z,STAIRSL6 cp $07 jp z,STAIRSL7 cp $08 jp z,STAIRSL8 cp $14 jp z,STAIRSL9 cp $03 jp z,STAIRSL10 cp $0F jp z,STAIRSL11 cp $0D jp z,STAIRSL12 cp $0C jp z,STAIRSL13 cp $02 jp z,STAIRSL14 STAIRSOUT7: LD HL,$0418 LD DE,168 jp JUMPTOMAP STAIRSL1: ld a,c cp $01 jr z,STAIRSL1LEFT cp $11 jr z,STAIRSL1RIGHT cp $1E jr z,STAIRSL1RIGHTER jr STAIRSOUT7 STAIRSL1RIGHT: ld bc,$091E jr CONTINUEST4 STAIRSL1LEFT: ld bc,$0E04 jr CONTINUEST4 STAIRSL1RIGHTER: ld bc,$0911 jr CONTINUEST4 STAIRSL2: ld bc,$0901 jr CONTINUEST4 STAIRSL3: ld a,c cp $09 jr z,STAIRSL3DOWN cp $15 jr z,STAIRSL3SWITCH ld bc,$0605 CONTINUEST4: jp CONTINUEST STAIRSL3DOWN: ld bc,$0117 jr CONTINUEST4 STAIRSL4: ld bc,$1300 jr CONTINUEST4 STAIRSL5: ld a,c cp $17 jr z,STAIRSL5RIGHT cp $16 jr z,STAIRSL5LEFT cp $09 jr z,STAIRS5UP jp LEADER7 ;; last battle STAIRS5UP: ld bc,$0717 jr CONTINUEST4 STAIRSL5LEFT: ld bc,$050D jr CONTINUEST4 STAIRSL5RIGHT: ld bc,$1309 jr CONTINUEST4 STAIRSL6: ld bc,$0116 jr CONTINUEST4 STAIRSL7: ld bc,$0109 jr CONTINUEST4 STAIRSL8: ld bc,$140E jr CONTINUEST4 STAIRSL9: ld bc,$0816 jr CONTINUEST4 STAIRSL10: ld bc,$0F1F jr CONTINUEST4 STAIRSL11: ld bc,$031D jr CONTINUEST4 STAIRSL12: ld bc,$0C17 jr CONTINUEST4 STAIRSL13: ld bc,$0D1F jr CONTINUEST4 STAIRSL14: ld bc,$1315 jr CONTINUEST4 STAIRSL3SWITCH: ld bc,$021B jr CONTINUEST4 STAIRSL15: ld bc,$0411 jr CONTINUEST4 STAIRSL16: ld bc,$1211 jr CONTINUEST4 FAITHCAVE2: ;; where you get the faith armor LD HL,$0020 LD DE,32 jp JUMPTOMAP REFRESHMAP: LD HL,(WHEREAT) LD (MAPINDEX),HL LD DE,$88B9 LD (VIDINDEX),DE LD B,5 TOP5LOOP: PUSH BC LD HL,(MAPINDEX) ; PUT TYPE IN A, MOVE TO NEXT MAP BYTE LD A,(HL) INC HL LD (MAPINDEX),HL SLA A ; 2 SLA A ; 4 SLA A ; 8 SLA A ; 16 SLA A ; 32 LD E,A LD D,0 LD HL,(BMPLOC) ADD HL,DE LD DE,16 ADD HL,DE LD DE,(VIDINDEX) LD BC,$0802 call SMALLBMP LD HL,(VIDINDEX) INC HL INC HL LD (VIDINDEX),HL POP BC DJNZ TOP5LOOP LD HL,(MAPINDEX) LD DE,31 ADD HL,DE LD (MAPINDEX),HL LD DE,$8919 LD (VIDINDEX),DE LD B,4 MID5: PUSH BC LD B,5 MID5LOOP: PUSH BC LD HL,(MAPINDEX) ; PUT TYPE IN A, MOVE TO NEXT MAP BYTE LD A,(HL) INC HL LD (MAPINDEX),HL SLA A ; 2 SLA A ; 4 SLA A ; 8 SLA A ; 16 SLA A ; 32 LD E,A LD D,0 LD HL,(BMPLOC) ADD HL,DE LD DE,(VIDINDEX) LD BC,$1002 call SMALLBMP LD HL,(VIDINDEX) INC HL INC HL LD (VIDINDEX),HL POP BC DJNZ MID5LOOP LD HL,(VIDINDEX) LD DE,182 ADD HL,DE LD (VIDINDEX),HL LD HL,(MAPINDEX) LD DE,31 ADD HL,DE LD (MAPINDEX),HL POP BC DJNZ MID5 LD HL,PLAYER LD DE,$89DD LD BC,$1002 call SMALLBMP call CR_GRBCopy LD HL,(WHEREAT) LD DE,74 ADD HL,DE LD (STANDING),HL ret SMALLBMP: ; HL=SRC PUSH AF XOR A ; DE=DEST LD (COUNT),A ; B=LENGTH VERTLOOP: ; C=WIDTH PUSH BC LD B,0 LDIR POP BC LD A,C NEG AND $F SUB 4 VERTINCDELOOP: DEC A INC DE OR A JR NZ,VERTINCDELOOP LD A,(COUNT) INC A LD (COUNT),A CP B JR NZ,VERTLOOP POP AF ret ;---------Battle Engine------------; INITBATTLE: ld a,(DUNGEONCHECK) cp -1 jr z,RESTARTBATTLE cp 8 jp nc,KEYLOOP RESTARTBATTLE: ld b,3 INITLOOP: push bc call INVERTSCREEN call DELAY2 pop bc djnz INITLOOP INITBATTLELOOP: ld a,r srl a and 3 ; between 0-3 ld (NUMBEROFENEMIES),a or a jr z,INITBATTLELOOP push af call DRAWWALLS FROMLEADER: ld hl,0 ld (ENEMYSPEED2),hl ld (ENEMYSPEED3),hl ld (XPGAINED),hl ld a,(LEADERCHECK) or a jr nz,(ITSALEADER) ;-----------------------------------skip this if it's a leader; FROMRIGGED2: call PUTENEMY pop af ld (NUMBEROFENEMIES),a ;-------------------------------------------------------------; ITSALEADER: ld hl,(STRENGTH) ld (STRENGTHMAX),hl ld hl,(DEFENSE) ld (DEFENSEMAX),hl ld hl,(SPEED) ld de,200 and a sbc hl,de jr c,NODOUBLE DOUBLESPEED: ld a,66 ld (DOUBLE),a NODOUBLE: xor a ld (RELIFE),a ld (BUILDUP),a ld (REGENCHECK),a ld (COUNTER),a ld (OK),a ld (ENEMYCOUNTER1),a ld (ENEMYCOUNTER2),a ld (ENEMYCOUNTER3),a ld a,66 ld (KURAICOUNTER),a call KURAI call BATTLEMENU jr SPEEDLOOP IRIGHT: ld a,(BKX) cp 84 jr z,SPEEDLOOP ld hl,ICONRING call drawit ld a,(BKX) add a,9 ld (BKX),a ld hl,ICONRING call drawit call DELAY2 jr SPEEDLOOP ILEFT: ld a,(BKX) cp 66 jr z,SPEEDLOOP ld hl,ICONRING call drawit ld a,(BKX) sub 9 ld (BKX),a ld hl,ICONRING call drawit call DELAY2 SPEEDLOOP: ld a,$3E out (1),a in a,(1) bit 5,a ; 2ND jp z,IPRESS bit 3,a jp z,IUP bit 0,a jp z,IDOWN bit 1,a jr z,ILEFT bit 2,a jr z,IRIGHT ld a,(OK) or a jr nz,SPEEDLOOP ;; Now check ENEMYS' COUNTERS ;; when ENEMYCOUNTER == ENEMYSPEED th ;; attack...hence,lower value=faster attack ld a,(ENEMYSPEED1) or a jr z,NEXTENEMY ld c,a ld a,(ENEMYCOUNTER1) inc a ld (ENEMYCOUNTER1),a cp c jp z,ENEMYATTK1 NEXTENEMY: ld a,(ENEMYSPEED2) or a jr z,NEXTENEMY2 ld c,a ld a,(ENEMYCOUNTER2) inc a ld (ENEMYCOUNTER2),a cp c jp z,ENEMYATTK2 NEXTENEMY2: ld a,(ENEMYSPEED3) or a jr z,COUNTERKURAI ld c,a ld a,(ENEMYCOUNTER3) inc a ld (ENEMYCOUNTER3),a cp c jp z,ENEMYATTK3 COUNTERKURAI: ;; Draw Kurai's COUNTER ld a,(KURAICOUNTER) ld b,a ld c,25 call PutPixel ld a,(KURAICOUNTER) ld b,a ld c,24 call PutPixel ;;CHECK KURAI'S COUNTER ld a,(KURAICOUNTER) inc a push af ld a,(DOUBLE) cp 66 jr z,(DOUBLEIT) pop af ld (KURAICOUNTER),a cp 92 jp nz, SPEEDLOOP ;; KEEP GOING TILL 92 ITSOK2: ld a,1 ld (OK),a jp SPEEDLOOP DOUBLEIT: pop af inc a ld (KURAICOUNTER),a cp 92 jp nz, SPEEDLOOP ;; KEEP GOING TILL 92 jr ITSOK2 IUP: ld hl,ICONRING call drawit ld a,43 ld (BKY),a ld hl,ICONRING call drawit call DELAY jp SPEEDLOOP IDOWN: ld hl,ICONRING call drawit ld a,52 ld (BKY),a ld hl,ICONRING call drawit call DELAY jp SPEEDLOOP IPRESS: ld a,(OK) or a jp z,SPEEDLOOP ld a,(BKX) cp 66 jr z,ATTACKORSPELL cp 75 jr z,ITEMORSKILL jp FLEE ITEMORSKILL: ld a,(BKY) cp 43 jp z,KURAIITEM jp KURAISKILL ATTACKORSPELL: ld a,(BKY) cp 43 jp z,KURAIATTACK jp KURAIMAGIC ENEMYATTK1: xor a ld (ENEMYCOUNTER1),a ld de,(ENEMYST1) ld bc,1 jr ENEMYATTACK ENEMYATTK2: xor a ld (ENEMYCOUNTER2),a ld de,(ENEMYST2) ld bc,2 jr ENEMYATTACK ENEMYATTK3: xor a ld (ENEMYCOUNTER3),a ld de,(ENEMYST3) ld bc,3 ENEMYATTACK: ld hl,(BKX) push hl push de ld (DUMMY1),bc ld hl,(DUMMY1) call DISPHL2 ld hl,EnemyAttacks ld de, $163F ;Y=2C,X=1A call DISPSTRING BEGINDODGE: ld a,r srl a and 15 cp 11 jr z,YOUDODGE ld hl,(SPEED) ld de,40 and a sbc hl,de jr nc,TRYAGAIN jr NODODGE TRYAGAIN: ld a,r srl a and 15 cp 8 jr nz,NODODGE YOUDODGE: call ERASETEXT2 ld hl,YouDodge ld de, $163F ;Y=2C,X=1A call DISPSTRING ld bc,$141F ld (DUMMY1),bc ld b,4 DODGELOOP: push bc ld bc,(DUMMY1) ld a,b dec a ld b,a ld (DUMMY1),bc ld hl,Kurai call NASRWARP call DELAY pop bc djnz DODGELOOP pop hl pop de ld bc,$0F29 ld hl,KuraiBlank call NASRWARP call ERASETEXT call KURAI jp NEXTENEMY NODODGE: call BLANK1429 ld bc,$0F20 ld hl,KuraiDefend call NASRWARP ld a,r srl a and 7 cp 5 jr z,EDIFFATTK or a jr nz,ENOTDIFFATTK EDIFFATTK: ld a,14 ld (BKX),a ld b,9 EATTACKLOOP2: push bc ld a,(BKX) add a,2 ld (BKX),a ld a,39 ld (BKY),a ld hl,ERASUREX call drawit ld a,46 ld (BKY),a ld hl,ERASUREX call drawit ld a,50 ld (BKY),a ld hl,ERASUREX call drawit pop bc djnz EATTACKLOOP2 jr DONEEATTACK ENOTDIFFATTK: ld bc,$2811 ld hl,ENEMYHIT1 call drawit2 call shake ld bc,$321B ld hl,ENEMYHIT1 call drawit2 call shake ld bc,$231C ld hl,ENEMYHIT1 call drawit2 call shake DONEEATTACK: call ERASETEXT ld bc,$0F29 ld hl,KuraiBlank call NASRWARP call KURAI ld de, $1E4A ld hl,BlankText call DISPSTRING pop de call RANDOM7 ld de,(DEFENSE) and a sbc hl,de jr c,LESSTHANZERO ex de,hl jr CONTINUEATTACK LESSTHANZERO: ld de,1 CONTINUEATTACK: ld hl,(HP) and a sbc hl, de ld (HP),hl jr c,(GAMEOVER) jr z,(GAMEOVER) ld de,$1E4C call DISPHL pop hl ld (BKX),hl jp NEXTENEMY GAMEOVER: call EFFECT pop bc ld a,(RELIFE) or a jr nz,BACKTOLIFE ld hl,GameOVER ld de, $1B14 jp DISPSTRING3 BACKTOLIFE: xor a ld (RELIFE),a ld hl,(MAXHP) srl h rr l ld (HP),hl call HEALLOOPER jp MAGIDONE FLEE: ld a,(LEADERCHECK) or a jp nz,SPEEDLOOP ld a,r srl a and 127 ld e,a ld d,0 ld hl,(SPEED) and a sbc hl,de jr nc,(YOUFLEE) NOFLEE: ld hl,Failed ld de, $1640 call DISPSTRING call ERASETEXT2 call REFILL ld a,66 ld (KURAICOUNTER),a xor a ld (OK),a jp ENEMYATTK1 YOUFLEE: ld hl,Escape ld de, $1818 call DISPSTRING call EFFECT jp FROMBATTLE KURAIATTACK: ld de,(BKX) push de ld a,(NUMBEROFENEMIES) cp 1 jr z,(ONLYONEALIVE) jr CURSORLOOP ONLYONEALIVE: ld a,(ENEMYSPEED1) or a jr z,ONEISDEAD ld a,(ENEMYSPEED2) or a jr z,TWOISDEAD jr THREEISDEAD ONEISDEAD: ld a,(ENEMYSPEED2) or a jr z,ATTACK3 jr ATTACK2 TWOISDEAD: ld a,(ENEMYSPEED1) or a jr z,ATTACK3 jr ATTACK1 CURSDESELECT: ld hl,CURSORATTK call drawit pop de ld (BKX),de jp SPEEDLOOP THREEISDEAD: ld a,(ENEMYSPEED1) or a jr z,ATTACK2 ATTACK1: ld a,1 ld (WHICHENEMY),a jp CURSPRESS2 ATTACK2: ld a,2 ld (WHICHENEMY),a jp CURSPRESS2 ATTACK3: ld a,3 ld (WHICHENEMY),a jp CURSPRESS2 CURSORLOOP: ld a,(ENEMYSPEED1) or a jr nz,(CONTINUE) ld a,2 ld (WHICHENEMY),a ld bc,$172A jr SOONEWASDEAD CONTINUE: ld a,1 ld (WHICHENEMY),a ld bc,$1714 SOONEWASDEAD: ld hl,CURSORATTK call drawit2 call DELAY2 call DELAY CURSLOOP: ld a,$3E out (1),a in a,(1) bit 7,a jr z,CURSDESELECT bit 5,a jr z,CURSPRESS bit 2,a jr z,CURSRIGHT bit 1,a jr nz,CURSLOOP CURSLEFT: ld a,(BKX) cp 20 jr z,CURSLOOP ld hl,CURSORATTK call drawit ld a,(BKX) sub 22 ld (BKX),a ld hl,CURSORATTK call drawit ld a,(WHICHENEMY) dec a ld (WHICHENEMY),a call DELAY2 jr z,CURSLOOP CURSRIGHT: ld a,(BKX) cp 64 jr z,CURSLOOP ld hl,CURSORATTK call drawit ld a,(BKX) add a,22 ld (BKX),a ld hl,CURSORATTK call drawit ld a,(WHICHENEMY) inc a ld (WHICHENEMY),a call DELAY2 jr z,CURSLOOP CURSPRESS: ld hl,CURSORATTK call drawit CURSPRESS2: call SWORDSWING ld a,r srl a and 7 cp 5 jr z,DIFFATTK or a jr nz,NOTDIFFATTK DIFFATTK: ld hl,97 ld (DUMMY2),hl NOTDIFFATTK: ld b,2 STARTSLASH: push bc xor a ld (OK),a ld a,(LEADERCHECK) cp 1 jr z,(LEADERSLASH) ld a,(WHICHENEMY) cp 2 jr z,SLASHRIGHT1 cp 3 jr z,SLASHRIGHT2 ld a,15 jr DONEDUMMY LEADERSLASH: ld a,$2B jr DONEDUMMY SLASHRIGHT1: ld a,35 jr DONEDUMMY SLASHRIGHT2: ld a,55 DONEDUMMY: ld (DUMMY1),a ld a,(DUMMY2) cp 97 jr z,DIFFERENTATTK ld a,5 ld (DUMMY2),a SLASHLOOP: ld a,(DUMMY1) ld b,a ld a,(OK) add a,b ld (BKX),a ld a,(DUMMY2) inc a ld (DUMMY2),a ld (BKY),a ld hl,SWORDSLASH1 call drawit ld a,(OK) inc a ld (OK),a cp 10 jr nz,SLASHLOOP pop bc djnz STARTSLASH jr DONEWITHATTK DIFFERENTATTK: pop bc call ATTACKNUM2 call ATTACKNUM2 DONEWITHATTK: ld de,(STRENGTH) call RANDOM7 ld de,(WEAPON) add hl,de ld a,(BUILDUP) or a jr z,BUILDUPOFF BUILDUPON: xor a ld (BUILDUP),a add hl,hl BUILDUPOFF: ld a,(WHICHENEMY) cp 2 jr z,DFDENEMY2 cp 3 jr z,DFDENEMY3 DFDENEMY1: ld de,(ENEMYDFD1) jr donedfd DFDENEMY2: ld de,(ENEMYDFD2) jr donedfd DFDENEMY3: ld de,(ENEMYDFD3) donedfd: and a sbc hl,de jr c,ENEMYDFDS jr MORETHANZERO ENEMYDFDS: ld hl,1 MORETHANZERO call DUMMY1DISP ld hl,damage ld de, $1647 ;Y=2C,X=1A call DISPSTRING call ERASETEXT2 pop de ld (BKX),de ld a,(WHICHENEMY) cp 2 jr z,TOENEMY2 cp 3 jr z,TOENEMY3 TOENEMY1: ld hl,(ENEMYHP1) ;; Displays Kurai's HP ld de,(DUMMY1) and a sbc hl, de ld (ENEMYHP1),hl jr ATTKEND TOENEMY2: ld hl,(ENEMYHP2) ld de,(DUMMY1) and a sbc hl, de ld (ENEMYHP2),hl jr ATTKEND TOENEMY3: ld hl,(ENEMYHP3) ld de,(DUMMY1) and a sbc hl, de ld (ENEMYHP3),hl ATTKEND: call c,ENEMYDEAD cp 199 jp z,FROMBATTLE ld a,(REGENCHECK) or a call nz,REGENEFFECT jp KURAIDONE2 FROMBATTLE: ld a,(LEADERCHECK) or a call nz,LEADEREND cp -177 jr z,LASTFADE call ERASESCREEN jp DRAWMAP LASTFADE: call DRAWWALLS ld bc,$231D ld hl,Logo call NASRWARP ld de,$1009 ld hl,cruelplace call DISPSTRING ld de,$1604 ld hl,cruelplace2 jp DISPSTRING3 ENDSNAKE: call DRAWWALLS ld hl,YouFind ld de,$1820 call DISPSTRING ld hl,faitharmor ld de,$1E20 call DISPSTRING3 call CHESTPLACER ld (hl),0 ld hl,260 ld (DEFENSE),hl ret LEADEREND: xor a ld (LEADERCHECK),a ld a,(DUNGEONCHECK) cp -2 jr z,ENDSNAKE ld a,(SCENARIO) cp 2 jr z,ENDLEAD2 cp 7 jr z,ENDLEAD3 cp 9 jr z,ENDLEAD4 cp 13 jr z,YOUWINGAME ret ENDLEAD2: call TALK3 jp TALK4 ENDLEAD3: ld a,8 ld (SCENARIO),a jp TALK11 ENDLEAD4: call DRAWWALLS ld de,$1C10 ld hl,YouFind call DISPSTRING call FAITHSWORD ld hl,180 ld (WEAPON),hl jp TALK12 YOUWINGAME: call DRAWWALLS ld de,$1005 ld hl,choicetext1 call DISPSTRING ld de,$1605 ld hl,choicetext2 call DISPSTRING ld de,$1C05 ld hl,choicetext3 call DISPSTRING3 ld de,$2205 ld hl,choicetext4 call DISPSTRING3 call DRAWWALLS call YESNO ld de,$1114 ld hl,healher call DISPSTRING HEALHERLOOP: call GET_KEY cp G_1 jp z,BADEND cp G_2 jr nz,HEALHERLOOP ; good end call DRAWWALLS ld bc,$2639 ld hl,endpic call NASRWARP ld de,$0303 ld hl,endgame1 call DISPSTRING ld de,$0903 ld hl,endgame2 call DISPSTRING ld de,$0F03 ld hl,endgame3 call DISPSTRING ld de,$1503 ld hl,endgame4 call DISPSTRING ld de,$1B03 ld hl,endgame5 call DISPSTRING ld de,$2103 ld hl,endgame6 call DISPSTRING ld de,$2703 ld hl,endgame7 call DISPSTRING ld de,$2D03 ld hl,endgame8 call DISPSTRING3 ld a,-177 ret BADEND: call DRAWWALLS ld de,$1005 ld hl,badend1 call DISPSTRING ld de,$1605 ld hl,badend2 call DISPSTRING ld de,$1C05 ld hl,badend3 call DISPSTRING3 ld de,$2205 ld hl,badend4 call DISPSTRING3 ld a,-177 ret KURAIMAGIC2: pop hl KURAIMAGIC: ;; first erases menu so the spell menu can come up...same with skill/item call ERASEMENU call DISPMP xor a ld (DUMMY1),a ld hl,WhichSpells ld a,(hl) or a jr z,NEXT1 push hl ld hl,Heal ld de, $1F49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT1: inc hl ld a,(hl) or a jr z,NEXT2 push hl ld hl,Burn ld de, $2649 ;Y=2C,X=1A call DISPSTRING pop hl NEXT2: inc hl ld a,(hl) or a jr z,NEXT3 push hl ld hl,Star ld de, $2D49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT3: inc hl ld a,(hl) or a jr z,SPELLSTART push hl ld hl,Rage ld de, $3449 ;Y=2C,X=1A call DISPSTRING pop hl SPELLSTART: ld bc,$1F3F ld hl,CURSORMAGIC call drawit2 call DELAY2 RETFROM: ld hl,WhichSpells MAGICLOOP2: push hl MAGICLOOP: ld a,$3E out (1),a in a,(1) bit 3,a jr z,MAGICUP bit 7,a ; del jp z,GOBACK bit 1,a jr z,MAGICLEFT bit 2,a jr z,MAGICRIGHT bit 5,a jr z,MAGICPRESS bit 0,a jr nz,MAGICLOOP MAGICDOWN: ld a,(BKY) cp $34 jr z,MAGICLOOP pop hl inc hl push hl ld hl,CURSORMAGIC call drawit ld a,(BKY) add a,7 ld (BKY),a ld hl,CURSORMAGIC call drawit call DELAY2 jr MAGICLOOP MAGICUP: ld a,(BKY) cp $1F jr z,MAGICLOOP pop hl dec hl push hl ld hl,CURSORMAGIC call drawit ld a,(BKY) sub 7 ld (BKY),a ld hl,CURSORMAGIC call drawit call DELAY2 jr MAGICLOOP MAGICLEFT: ld a,(DUMMY1) or a jr z,MAGICLOOP dec a ld (DUMMY1),a jp REDISP MAGICRIGHT: ld a,(DUMMY1) cp 1 jr z,MAGICLOOP inc a ld (DUMMY1),a jp REDISP MAGICPRESS: pop hl ld a,(hl) or a jp z,MAGICLOOP2 ld (Save),hl cp 1 jr z,HEALSPELL cp 2 jr z,BURNSPELL cp 3 jp z,STAR_SPELL cp 4 jp z,RAGESPELL cp 5 jp z,SIRESPELL cp 6 jp z,ROCKSPELL cp 7 jp z,HASTESPELL cp 8 jp z,DOOMSPELL HEALSPELL: ld hl,(MP) ld de,5 and a sbc hl,de jp c,NEEDMP call SPELLCAST FROMITEM: call HEALLOOPER ld a,(OK) cp 234 jp z,MAGIDONE ld de,90 call OVERMAXHP jp MAGIDONE BURNSPELL: ld hl,(MP) ld de,6 and a sbc hl,de jp c,NEEDMP call SPELLCAST ld b,99 BURNLOOP: push bc ld a,r srl a and 50 add a,15 ld (BKX),a ld a,r srl a and 10 add a,4 ld (BKY),a ld hl,ENEMYHIT1 call drawit pop bc djnz BURNLOOP ld de,37 jp MAGIDAMAGE STAR_SPELL: ld hl,(MP) ld de,20 and a sbc hl,de jp c,NEEDMP call SPELLCAST call INVERTSCREEN call SLASH_ALL call INVERTSCREEN ld de,110 jp MAGIDAMAGE RAGESPELL: ld hl,(MP) ld de,24 and a sbc hl,de jp c,NEEDMP call SPELLCAST ld b,20 FLASHSCREEN: push bc call INVERTSCREEN pop bc djnz FLASHSCREEN ld a,(KURAILEVEL) ld b,a ld hl,0 LEVEL_LOOP: ld de,10 add hl,de djnz LEVEL_LOOP ld de,(STRENGTHMAX) add hl,de ld (STRENGTH),hl jp MAGIDONE SIRESPELL: ld hl,(MP) ld de,32 and a sbc hl,de jp c,NEEDMP call SPELLCAST ld b,6 SIRELOOP: push bc ld bc,$2B26 ld hl,SireSpell1 call NASRWARP call DELAY ld bc,$2B26 ld hl,SireSpell2 call NASRWARP call DELAY ld bc,$2B26 ld hl,SireSpell3 call NASRWARP call DELAY pop bc djnz SIRELOOP ld de,190 jp MAGIDAMAGE ROCKSPELL: ld hl,(MP) ld de,24 and a sbc hl,de jp c,NEEDMP call SPELLCAST ld hl,$AFAF ;load battle screen ld de,GRAPH_MEM ld bc,768 ldir call CR_GRBCopy ; Copy graphbuf to LCD ld b,10 FLASHSCREEN2: push bc call INVERTSCREEN call DELAY pop bc djnz FLASHSCREEN2 ld a,(KURAILEVEL) ld b,a ld hl,0 LEVEL_LOOP2: ld de,10 add hl,de djnz LEVEL_LOOP2 ld de,(DEFENSEMAX) add hl,de ld (DEFENSE),hl jp MAGIDONE HASTESPELL: ld hl,(MP) ld de,75 and a sbc hl,de jp c,NEEDMP call SPELLCAST ld bc,$141F ld (DUMMY1),bc ld b,4 HASTELOOP: push bc ld bc,(DUMMY1) ld a,b dec a ld b,a ld (DUMMY1),bc ld hl,Kurai call NASRWARP call INVERTSCREEN call DELAY pop bc djnz HASTELOOP ld a,66 ld (DOUBLE),a jp MAGIDONE DOOMSPELL: ld hl,(MP) ld de,55 and a sbc hl,de jp c,NEEDMP call SPELLCAST ld b,60 DOOMLOOP: push bc GETRANDOM2: CALL RAND cp 90 jr nc,GETRANDOM2 ld b,a GETRANDOM: CALL RAND cp 46 jr nc,GETRANDOM add a,16 ld c,a ld hl,DoomSpell call NASRWARP pop bc djnz DOOMLOOP ld hl,1 ld (HP),hl ld de,500 jp MAGIDAMAGE MAGIDAMAGE: call RANDOM7 call DUMMY1DISP ld hl,damage ld de, $1647 call DISPSTRING call ERASETEXT2 ld a,(ENEMYSPEED1) or a jr z,(NEXTDAMAGE1) ld a,1 ld (WHICHENEMY),a ld hl,(ENEMYHP1) ld de,(DUMMY1) and a sbc hl, de ld (ENEMYHP1),hl call c,ENEMYDEAD cp 199 jp z,FROMBATTLE NEXTDAMAGE1: ld a,(ENEMYSPEED2) or a jr z,(NEXTDAMAGE2) ld a,2 ld (WHICHENEMY),a ld hl,(ENEMYHP2) ld de,(DUMMY1) and a sbc hl, de ld (ENEMYHP2),hl call c,ENEMYDEAD cp 199 jp z,FROMBATTLE NEXTDAMAGE2: ld a,(ENEMYSPEED3) or a jr z,(MAGIDONE) ld a,3 ld (WHICHENEMY),a ld hl,(ENEMYHP3) ld de,(DUMMY1) and a sbc hl, de ld (ENEMYHP3),hl call c,ENEMYDEAD cp 199 jp z,FROMBATTLE MAGIDONE: call DRAWWALLS ld a,(LEADERCHECK) cp 1 jr z,(DISPLEADERBACK) ld a,(ENEMYSPEED1) or a jr z,ENEMY1DEAD ld hl,(ENEMYBACK1) ld bc,$0F39 call NASRWARP ENEMY1DEAD: ld a,(ENEMYSPEED2) or a jr z,ENEMY2DEAD ld hl,(ENEMYBACK2) ld bc,$2539 call NASRWARP ENEMY2DEAD: ld a,(ENEMYSPEED3) or a jr z,ENEMY3DEAD ld hl,(ENEMYBACK3) ld bc,$3B39 call NASRWARP ENEMY3DEAD: jr KURAIDONE3 DISPLEADERBACK: ld hl,(ENEMYBACK1) ; WHICHLEADER ld bc,(ENEMYBACK2) ; COORDS call NASRWARP jr KURAIDONE3 KURAIDONE2: call REFILL KURAIDONE3: call BATTLEMENU call KURAI ld a,66 ld (KURAICOUNTER),a xor a ld (OK),a jp SPEEDLOOP KURAIITEM: ;; first erases menu so the spell menu can come up...same with skill/item call ERASEMENU ld hl,WhichItems ld a,(hl) or a jr z,NEXT1I push hl ld hl,MedKit ld de, $1F49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT1I: inc hl ld a,(hl) or a jr z,NEXT2I push hl ld hl,MagKit ld de, $2649 ;Y=2C,X=1A call DISPSTRING pop hl NEXT2I: inc hl ld a,(hl) or a jr z,ITEMSTART push hl ld hl,ArcBolt ld de, $2D49 ;Y=2C,X=1A call DISPSTRING pop hl ITEMSTART: ld bc,$1F3F ld hl,CURSORMAGIC call drawit2 call DELAY2 ld hl,WhichItems ITEMLOOP2: push hl ITEMLOOP: ld a,$3E out (1),a in a,(1) bit 5,a jr z,ITEMPRESS bit 3,a jr z,ITEMUP bit 7,a ; del jp z,GOBACK bit 0,a jr nz,ITEMLOOP ITEMDOWN: ld a,(BKY) cp $34 jr z,(ITEMLOOP) pop hl inc hl push hl ld hl,CURSORMAGIC call drawit ld a,(BKY) add a,7 ld (BKY),a ld hl,CURSORMAGIC call drawit call DELAY2 jr ITEMLOOP ITEMUP: ld a,(BKY) cp $1F jr z,ITEMLOOP pop hl dec hl push hl ld hl,CURSORMAGIC call drawit ld a,(BKY) sub 7 ld (BKY),a ld hl,CURSORMAGIC call drawit call DELAY2 jr ITEMLOOP ITEMPRESS: pop hl ld a,(hl) or a jp z,ITEMLOOP2 dec a ld (hl),a call BLANK1429 call KURAIMAGIC1 ld a,(BKY) cp $1F jr z,HPkit cp $2D jr z,BOMB MPkit: ld de,40 call OVERMAXMP ld bc,$2B26 ld hl,MagicKit call NASRWARP ld a,234 ld (OK),a HPkit: jp FROMITEM BOMB: call INVERTSCREEN ld b,99 BOMBLOOP: push bc ld a,r srl a and 50 add a,15 ld b,a ld a,r srl a and 10 add a,50 ld c,a ld hl,EnemyDead call NASRWARP pop bc djnz BOMBLOOP call INVERTSCREEN ld de,50 jp MAGIDAMAGE KURAISKILL2: pop hl KURAISKILL: ;; first erases menu so the spell menu can come up...same with skill/item call ERASEMENU call DISPMP xor a ld (DUMMY1),a ld hl,WhichSkills ld a,(hl) or a jr z,NEXT1S push hl ld hl,SlashAll ld de, $1F49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT1S: inc hl ld a,(hl) or a jr z,NEXT2S push hl ld hl,Regeneration ld de, $2649 ;Y=2C,X=1A call DISPSTRING pop hl NEXT2S: inc hl ld a,(hl) or a jr z,NEXT3S push hl ld hl,HPMP ld de, $2D49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT3S: inc hl ld a,(hl) or a jr z,SKILLSTART push hl ld hl,Smoke ld de, $3449 ;Y=2C,X=1A call DISPSTRING pop hl SKILLSTART: ld bc,$1F3F ld hl,CURSORMAGIC call drawit2 call DELAY2 ld hl,WhichSkills SKILLLOOP2: push hl SKILLLOOP: ld a,$3E out (1),a in a,(1) bit 5,a jr z,SKILLPRESS bit 3,a jr z,SKILLUP bit 7,a ; del jp z,GOBACK bit 1,a jr z,SKILLLFT bit 2,a jr z,SKILLRT bit 0,a jr nz,SKILLLOOP SKILLDOWN: ld a,(BKY) cp $34 jr z,(SKILLLOOP) pop hl inc hl push hl ld hl,CURSORMAGIC call drawit ld a,(BKY) add a,7 ld (BKY),a ld hl,CURSORMAGIC call drawit call DELAY2 jr SKILLLOOP SKILLUP: ld a,(BKY) cp $1F jr z,(SKILLLOOP) pop hl dec hl push hl ld hl,CURSORMAGIC call drawit ld a,(BKY) sub 7 ld (BKY),a ld hl,CURSORMAGIC call drawit call DELAY2 jr SKILLLOOP SKILLLFT: ld a,(DUMMY1) or a jp z,SKILLLOOP dec a ld (DUMMY1),a jp REDISP2 SKILLRT: ld a,(DUMMY1) cp 1 jp z,SKILLLOOP inc a ld (DUMMY1),a jp REDISP2 SKILLPRESS: pop hl ld a,(hl) or a jp z,SKILLLOOP2 ld (Save),hl ld hl,(MP) ld a,(DUMMY1) or a jr nz,SKILLPRESS2 ld a,(BKY) cp $26 jr z,REGENSKILL cp $34 jr z,SMOKESKILL cp $2D jp z,HPMPSKILL jr SLASHSKILL SKILLPRESS2: ld a,(BKY) cp $26 jp z,BUILDSKILL cp $34 jp z,STEALSKILL cp $2D jp z,XFRMSKILL jp RELIFESKILL SLASHSKILL: ld de,12 and a sbc hl,de jp c,NEEDMP2 ld (MP),hl call SWORDSWING call SLASH_ALL ld hl,(STRENGTH) ld de,(ENEMYDFD1) and a sbc hl,de jr c,ENEMYDFDSALL ex de,hl jr GOHERE ENEMYDFDSALL: ld de,1 GOHERE: jp MAGIDAMAGE REGENSKILL: ld de,25 and a sbc hl,de jp c,NEEDMP2 call REGENLOOPER ld a,1 ld (REGENCHECK),a jp MAGIDONE SMOKESKILL: ld a,(LEADERCHECK) or a jp nz,SKILLLOOP2 ld de,8 and a sbc hl,de jp c,NEEDMP2 ld (MP),hl jp YOUFLEE HPMPSKILL: ld hl,HPMP ld de, $181E call DISPSTRING call BLANK1429 call KURAIMAGIC1 call INVERTSCREEN ld hl,$181C ld (BKX),hl ld b,24 HPMPLOOP: push bc ld hl,(BKX) ld a,l inc a ld l,a ld (BKX),hl ld hl,MPHPSWITCH call drawit call DELAY pop bc djnz HPMPLOOP ld hl,(MP) ld de,(HP) ld (HP),hl ld (MP),de call OVERMAXMP jp MAGIDONE REGENEFFECT: ld a,(KURAILEVEL) ld b,a ld hl,0 LEVEL_LOOP3: ld de,10 add hl,de djnz LEVEL_LOOP3 call OVERMAXHP ld hl,(HP) ;; Displays Kurai's HP ld de,$1E4C jp DISPHL RELIFESKILL: ld de,50 and a sbc hl,de jp c,NEEDMP2 ld (MP),hl ld a,1 ld (RELIFE),a jp MAGIDONE BUILDSKILL: ld de,10 and a sbc hl,de jp c,NEEDMP2 call REGENLOOPER ld a,1 ld (BUILDUP),a jp MAGIDONE XFRMSKILL: ld a,(LEADERCHECK) or a jp nz,SKILLLOOP2 jp RESTARTBATTLE STEALSKILL: ld de,13 and a sbc hl,de jp c,NEEDMP2 ld (MP),hl call BLANK1429 ld bc,$111D ld (DUMMY1),bc ld b,12 STEALLOOP: push bc ld bc,(DUMMY1) ld a,c inc a ld c,a ld (DUMMY1),bc ld hl,KuraiMagic1 call NASRWARP ld bc,(DUMMY1) pop bc djnz STEALLOOP ld bc,$1129 ld (DUMMY1),bc ld b,12 STEALLOOP2: push bc ld bc,(DUMMY1) ld a,c dec a ld c,a ld (DUMMY1),bc ld hl,KuraiMagic1 call NASRWARP ld bc,(DUMMY1) pop bc djnz STEALLOOP2 ld a,r srl a and 7 or a jr z,STEALSOMETHING cp 3 jr z,STEALSOMETHING ld hl,Failed jr STEALDONE STEALSOMETHING: ld a,r srl a and 7 or a jr z,STOLEMAG STOLEMED: ld hl,WhichItems ld a,(hl) inc a ld (hl),a ld hl,MedKit jr STEALDONE STOLEMAG: ld hl,WhichItems inc hl ld a,(hl) inc a ld (hl),a ld hl,MagKit STEALDONE: ld de, $1632 call DISPSTRING call DELAY3 jp MAGIDONE ENEMYDEAD: ld hl,0 ld a,(WHICHENEMY) cp 2 jr z,KILL2 cp 3 jr z,KILL3 ld (ENEMYSPEED1),hl ld bc,$0F39 jr CONTKILL KILL2: ld (ENEMYSPEED2),hl ld bc,$2539 jr CONTKILL KILL3: ld (ENEMYSPEED3),hl ld bc,$3B39 CONTKILL: push bc ld hl,EnemyDead call NASRWARP call DELAY2 pop bc ld hl,BlankEnemy call NASRWARP ld hl,(ENEMYST1) srl h rr l ld de,(XPGAINED) add hl,de ld (XPGAINED),hl ld a,(NUMBEROFENEMIES) dec a ld (NUMBEROFENEMIES),a or a ret NZ YOUWIN: call DRAWWALLS call KURAI call BATTLEMENU ld hl,(STRENGTHMAX) ld (STRENGTH),hl ld hl,(DEFENSEMAX) ld (DEFENSE),hl ld hl,Victory ld de, $0404 call DISPSTRING ld hl,xp ld de, $0B1D call DISPSTRING ld hl,gold ld de, $1215 call DISPSTRING ld hl,(XP) ld de,(XPGAINED) add hl,de ld (XP),hl ld de,(XPGAINED) call RANDOM7 ld (NUMBEROFENEMIES),hl ld hl,(GOLD) ld de,(NUMBEROFENEMIES) add hl,de ld (GOLD),hl ld hl,0 ld (DUMMY1),hl LOOPOFGOLDXP: ld hl,(DUMMY1) inc hl inc hl ld (DUMMY1),hl ld de,(XPGAINED) and a sbc hl,de jr z,DONEXP jr nc,DONEXP ld hl,(DUMMY1) ld de,$0B28 call DISPHL ld hl,(DUMMY1) ld de,$1228 call DISPHL jr LOOPOFGOLDXP DONEXP: ld hl,(NUMBEROFENEMIES) ld de,$1228 call DISPHL ld hl,ToNextLevel ld de,$1909 call DISPSTRING ld hl,(TOLEVEL) ld de,(XP) and a sbc hl,de ld de,$1928 call DISPHL LEVELCHECK: ld hl,(XP) ld de,(TOLEVEL) and a sbc hl,de jr nc, UPLEVEL call WaitKey DONECHECK: ld a,199 ret UPLEVEL: ld a,(KURAILEVEL) inc a ld (KURAILEVEL),a ld hl,32 call LEVELUP2 jr DONECHECK LEADERALLOCATE2: ld (ENEMYBACK1),hl ld (ENEMYBACK2),bc call NASRWARP call DRAWWALLS2 ld a,1 ld (NUMBEROFENEMIES),a ld (LEADERCHECK),a ret LEADER5: ld a,9 ld (SCENARIO),a call DRAWWALLS ld de,$1610 ld hl,BanditsText4 call DISPSTRING ld de,$1C10 ld hl,BanditsText5 call DISPSTRING call FAITHSWORD call ERASESCREEN ld hl,Leader5 ld bc,$1C3C call LEADERALLOCATE2 ld bc,170 ld de,2500 ld ix,37 ld hl,90 jr LEADERALLOCATE LEADER1: call TALK2 ld a,2 ld (SCENARIO),a LEADER1TOWN: ld hl,Leader1 ld bc,$283C call LEADERALLOCATE2 ld bc,25 ld de,250 ld ix,34 ld hl,13 LEADERALLOCATE: ld (ENEMYST1),bc ld (ENEMYHP1),de ld (ENEMYSPEED1),ix ld (ENEMYDFD1),hl jp FROMLEADER LEADER2: call ERASESCREEN ld hl,Leader2 ld bc,$283C call LEADERALLOCATE2 ld bc,40 ld de,400 ld ix,55 ld hl,40 jr LEADERALLOCATE LEADER3: call TALK5 ld hl,Leader3 ld bc,$093C call LEADERALLOCATE2 ld bc,60 ld de,1000 ld ix,45 ld hl,20 ld a,5 ld (SCENARIO),a TOLEADER: jr LEADERALLOCATE LEADER6: call DRAWWALLS ld de,$1010 ld hl,Serpent1 call DISPSTRING ld de,$1C10 ld hl,faitharmor call DISPSTRING ld de,$1610 ld hl,Serpent2 call DISPSTRING3 call ERASESCREEN ld hl,Leader6 ld bc,$093C call LEADERALLOCATE2 ld bc,330 ld de,10000 ld ix,50 ld hl,900 jr TOLEADER LEADER7: call DRAWWALLS ld de,$1003 ld hl,lasttext1 call DISPSTRING ld de,$1603 ld hl,lasttext2 call DISPSTRING3 call DRAWWALLS ld de,$1005 ld hl,lasttext3 call DISPSTRING3 ld de,$1605 ld hl,lasttext4 call DISPSTRING3 call DRAWWALLS ld de,$1005 ld hl,lasttext5 call DISPSTRING ld de,$1605 ld hl,lasttext6 call DISPSTRING ld de,$1C05 ld hl,lasttext7 call DISPSTRING3 ld b,70 FLASHSCREEN3: push bc call INVERTSCREEN pop bc djnz FLASHSCREEN3 ld de,$2205 ld hl,lasttext8 call DISPSTRING3 call DRAWWALLS ld de,$1005 ld hl,lasttext9 call DISPSTRING ld de,$1605 ld hl,lasttext10 call DISPSTRING3 call ERASESCREEN ld hl,Leader7 ld bc,$093C call LEADERALLOCATE2 ld bc,360 ld de,10000 ld ix,30 ld hl,200 ld a,13 ; end of game ld (SCENARIO),a jp LEADERALLOCATE LEADER4: call DRAWWALLS ld de,$1614 ld hl,BanditsText1 ;; The Faith sword!! call DISPSTRING CALL TALK10 call DRAWWALLS ld de,$1610 ld hl,BanditsText2 call DISPSTRING ld de,$1C10 ld hl,BanditsText3 call DISPSTRING call FAITHSWORD call DRAWWALLS ld a,7 ld (SCENARIO),a ld (LEADERCHECK),a ld a,3 ld (NUMBEROFENEMIES),a push af jp FROMRIGGED2 RIGGEDENEMY: xor a jr FROMRIGGED PUTENEMY: ld a,(SCENARIO) cp 7 jr z,RIGGEDENEMY ld a,r srl a and 6 ld (WHICHENEMY),a FROMRIGGED: push af ld a,(DUNGEONCHECK) cp 1 ;; CASTLE DUNGEON jp z,DUNGEON1 cp 3 ;; WEST CAVE TO KIATA jp z,DUNGEON3 cp 4 ;; FAITH CAVE jp z,DUNGEON6 cp 7 ;; BANDIT CASTLE jp z,DUNGEON7 cp -1 ;; LAST CAVE jp z,DUNGEON8 cp 5 ;; OTHER SIDE OF OVERWORLD MAP jp z,DUNGEON5 pop af ;; AND THIS WOULD BE THE OVERWORLD MAP, PART 1 or a jr z,Enemy1 cp 2 jr z,Enemy2 cp 4 jr z,Enemy3 Enemy4: ;; bc == strength de == life ld bc,15 ;; ix == speed ld de,35 ld ix,45 ld hl,22 ld (DUMMY1),hl ld hl,ENEMY4 jr STARTPUT1 Enemy3: ld bc,20 ld de,40 ld ix,50 ld hl,22 ld (DUMMY1),hl ld hl,ENEMY3 jr STARTPUT1 Enemy2: ld bc,10 ld de,40 ld ix,30 ld hl,10 ld (DUMMY1),hl ld hl,ENEMY2 jr STARTPUT1 Enemy1: ld bc,30 ld de,66 ld ix,66 ld hl,30 ld (DUMMY1),hl ld hl,ENEMY1 jr STARTPUT1 DUNGEON1: ld hl,8 ld (DUMMY1),hl pop af or a jr z,Enemy5 cp 2 jr z,Enemy6 cp 4 jr z,Enemy7 Enemy8: ;; bc == strength de == life ld bc,15 ;; ix == speed ld de,20 ld ix,45 ld hl,ENEMY8 jr STARTPUT1 Enemy7: ld bc,10 ld de,30 ld ix,50 ld hl,24 ld (DUMMY1),hl ld hl,ENEMY7 STARTPUT1: jr STARTPUT2 Enemy6: ld bc,08 ld de,18 ld ix,27 ld hl,ENEMY6 jr STARTPUT2 Enemy5: ld bc,20 ld de,43 ld ix,60 ld hl,ENEMY5 jr STARTPUT2 DUNGEON3: ld hl,32 ld (DUMMY1),hl pop af or a jr z,Enemy9 cp 2 jr z,Enemy10 cp 4 jr z,Enemy11 Enemy12: ;; bc == strength de == life ;; ix == speed ld bc,24 ld de,120 ld ix,18 ld (DUMMY1),ix ld hl,ENEMYGIMP ;; weak guy you fight in town jr STARTPUT Enemy11: ld bc,35 ld de,90 ld ix,50 ld hl,ENEMY11 jr STARTPUT Enemy10: ld bc,40 ld de,100 ld ix,27 ld hl,ENEMY10 jr STARTPUT Enemy9: ld bc,60 ld de,150 ld ix,60 ld hl,ENEMY9 STARTPUT2: jr STARTPUT DUNGEON5: ;;overhead map #2 ld hl,45 ld (DUMMY1),hl pop af or a jr z,Enemy9 cp 2 jr z,Enemy13 cp 4 jr z,Enemy14 Enemy15: ld bc,65 ld de,140 ld ix,45 ld hl,ENEMY15 jr STARTPUT Enemy14: ld bc,80 ld de,150 ld ix,50 ld hl,ENEMY14 jr STARTPUT Enemy13: ld bc,60 ld de,160 ld ix,40 ld hl,ENEMY13 jr STARTPUT STARTPUT: ld a,(KURAICOUNTER) cp 199 jr z,PUT2 cp 201 jr z,PUT3 PUT1: ld (ENEMYST1),bc ld (ENEMYHP1),de ld (ENEMYSPEED1),ix ld (ENEMYBACK1),hl ld bc,$0F39 call NASRWARP ld hl,(DUMMY1) ld (ENEMYDFD1),hl ld a,(NUMBEROFENEMIES) dec a or a ret Z ld (NUMBEROFENEMIES),a ld a,199 ld (KURAICOUNTER),a jr PUTENEMY2 PUT2: ld (ENEMYST2),bc ld (ENEMYHP2),de ld (ENEMYSPEED2),ix ld (ENEMYBACK2),hl ld bc,$2539 call NASRWARP ld hl,(DUMMY1) ld (ENEMYDFD2),hl ld a,(NUMBEROFENEMIES) dec a or a ret Z ld (NUMBEROFENEMIES),a ld a,201 ld (KURAICOUNTER),a PUTENEMY2: jp PUTENEMY PUT3: ld (ENEMYST3),bc ld (ENEMYHP3),de ld (ENEMYSPEED3),ix ld (ENEMYBACK3),hl ld bc,$3B39 call NASRWARP ld hl,(DUMMY1) ld (ENEMYDFD3),hl ret DUNGEON6: ld hl,45 ld (DUMMY1),hl pop af or a jr z,Enemy18 cp 2 jr z,Enemy17 cp 4 jr z,Enemy19 Enemy16: ;; bc == strength de == life ;; ix == speed ld bc,90 ld de,80 ld ix,18 ld (DUMMY1),ix ld hl,ENEMY16 STARTPUT3: jp STARTPUT Enemy18: ld bc,110 ld de,210 ld ix,50 ld hl,ENEMY18 jr STARTPUT3 Enemy17: ld bc,70 ld de,130 ld ix,34 ld hl,ENEMY17 jr STARTPUT3 Enemy19: ld bc,78 ld de,150 ld ix,30 ld hl,ENEMY19 jr STARTPUT3 DUNGEON7: ld hl,60 ld (DUMMY1),hl pop af or a jr z,Enemy20 cp 2 jr z,Enemy21 cp 4 jr z,Enemy18 Enemy22: ld bc,100 ld de,300 ld ix,50 ld hl,ENEMY22 jr STARTPUT3 Enemy21: ld bc,140 ld de,150 ld ix,34 ld hl,ENEMY21 jr STARTPUT3 Enemy20: ld hl,190 ld (DUMMY1),hl ld bc,100 ld de,200 ld ix,40 ld hl,ENEMY20 jr STARTPUT3 DUNGEON8: ld hl,100 ld (DUMMY1),hl pop af or a jr z,Enemy21 cp 2 jr z,Enemy23 cp 4 jr z,Enemy24 Enemy25: ld bc,300 ld de,300 ld ix,50 ld hl,ENEMY25 STARTPUT4: jp STARTPUT Enemy23: ld bc,440 ld de,200 ld ix,34 ld hl,ENEMY23 jr STARTPUT4 Enemy24: ld bc,200 ld de,200 ld ix,40 ld hl,ENEMY24 jr STARTPUT4 GIMPMAN: call DRAWWALLS call Enemy12 ld a,1 ld (NUMBEROFENEMIES),a dec a ld (ENEMYSPEED2),a ld (ENEMYSPEED3),a jp ITSALEADER NASRWARP: ld de,$0000 add hl,de push bc ex de,hl call $4166 ld bc,$88B8 add hl,bc ld (PicCoor),hl ex de,hl ld b,$ff Patch: rla inc b jr nc,Patch ld a,(hl) ld c,a inc hl ld a,(hl) ld (offset),a ld a,b ld e,c cp (hl) jr c,DS1 inc e DS1: inc hl ld a,(hl) ld d,a inc hl YLoop: push bc push de ld b,8 ex de,hl ld hl,TempLine InitTempLineLoop: ld (hl),$ff inc hl djnz InitTempLineLoop ex de,hl ld a,(NASR_Status) or a jr z,NASRErase NASRDraw: ld b,0 ld de,TempLine ldir jr NASRDrawFin NASRErase: ld b,c ld hl,TempLine LoadEmpty: ld (hl),0 inc hl djnz LoadEmpty NASRDrawFin: pop de pop bc push hl push bc push de ld d,b ld a,b or a jr z,skipshift SpriLoop1: ld a,b ld HL,TempLine ld b,e scf SpriLoop2: rr (HL) inc HL djnz SpriLoop2 ld b,a djnz SpriLoop1 ld b,d skipshift: ld a,$ff ;fill accumulator inc b mask1: srl a ;make the mask djnz mask1 ;something like scf ;00001111 -> rl a ld hl,(PicCoor) ;implement the mask or (hl) ;this preserve the 0 bits ld hl,TempLine ;become xxxx1111 and (hl) ;when anded, become ld (hl),a ;xxxxyyyy ld b,d ;retrieve b ld a,(offset) dec a sub b jr nc,skip sub 248 skip: ld b,a inc b ld a,$ff mask2: sla a djnz mask2 scf rr a dec e ld hl,(PicCoor) ld d,0 add hl,de or (hl) ld hl,TempLine add hl,de and (hl) ld (hl),a inc e ld c,e ld hl,(PicCoor) ld de,12 push hl add hl,de ld (PicCoor),hl pop hl ld de,TempLine ex de,hl ld b,0 ldir pop de pop bc pop hl dec d jp nz,YLoop pop bc ROM_CALL(DISP_GRAPH) ret drawit2: ld (BKX),bc drawit: ld a,(BKY) ld e,a ; Load the y-coordinate in e ld a,(BKX) ; Load the x-coordinate in a DRWSPR2: push hl ; Save sprite address ;лллл Calculate the address in graphbuf лллл ld hl,0 ; Do y*12 ld d,0 add hl,de add hl,de add hl,de add hl,hl add hl,hl ld d,0 ; Do x/8 ld e,a srl e srl e srl e add hl,de ld de,$88B8 add hl,de ; Add address to graphbuf ld b,00000111b ; Get the remainder of x/8 and b or a ; Is this sprite aligned to 8*n,y? jr z,ALIGN2 ;лллл Non aligned sprite blit starts here лллл pop ix ; ix->sprite ld d,a ; d=how many bits to shift each line ld e,8 ; Line loop LILOP2: ld b,(ix+0) ; Get sprite data ld c,0 ; Shift loop push de SHLOP2: srl b rr c dec d jr nz,SHLOP2 pop de ld a,b ; Write line to graphbuf xor (hl) ld (hl),a inc hl ld a,c xor (hl) ld (hl),a ld bc,11 ; Calculate next line address add hl,bc inc ix ; Inc spritepointer dec e jr nz,LILOP2 ; Next line jr DONE2 ;лллл Aligned sprite blit starts here лллл ALIGN2: ; Blit an aligned sprite to graphbuf pop de ; de->sprite ld b,8 ALOP2: ld a,(de) xor (hl) ld (hl),a inc de push bc ld bc,12 add hl,bc pop bc djnz ALOP2 DONE2: ld c,a ld a,e add a,1 ld e,a ld a,c add a,1 ROM_CALL(_GRBUFCPY_V) ret SPELLCAST: ld (MP),hl ;; Done BEFORE spell is cast..snazzy. :) call BLANK1429 call KURAIMAGIC1 ld bc,$1025 ld hl,KuraiOrb1 call NASRWARP ld bc,$2225 ld hl,KuraiOrb1 call NASRWARP call DELAY ld bc,$1025 ld hl,KuraiOrb2 call NASRWARP ld bc,$2225 ld hl,KuraiOrb2 call NASRWARP call DELAY ld bc,$1025 ld hl,KuraiOrb3 call NASRWARP ld bc,$2225 ld hl,KuraiOrb3 call NASRWARP call DELAY ld bc,$1025 ld hl,KuraiOrb4 call NASRWARP ld bc,$2225 ld hl,KuraiOrb4 call NASRWARP call DELAY ld b,3 FIRELOOP: push bc ld bc,$111D ld hl,KuraiMagic2 call NASRWARP call DELAY call KURAIMAGIC1 call DELAY pop bc djnz FIRELOOP ret ;;DM_HL_DECI DISPHL2: ld de,$163A DISPHL: DM_HL_DECI: ld ($8215),de ;Since DE is a word, it overlaps into 8216 ld b,48 ; 48 -> b ld c,4 ; 4 -> c ld a,h ; h -> a or l ; If a=0 and l=0, then return zero jr z,DM_HL_3 ; If zero, then jump to DM_HL_3 ld c,-1 ; -1 -> c ld b,46 ; 46 -> b jr DM_HL_NEXT2 ; Jump to DM_HL_NEXT2 DM_HL_INIT: call CP_HL_DE ; cp hl,de jr c,DM_HL_NEXT2 ; If carry, then jump to DM_HL_NEXT2 dec c ; c = c - 1 DM_HL_NEXT: ld b,47 ; 47 -> b DM_HL_NEXT2: inc c ; c = c + 1 ld a,c ; c -> a or a ; If a=0, then return zero ld de,10000 ; 10000 -> de jr z,DM_HL_2a ; If zero, then jump to DM_HL_2a cp 1 ; If a=1, then return zero ld de,1000 ; 1000 -> de jr z,DM_HL_2a ; If zero, then jump to DM_HL_2a cp 2 ; If a=2, then return zero ld de,100 ; 100 -> de jr z,DM_HL_2a ; If zero, then jump to DM_HL_2a cp 3 ; If a=3, then return zero ld de,10 ; 10 -> de jr z,DM_HL_2a ; If zero, then jump to DM_HL_2a ld de,1 ; 1 -> de DM_HL_2a: ld a,b ; b -> a cp 46 ; If a=46, then return zero jr z,DM_HL_INIT ; If zero, then jump to DM_HL_INIT DM_HL_2b: inc b ; b = b + 1 call CP_HL_DE ; cp hl,de jr c,DM_HL_3 ; If carry, then jump to DM_HL_3 or a ; Reset carry flag sbc hl,de ; hl = hl - de jr DM_HL_2b ; Jump to DM_HL_2b DM_HL_3: ld a,b ; b -> a ROM_CALL(M_CHARPUT) ; Display the character ld a,c ; c -> a cp 4 ; If a=4, then return zero jr nz,DM_HL_NEXT ; If not zero, then jump to DM_HL_NEXT jp CR_GRBCopy DISPSTRING2: ;; to optimize :) ld de,$163A DISPSTRING: ld ($8215),de ROM_CALL(D_ZM_STR) ;Display the string jp CR_GRBCopy ; Copy graphbuf to LCD ERASESCREEN: ld hl,$88B8 ld de,$88B9 ld bc,$2FF ld (hl),0 ldir ;clear the graf mem ret NEEDMP: ld hl,needmp ld de, $163E call DISPSTRING call ERASETEXT2 call DISPMP ld hl,(Save) jp MAGICLOOP2 NEEDMP2: ld hl,needmp ld de, $163E call DISPSTRING call ERASETEXT2 call DISPMP ld hl,(Save) jp SKILLLOOP2 ERASETEXT2: call DELAY2 call DELAY2 ERASETEXT: ld hl,BlankText call DISPSTRING2 LD de,$1649 ld hl,BlankText jp DISPSTRING PutPixel: ;puts the pixel at b, c call $4166 ld de,$88B8 add hl, de or (hl) ld (hl),a ROM_CALL(_GRBUFCPY_V) ret DRAWWALLS: call ERASESCREEN DRAWWALLS2: LD HL,$88B8 LD DE,$88B9 LD BC,23 LD (HL),$FF LDIR LD HL,$8BA0 LD DE,$8BA1 LD BC,23 LD (HL),$FF LDIR LD B,60 LD HL,$88D0 LD DE,11 SIDELINELOOP: LD (HL),$C0 ADD HL,DE LD (HL),3 INC HL DJNZ SIDELINELOOP jp CR_GRBCopy shake: ld a,42h out (10h),a call DELAY2 ld a,40h out (10h),a jp DELAY2 RANDOM7: ld a,r srl a and 7 ld l,a ld h,0 add hl,de ret DELAY: ld a,$4F ld b,$4F dloop: dec a jr nz,dloop dec b jr nz,dloop ret DELAY2: ld a,$9F ld b,$9F jr dloop DELAY3: ld a,$FF ld b,$FF jr dloop BATTLEMENU: ld bc,$3F22 ld hl,BattleMenu ;; Displays the Menu call NASRWARP ld hl,(HP) ;; Displays Kurai's HP ld de,$1E4C call DISPHL ld bc,$2B42 ld hl,ICONRING jp drawit2 ERASEMENU: ld bc,$4020 ld hl,KuraiBlank ;; Displays the Menu call NASRWARP call DRAWWALLS2 ld bc,$1658 ld hl,LINE jp drawit2 OVERMAXHP: ld hl,(HP) add hl,de ld (HP),hl ld de,(MAXHP) and a sbc hl,de ret C ld hl,(MAXHP) ld (HP),hl ret OVERMAXMP: ld hl,(MP) add hl,de ld (MP),hl ld de,(MAXMP) and a sbc hl,de ret C ld hl,(MAXMP) ld (MP),hl ret INVERTSCREEN: ;;inverts screen ld de,768 ld hl,$88B8 invloop: ld a,(hl) cpl ld (hl),a inc hl dec de ld a,d or e jr NZ,invloop ROM_CALL(_GRBUFCPY_V) ret GOBACK: pop hl call ERASETEXT call BATTLEMENU call REFILL call KURAI ld a,1 ld (OK),a jp SPEEDLOOP REFILL: ld bc,(BKX) push bc ld bc,$2042 ld hl,ERASURE call drawit2 ld a,74 ld (BKX),a ld hl,ERASURE call drawit ld a,82 ld (BKX),a ld hl,ERASURE call drawit ld a,84 ld (BKX),a ld hl,ERASURE2 call drawit pop bc ld (BKX),bc ret SLASH_ALL: ;; star spell and slash-all gfx ld b,2 STARTSTAR: push bc xor a ld (OK),a ld a,15 ld (DUMMY1),a ld a,5 ld (DUMMY2),a STARLOOP: ld a,(DUMMY1) ld b,a ld a,(OK) add a,b ld (BKX),a ld a,(DUMMY2) ld (BKY),a ld hl,SWORDSLASH1 call drawit ld a,(DUMMY1) add a,20 ld b,a ld a,(OK) add a,b ld (BKX),a ld a,(DUMMY2) ld (BKY),a ld hl,SWORDSLASH1 call drawit ld a,(DUMMY1) add a,40 ld b,a ld a,(OK) add a,b ld (BKX),a ld a,(DUMMY2) ld (BKY),a inc a ld (DUMMY2),a ld hl,SWORDSLASH1 call drawit ld a,(OK) inc a ld (OK),a cp 10 jr nz,STARLOOP pop bc djnz STARTSTAR ret SWORDSWING: call BLANK1429 ld bc,$0B29 ld hl,Kurai4 call NASRWARP call DELAY ld bc,$0B29 ld hl,KuraiBlank call NASRWARP ld bc,$0B1C ld hl,Kurai3 call NASRWARP call DELAY ld bc,$0B29 ld hl,KuraiBlank call NASRWARP ld bc,$031A ld hl,Kurai5 call NASRWARP call DELAY ld bc,$0329 ld hl,KuraiBlank call NASRWARP jp KURAI KURAI: ld bc,$141F ld hl,Kurai jp NASRWARP DISPMP: ld hl,YourMP ld de, $164A ;Y=2C,X=1A call DISPSTRING ld hl,(MP) ld de,$1652 jp DISPHL EFFECT: LD B,1 EFFECT1: LD HL,$88D0 LD DE,6 push bc SIDELINELOOP2: LD A,$C0 LD (HL),0 ADD HL,DE LD (HL),0 INC HL DJNZ SIDELINELOOP2 call CR_GRBCopy pop bc inc b ld a,b cp 105 jr nz,EFFECT1 ret LEVELUP2: push hl call DRAWWALLS ld hl,LevelUp ld bc,$3E3B call NASRWARP pop hl LEVELUP: push hl ld hl,KuraiPortrait ld bc,$3C26 call NASRWARP pop hl ld (DUMMY1),hl ld hl,Allocate ld de,$080A call DISPSTRING call DISPLAYSTATS ld bc,$130B ld hl,ALLOCATER call drawit2 FROMADD: ld hl,BlankText ld de,$082A call DISPSTRING ld hl,(DUMMY1) dec hl dec hl ld de,$082A call DISPHL call DRAWSTATS ALLOCLOOP: call GET_KEY cp G_RIGHT jp z,ADDPOINT) cp G_DOWN jr z,ALLOCDOWN cp G_UP jr nz,ALLOCLOOP ALLOCUP: ld a,(BKY) cp $13 jr z,ALLOCLOOP ld hl,ALLOCATER call drawit ld a,(BKY) sub 6 ld (BKY),a ld hl,ALLOCATER call drawit jr ALLOCLOOP ALLOCDOWN: ld a,(BKY) cp $2B jr z,ALLOCLOOP ld hl,ALLOCATER call drawit ld a,(BKY) add a,6 ld (BKY),a ld hl,ALLOCATER call drawit jr ALLOCLOOP ADDPOINT: ld hl,(DUMMY1) dec hl dec hl ld de,0 and a sbc hl,de jr z,DONEALLOCATE ld (DUMMY1),hl ld a,(BKY) cp $13 call z,ADDHP cp $19 call z,ADDMP cp $1F call z,ADDST cp $25 call z,ADDINT cp $2B call z,ADDSPEED jp FROMADD ADDHP: ld hl,(MAXHP) inc hl inc hl ld (MAXHP),hl ret ADDMP: ld hl,(MAXMP) inc hl inc hl ld (MAXMP),hl ret ADDST: ld hl,(STRENGTH) inc hl inc hl ld (STRENGTH),hl ret ADDINT: ld hl,(INTELLIGENCE) inc hl inc hl ld (INTELLIGENCE),hl ret ADDSPEED: ld hl,(SPEED) inc hl inc hl ld (SPEED),hl ret DONEALLOCATE: ld hl,(MAXMP) ld de,(MAXHP) ld (MP),hl ld (HP),de ld hl,(STRENGTH) ld (STRENGTHMAX),hl ld hl,(DEFENSE) ld (DEFENSEMAX),hl ld a,(KURAILEVEL) cp 8 jr nc,NOW160 ld de,80 jr REGULARCONT NOW160: ld de,160 REGULARCONT: ld b,a ld hl,0 LVLADD: add hl,de djnz LVLADD ld de,50 add hl,de ld de,(TOLEVEL) add hl,de ld (TOLEVEL),hl SKILLSPELLS: call EFFECT call DRAWWALLS call DELEXIT ld hl,ChooseSpells ld de,$0630 call DISPSTRING ld bc,$060B ld hl,ALLOCATER call drawit2 ld a,1 ld (DUMMY1),a ld hl,Heal ld de,$0515 call DISPSTRING ld a,$06 ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,12 and a sbc hl,de jp c,STARTADD2 ld hl,Burn ld de,$0B15 call DISPSTRING ld a,$0C ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,25 and a sbc hl,de jp c,STARTADD2 ld hl,Star ld de,$1115 call DISPSTRING ld a,$12 ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,34 and a sbc hl,de jr c,STARTADD2 ld hl,Rage ld de,$1715 call DISPSTRING ld a,$18 ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,56 and a sbc hl,de jr c,STARTADD2 ld hl,Sire ld de,$1D15 call DISPSTRING ld a,$1E ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,70 and a sbc hl,de jr c,STARTADD2 ld hl,Rock ld de,$2315 call DISPSTRING ld a,$24 ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,90 and a sbc hl,de jr c,STARTADD2 ld hl,Haste ld de,$2915 call DISPSTRING ld a,$2A ld (DUMMY2),a ld hl,(INTELLIGENCE) ld de,99 and a sbc hl,de jr c,STARTADD2 ld hl,Doom ld de,$2F15 call DISPSTRING ld a,$30 ld (DUMMY2),a STARTADD2: ld hl,WhichSpells STARTLOOP2: push hl STARTLOOP: call GET_KEY cp G_RIGHT jr z,STARTADD cp G_DOWN jr z,STARTDOWN cp G_DEL jp z,BEGINSKILL cp G_UP jr nz,STARTLOOP STARTUP: ld a,(BKY) cp $06 jr z,STARTLOOP ld hl,ALLOCATER call drawit pop hl dec hl push hl ld a,(DUMMY1) dec a ld (DUMMY1),a ld a,(BKY) sub 6 ld (BKY),a ld hl,ALLOCATER call drawit jr STARTLOOP STARTDOWN: ld a,(DUMMY2) ld b,a ld a,(BKY) cp b jr z,STARTLOOP ld hl,ALLOCATER call drawit pop hl inc hl push hl ld a,(DUMMY1) inc a ld (DUMMY1),a ld a,(BKY) add a,6 ld (BKY),a ld hl,ALLOCATER call drawit jr STARTLOOP STARTADD: pop hl ld a,(DUMMY1) ld b,a ld a,(hl) cp b jp z,ALREADYKNOW ld a,(DUMMY1) ld (hl),a jr BEGIN2 BEGINSKILL: pop hl ;; begin adding skill BEGIN2: call DRAWWALLS call DELEXIT ld hl,ChooseSkills ld de,$0630 call DISPSTRING ld bc,$060B ld hl,ALLOCATER call drawit2 ld hl,SlashAll ld de,$0515 call DISPSTRING ld hl,Regeneration ld de,$0B15 call DISPSTRING ld hl,HPMP ld de,$1115 call DISPSTRING ld hl,Smoke ld de,$1715 call DISPSTRING ld hl,ReLife ld de,$1D15 call DISPSTRING ld hl,Build ld de,$2315 call DISPSTRING ld hl,Xfrm ld de,$2915 call DISPSTRING ld hl,Bribe ld de,$2F15 call DISPSTRING ADDSKILL2: ld hl,WhichSkills STARTADD3: push hl ADDLOOP: call GET_KEY cp G_RIGHT jr z,SKILLADD cp G_DOWN jr z,ADDDOWN cp G_DEL jr z,NOSKILL cp G_UP jr nz,ADDLOOP ADDUP: ld a,(BKY) cp $06 jr z,ADDLOOP ld hl,ALLOCATER call drawit pop hl dec hl push hl ld a,(BKY) sub 6 ld (BKY),a ld hl,ALLOCATER call drawit jr ADDLOOP ADDDOWN: ld a,(BKY) cp $30 jr z,ADDLOOP ld hl,ALLOCATER call drawit pop hl inc hl push hl ld a,(BKY) add a,6 ld (BKY),a ld hl,ALLOCATER call drawit jr ADDLOOP SKILLADD: pop hl ld a,(hl) cp 1 jr z,ALREADYKNOW2 ld (hl),1 push hl NOSKILL: pop hl ret ALREADYKNOW: push hl ld hl,Youknowit call DISPSTRING2 call ERASETEXT2 pop hl jp STARTLOOP2 ALREADYKNOW2: push hl ld hl,Youknowit call DISPSTRING2 call ERASETEXT2 pop hl jp STARTADD3 INTOWN: ld a,(DUNGEONCHECK) cp 9 jr z,TOWN1 cp 10 jr z,CAVEOLDMAN TOWN2: LD HL,$0808 LD DE,296 jr RETURNTOMAP3 CAVEOLDMAN: LD HL,$1002 LD DE,578 jr RETURNTOMAP3 TOWN1: LD HL,$0F15 LD DE,561 RETURNTOMAP2: xor a jr RETURNTOMAP RETURNTOMAP3: ld a,5 RETURNTOMAP: ld (DUNGEONCHECK),a push de LD (X),HL ld (COUNTER),a LD HL,BITMAPS LD (BMPLOC),HL LD HL,MAP LD (MAPSTART),HL pop de ADD HL,DE jp UPDATEMOVE TOWER: ld a,(SCENARIO) cp 9 jr nc,INTOTHETOWER ld de,$1C04 ld hl,force call DISPSTRING jp RETFROMSTATS INTOTHETOWER: ld hl,MAP4 ld de,597 add hl,de ld (hl),7 call DRAWWALLS ld de,$1C14 ld hl,last call DISPSTRING3 call ERASESCREEN LD DE,369 ld hl,$0A09 MAP4PLACER: ld a,-1 MAP4PLACER2: ld (DUNGEONCHECK),a ld bc,MAP4 ld (MAPVAR),bc push de LD (X),HL LD HL,BITMAPS2 LD (BMPLOC),HL LD HL,MAP4 LD (MAPSTART),HL pop de ADD HL,DE jp UPDATEMOVE TOWN: ld a,(DUNGEONCHECK) cp 5 jr z,TOTOWN2 or a jr nz,TREASURECHEST FROMLOAD: ld a,9 ld (DUNGEONCHECK),a ld a,(SCENARIO) cp 2 jr nz,MANDEAD jr MANALIVE TOTOWN2: ld a,8 ld (DUNGEONCHECK),a MANALIVE: call DEADORLIVEMAN ld (hl),5 jr MANALIVESTILL MANDEAD: call DEADORLIVEMAN ld (hl),0 MANALIVESTILL: xor a ld (LEADERCHECK),a LD DE,700 ld hl,$1310 jr MAP2PLACER MAP2PLACER2: ld (DUNGEONCHECK),a MAP2PLACER: ld bc,MAP2 ld (MAPVAR),bc push de LD (X),HL LD HL,BITMAPS2 LD (BMPLOC),HL LD HL,MAP2 LD (MAPSTART),HL pop de ADD HL,DE jp UPDATEMOVE DEADORLIVEMAN: ld hl,MAP2 ld de,814 add hl,de RET TREASURECHEST: call DRAWWALLS ld hl,YouFind ld de,$1820 call DISPSTRING ld a,(DUNGEONCHECK) cp -2 jr nz,RANDTREASURE FAITHARMOR: ld hl,faitharmor ld de,$1E20 call DISPSTRING3 ld a,10 ld (SCENARIO),a jp LEADER6 RANDTREASURE: ld a,r srl a and 3 cp 1 jr z,FGOLD or a jr z,FITEM FSCROLL ld hl,scroll ld de,$1E20 call DISPSTRING call ADD30LOOP ld de,(XP) add hl,de ld (XP),hl jr ITSFOUND FITEM: ld hl,WhichItems push hl ld a,(hl) inc a ld (hl),a ld hl,MedKit ld de,$1E20 call DISPSTRING ld a,r srl a and 3 or a jr z,(ITSFOUNDPOP) pop hl inc hl ld a,(hl) inc a ld (hl),a ld hl,MagKit ld de,$2420 call DISPSTRING jr ITSFOUND FGOLD: call ADD30LOOP ld de,(GOLD) add hl,de ld (GOLD),hl ld hl,somegold ld de,$1E20 call DISPSTRING jr ITSFOUND ITSFOUNDPOP: pop hl ITSFOUND: ld bc,(X) push bc ld hl,0 LOOPOF362: ld de,36 add hl,de djnz LOOPOF362 pop bc ld b,0 add hl,bc ld de,73 add hl,de ex de,hl push de ld hl,(MAPVAR) pop de add hl,de ld (hl),0 RETFROMSTATS: call WaitKey RETFROMSTATS2: call ERASESCREEN ld hl,(WHEREAT) jp UPDATEMOVE BLANK1429: ld bc,$1429 ld hl,KuraiBlank jp NASRWARP KURAIMAGIC1: ld bc,$111D ld hl,KuraiMagic1 jp NASRWARP STATUSSCREEN: call DELAY2 ld hl,StatusScreen ld bc,$3C3C call NASRWARP ld bc,$0540 ld (BKX),bc call DRAWWIDE STATLOOP: ld a,$3E out (1),a in a,(1) bit 7,a jp z,RETFROMSTATS2 bit 5,a ; 2ND jr z,STATPRESS bit 0,a jr z,STATDOWN bit 3,a jr nz,STATLOOP STATUP: call DELAY call DRAWWIDE ld a,(BKY) cp $05 jr nz,CONTUP ld bc,$1740 ld (BKX),bc call DRAWWIDE jr STATLOOP CONTUP: ld a,(BKY) sub 6 ld (BKY),a call DRAWWIDE jr STATLOOP STATDOWN: call DELAY call DRAWWIDE ld a,(BKY) cp $17 jr nz,CONTDOWN ld bc,$0540 ld (BKX),bc call DRAWWIDE jr STATLOOP CONTDOWN: ld a,(BKY) add a,6 ld (BKY),a call DRAWWIDE jr STATLOOP STATPRESS: ld a,(BKY) cp $11 jp z,SEARCHFOR call DRAWWALLS ld hl,KuraiPortrait ld bc,$3C24 call NASRWARP ld a,(BKY) cp $17 jp z,HEALING cp $0B jp z,ITEMS STATS: ld hl,Stats ld de,$0306 call DISPSTRING ld hl,Level ld de,$0C14 call DISPSTRING ld a,(KURAILEVEL) ld l,a ld h,0 ld de,$0C22 call DISPHL ld bc,$333C ld hl,Logo ;; displays kurai call NASRWARP call DISPLAYSTATS call DRAWSTATS2 ld hl,(HP) ld de,$1222 call DISPHL) ld hl,(MP) ld de,$1822 call DISPHL) ld hl,xp ld de,$3017 call DISPSTRING ld hl,(XP) ld de,$3022 call DISPHL ld hl,(GOLD) ld de,$3622 call DISPHL ld hl,gold ld de,$360F call DISPSTRING3 ;; only so i dont have to add call WaitKey call DRAWWALLS ld hl,KuraiPortrait ld bc,$3C24 call NASRWARP ld bc,$333C ld hl,Logo ;; displays kurai call NASRWARP ld hl,WeaponShop ld de,$120C call DISPSTRING ld hl,ArmorShop ld de,$1809 call DISPSTRING ld hl,(WEAPON) ld de,$1222 call DISPHL) ld hl,(DEFENSE) ld de,$1822 call DISPHL) ld hl,MedKit ld de,$1E0F call DISPSTRING ld hl,MagKit ld de,$240D call DISPSTRING ld hl,WhichItems ld a,(hl) ld l,a ld h,0 ld de,$1E22 call DISPHL ld hl,WhichItems inc hl ld a,(hl) ld l,a ld h,0 ld de,$2422 call DISPHL jp RETFROMSTATS CHESTPLACER: ld hl,MAP4 ld de,533 add hl,de RET SEARCHFOR: ld hl,YouFind ld de,$060B call DISPSTRING call DELAY3 call DELAY3 ld a,(DUNGEONCHECK) or a jr nz,NOCHECKPLACE CHECKPLACE: ld a,(SCENARIO) cp 9 jr c,NOCHECKPLACE cp 10 jr z,NOCHEST call CHESTPLACER ld (hl),6 jr YESCHEST NOCHEST: call CHESTPLACER ld (hl),0 YESCHEST: ld hl,(X) ld de,$0020 and a sbc hl,de jr nz,FINDNOTHING call DRAWWALLS ld de,$1C1E ld hl,acave call DISPSTRING3 call ERASESCREEN LD DE,711 ld bc,$131B ld a,-2 jp MAP4PLACER2 NOCHECKPLACE: ld a,(SCENARIO) cp 3 jr z,DUNGEON1SEARCH cp 8 jr nc,BANDITSEARCH FINDNOTHING: ld hl,Search ld de,$0C0B call DISPSTRING RETFROMSTATS9: jp RETFROMSTATS BANDITSEARCH: ld a,(DUNGEONCHECK) cp -1 jr z,LASTSEARCH ld hl,(X) ld de,$1002 and a sbc hl,de jr nz,FINDNOTHING ld hl,aswitch ld de,$0C0B call DISPSTRING ld hl,MAP3 ld de,653 add hl,de ld (hl),0 jr RETFROMSTATS9 LASTSEARCH: ld hl,(X) ld de,$0E14 and a sbc hl,de jr nz,FINDNOTHING ld hl,aswitch ld de,$0C0B call DISPSTRING ld hl,MAP4 ld de,597 add hl,de ld (hl),0 jr RETFROMSTATS9 DUNGEON1SEARCH: ld hl,(X) ld de,$051C and a sbc hl,de jr nz,FINDNOTHING ld hl,thekey ld de,$0C0B call DISPSTRING3 call DRAWWALLS ld hl,corpse ld de,$1C13 call DISPSTRING3 ld hl,mykey ld de,$2415 call DISPSTRING3 ld a,4 ld (SCENARIO),a jp LEADER2 ITEMS: ld hl,ItemMenu ld de,$0505 call DISPSTRING ld hl,DELtoExit ld de,$3410 call DISPSTRING call ITEMHEALS RETITEM: call ITEMHEALS2 ld hl,WhichItems push hl USEITEMLOOP: call GET_KEY cp G_1 jr z,USEMEDKIT cp G_DEL jp z,ENDHEAL cp G_2 jr nz,USEITEMLOOP USEMAGKIT: pop hl inc hl ld a,(hl) or a jr z,RETITEM dec a ld (hl),a ld de,40 call OVERMAXMP jr RETITEM USEMEDKIT: pop hl ld a,(hl) or a jr z,RETITEM dec a ld (hl),a ld de,90 call OVERMAXHP jr RETITEM HEALING: call ITEMHEALS call YESNO ld hl,willcost ld de,$2005 call DISPSTRING REHEAL: LD de,$1822 ld hl,BlankText call DISPSTRING LD de,$2016 ld hl,BlankText call DISPSTRING DIDNTHEAL: ld de,(HP) ld hl,(MAXHP) and a sbc hl,de srl h rr l srl h rr l push hl ld de,$2016 call DISPHL call ITEMHEALS2 HEALINGLOOP: call GET_KEY cp G_1 jr z,USEHEAL cp G_DEL jr z,ENDHEAL cp G_2 jr nz,HEALINGLOOP ENDHEAL: pop hl jp RETFROMSTATS2 USEHEAL: pop hl ex de,hl ld hl,(MP) and a sbc hl,de jr c,(DIDNTHEAL) ld (MP),hl ld hl,(MAXHP) ld (HP),hl jr REHEAL ITEMHEALS: ld hl,HPstr ld de,$1217 call DISPSTRING ld hl,MPstr ld de,$1815 call DISPSTRING ITEMHEALS2: ld hl,(HP) ld de,$1222 call DISPHL ld hl,(MP) ld de,$1822 jp DISPHL DRAWWIDE: ld a,$40 ld (BKX),a ld hl,WIDECURSOR call drawit ld a,(BKX) add a,8 ld (BKX),a ld hl,WIDECURSOR call drawit ld a,(BKX) add a,8 ld (BKX),a ld hl,WIDECURSOR jp drawit DISPLAYSTATS: ld hl,HPstr ld de,$1217 call DISPSTRING ld hl,MPstr ld de,$1815 call DISPSTRING ld hl,Strength ld de,$1E17 call DISPSTRING ld hl,Intelligence ld de,$2414 call DISPSTRING ld hl,Speed ld de,$2A17 jp DISPSTRING DRAWSTATS: ld hl,(MAXHP) ld de,$1222 call DISPHL) ld hl,(MAXMP) ld de,$1822 call DISPHL) DRAWSTATS2: ld hl,(STRENGTH) ld de,$1E22 call DISPHL ld hl,(INTELLIGENCE) ld de,$2422 call DISPHL ld hl,(SPEED) ld de,$2A22 jp DISPHL CAVEORELSE: ld a,(DUNGEONCHECK) cp 5 jr z,OTHERSIDE or a jp nz,KEYLOOP SIDE1: ld de,13 ld hl,$000D ld a,3 jp MAP2PLACER2 OTHERSIDE: ld bc,(X) ld a,b cp 8 jr z,OTHERSIDECAVE cp 2 jr z,OTHERCAVE OLDMANCAVE: LD DE,699 ld hl,$130F ld a,10 MAP3PLACER: ld (DUNGEONCHECK),a ld bc,MAP3 ld (MAPVAR),bc push de LD (X),HL LD HL,BITMAPS2 LD (BMPLOC),HL LD HL,MAP3 LD (MAPSTART),HL pop de ADD HL,DE jp UPDATEMOVE OTHERCAVE: ld a,(SCENARIO) cp 6 jp c,LOCKED LD DE,504 ld hl,$0E00 ld a,4 jr MAP3PLACER OTHERSIDECAVE: ld de,305 ld hl,$080B ld a,3 jr MAP2PLACER23 CASTLE: ld a,(DUNGEONCHECK) cp 5 jr z,BANDITCASTLE LD DE,438 LD HL,$0C06 ld a,1 MAP2PLACER23: ;;to save bytes jp MAP2PLACER2 BANDITCASTLE: ld hl,MAP3 ld de,653 add hl,de ld (hl),7 call DRAWWALLS ld de,$1C10 ld hl,BanditCastle call DISPSTRING3 call ERASESCREEN LD DE,688 LD HL,$1304 ld a,7 jr MAP3PLACER ITEMSHOP: ld hl,ItemShop call DISPSTRING ld hl,ItemMenu ld de,$0E0A call DISPSTRING ld hl,ItemStore ld de,$150A call DISPSTRING FROMISHOP2: push hl FROMISHOP: ld hl,(GOLD) ld de,$3622 call DISPHL pop hl ld hl,WhichItems push hl ISHOPLOOP: call GET_KEY cp G_1 jr z,BUYMED cp G_2 jr z,BUYMAG cp G_DEL jp z,ENDHEAL cp G_3 jr nz,ISHOPLOOP BUYBOMB: pop hl inc hl inc hl jr ISHOPCONT BUYMAG: pop hl inc hl jr ISHOPCONT BUYMED: pop hl ISHOPCONT: push hl ld hl,(GOLD) ld de,30 and a sbc hl,de jr c,FROMISHOP ld (GOLD),hl pop hl ld a,(hl) inc a ld (hl),a ld hl,ThankYou ld de,$2D17 call DISPSTRING call DELAY3 ld hl,BlankText ld de,$2D17 call DISPSTRING ld hl,BlankText ld de,$2D24 call DISPSTRING ld hl,BlankText ld de,$3621 call DISPSTRING jr FROMISHOP2 CASTLEORMAN: ld a,(DUNGEONCHECK) cp 8 jp c,CASTLE call DRAWWALLS ld hl,gold ld de,$360F call DISPSTRING ld hl,(GOLD) ld de,$3622 call DISPHL call DELEXIT ld de,$0505 ld bc,(X) ld a,c cp 12 jp z,ITEMSHOP cp 18 jp z,INN cp 14 jp z,ARMORSHOP cp 19 jp z,DEADMAN WEAPONSHOP: ld hl,WeaponShop call DISPSTRING call DISPWPNSET1 ld hl,180 ld de,$0E40 call DISPHL ld hl,700 ld de,$1440 call DISPHL ld hl,3400 ld de,$1A40 call DISPHL ld hl,8000 ld de,$2040 call DISPHL ld hl,12000 ld de,$2640 call DISPHL WPNLOOP: call GET_KEY cp G_2 jr z,WPN2 cp G_3 jr z,WPN3 cp G_4 jr z,WPN4 cp G_5 jr z,WPN5 cp G_DEL jp z,RETFROMSTATS2 cp G_1 jr nz,WPNLOOP WPN1: ld de,180 ld bc,15 jr WPNDONE WPN2: ld de,700 ld bc,45 jr WPNDONE WPN3: ld de,3400 ld bc,90 jr WPNDONE WPN4: ld de,8000 ld bc,120 jr WPNDONE WPN5: ld de,12000 ld bc,220 WPNDONE: ld hl,(GOLD) and a sbc hl,de jr c,WPNLOOP ld (GOLD),hl ld (WEAPON),bc jp THANKYOU ARMORSHOP: ld hl,ArmorShop call DISPSTRING call DISPWPNSET1 ld hl,220 ld de,$0E40 call DISPHL ld hl,700 ld de,$1440 call DISPHL ld hl,2500 ld de,$1A40 call DISPHL ld hl,5666 ld de,$2040 call DISPHL ld hl,9999 ld de,$2640 call DISPHL ARMRLOOP: call GET_KEY cp G_2 jr z,ARM2 cp G_3 jr z,ARM3 cp G_4 jr z,ARM4 cp G_5 jr z,ARM5 cp G_DEL jp z,RETFROMSTATS2 cp G_1 jr nz,ARMRLOOP ARM1: ld de,220 ld bc,20 jr ARMRDONE ARM2: ld de,700 ld bc,41 jr ARMRDONE ARM3: ld de,2500 ld bc,65 jr ARMRDONE ARM4: ld de,5666 ld bc,91 jr ARMRDONE ARM5: ld de,9999 ld bc,120 ARMRDONE: ld hl,(GOLD) and a sbc hl,de jr c,ARMRLOOP ld (GOLD),hl ld (DEFENSE),bc jp THANKYOU OLDMAN: ;; in the cave, aligned with inn, call DRAWWALLS ld a,(SCENARIO) cp 6 jr nc,NOTHINGMANSAYS ld de,$1004 ld hl,OldManText1 call DISPSTRING ld de,$1604 ld hl,OldManText2 call DISPSTRING ld de,$1D04 ld hl,OldManText3 call DISPSTRING ld de,$2404 ld hl,thekey call DISPSTRING call TALK8 call TALK9 ld a,6 ld (SCENARIO),a NOSCENADD: jp RETFROMSTATS2 NOTHINGMANSAYS: ld de,$1C10 ld hl,saysnothing call DISPSTRING3 jr NOSCENADD INN: ld a,(DUNGEONCHECK) cp 10 jr z,OLDMAN ld hl,Inn ld de,$1213 call DISPSTRING ld hl,OneNight ld de,$1A13 call DISPSTRING call ADD20LOOP ld (DUMMY1),hl ld de,$1A35 call DISPHL call YESNO INNLOOP: call GET_KEY cp G_2 jr z,SAVENOINN cp G_DEL jr z,SAVENOINN cp G_1 jr nz,INNLOOP YESINN: ld de,(DUMMY1) ld hl,(GOLD) and a sbc hl,de jr c,INNLOOP ld (GOLD),hl ld b,40 INNFLASHLOOP: push bc call INVERTSCREEN pop bc djnz INNFLASHLOOP ld hl,Restored ld de,$2620 call DISPSTRING ld hl,(MAXHP) ld de,(MAXMP) ld (HP),hl ld (MP),de SAVENOINN: call DRAWWALLS ld hl,SaveGame ld de,$0505 call DISPSTRING call DELEXIT SAVELOOP: call GET_KEY cp G_2 jr z,SAVEGAME2 cp G_DEL jp z,RETFROMSTATS2 cp G_1 jr nz,SAVELOOP SAVEGAME1: ld hl,SaveSSI ld (DUMMY1),hl LD DE,SAVERAM ld hl,scenario1 jr SAVEGAME SAVEGAME2: ld hl,SaveSSI2 ld (DUMMY1),hl LD DE,SAVERAM2 ld hl,scenario2 SAVEGAME: push hl LD HL,TOLEVEL LD BC,28 LDIR ld de,(DUMMY1) ld hl,WhichSpells ld bc,24 ldir pop hl ld a,(SCENARIO) ld (hl),a ld hl,Saved ld de,$2120 call DISPSTRING jr THANX YESNO: ld hl,yesorno ld de,$0505 jp DISPSTRING ADD20LOOP: ld de,20 jr READDLOOP ADD30LOOP: ld de,30 READDLOOP: ld a,(KURAILEVEL) ld b,a ld hl,0 ADDINLOOP: add hl,de djnz ADDINLOOP ret DISPWPNSET1: ld hl,willcost ld de,$0540 call DISPSTRING ld hl,WAset1 ld de,$0E0A call DISPSTRING ld hl,WAset2 ld de,$140A call DISPSTRING ld hl,WAset3 ld de,$1A0A call DISPSTRING ld hl,WAset4 ld de,$200A call DISPSTRING ld hl,WAset5 ld de,$260A jp DISPSTRING DELEXIT: ld hl,DELtoExit ld de,$3434 jp DISPSTRING THANKYOU: ld hl,ThankYou ld de,$2D17 call DISPSTRING THANX: jp RETFROMSTATS DEADMAN: call DRAWWALLS ld de,$0D0B ld a,(SCENARIO) cp 5 jp nc,MAN2 ld hl,ManText1 call DISPSTRING ld de,$140B ld hl,ManText2 call DISPSTRING ld de,$1B0B ld hl,ManText3 call DISPSTRING ld de,$220B ld hl,ManText4 call DISPSTRING ld de,$290B ld hl,ManText5 call DISPSTRING3 call DRAWWALLS ld de,$1C09 ld hl,ManText6 call DISPSTRING3 call YESNO ld de,$1114 ld hl,ManText7 call DISPSTRING call DEADORLIVEMAN ld (hl),0 ld a,1 ld (NUMBEROFENEMIES),a ld a,3 ld (SCENARIO),a KILLMANLOOP: call GET_KEY cp G_1 jp z,GIMPMAN cp G_2 jr nz,KILLMANLOOP FLEEMAN: ld de,$260A ld hl,ManText8 call DISPSTRING3 call ERASESCREEN jp LEADER1TOWN ;; yay! you get to fight an xtech soldier! =))) ABOUTSWITCH: ld de,$1A07 ld hl,manswitch call DISPSTRING ld de,$2107 ld hl,BanditCastle call DISPSTRING jp RETFROMSTATS MAN2: ld a,(SCENARIO) cp 9 jp nc,NOTHINGMANSAYS cp 8 jr nc,ABOUTSWITCH ld hl,ManText9 call DISPSTRING ld de,$0D0B ld hl,ManText10 call DISPSTRING ld de,$140B ld hl,ManText11 call DISPSTRING ld de,$1B0B ld hl,ManText12 call DISPSTRING ld de,$220B ld hl,ManText14 call DISPSTRING call TALK6 call DRAWWALLS ld de,$140B ld hl,ManText16 call DISPSTRING ld de,$1B0B ld hl,ManText17 call DISPSTRING call TALK7 call DRAWWALLS ld de,$140B ld hl,ManText18 call DISPSTRING ld de,$1B0B ld hl,ManText20 call DISPSTRING ld de,$220B ld hl,ManText21 call DISPSTRING3 call DRAWWALLS ld de,$140B ld hl,ManText23 call DISPSTRING ld de,$1B0B ld hl,ManText25 call DISPSTRING ld de,$220B ld hl,ManText26 call DISPSTRING jp RETFROMSTATS DISPSTRING3: ld ($8215),de ROM_CALL(D_ZM_STR) call CR_GRBCopy WaitKey: call GET_KEY cp G_ENTER ret z cp G_2nd jr nz,WaitKey RET TALK6: ld bc,KuraiText17 ld de,KuraiText16 jr KURAITALKSWO32 TALK3: ld de,KuraiText9 ld bc,KuraiText10 ld hl,KuraiText11 jr KURAITALKS TALK2: ld bc,KuraiText8 ld de,KuraiText7 jr KURAITALKSWO3 TALK8: ld bc,KuraiText22 ld de,KuraiText21 jr KURAITALKSWO32 TALK12: ld de,KuraiText30 ld bc,KuraiText31 jr KURAITALKSWO3 TALK11: ld de,KuraiText27 ld bc,KuraiText28 ld hl,KuraiText29 jr KURAITALKS TALK10: ld bc,KuraiText26 ld de,KuraiText25 jr KURAITALKSWO32 TALK9: ld bc,KuraiText24 ld de,KuraiText23 jr KURAITALKSWO3 TALK7: ld bc,KuraiText20 ld de,KuraiText19 jr KURAITALKSWO32 TALK4: ld bc,KuraiText13 ld de,KuraiText12 jr KURAITALKSWO3 TALK5: ld bc,KuraiText15 ld de,KuraiText14 jr KURAITALKSWO3 TALK1: ld a,1 ld (SCENARIO),a ld de,KuraiText4 ld bc,KuraiText5 ld hl,KuraiText6 jr KURAITALKS KURAITALKSWO32: call WaitKey ;; pauses, eliminates a WaitKey KURAITALKSWO3: ;; Kurai Talks w/o 3rd text ld hl,BlankText KURAITALKS: push hl push bc push de call DRAWWALLS call INVERTSCREEN ld hl,KuraiFace ld bc,$3D36 call NASRWARP set 3,(IY+05) pop hl ld de,$0C05 call DISPSTRING pop bc ld (DUMMY1),bc ld hl,(DUMMY1) ld de,$1305 call DISPSTRING pop de ex de,hl ld de,$1A05 call DISPSTRING3 res 3,(IY+05) jp ERASESCREEN ATTACKNUM2: ld a,(DUMMY1) dec a ld (BKX),a ld b,6 ATTACKLOOP2: push bc ld a,(BKX) inc a inc a ld (BKX),a ld a,7 ld (BKY),a ld hl,ERASUREX call drawit ld a,12 ld (BKY),a ld hl,ERASUREX call drawit pop bc djnz ATTACKLOOP2 ret FADE_OUT: LD A,($8008) ADD A,$DE FADE_OUT_LOOP: HALT HALT HALT CP $DE RET Z DEC A CALL $07F3 OUT ($10),A JR FADE_OUT_LOOP FADE_IN: LD A,($8008) ADD A,$DE LD B,A LD A,$DE FADE_IN_LOOP: HALT HALT HALT CP B RET Z INC A CALL $07F3 OUT ($10),A JR FADE_IN_LOOP DUMMY1DISP: ld (DUMMY1),hl ld de,100 and a sbc hl,de jr nc,over100disp ld hl,(DUMMY1) ld de,$163E jp DISPHL over100disp: ld hl,(DUMMY1) jp DISPHL2 REDISP: ld a,(DUMMY1) or a jp z,(KURAIMAGIC2) pop hl call ERASEMENU call DISPMP ld hl,WhichSpells inc hl inc hl inc hl inc hl ld a,(hl) or a jr z,NEXT4 push hl ld hl,Sire ld de, $1F49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT4: inc hl ld a,(hl) or a jr z,NEXT5 push hl ld hl,Rock ld de,$2649 ;Y=2C,X=1A call DISPSTRING pop hl NEXT5: inc hl ld a,(hl) or a jr z,NEXT6 push hl ld hl,Haste ld de,$2D49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT6: inc hl ld a,(hl) or a jr z,DONEWITHM2 push hl ld hl,Doom ld de,$3449 ;Y=2C,X=1A call DISPSTRING pop hl DONEWITHM2: ld bc,$1F3F ld hl,CURSORMAGIC call drawit2 ld hl,WhichSpells inc hl inc hl inc hl inc hl jp MAGICLOOP2 REDISP2: ld a,(DUMMY1) or a jp z,(KURAISKILL2) pop hl call ERASEMENU call DISPMP ld hl,WhichSkills inc hl inc hl inc hl inc hl ld a,(hl) or a jr z,NEXT4S push hl ld hl,ReLife ld de, $1F49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT4S: inc hl ld a,(hl) or a jr z,NEXT5S push hl ld hl,Build ld de, $2649 ;Y=2C,X=1A call DISPSTRING pop hl NEXT5S: inc hl ld a,(hl) or a jr z,NEXT6S push hl ld hl,Xfrm ld de, $2D49 ;Y=2C,X=1A call DISPSTRING pop hl NEXT6S: inc hl ld a,(hl) or a jr z,DONEWITHS2 push hl ld hl,Bribe ld de, $3449 ;Y=2C,X=1A call DISPSTRING pop hl DONEWITHS2: ld bc,$1F3F ld hl,CURSORMAGIC call drawit2 ld hl,WhichSkills inc hl inc hl inc hl inc hl jp SKILLLOOP2 REGENLOOPER: ld (MP),hl ld b,4 REGENLOOP: push bc ld bc,$2322 ld hl,RegenEffect call NASRWARP call DELAY3 ld bc,$2822 ld hl,BlankEnemy call NASRWARP call KURAI pop bc djnz REGENLOOP ret HEALLOOPER: ld b,55 HEALLOOP: push bc ld a,r srl a and 15 add a,15 ld (BKX),a ld a,r srl a and 18 add a,35 ld (BKY),a ld hl,HEALSPRITE call drawit ld a,(BKX) add a,8 ld (BKX),a ld a,r srl a and 10 add a,40 ld (BKY),a ld hl,HEALSPRITE call drawit pop bc djnz HEALLOOP ret CHESTINIT: ld (MAPVAR),hl ld b,6 ex de,hl INITCHESTS: push hl CALL $0033 ;; puts (hl) into hl ld de,(MAPVAR) add hl,de ld (hl),6 pop hl inc hl inc hl djnz INITCHESTS RET FAITHSWORD: ld de,$2210 ld hl,BanditsText1 jp DISPSTRING3 healher: .db "Heal her?",0 choicetext1: .db "Akara lays on the ground",0 choicetext2: .db "dying. If you use all",0 choicetext3: .db "your life force, shell live..",0 choicetext4: .db "but you will die.",0 badend1: .db "A noble, gesture...",0 badend2: .db "you throw yourself to hell",0 badend3: .db "knowing youll see her soon",0 badend4: .db "..someday.",0 cruelplace: .db "in this cruel place your",0 cruelplace2: .db "voice above the maelstrom",0 endgame1: .db "Although",0 endgame2: .db "Akara was",0 endgame3: .db "your lover,",0 endgame4: .db "faithful",0 endgame5: .db "and caring,",0 endgame6: .db "sometimes",0 endgame7: .db "life is just",0 endgame8: .db "more important.",0 lasttext1: .db "You see Akara, held captive",0 lasttext2: .db "by The Demon Wizard.",0 lasttext3: .db "Akara!!!",0 lasttext4: .db "Kurai, help me!!!",0 lasttext5: .db "The Demon Wizard speaks:",0 lasttext6: .db "She belongs to me,",0 lasttext7: .db "in life...",0 lasttext8: .db "...or in death!",0 lasttext9: .db "The Wizard strikes Akara",0 lasttext10: .db "to the ground and attacks!",0 faitharmor: .db "the Faith Armor!",0 Serpent1: .db "A serpent appears!",0 Serpent2: .db "Defeat me to get",0 last: .db "The final battle?",0 acave: .db "A hidden cave!",0 manswitch: .db "I hear a secret switch is in",0 saysnothing: .db "The man says nothing.",0 aswitch: .db "a switch!",0 thekey: .db "the key!",0 corpse: .db "A corpse appears!",0 mykey: .db "my key...my key..",0 Locked: .db "It is locked",0 Awakened: .db "Awakened",0 KuraiText1: .db "Huh?",0 KuraiText2: .db "The cell door",0 KuraiText3: .db "is open..",0 KuraiText4: .db "All the",0 KuraiText5: .db "guards have",0 KuraiText6: .db "been slain..",0 KuraiText7: .db "What? A Xtech",0 KuraiText8: .db "soldier?!",0 KuraiText9: .db "Whats going on?",0 KuraiText10: .db "Must get to",0 KuraiText11: .db "Kiata.",0 KuraiText12: .db "Theyll know",0 KuraiText13: .db "whats up.",0 KuraiText14: .db "The ground",0 KuraiText15: .db "feels funny..",0 KuraiText16: .db "Sorry, got",0 KuraiText17: .db "enuff problems",0 KuraiText19: .db "Fuck!",0 KuraiText20: .db "Where is she?",0 KuraiText21: .db "I just want",0 KuraiText22: .db "Akara...",0 KuraiText23: .db "Im not your",0 KuraiText24: .db "damn savior.",0 KuraiText25: .db "Akara, im",0 KuraiText26: .db "coming..",0 KuraiText27: .db "Fuck! its",0 KuraiText28: .db "bandit hunting",0 KuraiText29: .db "time..",0 KuraiText30: .db "Time to go to",0 KuraiText31: .db "the tower",0 ManText1: .db "Kiata is past the",0 ManText2: .db "west cave. Its locked.",0 ManText3: .db "The man with a key was",0 ManText4: .db "a diplomat...he died in",0 ManText5: .db "the Castle prison.",0 ManText6: .db "Wait..youre that killer!",0 ManText7: .db "Kill him?",0 ManText8: .db "Guards! Stop him!",0 ManText9: .db "Yeah, we know..",0 ManText10: .db "A wizard in the tower",0 ManText11: .db "killed them.",0 ManText12: .db "Wont you help us?",0 ManText14: .db "Else this land is doomed.",0 ManText16: .db "Kurai...",0 ManText17: .db "theyve got Akara.",0 ManText18: .db "In the tower...a",0 ManText20: .db "forcefield is around it.",0 ManText21: .db "You need the Faith Blade.",0 ManText23: .db "Search the SouthWest",0 ManText25: .db "cave. The sage there",0 ManText26: .db "knows where it is.",0 OldManText1: .db "Ha, some savior. But,",0 OldManText2: .db "if you want the Faith Sword",0 OldManText3: .db "its in the cave north. Heres",0 BanditsText1: .db "the Faith Sword!",0 BanditsText2: .db "Bandits ambush you!",0 BanditsText3: .db "They steal",0 BanditCastle: .db "The Bandit Castle..",0 BanditsText4: .db "The Bandit King!",0 BanditsText5: .db "He has",0 force: .db "Odd forces push you back",0 NewGame: .db "3. New Game",0 Saved: .db "Saved",0 Loaded: .db "Loaded",0 SaveGame: .db "1. Game One 2. Game Two",0 SAVERAM: .dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;; just my little cheat.. =) will be set back to ZERO. scenario1: .db 0 ;; will be reset to ZERO...my cheat again =] YouDodge: .db "You dodge",0 SAVERAM2: .dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0 scenario2: .db 0 ThankYou: .db "Thank ye",0 WeaponShop: .db "Blade:",0 ArmorShop: .db "Armor:",0 WAset1: .db "1. Wood",0 WAset2: .db "2. Iron",0 WAset3: .db "3. Fire",0 WAset4: .db "4. Rune",0 WAset5: .db "5. Dragon",0 Restored: .db "Healed",0 Inn: .db "Welcome to the Inn",0 OneNight: .db "One Night:",0 ItemShop: .db "Item",0 ItemStore: .db "3. Bomb",0 ItemMenu: .db "1. MediKit " .db "2. MagiKit",0 YouFind: .db "You find..",0 scroll: .db "a scroll. Gain XP",0 Youknowit: .db "Known",0 ChooseSpells: .db "Pick Spell",0 ChooseSkills: .db "Pick Skill",0 Allocate: .db "Allocate:",0 SlashAll: .db "CutAll",0 Regeneration: .db "Regen",0 HPMP: .db "HP<->MP",0 Smoke: .db "Smke",0 ReLife: .db "ReLife",0 Build: .db "Build",0 Xfrm: .db "Xfrm",0 Bribe: .db "Steal",0 MedKit: .db "HPkit",0 MagKit: .db "MPkit",0 ArcBolt: .db "Bomb",0 EnemyAttacks: .db "attacks!!",0 damage: .db "dmg!",0 BlankText: .db " ",0 Victory: .db "Victory!",0 ToNextLevel: .db "Next Lvl:",0 GameOVER: .db "Game Over",0 YourMP: .db "M:",0 Escape: .db "You Escape",0 Failed: .db "Failed..",0 HPstr: .db "HP:",0 MPstr: .db "MP:",0 Strength: .db "ST:",0 Intelligence: .db "INT:",0 Speed: .db "DX:",0 xp: .db "XP:",0 gold: .db "Gold:",0 ;;spells WhichSpells: .db 0,0,0,0,0,0,0,0,0,0 ;;0==DON'T KNOW SPELL! 1==HEAL 2==BURN 3==STAR 4==RAGE 5==SIRE 6==Rock 7==Haste 8==Doom WhichSkills: .db 0,0,0,0,0,0,0,0,0,0 ;;0==unknown skill... SlashAll, Regeneration, HP<->MP, Smoke, ReLife WhichItems: .db 0,0,0,0 ;; 0==nothing.... MedKit, MagKit, Bomb, Gem?? SaveSSI: .dw 0,0,0,0,0,0,0,0,0,0,0,0 ;;Spell Skill Item SaveSSI2: .dw 0,0,0,0,0,0,0,0,0,0,0,0 ;;Spell Skill Item Chests: .dw 276,232,383,708,793,802 ;; 6 to a MAP Chests2: .dw 149,449,554,757,0,0 ZeroSet: .dw 0,0,0,0,0,0,0,0,0,0,0,0 Heal: .db "Heal",0 Burn: .db "Burn",0 Star: .db "Star",0 Rage: .db "Rage",0 Sire: .db "Sire",0 Rock: .db "Rock",0 Haste: .db "Haste",0 Doom: .db "Doom",0 needmp: .db "Need MP!",0 somegold: .db "some gold",0 Stats: .db "Status",0 Level: .db "Lvl:",0 Search: .db "..nothing",0 DELtoExit: .db "DEL to exit",0 yesorno: .db "1. Yes " .db "2. No",0 willcost: .db "Cost:",0 Kurai: .db 4,5,30 .db %00000000, %00000000, %00000000, %00010000 .db %00000000, %00000000, %00000000, %00110000 .db %00000000, %00000000, %00000000, %01100000 .db %00000000, %00000000, %00000000, %11100000 .db %00000000, %00000000, %00000001, %01000000 .db %00000001, %11100000, %00000011, %10000000 .db %00000011, %00111000, %00000111, %00000000 .db %00000010, %10010100, %00001110, %00000000 .db %00000100, %00101100, %00011100, %00000000 .db %00000011, %10011000, %00101000, %00000000 .db %00000001, %00100000, %01010000, %00000000 .db %00000001, %11000000, %11100000, %00000000 .db %00000001, %01111101, %11000000, %00000000 .db %00111110, %00011111, %01000000, %00000000 .db %01011110, %00101100, %10000000, %00000000 .db %11111101, %01110111, %11000000, %00000000 .db %00101101, %11101111, %00000000, %00000000 .db %00101010, %01111010, %00000000, %00000000 .db %00110111, %01111100, %00000000, %00000000 .db %00011101, %10110100, %00000000, %00000000 .db %00001111, %10001000, %00000000, %00000000 .db %00000101, %11110000, %00000000, %00000000 .db %00000110, %11100000, %00000000, %00000000 .db %00000101, %00100000, %00000000, %00000000 .db %00001100, %01010000, %00000000, %00000000 .db %00001000, %10110000, %00000000, %00000000 .db %00010111, %10101000, %00000000, %00000000 .db %00011011, %01011000, %00000000, %00000000 .db %00101010, %01100100, %00000000, %00000000 .db %01000100, %00110100, %00000000, %00000000 Logo: .db 3,1,21 .db %11000000, %00000000, %00000000, .db %11100000, %00000000, %00010101, .db %10110110, %01001001, %10001110, .db %10010100, %10011101, %10001011, .db %10010111, %00010101, %10011011, .db %10110110, %01010100, %10010101, .db %01100010, %01000110, %10011011, .db %01100110, %01000100, %10011010, .db %01000100, %00000100, %10001110, .db %00000000, %00000001, %10000101, .db %00000000, %00000011, %00100000, .db %10101011, %11000000, %01100000, .db %01110011, %10101011, %01010000, .db %01011010, %00101111, %01010000, .db %11011011, %01110110, %01001000, .db %10101001, %10010100, %11000000, .db %11011000, %00010111, %01000000, .db %11010000, %00010000, %01000000, .db %01110000, %00100000, %11000000, .db %10100000, %00100001, %10000000, .db %00000000, %01000001, %00000000, LevelUp: .db 3,1,19 .db %11100000, %00000000, %00001100, .db %01000000, %00000000, %00000100, .db %01000000, %00000000, %00000100, .db %01000001, %10110111, %01100100, .db %01000010, %01010010, %10010100, .db %01000011, %11010100, %11110100, .db %01000110, %00001000, %10000100, .db %11111101, %11001000, %01111110, .db %00000000, %00000000, %00000000, .db %00000000, %00000000, %00000000, .db %00011101, %11000000, %01010100, .db %00001000, %10000000, %01010100, .db %00001000, %10011110, %01010100, .db %00001000, %10001001, %01010100, .db %00001000, %10001001, %01010100, .db %00001000, %10001001, %01010100, .db %00001000, %10001110, %00000000, .db %00000111, %00001000, %01010100, .db %00000000, %00011100, %00000000, Kurai3: .db 4,6,27 .db %00000000, %00000000, %00000001, %10000000 .db %00000000, %00000000, %00000011, %11000000 .db %00000000, %00000001, %11100111, %11100000 .db %00000000, %00000011, %00111111, %01100000 .db %00000000, %00000010, %10111110, %11000000 .db %00000001, %11000100, %11101110, %11100000 .db %00001110, %00000011, %11010010, %10100000 .db %00000011, %00000111, %00100101, %01100000 .db %00011100, %00011110, %01010110, %01100000 .db %01100000, %00111001, %11111101, %11100000 .db %00001000, %11110010, %00011111, %11000000 .db %00010001, %11101110, %00101100, %10000000 .db %00100111, %10001101, %01110111, %10000000 .db %01001111, %00000101, %11101111, %00000000 .db %00011100, %00100010, %01111010, %00000000 .db %00111001, %01000011, %01111110, %00000000 .db %01100010, %01000001, %10110100, %00000000 .db %10000100, %10000011, %10001000, %00000000 .db %00000100, %00000001, %01111100, %00000000 .db %00001000, %00000001, %10111000, %00000000 .db %00000000, %00000001, %01001000, %00000000 .db %00000000, %00000011, %00010100, %00000000 .db %00000000, %00000010, %00101100, %00000000 .db %00000000, %00000101, %11101010, %00000000 .db %00000000, %00000110, %11010110, %00000000 .db %00000000, %00001010, %10011001, %00000000 .db %00000000, %00010001, %00001101, %00000000 Kurai4: .db 4,5,40 .db %00000000, %00001000, %00000000, %00000000 .db %00000000, %00000101, %00000000, %00000000 .db %00000001, %00000010, %10100000, %00000000 .db %00000000, %11000010, %01010000, %00000000 .db %00000100, %01110001, %01001000, %00000000 .db %00000010, %00111100, %00101000, %00000000 .db %00000001, %00001111, %00000100, %00000000 .db %00000000, %11000011, %11000010, %00000000 .db %00000010, %00111000, %11110000, %00000000 .db %00000001, %10000110, %00111100, %10000000 .db %00000000, %01110000, %00001111, %00000000 .db %00000000, %00001100, %00000011, %11000000 .db %00000000, %00000000, %00000010, %11100000 .db %00000000, %00000000, %00000001, %01100000 .db %00000000, %00000000, %00000011, %11000000 .db %00000000, %00000001, %11100010, %11100000 .db %00000000, %00000011, %00111001, %01100000 .db %00000000, %00000010, %10011011, %11000000 .db %00000000, %00000100, %00101110, %11000000 .db %00000000, %00000010, %10011111, %11000000 .db %00000000, %00000011, %00010011, %01000000 .db %00000000, %00000110, %01100110, %10000000 .db %00000000, %00000011, %11111101, %10000000 .db %00000000, %00000110, %00011111, %00000000 .db %00000000, %00001110, %00101111, %00000000 .db %00000000, %00001101, %01110110, %00000000 .db %00000000, %00000101, %11101110, %00000000 .db %00000000, %00000010, %01111010, %00000000 .db %00000000, %00000011, %01111110, %00000000 .db %00000000, %00000001, %10110100, %00000000 .db %00000000, %00000011, %10001000, %00000000 .db %00000000, %00000001, %01111100, %00000000 .db %00000000, %00000001, %10111000, %00000000 .db %00000000, %00000001, %01001000, %00000000 .db %00000000, %00000011, %00010100, %00000000 .db %00000000, %00000010, %00101100, %00000000 .db %00000000, %00000101, %11101010, %00000000 .db %00000000, %00000110, %11010110, %00000000 .db %00000000, %00001010, %10011001, %00000000 .db %00000000, %00010001, %00001101, %00000000 Kurai5: .db 4,1,25 .db %00000000, %00000000, %00000000, %11110000 .db %00000000, %00000000, %00000001, %10011100 .db %00000000, %00000000, %00000001, %01001010 .db %00000000, %00000000, %00000010, %00010110 .db %00000000, %00000000, %00000001, %11001100 .db %00000000, %00000000, %00000000, %10010000 .db %00000000, %00000000, %00000000, %11100000 .db %00000000, %00000000, %00000001, %11111110 .db %00001100, %01110000, %00000011, %00010100 .db %00000011, %00011110, %00000101, %01011000 .db %00111001, %11100000, %00011010, %10111100 .db %11000001, %00000111, %11111110, %11011000 .db %00000100, %11111111, %11101011, %00110000 .db %00011111, %11100000, %00000111, %10111000 .db %11111000, %00000000, %00000001, %01011000 .db %00000000, %00010100, %00000000, %11000100 .db %00000011, %00101000, %00000000, %11111100 .db %00001100, %11010000, %00000000, %11011100 .db %00000000, %00100000, %00000000, %10100100 .db %00000001, %00000000, %00000001, %10001010 .db %00000000, %00000000, %00000001, %00010110 .db %00000000, %00000000, %00000010, %11110101 .db %00000000, %00000000, %00000011, %01101011 .db %00000000, %00000000, %00000101, %01001101 .db %00000000, %00000000, %00001000, %10010110 KuraiMagic1: .db 3,1,28 .db %00000000, %00000000, %00000000 .db %01001000, %00000000, %00010010 .db %00111000, %00000000, %00011100 .db %00011000, %00111100, %00110000 .db %00001100, %01100110, %00110000 .db %00001100, %11010011, %00110000 .db %00001100, %10000101, %00110000 .db %00001100, %01010010, %00110000 .db %00001010, %00100100, %01010000 .db %00001011, %00110100, %11010000 .db %00000101, %11101111, %01100000 .db %00000101, %01010010, %10100000 .db %00000010, %11000101, %01000000 .db %00000011, %10101110, %10000000 .db %00000001, %10111101, %00000000 .db %00000001, %01001101, %00000000 .db %00000000, %11101010, %00000000 .db %00000000, %10110110, %00000000 .db %00000000, %11110100, %00000000 .db %00000000, %10111110, %00000000 .db %00000000, %11011100, %00000000 .db %00000000, %10100100, %00000000 .db %00000001, %10001010, %00000000 .db %00000001, %00010110, %00000000 .db %00000010, %11110101, %00000000 .db %00000011, %01101011, %00000000 .db %00000101, %01001100, %10000000 .db %00001000, %10000110, %10000000 KuraiMagic2: .db 3,1,28 .db %00000000, %01000001, %00000000 .db %01001000, %10111010, %10010010 .db %00111001, %01000101, %01011100 .db %00011011, %10111100, %11110001 .db %10001110, %01100110, %01110011 .db %11011100, %11010011, %01110101 .db %10111100, %10000101, %10111011 .db %01001100, %01010010, %01110101 .db %01101010, %00100100, %01010010 .db %01011011, %00110100, %11010010 .db %10100101, %11101111, %01100100 .db %11100101, %01010010, %10101100 .db %01100010, %11000101, %01011000 .db %01011011, %10101110, %10011010 .db %01010101, %10111101, %00101110 .db %00101001, %01001101, %01010100 .db %10100100, %11101010, %01001100 .db %11010000, %10110110, %10101000 .db %10110100, %11110100, %10111010 .db %01110010, %10111110, %01010110 .db %01011100, %11011100, %01011100 .db %01001000, %10100100, %10110100 .db %01010001, %10001010, %01001000 .db %00101001, %00010110, %00101000 .db %00101010, %11110101, %01010000 .db %00100011, %01101011, %00010000 .db %00000101, %01001100, %10100000 .db %00001000, %10000110, %10000000 RegenEffect: .db 2,1,16 .db %00000000,%00000000 .db %00000000,%00101010 .db %00000000,%01010101 .db %00000011,%10101010 .db %00000110,%11011101 .db %00001101,%00110010 .db %00001000,%01110110 .db %00011000,%10101100 .db %00011001,%11011000 .db %00110011,%10110000 .db %01100111,%01100000 .db %01001110,%11000000 .db %10010101,%10000000 .db %00101011,%00000000 .db %01110010,%00000000 .db %11101100,%00000000 KuraiFace: .db 3,1,37 .db %00000000, %00000000, %00000000 .db %00111111, %11111111, %11111100 .db %01111111, %11111111, %11111110 .db %01111111, %11111111, %11111110 .db %01111110, %00000111, %11111110 .db %01111101, %00100001, %11111110 .db %01111011, %10000000, %11111110 .db %01110111, %10010100, %01111110 .db %01101111, %00000000, %00111110 .db %01011100, %00100000, %00011110 .db %10111100, %00000000, %10011110 .db %01011011, %00001000, %00001110 .db %00111111, %00000001, %00001110 .db %11000011, %10000000, %00001110 .db %00110101, %11000100, %00100110 .db %01001110, %01000000, %10000110 .db %10101111, %10110010, %00000011 .db %11101110, %11111000, %00000001 .db %01010110, %11101000, %10111110 .db %01110111, %11101000, %01010101 .db %01111011, %11110001, %10001001 .db %01111011, %11111100, %10110110 .db %01111001, %11111111, %01010101 .db %01111110, %11111111, %10111000 .db %01111111, %01111010, %10111000 .db %01111111, %11101101, %11011010 .db %01111111, %11010001, %10110010 .db %01111111, %11101010, %01100010 .db %01111111, %10001000, %00000010 .db %01111111, %00010000, %01100101 .db %01111110, %00101000, %01001000 .db %01111100, %01100100, %11000001 .db %01110001, %00000100, %10010010 .db %00001100, %10000000, %00010010 .db %01100000, %00100001, %10100000 .db %10001000, %00011000, %01000100 .db %00100010, %10000001, %00001001 MagicKit: .db 3,1,19 .db %00000000, %11100000, %00000000 .db %00000001, %10110000, %00000000 .db %00000001, %11100000, %00000000 .db %00000001, %10110000, %00000000 .db %00000001, %11110000, %00001111 .db %00000000, %10110000, %00001000 .db %00000001, %11110000, %00001000 .db %01101111, %10111011, %11001000 .db %11111111, %00011111, %11101000 .db %11010101, %01010101, %01101000 .db %11111111, %00011111, %11101000 .db %01111011, %10111110, %11001000 .db %00000001, %11110000, %00001000 .db %00000000, %10110000, %00001000 .db %00000001, %11110000, %00001000 .db %00000001, %10110000, %00001000 .db %00000001, %11100000, %00001000 .db %00000001, %10110000, %00001000 .db %00000000, %11100000, %00001000 StatusScreen: .db 4,1,28 .db %01111111, %11111111, %11111111, %11111110 .db %11000000, %00000000, %00000000, %00000011 .db %10000011, %01000000, %10000000, %00000001 .db %10000100, %01100110, %11010101, %10000001 .db %10000010, %01001010, %10010101, %00000001 .db %10000001, %01001010, %10010100, %10000001 .db %10000110, %00100110, %01011101, %10000001 .db %10000000, %00000000, %00000000, %00000001 .db %10000111, %01000000, %00000000, %00000001 .db %10000010, %01100100, %11010000, %00000001 .db %10000010, %01001010, %10101000, %00000001 .db %10000010, %01001100, %10101000, %00000001 .db %10000111, %00100110, %10001000, %00000001 .db %10000000, %00000000, %00000000, %00000001 .db %10000011, %00000000, %00000000, %01000001 .db %10000100, %00100011, %01010011, %01000001 .db %10000010, %01010101, %01100100, %01100001 .db %10000001, %01100101, %01000100, %01010001 .db %10000110, %00110011, %01000011, %01010001 .db %10000000, %00000000, %00000000, %00000001 .db %10000100, %01000000, %00010000, %00000001 .db %10000110, %11001100, %10000011, %00000001 .db %10000101, %01010101, %01010100, %00000001 .db %10000100, %01010100, %11010100, %00000001 .db %10000100, %01001100, %01010011, %00000001 .db %10000000, %00000000, %10000000, %00000001 .db %11000000, %00000000, %00000000, %00000011 .db %01111111, %11111111, %11111111, %11111110 KuraiOrb1: .db 1,1,8 .db %00111100 .db %01000010 .db %10001101 .db %10011101 .db %10111001 .db %10110001 .db %01000010 .db %00111100 KuraiOrb2: .db 1,1,8 .db %00111100 .db %01011010 .db %10011001 .db %10011001 .db %10011001 .db %10011001 .db %01011010 .db %00111100 KuraiOrb3: .db 1,1,8 .db %00111100 .db %01000010 .db %10110001 .db %10111001 .db %10011101 .db %10001101 .db %01000010 .db %00111100 KuraiOrb4: .db 1,1,8 .db %00111100 .db %01000010 .db %10000001 .db %11111111 .db %11111111 .db %10000001 .db %01000010 .db %00111100 ERASUREX: .db %11010110 .db %10101100 .db %00000000 .db %11010110 .db %00100001 .db %00000000 .db %11010110 .db %10101100 ERASURE: .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %11111111 .db %11111111 ERASURE2: .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000011 .db %00000011 LINE: .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %11111100 ICONRING: .db %11111111 .db %10000001 .db %10000001 .db %10000001 .db %10000001 .db %10000001 .db %10000001 .db %11111111 CURSORATTK: .db %00010000 .db %00111000 .db %01111100 .db %11111110 .db %00000000 .db %00000000 .db %00000000 .db %00000000 MPHPSWITCH: CURSORMAGIC: .db %00001000 .db %00001100 .db %00001110 .db %00001111 .db %00001110 .db %00001100 .db %00001000 .db %00000000 SWORDSLASH1: .db %01000000 .db %11001001 .db %00000000 .db %00000001 .db %01000000 .db %00010000 .db %00100000 .db %10001000 ENEMYHIT1: .db %00101000 .db %01011101 .db %11101010 .db %01011011 .db %10100101 .db %10111010 .db %01101111 .db %00110010 HEALSPRITE: .db %00100000 .db %00001000 .db %10000000 .db %00100000 .db %00000100 .db %10000000 .db %00100000 .db %00000000 ALLOCATER: .db %00000100 .db %00111110 .db %00111111 .db %00111110 .db %00000100 .db %00000000 .db %00000000 .db %00000000 WIDECURSOR: .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %00000000 .db %00000000 .db %00000000 SireSpell1: .db 2,1,16 .db %00000000,%00000000 .db %00000000,%00000000 .db %00000000,%00000000 .db %00000000,%00000000 .db %00000011,%11000000 .db %00000110,%10100000 .db %00001101,%01100000 .db %00011010,%11010000 .db %00001001,%01100000 .db %00011010,%11010000 .db %00001111,%10100000 .db %00010101,%00100000 .db %00001111,%11000000 .db %00000100,%00100000 .db %00000000,%00000000 .db %00000000,%00000000 SireSpell2: .db 2,1,16 .db %00000000,%00000000 .db %00000000,%00000000 .db %00000100,%00100100 .db %00000010,%01000110 .db %01000011,%01101000 .db %00110110,%10101100 .db %00011101,%11110100 .db %00011010,%01011000 .db %00001010,%11100000 .db %00010111,%01010000 .db %00101111,%10110000 .db %01111100,%11001000 .db %00001011,%00110100 .db %00010101,%11100000 .db %00011000,%00010000 .db %00000000,%00000000 SireSpell3: .db 2,1,16 .db %00001000,%00100001 .db %00001100,%01100010 .db %00000110,%11000110 .db %10000101,%10111010 .db %11100110,%10101100 .db %01011101,%11111000 .db %00101010,%01010000 .db %00011010,%11100000 .db %00010111,%01010000 .db %00101011,%10110000 .db %01101101,%11001000 .db %10011011,%01110100 .db %00010101,%10101100 .db %00101011,%01010010 .db %01011001,%11100000 .db %01100000,%00010000 DoomSpell: .db 2,1,14 .db %00000000,%01000000 .db %00001100,%01100000 .db %00010110,%01110000 .db %00110001,%01011000 .db %00110110,%01001000 .db %00110110,%01000000 .db %01001010,%11000000 .db %01010101,%11000000 .db %01010111,%10000000 .db %10101011,%01000000 .db %11101101,%01000000 .db %11000100,%11000000 .db %10101101,%10100000 .db %01111111,%11110000 ENEMY4: .db 2,1,16 .db %00011100, %00000000 .db %00111110, %00000000 .db %01100110, %11000000 .db %11001100, %10110000 .db %11100001, %10101100 .db %11010111, %01101000 .db %01111111, %11010000 .db %01111010, %10110100 .db %01100100, %11011010 .db %01101111, %00111011 .db %01010100, %01010101 .db %11010111, %11111011 .db %10110101, %01010001 .db %01101101, %10000010 .db %01011001, %01010000 .db %00010000, %11100000 ENEMY3: .db 2,1,16 .db %11000111, %11100011 .db %01011111, %11111010 .db %10101000, %10010101 .db %01010101, %01001010 .db %01100010, %00000110 .db %11001011, %11011011 .db %11101100, %01100111 .db %11010101, %10101011 .db %11100101, %10110111 .db %11001110, %00101011 .db %11011011, %11000011 .db %01100101, %10100110 .db %01011011, %11011010 .db %00110110, %01101100 .db %01010010, %01001010 .db %11100000, %00000111 ENEMY2: .db 2,1,16 .db %00000010, %00010000 .db %00000111, %00101000 .db %00001111, %10010010 .db %00011111, %11000101 .db %00011111, %11100010 .db %00111111, %11110000 .db %00111101, %10111000 .db %01111101, %10111000 .db %01111011, %01111100 .db %11111011, %01111110 .db %11111001, %00111110 .db %11111111, %11111110 .db %11111111, %11111110 .db %11111110, %00011110 .db %11111111, %11111100 .db %01111111, %11111000 ENEMY1: .db 2,1,16 .db %00111111, %11111100 .db %01001100, %01101010 .db %10010010, %10010001 .db %11011010, %11010101 .db %10111110, %11110011 .db %11001100, %01100001 .db %10100001, %00110101 .db %11011010, %10001001 .db %10101010, %10110001 .db %10001001, %01001010 .db %01000100, %00100100 .db %10111111, %11111010 .db %10010010, %10010010 .db %10101111, %11101000 .db %00101010, %10101000 .db %01000111, %11001000 ENEMY8: .db 2,1,16 .db %00000111, %11000000 .db %00011111, %11110000 .db %00110011, %10011000 .db %01110011, %10011100 .db %01101011, %01011100 .db %11101011, %01011110 .db %11100111, %00111110 .db %11111111, %11111110 .db %11101111, %11101110 .db %11101111, %11101110 .db %01101010, %10101100 .db %01101010, %10101100 .db %00110010, %10011000 .db %00011000, %00110000 .db %00000111, %11000000 .db %00000000, %00000000 ENEMY7: .db 2,1,16 .db %11111111, %11100000 .db %11011011, %01100000 .db %10101010, %10101110 .db %11011011, %01110001 .db %10101010, %10101011 .db %10000000, %00101011 .db %11111011, %11100101 .db %11011011, %01110010 .db %10101010, %10110110 .db %11011011, %01101110 .db %10101010, %10111100 .db %11011011, %01111000 .db %10101010, %10100000 .db %11011011, %01100000 .db %01101010, %11000000 .db %00011111, %00000000 ENEMY6: .db 2,1,16 .db %01010000, %00100010 .db %01000011, %00100101 .db %00100111, %10000010 .db %10100110, %10001000 .db %10001111, %10011101 .db %10001111, %00111001 .db %00011010, %11110001 .db %01011011, %11000010 .db %01011001, %01001010 .db %00010101, %10101000 .db %00011000, %10100000 .db %10110110, %01100100 .db %10110000, %01010101 .db %00111010, %11010001 .db %00110010, %00101000 .db %01111111, %11111100 ENEMY5: .db 2,1,16 .db %10000100, %00000000 .db %01010000, %11100100 .db %01001001, %10010010 .db %00100011, %11110000 .db %00100001, %00010010 .db %10010000, %10100001 .db %01011001, %01111100 .db %00001101, %11010100 .db %01000111, %01111100 .db %00101010, %01010100 .db %00000111, %01010101 .db %00001001, %00111000 .db %00011110, %11010000 .db %00010101, %10100010 .db %00101100, %01010001 .db %01111000, %00111000 ENEMYGIMP: .db 2,1,16 .db %00100000,%00000111 .db %01010000,%10001110 .db %10101001,%01001100 .db %01010001,%11001110 .db %00100010,%10100111 .db %00100001,%01000000 .db %00100111,%11110000 .db %00101110,%10111000 .db %00101010,%10011000 .db %00110110,%10110100 .db %00101010,%10011010 .db %01110110,%10110101 .db %01110111,%11110011 .db %00100110,%10110001 .db %00100110,%10110000 .db %00100100,%10010000 ENEMY9: .db 2,1,16 .db %00001111, %10000010 .db %10110001, %01100101 .db %01001110, %11110010 .db %01010101, %00011000 .db %01000101, %00110110 .db %10100111, %01010011 .db %10111111, %11101101 .db %11011100, %11001010 .db %10111101, %11111001 .db %10011111, %11001110 .db %01010111, %11110010 .db %01101101, %10011100 .db %01010101, %00010000 .db %01101110, %10100010 .db %00111001, %01100101 .db %00011111, %10000010 ENEMY10: .db 2,1,16 .db %00000000, %10111100 .db %00001001, %01111010 .db %00000111, %01101110 .db %00000010, %11111101 .db %00111100, %11011011 .db %01111010, %10111111 .db %01011110, %11101011 .db %11110111, %10110101 .db %11111111, %11111111 .db %10101101, %01010110 .db %11111111, %01111110 .db %11110101, %00110000 .db %11011111, %00000100 .db %01101110, %00000100 .db %01111010, %00001100 .db %00111100, %00111100 ENEMY11: .db 2,1,16 .db %00000010, %10010100 .db %00100010, %10100101 .db %00110100, %00000001 .db %00101100, %01111110 .db %10101000, %11000001 .db %10011001, %10111001 .db %01000011, %01010001 .db %00011110, %00100101 .db %00101000, %00001001 .db %00111111, %00000001 .db %00101000, %10100110 .db %01000001, %11101100 .db %11111011, %00111101 .db %01010110, %00010101 .db %10110000, %00101000 .db %01010000, %00001010 ENEMY15: .db 2,1,16 .db %00000111,%11100000 .db %00001111,%11110000 .db %00011100,%10010000 .db %00101111,%11100000 .db %01011011,%01100000 .db %11101111,%01100000 .db %10111010,%10100001 .db %11010011,%01100001 .db %10110010,%00100111 .db %11101001,%01001011 .db %01011100,%00010110 .db %00110110,%00101100 .db %00011101,%01111000 .db %00001011,%11101000 .db %00000110,%10110000 .db %00000011,%11100000 ENEMY14: .db 2,1,16 .db %00000000,%00000000 .db %00000000,%00000011 .db %00111011,%10000101 .db %00011011,%00001010 .db %00000000,%00010110 .db %00000100,%00101101 .db %00100100,%11011001 .db %00110001,%10110100 .db %00110011,%01101010 .db %00101110,%11000100 .db %00110101,%10010000 .db %00011011,%00101000 .db %00111110,%10010010 .db %01010111,%11000101 .db %10100000,%00000010 .db %11000000,%00000000 ENEMY13: .db 2,1,16 .db %10001111,%11110001 .db %11010100,%10101011 .db %10101001,%00001101 .db %00110000,%00010100 .db %00100010,%01000100 .db %01010010,%01011010 .db %01010010,%01000010 .db %01001000,%00011110 .db %01100010,%00101010 .db %01011001,%11010100 .db %00100100,%10001110 .db %00111111,%11110100 .db %01100101,%10100110 .db %01100101,%10100110 .db %01010010,%01001010 .db %01010010,%01001010 ENEMY16: .db 2,1,16 .db %00000000,%11111100 .db %00000011,%11111110 .db %00001111,%10111111 .db %00011101,%11111111 .db %00111011,%11100100 .db %00110111,%11001100 .db %00101110,%11011100 .db %00111111,%01011010 .db %00001111,%11100110 .db %00010111,%11111110 .db %00011111,%11110110 .db %00001101,%11111100 .db %00001111,%11111100 .db %00011111,%11111010 .db %01111111,%10110110 .db %10110011,%01111111 ENEMY17: .db 2,1,16 .db %00111100,%00111100 .db %01111000,%00011110 .db %11110000,%00001011 .db %11010011,%10001111 .db %10110100,%01001111 .db %11111101,%10111011 .db %01111011,%01011110 .db %10011011,%11011001 .db %01001010,%11010010 .db %00000101,%10100001 .db %00000010,%01100000 .db %00011111,%11011100 .db %11100100,%10010011 .db %10111010,%10101101 .db %01010101,%11010100 .db %10001010,%10101011 ENEMY18: .db 2,1,16 .db %01010000,%11110000 .db %11100001,%11001000 .db %00000010,%00100100 .db %11000011,%11101010 .db %10100010,%10100100 .db %01010001,%11100000 .db %00101100,%11000000 .db %00011001,%01000001 .db %00010110,%10110010 .db %10000111,%01101011 .db %01000010,%01101011 .db %01100001,%10111010 .db %10100011,%10101011 .db %01100101,%00110010 .db %10100101,%10101011 .db %11101101,%01111011 ENEMY19: .db 2,1,16 .db %01111111,%11111110 .db %11111010,%01011111 .db %10110001,%00001101 .db %10110101,%10101101 .db %10110101,%10101101 .db %11010000,%10001011 .db %11111010,%01011111 .db %01111100,%00111110 .db %01111100,%00111110 .db %11011010,%01011011 .db %10110000,%10001101 .db %10110101,%10101101 .db %10110101,%10101101 .db %11110001,%00001111 .db %11111010,%01011111 .db %01111111,%11111110 ENEMY20: .db 2,1,16 .db %00000000,%00110000 .db %00000000,%01111000 .db %00000000,%11111100 .db %00111100,%11001100 .db %01111110,%10110100 .db %11100110,%11001110 .db %10011001,%11111110 .db %11001011,%10110101 .db %11100111,%11001101 .db %11100111,%01111011 .db %11100111,%00110011 .db %11100111,%11111101 .db %11100111,%10101011 .db %01100110,%11010111 .db %01100110,%10101010 .db %00111101,%01010111 ENEMY21: .db 2,1,16 .db %00000110,%01100000 .db %00001101,%01011000 .db %00001111,%00110100 .db %00000110,%00011110 .db %01010000,%00001101 .db %10101000,%00000111 .db %11111100,%00011111 .db %10101011,%11111101 .db %11111010,%11011011 .db %01110111,%10111011 .db %00101101,%11110101 .db %00001111,%11110110 .db %00011010,%10111101 .db %00110001,%00011001 .db %01100011,%00011010 .db %11000110,%00110000 ENEMY22: .db 2,1,16 .db %10001000,%01010000 .db %01010000,%11100100 .db %10001001,%00001000 .db %01101111,%00110100 .db %00111111,%11000001 .db %01111111,%11100010 .db %01111111,%11101101 .db %11100111,%11111000 .db %11000011,%11110101 .db %11011011,%11110000 .db %11011011,%11110110 .db %11011011,%11110000 .db %01100111,%11110110 .db %01111111,%11101001 .db %00111111,%11000100 .db %00001111,%00100010 ENEMY23: .db 2,1,16 .db %01111100,%00001100 .db %10101010,%00001100 .db %11000110,%01111111 .db %10010010,%01111111 .db %01010100,%00001100 .db %00111000,%00011100 .db %11101100,%01101110 .db %11000110,%11101110 .db %10111111,%11011100 .db %11110011,%10101100 .db %11011111,%11001100 .db %11011011,%01001100 .db %11110011,%01001100 .db %11110111,%10001100 .db %10111111,%00001100 .db %11101111,%00001100 ENEMY24: .db 2,1,16 .db %01111111,%11000100 .db %11100111,%01101000 .db %11010011,%01101000 .db %01011011,%11001000 .db %00100100,%00001100 .db %00111100,%10001110 .db %00000011,%00000110 .db %00000111,%00100011 .db %00100111,%01100011 .db %01100111,%00001011 .db %11000111,%00110011 .db %11000011,%10000110 .db %11010000,%11001000 .db %11011000,%00100010 .db %11101011,%11111110 .db %01111100,%11111100 ENEMY25: .db 2,1,16 .db %01110011,%11011110 .db %11000000,%01010011 .db %10011111,%11111000 .db %10110010,%00001101 .db %00100111,%11100101 .db %10101100,%00110100 .db %10101001,%10011111 .db %11100010,%11010001 .db %00001011,%01000111 .db %11111001,%10010101 .db %10101100,%00110100 .db %10100111,%11100101 .db %00110000,%01001101 .db %10011111,%11111001 .db %11000101,%00000011 .db %01111101,%11100110 BlankEnemy: .db 2,1,16 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 .db %00000000, %00000000 EnemyDead: .db 2,1,16 .db %10001010, %10100100 .db %01010110, %10101000 .db %00101101, %11001001 .db %01110101, %11010010 .db %10011111, %11100100 .db %01101111, %11011010 .db %10011111, %11100101 .db %01101111, %11111010 .db %00111111, %11111100 .db %01101111, %11110011 .db %11011111, %11001100 .db %00111101, %11110010 .db %11110110, %10101100 .db %00101011, %11010010 .db %01010010, %10101000 .db %00000101, %00100000 Leader1: .db 3,1,23 .db %10001001,%00000000,%10100000 .db %00010000,%00111100,%00001100 .db %01000100,%01000010,%01011010 .db %00010000,%11011001,%00011110 .db %10000001,%00111101,%11001100 .db %00001011,%01110101,%01100000 .db %01010010,%11101100,%10110001 .db %10000011,%11111101,%11010100 .db %00100101,%11111001,%01110000 .db %10000101,%11110010,%10110010 .db %00001110,%11100101,%11010001 .db %00011111,%00001111,%01110000 .db %00111110,%10011110,%10110100 .db %01111010,%00111101,%11010000 .db %11110010,%01111001,%01110000 .db %10100010,%11110111,%10100000 .db %01000000,%10100101,%01001000 .db %00000010,%01001011,%11101010 .db %00000001,%00011011,%10000000 .db %00000000,%11001111,%00000000 .db %00000000,%11011001,%00000000 .db %00000000,%01111111,%10000000 .db %00000000,%11010101,%10000000 Leader2: .db 3,1,23 .db %01001000, %11100100, %00100000 .db %01100001, %11110010, %01100000 .db %01110010, %11101000, %11100000 .db %00011010, %10101000, %10100000 .db %00101001, %00011010, %11000000 .db %10101001, %01010001, %01000000 .db %00101000, %10100101, %10010000 .db %10010101, %11110001, %10100000 .db %00101110, %11101111, %00000000 .db %01011011, %01010110, %01000000 .db %00011001, %01011001, %00010000 .db %00010101, %11010110, %00101000 .db %00011010, %00000101, %00010000 .db %00010001, %01011110, %10000000 .db %10001110, %00010001, %10000000 .db %00000111, %01000110, %10000000 .db %00100100, %01100000, %01010000 .db %10000011, %10001010, %01000000 .db %00010000, %11010010, %10000000 .db %00000000, %00110101, %10000000 .db %00000000, %00011100, %10000000 .db %00000000, %00000110, %10000000 .db %00000000, %00000001, %11000000 Leader5: .db 4,1,23 .db %11111100,%00110001,%01010100,%00100000 .db %00001000,%00101000,%11111001,%00010010 .db %11110001,%00010100,%10101000,%10001001 .db %01010000,%10001010,%01110000,%00000000 .db %10010000,%00000101,%01111111,%10000010 .db %00110100,%10000010,%11011101,%10001001 .db %01010010,%01000001,%11011010,%10100100 .db %10010000,%00100000,%10101101,%10010010 .db %00110001,%00001111,%11111111,%00000000 .db %01010101,%10110000,%01011111,%10000000 .db %10010111,%11010101,%10110100,%11110010 .db %00110101,%00100010,%01011100,%00111001 .db %01010011,%11001100,%01011001,%00101100 .db %10010010,%10000100,%11110010,%10110100 .db %00110010,%01110001,%11100110,%01100100 .db %01010010,%01001101,%00100010,%10011010 .db %10010010,%10001011,%11011110,%01010110 .db %00110011,%00001010,%10100011,%01101010 .db %01010000,%00011101,%10100011,%01100101 .db %11110000,%00010100,%11000010,%11010011 .db %00001000,%00011000,%11000110,%00100001 .db %11111000,%00011000,%10000100,%00100000 .db %11111100,%00101001,%01001010,%01010000 Leader3: .db 9,1,19 .db %00000001,%11000000,%00001110,%00001111,%11111100,%00011100,%00000000,%00000000,%00000000 .db %00000010,%10110000,%00011011,%00011010,%10110110,%00110110,%00000000,%01100000,%00000000 .db %00000101,%11101110,%00010101,%00110101,%11001011,%00101010,%00000101,%11000000,%00000000 .db %00001011,%10111001,%11011111,%01101001,%10101101,%10010110,%00011010,%01111000,%00000000 .db %00010010,%11010100,%10111111,%10001010,%01010010,%10111110,%01100100,%10011100,%00000000 .db %00001011,%10101011,%01101111,%11101010,%11010010,%11111111,%10011000,%11110110,%00000000 .db %00101101,%01011000,%11000111,%01001100,%11101100,%01111110,%00100001,%11101011,%00000000 .db %00110111,%10101111,%00100110,%10100100,%11100100,%00111000,%01000011,%01100100,%10000000 .db %00011101,%00011010,%11011001,%00101101,%01011110,%01110001,%10001110,%10010010,%01100000 .db %01100111,%00001101,%00111101,%01001101,%01111001,%00010010,%01110110,%10010101,%00110000 .db %00101010,%00000110,%10000110,%01010101,%11111111,%10001101,%10001101,%00001110,%10011000 .db %01001100,%00000011,%01010010,%10100010,%11011010,%01011110,%00010110,%00001101,%01001000 .db %01010100,%00000001,%10101100,%10100011,%10001110,%11111000,%00101100,%00000100,%10100100 .db %01111000,%00000001,%01010111,%01000010,%01010010,%00100000,%11001000,%00000100,%11011010 .db %11101000,%00000000,%10110001,%01000000,%10000000,%00011001,%00010000,%00000011,%00101101 .db %10111000,%00000000,%01011000,%10000010,%10001010,%00001110,%00010000,%00000011,%01100110 .db %01010000,%00000000,%00110100,%10000010,%00001000,%00000101,%11100000,%00000001,%10110011 .db %01010000,%00000000,%00011011,%00000000,%00000000,%00000000,%01000000,%00000001,%00001001 .db %01010000,%00000000,%00001110,%00000000,%00000000,%00000000,%10100000,%00000000,%11000100 Leader6: .db 9,1,19 .db %00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%11111000,%00000000,%00000001 .db %00001111,%00000000,%00000000,%00000000,%00000000,%00000011,%11111110,%00000000,%00000011 .db %00011110,%11000000,%00000000,%00000000,%00000000,%00000101,%00110011,%10000000,%00000101 .db %00111111,%01110000,%00000000,%00101111,%00000000,%00001110,%11001111,%11000000,%00001011 .db %01111101,%11111000,%00000001,%11111101,%10000000,%00010100,%10011111,%11100000,%00010101 .db %01101110,%01111111,%00000011,%11101110,%11000000,%00111000,%10111110,%11110000,%00111010 .db %10111011,%11101111,%10000111,%11101011,%11000000,%00110010,%01111110,%10110000,%01111110 .db %10011111,%11111110,%01111111,%10100111,%11110000,%11110110,%11111110,%10111110,%01100100 .db %10101111,%00111111,%11111110,%01110000,%11111001,%11100111,%11110111,%01011111,%11011100 .db %01111110,%10001111,%01101111,%11111111,%11111111,%11110111,%11000001,%10101111,%11010100 .db %00110101,%11000111,%11101010,%11111011,%11011111,%11101001,%10000001,%11111001,%11101000 .db %00011111,%11110011,%11010111,%11110011,%11101111,%11100011,%00000000,%11110011,%00111000 .db %00010111,%11011000,%11111011,%10000000,%10110001,%11001110,%00000000,%01101100,%01110000 .db %00000011,%11011000,%00111110,%00000000,%01011111,%11111100,%00000000,%00011001,%11100000 .db %00000011,%00111000,%00000000,%00000000,%00111101,%11110000,%00000000,%00000111,%10000000 .db %00000011,%11111100,%00000000,%00000000,%00011111,%11000000,%00000000,%00000000,%00000000 .db %00000000,%11111100,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000 .db %00000000,%00111110,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000 .db %00000000,%00000110,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000 Leader7: .db 9,1,19 .db %01000000,%00001000,%00000000,%00000000,%11111111,%00000000,%00000000,%00010000,%00000010 .db %10000001,%00011100,%01000000,%00000001,%11111111,%10000000,%00000010,%00111000,%10000001 .db %10000011,%10001000,%11100100,%00000011,%11111111,%11000000,%00100111,%00010001,%11000001 .db %11110001,%00000000,%01001110,%00000011,%11011011,%11000000,%01110010,%00000000,%10001111 .db %01011000,%00000000,%00000100,%01000111,%01111110,%11100010,%00100000,%00000000,%00011010 .db %01001100,%00011110,%00000000,%11100101,%11011011,%10100111,%00000000