「NES/sprite」の編集履歴(バックアップ)一覧に戻る

NES/sprite - (2020/12/08 (火) 18:20:29) のソース

&image(sprite.png)

開発環境
-Windows 10 Home (64bit)
-ASM6

sprite.chr
 >fsutil file createNew sprite.chr 8192

 00000000  00 00 00 00 00 00 00 00 01 01 01 01 01 01 01 FF
 
 00001000  0F 0F 0F 0F 0F 0F 0F 0F 00 00 00 00 FF FF FF FF

sprite.asm
#highlight(asm){{
;asm6 sprite.asm sprite.nes

	; iNES header
	db	"NES", $1a
	db	$01	; PRG-ROM
	db	$01	; CHR-ROM
	db	$00	; mapper / mirroring
	dsb	9, $00

	base	$c000
Reset:
	lda	#$00
	sta	$2000	; PPU制御レジスタ1
	sta	$2001	; PPU制御レジスタ2

	; パレットテーブル $3f00-3f1f
	lda	#$3f
	sta	$2006	; VRAMアドレスレジスタ
	lda	#$00
	sta	$2006
	ldx	#$00
	ldy	#$20
-
	lda	palette, x
	sta	$2007	; VRAMアクセスレジスタ
	inx
	dey
	bne	-

	ldx	#$00
	stx	$2003	; スプライトアドレスレジスタ
	lda	#120	; y
	sta	$2004	; スプライトアクセスレジスタ
	inx
	stx	$2003
	lda	#$00	; tile
	sta	$2004
	inx
	stx	$2003
	lda	#$00	; attr
	sta	$2004
	inx
	stx	$2003
	lda	#128	; x
	sta	$2004

	lda	#$08
	sta	$2000	; PPU制御レジスタ1
	lda	#$1e
	sta	$2001	; PPU制御レジスタ2

	lda	#$00
	sta	$2005	; スクロールレジスタ
	sta	$2005
-
	jmp	-

palette:
	db	$0f, $28, $01, $28
	db	$00, $00, $00, $00
	db	$00, $00, $00, $00
	db	$00, $00, $00, $00

	db	$0f, $24, $28, $2c
	db	$00, $00, $00, $00
	db	$00, $00, $00, $00
	db	$00, $00, $00, $00

	org	$fffa
	dw	0	; NMI VBlank
	dw	Reset
	dw	0	; IRQ/BRK

	incbin	"sprite.chr"
}}