rem Generated 17/01/2021 21:53:36 by Visual bB Version 1.0.0.554 rem ********************************** rem * * rem * * rem * * rem * * rem * * rem ********************************** set kernel DPC+ set tv ntsc set smartbranching on set kernel_options collision(playfield,player1) goto Main_setup bank2 bank 2 Main_setup a = 10 e = 10 b = 0 : f = 0 dim Anim_P0 = a dim P0_Action = b dim P0_L_R = player0x.c dim P1_L_R = player1x.d dim Anim_P1 = e dim P1_Action = f dim P2_L_R = player2x.g dim P3_L_R = player3x.h const pfscore = 1 player0x = 30 : player0y = 90 player1x = 38: player1y = 90 player2x = 78 : player2y = 90 player3x = 70 : player3y = 90 pfscore1 = 255 pfscore2 = 255 Main pfscorecolor = $0E ;*************************************************************** ; ; 88 rows that are 2 scanlines high. ; DF6FRACINC = 255 ; Background colors. DF4FRACINC = 255 ; Playfield colors. DF0FRACINC = 128 ; Column 0. DF1FRACINC = 128 ; Column 1. DF2FRACINC = 128 ; Column 2. DF3FRACINC = 128 ; Column 3. scorecolors: $3E $3C $3A $38 $36 $36 $34 $32 end playfield: .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. .X....X..X....X..X....X..X....X. .XXXXXX..XXXXXX..XXXXXX..XXXXXX. ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ .......XXXXXXXXXXXXXXXXXX....... ......XXXXXXXXXXXXXXXXXXXX...... .....XXXXXXXXXXXXXXXXXXXXXX..... ....XXXXXXXXXXXXXXXXXXXXXXXX.... ...XXXXXXXXXXXXXXXXXXXXXXXXXX... ..XXXXXXXXXXXXXXXXXXXXXXXXXXXX.. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ end pfcolors: $0E $0C $0A $08 $06 $1E $1C $1A $18 $16 $2E $2C $2A $28 $26 $3E $3C $3A $38 $36 $4E $4C $4A $48 $46 $5E $5C $5A $58 $56 $6E $6C $6A $68 $66 $7E $7C $7A $78 $76 $9E $9C $9A $98 $96 $AE $AC $AA $A8 $A6 $BE $BC $BA $B8 $B6 $CE $CC $CA $C8 $C6 $DE $DC $DA $D8 $D6 $EE $EC $EA $E8 $E6 $3E $3C $3A $38 $36 $4E $4C $4A $48 $46 $5E $5C $5A $58 $56 $6E $6C $6A $68 $66 $7E $7C $7A $78 $76 $8E $8C $8A $88 $86 $9E $9C $9A $98 $96 $BE $BC $BA $B8 $B6 $CE $CC $CA $C8 $C6 $FE $FC $FA $F8 $F6 end bkcolors: $80 $82 $84 $86 $88 $8A $8C $8E $80 $82 $84 $86 $88 $8A $8C $8E $80 $82 $84 $86 $88 $8A $8C $8E $80 $82 $84 $86 $88 $8A $8C $8E $80 $82 $84 $86 $88 $8A $8C $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $24 $24 $24 $24 $24 $24 $10 $12 $12 $12 $12 $14 $14 $14 $14 $16 $16 $16 $16 $18 $18 $18 $18 $26 $26 $26 $26 $26 $26 $26 end player0color: $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E end player1color: $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E end player2color: $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E end player3color: $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E $0E end rem P1 Walk Frame 1 if Anim_P0 = 10 && P0_Action = 0 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00001111 %00001111 %00011011 %00010101 %00010101 %00010101 %00000100 %00011111 %00011111 %00011111 %00011111 %00011111 %00111110 %01111110 %01111100 %01111000 %00111000 %11011000 %11011000 %11100000 %01100000 %01100000 %01110000 end if Anim_P0 = 10 && P0_Action = 0 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11100000 %10111000 %01011000 %01011100 %01011100 %01010000 %01001000 %11111000 %11111100 %11111100 %11111110 %01111110 %00111110 %00011110 %00011110 %00011110 %00011110 %00011110 %00011110 %00011110 %00011110 %00001110 %00001110 %00001111 end rem P1 Walk Frame 2 if Anim_P0 = 20 && P0_Action = 0 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00001111 %00001111 %00001011 %00010101 %00010101 %00010101 %00000100 %00001111 %00001111 %00001111 %00000111 %00000111 %00000111 %00000111 %00000111 %00001111 %00011111 %00001110 %00010110 %00110100 %00111000 %00011000 %00001100 end if Anim_P0 = 20 && P0_Action = 0 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11100000 %10111000 %01011000 %01011000 %01011100 %01011100 %11100000 %11111000 %01111000 %01111000 %10111000 %10111100 %10111100 %10111100 %10111100 %10111110 %10011110 %00011110 %00011110 %00011110 %00011110 %00011100 %00011100 %00011110 end rem P1 Prepare Attack if Anim_P0 = 10 && P0_Action = 1 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00000111 %00000111 %00001111 %00001111 %00001111 %00011111 %00000000 %00011110 %00011111 %00011111 %00011111 %00011111 %00011110 %00011110 %00011110 %00111100 %00111100 %01001000 %11110000 %11110000 %01110000 %01111000 %00011000 end if Anim_P0 = 10 && P0_Action = 1 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11111000 %11111000 %11110000 %11011000 %10100100 %01111110 %01111110 %11110110 %11101110 %00011110 %10011110 %00011110 %00011110 %00011110 %00001100 %00010100 %00111000 %00111000 %00111100 %00011110 %00000000 %00000000 %00000000 %00000000 end rem P1 Punch if Anim_P0 = 30 && P0_Action = 1 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000100 %00000011 %00000111 %00000111 %00000111 %00001111 %00001111 %00001111 %00001111 %00001111 %00001011 %00000011 %00000011 %00000111 %00000111 %00000111 %00000000 %00001111 %00001111 %00011111 %00011111 %00011111 %00011111 %00000000 %00011111 %00011111 %00011111 %00011110 %00011110 %00111110 %01111100 %01111000 %01111000 %00111000 %11010000 %11010000 %11100000 %01100000 %01100000 %01100000 end if Anim_P0 = 30 && P0_Action = 1 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100000 %01100000 %10000000 %11111000 %11111111 %11111111 %11111111 %11111111 %11111111 %11100111 %11111000 %11111000 %11111000 %11111000 %11111000 %11110000 %00000000 %11111000 %11111100 %11011100 %11011100 %10111100 %11111100 %01100000 %11111100 %11111100 %00111110 %00111110 %00011110 %00011110 %00011110 %00011110 %00001110 %00001110 %00001110 %00001110 %00000000 %00001110 %00001110 %00001111 end rem P1 Prepare Attack if Anim_P0 = 50 && P0_Action = 1 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00000111 %00000111 %00001111 %00001111 %00001111 %00011111 %00000000 %00011110 %00011111 %00011111 %00011111 %00011111 %00011110 %00011110 %00011110 %00111100 %00111100 %01001000 %11110000 %11110000 %01110000 %01111000 %00011000 end if Anim_P0 = 50 && P0_Action = 1 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11111000 %11111000 %11110000 %11011000 %10100100 %01111110 %01111110 %11110110 %11101110 %00011110 %10011110 %00011110 %00011110 %00011110 %00001100 %00010100 %00111000 %00111000 %00111100 %00011110 %00000000 %00000000 %00000000 %00000000 end rem P1 Prepare Attack_Kick if Anim_P0 = 10 && P0_Action = 2 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00000111 %00000111 %00001111 %00001111 %00001111 %00011111 %00000000 %00011110 %00011111 %00011111 %00011111 %00011111 %00011110 %00011110 %00011110 %00111100 %00111100 %01001000 %11110000 %11110000 %01110000 %01111000 %00011000 end if Anim_P0 = 10 && P0_Action = 2 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11111000 %11111000 %11110000 %11011000 %10100100 %01111110 %01111110 %11110110 %11101110 %00011110 %10011110 %00011110 %00011110 %00011110 %00001100 %00010100 %00111000 %00111000 %00111100 %00011110 %00000000 %00000000 %00000000 %00000000 end rem P1 HiKick if Anim_P0 = 30 && P0_Action = 2 then player0: %00000000 %00000001 %00000011 %00000001 %00000110 %00011110 %00111110 %00111111 %01111111 %01111111 %01111101 %00011011 %01111001 %11101011 %11110110 %11110110 %11110110 %11101101 %00001101 %00111011 %00111011 %00111011 %00111111 %00111111 %00010111 %00010111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000011 %00000011 %00000011 %00000001 %00000001 %00000001 %00000001 %00000000 %00000001 %00000001 %00000011 %00000011 end if Anim_P0 = 30 && P0_Action = 2 then player1: %00000000 %10000000 %11000000 %11100000 %11100000 %11110000 %10000000 %01100000 %01000001 %10000111 %10000111 %10011111 %10111111 %10111111 %01111111 %11111111 %11111110 %11111100 %11111000 %11111000 %11110000 %11100000 %11100000 %11000000 %11000000 %10000000 %01000000 %11000000 %11000000 %11000000 %11000000 %11000000 %11000000 %11000000 %11000000 %11000000 %11100000 %11100000 %11100000 %11100000 %11100000 %11100000 %11100000 %00100000 %11000000 %11100000 %11100000 %11000000 end rem P1 Prepare Attack if Anim_P0 = 50 && P0_Action = 2 then player0: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00000111 %00000111 %00001111 %00001111 %00001111 %00011111 %00000000 %00011110 %00011111 %00011111 %00011111 %00011111 %00011110 %00011110 %00011110 %00111100 %00111100 %01001000 %11110000 %11110000 %01110000 %01111000 %00011000 end if Anim_P0 = 50 && P0_Action = 2 then player1: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11111000 %11111000 %11110000 %11011000 %10100100 %01111110 %01111110 %11110110 %11101110 %00011110 %10011110 %00011110 %00011110 %00011110 %00001100 %00010100 %00111000 %00111000 %00111100 %00011110 %00000000 %00000000 %00000000 %00000000 end rem P1 frame counter for walking if P0_Action = 0 && a > 20 then a = 0 rem frame counter for punching if P0_Action = 1 && a > 70 then a = 0 : P0_Action = 0 : a = 10 if P0_Action = 1 then a = a + 1 rem create missile0 as arm when punching if P0_Action = 1 && Anim_P0 = 30 then missile0x = player1x + 9 : missile0y = player1y + 12 missile0height = 5 NUSIZ0 = $20 if P0_Action = 0 then missile0x = 255 : missile0y = 255 if Anim_P0 = 50 then missile0x = 255 : missile0y = 255 rem P1 Walk Frame 1 if Anim_P1 = 10 && P1_Action = 0 then player2: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00001111 %00001111 %00011011 %00010101 %00010101 %00010101 %00000100 %00011111 %00011111 %00011111 %00011111 %00011111 %00111110 %01111110 %01111100 %01111000 %00111000 %11011000 %11011000 %11100000 %01100000 %01100000 %01110000 end if Anim_P1 = 10 && P1_Action = 0 then player3: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11100000 %10111000 %01011000 %01011100 %01011100 %01010000 %01001000 %11111000 %11111100 %11111100 %11111110 %01111110 %00111110 %00011110 %00011110 %00011110 %00011110 %00011110 %00011110 %00011110 %00011110 %00001110 %00001110 %00001111 end rem P1 Walk Frame 2 if Anim_P1 = 20 && P1_Action = 0 then player2: %00000001 %00000011 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000111 %00000011 %00000001 %00000111 %00000110 %00001110 %00001111 %00011111 %00011111 %00011011 %00111100 %00111110 %00111110 %00111110 %00111110 %00011110 %00000111 %00001111 %00001111 %00001011 %00010101 %00010101 %00010101 %00000100 %00001111 %00001111 %00001111 %00000111 %00000111 %00000111 %00000111 %00000111 %00001111 %00011111 %00001110 %00010110 %00110100 %00111000 %00011000 %00001100 end if Anim_P1 = 20 && P1_Action = 0 then player3: %11110000 %11100000 %11100000 %11100000 %00100000 %10100000 %11110000 %11111000 %11100110 %11100111 %11100111 %11000111 %11100111 %11010111 %01011111 %00111111 %11111111 %10011111 %10111111 %00001111 %00001110 %00011100 %00110000 %11110000 %11100000 %10111000 %01011000 %01011000 %01011100 %01011100 %11100000 %11111000 %01111000 %01111000 %10111000 %10111100 %10111100 %10111100 %10111100 %10111110 %10011110 %00011110 %00011110 %00011110 %00011110 %00011100 %00011100 %00011110 end NUSIZ2{3} = 1 NUSIZ3{3} = 1 rem frame counter for HiKick if P0_Action = 2 && a > 70 then a = 0 : P0_Action = 0 : a = 10 if P0_Action = 2 then a = a + 1 rem create missile0 as foot when hi kicking if P0_Action = 2 && Anim_P0 = 30 then missile0x = player1x + 9 : missile0y = player1y + 8 rem P1 frame counter for walking if P1_Action = 0 && e > 20 then e = 0 rem frame counter for punching if P1_Action = 1 && e > 70 then e = 0 : P1_Action = 0 : e = 10 if P1_Action = 1 then e = e + 1 rem create missile0 as arm when punching if P1_Action = 1 && Anim_P1 = 30 then missile1x = player2x - 9 : missile1y = player2y + 12 missile1height = 5 NUSIZ1 = $20 if P1_Action = 0 then missile1x = 255 : missile1y = 255 if Anim_P1 = 50 then missile1x = 255 : missile1y = 255 drawscreen rem P1 walking commands if P0_Action = 0 && joy0left then P0_L_R = P0_L_R - 0.30 : P1_L_R = P1_L_R - 0.30 : a = a + 1 if P0_Action = 0 && joy0right then P0_L_R = P0_L_R + 0.30 : P1_L_R = P1_L_R + 0.30 : a = a + 1 rem P1 punch command if P0_Action = 0 && !joy0left && joy0fire then Anim_P0 = 10 : P0_Action = 1 rem hi kick command if P0_Action = 0 && joy0left && joy0fire then Anim_P0 = 10 : P0_Action = 2 rem P2 walking commands if P1_Action = 0 && joy1left then P2_L_R = P2_L_R - 0.30 : P3_L_R = P3_L_R - 0.30 : e = e + 1 if P1_Action = 0 && joy1right then P2_L_R = P2_L_R + 0.30 : P3_L_R = P3_L_R + 0.30 : e = e + 1 goto Main