Disassemble battle/partner/goombario.c (#308)

* name battle/partner/ segments

* name battle_goombario sprites

* battle/partner/goombario data

* update
This commit is contained in:
alex 2021-07-12 14:00:45 +01:00 committed by GitHub
parent 8decbeb3ff
commit da6fd773bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
72 changed files with 1390 additions and 328 deletions

View File

@ -496,6 +496,7 @@ enum Easings {
typedef UNK_TYPE SoundID;
enum SoundIDs {
SOUND_UNKNOWN_0,
SOUND_UNKNOWN_D = 13,
SOUND_UNKNOWN_E = 14,
SOUND_UNKNOWN_43 = 67,
@ -535,6 +536,7 @@ enum SoundIDs {
SOUND_UNKNOWN_25C = 604,
SOUND_UNKNOWN_25D,
SOUND_UNKNOWN_262 = 610,
SOUND_UNKNOWN_282 = 642,
SOUND_BOW_SPOOK = 657,
SOUND_UNUSED_2C1 = 705,
SOUND_SMOKE_BURST = 717,
@ -575,7 +577,9 @@ enum SoundIDs {
SOUND_MOLE_THROW = 1000,
SOUND_UNKNOWN_3F3 = 1011,
SOUND_THROW = 1018,
SOUND_BOW_VANISH = 8206,
SOUND_UNKNOWN_2003 = 8195,
SOUND_UNKNOWN_200D = 8205,
SOUND_BOW_VANISH,
SOUND_BOW_APPEAR,
SOUND_UNKNOWN_2010,
SOUND_CANNON1 = 8214,
@ -590,8 +594,10 @@ enum SoundIDs {
SOUND_UNKNOWN_2039,
SOUND_BOMB_BLAST = 8310,
SOUND_JUMP_2081 = 8321,
SOUND_UNKNOWN_208D = 8333,
SOUND_UNKNOWN_208C = 8332,
SOUND_UNKNOWN_208D,
SOUND_UNKNOWN_208E,
SOUND_UNKNOWN_208F,
SOUND_UNKNOWN_2095 = 8341,
SOUND_SPELL_CAST1 = 8404,
SOUND_SPELL_CAST2,
@ -973,8 +979,10 @@ enum ItemIDs {
ITEM_ITEMS_ICON,
};
// TODO: use NPC_ANIM-like macro for player animations
typedef UNK_TYPE PlayerAnim;
enum PlayerAnims {
ANIM_1 = 1, // XXX
ANIM_STAND_STILL = 0x10000,
ANIM_CROUCH_STILL,
ANIM_10002,
@ -1028,6 +1036,9 @@ enum PlayerAnims {
ANIM_8001B = 0x8001B,
ANIM_8001D = 0x8001D,
ANIM_8001E,
ANIM_90004 = 0x90004,
ANIM_90005,
ANIM_90006,
};
typedef UNK_TYPE AmbientSound;

View File

@ -278,8 +278,17 @@ ApiStatus InitAnimatedModels(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_8024CE9C(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802CABE8(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802CAE50(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802A9000_430020(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802A9120_421B10(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802807D0(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802694A4(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_80269524(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_80269550(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_8026919C(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_80280818(ScriptInstance* script, s32 isInitialCall); ///< YieldTurn copy
ApiStatus func_8024ECF8(ScriptInstance* script, s32 isInitialCall);
ApiStatus func_8027D32C(ScriptInstance* script, s32 isInitialCall);
ApiStatus GetActionCommandResult(ScriptInstance* script, s32 isInitialCall);
extern Script PlayerScriptDispatcher;
extern Script PeachScriptDispatcher;

View File

@ -1,154 +0,0 @@
#define NAMESPACE battle_partner_goombario
#include "common.h"
#include "battle/battle.h"
extern Actor D_8023CDA0;
extern s32 D_8023CDA4;
extern MessageID bActorTattles[ACTOR_TYPE_COUNT];
ApiStatus func_80238000_6F10E0(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Actor* partnerActor = battleStatus->partnerActor;
f32 posX = partnerActor->currentPos.x;
f32 posY = partnerActor->currentPos.y;
f32 posZ = partnerActor->currentPos.z;
f32 goalX = partnerActor->walk.goalPos.x;
f32 goalY = partnerActor->walk.goalPos.y;
f32 goalZ = partnerActor->walk.goalPos.z;
script->varTable[0] = (dist3D(posX, posY, posZ, goalX, goalY, goalZ) * 15.0f) / 100.0f;
if (script->varTable[0] >= 21) {
script->varTable[0] = 20;
}
if (battleStatus->unk_83 != 0) {
if (script->varTable[0] < 10) {
script->varTable[0] = 10;
}
} else if (script->varTable[0] < 15) {
script->varTable[0] = 15;
}
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_802380E4_6F11C4);
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_8023817C_6F125C);
ApiStatus func_80238A20_6F1B00(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Actor* partnerActor = gBattleStatus.partnerActor;
Vec3f* pos = &partnerActor->walk.currentPos;
if (isInitialCall) {
script->functionTemp[0].s = 0;
}
if (script->functionTemp[0].s == 0) {
partnerActor->walk.currentPos.x = partnerActor->currentPos.x;
partnerActor->walk.currentPos.y = partnerActor->currentPos.y;
partnerActor->walk.currentPos.z = partnerActor->currentPos.z;
script->functionTemp[0].s = 1;
}
if (partnerActor->walk.velocity > 0.0f) {
set_animation(0x100, 0, partnerActor->walk.animJumpRise);
}
if (partnerActor->walk.velocity < 0.0f) {
set_animation(0x100, 0, partnerActor->walk.animJumpFall);
}
partnerActor->walk.currentPos.y = (partnerActor->walk.currentPos.y + partnerActor->walk.velocity);
partnerActor->walk.velocity = (partnerActor->walk.velocity - partnerActor->walk.acceleration);
add_xz_vec3f(pos, partnerActor->walk.speed, partnerActor->walk.angle);
partnerActor->currentPos.x = partnerActor->walk.currentPos.x;
partnerActor->currentPos.y = partnerActor->walk.currentPos.y;
partnerActor->currentPos.z = partnerActor->walk.currentPos.z;
if (partnerActor->currentPos.y < 10.0f) {
partnerActor->currentPos.y = 10.0f;
play_movement_dust_effects(2, partnerActor->currentPos.x, partnerActor->currentPos.y, partnerActor->currentPos.z,
partnerActor->yaw);
sfx_play_sound(SOUND_SOFT_LAND);
return ApiStatus_DONE1;
}
return ApiStatus_BLOCK;
}
ApiStatus func_80238B60_6F1C40(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
Actor* partnerActor = battleStatus->partnerActor;
Actor* targetActor = get_actor(partnerActor->targetActorID);
MessageID* tattle = &bActorTattles[targetActor->actorType];
script->varTable[0] = *tattle;
if (script->varTable[0] == NULL) {
script->varTable[0] = bActorTattles[0];
}
save_tattle_flags(targetActor->actorType);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238BCC_6F1CAC);
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238E04_6F1EE4);
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238E48_6F1F28);
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238E74_6F1F54);
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_80238EDC_6F1FBC);
ApiStatus func_8023903C_6F211C(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
battleStatus->partnerActor->isGlowing = FALSE;
battleStatus->flags1 &= ~0x40000000;
return ApiStatus_DONE2;
}
ApiStatus func_80239068_6F2148(ScriptInstance* script, s32 isInitialCall) {
Actor* partnerActor = gBattleStatus.partnerActor;
if (!(gBattleStatus.flags1 & 0x40000000)) {
partnerActor->isGlowing = FALSE;
}
script->varTable[0] = partnerActor->isGlowing;
partnerActor->isGlowing = FALSE;
gBattleStatus.flags1 &= ~0x40000000;
return ApiStatus_DONE2;
}
ApiStatus func_802390B0_6F2190(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
script->varTable[0] = battleStatus->partnerActor->isGlowing;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "battle/partner/6F10E0", func_802390C8_6F21A8);
ApiStatus func_80239190_6F2270(ScriptInstance* script, s32 isInitialCall) {
if (D_8023CDA4 == 0) {
script->varTable[0] = 36;
} else {
script->varTable[0] = 37;
}
return ApiStatus_DONE2;
}

View File

@ -1,19 +0,0 @@
#include "common.h"
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238000_707CA0);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238114_707DB4);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_802381EC_707E8C);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_802382A4_707F44);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238328_707FC8);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238388_708028);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238480_708120);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238540_7081E0);
INCLUDE_ASM(s32, "battle/partner/707CA0", func_80238E30_708AD0);

View File

@ -1,27 +0,0 @@
#include "common.h"
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238000_70BD10);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023803C_70BD4C);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238A6C_70C77C);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238B50_70C860);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238C14_70C924);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238C58_70C968);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238D48_70CA58);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80238D8C_70CA9C);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023906C_70CD7C);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80239140_70CE50);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_80239F84_70DC94);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023A19C_70DEAC);
INCLUDE_ASM(s32, "battle/partner/70BD10", func_8023A1B0_70DEC0);

