mirror of
https://github.com/pmret/papermario.git
synced 2024-09-19 16:01:48 +02:00
nuAuDmaNew
This commit is contained in:
parent
f9d084937f
commit
55a37ba673
@ -263,7 +263,7 @@ glabel D_80078170
|
||||
glabel nuAuPreNMIFunc
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_80078178
|
||||
glabel nuAuDmaNext
|
||||
.word 0x00000000
|
||||
|
||||
glabel nuAuFrameCounter
|
||||
|
@ -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)
|
||||
@ -164,7 +164,7 @@ glabel func_8004AB00
|
||||
/* 2616C 8004AD6C 27A50018 */ addiu $a1, $sp, 0x18
|
||||
/* 26170 8004AD70 8FA40020 */ lw $a0, 0x20($sp)
|
||||
/* 26174 8004AD74 0C014B97 */ jal func_80052E5C
|
||||
/* 26178 8004AD78 00000000 */ nop
|
||||
/* 26178 8004AD78 00000000 */ nop
|
||||
/* 2617C 8004AD7C 3C10800A */ lui $s0, %hi(D_800A0F58)
|
||||
/* 26180 8004AD80 26100F58 */ addiu $s0, $s0, %lo(D_800A0F58)
|
||||
/* 26184 8004AD84 0200202D */ daddu $a0, $s0, $zero
|
||||
|
@ -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)
|
||||
@ -40,13 +40,13 @@ glabel nuAuCleanDMABuffers
|
||||
/* 266E8 8004B2E8 0220802D */ daddu $s0, $s1, $zero
|
||||
.L8004B2EC:
|
||||
/* 266EC 8004B2EC 1600FFE8 */ bnez $s0, .L8004B290
|
||||
/* 266F0 8004B2F0 00000000 */ nop
|
||||
/* 266F0 8004B2F0 00000000 */ nop
|
||||
.L8004B2F4:
|
||||
/* 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)
|
||||
|
@ -12,9 +12,9 @@ glabel nuAuDmaCallBack
|
||||
/* 26490 8004B090 14E00005 */ bnez $a3, .L8004B0A8
|
||||
/* 26494 8004B094 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 26498 8004B098 0C0187A4 */ jal osVirtualToPhysical
|
||||
/* 2649C 8004B09C 00000000 */ nop
|
||||
/* 2649C 8004B09C 00000000 */ nop
|
||||
/* 264A0 8004B0A0 08012C82 */ j .L8004B208
|
||||
/* 264A4 8004B0A4 00000000 */ nop
|
||||
/* 264A4 8004B0A4 00000000 */ nop
|
||||
.L8004B0A8:
|
||||
/* 264A8 8004B0A8 0000802D */ daddu $s0, $zero, $zero
|
||||
/* 264AC 8004B0AC 3C11800A */ lui $s1, %hi(D_800A3BD4)
|
||||
@ -31,18 +31,18 @@ glabel nuAuDmaCallBack
|
||||
/* 264D4 8004B0D4 0220802D */ daddu $s0, $s1, $zero
|
||||
/* 264D8 8004B0D8 8E310000 */ lw $s1, ($s1)
|
||||
/* 264DC 8004B0DC 1620FFF7 */ bnez $s1, .L8004B0BC
|
||||
/* 264E0 8004B0E0 00000000 */ nop
|
||||
/* 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
|
||||
/* 264F8 8004B0F8 8E440004 */ lw $a0, 4($s2)
|
||||
/* 264FC 8004B0FC 0C0187A4 */ jal osVirtualToPhysical
|
||||
/* 26500 8004B100 00000000 */ nop
|
||||
/* 26500 8004B100 00000000 */ nop
|
||||
/* 26504 8004B104 08012C82 */ j .L8004B208
|
||||
/* 26508 8004B108 00000000 */ nop
|
||||
/* 26508 8004B108 00000000 */ nop
|
||||
.L8004B10C:
|
||||
/* 2650C 8004B10C 8E220000 */ lw $v0, ($s1)
|
||||
/* 26510 8004B110 0C012D03 */ jal alUnlink
|
||||
@ -52,7 +52,7 @@ glabel nuAuDmaCallBack
|
||||
/* 26520 8004B120 0C012CFB */ jal alLink
|
||||
/* 26524 8004B124 0200282D */ daddu $a1, $s0, $zero
|
||||
/* 26528 8004B128 08012C61 */ j .L8004B184
|
||||
/* 2652C 8004B12C 00000000 */ nop
|
||||
/* 2652C 8004B12C 00000000 */ nop
|
||||
.L8004B130:
|
||||
/* 26530 8004B130 8E450004 */ lw $a1, 4($s2)
|
||||
/* 26534 8004B134 10A00010 */ beqz $a1, .L8004B178
|
||||
@ -72,14 +72,14 @@ glabel nuAuDmaCallBack
|
||||
/* 26568 8004B168 0C0187A4 */ jal osVirtualToPhysical
|
||||
/* 2656C 8004B16C AE23000C */ sw $v1, 0xc($s1)
|
||||
/* 26570 8004B170 08012C82 */ j .L8004B208
|
||||
/* 26574 8004B174 00000000 */ nop
|
||||
/* 26574 8004B174 00000000 */ nop
|
||||
.L8004B178:
|
||||
/* 26578 8004B178 AE510004 */ sw $s1, 4($s2)
|
||||
/* 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)
|
||||
|
@ -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)
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -99,6 +99,9 @@ nuContRmbCallBack = 0x80093D00;
|
||||
nuGfxFunc = 0x80093D10;
|
||||
nuGfxPreNMIFunc = 0x80093D14;
|
||||
|
||||
nuAuDmaState = 0x800A3BD0;
|
||||
nuAuDmaBuf = 0x800A3BE0;
|
||||
|
||||
osViModeTable = 0x800946A0;
|
||||
D_800959D4 = 0x800959D4;
|
||||
D_8009A5B0 = 0x8009A5B0;
|
||||
|
Loading…
Reference in New Issue
Block a user