quick decomp of two funcs - 03272026

This commit is contained in:
Seth Barberee 2026-03-27 13:56:38 -07:00
parent 20fb4ffabe
commit 18acd7c8be
5 changed files with 35 additions and 63 deletions

View File

@ -1,12 +0,0 @@
#pragma once
.public _020AFCEC
.public _020AFCF0
.public _022A59B8
.public _022A59C0
.public FileClose
.public FileRom_HandleOpen
.public FileRom_InitDataTransfer
.public FileRom_StopDataTransfer
.public FileRom_Veneer_FileInit
.public GetLanguage
.public MemZero

View File

@ -1,50 +0,0 @@
.include "asm/macros.inc"
.include "main_020257FC.inc"
.text
arm_func_start sub_020257FC
sub_020257FC: ; 0x020257FC
stmdb sp!, {r3, lr}
ldr r0, _02025814 ; =_022A59B8
mov r1, #8
bl MemZero
bl LoadStringFile
ldmia sp!, {r3, pc}
.align 2, 0
_02025814: .word _022A59B8
arm_func_end sub_020257FC
arm_func_start LoadStringFile
LoadStringFile: ; 0x02025818
stmdb sp!, {r4, lr}
bl GetLanguage
ldr r1, _0202587C ; =_020AFCEC
mov r4, r0
ldrsb r0, [r1]
cmp r0, r4
ldmeqia sp!, {r4, pc}
bl FileRom_InitDataTransfer
ldr r1, _0202587C ; =_020AFCEC
mvn r0, #0
ldrsb r1, [r1]
cmp r1, r0
beq _02025854
ldr r0, _02025880 ; =_022A59C0
bl FileClose
_02025854:
ldr r1, _0202587C ; =_020AFCEC
ldr r0, _02025880 ; =_022A59C0
strb r4, [r1]
bl FileRom_Veneer_FileInit
ldr r1, _02025884 ; =_020AFCF0
ldr r0, _02025880 ; =_022A59C0
ldr r1, [r1, r4, lsl #2]
bl FileRom_HandleOpen
bl FileRom_StopDataTransfer
ldmia sp!, {r4, pc}
.align 2, 0
_0202587C: .word _020AFCEC
_02025880: .word _022A59C0
_02025884: .word _020AFCF0
arm_func_end LoadStringFile

View File

@ -1,6 +1,9 @@
#ifndef PMDSKY_MAIN_0202593C_H
#define PMDSKY_MAIN_0202593C_H
void sub_020257FC(void);
void LoadStringFile(void);
// return: Pointer to byte buffer
u8* AllocateTemp1024ByteBufferFromPool(void);
// Likely a linker-generated veneer for GetStringFromFile.

View File

@ -59,7 +59,6 @@ Static main
Object src/main_020251AC.o
Object asm/main_020251F0.o
Object src/main_02025788.o
Object asm/main_020257FC.o
Object src/main_0202593C.o
Object asm/main_0202598C.o
Object src/main_020265C4.o

View File

@ -1,5 +1,6 @@
#include "main_0202593C.h"
#include "main_02025788.h"
#include "main_0200330C.h"
#include "file_rom.h"
u8* strcpy(u8* dest, u8* src);
@ -8,6 +9,37 @@ u8* strncpy(u8* dest, u8* src, u32 n);
extern u16 _022A59B8[];
extern u8 _022A5A08[];
extern s8 GetLanguage();
extern s8 _020AFCEC;
extern const char * _020AFCF0[10];
extern struct file_stream _022A59C0;
void FileClose(struct file_stream* file);
void sub_020257FC(void)
{
MemZero((u8 *)_022A59B8, 8);
LoadStringFile();
}
void LoadStringFile(void)
{
s8 temp_r0;
temp_r0 = GetLanguage();
if (_020AFCEC == temp_r0) {
return;
}
FileRom_InitDataTransfer();
if (_020AFCEC != -1) {
FileClose(&_022A59C0);
}
_020AFCEC = temp_r0;
FileRom_Veneer_FileInit(&_022A59C0);
FileRom_HandleOpen(&_022A59C0, _020AFCF0[temp_r0]);
FileRom_StopDataTransfer();
}
u8* AllocateTemp1024ByteBufferFromPool(void)
{
u16 scratch_1 = _022A59B8[2];