2 %include "WonderSwan.inc"
12 ; Set Maps and Sprite Table at the end of first part of ram
13 fgmap equ WSC_TILE_BANK1-MAP_SIZE
14 bgmap equ fgmap-MAP_SIZE
15 sprtable equ bgmap-SPR_TABLE_SIZE
21 ;PADDING 15 ; Pad 15 Sections
28 cli ; Disable Interrupts
29 cld ; Offset in Increment mode
31 xor ax,ax ; Clear all registers
37 mov ds,ax ; Clear Segments
40 mov bp,ax ; Setup stack
44 in al,IO_HARDWARE_TYPE ; Check Wonderswan Mono/Color
46 .mono: jz .mono ; We loop forever if Mono
48 mov sp,WSC_STACK ; New stack
64 or al,VMODE_16C_CHK | VMODE_CLEANINIT
77 mov al,BG_MAP(bgmap) | FG_MAP(fgmap)
80 mov al,SPR_TABLE(sprtable)
94 mov di,INTVEC_VBLANK_START
97 mov word [es:di],VBlank
98 mov word [es:di+0x2],MYSEGMENT
100 xor ax,ax ; Clear HBL & Timer
101 out IOw_HBLANK_FREQ,ax
107 mov al,INT_VBLANK_START ; Enable VBL Int
110 sti ; Enable Interrupts !
112 ;--------------------------------
114 ; Set Segments for Copy
127 mov di,WSC_TILE_BANK1
128 mov cx,(TileGfxE-TileGfx)/2
142 mov ax,BG_CHR(0,0,0,0,0) ; Initial Tile, Pal 0, Bank 0
144 mov cx,MAP_TWIDTH*MAP_THEIGHT
149 out IO_DISPLAY_CTRL,al
156 mov al,KEYPAD_READ_BUTTONS
164 test al,PAD_A ; Press A for Audio
170 ;******************************************
181 in al,IO_BG_X ; Infinite Scroll
191 or al,INT_VBLANK_START
197 ;******************************************
201 TilePal: incbin "gfx/bgtile.pal"
202 TileGfx: incbin "gfx/bgtile.gfx"
205 ;******************************************
207 ;ROM_HEADER __end, MYSEGMENT, 0x42, RH_WS_COLOR, RH_ROM_8MBITS, RH_NO_SRAM, RH_HORIZONTAL
209 ;******************************************
213 ;start=0x0100 ; Keep space for Int Vectors
215 VBLcnt: resb 0 ; Our datas in RAM