Merge branch 'master' into fix-eventobj
This commit is contained in:
+1
-1
@@ -74,7 +74,7 @@ u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void))
|
||||
return 1;
|
||||
|
||||
sTimerNum = timerNum;
|
||||
sTimerReg = ®_TMCNT(sTimerNum);
|
||||
sTimerReg = ®_TMCNT_L(sTimerNum);
|
||||
*intrFunc = FlashTimerIntr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
+1
-1
@@ -163,7 +163,7 @@ IntrMain: @ 8000248
|
||||
IntrMain_FoundIntr:
|
||||
strh r0, [r3, OFFSET_REG_IF - 0x200]
|
||||
bic r2, r2, r0
|
||||
ldr r0, =gRfuState
|
||||
ldr r0, =gSTWIStatus
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xA]
|
||||
mov r1, 0x8
|
||||
|
||||
@@ -1,362 +0,0 @@
|
||||
const u32 gEventObjectPic_BrendanNormal[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/walking.4bpp");
|
||||
const u32 gEventObjectPic_BrendanRunning[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/running.4bpp");
|
||||
const u16 gEventObjectPalette8[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_08.gbapal");
|
||||
const u32 gEventObjectPic_RubySapphireBrendanNormal[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/walking.4bpp");
|
||||
const u32 gEventObjectPic_RubySapphireBrendanRunning[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/running.4bpp");
|
||||
const u16 gEventObjectPalette33[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_33.gbapal");
|
||||
const u16 NullPalette_8499A38[16] = {};
|
||||
const u16 NullPalette_8499A58[16] = {};
|
||||
const u16 NullPalette_8499A78[16] = {};
|
||||
const u16 NullPalette_8499A98[16] = {};
|
||||
const u16 NullPalette_8499AB8[16] = {};
|
||||
const u16 NullPalette_8499AD8[16] = {};
|
||||
const u16 NullPalette_8499AF8[16] = {};
|
||||
const u16 NullPalette_8499B18[16] = {};
|
||||
const u16 NullPalette_8499B38[16] = {};
|
||||
const u16 NullPalette_8499B58[16] = {};
|
||||
const u16 NullPalette_8499B78[16] = {};
|
||||
const u16 NullPalette_8499B98[16] = {};
|
||||
const u16 NullPalette_8499BB8[16] = {};
|
||||
const u16 NullPalette_8499BD8[16] = {};
|
||||
const u16 NullPalette_8499BF8[16] = {};
|
||||
const u16 gEventObjectPalette9[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_09.gbapal");
|
||||
const u16 gEventObjectPalette10[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_10.gbapal");
|
||||
const u32 gEventObjectPic_BrendanFieldMove[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move.4bpp");
|
||||
const u32 gEventObjectPic_BrendanSurfing[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing.4bpp");
|
||||
const u32 gEventObjectPic_BrendanMachBike[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike.4bpp");
|
||||
const u32 gEventObjectPic_BrendanAcroBike[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike.4bpp");
|
||||
const u32 gEventObjectPic_BrendanFishing[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing.4bpp");
|
||||
const u32 gEventObjectPic_BrendanWatering[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering.4bpp");
|
||||
const u32 gEventObjectPic_BrendanDecorating[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/decorating.4bpp");
|
||||
const u32 gEventObjectPic_MayDecorating[] = INCBIN_U32("graphics/event_objects/pics/people/may/decorating.4bpp");
|
||||
const u32 gEventObjectPic_BrendanUnderwater[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater.4bpp");
|
||||
const u32 gEventObjectPic_MayUnderwater[] = INCBIN_U32("graphics/event_objects/pics/people/may/underwater.4bpp");
|
||||
const u16 gEventObjectPalette11[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_11.gbapal");
|
||||
const u32 gEventObjectPic_MayNormal[] = INCBIN_U32("graphics/event_objects/pics/people/may/walking.4bpp");
|
||||
const u32 gEventObjectPic_MayRunning[] = INCBIN_U32("graphics/event_objects/pics/people/may/running.4bpp");
|
||||
const u16 gEventObjectPalette17[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_17.gbapal");
|
||||
const u16 gEventObjectPalette18[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_18.gbapal");
|
||||
const u32 gEventObjectPic_RubySapphireMayNormal[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/walking.4bpp");
|
||||
const u32 gEventObjectPic_RubySapphireMayRunning[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/running.4bpp");
|
||||
const u16 gEventObjectPalette34[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_34.gbapal");
|
||||
const u16 gUnusedEventObjectPalette[] = INCBIN_U16("graphics/event_objects/palettes/unused_palette.gbapal");
|
||||
const u16 NullPalette_84A54F8[16] = {};
|
||||
const u16 NullPalette_84A5518[16] = {};
|
||||
const u16 NullPalette_84A5538[16] = {};
|
||||
const u16 NullPalette_84A5558[16] = {};
|
||||
const u16 NullPalette_84A5578[16] = {};
|
||||
const u16 NullPalette_84A5598[16] = {};
|
||||
const u16 NullPalette_84A55B8[16] = {};
|
||||
const u16 NullPalette_84A55D8[16] = {};
|
||||
const u16 NullPalette_84A55F8[16] = {};
|
||||
const u16 NullPalette_84A5618[16] = {};
|
||||
const u16 NullPalette_84A5638[16] = {};
|
||||
const u16 NullPalette_84A5658[16] = {};
|
||||
const u16 NullPalette_84A5678[16] = {};
|
||||
const u16 NullPalette_84A5698[16] = {};
|
||||
const u32 gEventObjectPic_MayMachBike[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike.4bpp");
|
||||
const u32 gEventObjectPic_MayAcroBike[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike.4bpp");
|
||||
const u32 gEventObjectPic_MaySurfing[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing.4bpp");
|
||||
const u32 gEventObjectPic_MayFieldMove[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move.4bpp");
|
||||
const u32 gEventObjectPic_MayFishing[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing.4bpp");
|
||||
const u32 gEventObjectPic_MayWatering[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering.4bpp");
|
||||
const u16 gEventObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_00.gbapal");
|
||||
const u16 gEventObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_01.gbapal");
|
||||
const u16 gEventObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_02.gbapal");
|
||||
const u16 gEventObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_03.gbapal");
|
||||
const u16 gEventObjectPalette4[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_04.gbapal");
|
||||
const u16 gEventObjectPalette5[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_05.gbapal");
|
||||
const u16 gEventObjectPalette6[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_06.gbapal");
|
||||
const u16 gEventObjectPalette7[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_07.gbapal");
|
||||
const u32 gEventObjectPic_NinjaBoy[] = INCBIN_U32("graphics/event_objects/pics/people/ninja_boy.4bpp");
|
||||
const u32 gEventObjectPic_Twin[] = INCBIN_U32("graphics/event_objects/pics/people/twin.4bpp");
|
||||
const u32 gEventObjectPic_Boy1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1.4bpp");
|
||||
const u32 gEventObjectPic_Girl1[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1.4bpp");
|
||||
const u32 gEventObjectPic_Boy2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2.4bpp");
|
||||
const u32 gEventObjectPic_Girl2[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2.4bpp");
|
||||
const u32 gEventObjectPic_LittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy.4bpp");
|
||||
const u32 gEventObjectPic_LittleGirl[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl.4bpp");
|
||||
const u32 gEventObjectPic_Boy3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3.4bpp");
|
||||
const u32 gEventObjectPic_Girl3[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3.4bpp");
|
||||
const u32 gEventObjectPic_RichBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rich_boy.4bpp");
|
||||
const u32 gEventObjectPic_Woman1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1.4bpp");
|
||||
const u32 gEventObjectPic_FatMan[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man.4bpp");
|
||||
const u32 gEventObjectPic_PokefanF[] = INCBIN_U32("graphics/event_objects/pics/people/pokefan_f.4bpp");
|
||||
const u32 gEventObjectPic_Man1[] = INCBIN_U32("graphics/event_objects/pics/people/man_1.4bpp");
|
||||
const u32 gEventObjectPic_Woman2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2.4bpp");
|
||||
const u32 gEventObjectPic_ExpertM[] = INCBIN_U32("graphics/event_objects/pics/people/expert_m.4bpp");
|
||||
const u32 gEventObjectPic_ExpertF[] = INCBIN_U32("graphics/event_objects/pics/people/expert_f.4bpp");
|
||||
const u32 gEventObjectPic_Man2[] = INCBIN_U32("graphics/event_objects/pics/people/man_2.4bpp");
|
||||
const u32 gEventObjectPic_Woman3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3.4bpp");
|
||||
const u32 gEventObjectPic_PokefanM[] = INCBIN_U32("graphics/event_objects/pics/people/pokefan_m.4bpp");
|
||||
const u32 gEventObjectPic_Woman4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4.4bpp");
|
||||
const u32 gEventObjectPic_Cook[] = INCBIN_U32("graphics/event_objects/pics/people/cook.4bpp");
|
||||
const u32 gEventObjectPic_LinkReceptionist[] = INCBIN_U32("graphics/event_objects/pics/people/link_receptionist.4bpp");
|
||||
const u32 gEventObjectPic_OldMan[] = INCBIN_U32("graphics/event_objects/pics/people/old_man.4bpp");
|
||||
const u32 gEventObjectPic_OldWoman[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman.4bpp");
|
||||
const u32 gEventObjectPic_Camper[] = INCBIN_U32("graphics/event_objects/pics/people/camper.4bpp");
|
||||
const u32 gEventObjectPic_Picnicker[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker.4bpp");
|
||||
const u32 gEventObjectPic_Man3[] = INCBIN_U32("graphics/event_objects/pics/people/man_3.4bpp");
|
||||
const u32 gEventObjectPic_Woman5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5.4bpp");
|
||||
const u32 gEventObjectPic_Youngster[] = INCBIN_U32("graphics/event_objects/pics/people/youngster.4bpp");
|
||||
const u32 gEventObjectPic_BugCatcher[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher.4bpp");
|
||||
const u32 gEventObjectPic_PsychicM[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m.4bpp");
|
||||
const u32 gEventObjectPic_SchoolKidM[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m.4bpp");
|
||||
const u32 gEventObjectPic_Maniac[] = INCBIN_U32("graphics/event_objects/pics/people/maniac.4bpp");
|
||||
const u32 gEventObjectPic_HexManiac[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac.4bpp");
|
||||
const u32 gEventObjectPic_UnusedWoman[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman.4bpp");
|
||||
const u32 gEventObjectPic_SwimmerM[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m.4bpp");
|
||||
const u32 gEventObjectPic_SwimmerF[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f.4bpp");
|
||||
const u32 gEventObjectPic_BlackBelt[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt.4bpp");
|
||||
const u32 gEventObjectPic_Beauty[] = INCBIN_U32("graphics/event_objects/pics/people/beauty.4bpp");
|
||||
const u32 gEventObjectPic_Scientist1[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1.4bpp");
|
||||
const u32 gEventObjectPic_Lass[] = INCBIN_U32("graphics/event_objects/pics/people/lass.4bpp");
|
||||
const u32 gEventObjectPic_Gentleman[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman.4bpp");
|
||||
const u32 gEventObjectPic_Sailor[] = INCBIN_U32("graphics/event_objects/pics/people/sailor.4bpp");
|
||||
const u32 gEventObjectPic_Fisherman[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman.4bpp");
|
||||
const u32 gEventObjectPic_RunningTriathleteM[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m.4bpp");
|
||||
const u32 gEventObjectPic_RunningTriathleteF[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f.4bpp");
|
||||
const u32 gEventObjectPic_TuberF[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f.4bpp");
|
||||
const u32 gEventObjectPic_TuberM[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m.4bpp");
|
||||
const u32 gEventObjectPic_Hiker[] = INCBIN_U32("graphics/event_objects/pics/people/hiker.4bpp");
|
||||
const u32 gEventObjectPic_CyclingTriathleteM[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m.4bpp");
|
||||
const u32 gEventObjectPic_CyclingTriathleteF[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f.4bpp");
|
||||
const u32 gEventObjectPic_Man4[] = INCBIN_U32("graphics/event_objects/pics/people/man_4.4bpp");
|
||||
const u32 gEventObjectPic_Man5[] = INCBIN_U32("graphics/event_objects/pics/people/man_5.4bpp");
|
||||
const u32 gEventObjectPic_Nurse[] = INCBIN_U32("graphics/event_objects/pics/people/nurse.4bpp");
|
||||
const u32 gEventObjectPic_ItemBall[] = INCBIN_U32("graphics/event_objects/pics/misc/item_ball.4bpp");
|
||||
const u32 gEventObjectPic_ProfBirch[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch.4bpp");
|
||||
const u32 gEventObjectPic_ReporterM[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m.4bpp");
|
||||
const u32 gEventObjectPic_ReporterF[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f.4bpp");
|
||||
const u32 gEventObjectPic_MauvilleOldMan1[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1.4bpp");
|
||||
const u32 gEventObjectPic_MauvilleOldMan2[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2.4bpp");
|
||||
const u32 gEventObjectPic_MartEmployee[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee.4bpp");
|
||||
const u32 gEventObjectPic_RooftopSaleWoman[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman.4bpp");
|
||||
const u32 gEventObjectPic_Teala[] = INCBIN_U32("graphics/event_objects/pics/people/teala.4bpp");
|
||||
const u32 gEventObjectPic_Artist[] = INCBIN_U32("graphics/event_objects/pics/people/artist.4bpp");
|
||||
const u32 gEventObjectPic_Cameraman[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman.4bpp");
|
||||
const u32 gEventObjectPic_Scientist2[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2.4bpp");
|
||||
const u32 gEventObjectPic_DevonEmployee[] = INCBIN_U32("graphics/event_objects/pics/people/devon_employee.4bpp");
|
||||
const u32 gEventObjectPic_AquaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_m.4bpp");
|
||||
const u32 gEventObjectPic_AquaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_f.4bpp");
|
||||
const u32 gEventObjectPic_MagmaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_m.4bpp");
|
||||
const u32 gEventObjectPic_MagmaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_f.4bpp");
|
||||
const u32 gEventObjectPic_Sidney[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/sidney.4bpp");
|
||||
const u32 gEventObjectPic_Phoebe[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/phoebe.4bpp");
|
||||
const u32 gEventObjectPic_Glacia[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/glacia.4bpp");
|
||||
const u32 gEventObjectPic_Drake[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/drake.4bpp");
|
||||
const u32 gEventObjectPic_Roxanne[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/roxanne.4bpp");
|
||||
const u32 gEventObjectPic_Brawly[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/brawly.4bpp");
|
||||
const u32 gEventObjectPic_Wattson[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/wattson.4bpp");
|
||||
const u32 gEventObjectPic_Flannery[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/flannery.4bpp");
|
||||
const u32 gEventObjectPic_Norman[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/norman.4bpp");
|
||||
const u32 gEventObjectPic_Winona[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/winona.4bpp");
|
||||
const u32 gEventObjectPic_Liza[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/liza.4bpp");
|
||||
const u32 gEventObjectPic_Tate[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/tate.4bpp");
|
||||
const u32 gEventObjectPic_Wallace[] = INCBIN_U32("graphics/event_objects/pics/people/wallace.4bpp");
|
||||
const u32 gEventObjectPic_Steven[] = INCBIN_U32("graphics/event_objects/pics/people/steven.4bpp");
|
||||
const u32 gEventObjectPic_Wally[] = INCBIN_U32("graphics/event_objects/pics/people/wally.4bpp");
|
||||
const u32 gEventObjectPic_RubySapphireLittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rs_little_boy.4bpp");
|
||||
const u32 gEventObjectPic_HotSpringsOldWoman[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman.4bpp");
|
||||
const u32 gEventObjectPic_LatiasLatios[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios.4bpp");
|
||||
const u32 gEventObjectPic_GameboyKid[] = INCBIN_U32("graphics/event_objects/pics/people/gameboy_kid.4bpp");
|
||||
const u32 gEventObjectPic_ContestJudge[] = INCBIN_U32("graphics/event_objects/pics/people/contest_judge.4bpp");
|
||||
const u32 gEventObjectPic_Archie[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/archie.4bpp");
|
||||
const u32 gEventObjectPic_Maxie[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/maxie.4bpp");
|
||||
const u32 gEventObjectPic_Kyogre[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre.4bpp");
|
||||
const u32 gEventObjectPic_Groudon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon.4bpp");
|
||||
const u32 gEventObjectPic_Regi[] = INCBIN_U32("graphics/event_objects/pics/pokemon/regi.4bpp");
|
||||
const u32 gEventObjectPic_Skitty[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty.4bpp");
|
||||
const u32 gEventObjectPic_Kecleon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kecleon.4bpp");
|
||||
const u32 gEventObjectPic_Rayquaza[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza.4bpp");
|
||||
const u32 gEventObjectPic_RayquazaStill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza_still.4bpp");
|
||||
const u32 gEventObjectPic_Zigzagoon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/zigzagoon.4bpp");
|
||||
const u32 gEventObjectPic_Pikachu[] = INCBIN_U32("graphics/event_objects/pics/pokemon/pikachu.4bpp");
|
||||
const u32 gEventObjectPic_Azumarill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azumarill.4bpp");
|
||||
const u32 gEventObjectPic_Wingull[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull.4bpp");
|
||||
const u32 gEventObjectPic_TuberMSwimming[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming.4bpp");
|
||||
const u32 gEventObjectPic_Azurill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill.4bpp");
|
||||
const u32 gEventObjectPic_Mom[] = INCBIN_U32("graphics/event_objects/pics/people/mom.4bpp");
|
||||
const u16 gEventObjectPalette22[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_22.gbapal");
|
||||
const u16 gEventObjectPalette23[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_23.gbapal");
|
||||
const u16 gEventObjectPalette24[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_24.gbapal");
|
||||
const u16 gEventObjectPalette25[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_25.gbapal");
|
||||
const u32 gEventObjectPic_UnusedNatuDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/unused_natu_doll.4bpp");
|
||||
const u32 gEventObjectPic_UnusedMagnemiteDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/unused_magnemite_doll.4bpp");
|
||||
const u32 gEventObjectPic_UnusedSquirtleDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/unused_squirtle_doll.4bpp");
|
||||
const u32 gEventObjectPic_UnusedWooperDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/unused_wooper_doll.4bpp");
|
||||
const u32 gEventObjectPic_UnusedPikachuDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/unused_pikachu_doll.4bpp");
|
||||
const u32 gEventObjectPic_UnusedPorygon2Doll[] = INCBIN_U32("graphics/event_objects/pics/dolls/unused_porygon2_doll.4bpp");
|
||||
const u32 gEventObjectPic_PichuDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/pichu_doll.4bpp");
|
||||
const u32 gEventObjectPic_PikachuDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/pikachu_doll.4bpp");
|
||||
const u32 gEventObjectPic_MarillDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/marill_doll.4bpp");
|
||||
const u32 gEventObjectPic_TogepiDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/togepi_doll.4bpp");
|
||||
const u32 gEventObjectPic_CyndaquilDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/cyndaquil_doll.4bpp");
|
||||
const u32 gEventObjectPic_ChikoritaDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/chikorita_doll.4bpp");
|
||||
const u32 gEventObjectPic_TotodileDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/totodile_doll.4bpp");
|
||||
const u32 gEventObjectPic_JigglypuffDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/jigglypuff_doll.4bpp");
|
||||
const u32 gEventObjectPic_MeowthDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/meowth_doll.4bpp");
|
||||
const u32 gEventObjectPic_ClefairyDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/clefairy_doll.4bpp");
|
||||
const u32 gEventObjectPic_DittoDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/ditto_doll.4bpp");
|
||||
const u32 gEventObjectPic_SmoochumDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/smoochum_doll.4bpp");
|
||||
const u32 gEventObjectPic_TreeckoDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/treecko_doll.4bpp");
|
||||
const u32 gEventObjectPic_TorchicDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/torchic_doll.4bpp");
|
||||
const u32 gEventObjectPic_MudkipDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/mudkip_doll.4bpp");
|
||||
const u32 gEventObjectPic_DuskullDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/duskull_doll.4bpp");
|
||||
const u32 gEventObjectPic_WynautDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/wynaut_doll.4bpp");
|
||||
const u32 gEventObjectPic_BaltoyDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/baltoy_doll.4bpp");
|
||||
const u32 gEventObjectPic_KecleonDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/kecleon_doll.4bpp");
|
||||
const u32 gEventObjectPic_AzurillDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/azurill_doll.4bpp");
|
||||
const u32 gEventObjectPic_SkittyDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/skitty_doll.4bpp");
|
||||
const u32 gEventObjectPic_SwabluDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/swablu_doll.4bpp");
|
||||
const u32 gEventObjectPic_GulpinDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/gulpin_doll.4bpp");
|
||||
const u32 gEventObjectPic_LotadDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/lotad_doll.4bpp");
|
||||
const u32 gEventObjectPic_SeedotDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/seedot_doll.4bpp");
|
||||
const u32 gEventObjectPic_PikaCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/pika_cushion.4bpp");
|
||||
const u32 gEventObjectPic_RoundCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/round_cushion.4bpp");
|
||||
const u32 gEventObjectPic_KissCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/kiss_cushion.4bpp");
|
||||
const u32 gEventObjectPic_ZigzagCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/zigzag_cushion.4bpp");
|
||||
const u32 gEventObjectPic_SpinCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/spin_cushion.4bpp");
|
||||
const u32 gEventObjectPic_DiamondCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/diamond_cushion.4bpp");
|
||||
const u32 gEventObjectPic_BallCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/ball_cushion.4bpp");
|
||||
const u32 gEventObjectPic_GrassCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/grass_cushion.4bpp");
|
||||
const u32 gEventObjectPic_FireCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/fire_cushion.4bpp");
|
||||
const u32 gEventObjectPic_WaterCushion[] = INCBIN_U32("graphics/event_objects/pics/cushions/water_cushion.4bpp");
|
||||
const u32 gEventObjectPic_BigSnorlaxDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_snorlax_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigRhydonDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_rhydon_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigLaprasDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_lapras_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigVenusaurDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_venusaur_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigCharizardDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_charizard_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigBlastoiseDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_blastoise_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigWailmerDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_wailmer_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigRegirockDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_regirock_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigRegiceDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_regice_doll.4bpp");
|
||||
const u32 gEventObjectPic_BigRegisteelDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_registeel_doll.4bpp");
|
||||
const u32 gEventObjectPic_CuttableTree[] = INCBIN_U32("graphics/event_objects/pics/misc/cuttable_tree.4bpp");
|
||||
const u32 gEventObjectPic_BreakableRock[] = INCBIN_U32("graphics/event_objects/pics/misc/breakable_rock.4bpp");
|
||||
const u32 gEventObjectPic_PushableBoulder[] = INCBIN_U32("graphics/event_objects/pics/misc/pushable_boulder.4bpp");
|
||||
const u32 gEventObjectPic_MrBrineysBoat[] = INCBIN_U32("graphics/event_objects/pics/misc/mr_brineys_boat.4bpp");
|
||||
const u32 gEventObjectPic_Fossil[] = INCBIN_U32("graphics/event_objects/pics/misc/fossil.4bpp");
|
||||
const u32 gEventObjectPic_SubmarineShadow[] = INCBIN_U32("graphics/event_objects/pics/misc/submarine_shadow.4bpp");
|
||||
const u16 gEventObjectPalette26[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_26.gbapal");
|
||||
const u32 gEventObjectPic_Truck[] = INCBIN_U32("graphics/event_objects/pics/misc/truck.4bpp");
|
||||
const u16 gEventObjectPalette14[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_14.gbapal");
|
||||
const u32 gEventObjectPic_Vigoroth[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth.4bpp");
|
||||
const u16 gEventObjectPalette15[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_15.gbapal");
|
||||
const u32 gEventObjectPic_BirchsBag[] = INCBIN_U32("graphics/event_objects/pics/misc/birchs_bag.4bpp");
|
||||
const u32 gEventObjectPic_EnemyZigzagoon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon.4bpp");
|
||||
const u16 gEventObjectPalette16[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_16.gbapal");
|
||||
const u32 gEventObjectPic_Poochyena[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena.4bpp");
|
||||
const u16 gEventObjectPalette27[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_27.gbapal");
|
||||
const u32 gEventObjectPic_CableCar[] = INCBIN_U32("graphics/event_objects/pics/misc/cable_car.4bpp");
|
||||
const u16 gEventObjectPalette20[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_20.gbapal");
|
||||
const u32 gEventObjectPic_SSTidal[] = INCBIN_U32("graphics/event_objects/pics/misc/ss_tidal.4bpp");
|
||||
const u16 gEventObjectPalette21[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_21.gbapal");
|
||||
const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle.4bpp");
|
||||
const u32 gEventObjectPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/dirt_pile.4bpp");
|
||||
const u32 gEventObjectPic_BerryTreeSprout[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sprout.4bpp");
|
||||
const u32 gEventObjectPic_PechaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha.4bpp");
|
||||
const u32 gEventObjectPic_KelpsyBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy.4bpp");
|
||||
const u32 gEventObjectPic_WepearBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear.4bpp");
|
||||
const u32 gEventObjectPic_IapapaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa.4bpp");
|
||||
const u32 gEventObjectPic_CheriBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri.4bpp");
|
||||
const u32 gEventObjectPic_FigyBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy.4bpp");
|
||||
const u32 gEventObjectPic_MagoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago.4bpp");
|
||||
const u32 gEventObjectPic_LumBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum.4bpp");
|
||||
const u32 gEventObjectPic_RazzBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz.4bpp");
|
||||
const u32 gEventObjectPic_GrepaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa.4bpp");
|
||||
const u32 gEventObjectPic_RabutaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta.4bpp");
|
||||
const u32 gEventObjectPic_NomelBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel.4bpp");
|
||||
const u32 gEventObjectPic_LeppaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa.4bpp");
|
||||
const u32 gEventObjectPic_LiechiBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi.4bpp");
|
||||
const u32 gEventObjectPic_HondewBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew.4bpp");
|
||||
const u32 gEventObjectPic_AguavBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav.4bpp");
|
||||
const u32 gEventObjectPic_WikiBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki.4bpp");
|
||||
const u32 gEventObjectPic_PomegBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg.4bpp");
|
||||
const u32 gEventObjectPic_RawstBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst.4bpp");
|
||||
const u32 gEventObjectPic_SpelonBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon.4bpp");
|
||||
const u32 gEventObjectPic_ChestoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto.4bpp");
|
||||
const u32 gEventObjectPic_OranBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran.4bpp");
|
||||
const u32 gEventObjectPic_PersimBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim.4bpp");
|
||||
const u32 gEventObjectPic_SitrusBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus.4bpp");
|
||||
const u32 gEventObjectPic_AspearBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear.4bpp");
|
||||
const u32 gEventObjectPic_PamtreBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre.4bpp");
|
||||
const u32 gEventObjectPic_CornnBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn.4bpp");
|
||||
const u32 gEventObjectPic_LansatBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat.4bpp");
|
||||
const u32 gEventObjectPic_DurinBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin.4bpp");
|
||||
const u32 gEventObjectPic_TamatoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato.4bpp");
|
||||
const u32 gFieldEffectObjectPic_SurfBlob[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob.4bpp");
|
||||
const u32 gEventObjectPic_QuintyPlump[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump.4bpp");
|
||||
const u16 gEventObjectPalette12[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_12.gbapal");
|
||||
const u16 gEventObjectPalette13[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_13.gbapal");
|
||||
const u32 gFieldEffectObjectPic_ShadowSmall[] = INCBIN_U32("graphics/event_objects/pics/effects/shadow_small.4bpp");
|
||||
const u32 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U32("graphics/event_objects/pics/effects/shadow_medium.4bpp");
|
||||
const u32 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U32("graphics/event_objects/pics/effects/shadow_large.4bpp");
|
||||
const u32 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U32("graphics/event_objects/pics/effects/shadow_extra_large.4bpp");
|
||||
const u32 filler_8368A08[0x48] = {};
|
||||
const u8 gFieldEffectPic_CutGrass[] = INCBIN_U8("graphics/event_objects/pics/effects/cut_grass.4bpp");
|
||||
const u32 gFieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/event_objects/pics/effects/cut_grass.4bpp");
|
||||
const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_06.gbapal");
|
||||
const u32 gFieldEffectObjectPic_Ripple[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/event_objects/pics/effects/ash.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow.4bpp");
|
||||
const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_00.gbapal");
|
||||
const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_01.gbapal");
|
||||
const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust.4bpp");
|
||||
const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass.4bpp");
|
||||
const u32 gUnusedGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18.4bpp");
|
||||
const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass.4bpp");
|
||||
const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass.4bpp");
|
||||
const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/short_grass.4bpp");
|
||||
const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints.4bpp");
|
||||
const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints.4bpp");
|
||||
const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown29[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29.4bpp");
|
||||
const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/event_objects/pics/effects/splash.4bpp");
|
||||
const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown20[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20.4bpp");
|
||||
const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise.4bpp");
|
||||
const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise.4bpp");
|
||||
const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder.4bpp");
|
||||
const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/event_objects/pics/effects/hot_springs_water.4bpp");
|
||||
const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_02.gbapal");
|
||||
const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash.4bpp");
|
||||
const u32 gFieldEffectObjectPic_LavaridgeGymWarp[] = INCBIN_U32("graphics/event_objects/pics/effects/lavaridge_gym_warp.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35.4bpp");
|
||||
const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_03.gbapal");
|
||||
const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/event_objects/pics/effects/bird.4bpp");
|
||||
const u32 gEventObjectPic_Juan[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/juan.4bpp");
|
||||
const u32 gEventObjectPic_Scott[] = INCBIN_U32("graphics/event_objects/pics/people/scott.4bpp");
|
||||
const u32 gEventObjectPic_Statue[] = INCBIN_U32("graphics/event_objects/pics/misc/statue.4bpp");
|
||||
const u32 gEventObjectPic_Kirlia[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia.4bpp");
|
||||
const u32 gEventObjectPic_Dusclops[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops.4bpp");
|
||||
const u32 gEventObjectPic_MysteryEventDeliveryman[] = INCBIN_U32("graphics/event_objects/pics/people/mystery_event_deliveryman.4bpp");
|
||||
const u32 gEventObjectPic_UnionRoomAttendant[] = INCBIN_U32("graphics/event_objects/pics/people/union_room_attendant.4bpp");
|
||||
const u32 gEventObjectPic_MovingBox[] = INCBIN_U32("graphics/event_objects/pics/misc/moving_box.4bpp");
|
||||
const u16 gEventObjectPalette19[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_19.gbapal");
|
||||
const u32 gEventObjectPic_Sudowoodo[] = INCBIN_U32("graphics/event_objects/pics/pokemon/sudowoodo.4bpp");
|
||||
const u32 gEventObjectPic_Mew[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew.4bpp");
|
||||
const u16 gEventObjectPalette28[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_28.gbapal");
|
||||
const u32 gEventObjectPic_Red[] = INCBIN_U32("graphics/event_objects/pics/people/red.4bpp");
|
||||
const u32 gEventObjectPic_Leaf[] = INCBIN_U32("graphics/event_objects/pics/people/leaf.4bpp");
|
||||
const u16 gEventObjectPalette30[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_30.gbapal");
|
||||
const u32 gEventObjectPic_BirthIslandStone[] = INCBIN_U32("graphics/event_objects/pics/misc/birth_island_stone.4bpp");
|
||||
const u16 gEventObjectPalette29[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_29.gbapal");
|
||||
const u32 gEventObjectPic_Deoxys[] = INCBIN_U32("graphics/event_objects/pics/pokemon/deoxys.4bpp");
|
||||
const u32 gEventObjectPic_Anabel[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/anabel.4bpp");
|
||||
const u32 gEventObjectPic_Tucker[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/tucker.4bpp");
|
||||
const u32 gEventObjectPic_Spenser[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/spenser.4bpp");
|
||||
const u32 gEventObjectPic_Greta[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/greta.4bpp");
|
||||
const u32 gEventObjectPic_Noland[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/noland.4bpp");
|
||||
const u32 gEventObjectPic_Lucy[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/lucy.4bpp");
|
||||
const u32 gEventObjectPic_Brandon[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/brandon.4bpp");
|
||||
const u32 gEventObjectPic_Lugia[] = INCBIN_U32("graphics/event_objects/pics/pokemon/lugia.4bpp");
|
||||
const u16 gEventObjectPalette32[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_32.gbapal");
|
||||
const u32 gEventObjectPic_HoOh[] = INCBIN_U32("graphics/event_objects/pics/pokemon/ho_oh.4bpp");
|
||||
const u16 gEventObjectPalette31[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_31.gbapal");
|
||||
+1
-1
@@ -2155,7 +2155,7 @@ void sub_8129708(void)
|
||||
}
|
||||
|
||||
// Unused
|
||||
void GetEventObjectLocalIdByFlag(void)
|
||||
void GetObjectEventLocalIdByFlag(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
|
||||
@@ -1861,27 +1861,29 @@ const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId)
|
||||
{
|
||||
u8 bard;
|
||||
|
||||
if (graphicsId >= SPRITE_VAR)
|
||||
if (graphicsId >= OBJ_EVENT_GFX_VARS)
|
||||
{
|
||||
graphicsId = VarGetObjectEventGraphicsId(graphicsId - SPRITE_VAR);
|
||||
graphicsId = VarGetObjectEventGraphicsId(graphicsId - OBJ_EVENT_GFX_VARS);
|
||||
}
|
||||
if (graphicsId == OBJ_EVENT_GFX_BARD)
|
||||
{
|
||||
bard = GetCurrentMauvilleOldMan();
|
||||
return gMauvilleOldManGraphicsInfoPointers[bard];
|
||||
}
|
||||
if (graphicsId >= NUM_OBJECT_GRAPHICS_INFO)
|
||||
|
||||
if (graphicsId >= NUM_OBJ_EVENT_GFX)
|
||||
{
|
||||
graphicsId = OBJ_EVENT_GFX_NINJA_BOY;
|
||||
}
|
||||
|
||||
return gObjectEventGraphicsInfoPointers[graphicsId];
|
||||
}
|
||||
|
||||
static void SetObjectEventDynamicGraphicsId(struct ObjectEvent *objectEvent)
|
||||
{
|
||||
if (objectEvent->graphicsId >= SPRITE_VAR)
|
||||
if (objectEvent->graphicsId >= OBJ_EVENT_GFX_VARS)
|
||||
{
|
||||
objectEvent->graphicsId = VarGetObjectEventGraphicsId(objectEvent->graphicsId - SPRITE_VAR);
|
||||
objectEvent->graphicsId = VarGetObjectEventGraphicsId(objectEvent->graphicsId - OBJ_EVENT_GFX_VARS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "librfu.h"
|
||||
|
||||
struct RfuUnk1* gUnknown_03007870[4];
|
||||
struct RfuUnk2* gUnknown_03007880[4];
|
||||
struct RfuUnk5 *gUnknown_03007890;
|
||||
u32 *gUnknown_03007894;
|
||||
struct RfuUnk3* gUnknown_03007898;
|
||||
u8 gUnknown_030078A0[12];
|
||||
+2193
-58
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,164 @@
|
||||
#include "librfu.h"
|
||||
|
||||
static void Sio32IDIntr(void);
|
||||
static void Sio32IDInit(void);
|
||||
static s32 Sio32IDMain(void);
|
||||
|
||||
struct RfuSIO32Id gRfuSIO32Id;
|
||||
|
||||
static const u16 Sio32ConnectionData[] = { 0x494e, 0x544e, 0x4e45, 0x4f44 }; // NINTENDO
|
||||
static const char Sio32IDLib_Var[] = "Sio32ID_030820";
|
||||
|
||||
s32 AgbRFU_checkID(u8 r5)
|
||||
{
|
||||
u16 r8;
|
||||
vu16 *r4;
|
||||
s32 r6;
|
||||
|
||||
if (REG_IME == 0)
|
||||
return -1;
|
||||
r8 = REG_IE;
|
||||
gSTWIStatus->state = 10;
|
||||
STWI_set_Callback_ID(Sio32IDIntr);
|
||||
Sio32IDInit();
|
||||
r4 = ®_TMCNT_L(gSTWIStatus->timerSelect);
|
||||
r5 *= 8;
|
||||
while (--r5 != 0xFF)
|
||||
{
|
||||
r6 = Sio32IDMain();
|
||||
if (r6 != 0)
|
||||
break;
|
||||
r4[1] = 0;
|
||||
r4[0] = 0;
|
||||
r4[1] = TIMER_1024CLK | TIMER_ENABLE;
|
||||
while (r4[0] < 32)
|
||||
;
|
||||
r4[1] = 0;
|
||||
r4[0] = 0;
|
||||
}
|
||||
REG_IME = 0;
|
||||
REG_IE = r8;
|
||||
REG_IME = 1;
|
||||
gSTWIStatus->state = 0;
|
||||
STWI_set_Callback_ID(NULL);
|
||||
return r6;
|
||||
}
|
||||
|
||||
static void Sio32IDInit(void)
|
||||
{
|
||||
REG_IME = 0;
|
||||
REG_IE &= ~((8 << gSTWIStatus->timerSelect) | INTR_FLAG_SERIAL);
|
||||
REG_IME = 1;
|
||||
REG_RCNT = 0;
|
||||
REG_SIOCNT = SIO_32BIT_MODE;
|
||||
REG_SIOCNT |= SIO_INTR_ENABLE | SIO_ENABLE;
|
||||
CpuFill32(0, &gRfuSIO32Id, sizeof(struct RfuSIO32Id));
|
||||
REG_IF = INTR_FLAG_SERIAL;
|
||||
}
|
||||
|
||||
static s32 Sio32IDMain(void)
|
||||
{
|
||||
u8 r12;
|
||||
|
||||
switch (r12 = gRfuSIO32Id.unk1)
|
||||
{
|
||||
case 0:
|
||||
gRfuSIO32Id.unk0 = 1;
|
||||
REG_SIOCNT |= SIO_38400_BPS;
|
||||
REG_IME = r12;
|
||||
REG_IE |= INTR_FLAG_SERIAL;
|
||||
REG_IME = 1;
|
||||
gRfuSIO32Id.unk1 = 1;
|
||||
*(vu8 *)®_SIOCNT |= SIO_ENABLE;
|
||||
break;
|
||||
case 1:
|
||||
if (gRfuSIO32Id.unkA == 0)
|
||||
{
|
||||
if (gRfuSIO32Id.unk0 == 1)
|
||||
{
|
||||
if (gRfuSIO32Id.unk2 == 0)
|
||||
{
|
||||
REG_IME = gRfuSIO32Id.unk2;
|
||||
REG_SIOCNT |= SIO_ENABLE;
|
||||
REG_IME = r12;
|
||||
}
|
||||
}
|
||||
else if (gRfuSIO32Id.unk4 != 0x8001 && !gRfuSIO32Id.unk2)
|
||||
{
|
||||
REG_IME = gRfuSIO32Id.unk2;
|
||||
REG_IE &= ~INTR_FLAG_SERIAL;
|
||||
REG_IME = r12;
|
||||
REG_SIOCNT = gRfuSIO32Id.unk2;
|
||||
REG_SIOCNT = SIO_32BIT_MODE;
|
||||
REG_IF = INTR_FLAG_SERIAL;
|
||||
REG_SIOCNT |= SIO_INTR_ENABLE | SIO_ENABLE;
|
||||
REG_IME = gRfuSIO32Id.unk2;
|
||||
REG_IE |= INTR_FLAG_SERIAL;
|
||||
REG_IME = r12;
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
gRfuSIO32Id.unk1 = 2;
|
||||
// fallthrough
|
||||
}
|
||||
default:
|
||||
return gRfuSIO32Id.unkA;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void Sio32IDIntr(void)
|
||||
{
|
||||
u32 r5;
|
||||
u16 r0;
|
||||
#ifndef NONMATCHING
|
||||
register u32 r1 asm("r1");
|
||||
register u16 r0_ asm("r0");
|
||||
#else
|
||||
u32 r1;
|
||||
u16 r0_;
|
||||
#endif
|
||||
|
||||
r5 = REG_SIODATA32;
|
||||
if (gRfuSIO32Id.unk0 != 1)
|
||||
REG_SIOCNT |= SIO_ENABLE;
|
||||
r1 = 16 * gRfuSIO32Id.unk0; // to handle side effect of inline asm
|
||||
r1 = (r5 << r1) >> 16;
|
||||
r5 = (r5 << 16 * (1 - gRfuSIO32Id.unk0)) >> 16;
|
||||
if (gRfuSIO32Id.unkA == 0)
|
||||
{
|
||||
if (r1 == gRfuSIO32Id.unk6)
|
||||
{
|
||||
if (gRfuSIO32Id.unk2 > 3)
|
||||
{
|
||||
gRfuSIO32Id.unkA = r5;
|
||||
}
|
||||
else if (r1 == (u16)~gRfuSIO32Id.unk4)
|
||||
{
|
||||
r0_ = ~gRfuSIO32Id.unk6;
|
||||
if (r5 == r0_)
|
||||
++gRfuSIO32Id.unk2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gRfuSIO32Id.unk2 = gRfuSIO32Id.unkA;
|
||||
}
|
||||
}
|
||||
if (gRfuSIO32Id.unk2 < 4)
|
||||
gRfuSIO32Id.unk4 = *(gRfuSIO32Id.unk2 + Sio32ConnectionData);
|
||||
else
|
||||
gRfuSIO32Id.unk4 = 0x8001;
|
||||
gRfuSIO32Id.unk6 = ~r5;
|
||||
REG_SIODATA32 = (gRfuSIO32Id.unk4 << 16 * (1 - gRfuSIO32Id.unk0))
|
||||
+ (gRfuSIO32Id.unk6 << 16 * gRfuSIO32Id.unk0);
|
||||
if (gRfuSIO32Id.unk0 == 1 && (gRfuSIO32Id.unk2 || r5 == 0x494E))
|
||||
{
|
||||
for (r0 = 0; r0 < 600; ++r0)
|
||||
;
|
||||
if (gRfuSIO32Id.unkA == 0)
|
||||
REG_SIOCNT |= SIO_ENABLE;
|
||||
}
|
||||
}
|
||||
+243
-285
@@ -1,70 +1,57 @@
|
||||
#include "global.h"
|
||||
#include "librfu.h"
|
||||
|
||||
struct RfuStruct *gRfuState;
|
||||
static void STWI_intr_timer(void);
|
||||
static u16 STWI_init(u8 request);
|
||||
static s32 STWI_start_Command(void);
|
||||
static void STWI_set_timer(u8 unk);
|
||||
static void STWI_stop_timer(void);
|
||||
static s32 STWI_restart_Command(void);
|
||||
static s32 STWI_reset_ClockCounter(void);
|
||||
|
||||
extern IntrFunc IntrSIO32(void);
|
||||
|
||||
extern void STWI_stop_timer(void);
|
||||
|
||||
void STWI_init_Callback_M(void);
|
||||
void STWI_init_Callback_S(void);
|
||||
void STWI_set_Callback_M(void * callback);
|
||||
void STWI_set_Callback_S(void * callback);
|
||||
u16 STWI_init(u8 request);
|
||||
int STWI_start_Command(void);
|
||||
void STWI_intr_timer(void);
|
||||
void STWI_set_timer(u8 unk);
|
||||
|
||||
int STWI_restart_Command(void);
|
||||
int STWI_reset_ClockCounter(void);
|
||||
struct STWIStatus *gSTWIStatus;
|
||||
|
||||
void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam)
|
||||
{
|
||||
// If we're copying our interrupt into RAM, DMA it to block1 and use
|
||||
// block2 for our RfuStruct, otherwise block1 holds the RfuStruct.
|
||||
// block2 for our STWIStatus, otherwise block1 holds the STWIStatus.
|
||||
// interrupt usually is a pointer to gIntrTable[1]
|
||||
if (copyInterruptToRam == TRUE)
|
||||
{
|
||||
*interrupt = (IntrFunc)interruptStruct->block1;
|
||||
DmaCopy16(3, &IntrSIO32, interruptStruct->block1, 0x960);
|
||||
gRfuState = (struct RfuStruct*)interruptStruct->block2;
|
||||
DmaCopy16(3, &IntrSIO32, interruptStruct->block1, sizeof(interruptStruct->block1));
|
||||
gSTWIStatus = &interruptStruct->block2;
|
||||
}
|
||||
else
|
||||
{
|
||||
*interrupt = (IntrFunc)IntrSIO32;
|
||||
gRfuState = (struct RfuStruct*)interruptStruct->block1;
|
||||
*interrupt = IntrSIO32;
|
||||
gSTWIStatus = (struct STWIStatus *)interruptStruct->block1;
|
||||
}
|
||||
|
||||
gRfuState->rxPacket = (union RfuPacket*)interruptStruct->rxPacketAlloc;
|
||||
gRfuState->txPacket = (union RfuPacket*)interruptStruct->txPacketAlloc;
|
||||
gRfuState->msMode = 1;
|
||||
gRfuState->unk_0 = 0;
|
||||
gRfuState->txParams = 0;
|
||||
gRfuState->unk_5 = 0;
|
||||
gRfuState->unk_7 = 0;
|
||||
gRfuState->unk_8 = 0;
|
||||
gRfuState->unk_9 = 0;
|
||||
gRfuState->timerState = 0;
|
||||
gRfuState->timerActive = 0;
|
||||
gRfuState->unk_12 = 0;
|
||||
gRfuState->unk_15 = 0;
|
||||
gRfuState->unk_2c = 0;
|
||||
|
||||
REG_RCNT = 0x100; //TODO: mystery bit?
|
||||
gSTWIStatus->rxPacket = &interruptStruct->rxPacketAlloc;
|
||||
gSTWIStatus->txPacket = &interruptStruct->txPacketAlloc;
|
||||
gSTWIStatus->msMode = 1;
|
||||
gSTWIStatus->state = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
gSTWIStatus->reqNext = 0;
|
||||
gSTWIStatus->ackLength = 0;
|
||||
gSTWIStatus->ackNext = 0;
|
||||
gSTWIStatus->ackActiveCommand = 0;
|
||||
gSTWIStatus->timerState = 0;
|
||||
gSTWIStatus->timerActive = 0;
|
||||
gSTWIStatus->error = 0;
|
||||
gSTWIStatus->recoveryCount = 0;
|
||||
gSTWIStatus->unk_2c = 0;
|
||||
REG_RCNT = 0x100; // TODO: mystery bit?
|
||||
REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
|
||||
STWI_init_Callback_M();
|
||||
STWI_init_Callback_S();
|
||||
|
||||
IntrEnable(INTR_FLAG_SERIAL);
|
||||
}
|
||||
|
||||
void STWI_init_timer(IntrFunc *interrupt, int timerSelect)
|
||||
void STWI_init_timer(IntrFunc *interrupt, s32 timerSelect)
|
||||
{
|
||||
*interrupt = STWI_intr_timer;
|
||||
gRfuState->timerSelect = timerSelect;
|
||||
|
||||
IntrEnable(INTR_FLAG_TIMER0 << gRfuState->timerSelect);
|
||||
gSTWIStatus->timerSelect = timerSelect;
|
||||
IntrEnable(INTR_FLAG_TIMER0 << gSTWIStatus->timerSelect);
|
||||
}
|
||||
|
||||
void AgbRFU_SoftReset(void)
|
||||
@@ -74,35 +61,34 @@ void AgbRFU_SoftReset(void)
|
||||
|
||||
REG_RCNT = 0x8000;
|
||||
REG_RCNT = 0x80A0; // all these bits are undocumented
|
||||
timerL = ®_TMCNT_L(gRfuState->timerSelect);
|
||||
timerH = ®_TMCNT_H(gRfuState->timerSelect);
|
||||
timerL = ®_TMCNT_L(gSTWIStatus->timerSelect);
|
||||
timerH = ®_TMCNT_H(gSTWIStatus->timerSelect);
|
||||
*timerH = 0;
|
||||
*timerL = 0;
|
||||
*timerH = 0x83;
|
||||
*timerH = TIMER_ENABLE | TIMER_1024CLK;
|
||||
while (*timerL <= 0x11)
|
||||
REG_RCNT = 0x80A2;
|
||||
*timerH = 3;
|
||||
REG_RCNT = 0x80A0;
|
||||
REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
|
||||
|
||||
gRfuState->unk_0 = 0;
|
||||
gRfuState->txParams = 0;
|
||||
gRfuState->unk_5 = 0;
|
||||
gRfuState->activeCommand = 0;
|
||||
gRfuState->unk_7 = 0;
|
||||
gRfuState->unk_8 = 0;
|
||||
gRfuState->unk_9 = 0;
|
||||
gRfuState->timerState = 0;
|
||||
gRfuState->timerActive = 0;
|
||||
gRfuState->unk_12 = 0;
|
||||
gRfuState->msMode = 1;
|
||||
gRfuState->unk_15 = 0;
|
||||
gRfuState->unk_2c = 0;
|
||||
gSTWIStatus->state = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
gSTWIStatus->reqNext = 0;
|
||||
gSTWIStatus->reqActiveCommand = 0;
|
||||
gSTWIStatus->ackLength = 0;
|
||||
gSTWIStatus->ackNext = 0;
|
||||
gSTWIStatus->ackActiveCommand = 0;
|
||||
gSTWIStatus->timerState = 0;
|
||||
gSTWIStatus->timerActive = 0;
|
||||
gSTWIStatus->error = 0;
|
||||
gSTWIStatus->msMode = 1;
|
||||
gSTWIStatus->recoveryCount = 0;
|
||||
gSTWIStatus->unk_2c = 0;
|
||||
}
|
||||
|
||||
void STWI_set_MS_mode(u8 mode)
|
||||
{
|
||||
gRfuState->msMode = mode;
|
||||
gSTWIStatus->msMode = mode;
|
||||
}
|
||||
|
||||
u16 STWI_read_status(u8 index)
|
||||
@@ -110,13 +96,13 @@ u16 STWI_read_status(u8 index)
|
||||
switch (index)
|
||||
{
|
||||
case 0:
|
||||
return gRfuState->unk_12;
|
||||
return gSTWIStatus->error;
|
||||
case 1:
|
||||
return gRfuState->msMode;
|
||||
return gSTWIStatus->msMode;
|
||||
case 2:
|
||||
return gRfuState->unk_0;
|
||||
return gSTWIStatus->state;
|
||||
case 3:
|
||||
return gRfuState->activeCommand;
|
||||
return gSTWIStatus->reqActiveCommand;
|
||||
default:
|
||||
return 0xFFFF;
|
||||
}
|
||||
@@ -124,136 +110,130 @@ u16 STWI_read_status(u8 index)
|
||||
|
||||
void STWI_init_Callback_M(void)
|
||||
{
|
||||
STWI_set_Callback_M(0);
|
||||
STWI_set_Callback_M(NULL);
|
||||
}
|
||||
|
||||
void STWI_init_Callback_S(void)
|
||||
{
|
||||
STWI_set_Callback_S(0);
|
||||
STWI_set_Callback_S(NULL);
|
||||
}
|
||||
|
||||
void STWI_set_Callback_M(void *callback)
|
||||
// The callback can take 2 or 3 arguments.
|
||||
void STWI_set_Callback_M(void *callbackM)
|
||||
{
|
||||
gRfuState->callbackM = callback;
|
||||
gSTWIStatus->callbackM = callbackM;
|
||||
}
|
||||
|
||||
void STWI_set_Callback_S(void *callback)
|
||||
void STWI_set_Callback_S(void (*callbackS)(u16))
|
||||
{
|
||||
gRfuState->callbackS = callback;
|
||||
gSTWIStatus->callbackS = callbackS;
|
||||
}
|
||||
|
||||
void STWI_set_Callback_ID(u32 id)
|
||||
void STWI_set_Callback_ID(void (*func)(void)) // name in SDK, but is actually setting a function pointer
|
||||
{
|
||||
gRfuState->callbackID = id;
|
||||
gSTWIStatus->unk_20 = func;
|
||||
}
|
||||
|
||||
u16 STWI_poll_CommandEnd(void)
|
||||
{
|
||||
while (gRfuState->unk_2c == TRUE)
|
||||
while (gSTWIStatus->unk_2c == TRUE)
|
||||
;
|
||||
return gRfuState->unk_12;
|
||||
return gSTWIStatus->error;
|
||||
}
|
||||
|
||||
void STWI_send_ResetREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_RESET))
|
||||
if (!STWI_init(ID_RESET_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_LinkStatusREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_LINK_STATUS))
|
||||
if (!STWI_init(ID_LINK_STATUS_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_VersionStatusREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_VERSION_STATUS))
|
||||
if (!STWI_init(ID_VERSION_STATUS_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SystemStatusREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SYSTEM_STATUS))
|
||||
if (!STWI_init(ID_SYSTEM_STATUS_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SlotStatusREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SLOT_STATUS))
|
||||
if (!STWI_init(ID_SLOT_STATUS_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_ConfigStatusREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_CONFIG_STATUS))
|
||||
if (!STWI_init(ID_CONFIG_STATUS_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_GameConfigREQ(u8 * unk1, u8 *data)
|
||||
void STWI_send_GameConfigREQ(const u8 *unk1, const u8 *data)
|
||||
{
|
||||
u8 *packetBytes;
|
||||
int i;
|
||||
s32 i;
|
||||
|
||||
if (!STWI_init(RFU_GAME_CONFIG))
|
||||
if (!STWI_init(ID_GAME_CONFIG_REQ))
|
||||
{
|
||||
gRfuState->txParams = 6;
|
||||
|
||||
//TODO: what is unk1
|
||||
packetBytes = gRfuState->txPacket->rfuPacket8.data;
|
||||
gSTWIStatus->reqLength = 6;
|
||||
// TODO: what is unk1
|
||||
packetBytes = gSTWIStatus->txPacket->rfuPacket8.data;
|
||||
packetBytes += sizeof(u32);
|
||||
*(u16*)packetBytes = *(u16*)unk1;
|
||||
|
||||
*(u16 *)packetBytes = *(u16 *)unk1;
|
||||
packetBytes += sizeof(u16);
|
||||
unk1 += sizeof(u16);
|
||||
|
||||
for (i = 0; i < 14; i++)
|
||||
for (i = 0; i < 14; ++i)
|
||||
{
|
||||
*packetBytes = *unk1;
|
||||
packetBytes++;
|
||||
unk1++;
|
||||
++packetBytes;
|
||||
++unk1;
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
for (i = 0; i < 8; ++i)
|
||||
{
|
||||
*packetBytes = *data;
|
||||
packetBytes++;
|
||||
data++;
|
||||
++packetBytes;
|
||||
++data;
|
||||
}
|
||||
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3)
|
||||
{
|
||||
if (!STWI_init(RFU_SYSTEM_CONFIG))
|
||||
if (!STWI_init(ID_SYSTEM_CONFIG_REQ))
|
||||
{
|
||||
u8 *packetBytes;
|
||||
|
||||
gRfuState->txParams = 1;
|
||||
|
||||
packetBytes = gRfuState->txPacket->rfuPacket8.data;
|
||||
gSTWIStatus->reqLength = 1;
|
||||
packetBytes = gSTWIStatus->txPacket->rfuPacket8.data;
|
||||
packetBytes += sizeof(u32);
|
||||
|
||||
*packetBytes++ = unk3;
|
||||
*packetBytes++ = unk2;
|
||||
*(u16*)packetBytes = unk1;
|
||||
@@ -263,206 +243,196 @@ void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3)
|
||||
|
||||
void STWI_send_SC_StartREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SC_START))
|
||||
if (!STWI_init(ID_SC_START_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SC_PollingREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SC_POLLING))
|
||||
if (!STWI_init(ID_SC_POLL_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SC_EndREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SC_END))
|
||||
if (!STWI_init(ID_SC_END_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SP_StartREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SP_START))
|
||||
if (!STWI_init(ID_SP_START_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SP_PollingREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SP_POLLING))
|
||||
if (!STWI_init(ID_SP_POLL_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_SP_EndREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_SP_END))
|
||||
if (!STWI_init(ID_SP_END_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_CP_StartREQ(u16 unk1)
|
||||
{
|
||||
if (!STWI_init(RFU_CP_START))
|
||||
if (!STWI_init(ID_CP_START_REQ))
|
||||
{
|
||||
gRfuState->txParams = 1;
|
||||
gRfuState->txPacket->rfuPacket32.data[0] = unk1;
|
||||
gSTWIStatus->reqLength = 1;
|
||||
gSTWIStatus->txPacket->rfuPacket32.data[0] = unk1;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_CP_PollingREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_CP_POLLING))
|
||||
if (!STWI_init(ID_CP_POLL_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_CP_EndREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_CP_END))
|
||||
if (!STWI_init(ID_CP_END_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_DataTxREQ(void *in, u8 size)
|
||||
void STWI_send_DataTxREQ(const void *in, u8 size)
|
||||
{
|
||||
if (!STWI_init(RFU_DATA_TX))
|
||||
if (!STWI_init(ID_DATA_TX_REQ))
|
||||
{
|
||||
u8 txParams = (size / sizeof(u32));
|
||||
u8 reqLength = (size / sizeof(u32));
|
||||
if (size & (sizeof(u32) - 1))
|
||||
txParams += 1;
|
||||
|
||||
gRfuState->txParams = txParams;
|
||||
CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32));
|
||||
reqLength += 1;
|
||||
gSTWIStatus->reqLength = reqLength;
|
||||
CpuCopy32(in, gSTWIStatus->txPacket->rfuPacket32.data, gSTWIStatus->reqLength * sizeof(u32));
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_DataTxAndChangeREQ(void *in, u8 size)
|
||||
void STWI_send_DataTxAndChangeREQ(const void *in, u8 size)
|
||||
{
|
||||
if (!STWI_init(RFU_DATA_TX_AND_CHANGE))
|
||||
if (!STWI_init(ID_DATA_TX_AND_CHANGE_REQ))
|
||||
{
|
||||
u8 txParams = (size / sizeof(u32));
|
||||
u8 reqLength = (size / sizeof(u32));
|
||||
if (size & (sizeof(u32) - 1))
|
||||
txParams += 1;
|
||||
|
||||
gRfuState->txParams = txParams;
|
||||
CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32));
|
||||
reqLength += 1;
|
||||
gSTWIStatus->reqLength = reqLength;
|
||||
CpuCopy32(in, gSTWIStatus->txPacket->rfuPacket32.data, gSTWIStatus->reqLength * sizeof(u32));
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_DataRxREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_DATA_RX))
|
||||
if (!STWI_init(ID_DATA_RX_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_MS_ChangeREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_MS_CHANGE))
|
||||
if (!STWI_init(ID_MS_CHANGE_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_DataReadyAndChangeREQ(u8 unk)
|
||||
{
|
||||
if (!STWI_init(RFU_DATA_READY_AND_CHANGE))
|
||||
if (!STWI_init(ID_DATA_READY_AND_CHANGE_REQ))
|
||||
{
|
||||
if (!unk)
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 *packetBytes;
|
||||
|
||||
gRfuState->txParams = 1;
|
||||
|
||||
packetBytes = gRfuState->txPacket->rfuPacket8.data;
|
||||
gSTWIStatus->reqLength = 1;
|
||||
packetBytes = gSTWIStatus->txPacket->rfuPacket8.data;
|
||||
packetBytes += sizeof(u32);
|
||||
|
||||
*packetBytes++ = unk;
|
||||
*packetBytes++ = 0;
|
||||
*packetBytes++ = 0;
|
||||
*packetBytes = 0;
|
||||
}
|
||||
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_DisconnectedAndChangeREQ(u8 unk0, u8 unk1)
|
||||
{
|
||||
if (!STWI_init(RFU_DISCONNECTED_AND_CHANGE))
|
||||
if (!STWI_init(ID_DISCONNECTED_AND_CHANGE_REQ))
|
||||
{
|
||||
u8 *packetBytes;
|
||||
|
||||
gRfuState->txParams = 1;
|
||||
|
||||
packetBytes = gRfuState->txPacket->rfuPacket8.data;
|
||||
gSTWIStatus->reqLength = 1;
|
||||
packetBytes = gSTWIStatus->txPacket->rfuPacket8.data;
|
||||
packetBytes += sizeof(u32);
|
||||
|
||||
*packetBytes++ = unk0;
|
||||
*packetBytes++ = unk1;
|
||||
*packetBytes++ = 0;
|
||||
*packetBytes = 0;
|
||||
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_ResumeRetransmitAndChangeREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_RESUME_RETRANSMIT_AND_CHANGE))
|
||||
if (!STWI_init(ID_RESUME_RETRANSMIT_AND_CHANGE_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_DisconnectREQ(u8 unk)
|
||||
{
|
||||
if (!STWI_init(RFU_DISCONNECT))
|
||||
if (!STWI_init(ID_DISCONNECT_REQ))
|
||||
{
|
||||
gRfuState->txParams = 1;
|
||||
gRfuState->txPacket->rfuPacket32.data[0] = unk;
|
||||
|
||||
gSTWIStatus->reqLength = 1;
|
||||
gSTWIStatus->txPacket->rfuPacket32.data[0] = unk;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_TestModeREQ(u8 unk0, u8 unk1)
|
||||
{
|
||||
if (!STWI_init(RFU_TEST_MODE))
|
||||
if (!STWI_init(ID_TEST_MODE_REQ))
|
||||
{
|
||||
gRfuState->txParams = 1;
|
||||
gRfuState->txPacket->rfuPacket32.data[0] = unk0 | (unk1 << 8);
|
||||
|
||||
gSTWIStatus->reqLength = 1;
|
||||
gSTWIStatus->txPacket->rfuPacket32.data[0] = unk0 | (unk1 << 8);
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
@@ -472,218 +442,206 @@ void STWI_send_CPR_StartREQ(u16 unk0, u16 unk1, u8 unk2)
|
||||
u32 *packetData;
|
||||
u32 arg1;
|
||||
|
||||
if (!STWI_init(RFU_CPR_START))
|
||||
if (!STWI_init(ID_CPR_START_REQ))
|
||||
{
|
||||
gRfuState->txParams = 2;
|
||||
|
||||
gSTWIStatus->reqLength = 2;
|
||||
arg1 = unk1 | (unk0 << 16);
|
||||
packetData = gRfuState->txPacket->rfuPacket32.data;
|
||||
packetData = gSTWIStatus->txPacket->rfuPacket32.data;
|
||||
packetData[0] = arg1;
|
||||
packetData[1] = unk2;
|
||||
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_CPR_PollingREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_CPR_POLLING))
|
||||
if (!STWI_init(ID_CPR_POLL_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_CPR_EndREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_CPR_END))
|
||||
if (!STWI_init(ID_CPR_END_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_send_StopModeREQ(void)
|
||||
{
|
||||
if (!STWI_init(RFU_STOP_MODE))
|
||||
if (!STWI_init(ID_STOP_MODE_REQ))
|
||||
{
|
||||
gRfuState->txParams = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
STWI_start_Command();
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_intr_timer(void)
|
||||
static void STWI_intr_timer(void)
|
||||
{
|
||||
switch (gRfuState->timerState)
|
||||
switch (gSTWIStatus->timerState)
|
||||
{
|
||||
//TODO: Make an enum for these
|
||||
case 2:
|
||||
gRfuState->timerActive = 1;
|
||||
STWI_set_timer(50);
|
||||
break;
|
||||
case 1:
|
||||
case 4:
|
||||
STWI_stop_timer();
|
||||
STWI_restart_Command();
|
||||
break;
|
||||
case 3:
|
||||
gRfuState->timerActive = 1;
|
||||
STWI_stop_timer();
|
||||
STWI_reset_ClockCounter();
|
||||
if (gRfuState->callbackM)
|
||||
gRfuState->callbackM(255, 0);
|
||||
break;
|
||||
// TODO: Make an enum for these
|
||||
case 2:
|
||||
gSTWIStatus->timerActive = 1;
|
||||
STWI_set_timer(50);
|
||||
break;
|
||||
case 1:
|
||||
case 4:
|
||||
STWI_stop_timer();
|
||||
STWI_restart_Command();
|
||||
break;
|
||||
case 3:
|
||||
gSTWIStatus->timerActive = 1;
|
||||
STWI_stop_timer();
|
||||
STWI_reset_ClockCounter();
|
||||
if (gSTWIStatus->callbackM != NULL)
|
||||
gSTWIStatus->callbackM(255, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void STWI_set_timer(u8 unk)
|
||||
static void STWI_set_timer(u8 unk)
|
||||
{
|
||||
vu16 *timerL;
|
||||
vu16 *timerH;
|
||||
|
||||
timerL = ®_TMCNT_L(gRfuState->timerSelect);
|
||||
timerH = ®_TMCNT_H(gRfuState->timerSelect);
|
||||
timerL = ®_TMCNT_L(gSTWIStatus->timerSelect);
|
||||
timerH = ®_TMCNT_H(gSTWIStatus->timerSelect);
|
||||
REG_IME = 0;
|
||||
switch (unk)
|
||||
{
|
||||
case 50:
|
||||
*timerL = 0xFCCB;
|
||||
gRfuState->timerState = 1;
|
||||
break;
|
||||
case 80:
|
||||
*timerL = 0xFAE0;
|
||||
gRfuState->timerState = 2;
|
||||
break;
|
||||
case 100:
|
||||
*timerL = 0xF996;
|
||||
gRfuState->timerState = 3;
|
||||
break;
|
||||
case 130:
|
||||
*timerL = 0xF7AD;
|
||||
gRfuState->timerState = 4;
|
||||
break;
|
||||
case 50:
|
||||
*timerL = 0xFCCB;
|
||||
gSTWIStatus->timerState = 1;
|
||||
break;
|
||||
case 80:
|
||||
*timerL = 0xFAE0;
|
||||
gSTWIStatus->timerState = 2;
|
||||
break;
|
||||
case 100:
|
||||
*timerL = 0xF996;
|
||||
gSTWIStatus->timerState = 3;
|
||||
break;
|
||||
case 130:
|
||||
*timerL = 0xF7AD;
|
||||
gSTWIStatus->timerState = 4;
|
||||
break;
|
||||
}
|
||||
*timerH = TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_1024CLK;
|
||||
REG_IF = INTR_FLAG_TIMER0 << gRfuState->timerSelect;
|
||||
REG_IF = INTR_FLAG_TIMER0 << gSTWIStatus->timerSelect;
|
||||
REG_IME = 1;
|
||||
}
|
||||
|
||||
void STWI_stop_timer(void)
|
||||
static void STWI_stop_timer(void)
|
||||
{
|
||||
gRfuState->timerState = 0;
|
||||
|
||||
REG_TMCNT_L(gRfuState->timerSelect) = 0;
|
||||
REG_TMCNT_H(gRfuState->timerSelect) = 0;
|
||||
gSTWIStatus->timerState = 0;
|
||||
REG_TMCNT_L(gSTWIStatus->timerSelect) = 0;
|
||||
REG_TMCNT_H(gSTWIStatus->timerSelect) = 0;
|
||||
}
|
||||
|
||||
u16 STWI_init(u8 request)
|
||||
static u16 STWI_init(u8 request)
|
||||
{
|
||||
if (!REG_IME)
|
||||
{
|
||||
gRfuState->unk_12 = 6;
|
||||
if (gRfuState->callbackM)
|
||||
gRfuState->callbackM(request, gRfuState->unk_12);
|
||||
gSTWIStatus->error = ERR_REQ_CMD_IME_DISABLE;
|
||||
if (gSTWIStatus->callbackM != NULL)
|
||||
gSTWIStatus->callbackM(request, gSTWIStatus->error);
|
||||
return TRUE;
|
||||
}
|
||||
else if (gRfuState->unk_2c == TRUE)
|
||||
else if (gSTWIStatus->unk_2c == TRUE)
|
||||
{
|
||||
gRfuState->unk_12 = 2;
|
||||
gRfuState->unk_2c = FALSE;
|
||||
if (gRfuState->callbackM)
|
||||
gRfuState->callbackM(request, gRfuState->unk_12);
|
||||
gSTWIStatus->error = ERR_REQ_CMD_SENDING;
|
||||
gSTWIStatus->unk_2c = FALSE;
|
||||
if (gSTWIStatus->callbackM != NULL)
|
||||
gSTWIStatus->callbackM(request, gSTWIStatus->error);
|
||||
return TRUE;
|
||||
}
|
||||
else if(!gRfuState->msMode)
|
||||
else if(!gSTWIStatus->msMode)
|
||||
{
|
||||
gRfuState->unk_12 = 4;
|
||||
if (gRfuState->callbackM)
|
||||
gRfuState->callbackM(request, gRfuState->unk_12, gRfuState);
|
||||
gSTWIStatus->error = ERR_REQ_CMD_CLOCK_SLAVE;
|
||||
if (gSTWIStatus->callbackM != NULL)
|
||||
gSTWIStatus->callbackM(request, gSTWIStatus->error, gSTWIStatus);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gRfuState->unk_2c = TRUE;
|
||||
gRfuState->activeCommand = request;
|
||||
gRfuState->unk_0 = 0;
|
||||
gRfuState->txParams = 0;
|
||||
gRfuState->unk_5 = 0;
|
||||
gRfuState->unk_7 = 0;
|
||||
gRfuState->unk_8 = 0;
|
||||
gRfuState->unk_9 = 0;
|
||||
gRfuState->timerState = 0;
|
||||
gRfuState->timerActive = 0;
|
||||
gRfuState->unk_12 = 0;
|
||||
gRfuState->unk_15 = 0;
|
||||
|
||||
gSTWIStatus->unk_2c = TRUE;
|
||||
gSTWIStatus->reqActiveCommand = request;
|
||||
gSTWIStatus->state = 0;
|
||||
gSTWIStatus->reqLength = 0;
|
||||
gSTWIStatus->reqNext = 0;
|
||||
gSTWIStatus->ackLength = 0;
|
||||
gSTWIStatus->ackNext = 0;
|
||||
gSTWIStatus->ackActiveCommand = 0;
|
||||
gSTWIStatus->timerState = 0;
|
||||
gSTWIStatus->timerActive = 0;
|
||||
gSTWIStatus->error = 0;
|
||||
gSTWIStatus->recoveryCount = 0;
|
||||
REG_RCNT = 0x100;
|
||||
REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
int STWI_start_Command()
|
||||
static s32 STWI_start_Command(void)
|
||||
{
|
||||
u16 imeTemp;
|
||||
|
||||
// Yes, it matters that it's casted to a u32...
|
||||
*(u32*)gRfuState->txPacket->rfuPacket8.data = 0x99660000 | (gRfuState->txParams << 8) | gRfuState->activeCommand;
|
||||
REG_SIODATA32 = gRfuState->txPacket->rfuPacket32.command;
|
||||
|
||||
gRfuState->unk_0 = 0;
|
||||
gRfuState->unk_5 = 1;
|
||||
|
||||
// equivalent to gSTWIStatus->txPacket->rfuPacket32.command,
|
||||
// but the cast here is required to avoid register issue
|
||||
*(u32 *)gSTWIStatus->txPacket->rfuPacket8.data = 0x99660000 | (gSTWIStatus->reqLength << 8) | gSTWIStatus->reqActiveCommand;
|
||||
REG_SIODATA32 = gSTWIStatus->txPacket->rfuPacket32.command;
|
||||
gSTWIStatus->state = 0;
|
||||
gSTWIStatus->reqNext = 1;
|
||||
imeTemp = REG_IME;
|
||||
REG_IME = 0;
|
||||
REG_IE |= (INTR_FLAG_TIMER0 << gRfuState->timerSelect);
|
||||
REG_IE |= (INTR_FLAG_TIMER0 << gSTWIStatus->timerSelect);
|
||||
REG_IE |= INTR_FLAG_SERIAL;
|
||||
REG_IME = imeTemp;
|
||||
|
||||
REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_MULTI_BUSY | SIO_115200_BPS;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int STWI_restart_Command(void)
|
||||
static s32 STWI_restart_Command(void)
|
||||
{
|
||||
if (gRfuState->unk_15 <= 1)
|
||||
if (gSTWIStatus->recoveryCount <= 1)
|
||||
{
|
||||
gRfuState->unk_15++;
|
||||
++gSTWIStatus->recoveryCount;
|
||||
STWI_start_Command();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gRfuState->activeCommand == RFU_MS_CHANGE || gRfuState->activeCommand == RFU_DATA_TX_AND_CHANGE || gRfuState->activeCommand == RFU_UNK35 || gRfuState->activeCommand == RFU_RESUME_RETRANSMIT_AND_CHANGE)
|
||||
if (gSTWIStatus->reqActiveCommand == ID_MS_CHANGE_REQ || gSTWIStatus->reqActiveCommand == ID_DATA_TX_AND_CHANGE_REQ || gSTWIStatus->reqActiveCommand == ID_UNK35_REQ || gSTWIStatus->reqActiveCommand == ID_RESUME_RETRANSMIT_AND_CHANGE_REQ)
|
||||
{
|
||||
gRfuState->unk_12 = 1;
|
||||
gRfuState->unk_2c = 0;
|
||||
|
||||
if (gRfuState->callbackM)
|
||||
gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12);
|
||||
gSTWIStatus->error = ERR_REQ_CMD_CLOCK_DRIFT;
|
||||
gSTWIStatus->unk_2c = 0;
|
||||
if (gSTWIStatus->callbackM != NULL)
|
||||
gSTWIStatus->callbackM(gSTWIStatus->reqActiveCommand, gSTWIStatus->error);
|
||||
}
|
||||
else
|
||||
{
|
||||
gRfuState->unk_12 = 1;
|
||||
gRfuState->unk_2c = 0;
|
||||
|
||||
if (gRfuState->callbackM)
|
||||
gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12);
|
||||
|
||||
gRfuState->unk_0 = 4; //TODO: what's 4
|
||||
gSTWIStatus->error = ERR_REQ_CMD_CLOCK_DRIFT;
|
||||
gSTWIStatus->unk_2c = 0;
|
||||
if (gSTWIStatus->callbackM != NULL)
|
||||
gSTWIStatus->callbackM(gSTWIStatus->reqActiveCommand, gSTWIStatus->error);
|
||||
gSTWIStatus->state = 4; // TODO: what's 4
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int STWI_reset_ClockCounter(void)
|
||||
static s32 STWI_reset_ClockCounter(void)
|
||||
{
|
||||
gRfuState->unk_0 = 5; //TODO: what is 5
|
||||
gRfuState->txParams = 0;
|
||||
gRfuState->unk_5 = 0;
|
||||
gSTWIStatus->state = 5; // TODO: what is 5
|
||||
gSTWIStatus->reqLength = 0;
|
||||
gSTWIStatus->reqNext = 0;
|
||||
REG_SIODATA32 = (1 << 31);
|
||||
REG_SIOCNT = 0;
|
||||
REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
|
||||
REG_SIOCNT = (SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS) + 0x7F;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+119
-119
@@ -364,7 +364,7 @@ u32 sub_800BEC0(void)
|
||||
void rfu_REQ_sendData_wrapper(u8 r2)
|
||||
{
|
||||
u8 val;
|
||||
if (!gUnknown_03007890->unk_00)
|
||||
if (!gRfuLinkStatus->parentChild)
|
||||
{
|
||||
val = gUnknown_03004140.unk_02;
|
||||
r2 = 0;
|
||||
@@ -515,14 +515,14 @@ u8 sub_800C12C(u16 r6, u16 r8)
|
||||
sub_800D30C(0xF3, 0x01);
|
||||
return 2;
|
||||
}
|
||||
for (i = 0; i < gUnknown_03007890->unk_08; i++)
|
||||
for (i = 0; i < gRfuLinkStatus->findParentCount; i++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_00 == r6)
|
||||
if (gRfuLinkStatus->partner[i].id == r6)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gUnknown_03007890->unk_08 == 0 || i == gUnknown_03007890->unk_08)
|
||||
if (gRfuLinkStatus->findParentCount == 0 || i == gRfuLinkStatus->findParentCount)
|
||||
{
|
||||
gUnknown_03004140.unk_14 = 3;
|
||||
sub_800D30C(0xF3, 0x01);
|
||||
@@ -561,7 +561,7 @@ void sub_800C210(u8 a0)
|
||||
gUnknown_03004140.unk_34[i] = 0;
|
||||
}
|
||||
}
|
||||
i = gUnknown_03007890->unk_03 & a0;
|
||||
i = gRfuLinkStatus->linkLossSlotFlag & a0;
|
||||
if (i)
|
||||
{
|
||||
sub_800D334(i);
|
||||
@@ -630,8 +630,8 @@ void sub_800C27C(bool8 a0)
|
||||
case 16:
|
||||
gUnknown_03004140.unk_04 = gUnknown_03004140.unk_11;
|
||||
gUnknown_03004140.unk_05 = gUnknown_03004140.unk_12;
|
||||
sub_800D334(gUnknown_03007890->unk_03);
|
||||
gUnknown_03004140.unk_14 = gUnknown_03007890->unk_03;
|
||||
sub_800D334(gRfuLinkStatus->linkLossSlotFlag);
|
||||
gUnknown_03004140.unk_14 = gRfuLinkStatus->linkLossSlotFlag;
|
||||
sub_800D30C(0x33, 0x01);
|
||||
return;
|
||||
case 17:
|
||||
@@ -703,7 +703,7 @@ bool8 sub_800C36C(u16 a0)
|
||||
}
|
||||
sub_800D610();
|
||||
}
|
||||
if (gUnknown_03007890->unk_00 == 1)
|
||||
if (gRfuLinkStatus->parentChild == 1)
|
||||
{
|
||||
if (sp2)
|
||||
{
|
||||
@@ -800,7 +800,7 @@ void sub_800C54C(u32 a0)
|
||||
rfu_REQ_configSystem(gUnknown_03004140.unk_3c->unk_02, gUnknown_03004140.unk_3c->unk_00, gUnknown_03004140.unk_3c->unk_01);
|
||||
break;
|
||||
case 4:
|
||||
rfu_REQ_configGameData(gUnknown_03004140.unk_3c->unk_04, gUnknown_03004140.unk_3c->unk_06, gUnknown_03004140.unk_3c->unk_08, gUnknown_03004140.unk_3c->unk_0c);
|
||||
rfu_REQ_configGameData(gUnknown_03004140.unk_3c->unk_04, gUnknown_03004140.unk_3c->unk_06, (const u8 *)gUnknown_03004140.unk_3c->unk_08, gUnknown_03004140.unk_3c->unk_0c);
|
||||
break;
|
||||
case 5:
|
||||
rfu_REQ_startSearchChild();
|
||||
@@ -834,7 +834,7 @@ void sub_800C54C(u32 a0)
|
||||
case 15:
|
||||
break;
|
||||
case 16:
|
||||
rfu_REQ_CHILD_startConnectRecovery(gUnknown_03007890->unk_03);
|
||||
rfu_REQ_CHILD_startConnectRecovery(gRfuLinkStatus->linkLossSlotFlag);
|
||||
break;
|
||||
case 17:
|
||||
rfu_REQ_CHILD_pollConnectRecovery();
|
||||
@@ -857,7 +857,7 @@ void sub_800C54C(u32 a0)
|
||||
gUnknown_03004140.unk_0e = 0;
|
||||
}
|
||||
} while (gUnknown_03004140.unk_04 == 18 || gUnknown_03004140.unk_04 == 19);
|
||||
if (gUnknown_03007890->unk_00 != 1 || !sub_800C36C(0))
|
||||
if (gRfuLinkStatus->parentChild != 1 || !sub_800C36C(0))
|
||||
{
|
||||
sub_800CF34();
|
||||
sub_800D158();
|
||||
@@ -910,7 +910,7 @@ static void sub_800C744(u32 a0)
|
||||
static void sub_800C7B4(u16 r8, u16 r6)
|
||||
{
|
||||
u8 sp0;
|
||||
register u8 *stwiRecvBuffer asm("r0");
|
||||
register struct RfuIntrStruct *stwiRecvBuffer asm("r0");
|
||||
u8 *tmp;
|
||||
u8 i;
|
||||
|
||||
@@ -983,7 +983,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
{
|
||||
sub_800D30C(0x20, 0x01);
|
||||
}
|
||||
if (gUnknown_03004140.unk_0b && gUnknown_03004140.unk_1a != 1 && gUnknown_03007890->unk_08 == 4)
|
||||
if (gUnknown_03004140.unk_0b && gUnknown_03004140.unk_1a != 1 && gRfuLinkStatus->findParentCount == 4)
|
||||
{
|
||||
rfu_REQ_endSearchParent();
|
||||
rfu_waitREQComplete();
|
||||
@@ -1059,11 +1059,11 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
case 50:
|
||||
if (r6 == 0)
|
||||
{
|
||||
gUnknown_03004140.unk_14 = gUnknown_03007890->unk_03;
|
||||
gUnknown_03004140.unk_14 = gRfuLinkStatus->linkLossSlotFlag;
|
||||
gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 17;
|
||||
for (gUnknown_03004140.unk_10 = 0; gUnknown_03004140.unk_10 < 4; gUnknown_03004140.unk_10 ++)
|
||||
{
|
||||
if ((gUnknown_03007890->unk_03 >> gUnknown_03004140.unk_10) & 1)
|
||||
if ((gRfuLinkStatus->linkLossSlotFlag >> gUnknown_03004140.unk_10) & 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -1092,7 +1092,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
else
|
||||
{
|
||||
gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0;
|
||||
sub_800D334(gUnknown_03007890->unk_03);
|
||||
sub_800D334(gRfuLinkStatus->linkLossSlotFlag);
|
||||
gUnknown_03004140.unk_1e = 0x33;
|
||||
}
|
||||
gUnknown_03004140.unk_34[gUnknown_03004140.unk_10] = 0;
|
||||
@@ -1126,7 +1126,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
{
|
||||
gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0;
|
||||
sub_800D610();
|
||||
sub_800D334(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03);
|
||||
sub_800D334(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
|
||||
gUnknown_03004140.unk_14 = sp0;
|
||||
sub_800D30C(0x25, 0x01);
|
||||
}
|
||||
@@ -1148,11 +1148,11 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
rfu_REQ_RFUStatus();
|
||||
rfu_waitREQComplete();
|
||||
rfu_getRFUStatus(&sp0);
|
||||
if (sp0 == 0 && gUnknown_03007890->unk_00 == 0)
|
||||
if (sp0 == 0 && gRfuLinkStatus->parentChild == 0)
|
||||
{
|
||||
stwiRecvBuffer = rfu_getSTWIRecvBuffer();
|
||||
stwiRecvBuffer[4] = gUnknown_03007890->unk_02;
|
||||
stwiRecvBuffer[5] = 1;
|
||||
stwiRecvBuffer->rxPacketAlloc.rfuPacket8.data[4] = gRfuLinkStatus->connSlotFlag;
|
||||
stwiRecvBuffer->rxPacketAlloc.rfuPacket8.data[5] = 1;
|
||||
sub_800C36C(0x29);
|
||||
r6 = 0;
|
||||
}
|
||||
@@ -1163,7 +1163,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
if (r6 == 0)
|
||||
{
|
||||
stwiRecvBuffer = rfu_getSTWIRecvBuffer();
|
||||
gUnknown_03004140.unk_14 = stwiRecvBuffer[8];
|
||||
gUnknown_03004140.unk_14 = stwiRecvBuffer->rxPacketAlloc.rfuPacket8.data[8];
|
||||
sub_800D358(gUnknown_03004140.unk_14);
|
||||
if (gUnknown_03004140.unk_30)
|
||||
{
|
||||
@@ -1191,7 +1191,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
gUnknown_03004140.unk_00 &= ~gUnknown_03004140.unk_14;
|
||||
if (gUnknown_03004140.unk_07)
|
||||
{
|
||||
if (gUnknown_03007890->unk_00 == 0xFF)
|
||||
if (gRfuLinkStatus->parentChild == 0xFF)
|
||||
{
|
||||
if (gUnknown_03004140.unk_07 == 8)
|
||||
{
|
||||
@@ -1206,7 +1206,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gUnknown_03007890->unk_00 == 0xFF)
|
||||
if (gRfuLinkStatus->parentChild == 0xFF)
|
||||
{
|
||||
if (gUnknown_03004140.unk_04 == 0)
|
||||
{
|
||||
@@ -1221,7 +1221,7 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
break;
|
||||
case 38:
|
||||
sub_800D20C();
|
||||
if (gUnknown_03007890->unk_00 != 0xFF)
|
||||
if (gRfuLinkStatus->parentChild != 0xFF)
|
||||
{
|
||||
sub_800D30C(0x50, 0x00);
|
||||
}
|
||||
@@ -1246,8 +1246,8 @@ static void sub_800C7B4(u16 r8, u16 r6)
|
||||
{
|
||||
if (r8 == 28 && r6 != 0 && gUnknown_03004140.unk_07 == 4)
|
||||
{
|
||||
gUnknown_03007890->unk_00 = 1;
|
||||
gUnknown_03007890->unk_02 = 15;
|
||||
gRfuLinkStatus->parentChild = 1;
|
||||
gRfuLinkStatus->connSlotFlag = 15;
|
||||
sub_800D334(15);
|
||||
rfu_waitREQComplete();
|
||||
return;
|
||||
@@ -1279,7 +1279,7 @@ static void sub_800CEB0(u16 r6)
|
||||
r7 = gUnknown_03004140.unk_0e;
|
||||
gUnknown_03004140.unk_0e = 0;
|
||||
gUnknown_03004140.unk_0f = 1;
|
||||
if (gUnknown_03007890->unk_00 == 0)
|
||||
if (gRfuLinkStatus->parentChild == 0)
|
||||
{
|
||||
sub_800C36C(r6);
|
||||
if (gUnknown_03004140.unk_02 != 1)
|
||||
@@ -1321,8 +1321,8 @@ static void sub_800CF34(void)
|
||||
|
||||
if (gUnknown_03004140.unk_04 == 5 || gUnknown_03004140.unk_04 == 6 || gUnknown_03004140.unk_04 == 7 || gUnknown_03004140.unk_04 == 8)
|
||||
{
|
||||
flags = ((gUnknown_03007890->unk_02 ^ gUnknown_03004140.unk_0c) & gUnknown_03007890->unk_02) & ~gUnknown_03007890->unk_07;
|
||||
gUnknown_03004140.unk_0c = gUnknown_03007890->unk_02;
|
||||
flags = ((gRfuLinkStatus->connSlotFlag ^ gUnknown_03004140.unk_0c) & gRfuLinkStatus->connSlotFlag) & ~gRfuLinkStatus->getNameFlag;
|
||||
gUnknown_03004140.unk_0c = gRfuLinkStatus->connSlotFlag;
|
||||
if (flags)
|
||||
{
|
||||
gUnknown_03004140.unk_14 = flags;
|
||||
@@ -1340,14 +1340,14 @@ static void sub_800CF34(void)
|
||||
}
|
||||
else if (gUnknown_03004140.unk_24 & r4)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_34 == 0x46)
|
||||
if (gRfuSlotStatusNI[i]->recv.state == 0x46)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_61 == 1)
|
||||
if (gRfuSlotStatusNI[i]->recv.dataType == 1)
|
||||
{
|
||||
r5 = 0x02;
|
||||
for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_04 == *ptr)
|
||||
if (gRfuLinkStatus->partner[i].serialNo == *ptr)
|
||||
{
|
||||
gUnknown_03004140.unk_00 |= r4;
|
||||
gUnknown_03004140.unk_01++;
|
||||
@@ -1386,7 +1386,7 @@ static void sub_800CF34(void)
|
||||
if (gUnknown_03004140.unk_0d)
|
||||
{
|
||||
r5 = 0x01;
|
||||
if (gUnknown_03007890->unk_06 && ((gUnknown_03004140.unk_03 & gUnknown_03004140.unk_00) != gUnknown_03004140.unk_00))
|
||||
if (gRfuLinkStatus->sendSlotUNIFlag && ((gUnknown_03004140.unk_03 & gUnknown_03004140.unk_00) != gUnknown_03004140.unk_00))
|
||||
{
|
||||
r5 = 0x00;
|
||||
}
|
||||
@@ -1434,7 +1434,7 @@ static void sub_800D158(void)
|
||||
REG_IME = 0;
|
||||
if (gUnknown_03004140.unk_04 == 15)
|
||||
{
|
||||
if (--gUnknown_03004140.unk_28[gUnknown_03004140.unk_10] == 0 || gUnknown_03007880[gUnknown_03004140.unk_10]->unk_0 == 0x27)
|
||||
if (--gUnknown_03004140.unk_28[gUnknown_03004140.unk_10] == 0 || gRfuSlotStatusNI[gUnknown_03004140.unk_10]->send.state == 0x27)
|
||||
{
|
||||
sub_800D630();
|
||||
gUnknown_03004140.unk_04 = 24;
|
||||
@@ -1453,7 +1453,7 @@ static void sub_800D158(void)
|
||||
if (gUnknown_03004140.unk_02 == 0)
|
||||
{
|
||||
gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0;
|
||||
sub_800D334(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03);
|
||||
sub_800D334(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
|
||||
gUnknown_03004140.unk_14 = 0;
|
||||
sub_800D30C(0x25, 0x01);
|
||||
}
|
||||
@@ -1462,7 +1462,7 @@ static void sub_800D158(void)
|
||||
|
||||
static void sub_800D20C(void)
|
||||
{
|
||||
if (gUnknown_03004140.unk_04 == 15 && gUnknown_03007880[gUnknown_03004140.unk_10]->unk_0 == 0x26)
|
||||
if (gUnknown_03004140.unk_04 == 15 && gRfuSlotStatusNI[gUnknown_03004140.unk_10]->send.state == 0x26)
|
||||
{
|
||||
gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0;
|
||||
rfu_clearSlot(4, gUnknown_03004140.unk_10);
|
||||
@@ -1490,11 +1490,11 @@ static u8 sub_800D294(void)
|
||||
const u16 *ptr;
|
||||
u8 flags = 0x00;
|
||||
|
||||
for (i = 0; i < gUnknown_03007890->unk_08; i++)
|
||||
for (i = 0; i < gRfuLinkStatus->findParentCount; i++)
|
||||
{
|
||||
for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_04 == *ptr)
|
||||
if (gRfuLinkStatus->partner[i].serialNo == *ptr)
|
||||
{
|
||||
flags |= (1 << i);
|
||||
}
|
||||
@@ -1525,34 +1525,34 @@ static void sub_800D358(u8 a0)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
if (gUnknown_03007890->unk_04)
|
||||
if (gRfuLinkStatus->sendSlotNIFlag)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_0 & 0x8000 && gUnknown_03007880[i]->unk_1a & a0)
|
||||
if (gRfuSlotStatusNI[i]->send.state & 0x8000 && gRfuSlotStatusNI[i]->send.bmSlot & a0)
|
||||
{
|
||||
rfu_changeSendTarget(0x20, i, gUnknown_03007880[i]->unk_1a & ~a0);
|
||||
rfu_changeSendTarget(0x20, i, gRfuSlotStatusNI[i]->send.bmSlot & ~a0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gUnknown_03007890->unk_05)
|
||||
if (gRfuLinkStatus->recvSlotNIFlag)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_34 & 0x8000 && gUnknown_03007880[i]->unk_4e & a0)
|
||||
if (gRfuSlotStatusNI[i]->recv.state & 0x8000 && gRfuSlotStatusNI[i]->recv.bmSlot & a0)
|
||||
{
|
||||
rfu_NI_stopReceivingData(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gUnknown_03007890->unk_06)
|
||||
if (gRfuLinkStatus->sendSlotUNIFlag)
|
||||
{
|
||||
gUnknown_03007890->unk_06 &= ~a0;
|
||||
gRfuLinkStatus->sendSlotUNIFlag &= ~a0;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007870[i]->unk_0 == 0x8024 && a0 & gUnknown_03007870[i]->unk_3)
|
||||
if (gRfuSlotStatusUNI[i]->send.state == 0x8024 && a0 & gRfuSlotStatusUNI[i]->send.bmSlot)
|
||||
{
|
||||
gUnknown_03007870[i]->unk_3 &= ~a0;
|
||||
gRfuSlotStatusUNI[i]->send.bmSlot &= ~a0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1566,32 +1566,32 @@ static void sub_800D434(void)
|
||||
|
||||
if (gUnknown_03004140.unk_18)
|
||||
{
|
||||
if (gUnknown_03007890->unk_04)
|
||||
if (gRfuLinkStatus->sendSlotNIFlag)
|
||||
{
|
||||
for (i = 0; i < 4; i ++)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_0 & 0x8000)
|
||||
if (gRfuSlotStatusNI[i]->send.state & 0x8000)
|
||||
{
|
||||
flags = 0;
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
if ((gUnknown_03007880[i]->unk_1a >> j) & 1 && gUnknown_03007880[j]->unk_2 > gUnknown_03004140.unk_18)
|
||||
if ((gRfuSlotStatusNI[i]->send.bmSlot >> j) & 1 && gRfuSlotStatusNI[j]->send.failCounter > gUnknown_03004140.unk_18)
|
||||
{
|
||||
flags |= (1 << j);
|
||||
}
|
||||
if (flags)
|
||||
{
|
||||
rfu_changeSendTarget(0x20, i, flags ^ gUnknown_03007880[i]->unk_1a);
|
||||
rfu_changeSendTarget(0x20, i, flags ^ gRfuSlotStatusNI[i]->send.bmSlot);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (gUnknown_03007890->unk_05)
|
||||
if (gRfuLinkStatus->recvSlotNIFlag)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_34 & 0x8000 && gUnknown_03007880[i]->unk_36 > gUnknown_03004140.unk_18)
|
||||
if (gRfuSlotStatusNI[i]->recv.state & 0x8000 && gRfuSlotStatusNI[i]->recv.failCounter > gUnknown_03004140.unk_18)
|
||||
{
|
||||
rfu_NI_stopReceivingData(i);
|
||||
}
|
||||
@@ -1628,7 +1628,7 @@ u8 sub_800D550(u8 a0, u16 a1)
|
||||
|
||||
u8 sub_800D594(u16 a0)
|
||||
{
|
||||
if (gUnknown_03007890->unk_04 | gUnknown_03007890->unk_05)
|
||||
if (gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag)
|
||||
{
|
||||
gUnknown_03004140.unk_14 = 6;
|
||||
sub_800D30C(0xf3, 0x01);
|
||||
@@ -2049,17 +2049,17 @@ void ASCIIToPkmnStr(u8 *q1, const u8 *q2)
|
||||
u8 sub_800DD1C(u8 maxFlags)
|
||||
{
|
||||
u8 flagCount = 0;
|
||||
u32 flags = gUnknown_03007890->unk_02;
|
||||
u32 flags = gRfuLinkStatus->connSlotFlag;
|
||||
u8 i;
|
||||
|
||||
if (gUnknown_03007890->unk_00 == 1)
|
||||
if (gRfuLinkStatus->parentChild == 1)
|
||||
{
|
||||
for (i = 0; i < 4; flags >>= 1, i++)
|
||||
{
|
||||
if (flags & 1)
|
||||
{
|
||||
if (maxFlags == flagCount + 1)
|
||||
return gUnknown_03007890->unk_0a[i];
|
||||
return gRfuLinkStatus->strength[i];
|
||||
flagCount++;
|
||||
}
|
||||
}
|
||||
@@ -2069,7 +2069,7 @@ u8 sub_800DD1C(u8 maxFlags)
|
||||
for (i = 0; i < 4; flags >>= 1, i++)
|
||||
{
|
||||
if (flags & 1)
|
||||
return gUnknown_03007890->unk_0a[i];
|
||||
return gRfuLinkStatus->strength[i];
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@@ -2081,7 +2081,7 @@ NAKED u8 sub_800DD1C(u8 maxFlags)
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r5, r0, 24\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"\tldr r0, =gUnknown_03007890\n"
|
||||
"\tldr r0, =gRfuLinkStatus\n"
|
||||
"\tldr r4, [r0]\n"
|
||||
"\tldrb r2, [r4, 0x2]\n"
|
||||
"\tldrb r1, [r4]\n"
|
||||
@@ -2177,24 +2177,24 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx)
|
||||
if (gUnknown_03004140.unk_06 == 1)
|
||||
{
|
||||
retVal = TRUE;
|
||||
if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04) && ((gUnknown_03007890->unk_07 >> idx) & 1))
|
||||
if (sub_8010454(gRfuLinkStatus->partner[idx].serialNo) && ((gRfuLinkStatus->getNameFlag >> idx) & 1))
|
||||
{
|
||||
memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD);
|
||||
memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(buff1, gRfuLinkStatus->partner[idx].gname, 0xD);
|
||||
memcpy(buff2, gRfuLinkStatus->partner[idx].uname, PLAYER_NAME_LENGTH + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
memset(buff1, 0, 0xD);
|
||||
memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].playerName));
|
||||
memset(buff2, 0, PLAYER_NAME_LENGTH + 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = FALSE;
|
||||
if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04))
|
||||
if (sub_8010454(gRfuLinkStatus->partner[idx].serialNo))
|
||||
{
|
||||
memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD);
|
||||
memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(buff1, gRfuLinkStatus->partner[idx].gname, 0xD);
|
||||
memcpy(buff2, gRfuLinkStatus->partner[idx].uname, PLAYER_NAME_LENGTH + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2208,10 +2208,10 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx)
|
||||
bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx)
|
||||
{
|
||||
bool8 retVal = FALSE;
|
||||
if (gUnknown_03007890->unk_14[idx].unk_04 == 0x7F7D)
|
||||
if (gRfuLinkStatus->partner[idx].serialNo == 0x7F7D)
|
||||
{
|
||||
memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD);
|
||||
memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, 8);
|
||||
memcpy(buff1, gRfuLinkStatus->partner[idx].gname, 0xD);
|
||||
memcpy(buff2, gRfuLinkStatus->partner[idx].uname, 8);
|
||||
retVal = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -2237,7 +2237,7 @@ void CreateWirelessStatusIndicatorSprite(u8 x, u8 y)
|
||||
x = 0xE7;
|
||||
y = 0x08;
|
||||
}
|
||||
if (gUnknown_03007890->unk_00 == 1)
|
||||
if (gRfuLinkStatus->parentChild == 1)
|
||||
{
|
||||
sprId = CreateSprite(&sWirelessStatusIndicatorSpriteTemplate, x, y, 0);
|
||||
gSprites[sprId].data[7] = 0x1234;
|
||||
@@ -2278,12 +2278,12 @@ void LoadWirelessStatusIndicatorSpriteGfx(void)
|
||||
u8 sub_800E124(void)
|
||||
{
|
||||
u8 i;
|
||||
u8 flags = gUnknown_03007890->unk_02;
|
||||
u8 flags = gRfuLinkStatus->connSlotFlag;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (flags & 1)
|
||||
{
|
||||
return gUnknown_03007890->unk_0a[i];
|
||||
return gRfuLinkStatus->strength[i];
|
||||
}
|
||||
flags >>= 1;
|
||||
}
|
||||
@@ -2307,7 +2307,7 @@ void sub_800E174(void)
|
||||
struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId];
|
||||
u8 signalStrength = 255;
|
||||
u8 i = 0;
|
||||
if (gUnknown_03007890->unk_00 == 1)
|
||||
if (gRfuLinkStatus->parentChild == 1)
|
||||
{
|
||||
for (i = 0; i < GetLinkPlayerCount() - 1; i++)
|
||||
{
|
||||
@@ -2530,7 +2530,7 @@ void sub_800E6D0(void)
|
||||
|
||||
void sub_800E700(void)
|
||||
{
|
||||
if (!rfu_initializeAPI(gUnknown_03004140.unk_50, sizeof gUnknown_03004140.unk_50, gIntrTable + 1, TRUE))
|
||||
if (!rfu_initializeAPI((void *)gUnknown_03004140.unk_50, sizeof gUnknown_03004140.unk_50, gIntrTable + 1, TRUE))
|
||||
{
|
||||
gLinkType = 0;
|
||||
sub_800AAF4();
|
||||
@@ -2787,7 +2787,7 @@ void sub_800ED34(u16 unused)
|
||||
}
|
||||
rfu_REQ_recvData();
|
||||
rfu_waitREQComplete();
|
||||
if (gUnknown_03007870[gUnknown_03005000.unk_c3e]->unk_12)
|
||||
if (gRfuSlotStatusUNI[gUnknown_03005000.unk_c3e]->recv.newDataFlag)
|
||||
{
|
||||
gUnknown_03005000.unk_cd0++;
|
||||
sub_800D7D8(&gUnknown_03005000.unk_124, gUnknown_03005000.unk_c3f);
|
||||
@@ -2858,7 +2858,7 @@ bool8 sub_800EE94(void)
|
||||
|
||||
bool32 sub_800EEBC(void)
|
||||
{
|
||||
if (gUnknown_03005000.unk_04 == 7 && !sub_800C12C(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3d].unk_00, 240))
|
||||
if (gUnknown_03005000.unk_04 == 7 && !sub_800C12C(gRfuLinkStatus->partner[gUnknown_03005000.unk_c3d].id, 240))
|
||||
{
|
||||
gUnknown_03005000.unk_04 = 9;
|
||||
return TRUE;
|
||||
@@ -2971,7 +2971,7 @@ bool32 IsRfuRecvQueueEmpty(void)
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
if (gUnknown_03007890->unk_06 == 0)
|
||||
if (gRfuLinkStatus->sendSlotUNIFlag == 0)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -2999,7 +2999,7 @@ bool32 sub_800F0F8(void)
|
||||
else
|
||||
{
|
||||
gUnknown_03005000.unk_cdb = 0;
|
||||
if ((gUnknown_03005000.unk_ce2 & gUnknown_03007890->unk_02) == gUnknown_03005000.unk_ce2 && (gUnknown_03005000.unk_ce2 & gUnknown_03007890->unk_02))
|
||||
if ((gUnknown_03005000.unk_ce2 & gRfuLinkStatus->connSlotFlag) == gUnknown_03005000.unk_ce2 && (gUnknown_03005000.unk_ce2 & gRfuLinkStatus->connSlotFlag))
|
||||
{
|
||||
if (!gUnknown_03005000.unk_cdc)
|
||||
{
|
||||
@@ -3119,7 +3119,7 @@ bool32 sub_800F1E0(void)
|
||||
gUnknown_03005000.unk_0e = 0;
|
||||
}
|
||||
retval = gUnknown_03005000.unk_cdc;
|
||||
return gUnknown_03007890->unk_06 ? retval & 1 : FALSE;
|
||||
return gRfuLinkStatus->sendSlotUNIFlag ? retval & 1 : FALSE;
|
||||
}
|
||||
|
||||
void sub_800F498(u16 *a0, u8 *a1)
|
||||
@@ -3162,7 +3162,7 @@ bool32 sub_800F4F0(void)
|
||||
sub_800F86C(0);
|
||||
if (gUnknown_03004140.unk_02 == 0 && gUnknown_03005000.unk_ce4)
|
||||
{
|
||||
rfu_REQ_disconnect(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03);
|
||||
rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
|
||||
rfu_waitREQComplete();
|
||||
switchval = sub_8011A74();
|
||||
if (switchval != 1 && switchval != 6 && switchval != 9)
|
||||
@@ -3305,7 +3305,7 @@ static void sub_800F86C(u8 unused)
|
||||
return;
|
||||
// fallthrough
|
||||
case 0x7700:
|
||||
if (gUnknown_03007890->unk_00 == 0)
|
||||
if (gRfuLinkStatus->parentChild == 0)
|
||||
{
|
||||
gUnknown_03005000.playerCount = gRecvCmds[i][1];
|
||||
gUnknown_03005000.unk_cce = sub_800F74C((u8 *)(gRecvCmds[i] + 2));
|
||||
@@ -3353,7 +3353,7 @@ static void sub_800F86C(u8 unused)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers != 0)
|
||||
{
|
||||
if (gRecvCmds[i][1] & gUnknown_03007890->unk_02)
|
||||
if (gRecvCmds[i][1] & gRfuLinkStatus->connSlotFlag)
|
||||
{
|
||||
gReceivedRemoteLinkPlayers = 0;
|
||||
sub_800D630();
|
||||
@@ -3611,7 +3611,7 @@ void sub_801011C(void)
|
||||
|
||||
void sub_8010148(void)
|
||||
{
|
||||
rfu_REQ_disconnect(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03);
|
||||
rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag);
|
||||
rfu_waitREQComplete();
|
||||
sub_801011C();
|
||||
}
|
||||
@@ -3631,7 +3631,7 @@ void LinkRfu_FatalError(void)
|
||||
{
|
||||
sub_800D630();
|
||||
gUnknown_03005000.unk_ce4 = 1;
|
||||
gUnknown_03005000.unk_ce3 = gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03;
|
||||
gUnknown_03005000.unk_ce3 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag;
|
||||
}
|
||||
|
||||
void sub_80101CC(void)
|
||||
@@ -3821,7 +3821,7 @@ bool8 sub_8010540(void)
|
||||
{
|
||||
if (gUnknown_03005000.unk_cd1[i] < 5 || gUnknown_03005000.unk_cd1[i] > 6)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_34 == 0x46 || gUnknown_03007880[i]->unk_34 == 0x48)
|
||||
if (gRfuSlotStatusNI[i]->recv.state == 0x46 || gRfuSlotStatusNI[i]->recv.state == 0x48)
|
||||
{
|
||||
if (gUnknown_03005000.unk_cd5[i] == 8)
|
||||
{
|
||||
@@ -3833,7 +3833,7 @@ bool8 sub_8010540(void)
|
||||
}
|
||||
|
||||
}
|
||||
else if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x47)
|
||||
else if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x47)
|
||||
rfu_clearSlot(8, i);
|
||||
{
|
||||
|
||||
@@ -3898,7 +3898,7 @@ u32 sub_8010714(u16 a0, const u8 *a1)
|
||||
u8 r0 = sub_8011CE4(a1, a0);
|
||||
if (r0 == 0xFF)
|
||||
return 2;
|
||||
if (gUnknown_03007880[r0]->unk_0 == 0)
|
||||
if (gRfuSlotStatusNI[r0]->send.state == 0)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
@@ -3910,7 +3910,7 @@ void sub_8010750(void)
|
||||
sub_8010540();
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007880[i]->unk_0 == 0x26 || gUnknown_03007880[i]->unk_0 == 0x27)
|
||||
if (gRfuSlotStatusNI[i]->send.state == 0x26 || gRfuSlotStatusNI[i]->send.state == 0x27)
|
||||
{
|
||||
if (gUnknown_03005000.unk_cd5[i] == 10)
|
||||
gUnknown_03005000.unk_cd5[i] = 11;
|
||||
@@ -3924,16 +3924,16 @@ s32 sub_80107A0(void)
|
||||
s32 retval = 0;
|
||||
if (gUnknown_03005000.unk_c85 == 8)
|
||||
{
|
||||
if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_0 == 0x26 || gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_0 == 0x27)
|
||||
if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->send.state == 0x26 || gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->send.state == 0x27)
|
||||
rfu_clearSlot(4, gUnknown_03005000.unk_c3e);
|
||||
}
|
||||
if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x46 || gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x48)
|
||||
if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x46 || gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x48)
|
||||
{
|
||||
rfu_clearSlot(8, gUnknown_03005000.unk_c3e);
|
||||
sub_8011A64(gUnknown_03005000.unk_c86, 0);
|
||||
retval = gUnknown_03005000.unk_c86;
|
||||
}
|
||||
else if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x47)
|
||||
else if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x47)
|
||||
{
|
||||
rfu_clearSlot(8, gUnknown_03005000.unk_c3e);
|
||||
retval = 6;
|
||||
@@ -4282,14 +4282,14 @@ void sub_801103C(void)
|
||||
void sub_8011068(u8 a0)
|
||||
{
|
||||
gUnknown_02022B14.unk_0a_7 = a0;
|
||||
rfu_REQ_configGameData(0, 2, &gUnknown_02022B14, gUnknown_02022B22);
|
||||
rfu_REQ_configGameData(0, 2, (const u8 *)&gUnknown_02022B14, gUnknown_02022B22);
|
||||
}
|
||||
|
||||
void sub_8011090(u8 a0, u32 a1, u32 a2)
|
||||
{
|
||||
if (a0)
|
||||
sub_8010F84(a0, a1, a2);
|
||||
rfu_REQ_configGameData(0, 2, &gUnknown_02022B14, gUnknown_02022B22);
|
||||
rfu_REQ_configGameData(0, 2, (const u8 *)&gUnknown_02022B14, gUnknown_02022B22);
|
||||
}
|
||||
|
||||
void sub_80110B8(u32 a0)
|
||||
@@ -4370,7 +4370,7 @@ void sub_801120C(u8 a0, u8 unused1)
|
||||
{
|
||||
if ((gUnknown_03004140.unk_14 >> i) & 1)
|
||||
{
|
||||
struct UnkLinkRfuStruct_02022B14 *structPtr = &gUnknown_03007890->unk_14[i].unk_06;
|
||||
struct UnkLinkRfuStruct_02022B14 *structPtr = (void *)gRfuLinkStatus->partner[i].gname;
|
||||
if (structPtr->unk_0a_0 == sub_800F7DC()->unk_0a_0)
|
||||
{
|
||||
gUnknown_03005000.unk_cd1[i] = 0;
|
||||
@@ -4528,7 +4528,7 @@ u8 sub_8011628(s32 a0)
|
||||
{
|
||||
if ((a0 >> i) & 1)
|
||||
{
|
||||
struct UnkLinkRfuStruct_02022B14 *structPtr = &gUnknown_03007890->unk_14[i].unk_06;
|
||||
struct UnkLinkRfuStruct_02022B14 *structPtr = (void *)gRfuLinkStatus->partner[i].gname;
|
||||
if (structPtr->unk_0a_0 == 0x45)
|
||||
ret |= (1 << i);
|
||||
}
|
||||
@@ -4629,7 +4629,7 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
break;
|
||||
case 0x32:
|
||||
gUnknown_03005000.unk_f0 = 3;
|
||||
if (gUnknown_03007890->unk_00 == 0)
|
||||
if (gRfuLinkStatus->parentChild == 0)
|
||||
gUnknown_03005000.unk_c3c = 1;
|
||||
break;
|
||||
case 0x30:
|
||||
@@ -4654,7 +4654,7 @@ void sub_8011674(u8 a0, u8 unused1)
|
||||
sub_800C27C(0);
|
||||
}
|
||||
|
||||
if (gUnknown_03007890->unk_00 == 0xFF && gUnknown_03004140.unk_07 == 0 && FuncIsActiveTask(sub_800EB44) == TRUE)
|
||||
if (gRfuLinkStatus->parentChild == 0xFF && gUnknown_03004140.unk_07 == 0 && FuncIsActiveTask(sub_800EB44) == TRUE)
|
||||
gUnknown_03005000.unk_04 = 0x11;
|
||||
|
||||
sub_8011A64(2, a0);
|
||||
@@ -4825,13 +4825,13 @@ u8 sub_8011CE4(const u8 *a0, u16 a1)
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
u16 trainerId = ReadU16(gUnknown_03007890->unk_14[i].unk_06.unk_00.playerTrainerId);
|
||||
if (sub_8010454(gUnknown_03007890->unk_14[i].unk_04)
|
||||
&& !StringCompare(a0, gUnknown_03007890->unk_14[i].playerName)
|
||||
u16 trainerId = ReadU16(gRfuLinkStatus->partner[i].gname + 2);
|
||||
if (sub_8010454(gRfuLinkStatus->partner[i].serialNo)
|
||||
&& !StringCompare(a0, gRfuLinkStatus->partner[i].uname)
|
||||
&& a1 == trainerId)
|
||||
{
|
||||
ret = i;
|
||||
if (gUnknown_03007890->unk_14[i].unk_02 != 0xFF)
|
||||
if (gRfuLinkStatus->partner[i].slot != 0xFF)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -4911,7 +4911,7 @@ void sub_8011EF4(u8 taskId)
|
||||
u8 id = sub_8011CE4((u8*)data, ReadU16(&data[8]));
|
||||
if (id != 0xFF)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[id].unk_02 != 0xFF)
|
||||
if (gRfuLinkStatus->partner[id].slot != 0xFF)
|
||||
{
|
||||
gUnknown_03005000.unk_c3d = id;
|
||||
if (sub_800EEBC())
|
||||
@@ -5006,9 +5006,9 @@ void sub_801209C(u8 taskId)
|
||||
u8 id = sub_8011CE4(gUnknown_03005000.playerName, trainerId);
|
||||
if (id != 0xFF)
|
||||
{
|
||||
if (!sub_801200C(gTasks[taskId].data[1], &gUnknown_03007890->unk_14[id].unk_06))
|
||||
if (!sub_801200C(gTasks[taskId].data[1], (void *)gRfuLinkStatus->partner[id].gname))
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[id].unk_02 != 0xFF && !sub_800C12C(gUnknown_03007890->unk_14[id].unk_00, 0x5A))
|
||||
if (gRfuLinkStatus->partner[id].slot != 0xFF && !sub_800C12C(gRfuLinkStatus->partner[id].id, 0x5A))
|
||||
{
|
||||
gUnknown_03005000.unk_04 = 0xA;
|
||||
DestroyTask(taskId);
|
||||
@@ -5081,17 +5081,17 @@ void sub_801229C(void)
|
||||
s32 i, j;
|
||||
|
||||
nullsub_13(GetBlockReceivedStatus(), 0x1C, 0x13, 2);
|
||||
nullsub_13(gUnknown_03007890->unk_02, 0x14, 1, 1);
|
||||
nullsub_13(gUnknown_03007890->unk_03, 0x17, 1, 1);
|
||||
nullsub_13(gRfuLinkStatus->connSlotFlag, 0x14, 1, 1);
|
||||
nullsub_13(gRfuLinkStatus->linkLossSlotFlag, 0x17, 1, 1);
|
||||
if (gUnknown_03005000.unk_0c == 1)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if ((gUnknown_03007890->unk_07 >> i) & 1)
|
||||
if ((gRfuLinkStatus->getNameFlag >> i) & 1)
|
||||
{
|
||||
nullsub_13(gUnknown_03007890->unk_14[i].unk_04, 1, i + 3, 4);
|
||||
nullsub_5((void*) &gUnknown_03007890->unk_14[i].unk_06, 6, i + 3);
|
||||
nullsub_5(gUnknown_03007890->unk_14[i].playerName, 0x16, i + 3);
|
||||
nullsub_13(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4);
|
||||
nullsub_5((void*)gRfuLinkStatus->partner[i].gname, 6, i + 3);
|
||||
nullsub_5(gRfuLinkStatus->partner[i].uname, 0x16, i + 3);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++)
|
||||
@@ -5103,7 +5103,7 @@ void sub_801229C(void)
|
||||
}
|
||||
nullsub_5(gUnknown_082ED868, 1, 0xF);
|
||||
}
|
||||
else if (gUnknown_03007890->unk_02 != 0 && gUnknown_03007890->unk_07 != 0)
|
||||
else if (gRfuLinkStatus->connSlotFlag != 0 && gRfuLinkStatus->getNameFlag != 0)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
@@ -5111,19 +5111,19 @@ void sub_801229C(void)
|
||||
nullsub_5(gUnknown_082ED84B, 6, i + 3);
|
||||
nullsub_5(gUnknown_082ED85B, 0x16, i + 3);
|
||||
}
|
||||
nullsub_13(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].unk_04, 1, 3, 4);
|
||||
nullsub_5((void*) &gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].unk_06, 6, 3);
|
||||
nullsub_5(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].playerName, 0x16, 3);
|
||||
nullsub_13(gRfuLinkStatus->partner[gUnknown_03005000.unk_c3e].serialNo, 1, 3, 4);
|
||||
nullsub_5((void*)gRfuLinkStatus->partner[gUnknown_03005000.unk_c3e].gname, 6, 3);
|
||||
nullsub_5(gRfuLinkStatus->partner[gUnknown_03005000.unk_c3e].uname, 0x16, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < gUnknown_03007890->unk_08; i++)
|
||||
for (i = 0; i < gRfuLinkStatus->findParentCount; i++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_02 != 0xFF)
|
||||
if (gRfuLinkStatus->partner[i].slot != 0xFF)
|
||||
{
|
||||
nullsub_13(gUnknown_03007890->unk_14[i].unk_04, 1, i + 3, 4);
|
||||
nullsub_13(gUnknown_03007890->unk_14[i].unk_00, 6, i + 3, 4);
|
||||
nullsub_5(gUnknown_03007890->unk_14[i].playerName, 0x16, i + 3);
|
||||
nullsub_13(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4);
|
||||
nullsub_13(gRfuLinkStatus->partner[i].id, 6, i + 3, 4);
|
||||
nullsub_5(gRfuLinkStatus->partner[i].uname, 0x16, i + 3);
|
||||
}
|
||||
}
|
||||
for (; i < 4; i++)
|
||||
|
||||
+1
-1
@@ -254,7 +254,7 @@ static bool32 sub_80771BC(void)
|
||||
{
|
||||
if (gUnknown_02022C2C == 29)
|
||||
{
|
||||
if (gUnknown_03007880[sub_800E87C(gUnknown_03004140.unk_00)]->unk_0 == 0)
|
||||
if (gRfuSlotStatusNI[sub_800E87C(gUnknown_03004140.unk_00)]->send.state == 0)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
+1
-1
@@ -4077,7 +4077,7 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3)
|
||||
StringCopy(arg3->field_58 + 0x10, gSpeciesNames[sUnionRoomTrade.playerSpecies]);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_04 == 2)
|
||||
if (gRfuLinkStatus->partner[i].serialNo == 2)
|
||||
{
|
||||
ConvertIntToDecimalStringN(arg3->field_58 + 0x20, arg2[2], STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
StringCopy(arg3->field_58 + 0x30, gSpeciesNames[arg2[1]]);
|
||||
|
||||
Reference in New Issue
Block a user