Add some convenience routines for moving and resizing overlays
This commit is contained in:
parent
ab0a8e62db
commit
8ee0214164
|
@ -43,6 +43,11 @@ draw_pixel_to_overlay: jmp [0xF004301C]
|
||||||
draw_filled_rectangle_to_overlay: jmp [0xF0043020]
|
draw_filled_rectangle_to_overlay: jmp [0xF0043020]
|
||||||
check_if_overlay_covers_position: jmp [0xF0043024]
|
check_if_overlay_covers_position: jmp [0xF0043024]
|
||||||
check_if_enabled_overlay_covers_position: jmp [0xF0043028]
|
check_if_enabled_overlay_covers_position: jmp [0xF0043028]
|
||||||
|
enable_overlay: jmp [0xF004302C]
|
||||||
|
disable_overlay: jmp [0xF0043030]
|
||||||
|
move_overlay: jmp [0xF0043034]
|
||||||
|
resize_overlay: jmp [0xF0043038]
|
||||||
|
set_overlay_framebuffer_pointer: jmp [0xF004303C]
|
||||||
|
|
||||||
; menu bar jump table
|
; menu bar jump table
|
||||||
enable_menu_bar: jmp [0xF0044000]
|
enable_menu_bar: jmp [0xF0044000]
|
||||||
|
|
5
main.asm
5
main.asm
|
@ -189,6 +189,11 @@ get_rom_version:
|
||||||
data.32 draw_filled_rectangle_to_overlay
|
data.32 draw_filled_rectangle_to_overlay
|
||||||
data.32 check_if_overlay_covers_position
|
data.32 check_if_overlay_covers_position
|
||||||
data.32 check_if_enabled_overlay_covers_position
|
data.32 check_if_enabled_overlay_covers_position
|
||||||
|
data.32 enable_overlay
|
||||||
|
data.32 disable_overlay
|
||||||
|
data.32 move_overlay
|
||||||
|
data.32 resize_overlay
|
||||||
|
data.32 set_overlay_framebuffer_pointer
|
||||||
|
|
||||||
; menu bar jump table
|
; menu bar jump table
|
||||||
org.pad 0xF0044000
|
org.pad 0xF0044000
|
||||||
|
|
74
overlay.asm
74
overlay.asm
|
@ -1,5 +1,79 @@
|
||||||
; overlay routines
|
; overlay routines
|
||||||
|
|
||||||
|
; enable an overlay
|
||||||
|
; inputs:
|
||||||
|
; r0: overlay number
|
||||||
|
; outputs:
|
||||||
|
; none
|
||||||
|
enable_overlay:
|
||||||
|
push r0
|
||||||
|
|
||||||
|
or r0, 0x80000300
|
||||||
|
out r0, 1
|
||||||
|
|
||||||
|
pop r0
|
||||||
|
ret
|
||||||
|
|
||||||
|
; disable an overlay
|
||||||
|
; inputs:
|
||||||
|
; r0: overlay number
|
||||||
|
; outputs:
|
||||||
|
; none
|
||||||
|
disable_overlay:
|
||||||
|
push r0
|
||||||
|
|
||||||
|
or r0, 0x80000300
|
||||||
|
out r0, 0
|
||||||
|
|
||||||
|
pop r0
|
||||||
|
ret
|
||||||
|
|
||||||
|
; move an overlay
|
||||||
|
; r0: X position
|
||||||
|
; r1: Y position
|
||||||
|
; r2: overlay number
|
||||||
|
move_overlay:
|
||||||
|
push r1
|
||||||
|
push r2
|
||||||
|
|
||||||
|
or r2, 0x80000000
|
||||||
|
sla r1, 16
|
||||||
|
mov.16 r1, r0
|
||||||
|
out r2, r1
|
||||||
|
|
||||||
|
pop r2
|
||||||
|
pop r1
|
||||||
|
ret
|
||||||
|
|
||||||
|
; resize an overlay
|
||||||
|
; r0: width
|
||||||
|
; r1: height
|
||||||
|
; r2: overlay number
|
||||||
|
resize_overlay:
|
||||||
|
push r1
|
||||||
|
push r2
|
||||||
|
|
||||||
|
or r2, 0x80000100
|
||||||
|
sla r1, 16
|
||||||
|
mov.16 r1, r0
|
||||||
|
out r2, r1
|
||||||
|
|
||||||
|
pop r2
|
||||||
|
pop r1
|
||||||
|
ret
|
||||||
|
|
||||||
|
; set an overlay's framebuffer pointer
|
||||||
|
; r0: framebuffer pointer
|
||||||
|
; r1: overlay number
|
||||||
|
set_overlay_framebuffer_pointer:
|
||||||
|
push r1
|
||||||
|
|
||||||
|
or r1, 0x80000200
|
||||||
|
out r1, r0
|
||||||
|
|
||||||
|
pop r1
|
||||||
|
ret
|
||||||
|
|
||||||
; fill a whole overlay with a color
|
; fill a whole overlay with a color
|
||||||
; inputs:
|
; inputs:
|
||||||
; r0: color
|
; r0: color
|
||||||
|
|
Loading…
Reference in New Issue
Block a user