Merge pull request #460 from Askedis/decomp/overlay_13_thumb_1
Some checks failed
build / build (push) Has been cancelled
Close stale issues and PRs / stale-bot (push) Has been cancelled

Decomp/overlay 13 thumb 1
This commit is contained in:
Adrienn Tindall 2026-03-16 18:55:34 -04:00 committed by GitHub
commit a6a9655094
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 51 additions and 74 deletions

View File

@ -1,15 +0,0 @@
#include <nitro/fs/overlay.h>
#pragma once
.public Heap_Alloc
.public Heap_Free
.public sub_02034D8C
.public NNS_SndPlayerSetPlayerVolume
.public NNS_SndPlayerSetPlayableSeqCount
.public NNS_SndPlayerSetAllocatableChannel
.public OS_InitTick
.public OS_InitAlarm
.public OS_DisableInterrupts
.public OS_RestoreInterrupts
.public ov00_021EC454
.public ov13_0221BA00
.public ov13_0222B430

View File

@ -1,54 +0,0 @@
.include "asm/macros.inc"
.include "overlay_13_thumb_1.inc"
.include "global.inc"
.text
thumb_func_start ov13_0221BA00
ov13_0221BA00: ; 0x0221BA00
push {r3, r4, r5, r6, r7, lr}
mov r5, #0
str r0, [sp]
mov r4, #0x7f
mov r6, #1
add r7, r5, #0
_0221BA0C:
add r0, r5, #0
add r1, r4, #0
bl NNS_SndPlayerSetPlayerVolume
add r0, r5, #0
add r1, r6, #0
bl NNS_SndPlayerSetPlayableSeqCount
add r0, r5, #0
add r1, r7, #0
bl NNS_SndPlayerSetAllocatableChannel
add r5, r5, #1
cmp r5, #0x20
blt _0221BA0C
bl sub_02034D8C
bl OS_InitTick
bl OS_InitAlarm
bl OS_DisableInterrupts
add r5, r0, #0
mov r0, #2
bl ov00_021EC454
mov r1, #1
ldr r0, [sp]
lsl r1, r1, #0x12
bl Heap_Alloc
add r4, r0, #0
mov r1, #1
mov r2, #0
bl ov13_0222B430
add r0, r4, #0
bl Heap_Free
add r0, r5, #0
bl OS_RestoreInterrupts
ldr r1, _0221BA6C ; =0x04000208
ldrh r0, [r1]
mov r0, #1
strh r0, [r1]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221BA6C: .word 0x04000208
thumb_func_end ov13_0221BA00

View File

@ -3,5 +3,6 @@
s32 ov00_021E6A70(u32, u32);
int ov00_021E6EBC(void);
void ov00_021EC454(s32);
#endif // POKEHEARTGOLD_OVERLAY_00_THUMB_H

View File

@ -0,0 +1,6 @@
#ifndef POKEHEARTGOLD_OVERLAY_13_ARM_2_H
#define POKEHEARTGOLD_OVERLAY_13_ARM_2_H
BOOL ov13_0222B430(void *, s32, s32);
#endif // POKEHEARTGOLD_OVERLAY_13_ARM_2_H

View File

@ -0,0 +1,9 @@
#ifndef POKEHEARTGOLD_OVERLAY_13_THUMB_1_H
#define POKEHEARTGOLD_OVERLAY_13_THUMB_1_H
#include "heap.h"
#include "sound.h"
void ov13_0221BA00(enum HeapID HeapID);
#endif // POKEHEARTGOLD_OVERLAY_13_THUMB_1_H

View File

@ -1,6 +1,7 @@
#ifndef POKEHEARTGOLD_UNK_02034B0C_H
#define POKEHEARTGOLD_UNK_02034B0C_H
void sub_02034D8C(void);
BOOL sub_02035650(void);
#endif // POKEHEARTGOLD_UNK_02034B0C_H

View File

@ -1,9 +1,8 @@
#ifndef GUARD_PLAYER_H
#define GUARD_PLAYER_H
typedef struct NNSSndHandle
{
struct NNSSndSeqPlayer* player;
typedef struct NNSSndHandle {
struct NNSSndSeqPlayer *player;
} NNSSndHandle;
void NNS_SndHandleInit(NNSSndHandle *handle);
@ -14,5 +13,6 @@ void NNS_SndPlayerSetPlayableSeqCount(int playerNo, int seqCount);
BOOL NNS_SndPlayerCreateHeap(int playerNo, NNSSndHeapHandle heap, u32 size);
void NNS_SndPlayerPauseByPlayerNo(int playerNo, BOOL flag);
int NNS_SndPlayerCountPlayingSeqByPlayerNo(int playerNo);
void NNS_SndPlayerSetPlayerVolume(int playerNo, u8 volume);
#endif //GUARD_PLAYER_H
#endif // GUARD_PLAYER_H

View File

@ -643,7 +643,7 @@ Overlay OVY_12
Overlay OVY_13
{
After OVY_0
Object asm/overlay_13_thumb_1.o
Object src/overlay_13_thumb_1.o
Object lib/NitroSDK/asm/mb.o
Object asm/overlay_13_thumb_2.o
Object lib/NitroDWC/asm/overlay_13_arm_2.o

29
src/overlay_13_thumb_1.c Normal file
View File

@ -0,0 +1,29 @@
#include "overlay_13_thumb_1.h"
#include <nitro/hw/common/io_reg.h>
#include "global.h"
#include "overlay_00_thumb.h"
#include "overlay_13_arm_2.h"
#include "unk_02034B0C.h"
void ov13_0221BA00(enum HeapID HeapID) {
for (int playerNo = 0; playerNo < 32; playerNo++) {
NNS_SndPlayerSetPlayerVolume(playerNo, 127);
NNS_SndPlayerSetPlayableSeqCount(playerNo, 1);
NNS_SndPlayerSetAllocatableChannel(playerNo, 0);
}
sub_02034D8C();
OS_InitTick();
OS_InitAlarm();
OSIntrMode interrupts = OS_DisableInterrupts();
ov00_021EC454(2);
void *buffer = Heap_Alloc(HeapID, 0x40000);
ov13_0222B430(buffer, 1, 0);
Heap_Free(buffer);
OS_RestoreInterrupts(interrupts);
u16 oldValue = reg_OS_IME;
reg_OS_IME = 1;
}