mirror of
https://github.com/pret/pmd-sky.git
synced 2026-05-06 05:07:50 -05:00
quick decomp of two funcs - 03272026
This commit is contained in:
parent
20fb4ffabe
commit
18acd7c8be
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
1
main.lsf
1
main.lsf
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user