View File

@ -24,7 +24,7 @@ ApiStatus func_80238014_710F04(ScriptInstance* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(ApiStatus, "battle/partner/710EF0", func_8023808C_710F7C, ScriptInstance* script, s32 isInitialCall);
INCLUDE_ASM(ApiStatus, "battle/partner/bow", func_8023808C_710F7C, ScriptInstance* script, s32 isInitialCall);
ApiStatus func_802380E4_710FD4(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;

File diff suppressed because it is too large Load Diff

View File

@ -37,7 +37,7 @@ ApiStatus func_80238000_6F5E80(ScriptInstance* script, s32 isInitialCall) {
return ApiStatus_BLOCK;
}
INCLUDE_ASM(s32, "battle/partner/6F5E80", func_80238114_6F5F94);
INCLUDE_ASM(s32, "battle/partner/kooper", func_80238114_6F5F94);
ApiStatus N(AverageTargetDizzyChance)(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;

View File

@ -0,0 +1,27 @@
#include "common.h"
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238000_70BD10);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023803C_70BD4C);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238A6C_70C77C);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238B50_70C860);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238C14_70C924);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238C58_70C968);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238D48_70CA58);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80238D8C_70CA9C);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023906C_70CD7C);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80239140_70CE50);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_80239F84_70DC94);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023A19C_70DEAC);
INCLUDE_ASM(s32, "battle/partner/lakilester", func_8023A1B0_70DEC0);

