mirror of
https://github.com/projectPiki/pikmin2.git
synced 2025-02-27 00:55:32 +00:00
Try kando_panic_f (WIP UNFINISHED, DOES NOT COMPILE!)
This commit is contained in:
parent
82493ddda5
commit
c7853ec7e0
@ -42583,8 +42583,8 @@ gStrSystem_MemoryAllocError:
|
||||
.4byte 0x46726565
|
||||
.4byte 0x203D2564
|
||||
.4byte 0x0A000000
|
||||
.global lbl_8049981C
|
||||
lbl_8049981C:
|
||||
.global gStrSystem_InOnLine
|
||||
gStrSystem_InOnLine:
|
||||
.4byte 0x25732069
|
||||
.4byte 0x6E202225
|
||||
.4byte 0x7322206F
|
||||
|
@ -1,112 +1,6 @@
|
||||
.include "macros.inc"
|
||||
|
||||
.section .text, "ax" # 0x800056C0 - 0x80472F00
|
||||
|
||||
.global kando_panic_f__FbPCciPCce
|
||||
kando_panic_f__FbPCciPCce:
|
||||
/* 80421F64 0041EEA4 94 21 FB A0 */ stwu r1, -0x460(r1)
|
||||
/* 80421F68 0041EEA8 7C 08 02 A6 */ mflr r0
|
||||
/* 80421F6C 0041EEAC 90 01 04 64 */ stw r0, 0x464(r1)
|
||||
/* 80421F70 0041EEB0 BF 41 04 48 */ stmw r26, 0x448(r1)
|
||||
/* 80421F74 0041EEB4 7C 9D 23 78 */ mr r29, r4
|
||||
/* 80421F78 0041EEB8 7C BE 2B 78 */ mr r30, r5
|
||||
/* 80421F7C 0041EEBC 40 86 00 24 */ bne cr1, lbl_80421FA0
|
||||
/* 80421F80 0041EEC0 D8 21 00 28 */ stfd f1, 0x28(r1)
|
||||
/* 80421F84 0041EEC4 D8 41 00 30 */ stfd f2, 0x30(r1)
|
||||
/* 80421F88 0041EEC8 D8 61 00 38 */ stfd f3, 0x38(r1)
|
||||
/* 80421F8C 0041EECC D8 81 00 40 */ stfd f4, 0x40(r1)
|
||||
/* 80421F90 0041EED0 D8 A1 00 48 */ stfd f5, 0x48(r1)
|
||||
/* 80421F94 0041EED4 D8 C1 00 50 */ stfd f6, 0x50(r1)
|
||||
/* 80421F98 0041EED8 D8 E1 00 58 */ stfd f7, 0x58(r1)
|
||||
/* 80421F9C 0041EEDC D9 01 00 60 */ stfd f8, 0x60(r1)
|
||||
lbl_80421FA0:
|
||||
/* 80421FA0 0041EEE0 39 61 04 68 */ addi r11, r1, 0x468
|
||||
/* 80421FA4 0041EEE4 38 01 00 08 */ addi r0, r1, 8
|
||||
/* 80421FA8 0041EEE8 3D 80 04 00 */ lis r12, 0x400
|
||||
/* 80421FAC 0041EEEC 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 80421FB0 0041EEF0 3C 60 80 42 */ lis r3, preUserCallback__FUsP9OSContextUlUl@ha
|
||||
/* 80421FB4 0041EEF4 83 ED 88 A4 */ lwz r31, sConsole__12JUTException@sda21(r13)
|
||||
/* 80421FB8 0041EEF8 90 81 00 0C */ stw r4, 0xc(r1)
|
||||
/* 80421FBC 0041EEFC 3B 83 20 EC */ addi r28, r3, preUserCallback__FUsP9OSContextUlUl@l
|
||||
/* 80421FC0 0041EF00 3B 61 00 68 */ addi r27, r1, 0x68
|
||||
/* 80421FC4 0041EF04 83 4D 88 90 */ lwz r26, sErrorManager__12JUTException@sda21(r13)
|
||||
/* 80421FC8 0041EF08 90 A1 00 10 */ stw r5, 0x10(r1)
|
||||
/* 80421FCC 0041EF0C 38 61 00 74 */ addi r3, r1, 0x74
|
||||
/* 80421FD0 0041EF10 7C C5 33 78 */ mr r5, r6
|
||||
/* 80421FD4 0041EF14 38 80 00 FF */ li r4, 0xff
|
||||
/* 80421FD8 0041EF18 90 C1 00 14 */ stw r6, 0x14(r1)
|
||||
/* 80421FDC 0041EF1C 7F 66 DB 78 */ mr r6, r27
|
||||
/* 80421FE0 0041EF20 90 E1 00 18 */ stw r7, 0x18(r1)
|
||||
/* 80421FE4 0041EF24 91 01 00 1C */ stw r8, 0x1c(r1)
|
||||
/* 80421FE8 0041EF28 91 21 00 20 */ stw r9, 0x20(r1)
|
||||
/* 80421FEC 0041EF2C 91 41 00 24 */ stw r10, 0x24(r1)
|
||||
/* 80421FF0 0041EF30 91 81 00 68 */ stw r12, 0x68(r1)
|
||||
/* 80421FF4 0041EF34 91 61 00 6C */ stw r11, 0x6c(r1)
|
||||
/* 80421FF8 0041EF38 90 01 00 70 */ stw r0, 0x70(r1)
|
||||
/* 80421FFC 0041EF3C 4B CA 56 69 */ bl vsnprintf
|
||||
/* 80422000 0041EF40 28 1A 00 00 */ cmplwi r26, 0
|
||||
/* 80422004 0041EF44 40 82 00 18 */ bne lbl_8042201C
|
||||
/* 80422008 0041EF48 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8042200C 0041EF4C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80422010 0041EF50 38 A1 00 74 */ addi r5, r1, 0x74
|
||||
/* 80422014 0041EF54 4C C6 31 82 */ crclr 6
|
||||
/* 80422018 0041EF58 4B CC B7 55 */ bl OSPanic
|
||||
lbl_8042201C:
|
||||
/* 8042201C 0041EF5C 80 8D 89 D0 */ lwz r4, mainThread__9JFWSystem@sda21(r13)
|
||||
/* 80422020 0041EF60 38 61 01 78 */ addi r3, r1, 0x178
|
||||
/* 80422024 0041EF64 38 A0 02 C8 */ li r5, 0x2c8
|
||||
/* 80422028 0041EF68 83 64 00 2C */ lwz r27, 0x2c(r4)
|
||||
/* 8042202C 0041EF6C 7F 64 DB 78 */ mr r4, r27
|
||||
/* 80422030 0041EF70 4B BE 31 6D */ bl memcpy
|
||||
/* 80422034 0041EF74 80 01 01 7C */ lwz r0, 0x17c(r1)
|
||||
/* 80422038 0041EF78 3C 80 80 4F */ lis r4, exCallbackObject_1@ha
|
||||
/* 8042203C 0041EF7C 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 80422040 0041EF80 38 60 00 FF */ li r3, 0xff
|
||||
/* 80422044 0041EF84 90 1A 00 A0 */ stw r0, 0xa0(r26)
|
||||
/* 80422048 0041EF88 38 00 00 00 */ li r0, 0
|
||||
/* 8042204C 0041EF8C 97 84 7C 20 */ stwu r28, exCallbackObject_1@l(r4)
|
||||
/* 80422050 0041EF90 B0 64 00 04 */ sth r3, 4(r4)
|
||||
/* 80422054 0041EF94 93 64 00 08 */ stw r27, 8(r4)
|
||||
/* 80422058 0041EF98 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8042205C 0041EF9C 90 04 00 10 */ stw r0, 0x10(r4)
|
||||
/* 80422060 0041EFA0 41 82 00 14 */ beq lbl_80422074
|
||||
/* 80422064 0041EFA4 41 82 00 2C */ beq lbl_80422090
|
||||
/* 80422068 0041EFA8 80 1F 00 58 */ lwz r0, 0x58(r31)
|
||||
/* 8042206C 0041EFAC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
|
||||
/* 80422070 0041EFB0 40 82 00 20 */ bne lbl_80422090
|
||||
lbl_80422074:
|
||||
/* 80422074 0041EFB4 3C 60 80 4A */ lis r3, lbl_8049981C@ha
|
||||
/* 80422078 0041EFB8 7F A5 EB 78 */ mr r5, r29
|
||||
/* 8042207C 0041EFBC 38 63 98 1C */ addi r3, r3, lbl_8049981C@l
|
||||
/* 80422080 0041EFC0 7F C6 F3 78 */ mr r6, r30
|
||||
/* 80422084 0041EFC4 38 81 00 74 */ addi r4, r1, 0x74
|
||||
/* 80422088 0041EFC8 4C C6 31 82 */ crclr 6
|
||||
/* 8042208C 0041EFCC 4B CC B6 61 */ bl OSReport
|
||||
lbl_80422090:
|
||||
/* 80422090 0041EFD0 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 80422094 0041EFD4 41 82 00 24 */ beq lbl_804220B8
|
||||
/* 80422098 0041EFD8 3C 80 80 4A */ lis r4, lbl_80499834@ha
|
||||
/* 8042209C 0041EFDC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 804220A0 0041EFE0 38 84 98 34 */ addi r4, r4, lbl_80499834@l
|
||||
/* 804220A4 0041EFE4 7F A6 EB 78 */ mr r6, r29
|
||||
/* 804220A8 0041EFE8 7F C7 F3 78 */ mr r7, r30
|
||||
/* 804220AC 0041EFEC 38 A1 00 74 */ addi r5, r1, 0x74
|
||||
/* 804220B0 0041EFF0 4C C6 31 82 */ crclr 6
|
||||
/* 804220B4 0041EFF4 4B C0 68 ED */ bl print_f__10JUTConsoleFPCce
|
||||
lbl_804220B8:
|
||||
/* 804220B8 0041EFF8 3C 60 80 4A */ lis r3, sMessageQueue__12JUTException@ha
|
||||
/* 804220BC 0041EFFC 3C 80 80 4F */ lis r4, exCallbackObject_1@ha
|
||||
/* 804220C0 0041F000 38 63 03 A8 */ addi r3, r3, sMessageQueue__12JUTException@l
|
||||
/* 804220C4 0041F004 38 A0 00 01 */ li r5, 1
|
||||
/* 804220C8 0041F008 38 84 7C 20 */ addi r4, r4, exCallbackObject_1@l
|
||||
/* 804220CC 0041F00C 4B CC D4 51 */ bl OSSendMessage
|
||||
/* 804220D0 0041F010 4B CC F8 F5 */ bl OSGetCurrentThread
|
||||
/* 804220D4 0041F014 4B CD 06 A9 */ bl OSSuspendThread
|
||||
/* 804220D8 0041F018 BB 41 04 48 */ lmw r26, 0x448(r1)
|
||||
/* 804220DC 0041F01C 80 01 04 64 */ lwz r0, 0x464(r1)
|
||||
/* 804220E0 0041F020 7C 08 03 A6 */ mtlr r0
|
||||
/* 804220E4 0041F024 38 21 04 60 */ addi r1, r1, 0x460
|
||||
/* 804220E8 0041F028 4E 80 00 20 */ blr
|
||||
.section .text, "ax" # 0x800056C0 - 0x80472F00
|
||||
|
||||
.global preUserCallback__FUsP9OSContextUlUl
|
||||
preUserCallback__FUsP9OSContextUlUl:
|
||||
|
@ -3,7 +3,11 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
void Pikmin2DefaultMemoryErrorRoutine(void*, unsigned long, int);
|
||||
void Pikmin2DefaultMemoryErrorRoutine(void*, u32, s32);
|
||||
void kando_panic_f(bool, const char*, s32, const char*, ...);
|
||||
extern "C" {
|
||||
void preUserCallback(unsigned short, OSContext*, unsigned long, unsigned long);
|
||||
}
|
||||
|
||||
struct System {
|
||||
// static void assert_fragmentation(char*);
|
||||
|
@ -24,6 +24,9 @@ public:
|
||||
void write(Stream&); // done
|
||||
void sprint(char*); // done
|
||||
void print(); // done
|
||||
|
||||
static ID32 eof;
|
||||
|
||||
private:
|
||||
void updateString(); // done
|
||||
};
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef _TYPES_H
|
||||
#define _TYPES_H
|
||||
|
||||
// r2 is 8051e360
|
||||
// r13 is 8051C680
|
||||
|
||||
typedef signed char s8;
|
||||
typedef signed short s16;
|
||||
typedef signed long s32;
|
||||
@ -29,45 +32,53 @@ typedef int BOOL;
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#endif // ifndef TRUE
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
#endif // ifndef FALSE
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void*)0)
|
||||
#endif
|
||||
#endif // ifndef NULL
|
||||
|
||||
#ifndef nullptr
|
||||
#define nullptr 0
|
||||
#endif
|
||||
|
||||
// ALL C++ FUNCTIONS AND DEFINITIONS
|
||||
#ifdef __cplusplus
|
||||
struct JKRHeap {
|
||||
u32 getFreeSize();
|
||||
u32 getTotalFreeSize();
|
||||
};
|
||||
|
||||
struct JUTException {
|
||||
static void panic_f(char const*, int, char const*, ...);
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // ifndef nullptr
|
||||
|
||||
// ALL C FUNCTIONS AND DEFINITIONS
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#endif // ifdef __cplusplus
|
||||
|
||||
void OSReport(const char*, ...);
|
||||
void OSPanic(const char*, int, const char*, ...);
|
||||
#define OSError(...) OSPanic(__FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
__declspec(section ".init") void* memcpy(void*, const void*, size_t);
|
||||
__declspec(section ".init") void __fill_mem(void*, int, size_t);
|
||||
__declspec(section ".init") void* memset(void*, int, size_t);
|
||||
|
||||
// TODO
|
||||
typedef struct OSContext {
|
||||
u8 filler[708];
|
||||
} OSContext;
|
||||
|
||||
typedef struct OSThread {
|
||||
u8 filler[708];
|
||||
u8 filler2[68];
|
||||
} OSThread;
|
||||
|
||||
OSThread* OSGetCurrentThread(void);
|
||||
s32 OSSuspendThread(OSThread* thread);
|
||||
|
||||
typedef struct OSMessageQueue {
|
||||
u8 filler[32];
|
||||
} OSMessageQueue;
|
||||
typedef void* OSMessage;
|
||||
|
||||
BOOL OSSendMessage(OSMessageQueue* mq, OSMessage msg, s32 flags);
|
||||
|
||||
typedef struct div_t {
|
||||
int quot;
|
||||
int rem;
|
||||
@ -94,6 +105,27 @@ int vsnprintf(char*, size_t, const char*, va_list);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
#endif // ifdef __cplusplus
|
||||
|
||||
// ALL C++ FUNCTIONS AND DEFINITIONS
|
||||
#ifdef __cplusplus
|
||||
struct JKRHeap {
|
||||
u32 getFreeSize();
|
||||
u32 getTotalFreeSize();
|
||||
};
|
||||
|
||||
struct JUTException {
|
||||
static void panic_f(char const*, int, char const*, ...);
|
||||
|
||||
static u32* sConsole;
|
||||
static u32* sErrorManager;
|
||||
static OSMessageQueue* sMessageQueue;
|
||||
};
|
||||
|
||||
struct JFWSystem {
|
||||
static u32* mainThread;
|
||||
};
|
||||
|
||||
#endif // ifdef __cplusplus
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user