nuAuDmaNew

This commit is contained in:
Ethan Roseman 2020-12-10 15:39:32 +09:00
parent f9d084937f
commit 55a37ba673
8 changed files with 40 additions and 43 deletions

View File

@ -263,7 +263,7 @@ glabel D_80078170
glabel nuAuPreNMIFunc
.word 0x00000000
glabel D_80078178
glabel nuAuDmaNext
.word 0x00000000
glabel nuAuFrameCounter

View File

@ -118,8 +118,8 @@ glabel func_8004AB00
/* 260B8 8004ACB8 1440FFF6 */ bnez $v0, .L8004AC94
/* 260BC 8004ACBC 26100004 */ addiu $s0, $s0, 4
/* 260C0 8004ACC0 0000882D */ daddu $s1, $zero, $zero
/* 260C4 8004ACC4 3C02800A */ lui $v0, %hi(D_800A3BE0)
/* 260C8 8004ACC8 24423BE0 */ addiu $v0, $v0, %lo(D_800A3BE0)
/* 260C4 8004ACC4 3C02800A */ lui $v0, %hi(nuAuDmaBuf)
/* 260C8 8004ACC8 24423BE0 */ addiu $v0, $v0, %lo(nuAuDmaBuf)
/* 260CC 8004ACCC 0040802D */ daddu $s0, $v0, $zero
/* 260D0 8004ACD0 26120014 */ addiu $s2, $s0, 0x14
/* 260D4 8004ACD4 AE000004 */ sw $zero, 4($s0)

View File

@ -3,8 +3,8 @@
glabel nuAuCleanDMABuffers
/* 26668 8004B268 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 2666C 8004B26C 3C02800A */ lui $v0, %hi(D_800A3BD0)
/* 26670 8004B270 24423BD0 */ addiu $v0, $v0, %lo(D_800A3BD0)
/* 2666C 8004B26C 3C02800A */ lui $v0, %hi(nuAuDmaState)
/* 26670 8004B270 24423BD0 */ addiu $v0, $v0, %lo(nuAuDmaState)
/* 26674 8004B274 AFBF001C */ sw $ra, 0x1c($sp)
/* 26678 8004B278 AFB20018 */ sw $s2, 0x18($sp)
/* 2667C 8004B27C AFB10014 */ sw $s1, 0x14($sp)
@ -45,8 +45,8 @@ glabel nuAuCleanDMABuffers
/* 266F4 8004B2F4 3C038008 */ lui $v1, %hi(D_8007817C)
/* 266F8 8004B2F8 2463817C */ addiu $v1, $v1, %lo(D_8007817C)
/* 266FC 8004B2FC 8C620000 */ lw $v0, ($v1)
/* 26700 8004B300 3C018008 */ lui $at, %hi(D_80078178)
/* 26704 8004B304 AC208178 */ sw $zero, %lo(D_80078178)($at)
/* 26700 8004B300 3C018008 */ lui $at, %hi(nuAuDmaNext)
/* 26704 8004B304 AC208178 */ sw $zero, %lo(nuAuDmaNext)($at)
/* 26708 8004B308 24420001 */ addiu $v0, $v0, 1
/* 2670C 8004B30C AC620000 */ sw $v0, ($v1)
/* 26710 8004B310 8FBF001C */ lw $ra, 0x1c($sp)

View File

@ -33,8 +33,8 @@ glabel nuAuDmaCallBack
/* 264DC 8004B0DC 1620FFF7 */ bnez $s1, .L8004B0BC
/* 264E0 8004B0E0 00000000 */ nop
.L8004B0E4:
/* 264E4 8004B0E4 3C12800A */ lui $s2, %hi(D_800A3BD0)
/* 264E8 8004B0E8 26523BD0 */ addiu $s2, $s2, %lo(D_800A3BD0)
/* 264E4 8004B0E4 3C12800A */ lui $s2, %hi(nuAuDmaState)
/* 264E8 8004B0E8 26523BD0 */ addiu $s2, $s2, %lo(nuAuDmaState)
/* 264EC 8004B0EC 8E510008 */ lw $s1, 8($s2)
/* 264F0 8004B0F0 16200006 */ bnez $s1, .L8004B10C
/* 264F4 8004B0F4 0220202D */ daddu $a0, $s1, $zero
@ -78,8 +78,8 @@ glabel nuAuDmaCallBack
/* 2657C 8004B17C AE200000 */ sw $zero, ($s1)
/* 26580 8004B180 AE200004 */ sw $zero, 4($s1)
.L8004B184:
/* 26584 8004B184 3C048008 */ lui $a0, %hi(D_80078178)
/* 26588 8004B188 24848178 */ addiu $a0, $a0, %lo(D_80078178)
/* 26584 8004B184 3C048008 */ lui $a0, %hi(nuAuDmaNext)
/* 26588 8004B188 24848178 */ addiu $a0, $a0, %lo(nuAuDmaNext)
/* 2658C 8004B18C 32700001 */ andi $s0, $s3, 1
/* 26590 8004B190 02709823 */ subu $s3, $s3, $s0
/* 26594 8004B194 3C02800A */ lui $v0, %hi(D_800A3720)