View File

@ -1,7 +1,7 @@
#include "common.h"
#include "battle/battle.h"
INCLUDE_ASM(s32, "battle/partner/6FFD80", func_80238000_6FFD80);
INCLUDE_ASM(s32, "battle/partner/parakarry", func_80238000_6FFD80);
ApiStatus func_80238C88_700A08(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
@ -60,9 +60,9 @@ ApiStatus func_80238CE0_700A60(ScriptInstance* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "battle/partner/6FFD80", func_80238E24_700BA4);
INCLUDE_ASM(s32, "battle/partner/parakarry", func_80238E24_700BA4);
INCLUDE_ASM(s32, "battle/partner/6FFD80", func_802390B4_700E34);
INCLUDE_ASM(s32, "battle/partner/parakarry", func_802390B4_700E34);
ApiStatus func_802397C8_701548(ScriptInstance* script, s32 isInitialCall) {
script->varTable[15] = ((script->varTable[0] * 100) / 2499) + 2;

View File

@ -0,0 +1,19 @@
#include "common.h"
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238000_707CA0);
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238114_707DB4);
INCLUDE_ASM(s32, "battle/partner/sushie", func_802381EC_707E8C);
INCLUDE_ASM(s32, "battle/partner/sushie", func_802382A4_707F44);
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238328_707FC8);
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238388_708028);
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238480_708120);
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238540_7081E0);
INCLUDE_ASM(s32, "battle/partner/sushie", func_80238E30_708AD0);

View File

