149 lines
3.4 KiB
NASM
149 lines
3.4 KiB
NASM
;============================================================================
|
|
; Includes
|
|
;============================================================================
|
|
|
|
;== Include MemoryMap, Vector Table, and HeaderInfo ==
|
|
.INCLUDE "header.inc"
|
|
|
|
;== Include SNES Initialization routines ==
|
|
.INCLUDE "init.inc"
|
|
.INCLUDE "LoadGraphics.asm"
|
|
.INCLUDE "debug.asm"
|
|
|
|
;============================================================================
|
|
; Main Code
|
|
;============================================================================
|
|
|
|
.EQU PalNum $0000 ; Use some RAM
|
|
|
|
.BANK 0 SLOT 0
|
|
.ORG 0
|
|
.SECTION "MainCode"
|
|
|
|
Start:
|
|
InitSNES ; Clear registers, etc.
|
|
|
|
; Load Palette for our tiles
|
|
LoadPalette OptixxPalette, 0, 16
|
|
|
|
; Load Tile data to VRAM
|
|
;LoadBlockToVRAM TilesData, $0000, $0020 ; 2 tiles, 2bpp, = 32 bytes
|
|
;LoadBlockToVRAM OptixxData, $0000, 0xa00 ; 160 tiles, 2bpp, = 2560 bytes
|
|
;LoadBlockToVRAM OptixxData, $0000, 0x1e00 ; 480 tiles, 2bpp, = 7680 bytes
|
|
LoadBlockToVRAM OptixxData, $0000, 0x3c00 ; 960 tiles, 2bpp, = 15360 bytes
|
|
|
|
lda #$80
|
|
sta $2115
|
|
;ldx #$0800 ; 5AF
|
|
ldx #$4000 ; 5AF
|
|
stx $2116
|
|
|
|
ldx #$0
|
|
Start_do:
|
|
stx $2118
|
|
inx
|
|
cpx #960
|
|
bne Start_do
|
|
|
|
; Setup Video modes and other stuff, then turn on the screen
|
|
jsr SetupVideo
|
|
|
|
prints "Init done"
|
|
|
|
lda #$81
|
|
sta $4200
|
|
|
|
Infinity:
|
|
lda PalNum
|
|
clc
|
|
adc #$01
|
|
and #$ff ; If > palette starting color > 24 (00011100), make 0
|
|
sta PalNum
|
|
jmp Infinity ; bwa hahahahaha
|
|
|
|
|
|
;============================================================================
|
|
; SetupVideo -- Sets up the video mode and tile-related registers
|
|
;----------------------------------------------------------------------------
|
|
; In: None
|
|
;----------------------------------------------------------------------------
|
|
; Out: None
|
|
;----------------------------------------------------------------------------
|
|
|
|
|
|
SetupVideo:
|
|
php
|
|
|
|
lda #$00
|
|
sta $2105 ; Set Video mode 0, 8x8 tiles, 4 color BG1/BG2/BG3/BG4
|
|
|
|
;lda #$08 ; Set BG1's Tile Map offset to $0800 (Word address)
|
|
lda #$40 ; Set BG1's Tile Map offset to $2000 (Word address)
|
|
sta $2107 ; And the Tile Map size to 32x32
|
|
|
|
stz $210B ; Set BG1's Character VRAM offset to $0000 (word address)
|
|
|
|
lda #$01 ; Enable BG1
|
|
sta $212C
|
|
|
|
lda #$FF
|
|
sta $210E
|
|
sta $210E
|
|
|
|
lda #$0F
|
|
sta $2100 ; Turn on screen, full Brightness
|
|
|
|
plp
|
|
rts
|
|
|
|
;.ENDS
|
|
|
|
;.SECTION "IRQHandlers"
|
|
|
|
COPHandler:
|
|
prints "COPHandler"
|
|
rti
|
|
|
|
BRKHandler:
|
|
prints "BRKHandler"
|
|
rti
|
|
ABRTHandler:
|
|
prints "ABRTHandler"
|
|
rti
|
|
NMIHandler:
|
|
;prints "NMIHandler"
|
|
rti
|
|
|
|
IRQHandler:
|
|
stz $2121
|
|
lda PalNum
|
|
sta $2122
|
|
sta $2122
|
|
prints "IRQHandler"
|
|
rti
|
|
|
|
|
|
str_COP:
|
|
.db "COP",10,0
|
|
str_ABORT:
|
|
.db "ABORT",10,0
|
|
str_NMI:
|
|
.db "NMI",10,0
|
|
str_RESET:
|
|
.db "RESET",10,0
|
|
str_IRQBRK:
|
|
.db "IRQBRK",10,0
|
|
|
|
|
|
;============================================================================
|
|
.ENDS
|
|
|
|
;============================================================================
|
|
; Character Data
|
|
;============================================================================
|
|
|
|
.BANK 0 SLOT 0
|
|
.SECTION "CharacterData02"
|
|
.INCLUDE "optixx.inc"
|
|
.ENDS
|