2 %include "WonderSwan.inc"
8 ; Set Maps and Sprite Table at the end of first part of ram
9 fgmap equ WSC_TILE_BANK1-MAP_SIZE
10 bgmap equ fgmap-MAP_SIZE
11 sprtable equ bgmap-SPR_TABLE_SIZE
17 ;PADDING 15 ; Pad 15 Sections
24 cli ; Disable Interrupts
25 cld ; Offset in Increment mode
27 xor ax,ax ; Clear all registers
33 mov ds,ax ; Clear Segments
36 mov bp,ax ; Setup stack
40 in al,IO_HARDWARE_TYPE ; Check Wonderswan Mono/Color
42 .mono: jz .mono ; We loop forever if Mono
44 mov sp,WSC_STACK ; New stack
55 or al,VMODE_16C_CHK | VMODE_CLEANINIT
68 mov al,BG_MAP(bgmap) | FG_MAP(fgmap)
71 mov al,SPR_TABLE(sprtable)
85 mov di,INTVEC_VBLANK_START
88 mov word [es:di],VBlank
89 mov word [es:di+0x2],MYSEGMENT
91 xor ax,ax ; Clear HBL & Timer
92 out IOw_HBLANK_FREQ,ax
98 mov al,INT_VBLANK_START ; Enable VBL Int
101 sti ; Enable Interrupts !
103 ;--------------------------------
105 ; Set Segments for Copy
114 mov di,WSC_TILE_BANK1
115 mov cx,(TileGfxE-TileGfx)/2
123 mov ax,BG_CHR(0,0,0,0,0) ; Initial Tile, Pal 0, Bank 0
125 mov cx,MAP_TWIDTH*MAP_THEIGHT
130 out IO_DISPLAY_CTRL,al
134 mov al,KEYPAD_READ_BUTTONS
142 test al,PAD_A ; Press A for Audio
148 ;******************************************
159 in al,IO_BG_X ; Infinite Scroll
169 or al,INT_VBLANK_START
175 ;******************************************
179 TilePal: incbin "gfx/bgtile.pal"
180 TileGfx: incbin "gfx/bgtile.gfx"
183 ;******************************************
185 ROM_HEADER ..start, MYSEGMENT, 0x42, RH_WS_COLOR, RH_ROM_8MBITS, RH_NO_SRAM, RH_HORIZONTAL
187 ;******************************************
191 ;start=0x0100 ; Keep space for Int Vectors
193 VBLcnt: resb 0 ; Our datas in RAM