Skip to content

Commit 7400d75

Browse files
committed
Prevented various crashes from occuring
1 parent 676843a commit 7400d75

File tree

6 files changed

+397
-5
lines changed

6 files changed

+397
-5
lines changed

ttyd-tools/rel/include/ttyd.eu.lst

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,81 @@
214214
// 80037A1C:make_pri_table
215215
80037B48:evtGetWork
216216

217+
// npcdrv.o
218+
// 80043020:fbatPreventMarioEventChk
219+
// 80043054:npcCheckBlow
220+
// 80043194:npcCalcScore
221+
// 8004329C:fbatSandersBombTriggerOn
222+
// 800432B0:npcKoopaModeMobjBoundDeadCheck
223+
// 80043378:npcKoopaModeEncountCheck
224+
// 800434F4:npcClearDeadInfo
225+
// 80043528:npcGetBackItemEntry
226+
// 800435C4:_majinai_effect
227+
// 8004367C:_check
228+
// 800436EC:npcExecAllReglEvt
229+
// 800437AC:npcWaitAllInitEvtEnd
230+
// 80043880:npcExecAllInitEvt
231+
// 8004394C:dbGetDefData
232+
// 800439BC:npcSetLink
233+
// 800439C8:npcSetSlave
234+
// 800439DC:npcSetBtlSetupWork
235+
// 800439EC:npcGetBtlSetupWork
236+
// 800439FC:npcBlurOff
237+
// 80043AA0:npcBlurOn
238+
// 80043BBC:npcSetColor
239+
// 80043C48:npcStartForOneEvent
240+
// 80043CB0:npcStartForEvent
241+
// 80043D60:npcStopForOneEvent
242+
// 80043DC0:npcStopForEvent
243+
// 80043E68:npcSetBattleInfo
244+
// 80043F60:npcSetupBattleInfo
245+
// 800441E0:npcCheckInterrupt
246+
// 80044414:_npcHitCheckHammerAllMotion
247+
// 8004479C:_npcHitCheckSphere
248+
// 80044914:fbatHitCheck
249+
// 800466EC:fbatHitCheckAll
250+
// 80046714:fbatNpcTalkCheck
251+
// 80046774:npcGroupDead
252+
// 800467B8:_npcGroupDead
253+
// 80046B14:_npcDead
254+
// 80046B60:fbatBattleMode
255+
// 800471C4:fbatTalkMode
256+
// 80047364:fbatEncountCheck
257+
// 80047EE4:_fbatFirstAttackAnnouceDisp
258+
// 80048268:fbatSetAttackAnnounceEnable
259+
// 8004827C:fbatSetAttackAnnounce
260+
// 80048374:fbatChangeMode
261+
80048384:fbatGetPointer
262+
// 80048390:npcNearDistCheck
263+
// 80048500:npcHitCheckSide
264+
// 80048E18:npcTransRytoFaceDir
265+
// 80048E54:npcTuningRy
266+
// 80048E84:npcMoveG
267+
// 800491B4:npcCheckHitMarioSide
268+
// 8004972C:npcSetStayPose
269+
// 80049884:npcSetTalkPose
270+
// 800499DC:npcSetMarioAutoTalkPose
271+
// 80049A1C:npcNameToPtr_NoAssert
272+
// 80049AC8:npcNameToPtr
273+
// 80049B64:npcMain
274+
// 8004B508:npcDeleteGroup
275+
// 8004B54C:_npcDeleteGroup
276+
// 8004B7F0:npcDelete
277+
// 8004B910:npcGetTribe
278+
// 8004B97C:npcEntry
279+
// 8004BBCC:npcGetReactionOfLivingBody
280+
// 8004BBE4:npcReset
281+
// 8004BC58:npcInit
282+
// 8004BD24:npcDisp_blur
283+
// 8004C010:npcDisp_offscreen
284+
// 8004C31C:npcDisp_offscreen_xlu
285+
// 8004C5F4:npcDisp
286+
// 8004C8C8:npcDisp_xlu
287+
// 8004CB68:mtx_setup
288+
// 8004CE20:npcRecoveryFiledNpc
289+
// 8004CF40:npcReleaseFiledNpc
290+
// 8004D054:npcGetWorkPtr
291+
217292
// evt_sub.o
218293
// 80053830:mail_evt_gor_04_keyoff_check
219294
// 80053890:irai_mail_check

