diff --git a/build.bat b/build.bat index f1df482..a3dfae4 100644 --- a/build.bat +++ b/build.bat @@ -1,6 +1,6 @@ @echo off -pcx2snes sprites.pcx -osprites.asm -b4 -nSprite -d -pcx2snes tiles.pcx -otiles.asm -b2 -nTile -d +pcx2snes -s32 -c16 -o16 -n sprites32 +pcx2snes -s16 -c4 -o4 -n tiles wla-65816 -o pewpew.asm pewpew.o wlalink -vr wlalink.cfg pewpew.smc del *.o \ No newline at end of file diff --git a/pewpew.asm b/pewpew.asm index aaa2f23..5d4e5c0 100644 --- a/pewpew.asm +++ b/pewpew.asm @@ -86,7 +86,7 @@ Start: ; Player's initial starting location. lda #(256 / 4) sta $20 - lda #((224 - 8) / 2) + lda #((224 - 16) / 2) sta $21 @@ -155,9 +155,8 @@ LoadPaletteAndTileData: stx DMA0SRC lda #:SpriteData sta DMA0SRCBANK - ; DMA 0 transfer size. - ; See the helpful comment in sprites.asm to find the size of the tile data. - ldx #640 + ; DMA 0 transfer size. Equal to the size of sprites32.pic. + ldx #2048 stx DMA0SIZE ; DMA 0 control register. ; Transfer type 001 = 2 addresses, LH. @@ -179,9 +178,8 @@ LoadPaletteAndTileData: stx DMA0SRC lda #:TileData sta DMA0SRCBANK - ; DMA 0 transfer size. - ; See the helpful comment in tiles.asm to find the size of the tile data. - ldx #384 + ; DMA 0 transfer size. Equal to the size of tiles.pic. + ldx #512 stx DMA0SIZE ; DMA 0 control register. ; Transfer type 001 = 2 addresses, LH. @@ -327,7 +325,7 @@ JoypadDown: cmp #$04 bne JoypadLeft ; Button not pressed. lda $21 - cmp #(224 - 16) + cmp #(224 - 32) beq JoypadLeft ; Value saturated. inc $21 inc $21 @@ -349,7 +347,7 @@ JoypadRight: cmp #$01 ; Right bne JoypadB ; Button not pressed. lda $20 - cmp #(256 - 16) + cmp #(256 - 32) beq JoypadB ; Value saturated. inc $20 inc $20 @@ -474,16 +472,13 @@ UpdateGraphics: lda $0021 sta $0101 ; Choose which sprite based on frame count. - lda $14 - and #%00000100 - lsr - sta $0102 ; Set priority bits so that the sprite is drawn in front. lda #%00110000 sta $0103 ; Clear x-MSB so that the sprite is displayed. lda $0300 and #%11111110 + ora #%00000010 ; ... and make it the large size. (32x32) sta $0300 ; Make the background scroll. Horizontal over time; vertical depending on @@ -545,8 +540,17 @@ FillScratch: .BANK 1 SLOT 0 .ORG 0 .SECTION "GraphicsData" -.INCLUDE "sprites.asm" -.INCLUDE "tiles.asm" + +SpriteData: + .INCBIN "sprites32.pic" +SpritePalette: + .INCBIN "sprites32.clr" + +TileData: + .INCBIN "tiles.pic" +TilePalette: + .INCBIN "tiles.clr" + .ENDS diff --git a/registers.asm b/registers.asm index 827cf16..0419c00 100644 --- a/registers.asm +++ b/registers.asm @@ -18,6 +18,8 @@ ; ; Here is a link to an online version of Yoshi's doc (v. 2.30): ; http://patpend.net/technical/snes/snes.txt +; Anomie's register doc is more up-to-date and might have better info: +; http://www.dforce3000.de/pub/doc/anomie_regs.txt ; $2100: Screen display initialization [INIDISP] ; Format: x000bbbb diff --git a/sprites.asm b/sprites.asm deleted file mode 100644 index 6f89012..0000000 --- a/sprites.asm +++ /dev/null @@ -1,30 +0,0 @@ -; Created with eKid's pcx2snes converter ; - -SpriteData: - .db $00, $00, $03, $03, $00, $03, $01, $03, $05, $07, $03, $01, $03, $03, $02, $03$00, $00, $00, $00, $03, $00, $03, $00, $03, $00, $02, $10, $03, $48, $00, $2F - .db $00, $00, $00, $00, $60, $E0, $00, $C0, $70, $F8, $C0, $F0, $F0, $FE, $E2, $CF$00, $00, $00, $00, $80, $00, $C0, $00, $40, $80, $30, $00, $CE, $00, $13, $EC - .db $00, $00, $03, $03, $00, $03, $01, $03, $05, $07, $03, $01, $03, $03, $02, $03$00, $00, $00, $00, $03, $00, $03, $00, $03, $20, $02, $90, $03, $00, $00, $67 - .db $00, $00, $00, $00, $60, $E0, $00, $C0, $70, $F8, $C0, $F0, $F0, $FE, $E2, $CF$00, $00, $00, $00, $80, $00, $C0, $00, $40, $80, $30, $00, $CE, $00, $13, $EC - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $02, $03, $03, $03, $03, $01, $05, $07, $01, $03, $00, $03, $03, $03, $00, $00$00, $37, $03, $48, $02, $10, $03, $00, $03, $00, $03, $00, $00, $00, $00, $00 - .db $E2, $CF, $F0, $FE, $C0, $F0, $70, $F8, $00, $C0, $60, $E0, $00, $00, $00, $00$13, $EC, $CE, $00, $30, $00, $40, $80, $C0, $00, $80, $00, $00, $00, $00, $00 - .db $02, $03, $03, $03, $03, $01, $05, $07, $01, $03, $00, $03, $03, $03, $00, $00$00, $4F, $03, $10, $02, $A0, $03, $00, $03, $00, $03, $00, $00, $00, $00, $00 - .db $E2, $CF, $F0, $FE, $C0, $F0, $70, $F8, $00, $C0, $60, $E0, $00, $00, $00, $00$13, $EC, $CE, $00, $30, $00, $40, $80, $C0, $00, $80, $00, $00, $00, $00, $00 - -SpritePalette: - .db $1F, $7C, $00, $00, $8D, $0C, $08, $19, $25, $29, $CF, $18, $8B, $29, $0F, $36 - .db $1F, $02, $8E, $5E, $18, $5B, $FF, $7F, $00, $00, $00, $00, $00, $00, $00, $00 - -; 20 tiles (12 spaces) -; 640 bytes diff --git a/sprites32.pcx b/sprites32.pcx new file mode 100644 index 0000000..0190c3e Binary files /dev/null and b/sprites32.pcx differ diff --git a/tiles.asm b/tiles.asm deleted file mode 100644 index 06c8c6c..0000000 --- a/tiles.asm +++ /dev/null @@ -1,33 +0,0 @@ -; Created with eKid's pcx2snes converter ; - -TileData: - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - .db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 - -TilePalette: - .db $1F, $7C, $00, $00, $FF, $7F, $1F, $02 - -; 24 tiles (8 spaces) -; 384 bytes