mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
remove EWRAM_DATA_2
This commit is contained in:
parent
6a3dbaabde
commit
edd2454349
5
Makefile
5
Makefile
|
|
@ -252,13 +252,10 @@ $(BUILD_DIR)/sym_ewram.ld: sym_ewram.txt
|
|||
$(BUILD_DIR)/sym_iwram.ld: sym_iwram.txt
|
||||
$(RAMSCRGEN) iwram_data $< ENGLISH > $@
|
||||
|
||||
$(BUILD_DIR)/sym_ewram2.ld: sym_ewram2.txt
|
||||
$(RAMSCRGEN) ewram_data_2 $< ENGLISH > $@
|
||||
|
||||
$(BUILD_DIR)/sym_ewram_init.ld: sym_ewram_init.txt
|
||||
$(RAMSCRGEN) ewram_init $< ENGLISH > $@
|
||||
|
||||
$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_ewram.ld $(BUILD_DIR)/sym_ewram2.ld $(BUILD_DIR)/sym_ewram_init.ld $(BUILD_DIR)/sym_iwram.ld
|
||||
$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_ewram.ld $(BUILD_DIR)/sym_ewram_init.ld $(BUILD_DIR)/sym_iwram.ld
|
||||
cd $(BUILD_DIR) && sed -e "s#tools/#../../tools/#g" ../../ld_script.txt >ld_script.ld
|
||||
|
||||
$(ELF): $(LD_SCRIPT) $(ALL_OBJECTS) $(LIBC) libagbsyscall tools
|
||||
|
|
|
|||
|
|
@ -4,21 +4,6 @@
|
|||
gUnknown_8270000: @ 8270000
|
||||
@ replacing .incbin "baserom.gba", 0x00270000, 0x2724
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_8116390
|
||||
.4byte gUnknown_811636C
|
||||
.4byte gUnknown_811633C
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte _impure_ptr - 0x108
|
||||
.4byte _impure_ptr - 0xb0
|
||||
.4byte _impure_ptr - 0x58
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#define IWRAM_DATA __attribute__((section("iwram_data")))
|
||||
#define EWRAM_DATA __attribute__((section("ewram_data")))
|
||||
#define EWRAM_DATA_2 __attribute__((section("ewram_data_2")))
|
||||
#define EWRAM_LIB __attribute__((section("ewram_lib"))) // Used only for agb flash and m4a
|
||||
#define EWRAM_INIT __attribute__((section("ewram_init")))
|
||||
#define UNUSED __attribute__((unused))
|
||||
#define NAKED __attribute__((naked))
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ SECTIONS {
|
|||
*libgcc.a:dp-bit.o(.bss);
|
||||
*libc.a:syscalls.o(.bss);
|
||||
. = ALIGN(16);
|
||||
src/m4a.o(ewram_data_2);
|
||||
src/agb_flash.o(ewram_data_2);
|
||||
src/m4a.o(ewram_lib);
|
||||
src/agb_flash.o(ewram_lib);
|
||||
*libc.a:sbrkr.o(COMMON);
|
||||
} > EWRAM
|
||||
|
||||
|
|
|
|||
|
|
@ -6,16 +6,16 @@ static u16 sTimerCount;
|
|||
static vu16 *sTimerReg;
|
||||
static u16 sSavedIme;
|
||||
|
||||
EWRAM_DATA_2 u8 gFlashTimeoutFlag = {0};
|
||||
EWRAM_DATA_2 u8 (*PollFlashStatus)(u8 *) = {0};
|
||||
EWRAM_DATA_2 u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData) = {0};
|
||||
EWRAM_DATA_2 u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src) = {0};
|
||||
EWRAM_DATA_2 const struct FlashType *gFlash = {0};
|
||||
EWRAM_LIB u8 gFlashTimeoutFlag = {0};
|
||||
EWRAM_LIB u8 (*PollFlashStatus)(u8 *) = {0};
|
||||
EWRAM_LIB u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData) = {0};
|
||||
EWRAM_LIB u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src) = {0};
|
||||
EWRAM_LIB const struct FlashType *gFlash = {0};
|
||||
// u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data); // not used in PMD: Red
|
||||
EWRAM_DATA_2 u16 gFlashNumRemainingBytes = {0};
|
||||
EWRAM_DATA_2 u16 (*EraseFlashChip)() = {0};
|
||||
EWRAM_DATA_2 u16 (*EraseFlashSector)(u16 sectorNum) = {0};
|
||||
EWRAM_DATA_2 const u16 *gFlashMaxTime = {0};
|
||||
EWRAM_LIB u16 gFlashNumRemainingBytes = {0};
|
||||
EWRAM_LIB u16 (*EraseFlashChip)() = {0};
|
||||
EWRAM_LIB u16 (*EraseFlashSector)(u16 sectorNum) = {0};
|
||||
EWRAM_LIB const u16 *gFlashMaxTime = {0};
|
||||
|
||||
void SetReadFlash1(u16 *dest);
|
||||
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@
|
|||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
|
||||
EWRAM_DATA_2 unkStruct_203B480 *gUnknown_203B480 = {0};
|
||||
EWRAM_DATA_2 unkStruct_203B484 *gUnknown_203B484 = {0};
|
||||
EWRAM_DATA_2 u32 *gUnknown_203B488 = {0};
|
||||
EWRAM_DATA_2 unkStruct_203B48C *gUnknown_203B48C = {0};
|
||||
EWRAM_INIT unkStruct_203B480 *gUnknown_203B480 = {NULL};
|
||||
EWRAM_INIT unkStruct_203B484 *gUnknown_203B484 = {NULL};
|
||||
EWRAM_INIT u32 *gUnknown_203B488 = {NULL};
|
||||
EWRAM_INIT unkStruct_203B48C *gUnknown_203B48C = {NULL};
|
||||
|
||||
EWRAM_DATA unkStruct_203B480 gUnknown_2038C88[0x20] = {0};
|
||||
EWRAM_DATA unkStruct_203B484 gUnknown_2039288 = {0};
|
||||
|
|
@ -410,7 +410,7 @@ u32 sub_8095624(u8 *buffer, u32 b)
|
|||
for (i = 0; i < 32; i++) {
|
||||
WriteBits(&backup, &gUnknown_203B48C->unk4[i], 32);
|
||||
}
|
||||
|
||||
|
||||
FinishBitSerializer(&backup);
|
||||
return backup.count;
|
||||
}
|
||||
|
|
@ -468,4 +468,4 @@ void sub_8095824(DataSerializer * a, unkStruct_203B480 *b)
|
|||
void sub_80958E4(u32 *a, u32 b)
|
||||
{
|
||||
*a = b;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ extern u8 gUnknown_8109984[];
|
|||
|
||||
static EWRAM_DATA unkStruct_203B490 sUnknown_2039448 = {0};
|
||||
|
||||
EWRAM_DATA_2 unkStruct_203B490 *gUnknown_203B490 = {0};
|
||||
EWRAM_INIT unkStruct_203B490 *gUnknown_203B490 = {0};
|
||||
|
||||
void LoadMailInfo(void)
|
||||
{
|
||||
|
|
@ -280,7 +280,7 @@ bool8 GenerateMailJobDungeonInfo(WonderMail *mail)
|
|||
s32 halfFloorCount;
|
||||
s32 floorCount;
|
||||
DungeonLocation dungeonLoc;
|
||||
|
||||
|
||||
|
||||
cap = sub_80A29B0(dungeonStack);
|
||||
if (cap == 0) {
|
||||
|
|
@ -335,7 +335,7 @@ bool8 GenerateMailJobDungeonInfo(WonderMail *mail)
|
|||
floor = halfFloorCount;
|
||||
}
|
||||
} while (floor != floor_1);
|
||||
|
||||
|
||||
counter++;
|
||||
if (counter == cap) {
|
||||
counter = 0;
|
||||
|
|
@ -369,7 +369,7 @@ u8 sub_8095E78(void)
|
|||
s32 counter;
|
||||
|
||||
u8 friendAreaStack[NUM_FRIEND_AREAS];
|
||||
|
||||
|
||||
counter = 0;
|
||||
for(friendAreaIndex = BOUNTIFUL_SEA; friendAreaIndex < NUM_FRIEND_AREAS; friendAreaIndex++)
|
||||
{
|
||||
|
|
@ -383,7 +383,7 @@ u8 sub_8095E78(void)
|
|||
if((gUnknown_203B490->mailboxSlots[index].mailType != MAIL_TYPE_NONE) && (gUnknown_203B490->mailboxSlots[index].rewardType == FRIEND_AREA))
|
||||
flag = TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
|
|
@ -410,7 +410,7 @@ u8 sub_8095F28(u8 param_1)
|
|||
s32 itemID;
|
||||
s32 counter;
|
||||
u8 itemStack [NUMBER_OF_ITEM_IDS];
|
||||
|
||||
|
||||
counter = 0;
|
||||
for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++)
|
||||
{
|
||||
|
|
@ -493,8 +493,8 @@ void ShiftMailboxSlotsDown(void)
|
|||
{
|
||||
int counter1; // r5
|
||||
int counter2;
|
||||
|
||||
|
||||
|
||||
|
||||
counter1 = 0;
|
||||
counter2 = 0;
|
||||
|
||||
|
|
@ -504,7 +504,7 @@ void ShiftMailboxSlotsDown(void)
|
|||
if (gUnknown_203B490->mailboxSlots[counter1].mailType != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (counter1 == NUM_MAILBOX_SLOTS) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -527,15 +527,15 @@ static void SortMailboxSlots(void)
|
|||
s32 r1;
|
||||
s32 r6;
|
||||
WonderMail job;
|
||||
|
||||
|
||||
for(r1 = 0; r1 < NUM_MAILBOX_SLOTS - 1; r1++)
|
||||
{
|
||||
for(r6 = r1 + 1; r6 < NUM_MAILBOX_SLOTS; r6++)
|
||||
{
|
||||
if(gUnknown_203B490->mailboxSlots[r6].mailType != 0)
|
||||
{
|
||||
if((gUnknown_203B490->mailboxSlots[r1].unk4.dungeon.id > gUnknown_203B490->mailboxSlots[r6].unk4.dungeon.id) ||
|
||||
((gUnknown_203B490->mailboxSlots[r1].unk4.dungeon.id == gUnknown_203B490->mailboxSlots[r6].unk4.dungeon.id) &&
|
||||
if((gUnknown_203B490->mailboxSlots[r1].unk4.dungeon.id > gUnknown_203B490->mailboxSlots[r6].unk4.dungeon.id) ||
|
||||
((gUnknown_203B490->mailboxSlots[r1].unk4.dungeon.id == gUnknown_203B490->mailboxSlots[r6].unk4.dungeon.id) &&
|
||||
(gUnknown_203B490->mailboxSlots[r1].unk4.dungeon.floor > gUnknown_203B490->mailboxSlots[r6].unk4.dungeon.floor)))
|
||||
{
|
||||
job = gUnknown_203B490->mailboxSlots[r1];
|
||||
|
|
@ -562,11 +562,11 @@ bool8 sub_80961D8(void)
|
|||
s32 friendAreaReward;
|
||||
WonderMail *slot;
|
||||
bool8 flag = FALSE;
|
||||
|
||||
|
||||
num = CountFilledMailboxSlots();
|
||||
index = RandRange(num, NUM_MAILBOX_SLOTS);
|
||||
if(num >= NUM_MAILBOX_SLOTS) return 0;
|
||||
if(!gUnknown_203B490->unk328)
|
||||
if(!gUnknown_203B490->unk328)
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
|
|
@ -598,7 +598,7 @@ bool8 sub_80961D8(void)
|
|||
if(!gUnknown_203B490->PKMNNewsReceived[0x37])
|
||||
if(!sub_8096E80(0x37)) floor = 0x37;
|
||||
}
|
||||
|
||||
|
||||
if(floor != 0x38) goto _slot;
|
||||
if(num > index) goto _08096392;
|
||||
floor = sub_8096E2C();
|
||||
|
|
@ -653,7 +653,7 @@ bool8 sub_80963B4(void)
|
|||
s32 num;
|
||||
WonderMail *slot;
|
||||
bool8 flag = FALSE;
|
||||
|
||||
|
||||
floor = sub_8096E2C();
|
||||
num = CountFilledMailboxSlots();
|
||||
if(num >= NUM_MAILBOX_SLOTS) return FALSE;
|
||||
|
|
@ -675,7 +675,7 @@ void sub_80963FC(void)
|
|||
{
|
||||
s32 index;
|
||||
WonderMail *slot;
|
||||
|
||||
|
||||
for(index = 0; index < NUM_MAILBOX_SLOTS; index++)
|
||||
{
|
||||
slot = GetMailboxSlotInfo(index);
|
||||
|
|
@ -749,7 +749,7 @@ s32 CountFilledPelipperBoardSlots(void)
|
|||
if (!IsPelipperBoardSlotEmpty(index)) {
|
||||
slots++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return slots;
|
||||
}
|
||||
|
||||
|
|
@ -793,8 +793,8 @@ void ShiftPelipperJobsDown(void)
|
|||
{
|
||||
int counter1; // r5
|
||||
int counter2;
|
||||
|
||||
|
||||
|
||||
|
||||
counter1 = 0;
|
||||
counter2 = 0;
|
||||
|
||||
|
|
@ -804,7 +804,7 @@ void ShiftPelipperJobsDown(void)
|
|||
if (gUnknown_203B490->pelipperBoardJobs[counter1].mailType != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (counter1 == MAX_ACCEPTED_JOBS) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -840,11 +840,11 @@ void SortPelipperJobs(void)
|
|||
((gUnknown_203B490->pelipperBoardJobs[index1].unk4.dungeon.id == gUnknown_203B490->pelipperBoardJobs[index2].unk4.dungeon.id) && (gUnknown_203B490->pelipperBoardJobs[index1].unk4.dungeon.floor > gUnknown_203B490->pelipperBoardJobs[index2].unk4.dungeon.floor)))
|
||||
{
|
||||
mail = gUnknown_203B490->pelipperBoardJobs[index1];
|
||||
gUnknown_203B490->pelipperBoardJobs[index1] = gUnknown_203B490->pelipperBoardJobs[index2];
|
||||
gUnknown_203B490->pelipperBoardJobs[index1] = gUnknown_203B490->pelipperBoardJobs[index2];
|
||||
gUnknown_203B490->pelipperBoardJobs[index2] = mail;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -853,13 +853,13 @@ void GeneratePelipperJobs(void)
|
|||
s32 range;
|
||||
WonderMail *mail;
|
||||
s32 index;
|
||||
|
||||
|
||||
range = RandRange(4,8);
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
gUnknown_203B490->pelipperBoardJobs[index].mailType = MAIL_TYPE_NONE;
|
||||
}
|
||||
|
||||
|
||||
index = 0;
|
||||
if (sub_8097318(0xe) != 0) {
|
||||
mail = GetPelipperBoardSlotInfo(0);
|
||||
|
|
@ -924,11 +924,11 @@ bool8 IsMailinJobSlot(WonderMail *mail)
|
|||
{
|
||||
WonderMail *jobSlot;
|
||||
s32 index;
|
||||
|
||||
|
||||
for(index = 0, jobSlot = &gUnknown_203B490->jobSlots[0]; index < MAX_ACCEPTED_JOBS; jobSlot++, index++)
|
||||
{
|
||||
if(jobSlot->mailType != MAIL_TYPE_NONE)
|
||||
if(mail->missionType == jobSlot->missionType)
|
||||
if(mail->missionType == jobSlot->missionType)
|
||||
if(mail->unk2 == jobSlot->unk2)
|
||||
if(mail->unk4.dungeon.id == jobSlot->unk4.dungeon.id)
|
||||
if(mail->unk4.dungeon.floor == jobSlot->unk4.dungeon.floor)
|
||||
|
|
@ -939,7 +939,7 @@ bool8 IsMailinJobSlot(WonderMail *mail)
|
|||
if(mail->rewardType == jobSlot->rewardType)
|
||||
if(mail->itemReward == jobSlot->itemReward)
|
||||
if(mail->friendAreaReward == jobSlot->friendAreaReward)
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -950,7 +950,7 @@ bool8 sub_809693C(WonderMail *mail)
|
|||
u8 floor;
|
||||
bool8 escortMission;
|
||||
s32 index;
|
||||
|
||||
|
||||
dungeonIndex = mail->unk4.dungeon.id;
|
||||
floor = mail->unk4.dungeon.floor;
|
||||
escortMission = FALSE;
|
||||
|
|
@ -977,7 +977,7 @@ s32 GetNumAcceptedJobs(void)
|
|||
{
|
||||
s32 index;
|
||||
s32 count;
|
||||
|
||||
|
||||
count = 0;
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
|
|
@ -993,7 +993,7 @@ s32 CountJobsinDungeon(u8 dungeon)
|
|||
WonderMail *mail;
|
||||
s32 index;
|
||||
s32 count;
|
||||
|
||||
|
||||
count = 0;
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
|
|
@ -1002,7 +1002,7 @@ s32 CountJobsinDungeon(u8 dungeon)
|
|||
(((mail->mailType == MAIL_TYPE_TAKEN_JOB || (mail->mailType == MAIL_TYPE_UNK8)) || (mail->mailType == MAIL_TYPE_UNK9)))) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
@ -1070,7 +1070,7 @@ void sub_8096AF8(struct unkStruct_8096AF8 *param_1, u8 slotIndex,u8 dungeon)
|
|||
WonderMail *jobSlot;
|
||||
Item *item;
|
||||
s32 index;
|
||||
|
||||
|
||||
jobSlot = GetJobSlotInfo(slotIndex);
|
||||
param_1->unk0 = FALSE;
|
||||
param_1->clientSpecies = jobSlot->clientSpecies;
|
||||
|
|
@ -1110,7 +1110,7 @@ s16 sub_8096B98(u8 dungeon)
|
|||
{
|
||||
WonderMail *mail;
|
||||
s32 index;
|
||||
|
||||
|
||||
for(index = 0; index < MAX_ACCEPTED_JOBS; index++)
|
||||
{
|
||||
mail = GetJobSlotInfo(index);
|
||||
|
|
@ -1171,8 +1171,8 @@ void ShiftJobSlotsDown(void)
|
|||
{
|
||||
int counter1; // r5
|
||||
int counter2;
|
||||
|
||||
|
||||
|
||||
|
||||
counter1 = 0;
|
||||
counter2 = 0;
|
||||
|
||||
|
|
@ -1182,7 +1182,7 @@ void ShiftJobSlotsDown(void)
|
|||
if (gUnknown_203B490->jobSlots[counter1].mailType != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (counter1 == MAX_ACCEPTED_JOBS) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -1205,15 +1205,15 @@ void SortJobSlots(void)
|
|||
s32 r1;
|
||||
s32 r6;
|
||||
WonderMail job;
|
||||
|
||||
|
||||
for(r1 = 0; r1 < MAX_ACCEPTED_JOBS - 1; r1++)
|
||||
{
|
||||
for(r6 = r1 + 1; r6 < MAX_ACCEPTED_JOBS; r6++)
|
||||
{
|
||||
if(gUnknown_203B490->jobSlots[r6].mailType != 0)
|
||||
{
|
||||
if((gUnknown_203B490->jobSlots[r1].unk4.dungeon.id > gUnknown_203B490->jobSlots[r6].unk4.dungeon.id) ||
|
||||
((gUnknown_203B490->jobSlots[r1].unk4.dungeon.id == gUnknown_203B490->jobSlots[r6].unk4.dungeon.id) &&
|
||||
if((gUnknown_203B490->jobSlots[r1].unk4.dungeon.id > gUnknown_203B490->jobSlots[r6].unk4.dungeon.id) ||
|
||||
((gUnknown_203B490->jobSlots[r1].unk4.dungeon.id == gUnknown_203B490->jobSlots[r6].unk4.dungeon.id) &&
|
||||
(gUnknown_203B490->jobSlots[r1].unk4.dungeon.floor > gUnknown_203B490->jobSlots[r6].unk4.dungeon.floor)))
|
||||
{
|
||||
job = gUnknown_203B490->jobSlots[r1];
|
||||
|
|
@ -1254,7 +1254,7 @@ u8 sub_8096E2C(void)
|
|||
if(gUnknown_203B490->mailboxSlots[index].mailType == 1)
|
||||
{
|
||||
if(floor <= gUnknown_203B490->mailboxSlots[index].unk4.dungeon.floor)
|
||||
if( gUnknown_203B490->mailboxSlots[index].unk4.dungeon.floor < 0x32)
|
||||
if( gUnknown_203B490->mailboxSlots[index].unk4.dungeon.floor < 0x32)
|
||||
floor = gUnknown_203B490->mailboxSlots[index].unk4.dungeon.floor + 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -1285,7 +1285,7 @@ s32 CalculateMailChecksum(WonderMail *mail)
|
|||
s32 sum;
|
||||
|
||||
sum = (mail->unk2 + mail->missionType);
|
||||
|
||||
|
||||
sum += mail->unk4.dungeon.id;
|
||||
sum += mail->unk4.dungeon.floor;
|
||||
|
||||
|
|
@ -1370,7 +1370,7 @@ u32 RestoreMailInfo(u8 *r0, u32 size)
|
|||
gUnknown_203B490->unk328 = TRUE;
|
||||
else
|
||||
gUnknown_203B490->unk328 = FALSE;
|
||||
|
||||
|
||||
ReadBits(&backup, gUnknown_203B490->unk190, 40 * 8);
|
||||
ReadBits(&backup, gUnknown_203B490->unk1B8, 120 * 8);
|
||||
for (index = 0; index < 16; index++)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
static EWRAM_DATA struct unkStruct_203B494 sUnknown_2039778 = {0};
|
||||
|
||||
EWRAM_DATA_2 struct unkStruct_203B494 *gUnknown_203B494 = {0};
|
||||
EWRAM_INIT struct unkStruct_203B494 *gUnknown_203B494 = {0};
|
||||
|
||||
// data_810AE24.s
|
||||
extern const u8 *gAdventureLogText[];
|
||||
|
|
@ -392,4 +392,4 @@ u32 RestoreAdventureData(u8 *buffer, u32 bufLen)
|
|||
|
||||
FinishBitSerializer(&seri);
|
||||
return seri.count;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,12 @@ void nullsub_114();
|
|||
void nullsub_115();
|
||||
void nullsub_116();
|
||||
|
||||
extern const char gUnknown_8116390[];
|
||||
extern const char gUnknown_811636C[];
|
||||
extern const char gUnknown_811633C[];
|
||||
|
||||
EWRAM_INIT const char *gUnknown_203B4A0[3] = {gUnknown_8116390, gUnknown_811636C, gUnknown_811633C};
|
||||
|
||||
void sub_809C5C4(void)
|
||||
{
|
||||
gUnknown_3001B68 = MemoryAlloc(sizeof(struct unkStruct_3001B68), 6);
|
||||
|
|
|
|||
|
|
@ -377,7 +377,7 @@ void nullsub_120(void)
|
|||
|
||||
// Different file below?
|
||||
|
||||
extern void *gUnknown_203B4B0;
|
||||
EWRAM_INIT void *gUnknown_203B4B0 = NULL;
|
||||
|
||||
void sub_809D490(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const u8 filler_ex1[8] =
|
|||
'p', 'k', 's', 'd', 'i', 'r', '0', 0
|
||||
};
|
||||
|
||||
EWRAM_DATA_2 struct ExclusivePokemonData *gUnknown_203B498 = {0};
|
||||
EWRAM_INIT struct ExclusivePokemonData *gUnknown_203B498 = {0};
|
||||
EWRAM_DATA struct ExclusivePokemonData gExclusivePokemonInfo = {0};
|
||||
|
||||
void LoadExclusivePokemon(void)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "ground_script.h"
|
||||
#include "number_util.h"
|
||||
|
||||
EWRAM_DATA_2 const struct GroundLink *gCurrentGroundLink = NULL;
|
||||
EWRAM_INIT const struct GroundLink *gCurrentGroundLink = NULL;
|
||||
extern DebugLocation gUnknown_8118798;
|
||||
extern const struct GroundScriptHeader *GetGroundScript(s16 r0, DebugLocation *r1);
|
||||
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ EWRAM_DATA u16 gUnknown_20398BE = {0};
|
|||
EWRAM_DATA u32 gUnknown_20398C0 = {0};
|
||||
EWRAM_DATA s16 gUnknown_20398C4 = {0};
|
||||
|
||||
EWRAM_DATA_2 u8 gUnknown_203B49C = {0};
|
||||
EWRAM_DATA_2 u8 gUnknown_203B49D = {0};
|
||||
EWRAM_INIT u8 gUnknown_203B49C = {0};
|
||||
EWRAM_INIT u8 gUnknown_203B49D = {0};
|
||||
|
||||
#include "data/ground_main.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -136,7 +136,6 @@ extern s16 gUnknown_2039A34;
|
|||
|
||||
extern struct { const char *unk0; s32 unk4; } gChoices[9];
|
||||
extern u8 gUnknown_2039D98[12];
|
||||
extern int gNumChoices;
|
||||
|
||||
extern PixelPos gUnknown_81164DC;
|
||||
extern char gUnknown_81165D4[];
|
||||
|
|
@ -155,6 +154,8 @@ extern DebugLocation gUnknown_81166F8;
|
|||
extern DebugLocation gUnknown_8116704;
|
||||
extern ScriptCommand gUnknown_81164E4;
|
||||
|
||||
EWRAM_INIT static int sNumChoices = 0;
|
||||
|
||||
// Return values:
|
||||
// This function returns what's likely an enum, which controls the state of the script engine state machine, and possibly provides information to code calling the engine.
|
||||
// The enum is shared at least with HandleAction.
|
||||
|
|
@ -1680,7 +1681,7 @@ s32 ExecuteScriptCommand(Action *action) {
|
|||
case 0xd2 ... 0xd8: {
|
||||
// DS: Assert(TRUE, "Script command call error SWITCH MENY") [sic]
|
||||
const char *out = curCmd.argPtr;
|
||||
gNumChoices = 0;
|
||||
sNumChoices = 0;
|
||||
scriptData->branchDiscriminant = 0;
|
||||
switch(curCmd.op) {
|
||||
case 0xd6: case 0xd7: case 0xd8: {
|
||||
|
|
@ -1696,13 +1697,13 @@ s32 ExecuteScriptCommand(Action *action) {
|
|||
}
|
||||
if (!out) out = gUnknown_81166D8; // ""
|
||||
for (; scriptData->script.ptr->op == 0xd9; scriptData->script.ptr++) {
|
||||
gChoices[gNumChoices].unk0 = scriptData->script.ptr->argPtr;
|
||||
gChoices[gNumChoices].unk4 = gNumChoices + 1;
|
||||
gNumChoices++;
|
||||
gChoices[sNumChoices].unk0 = scriptData->script.ptr->argPtr;
|
||||
gChoices[sNumChoices].unk4 = sNumChoices + 1;
|
||||
sNumChoices++;
|
||||
}
|
||||
if (gNumChoices <= 0) break;
|
||||
gChoices[gNumChoices].unk0 = NULL;
|
||||
gChoices[gNumChoices].unk4 = curCmd.argShort;
|
||||
if (sNumChoices <= 0) break;
|
||||
gChoices[sNumChoices].unk0 = NULL;
|
||||
gChoices[sNumChoices].unk4 = curCmd.argShort;
|
||||
switch (curCmd.op) {
|
||||
case 0xd2: case 0xd3: case 0xd6: {
|
||||
sub_809B028(gChoices, (u8)curCmd.argByte > 0, -1, 0, (s16)curCmd.arg1, out);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ EWRAM_DATA u8 gUnknown_2039DD0 = {0};
|
|||
EWRAM_DATA u8 gUnknown_2039DD1[3] = {0, 0, 0}; // Unused, for alignment
|
||||
EWRAM_DATA u32 gUnknown_2039DD4 = {0};
|
||||
|
||||
EWRAM_DATA_2 OpenedFile *gUnknown_203B4B4 = {0};
|
||||
EWRAM_INIT OpenedFile *gUnknown_203B4B4 = {NULL};
|
||||
|
||||
// dungeon_sbin.s
|
||||
extern const struct FileArchive gDungeonFileArchive;
|
||||
|
|
|
|||
10
src/m4a.c
10
src/m4a.c
|
|
@ -15,11 +15,11 @@ EWRAM_DATA struct MusicPlayerInfo gMPlayInfo_SE3 = {0};
|
|||
EWRAM_DATA u8 gMPlayMemAccArea[0x10] = {0};
|
||||
EWRAM_DATA struct MusicPlayerInfo gMPlayInfo_SE2 = {0};
|
||||
|
||||
EWRAM_DATA_2 struct SoundInfo gSoundInfo = {0};
|
||||
EWRAM_DATA_2 MPlayFunc gMPlayJumpTable[34] = {0};
|
||||
EWRAM_DATA_2 u32 gUnknown_203AF08 = {0};
|
||||
EWRAM_DATA_2 u32 gUnknown_203AF0C = {0};
|
||||
EWRAM_DATA_2 struct CgbChannel gCgbChans[4] = {0};
|
||||
EWRAM_LIB struct SoundInfo gSoundInfo = {0};
|
||||
EWRAM_LIB MPlayFunc gMPlayJumpTable[34] = {0};
|
||||
EWRAM_LIB u32 gUnknown_203AF08 = {0};
|
||||
EWRAM_LIB u32 gUnknown_203AF0C = {0};
|
||||
EWRAM_LIB struct CgbChannel gCgbChans[4] = {0};
|
||||
|
||||
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
.align 2
|
||||
|
||||
|
||||
|
||||
.include "src/code_8094F88.o"
|
||||
.include "src/code_80958E8.o"
|
||||
.include "src/code_8097670.o"
|
||||
.include "src/exclusive_pokemon.o"
|
||||
.include "src/ground_main.o"
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203B4A0: /* 203B4A0 (sub_809CCDC) */
|
||||
.space 0xC
|
||||
|
||||
gNumChoices: /* 203B4AC (ExecuteScriptCommand) */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B4B0: /* 203B4B0 (sub_809D490 - HandleAction) */
|
||||
.space 0x4
|
||||
|
||||
.include "src/ground_sprite.o"
|
||||
.include "src/ground_link.o"
|
||||
|
|
@ -125,3 +125,13 @@
|
|||
.include "src/game_options.o"
|
||||
.include "src/code_8094D28.o"
|
||||
.include "src/play_time.o"
|
||||
.include "src/code_8094F88.o"
|
||||
.include "src/code_80958E8.o"
|
||||
.include "src/code_8097670.o"
|
||||
.include "src/exclusive_pokemon.o"
|
||||
.include "src/ground_main.o"
|
||||
.include "src/code_809C5C4.o"
|
||||
.include "src/ground_script_1.o"
|
||||
.include "src/code_809D148.o"
|
||||
.include "src/ground_sprite.o"
|
||||
.include "src/ground_link.o"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user