diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/emerald.s | 2 | ||||
| -rw-r--r-- | asm/gpu_reg_manager.s | 410 | 
2 files changed, 1 insertions, 411 deletions
| diff --git a/asm/emerald.s b/asm/emerald.s index a8ed6cd82..1b48e8b07 100644 --- a/asm/emerald.s +++ b/asm/emerald.s @@ -15,7 +15,7 @@ Start:  	.include "asm/main.s"  	.include "genasm/malloc.s"  	.include "asm/dma3_manager.s" -	.include "asm/gpu_reg_manager.s" +	.include "genasm/gpu_regs.s"  	.include "asm/gpu_bg.s"  	.include "asm/pixel_buffer.s"  	.include "asm/window.s" diff --git a/asm/gpu_reg_manager.s b/asm/gpu_reg_manager.s deleted file mode 100644 index 368ceaa22..000000000 --- a/asm/gpu_reg_manager.s +++ /dev/null @@ -1,410 +0,0 @@ -	thumb_func_start InitGpuRegManager -; void InitGpuRegManager() -InitGpuRegManager: ; 8000FE4 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	movs r2, 0 -	ldr r7, =0x030008d8 -	ldr r0, =0x030008d9 -	mov r12, r0 -	ldr r1, =0x030008da -	mov r8, r1 -	ldr r6, =0x03000818 -	movs r5, 0 -	ldr r4, =0x03000878 -	movs r3, 0xFF -_08000FFE: -	adds r0, r2, r6 -	strb r5, [r0] -	adds r1, r2, r4 -	ldrb r0, [r1] -	orrs r0, r3 -	strb r0, [r1] -	adds r2, 0x1 -	cmp r2, 0x5F -	ble _08000FFE -	movs r0, 0 -	strb r0, [r7] -	mov r1, r12 -	strb r0, [r1] -	movs r0, 0 -	mov r1, r8 -	strh r0, [r1] -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end InitGpuRegManager - -	thumb_func_start CopyBufferedValueToGpuReg -; void CopyBufferedValueToGpuReg(u8 reg) -CopyBufferedValueToGpuReg: ; 800103C -	push {lr} -	lsls r0, 24 -	lsrs r2, r0, 24 -	cmp r2, 0x4 -	bne _08001068 -	ldr r2, =0x04000004 -	ldrh r1, [r2] -	ldr r0, =0x0000ffe7 -	ands r0, r1 -	strh r0, [r2] -	ldr r1, =0x0300081c -	ldrh r0, [r2] -	ldrh r1, [r1] -	orrs r0, r1 -	strh r0, [r2] -	b _08001076 -	.pool -_08001068: -	movs r0, 0x80 -	lsls r0, 19 -	adds r0, r2, r0 -	ldr r1, =0x03000818 -	adds r1, r2, r1 -	ldrh r1, [r1] -	strh r1, [r0] -_08001076: -	pop {r0} -	bx r0 -	.pool -	thumb_func_end CopyBufferedValueToGpuReg - -	thumb_func_start CopyBufferedValuesToGpuRegs -; void CopyBufferedValuesToGpuRegs() -CopyBufferedValuesToGpuRegs: ; 8001080 -	push {r4,r5,lr} -	ldr r0, =0x030008d8 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _080010A4 -	movs r5, 0 -_0800108C: -	ldr r0, =0x03000878 -	adds r4, r5, r0 -	ldrb r0, [r4] -	cmp r0, 0xFF -	beq _080010A4 -	bl CopyBufferedValueToGpuReg -	movs r0, 0xFF -	strb r0, [r4] -	adds r5, 0x1 -	cmp r5, 0x5F -	ble _0800108C -_080010A4: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end CopyBufferedValuesToGpuRegs - -	thumb_func_start SetGpuReg -; void SetGpuReg(u8 reg, u16 value) -SetGpuReg: ; 80010B4 -	push {r4,r5,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	lsls r1, 16 -	lsrs r1, 16 -	cmp r4, 0x5F -	bhi _08001130 -	ldr r0, =0x03000818 -	adds r0, r4, r0 -	strh r1, [r0] -	ldr r0, =0x04000006 -	ldrh r1, [r0] -	movs r0, 0xFF -	ands r0, r1 -	subs r0, 0xA1 -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0x40 -	bls _080010E8 -	movs r0, 0x80 -	lsls r0, 19 -	ldrh r1, [r0] -	movs r0, 0x80 -	ands r0, r1 -	cmp r0, 0 -	beq _080010FE -_080010E8: -	adds r0, r4, 0 -	bl CopyBufferedValueToGpuReg -	b _08001130 -	.pool -_080010F8: -	movs r0, 0 -	strb r0, [r5] -	b _08001130 -_080010FE: -	ldr r2, =0x030008d8 -	movs r0, 0x1 -	strb r0, [r2] -	movs r3, 0 -	ldr r0, =0x03000878 -	ldrb r1, [r0] -	adds r5, r2, 0 -	adds r2, r0, 0 -	cmp r1, 0xFF -	beq _08001128 -	adds r1, r2, 0 -_08001114: -	ldrb r0, [r1] -	cmp r0, r4 -	beq _080010F8 -	adds r1, 0x1 -	adds r3, 0x1 -	cmp r3, 0x5F -	bgt _08001128 -	ldrb r0, [r1] -	cmp r0, 0xFF -	bne _08001114 -_08001128: -	adds r0, r3, r2 -	movs r1, 0 -	strb r4, [r0] -	strb r1, [r5] -_08001130: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end SetGpuReg - -	thumb_func_start SetGpuReg_ForcedBlank -; void SetGpuReg_ForcedBlank(u8 reg, u16 value) -SetGpuReg_ForcedBlank: ; 8001140 -	push {r4,r5,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	lsls r1, 16 -	lsrs r1, 16 -	cmp r4, 0x5F -	bhi _080011A8 -	ldr r0, =0x03000818 -	adds r0, r4, r0 -	strh r1, [r0] -	movs r0, 0x80 -	lsls r0, 19 -	ldrh r1, [r0] -	movs r0, 0x80 -	ands r0, r1 -	cmp r0, 0 -	beq _08001176 -	adds r0, r4, 0 -	bl CopyBufferedValueToGpuReg -	b _080011A8 -	.pool -_08001170: -	movs r0, 0 -	strb r0, [r5] -	b _080011A8 -_08001176: -	ldr r2, =0x030008d8 -	movs r0, 0x1 -	strb r0, [r2] -	movs r3, 0 -	ldr r0, =0x03000878 -	ldrb r1, [r0] -	adds r5, r2, 0 -	adds r2, r0, 0 -	cmp r1, 0xFF -	beq _080011A0 -	adds r1, r2, 0 -_0800118C: -	ldrb r0, [r1] -	cmp r0, r4 -	beq _08001170 -	adds r1, 0x1 -	adds r3, 0x1 -	cmp r3, 0x5F -	bgt _080011A0 -	ldrb r0, [r1] -	cmp r0, 0xFF -	bne _0800118C -_080011A0: -	adds r0, r3, r2 -	movs r1, 0 -	strb r4, [r0] -	strb r1, [r5] -_080011A8: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end SetGpuReg_ForcedBlank - -	thumb_func_start GetGpuReg -; u16 GetGpuReg(u8 reg) -GetGpuReg: ; 80011B8 -	push {lr} -	lsls r0, 24 -	lsrs r0, 24 -	adds r1, r0, 0 -	cmp r1, 0x4 -	bne _080011CC -	ldr r0, =0x04000004 -	b _080011DE -	.pool -_080011CC: -	cmp r1, 0x6 -	beq _080011DC -	ldr r0, =0x03000818 -	adds r0, r1, r0 -	ldrh r0, [r0] -	b _080011E0 -	.pool -_080011DC: -	ldr r0, =0x04000006 -_080011DE: -	ldrh r0, [r0] -_080011E0: -	pop {r1} -	bx r1 -	.pool -	thumb_func_end GetGpuReg - -	thumb_func_start SetGpuRegBits -; void SetGpuRegBits(u8 reg, u16 mask) -SetGpuRegBits: ; 80011E8 -	push {lr} -	adds r2, r1, 0 -	lsls r0, 24 -	lsrs r0, 24 -	ldr r1, =0x03000818 -	adds r1, r0, r1 -	ldrh r1, [r1] -	orrs r1, r2 -	lsls r1, 16 -	lsrs r1, 16 -	bl SetGpuReg -	pop {r0} -	bx r0 -	.pool -	thumb_func_end SetGpuRegBits - -	thumb_func_start ClearGpuRegBits -; void ClearGpuRegBits(u8 reg, u16 mask) -ClearGpuRegBits: ; 8001208 -	push {lr} -	adds r2, r1, 0 -	lsls r0, 24 -	lsrs r0, 24 -	lsls r2, 16 -	ldr r1, =0x03000818 -	adds r1, r0, r1 -	ldrh r1, [r1] -	lsrs r2, 16 -	bics r1, r2 -	bl SetGpuReg -	pop {r0} -	bx r0 -	.pool -	thumb_func_end ClearGpuRegBits - -	thumb_func_start SyncRegIE -; void SyncRegIE() -SyncRegIE: ; 8001228 -	push {r4,r5,lr} -	ldr r5, =0x030008d9 -	ldrb r0, [r5] -	cmp r0, 0 -	beq _08001246 -	ldr r2, =0x04000208 -	ldrh r1, [r2] -	movs r4, 0 -	strh r4, [r2] -	ldr r3, =0x04000200 -	ldr r0, =0x030008da -	ldrh r0, [r0] -	strh r0, [r3] -	strh r1, [r2] -	strb r4, [r5] -_08001246: -	pop {r4,r5} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end SyncRegIE - -	thumb_func_start EnableInterrupts -; void EnableInterrupts(u16 mask) -EnableInterrupts: ; 800125C -	push {r4,lr} -	lsls r0, 16 -	lsrs r0, 16 -	ldr r4, =0x030008da -	ldrh r1, [r4] -	orrs r0, r1 -	strh r0, [r4] -	ldr r1, =0x030008d9 -	movs r0, 0x1 -	strb r0, [r1] -	bl SyncRegIE -	ldrh r0, [r4] -	bl UpdateRegDispstatIntrBits -	pop {r4} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end EnableInterrupts - -	thumb_func_start DisableInterrupts -; void DisableInterrupts(u16 mask) -DisableInterrupts: ; 8001288 -	push {r4,lr} -	lsls r0, 16 -	lsrs r0, 16 -	ldr r4, =0x030008da -	ldrh r1, [r4] -	bics r1, r0 -	strh r1, [r4] -	ldr r1, =0x030008d9 -	movs r0, 0x1 -	strb r0, [r1] -	bl SyncRegIE -	ldrh r0, [r4] -	bl UpdateRegDispstatIntrBits -	pop {r4} -	pop {r0} -	bx r0 -	.pool -	thumb_func_end DisableInterrupts - -	thumb_func_start UpdateRegDispstatIntrBits -; void UpdateRegDispstatIntrBits(u16 mask) -UpdateRegDispstatIntrBits: ; 80012B4 -	push {r4,lr} -	adds r4, r0, 0 -	lsls r4, 16 -	lsrs r4, 16 -	movs r0, 0x4 -	bl GetGpuReg -	movs r2, 0x18 -	ands r2, r0 -	movs r1, 0x1 -	ands r1, r4 -	negs r0, r1 -	orrs r0, r1 -	asrs r1, r0, 31 -	movs r0, 0x8 -	ands r1, r0 -	movs r0, 0x2 -	ands r0, r4 -	cmp r0, 0 -	beq _080012E0 -	movs r0, 0x10 -	orrs r1, r0 -_080012E0: -	cmp r2, r1 -	beq _080012EA -	movs r0, 0x4 -	bl SetGpuReg -_080012EA: -	pop {r4} -	pop {r0} -	bx r0 -	thumb_func_end UpdateRegDispstatIntrBits | 
