diff --git a/.gitignote b/.gitignote new file mode 100644 index 0000000..e69de29 diff --git a/src/out/powong.cdl b/src/out/powong.cdl new file mode 100644 index 0000000..ca5ea44 Binary files /dev/null and b/src/out/powong.cdl differ diff --git a/src/out/powong.dbg b/src/out/powong.dbg new file mode 100644 index 0000000..c28d051 --- /dev/null +++ b/src/out/powong.dbg @@ -0,0 +1,172 @@ +version major=2,minor=0 +info csym=0,file=2,lib=0,line=157,mod=1,scope=0,seg=10,span=0,sym=0,type=0 +file id=0,name="powong.s",size=2919,mtime=0x5EED9F56,mod=0 +file id=1,name="res/owo.chr",size=8192,mtime=0x5EECA9DF,mod=0 +line id=0,file=0,line=204 +line id=1,file=0,line=199 +line id=2,file=0,line=25 +line id=3,file=0,line=30 +line id=4,file=0,line=19 +line id=5,file=0,line=109 +line id=6,file=0,line=92 +line id=7,file=0,line=106 +line id=8,file=0,line=136 +line id=9,file=0,line=124 +line id=10,file=0,line=133 +line id=11,file=0,line=131 +line id=12,file=0,line=138 +line id=13,file=0,line=85 +line id=14,file=0,line=169 +line id=15,file=0,line=11 +line id=16,file=0,line=80 +line id=17,file=0,line=162 +line id=18,file=0,line=48 +line id=19,file=0,line=93 +line id=20,file=0,line=135 +line id=21,file=0,line=108 +line id=22,file=0,line=72 +line id=23,file=0,line=0 +line id=24,file=0,line=71 +line id=25,file=0,line=63 +line id=26,file=0,line=143 +line id=27,file=0,line=158 +line id=28,file=0,line=41 +line id=29,file=0,line=111 +line id=30,file=0,line=147 +line id=31,file=0,line=38 +line id=32,file=0,line=115 +line id=33,file=0,line=191 +line id=34,file=0,line=9 +line id=35,file=0,line=150 +line id=36,file=0,line=102 +line id=37,file=0,line=2 +line id=38,file=0,line=20 +line id=39,file=0,line=87 +line id=40,file=0,line=179 +line id=41,file=0,line=5 +line id=42,file=0,line=154 +line id=43,file=0,line=153 +line id=44,file=0,line=18 +line id=45,file=0,line=176 +line id=46,file=0,line=149 +line id=47,file=0,line=56 +line id=48,file=0,line=76 +line id=49,file=0,line=182 +line id=50,file=0,line=79 +line id=51,file=0,line=69 +line id=52,file=0,line=198 +line id=53,file=0,line=160 +line id=54,file=0,line=177 +line id=55,file=0,line=188 +line id=56,file=0,line=21 +line id=57,file=0,line=132 +line id=58,file=0,line=116 +line id=59,file=0,line=98 +line id=60,file=0,line=107 +line id=61,file=0,line=195 +line id=62,file=0,line=128 +line id=63,file=0,line=51 +line id=64,file=0,line=171 +line id=65,file=0,line=142 +line id=66,file=0,line=65 +line id=67,file=0,line=155 +line id=68,file=0,line=52 +line id=69,file=0,line=59 +line id=70,file=0,line=196 +line id=71,file=0,line=101 +line id=72,file=0,line=183 +line id=73,file=0,line=167 +line id=74,file=0,line=74 +line id=75,file=0,line=110 +line id=76,file=0,line=7 +line id=77,file=0,line=36 +line id=78,file=0,line=46 +line id=79,file=0,line=192 +line id=80,file=0,line=94 +line id=81,file=0,line=33 +line id=82,file=0,line=105 +line id=83,file=0,line=200 +line id=84,file=0,line=29 +line id=85,file=0,line=113 +line id=86,file=0,line=73 +line id=87,file=0,line=203 +line id=88,file=0,line=186 +line id=89,file=0,line=100 +line id=90,file=0,line=175 +line id=91,file=0,line=156 +line id=92,file=0,line=8 +line id=93,file=0,line=61 +line id=94,file=0,line=168 +line id=95,file=0,line=10 +line id=96,file=0,line=70 +line id=97,file=0,line=141 +line id=98,file=0,line=187 +line id=99,file=0,line=4 +line id=100,file=0,line=37 +line id=101,file=0,line=55 +line id=102,file=0,line=197 +line id=103,file=0,line=139 +line id=104,file=0,line=23 +line id=105,file=0,line=145 +line id=106,file=0,line=91 +line id=107,file=0,line=165 +line id=108,file=0,line=78 +line id=109,file=0,line=42 +line id=110,file=0,line=40 +line id=111,file=0,line=97 +line id=112,file=0,line=178 +line id=113,file=0,line=173 +line id=114,file=0,line=180 +line id=115,file=0,line=174 +line id=116,file=0,line=159 +line id=117,file=0,line=194 +line id=118,file=0,line=44 +line id=119,file=0,line=172 +line id=120,file=0,line=151 +line id=121,file=0,line=161 +line id=122,file=0,line=119 +line id=123,file=0,line=190 +line id=124,file=0,line=27 +line id=125,file=0,line=181 +line id=126,file=0,line=99 +line id=127,file=0,line=82 +line id=128,file=0,line=75 +line id=129,file=0,line=118 +line id=130,file=0,line=122 +line id=131,file=0,line=164 +line id=132,file=0,line=47 +line id=133,file=0,line=126 +line id=134,file=0,line=32 +line id=135,file=0,line=26 +line id=136,file=0,line=35 +line id=137,file=0,line=157 +line id=138,file=0,line=3 +line id=139,file=0,line=207 +line id=140,file=0,line=170 +line id=141,file=0,line=39 +line id=142,file=0,line=24 +line id=143,file=0,line=96 +line id=144,file=0,line=31 +line id=145,file=0,line=6 +line id=146,file=0,line=83 +line id=147,file=0,line=137 +line id=148,file=0,line=163 +line id=149,file=0,line=68 +line id=150,file=0,line=129 +line id=151,file=0,line=60 +line id=152,file=0,line=144 +line id=153,file=0,line=152 +line id=154,file=0,line=89 +line id=155,file=0,line=88 +line id=156,file=0,line=43 +mod id=0,name="powong.o",file=0 +seg id=0,name="CODE",start=0x00812C,size=0x0000,addrsize=absolute,type=ro,oname="out\powong.nes",ooffs=316 +seg id=1,name="RODATA",start=0x00812C,size=0x0000,addrsize=absolute,type=ro,oname="out\powong.nes",ooffs=316 +seg id=2,name="BSS",start=0x006000,size=0x0000,addrsize=absolute,type=rw +seg id=3,name="DATA",start=0x006000,size=0x0000,addrsize=absolute,type=rw,oname="out\powong.nes",ooffs=316 +seg id=4,name="ZEROPAGE",start=0x000002,size=0x0000,addrsize=zeropage,type=rw +seg id=5,name="NULL",start=0x000000,size=0x0000,addrsize=absolute,type=rw +seg id=6,name="HEADER",start=0x000000,size=0x0010,addrsize=absolute,type=ro,oname="out\powong.nes",ooffs=0 +seg id=7,name="STARTUP",start=0x008000,size=0x012C,addrsize=absolute,type=ro,oname="out\powong.nes",ooffs=16 +seg id=8,name="VECTORS",start=0x00FFFA,size=0x0004,addrsize=absolute,type=rw,oname="out\powong.nes",ooffs=32778 +seg id=9,name="CHARS",start=0x000000,size=0x2000,addrsize=absolute,type=rw,oname="out\powong.nes",ooffs=32784 diff --git a/src/out/powong.nes b/src/out/powong.nes new file mode 100644 index 0000000..651d29c Binary files /dev/null and b/src/out/powong.nes differ diff --git a/src/out/powong.nes.deb b/src/out/powong.nes.deb new file mode 100644 index 0000000..653533a Binary files /dev/null and b/src/out/powong.nes.deb differ diff --git a/src/powong.o b/src/powong.o new file mode 100644 index 0000000..cdc85ec Binary files /dev/null and b/src/powong.o differ diff --git a/src/powong.s b/src/powong.s new file mode 100644 index 0000000..0c00869 --- /dev/null +++ b/src/powong.s @@ -0,0 +1,207 @@ +.segment "HEADER" + .byte "NES" + .byte $1a + .byte $02 + .byte $01 + .byte %00000000 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00, $00, $00, $00, $00 + +.segment "ZEROPAGE" + +.segment "STARTUP" + +;subroutines +VBlankWait: + bit $2002 + bpl VBlankWait + rts +;movement +MoveFwd: + lda $0200, x + clc + adc #$01 + rts + +MoveBkd: + lda $0200, x + sec + sbc #$01 + rts + +Move: + and #$00000001 + beq :+ + jsr MoveFwd + jmp MoveDone +: + jsr MoveBkd +MoveDone: + sta $0200, x + rts + +RESET: + sei + cld + + ;stop apu + ldx #$40 + stx $4017 + + ;init stack register + ldx #$ff + txs + + ;set ppu registers to 0 + inx + stx $2000 + stx $2001 + + stx $4010 + + jsr VBlankWait + + ;clear memory + txa +MEMCLR: + sta $0000, x + sta $0100, x + sta $0300, x + sta $0400, x + sta $0500, x + sta $0600, x + sta $0700, x + ;allocate sprite memory + lda #$ff + sta $0200, x + lda #$00 + + inx + bne MEMCLR + + jsr VBlankWait + + lda #$02 + sta $4014 + nop + + lda #$3f + sta $2006 + lda #$00 + sta $2006 + + ldx #$00 +LoadPalette: + lda PaletteData, x + sta $2007 + inx + cpx #$20 + bne LoadPalette + +;load sprites to allocated sprite memory + ldx #$00 +LoadSprite: + lda OwOSprite, x + sta $0200, x + inx + cpx #$18 + bne LoadSprite + + cli + + lda #%10010000 + sta $2000 + + lda #%00011110 + sta $2001 + + ;declare variables + lda #$01 + ;vmovefwd .set 1 + sta $0000 + ;hmovefwd .set 1 + sta $0001 + +Loop: + jmp Loop + +NMI: + ldx #$00 +MoveLoop: + ;vertical + lda $0000 + jsr Move + inx + inx + inx + ;horizontal + lda $0001 + jsr Move + inx + cpx #$18 + bne MoveLoop + +CheckWall: + ;jmp EndHorChk + ldx $0203 + cpx #$08 + beq :+ + cpx #$e8 + beq :+ + jmp EndHorChk +: + lda $0001 + cmp #$00 + bne :+ + lda #$01 + sta $0001 + jmp EndHorChk +: + lda #$00 + sta $0001 +EndHorChk: + ;jmp EndVertChk + ldx $0200 + cpx #$08 + beq :+ + cpx #$d4 + beq :+ + jmp EndVertChk +: + lda $0000 + cmp #$00 + bne :+ + lda #$01 + sta $0000 + jmp EndVertChk +: + lda #$00 + sta $0000 +EndVertChk: + + ;update sprites + lda #$02 + sta $4014 + rti + +PaletteData: + .byte $0f,$00,$00,$25,$0f,$00,$00,$25,$0f,$00,$00,$25,$0f,$00,$00,$25 + .byte $0f,$00,$00,$25,$0f,$00,$00,$25,$0f,$00,$00,$25,$0f,$00,$00,$25 + +OwOSprite: + .byte $a0,$00,$00,$10 + .byte $a0,$01,$00,$18 + .byte $a0,$02,$00,$20 + .byte $a8,$03,$00,$10 + .byte $a8,$04,$00,$18 + .byte $a8,$05,$00,$20 + +.segment "VECTORS" + .word NMI + .word RESET + +.segment "CHARS" + .incbin "res/owo.chr" \ No newline at end of file diff --git a/src/res/owo.chr b/src/res/owo.chr new file mode 100644 index 0000000..887e4fd Binary files /dev/null and b/src/res/owo.chr differ diff --git a/src/testrun.bat b/src/testrun.bat new file mode 100644 index 0000000..b86f9b3 --- /dev/null +++ b/src/testrun.bat @@ -0,0 +1,3 @@ +ca65 powong.s -o powong.o -t nes +ld65 powong.o -o out\powong.nes -t nes --dbgfile out\powong.dbg +start out\powong.nes \ No newline at end of file