ttyd-tools/rel/include/ttyd.jp.lst

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,81 @@
212212
// 80037298:make_pri_table
213213
800373C4:evtGetWork
214214

215+
// npcdrv.o
216+
// 8004289C:fbatPreventMarioEventChk
217+
// 800428D0:npcCheckBlow
218+
// 80042A10:npcCalcScore
219+
// 80042B18:fbatSandersBombTriggerOn
220+
// 80042B2C:npcKoopaModeMobjBoundDeadCheck
221+
// 80042BF4:npcKoopaModeEncountCheck
222+
// 80042D70:npcClearDeadInfo
223+
// 80042DA4:npcGetBackItemEntry
224+
// 80042E38:_majinai_effect
225+
// 80042EF0:_check
226+
// 80042F60:npcExecAllReglEvt
227+
// 80043020:npcWaitAllInitEvtEnd
228+
// 800430F4:npcExecAllInitEvt
229+
// 800431C0:dbGetDefData
230+
// 80043230:npcSetLink
231+
// 8004323C:npcSetSlave
232+
// 80043250:npcSetBtlSetupWork
233+
// 80043260:npcGetBtlSetupWork
234+
// 80043270:npcBlurOff
235+
// 80043314:npcBlurOn
236+
// 80043430:npcSetColor
237+
// 800434BC:npcStartForOneEvent
238+
// 80043524:npcStartForEvent
239+
// 800435D4:npcStopForOneEvent
240+
// 80043634:npcStopForEvent
241+
// 800436DC:npcSetBattleInfo
242+
// 800437D4:npcSetupBattleInfo
243+
// 80043A54:npcCheckInterrupt
244+
// 80043C88:_npcHitCheckHammerAllMotion
245+
// 80044010:_npcHitCheckSphere
246+
// 80044188:fbatHitCheck
247+
// 80045F60:fbatHitCheckAll
248+
// 80045F88:fbatNpcTalkCheck
249+
// 80045FE8:npcGroupDead
250+
// 8004602C:_npcGroupDead
251+
// 80046388:_npcDead
252+
// 800463D4:fbatBattleMode
253+
// 80046A30:fbatTalkMode
254+
// 80046BD0:fbatEncountCheck
255+
// 80047750:_fbatFirstAttackAnnouceDisp
256+
// 8004791C:fbatSetAttackAnnounceEnable
257+
// 80047930:fbatSetAttackAnnounce
258+
// 80047A28:fbatChangeMode
259+
80047A38:fbatGetPointer
260+
// 80047A44:npcNearDistCheck
261+
// 80047BB4:npcHitCheckSide
262+
// 800484CC:npcTransRytoFaceDir
263+
// 80048508:npcTuningRy
264+
// 80048538:npcMoveG
265+
// 80048760:npcCheckHitMarioSide
266+
// 80048CD8:npcSetStayPose
267+
// 80048E30:npcSetTalkPose
268+
// 80048F88:npcSetMarioAutoTalkPose
269+
// 80048FC8:npcNameToPtr_NoAssert
270+
// 80049074:npcNameToPtr
271+
// 80049110:npcMain
272+
// 8004AA0C:npcDeleteGroup
273+
// 8004AA50:_npcDeleteGroup
274+
// 8004ACF4:npcDelete
275+
// 8004AE14:npcGetTribe
276+
// 8004AE80:npcEntry
277+
// 8004B0D0:npcGetReactionOfLivingBody
278+
// 8004B0E8:npcReset
279+
// 8004B15C:npcInit
280+
// 8004B228:npcDisp_blur
281+
// 8004B514:npcDisp_offscreen
282+
// 8004B820:npcDisp_offscreen_xlu
283+
// 8004BAF8:npcDisp
284+
// 8004BDCC:npcDisp_xlu
285+
// 8004C06C:mtx_setup
286+
// 8004C324:npcRecoveryFiledNpc
287+
// 8004C444:npcReleaseFiledNpc
288+
// 8004C558:npcGetWorkPtr
289+
215290
// evt_sub.o
216291
// 80052AFC:mail_evt_gor_04_keyoff_check
217292
// 80052B5C:irai_mail_check

