From a80fa9e014dcd79c52853b23701c9793fc49aff8 Mon Sep 17 00:00:00 2001 From: droniu Date: Thu, 13 May 2021 20:36:58 +0200 Subject: [PATCH] Removed inspirations --- Example/background.chr | Bin 4096 -> 0 bytes Example/example.cdl | Bin 40960 -> 0 bytes Example/example.cfg | 19 - Example/example.nes | Bin 40976 -> 0 bytes Example/example.nes.ram.nl | 30 - Example/example.o | Bin 26908 -> 0 bytes Example/example.s | 785 ------ Example/sprite.chr | Bin 4096 -> 0 bytes Tic-Tac-Toe_v2/Tic-Tac-Toe.nes | Bin 40976 -> 0 bytes Tic-Tac-Toe_v2/board.nam | Bin 1024 -> 0 bytes Tic-Tac-Toe_v2/final.nam | Bin 1024 -> 0 bytes Tic-Tac-Toe_v2/graphics.chr | Bin 8192 -> 0 bytes Tic-Tac-Toe_v2/main.asm | 4644 -------------------------------- Tic-Tac-Toe_v2/main.prg | Bin 32768 -> 0 bytes Tic-Tac-Toe_v2/makefile | 6 - Tic-Tac-Toe_v2/memory.cfg | 14 - Tic-Tac-Toe_v2/title.nam | Bin 1024 -> 0 bytes Tic-Tac-Toe_v2/ttxo.cdl | Bin 40960 -> 0 bytes Tic-Tac-Toe_v2/ttxo.hdr | Bin 16 -> 0 bytes Tic-Tac-Toe_v2/ttxo.nsf | Bin 6736 -> 0 bytes Tic-Tac-Toe_v2/ttxo.pal | Bin 32 -> 0 bytes 21 files changed, 5498 deletions(-) delete mode 100644 Example/background.chr delete mode 100644 Example/example.cdl delete mode 100644 Example/example.cfg delete mode 100644 Example/example.nes delete mode 100644 Example/example.nes.ram.nl delete mode 100644 Example/example.o delete mode 100644 Example/example.s delete mode 100644 Example/sprite.chr delete mode 100644 Tic-Tac-Toe_v2/Tic-Tac-Toe.nes delete mode 100644 Tic-Tac-Toe_v2/board.nam delete mode 100644 Tic-Tac-Toe_v2/final.nam delete mode 100644 Tic-Tac-Toe_v2/graphics.chr delete mode 100644 Tic-Tac-Toe_v2/main.asm delete mode 100644 Tic-Tac-Toe_v2/main.prg delete mode 100644 Tic-Tac-Toe_v2/makefile delete mode 100644 Tic-Tac-Toe_v2/memory.cfg delete mode 100644 Tic-Tac-Toe_v2/title.nam delete mode 100644 Tic-Tac-Toe_v2/ttxo.cdl delete mode 100644 Tic-Tac-Toe_v2/ttxo.hdr delete mode 100644 Tic-Tac-Toe_v2/ttxo.nsf delete mode 100644 Tic-Tac-Toe_v2/ttxo.pal diff --git a/Example/background.chr b/Example/background.chr deleted file mode 100644 index b585044b670c56aa3edf02a2ee6e19f21d42d03d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQzKn4Gy09BNM0Va+~&ul#W94I<7t#0q_=l>a;R3s!+oG{fN-U|eW|D&5b${!7Z o(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@RpnV7c06T$0{{R30 diff --git a/Example/example.cdl b/Example/example.cdl deleted file mode 100644 index ca5ea44f24f65b3d8acaaf654c430de8c51b16e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40960 zcmeIu0Sy2E0K%a6Pi+o2h(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd t0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0Rsm92L_-300961 diff --git a/Example/example.cfg b/Example/example.cfg deleted file mode 100644 index 8342b4d..0000000 --- a/Example/example.cfg +++ /dev/null @@ -1,19 +0,0 @@ -MEMORY { - ZP: start = $00, size = $0100, type = rw, file = ""; - OAM: start = $0200, size = $0100, type = rw, file = ""; - RAM: start = $0300, size = $0500, type = rw, file = ""; - HDR: start = $0000, size = $0010, type = ro, file = %O, fill = yes, fillval = $00; - PRG: start = $8000, size = $8000, type = ro, file = %O, fill = yes, fillval = $00; - CHR: start = $0000, size = $2000, type = ro, file = %O, fill = yes, fillval = $00; -} - -SEGMENTS { - ZEROPAGE: load = ZP, type = zp; - OAM: load = OAM, type = bss, align = $100; - BSS: load = RAM, type = bss; - HEADER: load = HDR, type = ro; - CODE: load = PRG, type = ro, start = $8000; - RODATA: load = PRG, type = ro; - VECTORS: load = PRG, type = ro, start = $FFFA; - TILES: load = CHR, type = ro; -} diff --git a/Example/example.nes b/Example/example.nes deleted file mode 100644 index 9142792e4c1d386e058848d895e87f0a99754c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40976 zcmeIx!D}2<90%|>@6F8a%&yM1r0J?yo)TIYdnh6`Am~sKHevB1f+raeWaA$oJ=xi< zQ$paCJyb}9g)nqVU!ma1TVNp=nw;j~LGaQ;nQST8wGtz>u>NKz+k{HNgY@)$EN_0l z_j~i+ywA*j{Lv?`a>HQLc2P6Mq%x#B;j5ajeRb0RB_4l&mP`88{?;sJ-?2V3`i%FP z=rgm=tUj~*tTaqBJ&viyht$&jV*WBM*Sgect~6Jh2^)#lgHRh0%Z!AlqO}`t^R!BP z8Zu^AIOQ?BDx~IW#@G3+x4G0GDqCK)X~G6GRY?x-%HCeg?uj2>-(Z4j!y^|e-xIxE z%_5Q54dLW#B&M=tVo|409c)B(*1p-k)%JaQ8cxshBuI>(jM0-o^MjnWUR_*VbR=!D z>gFvftym?>0y@nNQ4|SbIIXs=Ql7T+?urQL#Mi~j8WVTgPrGkLpba(a(~)QWxZJ!w z>o>%<(f(>D{Ua&|bjBYq6YAuQ@`KAdj2wM2a^=IWd=$zrI!U=v9@+9txAj{``dvzE zBO&+maY=!hkN6ZE%Y%@DnLIElIGG2Wf`vRVDEPcvEZgdLw%o+s9`#K9Fmi)znlMVX zoFH=o$vgBk#r|fxA7o}`CD!B)7Fmgz+KIhjM0P;1W@J$yf9@s@@!d*X>ThaOp6)yy zj4G4SsJd0zs@|wvuWF0RS!EL1hhaWSQz}_8si+*8cBJFPV+MA}4W+pg3xN zy2PEoZz;x=$@8L6Wv;56-jKnS#g)U=OPpR6=k!Ogxek@f^+3JM6KDRusRUOQ3TaVQ z;>zPe{!)H#AM8&0csbpR{UX%Hdbt^wWu?=O%QUnghIi||KNrNE!E7(n zbN{-%zGO7SPP#X_E~gJ@T{Er~i`ADtT}~eb-ig!idCn^h&p7sm$7<)i`djnf%-p-) zYj3~r9e?wk>AxFS2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG|gzX^O6vhert*}3C`_Pp_F{qVZh+1#aU?aOaA ze%&3j3v>1Q+y!=6KZrIrsBMm)T^Bh7AOHafKmY;|fB*y_009U<00J*w;C%Diy1yQ> m^Is1J;b8FM9{@W-00Izz00bZa0SG_<0uX=z1R(Ig3;Y8LBBZ7O diff --git a/Example/example.nes.ram.nl b/Example/example.nes.ram.nl deleted file mode 100644 index 0a951a9..0000000 --- a/Example/example.nes.ram.nl +++ /dev/null @@ -1,30 +0,0 @@ -$2000#PPU_CTRL# -$2001#PPU_MASK# -$2002#PPU_STATUS# -$2003#PPU_OAM_ADDR# -$2004#PPU_OAM_DATA# -$2005#PPU_SCROLL# -$2006#PPU_ADDRESS# -$2007#PPU_DATA# -$4000#SQ1_VOL# -$4001#SQ1_SWEEP# -$4002#SQ1_LO# -$4003#SQ1_HI# -$4004#SQ2_VOL# -$4005#SQ2_SWEEP# -$4006#SQ2_LO# -$4007#SQ2_HI# -$4008#TRI_LINEAR# -$400A#TRI_LO# -$400B#TRI_HI# -$400C#NOISE_VOL# -$400E#NOISE_LO# -$400F#NOISE_HI# -$4010#DMC_FREQ# -$4011#DMC_RAW# -$4012#DMC_START# -$4013#DMC_LEN# -$4014#OAM_DMA# -$4015#APU_STATUS# -$4016#JOY1# -$4017#JOY2_FRAME# diff --git a/Example/example.o b/Example/example.o deleted file mode 100644 index 6e3625653646694b959c9996aa5cb4d9f0c327d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26908 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 EFT5H#9smFU diff --git a/Example/example.s b/Example/example.s deleted file mode 100644 index 80b2a3a..0000000 --- a/Example/example.s +++ /dev/null @@ -1,785 +0,0 @@ -; -; example.s -; Brad Smith (rainwarrior), 4/06/2014 -; http://rainwarrior.ca -; -; This is intended as an introductory example to NES programming with ca65. -; It covers the basic use of background, sprites, and the controller. -; This does not demonstrate how to use sound. -; -; This is not intended as a ready-made game. It is only a very minimal -; playground to assist getting started in NES programming. The idea here is -; to get you past the most difficult parts of a minimal NES program setup -; so that you can experiment from an almost blank slate. -; -; To use your own graphics, replace the two 4k tile banks provided. -; They are named "background.chr" and "sprite.chr". -; -; The reset and nmi routines are provided as a simple working example of -; these things. Writing these from scratch is a more advanced topic, so they -; will not be fully explained here. -; -; Under "drawing utilities" are some very primitive routines for working -; with the NES graphics. See the "main" section for examples of how to use them. -; -; Finally at the bottom you will find the "main" section that provides -; a small example program. A cursor is shown. Pressing the d-pad will move -; - pressing the d-pad will move the cursor around the screen -; - pressing B will draw a tile to the screen -; - pressing A will draw several tiles to the screen -; - pressing SELECT will reset the background -; - holding START will demonstrate scrolling -; -; Please note that this example code is intended to be simple, not necessarily -; efficient. I have tried to avoid optimization in favour of easier to understand code. -; -; You may notice some odd behaviour when using the A button around the edges of the screen. -; I will leave it as an exercise for the curious to understand what is going on. -; - -; -; iNES header -; - -.segment "HEADER" - -INES_MAPPER = 0 ; 0 = NROM -INES_MIRROR = 1 ; 0 = horizontal mirroring, 1 = vertical mirroring -INES_SRAM = 0 ; 1 = battery backed SRAM at $6000-7FFF - -.byte 'N', 'E', 'S', $1A ; ID -.byte $02 ; 16k PRG chunk count -.byte $01 ; 8k CHR chunk count -.byte INES_MIRROR | (INES_SRAM << 1) | ((INES_MAPPER & $f) << 4) -.byte (INES_MAPPER & %11110000) -.byte $0, $0, $0, $0, $0, $0, $0, $0 ; padding - -; -; CHR ROM -; - -.segment "TILES" -.incbin "background.chr" -.incbin "sprite.chr" - -; -; vectors placed at top 6 bytes of memory area -; - -.segment "VECTORS" -.word nmi -.word reset -.word irq - -; -; reset routine -; - -.segment "CODE" -reset: - sei ; mask interrupts - lda #0 - sta $2000 ; disable NMI - sta $2001 ; disable rendering - sta $4015 ; disable APU sound - sta $4010 ; disable DMC IRQ - lda #$40 - sta $4017 ; disable APU IRQ - cld ; disable decimal mode - ldx #$FF - txs ; initialize stack - ; wait for first vblank - bit $2002 - : - bit $2002 - bpl :- - ; clear all RAM to 0 - lda #0 - ldx #0 - : - sta $0000, X - sta $0100, X - sta $0200, X - sta $0300, X - sta $0400, X - sta $0500, X - sta $0600, X - sta $0700, X - inx - bne :- - ; place all sprites offscreen at Y=255 - lda #255 - ldx #0 - : - sta oam, X - inx - inx - inx - inx - bne :- - ; wait for second vblank - : - bit $2002 - bpl :- - ; NES is initialized, ready to begin! - ; enable the NMI for graphical updates, and jump to our main program - lda #%10001000 - sta $2000 - jmp main - -; -; nmi routine -; - -.segment "ZEROPAGE" -nmi_lock: .res 1 ; prevents NMI re-entry -nmi_count: .res 1 ; is incremented every NMI -nmi_ready: .res 1 ; set to 1 to push a PPU frame update, 2 to turn rendering off next NMI -nmt_update_len: .res 1 ; number of bytes in nmt_update buffer -scroll_x: .res 1 ; x scroll position -scroll_y: .res 1 ; y scroll position -scroll_nmt: .res 1 ; nametable select (0-3 = $2000,$2400,$2800,$2C00) -temp: .res 1 ; temporary variable - -.segment "BSS" -nmt_update: .res 256 ; nametable update entry buffer for PPU update -palette: .res 32 ; palette buffer for PPU update - -.segment "OAM" -oam: .res 256 ; sprite OAM data to be uploaded by DMA - -.segment "CODE" -nmi: - ; save registers - pha - txa - pha - tya - pha - ; prevent NMI re-entry - lda nmi_lock - beq :+ - jmp @nmi_end - : - lda #1 - sta nmi_lock - ; increment frame counter - inc nmi_count - ; - lda nmi_ready - bne :+ ; nmi_ready == 0 not ready to update PPU - jmp @ppu_update_end - : - cmp #2 ; nmi_ready == 2 turns rendering off - bne :+ - lda #%00000000 - sta $2001 - ldx #0 - stx nmi_ready - jmp @ppu_update_end - : - ; sprite OAM DMA - ldx #0 - stx $2003 - lda #>oam - sta $4014 - ; palettes - lda #%10001000 - sta $2000 ; set horizontal nametable increment - lda $2002 - lda #$3F - sta $2006 - stx $2006 ; set PPU address to $3F00 - ldx #0 - : - lda palette, X - sta $2007 - inx - cpx #32 - bcc :- - ; nametable update - ldx #0 - cpx nmt_update_len - bcs @scroll - @nmt_update_loop: - lda nmt_update, X - sta $2006 - inx - lda nmt_update, X - sta $2006 - inx - lda nmt_update, X - sta $2007 - inx - cpx nmt_update_len - bcc @nmt_update_loop - lda #0 - sta nmt_update_len -@scroll: - lda scroll_nmt - and #%00000011 ; keep only lowest 2 bits to prevent error - ora #%10001000 - sta $2000 - lda scroll_x - sta $2005 - lda scroll_y - sta $2005 - ; enable rendering - lda #%00011110 - sta $2001 - ; flag PPU update complete - ldx #0 - stx nmi_ready -@ppu_update_end: - ; if this engine had music/sound, this would be a good place to play it - ; unlock re-entry flag - lda #0 - sta nmi_lock -@nmi_end: - ; restore registers and return - pla - tay - pla - tax - pla - rti - -; -; irq -; - -.segment "CODE" -irq: - rti - -; -; drawing utilities -; - -.segment "CODE" - -; ppu_update: waits until next NMI, turns rendering on (if not already), uploads OAM, palette, and nametable update to PPU -ppu_update: - lda #1 - sta nmi_ready - : - lda nmi_ready - bne :- - rts - -; ppu_skip: waits until next NMI, does not update PPU -ppu_skip: - lda nmi_count - : - cmp nmi_count - beq :- - rts - -; ppu_off: waits until next NMI, turns rendering off (now safe to write PPU directly via $2007) -ppu_off: - lda #2 - sta nmi_ready - : - lda nmi_ready - bne :- - rts - -; ppu_address_tile: use with rendering off, sets memory address to tile at X/Y, ready for a $2007 write -; Y = 0- 31 nametable $2000 -; Y = 32- 63 nametable $2400 -; Y = 64- 95 nametable $2800 -; Y = 96-127 nametable $2C00 -ppu_address_tile: - lda $2002 ; reset latch - tya - lsr - lsr - lsr - ora #$20 ; high bits of Y + $20 - sta $2006 - tya - asl - asl - asl - asl - asl - sta temp - txa - ora temp - sta $2006 ; low bits of Y + X - rts - -; ppu_update_tile: can be used with rendering on, sets the tile at X/Y to tile A next time you call ppu_update -ppu_update_tile: - pha ; temporarily store A on stack - txa - pha ; temporarily store X on stack - ldx nmt_update_len - tya - lsr - lsr - lsr - ora #$20 ; high bits of Y + $20 - sta nmt_update, X - inx - tya - asl - asl - asl - asl - asl - sta temp - pla ; recover X value (but put in A) - ora temp - sta nmt_update, X - inx - pla ; recover A value (tile) - sta nmt_update, X - inx - stx nmt_update_len - rts - -; ppu_update_byte: like ppu_update_tile, but X/Y makes the high/low bytes of the PPU address to write -; this may be useful for updating attribute tiles -ppu_update_byte: - pha ; temporarily store A on stack - tya - pha ; temporarily store Y on stack - ldy nmt_update_len - txa - sta nmt_update, Y - iny - pla ; recover Y value (but put in Y) - sta nmt_update, Y - iny - pla ; recover A value (byte) - sta nmt_update, Y - iny - sty nmt_update_len - rts - -; -; gamepad -; - -PAD_A = $01 -PAD_B = $02 -PAD_SELECT = $04 -PAD_START = $08 -PAD_U = $10 -PAD_D = $20 -PAD_L = $40 -PAD_R = $80 - -.segment "ZEROPAGE" -gamepad: .res 1 - -.segment "CODE" -; gamepad_poll: this reads the gamepad state into the variable labelled "gamepad" -; This only reads the first gamepad, and also if DPCM samples are played they can -; conflict with gamepad reading, which may give incorrect results. -gamepad_poll: - ; strobe the gamepad to latch current button state - lda #1 - sta $4016 - lda #0 - sta $4016 - ; read 8 bytes from the interface at $4016 - ldx #8 - : - pha - lda $4016 - ; combine low two bits and store in carry bit - and #%00000011 - cmp #%00000001 - pla - ; rotate carry into gamepad variable - ror - dex - bne :- - sta gamepad - rts - -; -; main -; - -.segment "RODATA" -example_palette: -.byte $0F,$15,$26,$37 ; bg0 purple/pink -.byte $0F,$09,$19,$29 ; bg1 green -.byte $0F,$01,$11,$21 ; bg2 blue -.byte $0F,$00,$10,$30 ; bg3 greyscale -.byte $0F,$18,$28,$38 ; sp0 yellow -.byte $0F,$14,$24,$34 ; sp1 purple -.byte $0F,$1B,$2B,$3B ; sp2 teal -.byte $0F,$12,$22,$32 ; sp3 marine - -.segment "ZEROPAGE" -cursor_x: .res 1 -cursor_y: .res 1 -temp_x: .res 1 -temp_y: .res 1 - -.segment "CODE" -main: - ; setup - ldx #0 - : - lda example_palette, X - sta palette, X - inx - cpx #32 - bcc :- - jsr setup_background - ; center the cursor - lda #128 - sta cursor_x - lda #120 - sta cursor_y - ; show the screen - jsr draw_cursor - jsr ppu_update - ; main loop -@loop: - ; read gamepad - jsr gamepad_poll - ; respond to gamepad state - lda gamepad - and #PAD_START - beq :+ - jsr push_start - jmp @draw ; start trumps everything, don't check other buttons - : - jsr release_start ; releasing start restores scroll - lda gamepad - and #PAD_U - beq :+ - jsr push_u - : - lda gamepad - and #PAD_D - beq :+ - jsr push_d - : - lda gamepad - and #PAD_L - beq :+ - jsr push_l - : - lda gamepad - and #PAD_R - beq :+ - jsr push_r - : - lda gamepad - and #PAD_SELECT - beq :+ - jsr push_select - : - lda gamepad - and #PAD_B - beq :+ - jsr push_b - : - lda gamepad - and #PAD_A - beq :+ - jsr push_a - : -@draw: - ; draw everything and finish the frame - jsr draw_cursor - jsr ppu_update - ; keep doing this forever! - jmp @loop - -push_u: - dec cursor_y - ; Y wraps at 240 - lda cursor_y - cmp #240 - bcc :+ - lda #239 - sta cursor_y - : - rts - -push_d: - inc cursor_y - ; Y wraps at 240 - lda cursor_y - cmp #240 - bcc :+ - lda #0 - sta cursor_y - : - rts - -push_l: - dec cursor_x - rts - -push_r: - inc cursor_x - rts - -push_select: - ; turn off rendering so we can manually update entire nametable - jsr ppu_off - jsr setup_background - ; wait for user to release select before continuing - : - jsr gamepad_poll - lda gamepad - and #PAD_SELECT - bne :- - rts - -push_start: - inc scroll_x - inc scroll_y - ; Y wraps at 240 - lda scroll_y - cmp #240 - bcc :+ - lda #0 - sta scroll_y - : - ; when X rolls over, toggle the high bit of nametable select - lda scroll_x - bne :+ - lda scroll_nmt - eor #$01 - sta scroll_nmt - : - rts - -release_start: - lda #0 - sta scroll_x - sta scroll_y - sta scroll_nmt - rts - -push_b: - jsr snap_cursor - lda cursor_x - lsr - lsr - lsr - tax ; X = cursor_x / 8 - lda cursor_y - lsr - lsr - lsr - tay ; Y = cursor_y / 8 - lda #4 - jsr ppu_update_tile ; puts tile 4 at X/Y - rts - -push_a: - jsr snap_cursor - lda cursor_x - lsr - lsr - lsr - sta temp_x ; cursor_x / 8 - lda cursor_y - lsr - lsr - lsr - sta temp_y ; cursor_y / 8 - ; draw a ring of 8 tiles around the cursor - dec temp_x ; x-1 - dec temp_y ; y-1 - ldx temp_x - ldy temp_y - lda #5 - jsr ppu_update_tile - inc temp_x ; x - ldx temp_x - ldy temp_y - lda #6 - jsr ppu_update_tile - inc temp_x ; x+1 - ldx temp_x - ldy temp_y - lda #5 - jsr ppu_update_tile - dec temp_x - dec temp_x ; x-1 - inc temp_y ; y - ldx temp_x - ldy temp_y - lda #6 - jsr ppu_update_tile - inc temp_x - inc temp_x ; x+1 - ldx temp_x - ldy temp_y - lda #6 - jsr ppu_update_tile - dec temp_x - dec temp_x ; x-1 - inc temp_y ; y+1 - ldx temp_x - ldy temp_y - lda #5 - jsr ppu_update_tile - inc temp_x ; x - ldx temp_x - ldy temp_y - lda #6 - jsr ppu_update_tile - inc temp_x ; x+1 - ldx temp_x - ldy temp_y - lda #5 - jsr ppu_update_tile - rts - -; snap_cursor: snap cursor to nearest tile -snap_cursor: - lda cursor_x - clc - adc #4 - and #$F8 - sta cursor_x - lda cursor_y - clc - adc #4 - and #$F8 - sta cursor_y - ; Y wraps at 240 - cmp #240 - bcc :+ - lda #0 - sta cursor_y - : - rts - -draw_cursor: - ; four sprites centred around the currently selected tile - ; y position (note, needs to be one line higher than sprite's appearance) - lda cursor_y - sec - sbc #5 ; Y-5 - sta oam+(0*4)+0 - sta oam+(1*4)+0 - lda cursor_y - clc - adc #3 ; Y+3 - sta oam+(2*4)+0 - sta oam+(3*4)+0 - ; tile - lda #1 - sta oam+(0*4)+1 - sta oam+(1*4)+1 - sta oam+(2*4)+1 - sta oam+(3*4)+1 - ; attributes - lda #%00000000 ; no flip - sta oam+(0*4)+2 - lda #%01000000 ; horizontal flip - sta oam+(1*4)+2 - lda #%10000000 ; vertical flip - sta oam+(2*4)+2 - lda #%11000000 ; both flip - sta oam+(3*4)+2 - ; x position - lda cursor_x - sec - sbc #4 ; X-4 - sta oam+(0*4)+3 - sta oam+(2*4)+3 - lda cursor_x - clc - adc #4 ; X+4 - sta oam+(1*4)+3 - sta oam+(3*4)+3 - rts - -setup_background: - ; first nametable, start by clearing to empty - lda $2002 ; reset latch - lda #$20 - sta $2006 - lda #$00 - sta $2006 - ; empty nametable - lda #0 - ldy #30 ; 30 rows - : - ldx #32 ; 32 columns - : - sta $2007 - dex - bne :- - dey - bne :-- - ; set all attributes to 0 - ldx #64 ; 64 bytes - : - sta $2007 - dex - bne :- - ; fill in an area in the middle with 1/2 checkerboard - lda #1 - ldy #8 ; start at row 8 - : - pha ; temporarily store A, it will be clobbered by ppu_address_tile routine - ldx #8 ; start at column 8 - jsr ppu_address_tile - pla ; recover A - ; write a line of checkerboard - ldx #8 - : - sta $2007 - eor #$3 - inx - cpx #(32-8) - bcc :- - eor #$3 - iny - cpy #(30-8) - bcc :-- - ; second nametable, fill with simple pattern - lda #$24 - sta $2006 - lda #$00 - sta $2006 - lda #$00 - ldy #30 - : - ldx #32 - : - sta $2007 - clc - adc #1 - and #3 - dex - bne :- - clc - adc #1 - and #3 - dey - bne :-- - ; 4 stripes of attribute - lda #0 - ldy #4 - : - ldx #16 - : - sta $2007 - dex - bne :- - clc - adc #%01010101 - dey - bne :-- - rts - -; -; end of file -; diff --git a/Example/sprite.chr b/Example/sprite.chr deleted file mode 100644 index 67620e9cd5ecc4320737de58726b8ee8ce166ea8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeIuF%bYD3%9utBaij?H(1)knPX9PKiGOPPzR|C6KUD^IlXM1&_g_@37iQJz@I6Ki;49Z!6YC+_FRv`3BO#*4-q@ruX~UpTex z`PdNC+(|aHbeB81w5zLnH$VFP_WM{QHo~pi5x3PyRd*!mzt0shhyUdfZut|B@O=M$ zJQ8aRR7ZKd1fB6fBqkZnVcBQCU~N44{Li1a+*(zV8PA)?ha$TII6D5r7f-$V(k}N8 zU*7g&^eH3h?cs-B3u~>XU0QzsueQ&5!+0af_PjRYPUR&>^NPlJQ#pT8q|(>KXsk8*es?_b1If7{>6Q#&z&F?{Gm^v2r>Qf}Qik& zme$|EQziWm@>G6*Gf#P9(a#$F_w%E@JmqfWL(D1$6te)uC4l9M*um2<3-ZP=Y}`YD z9XcJnrGfY6YJMAaaI5T4HQ|&2Ljeh z1I51~&Bkz})zt;{ ziG$o6rezI~kQ$?_woT1X%-|cuD8?`}B3GhGPxL}*Z)4!G3S`#3)lEULFPFR}6gKTE6>qk|FP6t@jHkBnWaY^yDaVDf+`4*|xz3W*Vzwh|gg| zFTOMSPIo#tM&H=hz57IxMPJ+2eS9Mr1bc-i1|joCe8>*G>N-;w7NSPF`mK6$74Tx9MgVh9#8qq=P_;Z zJEMBH`C>sq?}1ka`x%*6dJ<^1~EqLPIDM%?Zj8P@rwh4*FTr| z8aJNZ#}51=u>-UA3(WG}e50!?xY5051a@!1x$QuY=ht`hu>aRPxW=OkyQ9DF?uYnb zKSYPj<6XTt-4E{a(5xQa!tWRk4IdooGKP0u3iyMYy%;}wSNDOzM$3S?gN=c_r%~Tr zNQb9KL(hm#5=Mv(9tJkchIiF$E}`y?EU|`z;{e2oW00b74L=Ny%FX%2fzCnIc{s6- zWYa^wnmJ_RbA0zmGO`(GWpWB3P~RQv;RkV&?A8j$PLccA?$?fKr*oYf^u+9=1CAz56!P^l)TlZ1dJ#`yLxe zjaVb8fyegk+PXQmG7{D`x(IZ+Ty8h#+~e`&<)MmWPoCH7^XKOm6jBv6KMsqE16nC_ zagW!RUqF?zX%&^I=lSvrsa9SYoLR-(9FV7hSS|abH16X+^NAcJ|z+ix(_H zy|ARLat68^n&-D%O7+0B%9%Cwa~m&Su=vkpefq50+4Gt%S-9jfTm2%ie_~?&Gxwir zyMO*){rl+ex0e5C#aj=oa2@&j;&%pitey9VXCJ!#FFrBry^)_kvip_|t0R|G7r$@) z_N8Ngcd&2Yy?5Vv+m^q)@%qoLTeC8H)h8ouf3|pG_~NF9xuJT!rfSxVU}Z)5w6any zP~x*~UT+>YzzncCcgqdvk8NX@wKW!hBlC18Lp9pA79J`o) z2lX)a53JO6z3U0rS=ZI>o$e7gnm*AI4m0}j7RK=jr|Y~W%)&feU0OXut43L@Ro9f( z%+hL5)`*r;QI=DQMsH1>Hl4A{fj;!$!&*=>*3!}v#)oD_Y>lNg)pc5ZX?1;R4a%Cj z8I5%nbLy&^>uPY&Ogma;HqjnzK)VYjwvZnC2PVTlv_W@WT`6{$h`qk93_F=vTBFx# zdTFs*L6*Fx%Il*`E|8TjI~0R(I;(hI9&$>@Vl|T@f^GRT*#69Y@tPzO}5hB z-dKMbI2*V?PJu*p9I|xlRadROD)Td;fh}#RpZee0FRs6!owd>YNEtH*VK?#UgX}lUCTetf$wTT-u+`=ID9lxF0NVSwKgt;DFyPC>C0Qti7D~Ju2Z^w zfC{;l;>s5PU`LteE_GFZ{-b%7(#QUuX|6B1j<`~;TKC27+i0a|Ep#D>16Q?HqSvt+ zT*$`glKA6!)jke~K6_z^_QmtQcuqJj^imv`NC5qlVq5(YxT=<6Oy!mywi9m?B0Hx? z@Ji{_PNwg4>CJ9kdw0hkmSC;~bJL?m=1H);1oI}C?^Nof=%+VO3@@1IMbpwA7We8q zy?TG@$+%BHHKM2fBk3|ORSf&^BrSQu(2_@u(xeVnba?dx8h8g&XHJ$LOTDS@>eG$B zp0Ln;EOiFrdFEw9t`svpDBnVTsZwWLI;L=7a)m~pO_!&K^;=KEn^Pmr!ZxqrGyF!O zQDEd7MMkkvf&uD`dSkXR*O+63jCn?b(TKM-0YfuNjWT1JQEpTimBw_m1&tZTOk)57&G1lu z$_ogh?%lo2qtCM0S(DRF(mBIs=R}XP?VM?|vl=?*!On&ZJC*MfJ*ovK`JQbj;aN2SPvXpt zr{c7GG;XIICBm~RjpyWcDvuOrHlCz&s(JST`LAWnrqW5XsUn0tDkM%ZN0XsM^G=+_ z;CxeX+C5THXZJmyILAh(d7p?UAy4s{Z70nU;W^7@Cvj%lY1cW!h9_~3+iCZRblPK{ zILGa@dqi_&k2>Xc69dnPBXO|_0D+BwdtVctupSRLv3 zeCc~x>%H8D=X7|Kj!zq>vQw@13d~U@IMeGLoB@ok>?{LHigQAIf>W*cGTVBu$X@Sh zo!S&0W!qV5TkqxB>wOB3D&Z0No?h=ZJ1IV=O_+D$%#Ekww0kseryV7VrD?YKwB;q6 zoysG{nT=-v=eH$hDax=JLfK@_K^ZdVqO39Jp$wW0D9g-7ltrcwrN{s@3XYeU^(eza zLzB=D5*jjPrwiFaDf^@71lieW&y=OngJuQFGE>UpoiD~kmVm6ZS&l1Z?KYECrp@_M zcK`UeB&GbFhT}|sE75W;f91GRwha84{z|N}{nf;{c7I7jjX*mn&{pHx{k7w4AGdsx zakKrk&rubma`{_=_98KZ;w%iDy=YOfK{}gEDNBCUh}j96WM`QvW$m#c=ZIRureDaC zhLF%uW8(cb=19tB$A%nN%2H%DnRZzkUB!kR*N#>8xOSVf$F*Zcv$I548y0ppnKZKs zD=BMV3uLFb3L3*o&aYfYa@_1Wk~R}2;<{+UT983Mu;W9stn!B4 zce_p+S6sJ4r_D}%(<8W97dPn1I=Y80L}50aY?8O*Og3JGM$sT{v5AB3Cp~mKO}E(d z9)TMDdwu#p_33Z+Q46ZI59?Pytl#u-y845M^=BW}-+dVOj6Hl-Dn+5I}@-s5!eHrp< zbR{q2H$#4Aro4YLd0R|p$j{1@&!19W#(9Q(Ri=Ewl=7Rh{jbiHr`&`+ji1eb+j__t zza~?@XiE9Jvd6E@lrNrAUap&r@%2pkl5u%NL!NRVogv5L2{S5YL?U`(P-Qw1OKPc& zNghdH+$zMw6Q8;8Kz|Ly7m9$pERx%)Mt727dDO>FZ zq-`ZuLLir0q?HhuV5`zfVA*XY10*Y*phVQg^K|Su<;|DKtJxbrZBCv1KFG<^Tyk=W zxnw90f4BMQ0faqG^|J4w)Nk%n>BIKi`e&0rx0dH*mB2}Z+7UZRSA2Q|`ld%rx50b- z`=>{`*1M0T-ZtG=@;UCttrm-cr;>OoBPKIk;Hd-;BOZ38YYqd?6{g4X^?2yXKOV2A zd~o>BquoC?7p3MU2cGe{QzgmPICtY4CO-F2#3~E!=kARWv;_D2=)mVrtBR1S)C5(R zM_-VtB2v|1QZ+!T2CTAHs5(umTA>ODW2$s(iQTHjFeUzshfFDsGdBv4d#IR9VPpY= zDIPlTC{r|&A2)^Mi=}*=xVU?$)hZ#f#acz=u+@o&^slOO zN|nfoNA2e{`nHJ|XSQZz0S2sa>py!`T+n&Uyr=S@Gy3wu=$(&8e|#vq_aL6j-=|bH zXRFen%7@n;lc~Z3>y=8pEnB=4;(oj{nM_=IS1P@WO7GfXA)XY!qf%@%TWuNC=Ho@o zWNM?E58-+9Pn8Clq%$Cz1`P#xku#YFJXZdM65o_W5RtXKocr`Vd20Zj{RpR$&i_=@K61>-%Oq^nN z7j6vct=1Z3k40jUVlj>94Mbcuh4{tBLP7xo0}!D1ULgo9&M7d51THaJXy#?Ea#?le zBCJYU?N}GHiCklCB7(&ntvXEmy-!9jJ`&w=IQpx@(SQ7@=}l3%1&sj4@#0>`3_le% zeWGy&-a)zyAMSocqhB=6L@st2e%udrIVU40qEo;!ZXae& z=F$?GOFtuXX+;J;T@s&LqQ{@WqgG}u!kVz%A!IB{kxf+!^-~I^dj$%VV+vz}0rZP}|)WY1iZ(wFo};R@-?O?Xnvtgk|y?N%Yf5s@`>sl(F@ z34!gBHbYWm%UqJQObQ|Vwir@}F&;ly{ZrR=tXjoZt&Uu~nl-aXCtDVYcAU4Wv~%#QFQ+_2OodEfHlvl$t0%xW@CB90=1t#-47W ze~e98A7uk8BihQ98Y>C}=nsu}Z z`l|Ckwb+MgUlIM(b*nqB)jz=Cc0C{9c=c70Yr0mkD_300K6Q2E)1B8W`xDzh;H|o9 z#dTMIk}d08)4@7dU$7UEYgPdHYuU0D{|NwIu(cl*fvHaaZ@!tk_gORt0s+ba0d*C$ zVhx~oHU|L*0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG z0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG0S5sG z0S5sG0SAHq5(qr-wc%I<8)JdmrP$b+A}{?`DPz`|v)HIF7OrK~R~x`j z6=L%ionh2>#$t^6X`_DHsGm0Kr%jGG%H+5AP#aYi$d<@}tS?+bY7dC#65lK{g& zMAl%R*tlEPp}%|8yj9(3Ow;a_`e*MeEiF-$h1y5kL+DRae^ry;-&EyS6b21!uJX~Z zFfNtfA|B->ts`4eKWh!3Om9JK_pNISGOhKxdo)cOr+cw^9=}Md^6_2fTnipoV>twk_-GTD9s6ZHj8)m6$2*W<|Gn1mDdz8pMzGZb4m8 zPe;eisCyK>ITAsaXN#g$dL$BERbQnjm@&StE85!8fxV;EMmyRdPmM(39A+a37Zky=&Q@i+-Y8 zIy$z{c#5{QN7~#%Ueep-f26?_73#@Ou?ZRqVeU{>bltl3u)n=MO+&#D>_c~&;vmgW z^i~n5w~o;o3Qw(uDT>^IRKl2|TZBDZn4(&P{D!}xA~cv<8^8^@hc-oVSQQG*q$WWT ztF56>D^rx(b-haT6GgBKK1I=8-zNGc4TkhBkVQO6iXSpYV7Ed(O?ACtQ3we|QIRTP zQ<`F}`~96^rYO@J!r=zumsG$}?x*~!X`tAaEMIG)wqw+TUz^V-il2k`GGFTec2s;z z&kz}@;@IinY;F2n4)rNCV4Q)NpdX=PS7)e<@QC4jM0mK|d4-jad>X$U$-PCv$3|iU zTZOf0!ph1*p-^XMC(dC(Ir5vI3*HG)GAi@o*S6w_2r|EjWK9yc>$slPD20y diff --git a/Tic-Tac-Toe_v2/graphics.chr b/Tic-Tac-Toe_v2/graphics.chr deleted file mode 100644 index eb839a72e878698be211ece470c57b28cff2727a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeH|ziS&w6vv-ed-5g`_C$oRm?c`oz=_~u2_`II&)O`DkxekcqzEbwk;1q%SE&%P z)44p{rAQID@(TY6`V;ae=udE|LY(gV-t2RXkHcwlT(M7!KKtg)k2l|$ogunoon(~5 zh&DTY7%f^&4@PvoSi(3qN;<@`&L$DZnym$KY;jG*aW;;#ah#3gY;Lp_t;FE1bbMEm z&z#@yJKt+Kf4OwN^Jcm8ke^t?b3XdNIQseM0)-VX-p0Rvdi;1pNw!!O7V(Nf^gIZj zM}ZOv%}%5BHPq;D%Gj&MMmj%-zr3E|zp@baX_$p%(s!4}m~S-Z@?8qQV&Hpco*$6X z#Q9%&jCe)u@H^?|xw=v9JDdG`wJgh`kU~=Sdakb0PAwkjeT zilOb9SLG{G#*c_&h`>*7pk z52=x#W43p2aCGz`Q<~&0R?1A2V_)h`ZZY(Ie+*yfm*oV$ubkvLLjG78#d-ebs2eF! z8RN&XGA&CyWqONchW1>@#H6qqA*P_j+PL{Ta(5>1NlBF9$L7dER3T;5^&%`6DYN46 z;4t4MWr*c1iURB9I4KH#NVzMY^DZe-4wJZJo@4G)!k=&oLC}PhXm?l?(q4#0GM*Bv z3p*nv9~MQC$-%-b%E9TNEN&?2U_9mVa5zL?r2O#P@Nf^lGDDF2QS!VvKP8tR?ENBf z=C~}!Jf1Qu^30R=j%Si@KuYPJ^Are^FGlp+$ZOSHw$IpE;F{I=$gD z-k#*SER-qT6L(8FjlZ|B9(iV~#5$8~N-jw_mu!s$vv}l7B^$x^b06W%*`@ z+kazEG%icW*Zcb~Ij-zgYoqKw2@;Mgv%ts~E!;5p-pvLnW!@~87}05f?>#uZA&o9C zTil!D^yB9*Up{}FDmik;nh$($jmw%10nvFLyE^AH$6Nni^I_Y*ze0(RV|&DrHP3&* zq_swq*3%gtIP3idV;(i|@XNAO-R0>1D+(~qY$W_2{rx_$ZPsIi`-t^e^L~2t^w0N( z=hh0Z=A+rUWLtsSZENjdFu)xa^38VNR8CHIc6PS5wr~fAeDmE`|G$o7EgwDI#`?;9 zlaU$xA$rWOoF0KefeVQ5a8s5FMSs5zWP5p&g`k@#QTE}jemSQvveH~BC|!G(TL`F_@%Q1zQ*}EoSSj@y|!9`T7g=DT7g=D jT7g=DT7g=DT7g=DT7g=DT7g=DT7g=DT7g=DAEChC#hZj_ diff --git a/Tic-Tac-Toe_v2/main.asm b/Tic-Tac-Toe_v2/main.asm deleted file mode 100644 index c9225d5..0000000 --- a/Tic-Tac-Toe_v2/main.asm +++ /dev/null @@ -1,4644 +0,0 @@ -a_punch = $01 -b_punch = $02 -select_punch = $04 -start_punch = $08 -up_punch = $10 -down_punch = $20 -left_punch = $40 -right_punch = $80 -sprite = $200 -sprite1 = $204 -sprite2 = $208 -sprite3 = $20c -sprite4 = $210 -sprite5 = $214 -sprite6 = $218 -sprite7 = $21c -sprite8 = $220 -sprite9 = $224 -sprite10 = $228 -init = $898a -play = $8977 - -.segment "ZEROPAGE" - -control_pad: .res 1 -control_old: .res 1 -control_pad2: .res 1 -control_old2: .res 1 -game_start: .res 1 -whose_turn: .res 1 -stopleft: .res 1 -stop: .res 1 -stopright: .res 1 -sleft: .res 1 -smiddle: .res 1 -sright: .res 1 -sbottomleft: .res 1 -sbottom: .res 1 -sbottomright: .res 1 -xtopleft: .res 1 -xtop: .res 1 -xtopright: .res 1 -xleft: .res 1 -xmiddle: .res 1 -xright: .res 1 -xbottomleft: .res 1 -xbottom: .res 1 -xbottomright: .res 1 -otopleft: .res 1 -otop: .res 1 -otopright: .res 1 -oleft: .res 1 -omiddle: .res 1 -oright: .res 1 -obottomleft: .res 1 -obottom: .res 1 -obottomright: .res 1 -atopleft: .res 1 -atop: .res 1 -atopright: .res 1 -aleft: .res 1 -amiddle: .res 1 -aright: .res 1 -abottomleft: .res 1 -abottom: .res 1 -abottomright: .res 1 -stalecount: .res 1 -extra_turn: .res 1 -switch_to_x: .res 1 -clear_horiz: .res 1 -clear_vert: .res 1 -player_won: .res 1 -move_count: .res 1 -diag_win: .res 1 -horiz_win: .res 1 -vert_win: .res 1 -doing_item3: .res 1 -doing_item4: .res 1 -inc_win: .res 1 -no_control: .res 1 -comp_think: .res 1 -comp_think2: .res 1 -title_select: .res 1 -instr_hold: .res 1 -instr_hold2: .res 1 -instr_switch: .res 1 -instr_switch2:.res 1 -cant_see_hidden: .res 1 - -.segment "CODE" - -.incbin "ttxo.nsf" - -reset: - sei - ldx #$00 - stx $4015 - ldx #$40 - stx $4017 - ldx #$ff - txs - inx - stx $2000 - stx $2001 - -: bit $2002 - bpl :- - - txa -clrmem: - sta $000,x - sta $100,x - sta $200,x - sta $300,x - sta $400,x - sta $500,x - sta $600,x - sta $700,x - inx - bne clrmem - -: bit $2002 - bpl :- - - ldx #$ff - txs - - lda #$00 ; turn off PPU - sta $2000 - sta $2001 -; lda #$00 ; Sprites -; ldx #$00 -;: sta sprite, x -; inx -; bne :- - lda #$3F ; Load palette - ldx #$00 - sta $2006 - stx $2006 -: lda palette,x - sta $2007 - inx - cpx #$20 - bne :- - - lda #$01 - sta no_control -title_screen: - lda #$00 ; turn off PPU - sta $2000 - sta $2001 - ldy #$00 ; load title screen - ldx #$04 - lda #title - sta $11 - lda #$20 - sta $2006 - lda #$00 - sta $2006 -: lda ($10),y - sta $2007 - iny - bne :- - inc $11 - dex - bne :- - jsr PPU_no_sprites - jsr PPU_with_sprites - - ldx #$30 -wait_for_tune: -: bit $2002 - bpl :- - dex - bne wait_for_tune - ;lda #$0 ; Load song 1 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - - lda #$01 - sta whose_turn -hold_title: ; YOU ARE HERE - lda title_select - cmp #$01 - bne keep_holding_title - ;jmp instructions0 -keep_holding_title: - lda game_start - cmp #$01 - bne hold_title - - lda #$01 - sta cant_see_hidden - lda #$00 ; turn off PPU - sta $2000 - sta $2001 - sta no_control - ldy #$00 ; load game screen - ldx #$04 - lda #<board - sta $10 - lda #>board - sta $11 - lda #$20 - sta $2006 - lda #$00 - sta $2006 -: lda ($10),y - sta $2007 - iny - bne :- - inc $11 - dex - bne :- -; jsr PPU_no_sprites - jsr PPU_with_sprites - - ;lda #$1 ; Load song 2 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - - ;lda #$00 ; Load 0 in game_start so the sound - ;sta game_start ; effects won't trigger through buttons - ;ldx #$60 ; Kill a bit of time before the sprites -wait_it_out: ; get loaded. Raise X above wait_it_out -: bit $2002 ; to waste more time. Use vblank to do - bpl :- ; this. Decrement X and loop until X - dex ; is at zero. - bne wait_it_out - - lda #$01 ; Set game_start back to 1 so the - sta game_start ; sound effects will work w/ controls. - - ldx #$0 ; Pull in bytes for sprites and their -: lda the_sprites,x ; attributes which are stored in - sta sprite,x ; the_sprites. Use X as an index - inx ; to load and store each byte, which - cpx #$2c ; get stored starting in $200, where - bne :- ; 'sprite' is located at. - - ;lda #$2 ; Load song 3 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - -reinit_variables: - lda #$01 - sta stopleft - sta stop - sta stopright - sta sright - sta smiddle - sta sleft - sta sbottomleft - sta sbottom - sta sbottomright - lda #$01 - sta atopleft - sta atop - sta atopright - sta aright - sta amiddle - sta aleft - sta abottomleft - sta abottom - sta abottomright - lda #$00 - sta xtopleft - sta xtop - sta xtopright - sta xleft - sta xmiddle - sta xright - sta xbottomleft - sta xbottom - sta xbottomright - lda #$00 - sta otopleft - sta otop - sta otopright - sta oleft - sta omiddle - sta oright - sta obottomleft - sta obottom - sta obottomright - sta player_won - sta move_count - - lda stalecount - cmp #$03 - bne test_diag - lda #$01 - sta extra_turn - lda #$30 - sta sprite3+1 -test_diag: - lda diag_win - cmp #$02 - bne test_horiz - lda #$01 - sta switch_to_x - lda #$30 - sta sprite5+1 -test_horiz: - lda horiz_win - cmp #$02 - bne test_vert - lda #$01 - sta clear_horiz - lda #$30 - sta sprite7+1 -test_vert: - lda vert_win - cmp #$02 - bne wait_turn - lda #$01 - sta clear_vert - lda #$30 - sta sprite9+1 - -wait_turn: - lda move_count - cmp #$09 - bne still_playing - jsr PPU_no_sprites - jmp end_computer -still_playing: - lda whose_turn - cmp #$00 - bne wait_turn - - jsr PPU_no_sprites - -pattern1_first: - lda otop - beq pattern1_second - lda otopright - beq pattern1_second - lda aleft - beq pattern1_second - lda amiddle - beq pattern1_second - lda aright - beq pattern1_second - lda abottomleft - beq pattern1_second - lda abottom - beq pattern1_second - lda abottomright - beq pattern1_second - lda stopleft - beq pattern1_second - jsr comp_topleft - jmp computer_win -pattern1_second: - lda atopleft - beq pattern1_third - lda atop - beq pattern1_third - lda aleft - beq pattern1_third - lda amiddle - beq pattern1_third - lda oright - beq pattern1_third - lda abottomleft - beq pattern1_third - lda abottom - beq pattern1_third - lda obottomright - beq pattern1_third - lda stopright - beq pattern1_third - jsr comp_topright - jmp computer_win -pattern1_third: ; CHECK - lda atopleft - beq pattern1_fourth - lda atop - beq pattern1_fourth - lda atopright - beq pattern1_fourth - lda aleft - beq pattern1_fourth - lda amiddle - beq pattern1_fourth - lda aright - beq pattern1_fourth - lda obottomleft - beq pattern1_fourth - lda obottom - beq pattern1_fourth - lda sbottomright - beq pattern1_fourth - jsr comp_bottomright - jmp computer_win -pattern1_fourth: ; CHECK - lda otopleft - beq pattern2_first - lda atop - beq pattern2_first - lda atopright - beq pattern2_first - lda oleft - beq pattern2_first - lda amiddle - beq pattern2_first - lda aright - beq pattern2_first - lda abottom - beq pattern2_first - lda abottomright - beq pattern2_first - lda sbottomleft - beq pattern2_first - jsr comp_bottomleft - jmp computer_win - -pattern2_first: ; PATTERN 2-1 LOOKS GOOD ROB!!! - lda atop - beq pattern2_second - lda atopright - beq pattern2_second - lda oleft - beq pattern2_second - lda amiddle - beq pattern2_second - lda aright - beq pattern2_second - lda obottomleft - beq pattern2_second - lda abottom - beq pattern2_second - lda abottomright - beq pattern2_second - lda stopleft - beq pattern2_second - jsr comp_topleft - jmp computer_win -pattern2_second: - lda otopleft - beq pattern2_third - lda otop - beq pattern2_third - lda aleft - beq pattern2_third - lda amiddle - beq pattern2_third - lda aright - beq pattern2_third - lda abottomleft - beq pattern2_third - lda abottom - beq pattern2_third - lda abottomright - beq pattern2_third - lda stopright - beq pattern2_third - jsr comp_topright - jmp computer_win -pattern2_third: - lda atopleft - beq pattern2_fourth - lda atop - beq pattern2_fourth - lda otopright - beq pattern2_fourth - lda aleft - beq pattern2_fourth - lda amiddle - beq pattern2_fourth - lda oright - beq pattern2_fourth - lda abottomleft - beq pattern2_fourth - lda abottom - beq pattern2_fourth - lda sbottomright - beq pattern2_fourth - jsr comp_bottomright - jmp computer_win -pattern2_fourth: - lda atopleft - beq pattern3_first - lda atop - beq pattern3_first - lda atopright - beq pattern3_first - lda aleft - beq pattern3_first - lda amiddle - beq pattern3_first - lda aright - beq pattern3_first - lda obottom - beq pattern3_first - lda obottomright - beq pattern3_first - lda sbottomleft - beq pattern3_first - jsr comp_bottomleft - jmp computer_win - -pattern3_first: ; ALL OF PATTERN 3 LOOKS GOOD ROB!!! - lda atop - beq pattern3_second - lda atopright - beq pattern3_second - lda aleft - beq pattern3_second - lda omiddle - beq pattern3_second - lda aright - beq pattern3_second - lda abottomleft - beq pattern3_second - lda abottom - beq pattern3_second - lda obottomright - beq pattern3_second - lda stopleft - beq pattern3_second - jsr comp_topleft - jmp computer_win -pattern3_second: - lda atopleft - beq pattern3_third - lda atop - beq pattern3_third - lda aleft - beq pattern3_third - lda omiddle - beq pattern3_third - lda aright - beq pattern3_third - lda obottomleft - beq pattern3_third - lda abottom - beq pattern3_third - lda abottomright - beq pattern3_third - lda stopright - beq pattern3_third - jsr comp_topright - jmp computer_win -pattern3_third: - lda otopleft - beq pattern3_fourth - lda atop - beq pattern3_fourth - lda atopright - beq pattern3_fourth - lda aleft - beq pattern3_fourth - lda omiddle - beq pattern3_fourth - lda aright - beq pattern3_fourth - lda abottomleft - beq pattern3_fourth - lda abottom - beq pattern3_fourth - lda sbottomright - beq pattern3_fourth - jsr comp_bottomright - jmp computer_win -pattern3_fourth: - lda atopleft - beq pattern4_first - lda atop - beq pattern4_first - lda otopright - beq pattern4_first - lda aleft - beq pattern4_first - lda omiddle - beq pattern4_first - lda aright - beq pattern4_first - lda abottom - beq pattern4_first - lda abottomright - beq pattern4_first - lda sbottomleft - beq pattern4_first - jsr comp_bottomleft - jmp computer_win - -pattern4_first: ; ALL OF PATTERN 4 LOOKS GOOD ROB!!! - lda otopleft - beq pattern4_second - lda otopright - beq pattern4_second - lda aleft - beq pattern4_second - lda amiddle - beq pattern4_second - lda aright - beq pattern4_second - lda abottomleft - beq pattern4_second - lda abottom - beq pattern4_second - lda abottomright - beq pattern4_second - lda stop - beq pattern4_second - jsr comp_top - jmp computer_win -pattern4_second: - lda atopleft - beq pattern4_third - lda atop - beq pattern4_third - lda otopright - beq pattern4_third - lda aleft - beq pattern4_third - lda amiddle - beq pattern4_third - lda abottomleft - beq pattern4_third - lda abottom - beq pattern4_third - lda obottomright - beq pattern4_third - lda sright - beq pattern4_third - jsr comp_right - jmp computer_win -pattern4_third: - lda atopleft - beq pattern4_fourth - lda atop - beq pattern4_fourth - lda atopright - beq pattern4_fourth - lda aleft - beq pattern4_fourth - lda amiddle - beq pattern4_fourth - lda aright - beq pattern4_fourth - lda obottomleft - beq pattern4_fourth - lda obottomright - beq pattern4_fourth - lda sbottom - beq pattern4_fourth - jsr comp_bottom - jmp computer_win -pattern4_fourth: - lda otopleft - beq pattern5_first - lda atop - beq pattern5_first - lda atopright - beq pattern5_first - lda amiddle - beq pattern5_first - lda aright - beq pattern5_first - lda obottomleft - beq pattern5_first - lda abottom - beq pattern5_first - lda abottomright - beq pattern5_first - lda sleft - beq pattern5_first - jsr comp_left - jmp computer_win - -pattern5_first: ; ALL OF PATTERN 5 LOOKS GOOD ROB!!! - lda atopleft - beq pattern5_second - lda atopright - beq pattern5_second - lda aleft - beq pattern5_second - lda omiddle - beq pattern5_second - lda aright - beq pattern5_second - lda abottomleft - beq pattern5_second - lda obottom - beq pattern5_second - lda abottomright - beq pattern5_second - lda stop - beq pattern5_second - jsr comp_top - jmp computer_win -pattern5_second: - lda atopleft - beq pattern5_third - lda atop - beq pattern5_third - lda atopright - beq pattern5_third - lda omiddle - beq pattern5_third - lda oleft - beq pattern5_third - lda abottomleft - beq pattern5_third - lda abottom - beq pattern5_third - lda abottomright - beq pattern5_third - lda sright - beq pattern5_third - jsr comp_right - jmp computer_win -pattern5_third: - lda atopleft - beq pattern5_fourth - lda atopright - beq pattern5_fourth - lda aleft - beq pattern5_fourth - lda omiddle - beq pattern5_fourth - lda otop - beq pattern5_fourth - lda aright - beq pattern5_fourth - lda abottomleft - beq pattern5_fourth - lda abottomright - beq pattern5_fourth - lda sbottom - beq pattern5_fourth - jsr comp_bottom - jmp computer_win -pattern5_fourth: - lda atopleft - beq pattern_extra_first - lda atop - beq pattern_extra_first - lda atopright - beq pattern_extra_first - lda omiddle - beq pattern_extra_first - lda oright - beq pattern_extra_first - lda abottomleft - beq pattern_extra_first - lda abottom - beq pattern_extra_first - lda abottomright - beq pattern_extra_first - lda sleft - beq pattern_extra_first - jsr comp_left - jmp computer_win - -pattern_extra_first: - lda otopleft - beq pattern_extra_second - lda atop - beq pattern_extra_second - lda atopright - beq pattern_extra_second - lda aleft - beq pattern_extra_second - lda aright - beq pattern_extra_second - lda abottomleft - beq pattern_extra_second - lda abottom - beq pattern_extra_second - lda obottomright - beq pattern_extra_second - lda smiddle - beq pattern_extra_second - jsr comp_middle - jmp computer_win -pattern_extra_second: - lda atopleft - beq pattern_extra_third - lda atop - beq pattern_extra_third - lda otopright - beq pattern_extra_third - lda aleft - beq pattern_extra_third - lda aright - beq pattern_extra_third - lda obottomleft - beq pattern_extra_third - lda abottom - beq pattern_extra_third - lda abottomright - beq pattern_extra_third - lda smiddle - beq pattern_extra_third - jsr comp_middle - jmp computer_win -pattern_extra_third: - lda atopleft - beq pattern_extra_fourth - lda otop - beq pattern_extra_fourth - lda atopright - beq pattern_extra_fourth - lda aleft - beq pattern_extra_fourth - lda aright - beq pattern_extra_fourth - lda abottomleft - beq pattern_extra_fourth - lda obottom - beq pattern_extra_fourth - lda abottomright - beq pattern_extra_fourth - lda smiddle - beq pattern_extra_fourth - jsr comp_middle - jmp computer_win -pattern_extra_fourth: - lda atopleft - beq pattern6_first - lda atop - beq pattern6_first - lda atopright - beq pattern6_first - lda oleft - beq pattern6_first - lda oright - beq pattern6_first - lda abottomleft - beq pattern6_first - lda abottom - beq pattern6_first - lda abottomright - beq pattern6_first - lda smiddle - beq pattern6_first - jsr comp_middle - jmp computer_win - -pattern6_first: - lda xtop - beq pattern6_second - lda xtopright - beq pattern6_second - lda aleft - beq pattern6_second - lda amiddle - beq pattern6_second - lda aright - beq pattern6_second - lda abottomleft - beq pattern6_second - lda abottom - beq pattern6_second - lda abottomright - beq pattern6_second - lda stopleft - beq pattern6_second - jsr comp_topleft - jmp wait_turn -pattern6_second: ; CHECK - lda atopleft - beq pattern6_third - lda atop - beq pattern6_third - lda aleft - beq pattern6_third - lda amiddle - beq pattern6_third - lda xright - beq pattern6_third - lda abottomleft - beq pattern6_third - lda abottom - beq pattern6_third - lda xbottomright - beq pattern6_third - lda stopright - beq pattern6_third - jsr comp_topright - jmp wait_turn -pattern6_third: ; CHECK - lda atopleft - beq pattern6_fourth - lda atop - beq pattern6_fourth - lda atopright - beq pattern6_fourth - lda aleft - beq pattern6_fourth - lda amiddle - beq pattern6_fourth - lda aright - beq pattern6_fourth - lda xbottomleft - beq pattern6_fourth - lda xbottom - beq pattern6_fourth - lda sbottomright - beq pattern6_fourth - jsr comp_bottomright - jmp wait_turn -pattern6_fourth: ; CHECK - lda xtopleft - beq pattern7_first - lda atop - beq pattern7_first - lda atopright - beq pattern7_first - lda xleft - beq pattern7_first - lda amiddle - beq pattern7_first - lda aright - beq pattern7_first - lda abottom - beq pattern7_first - lda abottomright - beq pattern7_first - lda sbottomleft - beq pattern7_first - jsr comp_bottomleft - jmp wait_turn - -pattern7_first: ; PATTERN 2-1 LOOKS GOOD ROB!!! - lda atop - beq pattern7_second - lda atopright - beq pattern7_second - lda xleft - beq pattern7_second - lda amiddle - beq pattern7_second - lda aright - beq pattern7_second - lda xbottomleft - beq pattern7_second - lda abottom - beq pattern7_second - lda abottomright - beq pattern7_second - lda stopleft - beq pattern7_second - jsr comp_topleft - jmp wait_turn -pattern7_second: - lda xtopleft - beq pattern7_third - lda xtop - beq pattern7_third - lda aleft - beq pattern7_third - lda amiddle - beq pattern7_third - lda aright - beq pattern7_third - lda abottomleft - beq pattern7_third - lda abottom - beq pattern7_third - lda abottomright - beq pattern7_third - lda stopright - beq pattern7_third - jsr comp_topright - jmp wait_turn -pattern7_third: - lda atopleft - beq pattern7_fourth - lda atop - beq pattern7_fourth - lda xtopright - beq pattern7_fourth - lda aleft - beq pattern7_fourth - lda amiddle - beq pattern7_fourth - lda xright - beq pattern7_fourth - lda abottomleft - beq pattern7_fourth - lda abottom - beq pattern7_fourth - lda sbottomright - beq pattern7_fourth - jsr comp_bottomright - jmp wait_turn -pattern7_fourth: - lda atopleft - beq pattern8_first - lda atop - beq pattern8_first - lda atopright - beq pattern8_first - lda aleft - beq pattern8_first - lda amiddle - beq pattern8_first - lda aright - beq pattern8_first - lda xbottom - beq pattern8_first - lda xbottomright - beq pattern8_first - lda sbottomleft - beq pattern8_first - jsr comp_bottomleft - jmp wait_turn - -pattern8_first: ; ALL OF PATTERN 3 LOOKS GOOD ROB!!! - lda atop - beq pattern8_second - lda atopright - beq pattern8_second - lda aleft - beq pattern8_second - lda xmiddle - beq pattern8_second - lda aright - beq pattern8_second - lda abottomleft - beq pattern8_second - lda abottom - beq pattern8_second - lda xbottomright - beq pattern8_second - lda stopleft - beq pattern8_second - jsr comp_topleft - jmp wait_turn -pattern8_second: - lda atopleft - beq pattern8_third - lda atop - beq pattern8_third - lda aleft - beq pattern8_third - lda xmiddle - beq pattern8_third - lda aright - beq pattern8_third - lda xbottomleft - beq pattern8_third - lda abottom - beq pattern8_third - lda abottomright - beq pattern8_third - lda stopright - beq pattern8_third - jsr comp_topright - jmp wait_turn -pattern8_third: - lda xtopleft - beq pattern8_fourth - lda atop - beq pattern8_fourth - lda atopright - beq pattern8_fourth - lda aleft - beq pattern8_fourth - lda xmiddle - beq pattern8_fourth - lda aright - beq pattern8_fourth - lda abottomleft - beq pattern8_fourth - lda abottom - beq pattern8_fourth - lda sbottomright - beq pattern8_fourth - jsr comp_bottomright - jmp wait_turn -pattern8_fourth: - lda atopleft - beq pattern9_first - lda atop - beq pattern9_first - lda xtopright - beq pattern9_first - lda aleft - beq pattern9_first - lda xmiddle - beq pattern9_first - lda aright - beq pattern9_first - lda abottom - beq pattern9_first - lda abottomright - beq pattern9_first - lda sbottomleft - beq pattern9_first - jsr comp_bottomleft - jmp wait_turn - -pattern9_first: ; ALL OF PATTERN 4 LOOKS GOOD ROB!!! - lda xtopleft - cmp #$01 - bne pattern9_second - lda xtopright - cmp #$01 - bne pattern9_second - lda aleft - cmp #$01 - bne pattern9_second - lda amiddle - cmp #$01 - bne pattern9_second - lda aright - cmp #$01 - bne pattern9_second - lda abottomleft - cmp #$01 - bne pattern9_second - lda abottom - cmp #$01 - bne pattern9_second - lda abottomright - cmp #$01 - bne pattern9_second - lda stop - cmp #$01 - bne pattern9_second - jsr comp_top - jmp wait_turn -pattern9_second: - lda atopleft - cmp #$01 - bne pattern9_third - lda atop - cmp #$01 - bne pattern9_third - lda xtopright - cmp #$01 - bne pattern9_third - lda aleft - cmp #$01 - bne pattern9_third - lda amiddle - cmp #$01 - bne pattern9_third - lda abottomleft - cmp #$01 - bne pattern9_third - lda abottom - cmp #$01 - bne pattern9_third - lda xbottomright - cmp #$01 - bne pattern9_third - lda sright - cmp #$01 - bne pattern9_third - jsr comp_right - jmp wait_turn -pattern9_third: - lda atopleft - cmp #$01 - bne pattern9_fourth - lda atop - cmp #$01 - bne pattern9_fourth - lda atopright - cmp #$01 - bne pattern9_fourth - lda aleft - cmp #$01 - bne pattern9_fourth - lda amiddle - cmp #$01 - bne pattern9_fourth - lda aright - cmp #$01 - bne pattern9_fourth - lda xbottomleft - cmp #$01 - bne pattern9_fourth - lda xbottomright - cmp #$01 - bne pattern9_fourth - lda sbottom - cmp #$01 - bne pattern9_fourth - jsr comp_bottom - jmp wait_turn -pattern9_fourth: - lda xtopleft - cmp #$01 - bne pattern10_first - lda atop - cmp #$01 - bne pattern10_first - lda atopright - cmp #$01 - bne pattern10_first - lda amiddle - cmp #$01 - bne pattern10_first - lda aright - cmp #$01 - bne pattern10_first - lda xbottomleft - cmp #$01 - bne pattern10_first - lda abottom - cmp #$01 - bne pattern10_first - lda abottomright - cmp #$01 - bne pattern10_first - lda sleft - cmp #$01 - bne pattern10_first - jsr comp_left - jmp wait_turn - -pattern10_first: ; ALL OF PATTERN 5 LOOKS GOOD ROB!!! - lda atopleft - cmp #$01 - bne pattern10_second - lda atopright - cmp #$01 - bne pattern10_second - lda aleft - cmp #$01 - bne pattern10_second - lda xmiddle - cmp #$01 - bne pattern10_second - lda aright - cmp #$01 - bne pattern10_second - lda abottomleft - cmp #$01 - bne pattern10_second - lda xbottom - cmp #$01 - bne pattern10_second - lda abottomright - cmp #$01 - bne pattern10_second - lda stop - cmp #$01 - bne pattern10_second - jsr comp_top - jmp wait_turn -pattern10_second: - lda atopleft - cmp #$01 - bne pattern10_third - lda atop - cmp #$01 - bne pattern10_third - lda atopright - cmp #$01 - bne pattern10_third - lda xmiddle - cmp #$01 - bne pattern10_third - lda xleft - cmp #$01 - bne pattern10_third - lda abottomleft - cmp #$01 - bne pattern10_third - lda abottom - cmp #$01 - bne pattern10_third - lda abottomright - cmp #$01 - bne pattern10_third - lda sright - cmp #$01 - bne pattern10_third - jsr comp_right - jmp wait_turn -pattern10_third: - lda atopleft - cmp #$01 - bne pattern10_fourth - lda xtop - cmp #$01 - bne pattern10_fourth - lda atopright - cmp #$01 - bne pattern10_fourth - lda aleft - cmp #$01 - bne pattern10_fourth - lda xmiddle - cmp #$01 - bne pattern10_fourth - lda aright - cmp #$01 - bne pattern10_fourth - lda abottomleft - cmp #$01 - bne pattern10_fourth - lda abottomright - cmp #$01 - bne pattern10_fourth - lda sbottom - cmp #$01 - bne pattern10_fourth - jsr comp_bottom - jmp wait_turn -pattern10_fourth: - lda atopleft - cmp #$01 - bne extra_pattern_again - lda atop - cmp #$01 - bne extra_pattern_again - lda atopright - cmp #$01 - bne extra_pattern_again - lda xmiddle - cmp #$01 - bne extra_pattern_again - lda xright - cmp #$01 - bne extra_pattern_again - lda abottomleft - cmp #$01 - bne extra_pattern_again - lda abottom - cmp #$01 - bne extra_pattern_again - lda abottomright - cmp #$01 - bne extra_pattern_again - lda sleft - cmp #$01 - bne extra_pattern_again - jsr comp_left - jmp wait_turn - -extra_pattern_again: - lda atopleft - cmp #$01 - bne pattern11_first - lda atop - cmp #$01 - bne pattern11_first - lda xtopright - cmp #$01 - bne pattern11_first - lda omiddle - cmp #$01 - bne pattern11_first - lda aright - cmp #$01 - bne pattern11_first - lda abottomleft - cmp #$01 - bne pattern11_first - lda xbottom - cmp #$01 - bne pattern11_first - lda sbottomright - cmp #$01 - bne pattern11_first - lda aleft - cmp #$01 - bne pattern11_first - jsr comp_bottomright - jmp wait_turn - -pattern11_first: - lda stopleft - cmp #$01 - bne pattern11_second - lda xtopright - cmp #$01 - bne pattern11_second - lda sleft - cmp #$01 - bne pattern11_second - lda omiddle - cmp #$01 - bne pattern11_second - lda sright - cmp #$01 - bne pattern11_second - lda xbottomleft - cmp #$01 - bne pattern11_second - lda sbottom - cmp #$01 - bne pattern11_second - lda sbottomright - cmp #$01 - bne pattern11_second - lda stop - cmp #$01 - bne pattern11_second - jsr comp_top - jmp wait_turn -pattern11_second: - lda xtopleft - cmp #$01 - bne pattern11_third - lda stop - cmp #$01 - bne pattern11_third - lda stopright - cmp #$01 - bne pattern11_third - lda sleft - cmp #$01 - bne pattern11_third - lda omiddle - cmp #$01 - bne pattern11_third - lda sbottomleft - cmp #$01 - bne pattern11_third - lda sbottom - cmp #$01 - bne pattern11_third - lda xbottomright - cmp #$01 - bne pattern11_third - lda sright - cmp #$01 - bne pattern11_third - jsr comp_right - jmp wait_turn -pattern11_third: - lda stopleft - cmp #$01 - bne pattern11_fourth - lda stop - cmp #$01 - bne pattern11_fourth - lda xtopright - cmp #$01 - bne pattern11_fourth - lda sleft - cmp #$01 - bne pattern11_fourth - lda omiddle - cmp #$01 - bne pattern11_fourth - lda sright - cmp #$01 - bne pattern11_fourth - lda xbottomleft - cmp #$01 - bne pattern11_fourth - lda sbottomright - cmp #$01 - bne pattern11_fourth - lda sbottom - cmp #$01 - bne pattern11_fourth - jsr comp_bottom - jmp wait_turn -pattern11_fourth: - lda xtopleft - cmp #$01 - bne pattern12_first - lda stop - cmp #$01 - bne pattern12_first - lda stopright - cmp #$01 - bne pattern12_first - lda omiddle - cmp #$01 - bne pattern12_first - lda sright - cmp #$01 - bne pattern12_first - lda sbottomleft - cmp #$01 - bne pattern12_first - lda sbottom - cmp #$01 - bne pattern12_first - lda xbottomright - cmp #$01 - bne pattern12_first - lda sleft - cmp #$01 - bne pattern12_first - jsr comp_left - jmp wait_turn - -pattern12_first: - lda xtop - cmp #$01 - bne pattern12_second - lda stopright - cmp #$01 - bne pattern12_second - lda omiddle - cmp #$01 - bne pattern12_second - lda xleft - cmp #$01 - bne pattern12_second - lda aright - cmp #$01 - bne pattern12_second - lda sbottomleft - cmp #$01 - bne pattern12_second - lda abottom - cmp #$01 - bne pattern12_second - lda abottomright - cmp #$01 - bne pattern12_second - lda stopleft - cmp #$01 - bne pattern12_second - jsr comp_topleft - jmp wait_turn -pattern12_second: - lda stopleft - cmp #$01 - bne pattern12_third - lda xtop - cmp #$01 - bne pattern12_third - lda aleft - cmp #$01 - bne pattern12_third - lda omiddle - cmp #$01 - bne pattern12_third - lda xright - cmp #$01 - bne pattern12_third - lda abottomleft - cmp #$01 - bne pattern12_third - lda abottom - cmp #$01 - bne pattern12_third - lda sbottomright - cmp #$01 - bne pattern12_third - lda stopright - cmp #$01 - bne pattern12_third - jsr comp_topright - jmp wait_turn -pattern12_third: - lda atopleft - cmp #$01 - bne pattern12_fourth - lda atop - cmp #$01 - bne pattern12_fourth - lda stopright - cmp #$01 - bne pattern12_fourth - lda aleft - cmp #$01 - bne pattern12_fourth - lda xright - cmp #$01 - bne pattern12_fourth - lda omiddle - cmp #$01 - bne pattern12_fourth - lda sbottomleft - cmp #$01 - bne pattern12_fourth - lda xbottom - cmp #$01 - bne pattern12_fourth - lda sbottomright - cmp #$01 - bne pattern12_fourth - jsr comp_bottomright - jmp wait_turn -pattern12_fourth: - lda stopleft - cmp #$01 - bne pattern13_first - lda atop - cmp #$01 - bne pattern13_first - lda atopright - cmp #$01 - bne pattern13_first - lda xleft - cmp #$01 - bne pattern13_first - lda omiddle - cmp #$01 - bne pattern13_first - lda aright - cmp #$01 - bne pattern13_first - lda xbottom - cmp #$01 - bne pattern13_first - lda sbottomright - cmp #$01 - bne pattern13_first - lda sbottomleft - cmp #$01 - bne pattern13_first - jsr comp_bottomleft - jmp wait_turn - -pattern13_first: - lda stop - cmp #$01 - bne pattern13_second - lda xtopright - cmp #$01 - bne pattern13_second - lda omiddle - cmp #$01 - bne pattern13_second - lda xleft - cmp #$01 - bne pattern13_second - lda aright - cmp #$01 - bne pattern13_second - lda sbottomleft - cmp #$01 - bne pattern13_second - lda abottom - cmp #$01 - bne pattern13_second - lda abottomright - cmp #$01 - bne pattern13_second - lda stopleft - cmp #$01 - bne pattern13_second - jsr comp_topleft - jmp wait_turn -pattern13_second: - lda stopleft - cmp #$01 - bne pattern13_third - lda xtop - cmp #$01 - bne pattern13_third - lda aleft - cmp #$01 - bne pattern13_third - lda omiddle - cmp #$01 - bne pattern13_third - lda sright - cmp #$01 - bne pattern13_third - lda abottomleft - cmp #$01 - bne pattern13_third - lda abottom - cmp #$01 - bne pattern13_third - lda xbottomright - cmp #$01 - bne pattern13_third - lda stopright - cmp #$01 - bne pattern13_third - jsr comp_topright - jmp wait_turn -pattern13_third: - lda atopleft - cmp #$01 - bne pattern13_fourth - lda atop - cmp #$01 - bne pattern13_fourth - lda stopright - cmp #$01 - bne pattern13_fourth - lda aleft - cmp #$01 - bne pattern13_fourth - lda xright - cmp #$01 - bne pattern13_fourth - lda omiddle - cmp #$01 - bne pattern13_fourth - lda xbottomleft - cmp #$01 - bne pattern13_fourth - lda sbottom - cmp #$01 - bne pattern13_fourth - lda sbottomright - cmp #$01 - bne pattern13_fourth - jsr comp_bottomright - jmp wait_turn -pattern13_fourth: - lda xtopleft - cmp #$01 - bne pattern14_first - lda atop - cmp #$01 - bne pattern14_first - lda atopright - cmp #$01 - bne pattern14_first - lda sleft - cmp #$01 - bne pattern14_first - lda omiddle - cmp #$01 - bne pattern14_first - lda aright - cmp #$01 - bne pattern14_first - lda xbottom - cmp #$01 - bne pattern14_first - lda sbottomright - cmp #$01 - bne pattern14_first - lda sbottomleft - cmp #$01 - bne pattern14_first - jsr comp_bottomleft - jmp wait_turn - -pattern14_first: - lda stop - cmp #$01 - bne pattern14_second - lda xtopright - cmp #$01 - bne pattern14_second - lda sleft - cmp #$01 - bne pattern14_second - lda omiddle - cmp #$01 - bne pattern14_second - lda aright - cmp #$01 - bne pattern14_second - lda xbottomleft - cmp #$01 - bne pattern14_second - lda abottom - cmp #$01 - bne pattern14_second - lda abottomright - cmp #$01 - bne pattern14_second - lda stopleft - cmp #$01 - bne pattern14_second - jsr comp_topleft - jmp wait_turn -pattern14_second: - lda xtopleft - cmp #$01 - bne pattern14_third - lda stop - cmp #$01 - bne pattern14_third - lda aleft - cmp #$01 - bne pattern14_third - lda omiddle - cmp #$01 - bne pattern14_third - lda sright - cmp #$01 - bne pattern14_third - lda abottomleft - cmp #$01 - bne pattern14_third - lda abottom - cmp #$01 - bne pattern14_third - lda xbottomright - cmp #$01 - bne pattern14_third - lda stopright - cmp #$01 - bne pattern14_third - jsr comp_topright - jmp wait_turn -pattern14_third: - lda atopleft - cmp #$01 - bne pattern14_fourth - lda atop - cmp #$01 - bne pattern14_fourth - lda xtopright - cmp #$01 - bne pattern14_fourth - lda aleft - cmp #$01 - bne pattern14_fourth - lda omiddle - cmp #$01 - bne pattern14_fourth - lda sright - cmp #$01 - bne pattern14_fourth - lda xbottomleft - cmp #$01 - bne pattern14_fourth - lda sbottom - cmp #$01 - bne pattern14_fourth - lda sbottomright - cmp #$01 - bne pattern14_fourth - jsr comp_bottomright - jmp wait_turn -pattern14_fourth: - lda xtopleft - cmp #$01 - bne pattern15_first - lda atop - cmp #$01 - bne pattern15_first - lda atopright - cmp #$01 - bne pattern15_first - lda sleft - cmp #$01 - bne pattern15_first - lda omiddle - cmp #$01 - bne pattern15_first - lda aright - cmp #$01 - bne pattern15_first - lda xbottomright - cmp #$01 - bne pattern15_first - lda sbottom - cmp #$01 - bne pattern15_first - lda sbottomleft - cmp #$01 - bne pattern15_first - jsr comp_bottomleft - jmp wait_turn - -pattern15_first: - lda atop - cmp #$01 - bne pattern15_second - lda atopright - cmp #$01 - bne pattern15_second - lda aleft - cmp #$01 - bne pattern15_second - lda xmiddle - cmp #$01 - bne pattern15_second - lda aright - cmp #$01 - bne pattern15_second - lda abottomleft - cmp #$01 - bne pattern15_second - lda abottom - cmp #$01 - bne pattern15_second - lda sbottomright - cmp #$01 - bne pattern15_second - lda stopleft - cmp #$01 - bne pattern15_second - jsr comp_topleft - jmp wait_turn -pattern15_second: - lda atopleft - cmp #$01 - bne pattern15_third - lda atop - cmp #$01 - bne pattern15_third - lda aleft - cmp #$01 - bne pattern15_third - lda xmiddle - cmp #$01 - bne pattern15_third - lda aright - cmp #$01 - bne pattern15_third - lda sbottomleft - cmp #$01 - bne pattern15_third - lda abottom - cmp #$01 - bne pattern15_third - lda abottomright - cmp #$01 - bne pattern15_third - lda stopright - cmp #$01 - bne pattern15_third - jsr comp_topright - jmp wait_turn -pattern15_third: - lda stopleft - cmp #$01 - bne pattern15_fourth - lda atop - cmp #$01 - bne pattern15_fourth - lda atopright - cmp #$01 - bne pattern15_fourth - lda aleft - cmp #$01 - bne pattern15_fourth - lda xmiddle - cmp #$01 - bne pattern15_fourth - lda aright - cmp #$01 - bne pattern15_fourth - lda abottomleft - cmp #$01 - bne pattern15_fourth - lda abottom - cmp #$01 - bne pattern15_fourth - lda sbottomright - cmp #$01 - bne pattern15_fourth - jsr comp_bottomright - jmp wait_turn -pattern15_fourth: - lda atopleft - cmp #$01 - bne pattern16_first - lda atop - cmp #$01 - bne pattern16_first - lda stopright - cmp #$01 - bne pattern16_first - lda aleft - cmp #$01 - bne pattern16_first - lda xmiddle - cmp #$01 - bne pattern16_first - lda aright - cmp #$01 - bne pattern16_first - lda abottom - cmp #$01 - bne pattern16_first - lda abottomright - cmp #$01 - bne pattern16_first - lda sbottomleft - cmp #$01 - bne pattern16_first - jsr comp_bottomleft - jmp wait_turn - -pattern16_first: - lda atopleft - cmp #$01 - bne pattern16_second - lda atopright - cmp #$01 - bne pattern16_second - lda aleft - cmp #$01 - bne pattern16_second - lda xmiddle - cmp #$01 - bne pattern16_second - lda aright - cmp #$01 - bne pattern16_second - lda abottomleft - cmp #$01 - bne pattern16_second - lda sbottom - cmp #$01 - bne pattern16_second - lda abottomright - cmp #$01 - bne pattern16_second - lda stop - cmp #$01 - bne pattern16_second - jsr comp_top - jmp wait_turn -pattern16_second: - lda atopleft - cmp #$01 - bne pattern16_third - lda atop - cmp #$01 - bne pattern16_third - lda atopright - cmp #$01 - bne pattern16_third - lda xmiddle - cmp #$01 - bne pattern16_third - lda sleft - cmp #$01 - bne pattern16_third - lda abottomleft - cmp #$01 - bne pattern16_third - lda abottom - cmp #$01 - bne pattern16_third - lda abottomright - cmp #$01 - bne pattern16_third - lda sright - cmp #$01 - bne pattern16_third - jsr comp_right - jmp wait_turn -pattern16_third: - lda atopleft - cmp #$01 - bne pattern16_fourth - lda stop - cmp #$01 - bne pattern16_fourth - lda atopright - cmp #$01 - bne pattern16_fourth - lda aleft - cmp #$01 - bne pattern16_fourth - lda xmiddle - cmp #$01 - bne pattern16_fourth - lda aright - cmp #$01 - bne pattern16_fourth - lda abottomleft - cmp #$01 - bne pattern16_fourth - lda abottomright - cmp #$01 - bne pattern16_fourth - lda sbottom - cmp #$01 - bne pattern16_fourth - jsr comp_bottom - jmp wait_turn -pattern16_fourth: - lda atopleft - cmp #$01 - bne try_middle - lda atop - cmp #$01 - bne try_middle - lda atopright - cmp #$01 - bne try_middle - lda xmiddle - cmp #$01 - bne try_middle - lda sright - cmp #$01 - bne try_middle - lda abottomleft - cmp #$01 - bne try_middle - lda abottom - cmp #$01 - bne try_middle - lda abottomright - cmp #$01 - bne try_middle - lda sleft - cmp #$01 - bne try_middle - jsr comp_left - jmp wait_turn - - -try_middle: - lda smiddle - cmp #$01 - bne try_topleft - jsr comp_middle - jmp wait_turn -try_topleft: - lda stopleft - cmp #$01 - bne try_topright - jsr comp_topleft - jmp wait_turn -try_topright: - lda stopright - cmp #$01 - bne try_bottomleft - jsr comp_topright - jmp wait_turn -try_bottomleft: - lda sbottomleft - cmp #$01 - bne try_bottomright - jsr comp_bottomleft - jmp wait_turn -try_bottomright: - lda sbottomright - cmp #$01 - bne try_top - jsr comp_bottomright - jmp wait_turn -try_top: - lda stop - cmp #$01 - bne try_left - jsr comp_top - jmp wait_turn -try_left: - lda sleft - cmp #$01 - bne try_right - jsr comp_left - jmp wait_turn -try_right: - lda sright - cmp #$01 - bne try_bottom - jsr comp_right - jmp wait_turn -try_bottom: - lda sbottom - cmp #$01 - bne end_computer - jsr comp_bottom - jmp wait_turn - -end_computer: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - lda #$21 - sta $2006 - lda #$0b - sta $2006 - ;lda stalemate -;: sta $2007 -; inx -; lda stalemate,x - ;cpx #$0a - ;bne :- - lda stalecount - inc stalecount -: bit $2002 - bpl :- - ldx #$00 - lda #$21 - sta $2006 - lda #$2b - sta $2006 - ;lda blank_under_stale -;: sta $2007 - ;inx - ;lda blank_under_stale,x - ;cpx #$0a - ;bne :- -: bit $2002 - bpl :- - lda #$00 - sta $2006 - sta $2006 - lda whose_turn - cmp #$00 - bne pass_whose_turn - lda #$01 - sta whose_turn -pass_whose_turn: - jsr PPU_no_sprites - jsr fix_board - jsr waste_all_time - jsr clear_topleft - jsr clear_top - jsr clear_topright - ;lda #$3 ; Load song 4 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr PPU_no_sprites - jsr waste_all_time - jsr clear_left - jsr clear_middle - jsr clear_right - ;lda #$3 ; Load song 4 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr PPU_no_sprites - jsr waste_all_time - jsr clear_bottomleft - jsr clear_bottom - jsr clear_bottomright - - ;lda #$3 ; Load song 4 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr PPU_with_sprites - lda player_won - cmp #$01 - beq clear_for_player_win - jsr waste_all_time - ;lda #$2 ; Load song 3 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - - jmp reinit_variables -clear_for_player_win: - rts - -;loop: -; jmp loop - -PPU_off: - lda #$00 - sta $2000 - sta $2001 - rts - -PPU_with_sprites: - lda #%10000000 - sta $2000 - lda #%00011110 - sta $2001 - rts - -PPU_no_sprites: - lda #%10000000 - sta $2000 - lda #%00001110 - sta $2001 - rts - -clear_slots: -clear_topleft: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$20 - sta $2006 - lda filltopleft,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_top: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$20 - sta $2006 - lda filltop,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_topright: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$20 - sta $2006 - lda filltopright,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_left: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$21 - sta $2006 - lda fillleft,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_middle: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$21 - sta $2006 - lda fillmiddle,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_right: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$21 - sta $2006 - lda fillright,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_bottomleft: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$22 - sta $2006 - lda fillbottomleft,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_bottom: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$22 - sta $2006 - lda fillbottom,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts -clear_bottomright: -: bit $2002 - bpl :- - ldx #$00 - stx $2000 - stx $2001 -: lda #$22 - sta $2006 - lda fillbottomright,x - sta $2006 - lda clear_them,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$00 - sta $2006 - sta $2006 - rts - -fix_board: - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - lda #$21 - sta $2006 - lda #$0b - sta $2006 - ;lda fix_message -;: sta $2007 - ;inx - ;lda fix_message,x - ;cpx #$0a - ;bne :- - lda #$00 - sta $2006 - sta $2006 -: bit $2002 - bpl :- - ldx #$00 - lda #$21 - sta $2006 - lda #$2b - sta $2006 - ;lda under_fix_message -;: sta $2007 - ;inx - ;lda under_fix_message,x - ;cpx #$0a - ;bne :- -: bit $2002 - bpl :- - lda #$00 - sta $2006 - sta $2006 - jsr PPU_no_sprites - rts - -waste_all_time: - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - ldy #$60 -: ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - ldx #$60 -: stx comp_think - dex - cpx #$00 - bne :- - dey - cpy #$00 - bne :--- - rts - -comp_topleft: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 -: lda #$20 - sta $2006 - lda filltopleft,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta otopleft - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta stopleft - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_top: - jsr waste_all_time - lda #$00 - sta $2000 - sta $2001 - ldx #$00 -: lda #$20 - sta $2006 - lda filltop,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta otop - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta stop - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_topright: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$20 - sta $2006 - lda filltopright,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta otopright - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta stopright - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_left: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$21 - sta $2006 - lda fillleft,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta oleft - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta sleft - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_middle: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$21 - sta $2006 - lda fillmiddle,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta omiddle - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta smiddle - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_right: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$21 - sta $2006 - lda fillright,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta oright - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta sright - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_bottomleft: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottomleft,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta obottomleft - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta sbottomleft - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_bottom: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottom,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta obottom - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta sbottom - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -comp_bottomright: - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottomright,x - sta $2006 - lda o_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta obottomright - sta whose_turn -: bit $2002 - bpl :- - lda move_count - inc move_count - lda #$00 - sta sbottomright - sta $2006 - sta $2006 - jsr PPU_with_sprites - rts - -computer_win: - lda #$00 - sta whose_turn - ldx #$00 - stx $2000 - stx $2001 - jsr PPU_no_sprites - - ;lda #$4 ; Load song 5 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr waste_all_time - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - ldx #$00 -: lda #$21 - sta $2006 - lda fillmiddle,x - sta $2006 - lda game_over,x - sta $2007 - inx - cpx #$10 - bne :- -: bit $2002 - bpl :- - lda #$00 - sta $2006 - sta $2006 - jsr PPU_no_sprites - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - - jmp reset - -test_x_win: - lda xtopleft - beq test2 - lda xtop - beq test2 - lda xtopright - beq test2 - lda aleft - beq test2 - lda amiddle - beq test2 - lda aright - beq test2 - lda abottomleft - beq test2 - lda abottom - beq test2 - lda abottomright - beq test2 - lda horiz_win - inc horiz_win - jmp youwin_words -test2: - lda xtopleft - beq test3 - lda atop - beq test3 - lda atopright - beq test3 - lda aleft - beq test3 - lda xmiddle - beq test3 - lda aright - beq test3 - lda abottomleft - beq test3 - lda abottom - beq test3 - lda xbottomright - beq test3 - lda diag_win - inc diag_win - jmp youwin_words -test3: - lda xtopleft - beq test4 - lda atop - beq test4 - lda atopright - beq test4 - lda xleft - beq test4 - lda amiddle - beq test4 - lda aright - beq test4 - lda xbottomleft - beq test4 - lda abottom - beq test4 - lda abottomright - beq test4 - lda vert_win - inc vert_win - jmp youwin_words -test4: - lda atopleft - beq test5 - lda atop - beq test5 - lda atopright - beq test5 - lda xleft - beq test5 - lda xmiddle - beq test5 - lda xright - beq test5 - lda abottomleft - beq test5 - lda abottom - beq test5 - lda abottomright - beq test5 - lda horiz_win - inc horiz_win - jmp youwin_words -test5: - lda atopleft - beq test6 - lda atop - beq test6 - lda atopright - beq test6 - lda aleft - beq test6 - lda amiddle - beq test6 - lda aright - beq test6 - lda xbottomleft - beq test6 - lda xbottom - beq test6 - lda xbottomright - beq test6 - lda horiz_win - inc horiz_win - jmp youwin_words -test6: - lda atopleft - beq test7 - lda atop - beq test7 - lda xtopright - beq test7 - lda aleft - beq test7 - lda xmiddle - beq test7 - lda aright - beq test7 - lda xbottomleft - beq test7 - lda abottom - beq test7 - lda abottomright - beq test7 - lda diag_win - inc diag_win - jmp youwin_words -test7: - lda atopleft - beq test8 - lda xtop - beq test8 - lda atopright - beq test8 - lda aleft - beq test8 - lda xmiddle - beq test8 - lda aright - beq test8 - lda abottomleft - beq test8 - lda xbottom - beq test8 - lda abottomright - beq test8 - lda vert_win - inc vert_win - jmp youwin_words -test8: - lda atopleft - beq not_win - lda atop - beq not_win - lda xtopright - beq not_win - lda aleft - beq not_win - lda amiddle - beq not_win - lda xright - beq not_win - lda abottomleft - beq not_win - lda abottom - beq not_win - lda xbottomright - beq not_win - lda vert_win - inc vert_win - jmp youwin_words - -not_win: - rts - -youwin_words: - lda #$00 -; sta $2000 -; sta $2001 - sta $2006 - sta $2006 - sta $2005 - sta $2005 - lda #$01 - sta player_won - jsr PPU_no_sprites - jsr waste_all_time - ldx #$00 - stx $2000 - stx $2001 - lda #$21 - sta $2006 - lda #$0b - sta $2006 - ;lda youwin -;: sta $2007 -; inx -; lda youwin,x -; cpx #$0a -; bne :- -: bit $2002 - bpl :- - ldx #$00 - lda #$21 - sta $2006 - lda #$2b - sta $2006 - ;lda blank_under_stale -;: sta $2007 -; inx -; lda blank_under_stale,x - ;cpx #$0a - ;bne :- -: bit $2002 - bpl :- - lda #$00 - sta $2006 - sta $2006 - lda #$01 - sta whose_turn - jsr PPU_no_sprites - jsr fix_board - jsr waste_all_time - jsr clear_topleft - jsr clear_top - jsr clear_topright - ;lda #$3 ; Load song 4 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr PPU_no_sprites - jsr waste_all_time - jsr clear_left - jsr clear_middle - jsr clear_right - ;lda #$3 ; Load song 4 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr PPU_no_sprites - jsr waste_all_time - jsr clear_bottomleft - jsr clear_bottom - jsr clear_bottomright - - ;lda #$3 ; Load song 4 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - lda inc_win - inc inc_win -check_comp_lose_whole_game: - lda inc_win - cmp #$05 - bne continue_game_more - jmp computer_beaten_now -continue_game_more: - jsr PPU_with_sprites -; lda player_won -; cmp #$01 -; beq clear_for_player_win - jsr waste_all_time - - ;lda #$2 ; Load song 3 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jmp reinit_variables - -computer_beaten_now: - jsr waste_all_time - jsr PPU_off - lda #$00 ; turn off PPU - sta $2000 - sta $2001 - sta no_control - ldy #$00 ; load game screen - ldx #$04 - lda #<final - sta $10 - lda #>final - sta $11 - lda #$20 - sta $2006 - lda #$00 - sta $2006 -: lda ($10),y - sta $2007 - iny - bne :- - inc $11 - dex - bne :- - jsr PPU_no_sprites - ;lda #$5 ; Load song 6 - ;ldx #$00 - ;jsr init - ;lda #%10000000 - ;sta $2000 - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - jsr waste_all_time - jmp reset -; ********************************************************* -; The control routine is below. The whole routine is * -; triggered inside of NMI. * -; ********************************************************* -play2: - lda #$01 - sta $4017 - lda #$00 - sta $4017 - lda control_pad2 - sta control_old2 - ldx #$08 -: - lda $4017 - lsr A - ror control_pad2 - dex - bne :- - - lda control_pad2 ; Right button check/routine - eor control_old2 - and control_pad2 - and #right_punch - beq no_play2 - ;jsr hidden_thanks -no_play2: - rts -controller: - lda #$01 - sta $4016 - lda #$00 - sta $4016 - lda control_pad - sta control_old - ldx #$08 -: - lda $4016 - lsr A - ror control_pad - dex - bne :- - - lda control_pad ; Right button check/routine - eor control_old - and control_pad - and #right_punch - beq no_right_punch - lda game_start - beq skip_right_effects - ldx #$04 - stx $4015 - ldx #$00 - ;jsr fx_routine -skip_right_effects: - lda game_start - bne no_rightshift ; YOU ARE HERE - lda #$01 - sta instr_switch - jmp no_right_punch -no_rightshift: - lda doing_item3 - bne no_right_punch - lda #$c0 - cmp sprite1+3 - bne keep_right_going - lda #$38 - sta sprite+3 - lda #$40 - sta sprite1+3 - cmp #$40 - beq no_right_punch -keep_right_going: - clc - lda sprite+3 - adc #$40 - sta sprite+3 - clc - lda sprite1+3 - adc #$40 - sta sprite1+3 -no_right_punch: - lda control_pad ; Left button check/routine - eor control_old - and control_pad - and #left_punch - beq no_left_punch - lda game_start - bne skip_left_effects - ldx #$04 - stx $4015 - ldx #$00 - ;jsr fx_routine -skip_left_effects: - lda game_start - bne no_leftshift ; YOU ARE HERE - lda #$01 - sta instr_switch2 - jmp no_left_punch -no_leftshift: - lda doing_item3 - bne no_left_punch - lda #$40 - cmp sprite1+3 - bne keep_left_going - lda #$b8 - sta sprite+3 - lda #$c0 - sta sprite1+3 - cmp #$c0 - beq no_left_punch -keep_left_going: - sec - lda sprite+3 - sbc #$40 - sta sprite+3 - sec - lda sprite1+3 - sbc #$40 - sta sprite1+3 -no_left_punch: - lda control_pad ; Down button check/routine - eor control_old - and control_pad - and #down_punch - beq no_down_punch - lda game_start - beq skip_down_effects - ldx #$04 - stx $4015 - ldx #$00 - ;jsr fx_routine -skip_down_effects: - lda doing_item4 - bne no_down_punch - lda #$8d - cmp sprite1 - bne keep_down_going - lda #$0d - sta sprite - lda #$0d - sta sprite1 - cmp #$0d - beq no_down_punch -keep_down_going: - clc - lda sprite - adc #$40 - sta sprite - clc - lda sprite1 - adc #$40 - sta sprite1 -no_down_punch: - lda control_pad ; Up button check/routine - eor control_old - and control_pad - and #up_punch - beq no_up_punch - lda game_start - bne skip_up_effects - ldx #$04 - stx $4015 - ldx #$00 - ;jsr fx_routine -skip_up_effects: - lda doing_item4 - bne no_up_punch - lda #$0d - cmp sprite1 - bne keep_up_going - lda #$8d - sta sprite - lda #$8d - sta sprite1 - cmp #$8d - beq no_up_punch -keep_up_going: - sec - lda sprite - sbc #$40 - sta sprite - sec - lda sprite1 - sbc #$40 - sta sprite1 -no_up_punch: - lda control_pad ; Start button check/routine - eor control_old - and control_pad - and #start_punch - beq no_start_punch - lda cant_see_hidden - cmp #$01 - bne check_game_start - lda game_start - bne no_start_punch - jmp reset -check_game_start: - lda #$01 - sta game_start -no_start_punch: - lda control_pad ; Select button check/routine - eor control_old - and control_pad - and #select_punch - beq no_select_punch - lda game_start - beq skip_select_effects - ldx #$04 - stx $4015 - ldx #$04 - ;jsr fx_routine -skip_select_effects: - lda game_start - bne no_instructions ; YOU ARE HERE - lda #$01 - sta title_select - jmp no_select_punch -no_instructions: - lda #$c0 ; Load A with the last position that - cmp sprite2+3 ; the item cursor is allowed to be at. - bne keep_select_going ; If it's there already, load A with - lda #$30 ; the first allowed cursor position, - sta sprite2+3 ; and do a comparison to be allowed to - cmp #$30 ; jump over the rest of the code for - beq no_select_punch ; the select button. -keep_select_going: ; If it's not at the last allowed pos, - clc ; add #$30 to the X-Pos of the item - lda sprite2+3 ; selection sprite, and store that - adc #$30 ; value back into the X-Pos of the - sta sprite2+3 ; sprite -no_select_punch: - lda control_pad ; B button check/routine - eor control_old - and control_pad - and #b_punch - beq fake_no_B_punch1 - lda no_control - bne fake_no_B_punch1 - lda sprite2+3 - cmp #$30 - bne check_second_pos - lda #$2f - cmp sprite3+1 - beq fake_no_B_punch1 - lda #$02 - sta whose_turn - lda #$2f - sta sprite3+1 - lda #$00 - sta stalecount - jmp no_b_punch -check_second_pos: - lda sprite2+3 - cmp #$60 - bne fake_third_pos_jump1 - lda #$2f - cmp sprite5+1 - beq fake_no_B_punch1 - - lda sprite - cmp #$0d - beq check_for_top_row - lda sprite - cmp #$4d - beq fake_check_for_middle_row - lda sprite - cmp #$8d - beq fake_check_for_bottom_row - -fake_no_B_punch1: - jmp no_b_punch - -check_for_top_row: - lda sprite+3 - cmp #$38 - beq check_topleft_o - lda sprite+3 - cmp #$78 - beq check_top_o - lda sprite+3 - cmp #$b8 - beq fake_check_topright_o -check_topleft_o: - lda otopleft - beq fake_no_B_punch1 - ldx #$00 -: lda #$20 - sta $2006 - lda filltopleft,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xtopleft - lda #$00 - sta stopleft - sta otopleft - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn1 - lda whose_turn - dec whose_turn -skip_that_turn1: - jmp no_b_punch - -fake_check_for_middle_row: - jmp check_for_middle_row -fake_third_pos_jump1: - jmp check_third_pos -fake_check_for_bottom_row: - jmp check_for_bottom_row -fake_check_topright_o: - jmp check_topright_o -check_top_o: - lda otop - beq fake_no_B_punch1 - ldx #$00 -: lda #$20 - sta $2006 - lda filltop,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xtop - lda #$00 - sta stop - sta otop - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn2 - lda whose_turn - dec whose_turn -skip_that_turn2: - jmp no_b_punch -check_topright_o: - lda otopright - beq fake_no_B_punch2 - ldx #$00 -: lda #$20 - sta $2006 - lda filltopright,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xtopright - lda #$00 - sta stopright - sta otopright - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn3 - lda whose_turn - dec whose_turn -skip_that_turn3: - jmp no_b_punch -check_for_middle_row: - lda sprite+3 - cmp #$38 - beq check_left_o - lda sprite+3 - cmp #$78 - beq check_middle_o - lda sprite+3 - cmp #$b8 - beq fake_check_right_o - -fake_no_B_punch2: - jmp no_b_punch - -check_left_o: - lda oleft - beq fake_no_B_punch2 - ldx #$00 -: lda #$21 - sta $2006 - lda fillleft,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xleft - lda #$00 - sta sleft - sta oleft - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn4 - lda whose_turn - dec whose_turn -skip_that_turn4: - jmp no_b_punch - -fake_check_right_o: - jmp check_right_o - -check_middle_o: - lda omiddle - beq fake_no_B_punch2 - ldx #$00 -: lda #$21 - sta $2006 - lda fillmiddle,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xmiddle - lda #$00 - sta smiddle - sta omiddle - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn5 - lda whose_turn - dec whose_turn -skip_that_turn5: - jmp no_b_punch -check_right_o: - lda oright - beq fake_no_B_punch3 - ldx #$00 -: lda #$21 - sta $2006 - lda fillright,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xright - lda #$00 - sta sright - sta oright - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn6 - lda whose_turn - dec whose_turn -skip_that_turn6: - jmp no_b_punch - -fake_no_B_punch3: - jmp no_b_punch - -check_for_bottom_row: - lda sprite+3 - cmp #$38 - beq check_bottomleft_o - lda sprite+3 - cmp #$78 - beq check_bottom_o - lda sprite+3 - cmp #$b8 - beq fake_check_bottomright_o -check_bottomleft_o: - lda obottomleft - beq fake_no_B_punch3 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottomleft,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xbottomleft - lda #$00 - sta sbottomleft - sta obottomleft - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn7 - lda whose_turn - dec whose_turn -skip_that_turn7: - jmp no_b_punch -fake_check_bottomright_o: - jmp check_bottomright_o -check_bottom_o: - lda obottom - beq fake_no_B_punch3 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottom,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xbottom - lda #$00 - sta sbottom - sta obottom - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn8 - lda whose_turn - dec whose_turn -skip_that_turn8: - jmp no_b_punch -check_bottomright_o: - lda obottomright - beq skip_that_turn9 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottomright,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xbottomright - lda #$00 - sta sbottomright - sta obottomright - sta switch_to_x - sta diag_win - lda #$2f - sta sprite5+1 - jsr test_x_win - lda player_won - cmp #$01 - beq skip_that_turn9 - lda whose_turn - dec whose_turn -skip_that_turn9: - jmp no_b_punch - -check_third_pos: - lda sprite2+3 - cmp #$90 - bne check_fourth_pos - lda horiz_win - cmp #$02 - bne no_b_punch - lda #$01 - sta doing_item3 - lda #$0d - sta sprite - sta sprite1 - lda #$38 - sta sprite+3 - lda #$40 - sta sprite1+3 - lda #$2f - sta sprite7+1 - lda #$00 - sta clear_horiz ; MIGHT BE IFFY ROB!!! - sta horiz_win - jmp no_b_punch -check_fourth_pos: - lda sprite2+3 - cmp #$c0 - bne no_b_punch - lda vert_win ; YOU'RE HERE ROB!!! - cmp #$02 - bne no_b_punch - lda #$01 - sta doing_item4 - lda #$0d - sta sprite - sta sprite1 - lda #$38 - sta sprite+3 - lda #$40 - sta sprite1+3 - lda #$2f - sta sprite9+1 - lda #$00 - sta clear_vert ; MIGHT BE IFFY ROB!!! - sta vert_win - jmp no_b_punch -no_b_punch: - lda control_pad ; A button check/routine - eor control_old - and control_pad - and #a_punch - beq fake_no_a_punch - - lda doing_item3 - cmp #$01 - bne fake_test_item4 - lda sprite1 - cmp #$0d - beq clear_that_top_row - lda sprite1 - cmp #$4d - beq clear_that_middle_row - lda sprite1 - cmp #$8d - beq fake_clear_that_bottom_row - jmp test_item4 -fake_test_item4: - jmp test_item4 -fake_no_a_punch: - jmp no_a_punch -fake_regular_placement: - jmp regular_placement -fake_clear_that_middle_column: - jmp clear_that_middle_column -fake_clear_that_right_column: - jmp clear_that_right_column -fake_clear_that_bottom_row: - jmp clear_that_bottom_row -clear_that_top_row: - lda stopleft - bne not_topleft_row - lda #$00 - sta otopleft - sta xtopleft - lda #$01 - sta stopleft - jsr clear_topleft - lda move_count - dec move_count -not_topleft_row: - lda stop - bne not_top_row - lda #$00 - sta otop - sta xtop - lda #$01 - sta stop - jsr clear_top - lda move_count - dec move_count -not_top_row: - lda stopright - bne wasted_top_row_turn - lda #$00 - sta otopright - sta xtopright - lda #$01 - sta stopright - jsr clear_topright - lda move_count - dec move_count -wasted_top_row_turn: - lda whose_turn - dec whose_turn - lda #$00 - sta doing_item3 - sta $2005 - sta $2005 - jmp no_a_punch -clear_that_middle_row: - lda sleft - bne not_left_row - lda #$00 - sta oleft - sta xleft - lda #$01 - sta sleft - jsr clear_left - lda move_count - dec move_count -not_left_row: - lda smiddle - bne not_middle_row - lda #$00 - sta omiddle - sta xmiddle - lda #$01 - sta smiddle - jsr clear_middle - lda move_count - dec move_count -not_middle_row: - lda sright - bne wasted_middle_row_turn - lda #$00 - sta oright - sta xright - lda #$01 - sta sright - jsr clear_right - lda move_count - dec move_count -wasted_middle_row_turn: - lda whose_turn - dec whose_turn - lda #$00 - sta doing_item3 - sta $2005 - sta $2005 - jmp no_a_punch -clear_that_bottom_row: - lda sbottomleft - bne not_bottomleft_row - lda #$00 - sta obottomleft - sta xbottomleft - lda #$01 - sta sbottomleft - jsr clear_bottomleft - lda move_count - dec move_count -not_bottomleft_row: - lda sbottom - bne not_bottom_row - lda #$00 - sta obottom - sta xbottom - lda #$01 - sta sbottom - jsr clear_bottom - lda move_count - dec move_count -not_bottom_row: - lda sbottomright - bne wasted_bottom_row_turn - lda #$00 - sta obottomright - sta xbottomright - lda #$01 - sta sbottomright - jsr clear_bottomright - lda move_count - dec move_count -wasted_bottom_row_turn: - lda whose_turn - dec whose_turn - lda #$00 - sta doing_item3 - sta $2005 - sta $2005 - jmp no_a_punch -fake_regular_placement2: - jmp regular_placement -fake_clear_that_middle_column2: - jmp clear_that_middle_column -fake_clear_that_right_column2: - jmp clear_that_right_column -test_item4: - lda doing_item4 - cmp #$01 - bne fake_regular_placement2 - lda sprite+3 - cmp #$38 - beq clear_that_left_column - lda sprite+3 - cmp #$78 - beq fake_clear_that_middle_column2 - lda sprite+3 - cmp #$b8 - beq fake_clear_that_right_column2 - jmp regular_placement -clear_that_left_column: ; THIS IS THE BUGGY SHIT ROB!!! - lda stopleft - bne not_top_left_column - lda #$00 - sta otopleft - sta xtopleft - lda #$01 - sta stopleft - jsr clear_topleft - lda move_count - dec move_count -not_top_left_column: - lda sleft - bne not_left_column - lda #$00 - sta oleft - sta xleft - lda #$01 - sta sleft - jsr clear_left - lda move_count - dec move_count -not_left_column: - lda sbottomleft - bne wasted_left_column_turn - lda #$00 - sta obottomleft - sta xbottomleft - lda #$01 - sta sbottomleft - jsr clear_bottomleft - lda move_count - dec move_count -wasted_left_column_turn: - lda whose_turn - dec whose_turn - lda #$00 - sta doing_item4 - sta $2005 - sta $2005 - jmp no_a_punch -clear_that_middle_column: - lda stop - bne not_top_column - lda #$00 - sta otop - sta xtop - lda #$01 - sta stop - jsr clear_top - lda move_count - dec move_count -not_top_column: - lda smiddle - bne not_middle_column - lda #$00 - sta omiddle - sta xmiddle - lda #$01 - sta smiddle - jsr clear_middle - lda move_count - dec move_count -not_middle_column: - lda sbottom - bne wasted_middle_column_turn - lda #$00 - sta obottom - sta xbottom - lda #$01 - sta sbottom - jsr clear_bottom - lda move_count - dec move_count -wasted_middle_column_turn: - lda whose_turn - dec whose_turn - lda #$00 - sta doing_item4 - sta $2005 - sta $2005 - jmp no_a_punch -clear_that_right_column: - lda stopright - bne not_topright_column - lda #$00 - sta otopright - sta xtopright - lda #$01 - sta stopright - jsr clear_topright - lda move_count - dec move_count -not_topright_column: - lda sright - bne not_right_column - lda #$00 - sta oright - sta xright - lda #$01 - sta sright - jsr clear_right - lda move_count - dec move_count -not_right_column: - lda sbottomright - bne wasted_right_column_turn - lda #$00 - sta obottomright - sta xbottomright - lda #$01 - sta sbottomright - jsr clear_bottomright - lda move_count - dec move_count -wasted_right_column_turn: - lda whose_turn - dec whose_turn - lda #$00 - sta doing_item4 - sta $2005 - sta $2005 - jmp no_a_punch -fake_no_A_jump3: - jmp no_a_punch -regular_placement: - lda sprite - cmp #$0d - beq top_row_compare - lda sprite - cmp #$4d - beq fake_middle_compare - lda sprite - cmp #$8d - beq fake_bottom_compare - -top_row_compare: - lda sprite+3 - cmp #$38 - beq top_left_go - lda sprite+3 - cmp #$78 - beq top_go - lda sprite+3 - cmp #$b8 - beq top_right_go - -fake_bottom_compare: - jmp bottom_row_compare - -top_left_go: - lda stopleft - cmp #$00 - beq fake_no_A_jump1 - ldx #$00 -: lda #$20 - sta $2006 - lda filltopleft,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xtopleft - lda #$00 - sta stopleft - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn1 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn1: - jmp no_a_punch - -fake_no_A_jump1: - jmp fake_no_A_jump2 - -fake_middle_compare: - jmp middle_row_compare - -top_go: - lda stop - cmp #$00 - beq fake_no_A_jump1 - ldx #$00 -: lda #$20 - sta $2006 - lda filltop,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xtop - lda #$00 - sta stop - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn2 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn2: - jmp no_a_punch - -top_right_go: - lda stopright - cmp #$00 - beq fake_no_A_jump1 - ldx #$00 -: lda #$20 - sta $2006 - lda filltopright,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xtopright - lda #$00 - sta stopright - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn3 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn3: - jmp no_a_punch - -middle_row_compare: - lda sprite+3 - cmp #$38 - beq left_go - lda sprite+3 - cmp #$78 - beq middle_go - lda sprite+3 - cmp #$b8 - beq right_go - -left_go: - lda sleft - cmp #$00 - beq fake_no_A_jump2 - ldx #$00 -: lda #$21 - sta $2006 - lda fillleft,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xleft - lda #$00 - sta sleft - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn4 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn4: - jmp no_a_punch - -middle_go: - lda smiddle - cmp #$00 - beq fake_no_A_jump2 - ldx #$00 -: lda #$21 - sta $2006 - lda fillmiddle,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xmiddle - lda #$00 - sta smiddle - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn5 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn5: - jmp no_a_punch - -fake_no_A_jump2: - jmp no_a_punch - -right_go: - lda sright - cmp #$00 - beq fake_no_A_jump2 - ldx #$00 -: lda #$21 - sta $2006 - lda fillright,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xright - lda #$00 - sta sright - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn6 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn6: - jmp no_a_punch - -bottom_row_compare: - lda sprite+3 - cmp #$38 - beq bottom_left_go - lda sprite+3 - cmp #$78 - beq bottom_go - lda sprite+3 - cmp #$b8 - beq bottom_right_go - -bottom_left_go: - lda sbottomleft - cmp #$00 - beq fake_no_A_jump2 - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottomleft,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xbottomleft - lda #$00 - sta sbottomleft - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn7 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn7: - jmp no_a_punch - -bottom_go: - lda sbottom - cmp #$00 - beq no_a_punch - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottom,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xbottom - lda #$00 - sta sbottom - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn8 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn8: - jmp no_a_punch - -bottom_right_go: - lda sbottomright - cmp #$00 - beq no_a_punch - ldx #$00 -: lda #$22 - sta $2006 - lda fillbottomright,x - sta $2006 - lda x_tiles,x - sta $2007 - inx - cpx #$10 - bne :- - lda #$01 - sta xbottomright - lda #$00 - sta sbottomright - jsr test_x_win - lda player_won - cmp #$01 - beq skip_turn9 - lda whose_turn - dec whose_turn - lda move_count - inc move_count -skip_turn9: - jmp no_a_punch - -no_a_punch: - rts - -; ********************************************************* -; sprite_cram is the routine to update all sprites when * -; an NMI is triggered. * -; ********************************************************* - -sprite_cram: - lda #>sprite - sta $4014 - rts - -nmi: - pha - txa - pha - tya - pha - jsr sprite_cram - lda whose_turn - cmp #$00 - beq skip_controls - jsr controller - lda cant_see_hidden - cmp #$00 - bne skip_controls - jsr play2 -skip_controls: - lda #$00 - sta $2006 - sta $2006 - sta $2005 - sta $2005 - jsr play -end_nmi: - pla - tay - pla - tax - pla - rti - -irq: - rti - -palette: -.incbin "ttxo.pal" - -; ********************************************************* -; The .bytes below are setup for the sprites to be used * -; .byte (Y-Pos),(Tile Number),(Attributes),(X-Pos) * -; ********************************************************* -the_sprites: - .byte $0d,$11,$00,$38 ; Left side of arrow - .byte $0d,$12,$00,$40 ; Right side of arrow - .byte $c0,$13,$00,$30 ; Item Selection Arrow - .byte $cd,$2f,$01,$38 ; 0 - For Extra Turn - .byte $fe,$30,$01,$fe ; 1 - For Extra Turn - .byte $cd,$2f,$01,$68 ; 0 - For Change Tile - .byte $fe,$30,$01,$fe ; 1 - For Change Tile - .byte $cd,$2f,$01,$98 ; 0 - For Erase Row - .byte $fe,$30,$01,$fe ; 1 - For Erase Row - .byte $cd,$2f,$01,$c8 ; 0 - For Erase Column - .byte $fe,$30,$01,$fe ; 1 - For Erase Column - -; ********************************************************* -; Store the address of the background areas to be used * -; by the X's and O's to be placed on the game board * -; ********************************************************* - -filltopleft: - .byte $66,$67,$68,$69 - .byte $86,$87,$88,$89 - .byte $a6,$a7,$a8,$a9 - .byte $c6,$c7,$c8,$c9 -filltop: - .byte $6e,$6f,$70,$71 - .byte $8e,$8f,$90,$91 - .byte $ae,$af,$b0,$b1 - .byte $ce,$cf,$d0,$d1 -filltopright: - .byte $76,$77,$78,$79 - .byte $96,$97,$98,$99 - .byte $b6,$b7,$b8,$b9 - .byte $d6,$d7,$d8,$d9 -fillleft: - .byte $66,$67,$68,$69 - .byte $86,$87,$88,$89 - .byte $a6,$a7,$a8,$a9 - .byte $c6,$c7,$c8,$c9 -fillmiddle: - .byte $6e,$6f,$70,$71 - .byte $8e,$8f,$90,$91 - .byte $ae,$af,$b0,$b1 - .byte $ce,$cf,$d0,$d1 -fillright: - .byte $76,$77,$78,$79 - .byte $96,$97,$98,$99 - .byte $b6,$b7,$b8,$b9 - .byte $d6,$d7,$d8,$d9 -fillbottomleft: - .byte $66,$67,$68,$69 - .byte $86,$87,$88,$89 - .byte $a6,$a7,$a8,$a9 - .byte $c6,$c7,$c8,$c9 -fillbottom: - .byte $6e,$6f,$70,$71 - .byte $8e,$8f,$90,$91 - .byte $ae,$af,$b0,$b1 - .byte $ce,$cf,$d0,$d1 -fillbottomright: - .byte $76,$77,$78,$79 - .byte $96,$97,$98,$99 - .byte $b6,$b7,$b8,$b9 - .byte $d6,$d7,$d8,$d9 -clear_them: - .byte $00,$00,$00,$00 - .byte $00,$00,$00,$00 - .byte $00,$00,$00,$00 - .byte $00,$00,$00,$00 - -; ********************************************************* -; Tiles to use for X and O * -; ********************************************************* - -x_tiles: - .byte $80,$81,$00,$83 - .byte $00,$91,$92,$93 - .byte $00,$a1,$a2,$a3 - .byte $b0,$b1,$00,$b3 - -o_tiles: - .byte $84,$85,$86,$87 - .byte $94,$00,$00,$97 - .byte $a4,$00,$00,$a7 - .byte $b4,$b5,$b6,$b7 - -title: -.incbin "title.nam" - -board: -.incbin "board.nam" - -final: -.incbin "final.nam" - -; NIE USUWAĆ TO! -;stalemate: -; .byte $52,$53,$40,$4b,$44,$4c,$40,$53,$44,$20 -;blank_under_stale: -; .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 -;fix_message: -; .byte $09,$0a,$08,$08,$08,$08,$08,$08,$09,$0a -;under_fix_message: -; .byte $0b,$0c,$07,$07,$07,$07,$07,$07,$0b,$0c -;youwin: - ;.byte $00,$58,$4e,$54,$00,$56,$48,$4d,$20,$00 -game_over: - .byte $46,$40,$4c,$44 - .byte $00,$00,$00,$00 - .byte $4e,$55,$44,$51 - .byte $00,$00,$00,$00 - -.segment "VECTORS" - .addr nmi - .addr reset - .addr irq \ No newline at end of file diff --git a/Tic-Tac-Toe_v2/main.prg b/Tic-Tac-Toe_v2/main.prg deleted file mode 100644 index 0b69ed89fd28a702c0e227129798c0465d458541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/Tic-Tac-Toe_v2/makefile b/Tic-Tac-Toe_v2/makefile deleted file mode 100644 index c85483e..0000000 --- a/Tic-Tac-Toe_v2/makefile +++ /dev/null @@ -1,6 +0,0 @@ -all: main - -main: main.asm - ca65 main.asm -g -o main.o - ld65 -C memory.cfg -o main.prg main.o - cat ttxo.hdr main.prg graphics.chr > Tic-Tac-Toe.nes \ No newline at end of file diff --git a/Tic-Tac-Toe_v2/memory.cfg b/Tic-Tac-Toe_v2/memory.cfg deleted file mode 100644 index 8f41223..0000000 --- a/Tic-Tac-Toe_v2/memory.cfg +++ /dev/null @@ -1,14 +0,0 @@ -MEMORY { - ZP: start = $00, size = $100, type = rw; - RAM: start = $200, size = $600, type = rw; - WRAM: start = $6000, size = $2000, type = rw; - PRG: start = $8000, size = $8000, type = ro, file = %O; - } - SEGMENTS { - CODE: load = PRG, type = ro, start = $8000; - RODATA: load = PRG, type = ro; - DATA: load = RAM, type = bss; - ZEROPAGE: load = ZP, type = zp; - BSS: load = RAM, type = bss, define = yes; - VECTORS: load = PRG, type = ro, start = $FFFA; - } diff --git a/Tic-Tac-Toe_v2/title.nam b/Tic-Tac-Toe_v2/title.nam deleted file mode 100644 index 568c9adeb22d0db779098135591cd3af9473538c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmc&wZ3@CL4DGh=0~EZ7KlB6^DIzGyIwTkNUM?Ta*rs3yqM@|Byu2i@0Dq6HY4R+m zn^s{&nTP?3)!LR-31Eq51TbJsl@%W3B?t*W&ZO`>pSy`(Fpji%in`|cjBu9$>y(f0 ztFx(O<ZMbPQfI@@C=p-fb<-I=ayDlKlTXwxclN#=XU$jQ*7^`k=v>>Gt#M~_a#x?+ hIja4|A4$G5_kh=;7Rj@IUHD9ljnp0XvfxAa>;X!E+@k;h diff --git a/Tic-Tac-Toe_v2/ttxo.cdl b/Tic-Tac-Toe_v2/ttxo.cdl deleted file mode 100644 index ca5ea44f24f65b3d8acaaf654c430de8c51b16e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40960 zcmeIu0Sy2E0K%a6Pi+o2h(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd t0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0Rsm92L_-300961 diff --git a/Tic-Tac-Toe_v2/ttxo.hdr b/Tic-Tac-Toe_v2/ttxo.hdr deleted file mode 100644 index c8efa14feec00de0c68ba84b66407f745e6fa197..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 PcmeZs4VGeJWPk$z4*CHE diff --git a/Tic-Tac-Toe_v2/ttxo.nsf b/Tic-Tac-Toe_v2/ttxo.nsf deleted file mode 100644 index d3328b92383aee08cae5aa70eb9a2debd7db8c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6736 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 diff --git a/Tic-Tac-Toe_v2/ttxo.pal b/Tic-Tac-Toe_v2/ttxo.pal deleted file mode 100644 index 4fdafbad3ab60dadd7eae9881652633319223947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 gcmd;Q5mDi16jbErl+@&B5HR3p6H^1zAU;qW04Cf5a{vGU