@ -31,5 +31,5 @@ ApiStatus func_80238028_714D18(ScriptInstance* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
#else
INCLUDE_ASM(s32, "battle/partner/714CF0", func_80238028_714D18);
INCLUDE_ASM(s32, "battle/partner/twink", func_80238028_714D18);
#endif

View File

@ -2,41 +2,41 @@
#include "common.h"
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238000_703AF0);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238000_703AF0);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238370_703E60);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238370_703E60);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383C0_703EB0);
INCLUDE_ASM(s32, "battle/partner/watt", func_802383C0_703EB0);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383D4_703EC4);
INCLUDE_ASM(s32, "battle/partner/watt", func_802383D4_703EC4);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383E4_703ED4);
INCLUDE_ASM(s32, "battle/partner/watt", func_802383E4_703ED4);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802383F8_703EE8);
INCLUDE_ASM(s32, "battle/partner/watt", func_802383F8_703EE8);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238408_703EF8);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238408_703EF8);
#include "common/UnkBackgroundFunc3.inc.c"
#include "common/SetBackgroundAlpha.inc.c"
INCLUDE_ASM(s32, "battle/partner/703AF0", func_802384B0_703FA0);
INCLUDE_ASM(s32, "battle/partner/watt", func_802384B0_703FA0);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238570_704060);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238570_704060);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_8023859C_70408C);
INCLUDE_ASM(s32, "battle/partner/watt", func_8023859C_70408C);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238668_704158);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238668_704158);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238784_704274);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238784_704274);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238810_704300);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238810_704300);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238B3C_70462C);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238B3C_70462C);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238C08_7046F8);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238C08_7046F8);
INCLUDE_ASM(s32, "battle/partner/703AF0", func_80238C84_704774);
INCLUDE_ASM(s32, "battle/partner/watt", func_80238C84_704774);
ApiStatus N(AverageTargetParalyzeChance)(ScriptInstance* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;

View File

@ -172,6 +172,35 @@ world_bombette:
- celebrate
- lit_charge
- anim_11
battle_goombario:
palettes:
- default
- green
- inactive
- yellow
- burn
animations:
- still
- idle
- walk
- run
- jump
- fall
- headbonk
- charge
- headbonk_unk
- charge_unk
- pain
- burn_pain
- burn_dead
- burn_unk
- block
- talk
- celebrate
- celebrate_still
- unk_12
- sleep
- daze
goomba:
frames:
- still

View File

@ -138,6 +138,10 @@ def disassemble(bytes, midx, symbol_map={}, comments=True, romstart=0):
if comments:
out += f"// {romstart+struct['start']:X}-{romstart+struct['end']:X} (VRAM: {struct['vaddr']:X})\n"
if struct["type"] == "ASCII" or struct["type"] == "SJIS" or struct["type"] == "ConstDouble":
# rodata string hopefully inlined elsewhere
out += f"// rodata: {struct['name']}\n"
# format struct
if struct["type"].startswith("Script"):
if struct["type"] == "Script_Main":
@ -660,10 +664,6 @@ def disassemble(bytes, midx, symbol_map={}, comments=True, romstart=0):
out += f"}};\n"
afterHeader = True
elif struct["type"] == "ASCII" or struct["type"] == "SJIS":
# rodata string hopefully inlined elsewhere
bytes.read(struct["length"])
out += f"// rodata: {struct['name']}\n"
elif struct["type"].startswith("Function"):
bytes.read(struct["length"])
out += f"s32 {name}();\n"
@ -1038,7 +1038,12 @@ if __name__ == "__main__":
is_battle = False
else:
battle_area = "_".join(base.lower().split(" ")[1:])
segment_name = f"battle/{battle_area}"
if "partner" in base:
segment_name = f"battle/partners/{battle_area}"
else:
segment_name = f"battle_partner_{battle_area}"
is_battle = True
symbol_map = {}
@ -1050,13 +1055,13 @@ if __name__ == "__main__":
rom_offset = -1
for segment in splat_config["segments"]:
if isinstance(segment, dict) and segment.get("dir") == segment_name:
if isinstance(segment, dict) and (segment.get("dir") == segment_name or segment.get("name") == segment_name):
rom_offset = segment["start"]
vram = segment["vram"]
break
if rom_offset == -1:
print(f"can't find segment with dir '{segment_name}' in splat.yaml")
print(f"can't find segment with dir or name '{segment_name}' in splat.yaml")
exit(1)
if ext == ".midx":
@ -1117,6 +1122,10 @@ if __name__ == "__main__":
string_literal = '"' + string_data + '"'
symbol_map[struct["vaddr"]] = [[struct["vaddr"], string_literal]]
elif struct["type"] == "ConstDouble":
double = unpack_from(">d", romfile.read(struct["length"]), 0)[0]
double_literal = f"{double}"
symbol_map[struct["vaddr"]] = [[struct["vaddr"], double_literal]]
elif struct["type"] == "NpcGroup":
for z in range(struct["length"]//0x1F0):
npc = romfile.read(0x1F0)

View File

@ -27,7 +27,7 @@ glabel D_80283DF8
.word 0xE7000000, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFCFFFFFF, 0xFFFCF279, 0xE3000C00, 0x00080000, 0xE3000D01, 0x00000000, 0xE3000F00, 0x00000000, 0xE3001001, 0x00000000, 0xE3001201, 0x00003000, 0xE3001402, 0x00000C00, 0xE3001001, 0x00008000, 0xFD100000, D_8028F840, 0xE8000000, 0x00000000, 0xF5000100, 0x07000000, 0xE6000000, 0x00000000, 0xF0000000, 0x0703C000, 0xE7000000, 0x00000000, 0xFD48000F, D_8028F640, 0xF5480400, 0x07000000, 0xE6000000, 0x00000000, 0xF4000000, 0x0703E07C, 0xE7000000, 0x00000000, 0xF5400400, 0x00000000, 0xF2000000, 0x0007C07C, 0xD9FDFFFF, 0x00000000, 0xD9DFFFFF, 0x00000000, 0x01004008, D_80283DB8, 0x05000204, 0x00000000, 0x05000406, 0x00000000, 0xE7000000, 0x00000000, 0xDF000000, 0x00000000, 0x00000004, 0x0000000D, 0x00000001, 0x0000003C, D_80283DF8, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_80283F10
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006F10E0, 0x006F5E80, func_80238000_6F10E0, 0x802392C8, 0x00000000, 0x006F5E80, 0x006FAD10, func_80238000_6F10E0, 0x80238548, 0x00000000, 0x006FAD10, 0x006FFD80, func_80238000_6F10E0, 0x80238758, 0x00000000, 0x006FFD80, 0x00703AF0, func_80238000_6F10E0, 0x80239928, 0x0000001E, 0x006F0B30, 0x006F10E0, func_80238000_6F10E0, 0x802380E8, 0x00000000, 0x00703AF0, 0x00707CA0, func_80238000_6F10E0, func_802390B0_6F2190, 0x00000014, 0x00707CA0, 0x0070BD10, func_80238000_6F10E0, 0x80238FE8, 0x00000000, 0x0070BD10, 0x00710EF0, func_80238000_6F10E0, 0x8023A2F8, 0x0000000A, 0x00710EF0, 0x00714CF0, func_80238000_6F10E0, 0x80238418, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00714CF0, 0x00715850, func_80238000_6F10E0, 0x802381C0, 0x0000001E
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006F10E0, 0x006F5E80, func_80238000_6F5E80, 0x802392C8, 0x00000000, 0x006F5E80, 0x006FAD10, func_80238000_6F5E80, 0x80238548, 0x00000000, 0x006FAD10, 0x006FFD80, func_80238000_6F5E80, 0x80238758, 0x00000000, 0x006FFD80, 0x00703AF0, func_80238000_6F5E80, 0x80239928, 0x0000001E, 0x006F0B30, 0x006F10E0, func_80238000_6F5E80, 0x802380E8, 0x00000000, 0x00703AF0, 0x00707CA0, func_80238000_6F5E80, battle_partner_goombario_IsGlowing, 0x00000014, 0x00707CA0, 0x0070BD10, func_80238000_6F5E80, 0x80238FE8, 0x00000000, 0x0070BD10, 0x00710EF0, func_80238000_6F5E80, 0x8023A2F8, 0x0000000A, 0x00710EF0, 0x00714CF0, func_80238000_6F5E80, 0x80238418, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00714CF0, 0x00715850, func_80238000_6F5E80, 0x802381C0, 0x0000001E
glabel gBattleDmaDest
.word 0x00000000

File diff suppressed because one or more lines are too long

View File

@ -12,8 +12,8 @@ glabel func_802380E4_6F11C4
/* 6F11E0 80238100 0C09A75B */ jal get_actor
/* 6F11E4 80238104 84440428 */ lh $a0, 0x428($v0)
/* 6F11E8 80238108 24030063 */ addiu $v1, $zero, 0x63
/* 6F11EC 8023810C 3C108024 */ lui $s0, %hi(D_8023BB98_6F4C78)
/* 6F11F0 80238110 2610BB98 */ addiu $s0, $s0, %lo(D_8023BB98_6F4C78)
/* 6F11EC 8023810C 3C108024 */ lui $s0, %hi(D_8023BB98_6ECC78)
/* 6F11F0 80238110 2610BB98 */ addiu $s0, $s0, %lo(D_8023BB98_6ECC78)
/* 6F11F4 80238114 AE230084 */ sw $v1, 0x84($s1)
/* 6F11F8 80238118 8C420008 */ lw $v0, 8($v0)
/* 6F11FC 8023811C 8E030000 */ lw $v1, ($s0)

View File

@ -3370,8 +3370,9 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x6F10E0, c]
- [0x6F2290, data]
- [0x6F10E0, c, goombario]
- [0x6F2290, .data, goombario]
- [0x6F5E30, data, 6F2290] # rodata
- name: battle_partner_kooper
dir: battle/partner
type: code
@ -3379,7 +3380,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x6F5E80, c]
- [0x6F5E80, c, kooper]
- [0x6F62B0, data]
- name: battle_partner_bombette
dir: battle/partner
@ -3388,7 +3389,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x6FAD10, c]
- [0x6FAD10, c, bombette]
- [0x6FB350, data]
- name: battle_partner_parakarry
dir: battle/partner
@ -3397,7 +3398,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x6FFD80, c]
- [0x6FFD80, c, parakarry]
- [0x701590, data]
- name: battle_partner_watt
dir: battle/partner
@ -3406,7 +3407,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x703AF0, c]
- [0x703AF0, c, watt]
- [0x704A80, data]
- name: battle_partner_sushie
dir: battle/partner
@ -3415,7 +3416,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x707CA0, c]
- [0x707CA0, c, sushie]
- [0x708B70, data]
- name: battle_partner_lakilester
dir: battle/partner
@ -3424,7 +3425,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x70BD10, c]
- [0x70BD10, c, lakilester]
- [0x70DED0, data]
- name: battle_partner_bow
dir: battle/partner
@ -3433,7 +3434,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x710EF0, c]
- [0x710EF0, c, bow]
- [0x7111F0, data]
- name: battle_partner_twink
dir: battle/partner
@ -3442,7 +3443,7 @@ segments:
vram: 0x80238000
overlay: True
subsegments:
- [0x714CF0, c]
- [0x714CF0, c, twink]
- [0x714DC0, data]
- name: mushroom
dir: battle/item