ttyd-tools/rel/include/ttyd.us.lst

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,81 @@
214214
// 80037934:make_pri_table
215215
80037A60:evtGetWork
216216

217+
// npcdrv.o
218+
// 80042F38:fbatPreventMarioEventChk
219+
// 80042F6C:npcCheckBlow
220+
// 800430AC:npcCalcScore
221+
// 800431B4:fbatSandersBombTriggerOn
222+
// 800431C8:npcKoopaModeMobjBoundDeadCheck
223+
// 80043290:npcKoopaModeEncountCheck
224+
// 8004340C:npcClearDeadInfo
225+
// 80043440:npcGetBackItemEntry
226+
// 800434DC:_majinai_effect
227+
// 80043594:_check
228+
// 80043604:npcExecAllReglEvt
229+
// 800436C4:npcWaitAllInitEvtEnd
230+
// 80043798:npcExecAllInitEvt
231+
// 80043864:dbGetDefData
232+
// 800438D4:npcSetLink
233+
// 800438E0:npcSetSlave
234+
// 800438F4:npcSetBtlSetupWork
235+
// 80043904:npcGetBtlSetupWork
236+
// 80043914:npcBlurOff
237+
// 800439B8:npcBlurOn
238+
// 80043AD4:npcSetColor
239+
// 80043B60:npcStartForOneEvent
240+
// 80043BC8:npcStartForEvent
241+
// 80043C78:npcStopForOneEvent
242+
// 80043CD8:npcStopForEvent
243+
// 80043D80:npcSetBattleInfo
244+
// 80043E78:npcSetupBattleInfo
245+
// 800440F8:npcCheckInterrupt
246+
// 8004432C:_npcHitCheckHammerAllMotion
247+
// 800446B4:_npcHitCheckSphere
248+
// 8004482C:fbatHitCheck
249+
// 80046604:fbatHitCheckAll
250+
// 8004662C:fbatNpcTalkCheck
251+
// 8004668C:npcGroupDead
252+
// 800466D0:_npcGroupDead
253+
// 80046A2C:_npcDead
254+
// 80046A78:fbatBattleMode
255+
// 800470DC:fbatTalkMode
256+
// 8004727C:fbatEncountCheck
257+
// 80047DFC:_fbatFirstAttackAnnouceDisp
258+
// 80048180:fbatSetAttackAnnounceEnable
259+
// 80048194:fbatSetAttackAnnounce
260+
// 8004828C:fbatChangeMode
261+
8004829C:fbatGetPointer
262+
// 800482A8:npcNearDistCheck
263+
// 80048418:npcHitCheckSide
264+
// 80048D30:npcTransRytoFaceDir
265+
// 80048D6C:npcTuningRy
266+
// 80048D9C:npcMoveG
267+
// 800490CC:npcCheckHitMarioSide
268+
// 80049644:npcSetStayPose
269+
// 8004979C:npcSetTalkPose
270+
// 800498F4:npcSetMarioAutoTalkPose
271+
// 80049934:npcNameToPtr_NoAssert
272+
// 800499E0:npcNameToPtr
273+
// 80049A7C:npcMain
274+
// 8004B420:npcDeleteGroup
275+
// 8004B464:_npcDeleteGroup
276+
// 8004B708:npcDelete
277+
// 8004B828:npcGetTribe
278+
// 8004B894:npcEntry
279+
// 8004BAE4:npcGetReactionOfLivingBody
280+
// 8004BAFC:npcReset
281+
// 8004BB70:npcInit
282+
// 8004BC3C:npcDisp_blur
283+
// 8004BF28:npcDisp_offscreen
284+
// 8004C234:npcDisp_offscreen_xlu
285+
// 8004C50C:npcDisp
286+
// 8004C7E0:npcDisp_xlu
287+
// 8004CA80:mtx_setup
288+
// 8004CD38:npcRecoveryFiledNpc
289+
// 8004CE58:npcReleaseFiledNpc
290+
// 8004CF6C:npcGetWorkPtr
291+
217292
// evt_sub.o
218293
// 80053764:mail_evt_gor_04_keyoff_check
219294
// 800537C4:irai_mail_check
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#pragma once
2+
3+
#include <cstdint>
4+
5+
namespace ttyd::npcdrv {
6+
7+
extern "C" {
8+
9+
// fbatPreventMarioEventChk
10+
// npcCheckBlow
11+
// npcCalcScore
12+
// fbatSandersBombTriggerOn
13+
// npcKoopaModeMobjBoundDeadCheck
14+
// npcKoopaModeEncountCheck
15+
// npcClearDeadInfo
16+
// npcGetBackItemEntry
17+
// _majinai_effect
18+
// _check
19+
// npcExecAllReglEvt
20+
// npcWaitAllInitEvtEnd
21+
// npcExecAllInitEvt
22+
// dbGetDefData
23+
// npcSetLink
24+
// npcSetSlave
25+
// npcSetBtlSetupWork
26+
// npcGetBtlSetupWork
27+
// npcBlurOff
28+
// npcBlurOn
29+
// npcSetColor
30+
// npcStartForOneEvent
31+
// npcStartForEvent
32+
// npcStopForOneEvent
33+
// npcStopForEvent
34+
// npcSetBattleInfo
35+
// npcSetupBattleInfo
36+
// npcCheckInterrupt
37+
// _npcHitCheckHammerAllMotion
38+
// _npcHitCheckSphere
39+
// fbatHitCheck
40+
// fbatHitCheckAll
41+
// fbatNpcTalkCheck
42+
// npcGroupDead
43+
// _npcGroupDead
44+
// _npcDead
45+
// fbatBattleMode
46+
// fbatTalkMode
47+
// fbatEncountCheck
48+
// _fbatFirstAttackAnnouceDisp
49+
// fbatSetAttackAnnounceEnable
50+
// fbatSetAttackAnnounce
51+
// fbatChangeMode
52+
void *fbatGetPointer();
53+
// npcNearDistCheck
54+
// npcHitCheckSide
55+
// npcTransRytoFaceDir
56+
// npcTuningRy
57+
// npcMoveG
58+
// npcCheckHitMarioSide
59+
// npcSetStayPose
60+
// npcSetTalkPose
61+
// npcSetMarioAutoTalkPose
62+
// npcNameToPtr_NoAssert
63+
// npcNameToPtr
64+
// npcMain
65+
// npcDeleteGroup
66+
// _npcDeleteGroup
67+
// npcDelete
68+
// npcGetTribe
69+
// npcEntry
70+
// npcGetReactionOfLivingBody
71+
// npcReset
72+
// npcInit
73+
// npcDisp_blur
74+
// npcDisp_offscreen
75+
// npcDisp_offscreen_xlu
76+
// npcDisp
77+
// npcDisp_xlu
78+
// mtx_setup
79+
// npcRecoveryFiledNpc
80+
// npcReleaseFiledNpc
81+
// npcGetWorkPtr
82+
83+
}
84+
85+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.global StartFixEvtMapBlendSetFlagCrash
2+
.global BranchBackFixEvtMapBlendSetFlagCrash
3+
4+
StartFixEvtMapBlendSetFlagCrash:
5+
# r3 already contains partnerPtr
6+
bl fixEvtMapBlendSetFlagCrash
7+
8+
# Restore overwritten instruction
9+
cmpwi %r31,1
10+
11+
BranchBackFixEvtMapBlendSetFlagCrash:
12+
b 0

0 commit comments

Comments
 (0)