2 %include "WonderSwan.inc"
9 ; Set Maps and Sprite Table at the end of first part of ram
10 fgmap equ WSC_TILE_BANK1-MAP_SIZE
11 bgmap equ fgmap-MAP_SIZE
12 sprtable equ bgmap-SPR_TABLE_SIZE
18 ;PADDING 15 ; Pad 15 Sections
25 cli ; Disable Interrupts
26 cld ; Offset in Increment mode
28 xor ax,ax ; Clear all registers
34 mov ds,ax ; Clear Segments
37 mov bp,ax ; Setup stack
41 in al,IO_HARDWARE_TYPE ; Check Wonderswan Mono/Color
43 .mono: jz .mono ; We loop forever if Mono
45 mov sp,WSC_STACK ; New stack
58 or al,VMODE_16C_CHK | VMODE_CLEANINIT
71 mov al,BG_MAP(bgmap) | FG_MAP(fgmap)
74 mov al,SPR_TABLE(sprtable)
88 mov di,INTVEC_VBLANK_START
91 mov word [es:di],VBlank
92 mov word [es:di+0x2],MYSEGMENT
94 xor ax,ax ; Clear HBL & Timer
95 out IOw_HBLANK_FREQ,ax
101 mov al,INT_VBLANK_START ; Enable VBL Int
104 sti ; Enable Interrupts !
106 ;--------------------------------
108 ; Set Segments for Copy
117 mov di,WSC_TILE_BANK1
118 mov cx,(TileGfxE-TileGfx)/2
126 mov ax,BG_CHR(0,0,0,0,0) ; Initial Tile, Pal 0, Bank 0
128 mov cx,MAP_TWIDTH*MAP_THEIGHT
133 out IO_DISPLAY_CTRL,al
137 mov al,KEYPAD_READ_BUTTONS
145 test al,PAD_A ; Press A for Audio
151 ;******************************************
162 in al,IO_BG_X ; Infinite Scroll
172 or al,INT_VBLANK_START
178 ;******************************************
182 TilePal: incbin "gfx/bgtile.pal"
183 TileGfx: incbin "gfx/bgtile.gfx"
186 ;******************************************
188 ;ROM_HEADER __end, MYSEGMENT, 0x42, RH_WS_COLOR, RH_ROM_8MBITS, RH_NO_SRAM, RH_HORIZONTAL
190 ;******************************************
194 ;start=0x0100 ; Keep space for Int Vectors
196 VBLcnt: resb 0 ; Our datas in RAM