.MACRO Spin_Loop ARGS XCOUNT ldx #XCOUNT lvl3\@: lda #$ff lvl2\@: xba lda #$ff lvl1\@: dea cmp #$00 bne lvl1\@ xba dea cmp #$00 bne lvl2\@ dex txa cmp #$00 bne lvl3\@ .ENDM .MACRO Set_A_8_XY_16 ; 16-bit xy, 8-bit a rep #%00010000 sep #%00100000 .ENDM .MACRO Reset_Palette_Offset stz $2121 .ENDM .MACRO Load_Palette_Color ARGS BYTE1 BYTE2 lda #BYTE1 sta $2122 lda #BYTE2 sta $2122 .ENDM .MACRO Set_Screen_Brightness lda #\1 sta $2100 ; $2100 is the screen brightness register .ENDM .MACRO Enable_NMI_And_Joypad lda #%10000001 sta $4200 .ENDM ; loads, in a loop, an alternating grid of tiles .MACRO Tile_Load_Loop ldx #$0400 ; load $0400 (VRAM address of tile data) TileLoadLoop: stx $2116 ; store VRAM address of tile data to VRAM address word-sized register lda #$01 ; smile tile sta $2118 ;store tile map entry to the address specified in $2116 - this increments or not based on 2115 inx stx $2116 lda #$00 ; blank tile sta $2118 inx cpx #$0780 ; $400 - $780 seems to be limit of snes screen tile memory bne TileLoadLoop .ENDM