mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-15 21:41:15 -05:00
finish docing PlayTime and fix function - Kermalis
This commit is contained in:
@@ -7545,7 +7545,7 @@ sub_8010960:
|
||||
bl sub_80060EC
|
||||
ldr r0, _080109FC
|
||||
ldr r0, [r0]
|
||||
bl sub_8094FB4
|
||||
bl IncrementPlayTime
|
||||
bl sub_800CB20
|
||||
bl sub_800485C
|
||||
bl CopySpritesToOam
|
||||
@@ -9175,7 +9175,7 @@ sub_801169C:
|
||||
bl sub_80060EC
|
||||
ldr r0, _0801175C
|
||||
ldr r0, [r0]
|
||||
bl sub_8094FB4
|
||||
bl IncrementPlayTime
|
||||
bl sub_800CB20
|
||||
bl sub_800485C
|
||||
bl CopySpritesToOam
|
||||
|
||||
@@ -35186,7 +35186,7 @@ _08039696:
|
||||
add r1, sp, 0x144
|
||||
add r2, sp, 0x148
|
||||
add r3, sp, 0x14C
|
||||
bl sub_8095014
|
||||
bl DeconstructPlayTime
|
||||
ldr r0, [r7]
|
||||
movs r5, 0x84
|
||||
lsls r5, 2
|
||||
|
||||
@@ -2673,7 +2673,7 @@ _0803E5A2:
|
||||
str r0, [r1]
|
||||
ldr r0, _0803E65C
|
||||
ldr r0, [r0]
|
||||
bl sub_8094FB4
|
||||
bl IncrementPlayTime
|
||||
bl sub_800CB20
|
||||
bl sub_800485C
|
||||
bl CopySpritesToOam
|
||||
@@ -2748,7 +2748,7 @@ sub_803E668:
|
||||
str r0, [r1]
|
||||
ldr r0, _0803E6FC
|
||||
ldr r0, [r0]
|
||||
bl sub_8094FB4
|
||||
bl IncrementPlayTime
|
||||
bl sub_800CB20
|
||||
bl sub_800485C
|
||||
bl CopySpritesToOam
|
||||
|
||||
@@ -26632,7 +26632,7 @@ _0805FA62:
|
||||
add r2, sp, 0x8
|
||||
add r3, sp, 0xC
|
||||
add r1, sp, 0x4
|
||||
bl sub_8095014
|
||||
bl DeconstructPlayTime
|
||||
movs r1, 0x9E
|
||||
lsls r1, 1
|
||||
adds r0, r7, r1
|
||||
|
||||
@@ -510,7 +510,7 @@ _080988F8:
|
||||
bl sub_8011860
|
||||
ldr r0, _08098978
|
||||
ldr r0, [r0]
|
||||
bl sub_8094FB4
|
||||
bl IncrementPlayTime
|
||||
bl sub_800CB20
|
||||
bl sub_800485C
|
||||
bl nullsub_120
|
||||
|
||||
@@ -5,202 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80A26CC
|
||||
sub_80A26CC:
|
||||
lsls r0, 16
|
||||
movs r1, 0xDC
|
||||
lsls r1, 14
|
||||
adds r0, r1
|
||||
asrs r0, 16
|
||||
bx lr
|
||||
thumb_func_end sub_80A26CC
|
||||
|
||||
thumb_func_start sub_80A26D8
|
||||
sub_80A26D8:
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
movs r5, 0
|
||||
_080A26E0:
|
||||
lsls r0, r5, 16
|
||||
asrs r4, r0, 16
|
||||
adds r0, r4, 0
|
||||
bl sub_80A2608
|
||||
adds r1, r0, 0
|
||||
ldrb r0, [r1, 0x11]
|
||||
cmp r0, 0
|
||||
beq _080A26FC
|
||||
ldrb r0, [r1, 0xC]
|
||||
cmp r0, r6
|
||||
bne _080A26FC
|
||||
adds r0, r4, 0
|
||||
b _080A2706
|
||||
_080A26FC:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x52
|
||||
ble _080A26E0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_080A2706:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A26D8
|
||||
|
||||
thumb_func_start sub_80A270C
|
||||
sub_80A270C:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
ldr r1, _080A2724
|
||||
asrs r0, 15
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_80A2608
|
||||
ldrb r0, [r0, 0xC]
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080A2724: .4byte gUnknown_8116F9A
|
||||
thumb_func_end sub_80A270C
|
||||
|
||||
thumb_func_start sub_80A2728
|
||||
sub_80A2728:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
movs r1, 0xDC
|
||||
lsls r1, 14
|
||||
adds r0, r1
|
||||
asrs r0, 16
|
||||
bl sub_80A2608
|
||||
ldrb r0, [r0, 0xC]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A2728
|
||||
|
||||
thumb_func_start sub_80A2740
|
||||
sub_80A2740:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
bl sub_80A2608
|
||||
ldrb r0, [r0, 0xC]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A2740
|
||||
|
||||
thumb_func_start sub_80A2750
|
||||
sub_80A2750:
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
adds r2, r1, 0
|
||||
cmp r1, 0x50
|
||||
bne _080A2760
|
||||
movs r0, 0x3
|
||||
b _080A27C4
|
||||
_080A2760:
|
||||
cmp r1, 0x51
|
||||
beq _080A27BE
|
||||
cmp r1, 0x52
|
||||
beq _080A2780
|
||||
adds r0, r1, 0
|
||||
subs r0, 0x28
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0xE
|
||||
bls _080A27BE
|
||||
adds r0, r1, 0
|
||||
subs r0, 0x37
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x18
|
||||
bhi _080A2784
|
||||
_080A2780:
|
||||
movs r0, 0x4
|
||||
b _080A27C4
|
||||
_080A2784:
|
||||
adds r0, r2, 0
|
||||
bl sub_80A2608
|
||||
adds r4, r0, 0
|
||||
movs r0, 0xE
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080A27C2
|
||||
movs r0, 0x5
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A27C2
|
||||
movs r1, 0xE
|
||||
ldrsh r0, [r4, r1]
|
||||
bl sub_80973F4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A27C2
|
||||
movs r0, 0x1
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A27C2
|
||||
_080A27BE:
|
||||
movs r0, 0x2
|
||||
b _080A27C4
|
||||
_080A27C2:
|
||||
movs r0, 0x1
|
||||
_080A27C4:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A2750
|
||||
|
||||
thumb_func_start sub_80A27CC
|
||||
sub_80A27CC:
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
adds r5, r4, 0
|
||||
adds r0, r4, 0
|
||||
bl sub_80A2620
|
||||
movs r2, 0
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _080A281A
|
||||
movs r0, 0x5
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A281A
|
||||
adds r0, r4, 0
|
||||
bl sub_8097384
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A2816
|
||||
movs r0, 0x1
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A281A
|
||||
adds r0, r5, 0
|
||||
bl sub_80973F4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A281A
|
||||
_080A2816:
|
||||
movs r0, 0x1
|
||||
b _080A281C
|
||||
_080A281A:
|
||||
movs r0, 0
|
||||
_080A281C:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A27CC
|
||||
|
||||
thumb_func_start sub_80A2824
|
||||
sub_80A2824:
|
||||
push {r4-r6,lr}
|
||||
|
||||
@@ -3,15 +3,16 @@
|
||||
|
||||
struct PlayTimeStruct
|
||||
{
|
||||
s16 unk0;
|
||||
u8 hours;
|
||||
s16 hours;
|
||||
u8 minutes;
|
||||
u8 seconds;
|
||||
u8 frames;
|
||||
};
|
||||
|
||||
void sub_8094FB4(struct PlayTimeStruct *Time);
|
||||
void IncrementPlayTime(struct PlayTimeStruct *Time);
|
||||
void ResetPlayTime(struct PlayTimeStruct *Time);
|
||||
struct PlayTimeStruct *sub_8094FA0(void);
|
||||
void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds);
|
||||
void sub_8094F88(void);
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#include "global.h"
|
||||
#include "time.h"
|
||||
|
||||
extern u8 *gUnknown_203B418;
|
||||
extern u32 gUnknown_203B47C;
|
||||
extern struct PlayTimeStruct *gUnknown_203B47C;
|
||||
|
||||
extern void sub_803F7BC(void);
|
||||
extern void sub_80060EC(void);
|
||||
extern void sub_8094FB4(u32);
|
||||
extern void sub_800CB20(void);
|
||||
extern void sub_800485C(void);
|
||||
extern void xxx_call_update_bg_sound_input(void);
|
||||
@@ -17,7 +17,7 @@ void sub_8040094(u8 r0)
|
||||
gUnknown_203B418[0x18217] = r0;
|
||||
sub_803F7BC();
|
||||
sub_80060EC();
|
||||
sub_8094FB4(gUnknown_203B47C);
|
||||
IncrementPlayTime(gUnknown_203B47C);
|
||||
sub_800CB20();
|
||||
sub_800485C();
|
||||
xxx_call_update_bg_sound_input();
|
||||
|
||||
@@ -35,16 +35,21 @@ struct PlayTimeStruct *sub_8094FA0(void)
|
||||
|
||||
void ResetPlayTime(struct PlayTimeStruct *Time)
|
||||
{
|
||||
Time->frames = 0;
|
||||
Time->seconds = 0;
|
||||
Time->minutes = 0;
|
||||
Time->hours = 0;
|
||||
Time->unk0 = 0;
|
||||
}
|
||||
|
||||
void sub_8094FB4(struct PlayTimeStruct *Time)
|
||||
void IncrementPlayTime(struct PlayTimeStruct *Time)
|
||||
{
|
||||
u16 temp_store16;
|
||||
|
||||
Time->frames++;
|
||||
if(Time->frames <= 59)
|
||||
return;
|
||||
Time->frames = 0;
|
||||
|
||||
Time->seconds++;
|
||||
if(Time->seconds <= 59)
|
||||
return;
|
||||
@@ -55,42 +60,35 @@ void sub_8094FB4(struct PlayTimeStruct *Time)
|
||||
return;
|
||||
Time->minutes = 0;
|
||||
|
||||
Time->hours++;
|
||||
if(Time->hours <= 59)
|
||||
return;
|
||||
Time->hours = 0;
|
||||
|
||||
// ???
|
||||
temp_store16 = Time->unk0;
|
||||
if(Time->unk0 <= 9998)
|
||||
// Casting here for unsigned comparison
|
||||
temp_store16 = Time->hours;
|
||||
if(Time->hours <= 9998)
|
||||
{
|
||||
temp_store16++;
|
||||
Time->unk0 = temp_store16;
|
||||
Time->hours = temp_store16;
|
||||
}
|
||||
else
|
||||
{
|
||||
Time->seconds = 59;
|
||||
Time->minutes = 59;
|
||||
Time->hours = 59;
|
||||
Time->unk0 = 9999;
|
||||
Time->hours= 9999;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8095014(struct PlayTimeStruct *r0, u32 *r1, u32 *r2, u32 *r3)
|
||||
void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds)
|
||||
{
|
||||
u32 temp;
|
||||
if(r0->unk0 <= 9999)
|
||||
if(r0->hours <= 9999)
|
||||
{
|
||||
*r1 = r0->unk0;
|
||||
*r2 = r0->hours;
|
||||
temp = r0->minutes;
|
||||
*outHours = r0->hours;
|
||||
*outMinutes = r0->minutes;
|
||||
*outSeconds = r0->seconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
*r1 = 9999;
|
||||
*r2 = 59;
|
||||
temp = 59;
|
||||
*outHours = 9999;
|
||||
*outMinutes = 59;
|
||||
*outSeconds = 59;
|
||||
}
|
||||
*r3 = temp;
|
||||
}
|
||||
|
||||
void sub_8095044(u32 r0)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "time.h"
|
||||
|
||||
extern u32 gUnknown_203B47C;
|
||||
extern struct PlayTimeStruct *gUnknown_203B47C;
|
||||
extern u32 gUnknown_20398A8;
|
||||
extern u32 gUnknown_8115F5C;
|
||||
extern u32 gUnknown_20398AC;
|
||||
@@ -21,7 +22,7 @@ extern void sub_80A6E80();
|
||||
extern void sub_8099BE4();
|
||||
extern void sub_8099744();
|
||||
extern void sub_8011860();
|
||||
extern void sub_8094FB4(u32 r0);
|
||||
extern void IncrementPlayTime(struct PlayTimeStruct *Time);
|
||||
extern void sub_800CB20();
|
||||
extern void sub_800485C();
|
||||
extern void nullsub_120();
|
||||
@@ -69,7 +70,7 @@ void sub_8098BDC(void)
|
||||
sub_8099BE4();
|
||||
sub_8099744();
|
||||
sub_8011860();
|
||||
sub_8094FB4(gUnknown_203B47C);
|
||||
IncrementPlayTime(gUnknown_203B47C);
|
||||
sub_800CB20();
|
||||
sub_800485C();
|
||||
nullsub_120();
|
||||
|
||||
Reference in New Issue
Block a user