View File

@ -1,22 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel nuAuDmaNew
/* 26624 8004B224 3C03800A */ lui $v1, %hi(D_800A3BD0)
/* 26628 8004B228 24633BD0 */ addiu $v1, $v1, %lo(D_800A3BD0)
/* 2662C 8004B22C 90620000 */ lbu $v0, ($v1)
/* 26630 8004B230 14400007 */ bnez $v0, .L8004B250
/* 26634 8004B234 00000000 */ nop
/* 26638 8004B238 3C02800A */ lui $v0, %hi(D_800A3BE0)
/* 2663C 8004B23C 24423BE0 */ addiu $v0, $v0, %lo(D_800A3BE0)
/* 26640 8004B240 AC620008 */ sw $v0, 8($v1)
/* 26644 8004B244 24020001 */ addiu $v0, $zero, 1
/* 26648 8004B248 AC600004 */ sw $zero, 4($v1)
/* 2664C 8004B24C A0620000 */ sb $v0, ($v1)
.L8004B250:
/* 26650 8004B250 3C028005 */ lui $v0, %hi(nuAuDmaCallBack)
/* 26654 8004B254 2442B074 */ addiu $v0, $v0, %lo(nuAuDmaCallBack)
/* 26658 8004B258 3C018008 */ lui $at, %hi(D_80078178)
/* 2665C 8004B25C AC208178 */ sw $zero, %lo(D_80078178)($at)
/* 26660 8004B260 03E00008 */ jr $ra
/* 26664 8004B264 AC830000 */ sw $v1, ($a0)

View File

@ -2,6 +2,9 @@
#include "nu/nusys.h"
#include "nu/nualsgi.h"
extern NUDMAState nuAuDmaState;
extern s32 nuAuDmaNext;
INCLUDE_ASM(s32, "code_25f00_len_940", func_8004AB00);
void nuAuPreNMIFuncSet(NUAuPreNMIFunc func) {
@ -15,7 +18,17 @@ INCLUDE_ASM(s32, "code_25f00_len_940", func_8004AE08);
INCLUDE_ASM(s32, "code_25f00_len_940", nuAuDmaCallBack);
INCLUDE_ASM(ALDMAproc, "code_25f00_len_940", nuAuDmaNew, NUDMAState **state);
ALDMAproc nuAuDmaNew(NUDMAState **state) {
if (!nuAuDmaState.initialized) {
nuAuDmaState.firstFree = &nuAuDmaBuf;
nuAuDmaState.firstUsed = NULL;
nuAuDmaState.initialized = TRUE;
}
nuAuDmaNext = 0;
*state = &nuAuDmaState;
return nuAuDmaCallBack;
}
INCLUDE_ASM(void, "code_25f00_len_940", nuAuCleanDMABuffers);

View File

@ -563,12 +563,15 @@ load_demo_battle = 0x80072E14;
EnemyNpcHit = 0x80077F70;
EnemyNpcDefeat = 0x8007809C;
nuAuPreNMIFunc = 0x80078174;
nuAuDmaNext = 0x80078178;
nuAuFrameCounter = 0x8007817C;
D_80078DB0 = 0x80078DB0;
D_80078DB4 = 0x80078DB4;
gEffectTable = 0x8007F214;
gItemTable = 0x800878E0; // size:0x2D80
gAreas = 0x800934F0;
nuAuDmaState = 0x800A3BD0;
nuAuDmaBuf = 0x800A3BE0;
gCurrentEncounter = 0x800B0F10; // size:0xB0
gBattleState = 0x800DC068;
gBattleStatus = 0x800DC070; // size:0x490

View File

@ -99,6 +99,9 @@ nuContRmbCallBack = 0x80093D00;
nuGfxFunc = 0x80093D10;
nuGfxPreNMIFunc = 0x80093D14;
nuAuDmaState = 0x800A3BD0;
nuAuDmaBuf = 0x800A3BE0;
osViModeTable = 0x800946A0;
D_800959D4 = 0x800959D4;
D_8009A5B0 = 0x8009A5B0;