View File

@ -6650,21 +6650,21 @@ func_802186E0_6DE4A0 = 0x802186E0; // type:func rom:0x6DE4A0
func_80218770_6DE530 = 0x80218770; // type:func rom:0x6DE530
func_802187F0_6DE5B0 = 0x802187F0; // type:func rom:0x6DE5B0
dup_b_area_dig_Set80218630_Var0 = 0x80218890; // type:func rom:0x6DE650
func_80238000_6F10E0 = 0x80238000; // type:func rom:0x6F10E0
battle_partner_goombario_func_80238000_6F10E0 = 0x80238000; // type:func rom:0x6F10E0
func_802380E4_6F11C4 = 0x802380E4; // type:func rom:0x6F11C4
func_8023817C_6F125C = 0x8023817C; // type:func rom:0x6F125C
func_80238A20_6F1B00 = 0x80238A20; // type:func rom:0x6F1B00
battle_partner_goombario_func_80238A20_6F1B00 = 0x80238A20; // type:func rom:0x6F1B00
func_80238B60_6F1C40 = 0x80238B60; // type:func rom:0x6F1C40
func_80238BCC_6F1CAC = 0x80238BCC; // type:func rom:0x6F1CAC
func_80238E04_6F1EE4 = 0x80238E04; // type:func rom:0x6F1EE4
func_80238E48_6F1F28 = 0x80238E48; // type:func rom:0x6F1F28
func_80238E74_6F1F54 = 0x80238E74; // type:func rom:0x6F1F54
func_80238EDC_6F1FBC = 0x80238EDC; // type:func rom:0x6F1FBC
func_8023903C_6F211C = 0x8023903C; // type:func rom:0x6F211C
func_80239068_6F2148 = 0x80239068; // type:func rom:0x6F2148
func_802390B0_6F2190 = 0x802390B0; // type:func rom:0x6F2190
battle_partner_goombario_StopGlowing = 0x8023903C; // type:func rom:0x6F211C
battle_partner_goombario_StopGlowingAndGet = 0x80239068; // type:func rom:0x6F2148
battle_partner_goombario_IsGlowing = 0x802390B0; // type:func rom:0x6F2190
func_802390C8_6F21A8 = 0x802390C8; // type:func rom:0x6F21A8
func_80239190_6F2270 = 0x80239190; // type:func rom:0x6F2270
battle_partner_goombario_func_80239190_6F2270 = 0x80239190; // type:func rom:0x6F2270
func_80238000_6F5E80 = 0x80238000; // type:func rom:0x6F5E80
func_80238114_6F5F94 = 0x80238114; // type:func rom:0x6F5F94
battle_partner_kooper_AverageTargetDizzyChance = 0x80238298; // type:func rom:0x6F6118