add loader
This commit is contained in:
94
snes/loader/routines/oamobjects.asm
Normal file
94
snes/loader/routines/oamobjects.asm
Normal file
@@ -0,0 +1,94 @@
|
||||
.Section "oam objects" superfree
|
||||
;relative pointers to objects:
|
||||
ObjectLUT:
|
||||
.dw (Object000-ObjectLUT)
|
||||
.dw (Object001-ObjectLUT)
|
||||
|
||||
|
||||
|
||||
Object000:
|
||||
.db %11011010 ;object type designation
|
||||
;bit3=subroutine? if set, this object has its own subroutine that must be executed every frame
|
||||
;bit4=animate? if set, this object is animated(a special table for each object specifies the exact animation with commands for tileloading, waiting, animation loop etc)
|
||||
;bit5=screen-bound? if set, this object must move in accordance with background layer 0
|
||||
;bit6=object active? if set, this object is active and needs to be processed. if clear, this sprite doesnt need to be processed
|
||||
;bit7=object present? if set, this slot has an object. if clear, its considered empty and can be overwritten
|
||||
.db %00000000 ;object type designation 2
|
||||
.db $02 ;number of subroutine. executed if bit6 of object type is set
|
||||
.db 0 ;tileset to use
|
||||
.db $00 ;current "frame" of tileset to display
|
||||
.db $08 ;starting tile in vram
|
||||
.db %00110110 ;palette and config
|
||||
.dw $80 ;x position
|
||||
.dw $80 ;y position
|
||||
.db 0 ;current frame in animation list
|
||||
.db 0 ;object command list to use
|
||||
.db 0 ;object offset in object list.
|
||||
.db 0 ;palette number to upload for this sprite
|
||||
.dw 0 ;object number
|
||||
|
||||
.db 0 ;x-displacement
|
||||
.db 0 ;y-displacement
|
||||
.db 0 ;z-displacement
|
||||
.db 0 ;animation repeat counter for nop
|
||||
.db 0 ;collision subroutine
|
||||
.db 0 ;vector speed. 3bit + 3bit sub-pixel accuracy. msb set=target speed met.(speed=0: don't calc vector movement)
|
||||
.db 0 ;void
|
||||
.db 0 ;void
|
||||
.db 0 ;void
|
||||
.db 7 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
|
||||
|
||||
|
||||
;cpu usage indicator
|
||||
Object001:
|
||||
.db %11101000 ;object type designation
|
||||
;bit0=X position sign of sprite(usually 0)
|
||||
;bit1=Object size flag
|
||||
;bit2=collidable
|
||||
;bit3=subroutine? if set, this object has its own subroutine that must be executed every frame
|
||||
;bit4=animate? if set, this object is animated(a special table for each object specifies the exact animation with commands for tileloading, waiting, animation loop etc)
|
||||
;bit5=bg-bound? if set, this object must move in accordance with background layer 0
|
||||
;bit6=object active? if set, this object is active and needs to be drawn. if clear, this sprite doesnt need to be drawn, but must be processed, anyway
|
||||
;bit7=object present? if set, this slot has an object. if clear, its considered empty and can be overwritten
|
||||
.db %00100000 ;object type designation 2
|
||||
;bit7=pseudo 3d sprite that needs to be moved according to z-value when background moves
|
||||
;bit6=don't upload tiles for this sprite. useful for stuff like particles and such where lots of sprites share the same tiles.
|
||||
;bit5=don't upload palette for this sprite.
|
||||
;bits0-3: current position in vector angle LUT (didn't fit anywhere else)
|
||||
|
||||
.db 1 ;number of subroutine. executed if bit6 of object type is set
|
||||
.db 0 ;tileset to use
|
||||
.db $00 ;current "frame" of tileset to display
|
||||
.db $ff ;starting tile in vram
|
||||
.db %00110001 ;palette and config
|
||||
.dw 1*16 ;x position
|
||||
.dw 1 ;y position
|
||||
.db 0 ;current frame in animation list
|
||||
.db 0 ;object command list to use
|
||||
.db 0 ;object offset in object list.
|
||||
.db 0 ;palette number to upload for this sprite
|
||||
.dw 0 ;object number
|
||||
|
||||
.db 0 ;x-displacement
|
||||
.db 0 ;y-displacement
|
||||
.db 0 ;z-displacement
|
||||
.db 0 ;animation repeat counter for nop
|
||||
.db 0 ;collision subroutine
|
||||
.db 0 ;vector speed. bit0-2:subpixel speed. bit3-5:pixel speed. bit7 set: target speed met
|
||||
.db 0 ;vector target speed. bit0-2:subpixel speed target. bit3-5:pixel speed target. bit6,7: movement type(direct, linear slow, linear fast, smooth)
|
||||
.db 0 ;vector direction. bit0-5:direction.0=facing up. bit6=turning direction.(set=clockwise) msb set=target direction met.
|
||||
.db 0 ;vector target dir. bit0-5:target direction.0=facing up. bit6,7: movement type(direct, linear slow, linear fast, smooth)
|
||||
.db 0 ;subpixel buffer. bit0-2:vector speed subpixel buffer. bit3-7: direction turn speed sub-pixel buffer.
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
.db 0 ;spare variable
|
||||
|
||||
.ends
|
||||
Reference in New Issue
Block a user