Try and guess what some of this stuff in crt0.s is

This commit is contained in:
PikalaxALT
2018-11-21 20:11:12 -05:00
parent 77d7434df2
commit 76f0c361ed
2 changed files with 71 additions and 54 deletions
+16 -15
View File
@@ -60,11 +60,11 @@ GPIOPortReadEnable: @ 80000C8
.4byte 0x8245EE0 @ gSpeciesNames .4byte 0x8245EE0 @ gSpeciesNames
.4byte 0x8247094 @ gMoveNames .4byte 0x8247094 @ gMoveNames
.4byte 0x84556F8 @ gDecorations .4byte 0x84556F8 @ gDecorations
.4byte 0xEE0 .4byte 0xEE0 @ offsetof(struct SaveBlock1, flags)
.4byte 0x1000 .4byte 0x1000 @ offsetof(struct SaveBlock1, vars)
.4byte 0x18 .4byte 0x18 @ offsetof(struct SaveBlock2, pokedex)
.4byte 0x5F8 .4byte 0x5F8 @ offsetof(struct SaveBlock1, seen1)
.4byte 0x3A18 .4byte 0x3A18 @ offsetof(struct SaveBlock1, seen2)
.4byte 0x3C .4byte 0x3C
.4byte 0x838 .4byte 0x838
.4byte 0x839 .4byte 0x839
@@ -74,16 +74,17 @@ GPIOPortReadEnable: @ 80000C8
.4byte 0xC121006 .4byte 0xC121006
.4byte 0x8010B0F .4byte 0x8010B0F
.4byte 0xC .4byte 0xC
.4byte 0xF24 .4byte 0xF24 @ sizeof(struct SaveBlock2)
.4byte 0x3D68 .4byte 0x3D68 @ sizeof(struct SaveBlock1)
.4byte 0x34 .4byte 0x34 @ offsetof(struct SaveBlock1, playerPartyCount)
.4byte 0x38 .4byte 0x38 @ offsetof(struct SaveBlock1, playerParty)
.4byte 9 .4byte 9 @ offsetof(struct SaveBlock2, specialSaveWarp)
.4byte 0xA .4byte 0xA @ offsetof(struct SaveBlock2, playerTrainerId)
.4byte 0 .4byte 0 @ offsetof(struct SaveBlock2, playerName)
.4byte 8 .4byte 8 @ offsetof(struct SaveBlock2, playerGender)
.4byte 0xAD
.4byte 0xAD .4byte 0xAD @ offsetof(struct SaveBlock2, ?????? (0xAD))
.4byte 0xAD @ offsetof(struct SaveBlock2, ?????? (0xAD))
.4byte 0x30BB .4byte 0x30BB
.4byte 0x30A7 .4byte 0x30A7
.4byte 0 .4byte 0
+55 -39
View File
@@ -155,6 +155,8 @@ struct Time
/*0x04*/ s8 seconds; /*0x04*/ s8 seconds;
}; };
#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
struct Pokedex struct Pokedex
{ {
/*0x00*/ u8 order; /*0x00*/ u8 order;
@@ -164,8 +166,8 @@ struct Pokedex
/*0x04*/ u32 unownPersonality; // set when you first see Unown /*0x04*/ u32 unownPersonality; // set when you first see Unown
/*0x08*/ u32 spindaPersonality; // set when you first see Spinda /*0x08*/ u32 spindaPersonality; // set when you first see Spinda
/*0x0C*/ u32 unknown3; /*0x0C*/ u32 unknown3;
/*0x10*/ u8 owned[52]; /*0x10*/ u8 owned[DEX_FLAGS_NO];
/*0x44*/ u8 seen[52]; /*0x44*/ u8 seen[DEX_FLAGS_NO];
}; };
struct PokemonJumpResults // possibly used in the game itself? struct PokemonJumpResults // possibly used in the game itself?
@@ -514,9 +516,9 @@ struct QuestLogNPCData
struct UnkStruct_203B024 struct UnkStruct_203B024
{ {
u16 unk_00; u16 unk_00;
u16 unk_02; u16 unk_02;
u16 unk_04[14]; u16 unk_04[14];
}; };
union QuestLogScene union QuestLogScene
@@ -535,11 +537,11 @@ union QuestLogMovement;
// Define here // Define here
union QuestLogMovement union QuestLogMovement
{ {
u16 ident_raw; u16 ident_raw;
struct { struct {
u16 ident:12; u16 ident:12;
u16 flags:4; u16 flags:4;
} ident_struct; } ident_struct;
}; };
struct QuestLog struct QuestLog
@@ -571,30 +573,31 @@ struct SaveBlock1
{ {
/*0x0000*/ struct Coords16 pos; /*0x0000*/ struct Coords16 pos;
/*0x0004*/ struct WarpData location; /*0x0004*/ struct WarpData location;
/*0x0C*/ struct WarpData warp1; /*0x000C*/ struct WarpData warp1;
/*0x14*/ struct WarpData warp2; /*0x0014*/ struct WarpData warp2;
/*0x1C*/ struct WarpData lastHealLocation; /*0x001C*/ struct WarpData lastHealLocation;
/*0x24*/ struct WarpData warp4; /*0x0024*/ struct WarpData warp4;
/*0x2C*/ u16 savedMusic; /*0x002C*/ u16 savedMusic;
/*0x2E*/ u8 weather; /*0x002E*/ u8 weather;
/*0x2F*/ u8 filler_2F; /*0x002F*/ u8 filler_2F;
/*0x30*/ u8 flashLevel; /*0x0030*/ u8 flashLevel;
/*0x32*/ u16 mapDataId; /*0x0032*/ u16 mapDataId;
/*0x234*/ u8 playerPartyCount; /*0x0034*/ u8 playerPartyCount;
/*0x238*/ struct Pokemon playerParty[PARTY_SIZE]; /*0x0038*/ struct Pokemon playerParty[PARTY_SIZE];
/*0x490*/ u32 money; /*0x0290*/ u32 money;
/*0x494*/ u16 coins; /*0x0294*/ u16 coins;
/*0x496*/ u16 registeredItem; // registered for use with SELECT button /*0x0296*/ u16 registeredItem; // registered for use with SELECT button
/*0x0298*/ u8 filler298[0x78]; /*0x0298*/ u8 filler298[0x78];
/*0x0310*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT]; /*0x0310*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
/*0x????*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT]; /*0x03b8*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
/*0x????*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT]; /*0x0430*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
/*0x????*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; /*0x0464*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
/*0x????*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT]; /*0x054c*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
/*0x05F8*/ u8 filler5F8[0x40]; /*0x05F8*/ u8 seen1[DEX_FLAGS_NO];
/*0x638*/ u8 trainerRematchStepCounter; /*0x062C*/ u8 filler_062c[12];
u8 filler_639; /*0x0638*/ u8 trainerRematchStepCounter;
/*0x63A*/ u8 trainerRematches[100]; u8 filler_639;
/*0x063A*/ u8 trainerRematches[100];
/*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
/*0x0EE0*/ u8 flags[FLAGS_COUNT]; /*0x0EE0*/ u8 flags[FLAGS_COUNT];
@@ -602,14 +605,27 @@ struct SaveBlock1
/*0x1200*/ u8 filler1200[0x100]; /*0x1200*/ u8 filler1200[0x100];
/*0x1300*/ struct QuestLog questLog[4]; /*0x1300*/ struct QuestLog questLog[4];
/*0x2CA0*/ u8 filler2CA0[0x30]; /*0x2CA0*/ u8 filler2CA0[0x30];
/*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT];
/*0x2F10*/ u8 filler2F10[0x1DA]; /*0x2F10*/ u8 filler2F10[0x184];
/*0x30EC*/ struct EnigmaBerry enigmaBerry; struct {
/*0x3120*/ u8 filler3120[0x340]; /*0x3094*/ u8 unknown1[8];
/*0x309C*/ u8 giftRibbons[11];
/*0x30A7*/ u8 unknown2[8];
/*0x30AF*/ u32 currentPokeCoupons;
/*0x30B3*/ u32 totalEarnedPokeCoupons;
/*0x30B7*/ u8 unknown3[6];
/*0x30BD*/ u8 receivedWishmakerJirachi;
/*0x30BE*/ u8 unknown4[18];
} __attribute__((packed)) externalReservedData;
/*0x30D0*/ struct Roamer roamer;
/*0x30EC*/ struct EnigmaBerry enigmaBerry;
/*0x3120*/ u8 filler3120[0x340];
/*0x3460*/ struct MysteryEventStruct unk_3460; /*0x3460*/ struct MysteryEventStruct unk_3460;
/*0x3464*/ u8 filler_3464[0x1b8]; /*0x3464*/ u8 filler_3464[0x1b8];
/*0x361C*/ struct RamScript ramScript; /*0x361C*/ struct RamScript ramScript;
/*0x3A08*/ u8 filler3A08[0x44]; /*0x3A08*/ u8 filler3A08[12];
/*0x3A14*/ u8 seen2[DEX_FLAGS_NO];
/*0x3A48*/ u8 filler_3a48[4];
/*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH];
/*0x3A54*/ u8 filler3A54[0x2E4]; /*0x3A54*/ u8 filler3A54[0x2E4];
u32 unkArray[4][3]; u32 unkArray[4][3];