link and update must stuff from MSL_Common

This commit is contained in:
SwareJonge 2023-05-03 04:33:34 +02:00
parent ea2dbcf745
commit d654272182
39 changed files with 271 additions and 2012 deletions

View File

@ -341,15 +341,17 @@ JSYSTEM_RELEASE = CFLAGS + [ "-opt level=4, schedule"]
MSL_C = [
"-opt level=0, peephole, schedule, nospace",
"-use_lmw_stmw on",
"-inline off, deferred",
"-sym on",
"-enum int",
"-rostr",
"-str pool",
"-fp hard",
"-fp_contract on",
"-use_lmw_stmw on",
"-Cpp_exceptions off",
"-RTTI off",
"-common off",
"-str pool",
"-rostr",
"-inline off, deferred"
"-common off"
]
BASE_GAME_CFLAGS = CFLAGS + [ "-O4,s" ]

View File

@ -287,10 +287,70 @@ libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/ctype.c:
.text: [0x80108dec, 0x80108ef0]
.data: [0x80392f60, 0x80393260]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/direct_io.c:
.text: [0x80108ef0, 0x8010928c]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/errno.c:
.sbss: [0x804161b0, 0x804161b8]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/file_io.c:
.text: [0x8010928c, 0x8010954c]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/FILE_POS.C:
.text: [0x8010954c, 0x801098a0]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/locale.c:
.rodata: [0x8036b238, 0x8036b240]
.data: [0x80393260, 0x80393298]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/mbstring.c:
.text: [0x801098a0, 0x80109cb4]
.sdata2: [0x80418490, 0x80418498]
#libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/mem.c:
#.text: [0x80109cb4, 0x80109eec]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/mem_funcs.c:
.text: [0x80109eec, 0x8010a1fc]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/misc_io.c:
.text: [0x8010a1fc, 0x8010a20c]
#libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/printf.c:
#.text: [0x8010a20c, 0x8010c3f0]
#.rodata: [0x8036b240, 0x8036b268]
#.data: [0x80393298, 0x803934c8]
#.sdata: [0x80414560, 0x80414568]
#.sdata2: [0x80418498, 0x804184a0]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/scanf.c:
.text: [0x8010c3f0, 0x8010d4f4]
.rodata: [0x8036b268, 0x8036b290]
.data: [0x803934c8, 0x80393598]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/signal.c:
.text: [0x8010d4f4, 0x8010d5dc]
.bss: [0x803c65f0, 0x803c6608]
#libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/string.c:
#.text: [0x8010d5dc, 0x8010da90]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/strtold.c:
.text: [0x8010da90, 0x8010f09c]
.rodata: [0x8036b290, 0x8036b2e8]
.sdata2: [0x804184a0, 0x804184b8]
#libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/strtoul.c:
#.text: [0x8010f09c, 0x8010f9e4]
#.data: [0x80393598, 0x80393620]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/float.c:
.sdata: [0x80414568, 0x80414598]
libs/PowerPC_EABI_Support/src/MSL_C/MSL_Common/wchar_io.c:
.text: [0x8010f9e4, 0x8010fa94]
libs/PowerPC_EABI_Support/src/Runtime/__mem.c:
.init: [0x80003458, 0x80003590]

View File

@ -3,6 +3,9 @@ This file contains some documtation about the compiler flags that are used for e
## General Flags
`-lang=c++ -fp fmadd -fp_contract on -Cpp_exceptions off -rostr -RTTI off -char signed -enum int -use_lmw_stmw on -common on -inline auto`
## MSL C Flags
`-opt level=0, peephole, schedule, nospace -use_lmw_stmw on -fp hard -fp_contract on -Cpp_exceptions off -RTTI off -common off -str pool -rostr -inline off, deferred -enum int`
## Debug
### JSystem
General Flags + `-O4,s` or `-O4,p` varies per subLibarary

View File

@ -8,10 +8,10 @@
extern "C" {
#endif // ifdef __cplusplus
int fseek(FILE* stream, u32 offset, int whence);
int _fseek(FILE* stream, u32 offset, int whence);
int ftell(FILE* stream);
int _ftell(FILE* stream);
int fseek(FILE *stream, fpos_t offset, int whence);
int _fseek(FILE *stream, fpos_t offset, int whence);
int ftell(FILE *stream);
int _ftell(FILE *stream);
#ifdef __cplusplus
};

View File

@ -13,7 +13,7 @@ __declspec(weak) int isalpha(int __c);
__declspec(weak) BOOL isdigit(int __c);
__declspec(weak) int isspace(int __c);
__declspec(weak) int isupper(int __c);
__declspec(weak) BOOL isxdigit(unsigned char __c);
__declspec(weak) int isxdigit(int __c);
__declspec(weak) int tolower(int __c);
__declspec(weak) int toupper(int __c);

View File

@ -15,7 +15,6 @@ extern "C" {
#endif
#define FABS(x) (float)__fabs(x)
#define fabs(x) __fabs(x)
// #define __frsqrtes opword
#define SQUARE(v) ((v) * (v))
@ -38,6 +37,8 @@ extern int __double_huge[];
inline long double fabsl(long double x) { return __fabs((double)x); }
inline double fabs(double x) { return __fabs(x); }
double acos(double);
double asin(double);
double atan(double);

View File

@ -21,6 +21,8 @@ char* strstr(const char*, const char*);
char* strrchr(const char* str, int chr);
size_t strlen(const char*);
int __msl_strnicmp(const char *s1, const char *s2, int n);
#ifdef __cplusplus
}
#endif

View File

@ -13,27 +13,6 @@
#define SEEK_CUR (1)
#define SEEK_END (2)
/*
* --INFO--
* Address: 800C6BE0
* Size: 0000E4
*/
int ftell(FILE* stream)
{
int retval;
__begin_critical_region(stdin_access);
retval = (long)_ftell(stream);
__end_critical_region(stdin_access);
return retval;
}
/*
* --INFO--
* Address: ........
* Size: 0000AC
*/
int _ftell(FILE* file)
{
int charsInUndoBuffer = 0;
@ -55,34 +34,36 @@ int _ftell(FILE* file)
position -= charsInUndoBuffer;
}
if (!file->mMode.binary_io) {
// got added in later it seems?
/*if (!file->mMode.binary_io) {
int n = file->mBufferPtr - file->mBuffer - charsInUndoBuffer;
u8* p = (u8*)file->mBuffer;
while (n--)
if (*p++ == '\n')
position++;
}
}*/
return (position);
}
/*
* --INFO--
* Address: 800C6970
* Size: 000270
*/
int _fseek(FILE* file, u32 offset, int whence)
int ftell(FILE* stream)
{
int bufferCode;
int pos;
int adjust;
u32 state;
int buffLen;
int retval;
char* ptr;
__begin_critical_region(stdin_access);
retval = (long)_ftell(stream);
__end_critical_region(stdin_access);
return retval;
}
if (file->mMode.file_kind != 1 || file->mState.error != 0) {
int _fseek(FILE *file, fpos_t offset, int whence)
{
fpos_t pos;
__pos_proc func;
unsigned char fileKind = file->mMode.file_kind;
if (fileKind != 1 || file->mState.error != 0) {
errno = 0x28;
return -1;
}
@ -98,37 +79,11 @@ int _fseek(FILE* file, u32 offset, int whence)
if (whence == SEEK_CUR) {
whence = SEEK_SET;
adjust = 0;
if ((file->mMode.file_kind != 1 && file->mMode.file_kind != 2) || file->mState.error != 0) {
errno = 0x28;
pos = -1;
} else {
state = file->mState.io_state;
if (state == 0) {
pos = file->mPosition;
} else {
pos = file->mBufferPosition;
ptr = file->mBuffer;
buffLen = (file->mBufferPtr - ptr);
pos += buffLen;
if ((state >= 3)) {
adjust = (state - 2);
pos -= adjust;
}
if (file->mMode.binary_io == 0) {
int i;
for (i = (buffLen - adjust); i != 0; i--) {
u8 c = *ptr;
ptr++;
if (c == 10) {
pos++;
}
}
}
}
}
offset += pos;
if ((pos = _ftell(file)) < 0)
pos = 0;
offset += pos;
}
if ((whence != SEEK_END) && (file->mMode.io_mode != 3) && (file->mState.io_state == 2 || file->mState.io_state == 3)) {
@ -144,12 +99,16 @@ int _fseek(FILE* file, u32 offset, int whence)
}
if (file->mState.io_state == 0) {
if (file->positionFunc != nullptr && (int)file->positionFunc(file->mHandle, &offset, whence, file->ref_con)) {
file->mState.error = 1;
if ((func = file->positionFunc) != nullptr && func(file->mHandle, &offset, whence, file->ref_con) != 0)
{
file->mState.error = 1;
file->mBufferLength = 0;
errno = 0x28;
errno = 0x28;
return -1;
} else {
}
else
{
file->mState.eof = 0;
file->mPosition = offset;
file->mBufferLength = 0;
@ -159,16 +118,13 @@ int _fseek(FILE* file, u32 offset, int whence)
return 0;
}
/*
* --INFO--
* Address: 800C6904
* Size: 00006C
*/
int fseek(FILE* stream, u32 offset, int whence)
int fseek(FILE *stream, fpos_t offset, int whence)
{
fpos_t start;
int code;
start = offset;
__begin_critical_region(stdin_access);
code = _fseek(stream, offset, whence); // 0 if successful, -1 if error
code = _fseek(stream, start, whence); // 0 if successful, -1 if error
__end_critical_region(stdin_access);
return code;
}

View File

@ -119,31 +119,16 @@ static const unsigned long fix_pool_sizes[] = { 4, 12, 20, 36, 52, 68 };
#define Block_empty(ths) (_sb = (SubBlock*)((char*)(ths) + 16)), SubBlock_is_free(_sb) && SubBlock_size(_sb) == Block_size((ths)) - 24
/*
* --INFO--
* Address: ........
* Size: 000238
*/
void Block_construct(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0001E4
*/
void Block_subBlock(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0001F0
*/
void Block_link(Block* ths, SubBlock* sb)
{
SubBlock** st;
@ -167,51 +152,26 @@ void Block_link(Block* ths, SubBlock* sb)
ths->max_size = SubBlock_size(*st);
}
/*
* --INFO--
* Address: ........
* Size: 000074
*/
void Block_unlink(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000284
*/
void Block_report(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000050
*/
void SubBlock_construct(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000E0
*/
void SubBlock_split(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000098
*/
static SubBlock* SubBlock_merge_prev(SubBlock* ths, SubBlock** start)
{
unsigned long prevsz;
@ -233,11 +193,6 @@ static SubBlock* SubBlock_merge_prev(SubBlock* ths, SubBlock** start)
return ths;
}
/*
* --INFO--
* Address: ........
* Size: 0000B8
*/
static void SubBlock_merge_next(SubBlock* pBlock, SubBlock** pStart)
{
SubBlock* next_sub_block;
@ -274,31 +229,16 @@ static void SubBlock_merge_next(SubBlock* pBlock, SubBlock** pStart)
}
}
/*
* --INFO--
* Address: ........
* Size: 000088
*/
void SubBlock_report(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void link(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00004C
*/
static Block* __unlink(__mem_pool_obj* pool_obj, Block* bp)
{
Block* result = bp->next;
@ -320,41 +260,21 @@ static Block* __unlink(__mem_pool_obj* pool_obj, Block* bp)
return result;
}
/*
* --INFO--
* Address: ........
* Size: 0000B4
*/
void link_new_block(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000DC
*/
void allocate_from_var_pools(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000D8
*/
void soft_allocate_from_var_pools(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C2770
* Size: 000294
*/
static void deallocate_from_var_pools(__mem_pool_obj* pool_obj, void* ptr)
{
SubBlock* sb = SubBlock_from_pointer(ptr);
@ -369,28 +289,13 @@ static void deallocate_from_var_pools(__mem_pool_obj* pool_obj, void* ptr)
}
}
/*
* --INFO--
* Address: ........
* Size: 000128
*/
void FixBlock_construct(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000028
*/
void __init_pool_obj(__mem_pool* pool_obj) { memset(pool_obj, 0, sizeof(__mem_pool_obj)); }
/*
* --INFO--
* Address: ........
* Size: 00004C
*/
static __mem_pool* get_malloc_pool(void)
{
static __mem_pool protopool;
@ -403,21 +308,11 @@ static __mem_pool* get_malloc_pool(void)
return &protopool;
}
/*
* --INFO--
* Address: ........
* Size: 0002D0
*/
void allocate_from_fixed_pools(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C2618
* Size: 000158
*/
void deallocate_from_fixed_pools(__mem_pool_obj* pool_obj, void* ptr, unsigned long size)
{
unsigned long i = 0;
@ -475,51 +370,26 @@ void deallocate_from_fixed_pools(__mem_pool_obj* pool_obj, void* ptr, unsigned l
}
}
/*
* --INFO--
* Address: ........
* Size: 0000B4
*/
void __report_on_pool_heap(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000E4
*/
void __report_on_heap(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000024
*/
void __msize(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000054
*/
void __pool_alloc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C25C0
* Size: 000058
*/
void __pool_free(__mem_pool* pool, void* ptr)
{
__mem_pool_obj* pool_obj;
@ -539,41 +409,21 @@ void __pool_free(__mem_pool* pool, void* ptr)
}
}
/*
* --INFO--
* Address: ........
* Size: 0007B4
*/
void __pool_realloc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00004C
*/
void __pool_alloc_clear(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
void malloc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C2550
* Size: 000070
*/
void free(void* ptr)
{
__begin_critical_region(malloc_pool_access);
@ -581,41 +431,21 @@ void free(void* ptr)
__end_critical_region(malloc_pool_access);
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void realloc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000088
*/
void calloc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000064
*/
void __pool_free_all(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000090
*/
void __malloc_free_all(void)
{
// UNUSED FUNCTION

View File

@ -113,11 +113,6 @@ FILE __files[4] =
};
// clang-format on
/*
* --INFO--
* Address: 800C2A74
* Size: 0000A8
*/
void __close_all()
{
FILE* p = &__files[0];
@ -126,7 +121,7 @@ void __close_all()
__begin_critical_region(stdin_access);
while (p) {
if (p->mMode.file_kind) {
if (p->mMode.file_kind != __closed_file) {
fclose(p);
}
@ -144,12 +139,6 @@ void __close_all()
__end_critical_region(stdin_access);
}
/*
* --INFO--
* Address: 800C2A04
* Size: 000070
*/
u32 __flush_all()
{
u32 retval = 0;

View File

@ -1,4 +1,7 @@
#ifndef _MSL_WIDE_CHAR
#define _MSL_WIDE_CHAR
#endif
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/ansi_files.h"
#include "types.h"

View File

@ -52,126 +52,57 @@ unsigned char __upper_map[256] = {
0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
};
/*
* --INFO--
* Address: ........
* Size: 000018
*/
// void isalnum(void)
//{
// // UNUSED FUNCTION
//}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
void isalnum(void)
{
// UNUSED FUNCTION
}
int isalpha(int c) { return (int)(__ctype_map[(u8)c] & __letter); }
/*
* --INFO--
* Address: ........
* Size: 000018
*/
// void iscntrl(void)
//{
// // UNUSED FUNCTION
//}
void iscntrl(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
BOOL isdigit(int c)
{
{ return (int)(__ctype_map[(u8)c] & __digit); }
}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
// void isgraph(void)
//{
// // UNUSED FUNCTION
//}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
void isgraph(void)
{
// UNUSED FUNCTION
}
BOOL islower(unsigned char c)
{
return __ctype_map[c] & olowc;
}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
// void isprint(void)
//{
// // UNUSED FUNCTION
//}
void isprint(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
// void ispunct(void)
//{
// // UNUSED FUNCTION
//}
void ispunct(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000018
*/
int isspace(int c) { return (int)(__ctype_map[(u8)c] & __whitespace); }
/*
* --INFO--
* Address: ........
* Size: 000018
*/
BOOL isupper(int c) { return (int)(__ctype_map[(u8)c] & __upper_case); }
BOOL isxdigit(int c) { return (int)(__ctype_map[(u8)c] & __hex_digit); }
/*
* --INFO--
* Address: ........
* Size: 000018
*/
BOOL isxdigit(unsigned char c) { return (int)(__ctype_map[c] & __hex_digit); }
/*
* --INFO--
* Address: 800C6264
* Size: 000024
*/
int tolower(int c) { return (c == -1 ? -1 : (int)__lower_map[(u8)c]); }
/*
* --INFO--
* Address: ........
* Size: 000024
*/
int toupper(int c) { return (c == -1 ? -1 : (int)__upper_map[(u8)c]); }
/*
* --INFO--
* Address: ........
* Size: 000020
*/
// void iswblank(void)
//{
// // UNUSED FUNCTION
//}
void iswblank(void)
{
// UNUSED FUNCTION
}

View File

@ -10,31 +10,17 @@
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/misc_io.h"
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/critical_regions.h"
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
void fread(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000350
*/
void __fread(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C6594
* Size: 00007C
*/
size_t fwrite(const void* pPtr, size_t memb_size, size_t num_memb, FILE* pFile)
{
size_t retval;
@ -46,11 +32,6 @@ size_t fwrite(const void* pPtr, size_t memb_size, size_t num_memb, FILE* pFile)
return retval;
}
/*
* --INFO--
* Address: 800C6288
* Size: 00030C
*/
size_t __fwrite(const void* pPtr, size_t memb_size, size_t num_memb, FILE* pFile)
{
unsigned char* cur_ptr;

View File

@ -1,111 +1,56 @@
#include "types.h"
#include "ctype.h"
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strdup(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strdup(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void strlwr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void _strlwr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000080
*/
void ultoa(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000080
*/
void _ultoa(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000048
*/
void gcvt(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000048
*/
void _gcvt(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000010
*/
void heapmin(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000010
*/
void _heapmin(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800CFCDC
* Size: 00008C
*/
int stricmp(char* param_1, char* param_2)
{
s8 a_var;
@ -130,651 +75,326 @@ int stricmp(char* param_1, char* param_2)
return 0;
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void _stricmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strnicmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strnicmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void strupr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void _strupr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000058
*/
void strdate(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000058
*/
void _strdate(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000024
*/
void strset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000030
*/
void strnset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00002C
*/
void _strnset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00004C
*/
void strspnp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00004C
*/
void _strspnp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strncasecmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strncasecmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void strcmpi(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void _strcmpi(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strncmpi(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strncmpi(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void strcasecmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void _strcasecmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void _stricoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strncoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strnicoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void stricoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strncoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strnicoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void itoa(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _itoa(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strrev(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _strrev(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000038
*/
void filelength(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000038
*/
void _filelength(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0001C0
*/
void chsize(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _chsize(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000028
*/
void wtoi(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000028
*/
void _wtoi(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000040
*/
void wcslwr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00003C
*/
void _wcslwr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000040
*/
void wcsupr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00003C
*/
void _wcsupr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
void wcsicmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
void _wcsicmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000094
*/
void wcsnicmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000094
*/
void _wcsnicmp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000078
*/
void wcsrev(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000078
*/
void _wcsrev(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000024
*/
void wcsset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _wcsset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000024
*/
void wcsnset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000024
*/
void _wcsnset(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void wcsspnp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000044
*/
void _wcsspnp(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000054
*/
void wcsdup(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000054
*/
void _wcsdup(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000078
*/
void wstrrev(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000078
*/
void _wstrrev(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
void _wcsicoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void _wcsncoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000094
*/
void _wcsnicoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
void wcsicoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void wcsncoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000094
*/
void wcsnicoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000F8
*/
void itow(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000F8
*/
void _itow(void)
{
// UNUSED FUNCTION

View File

@ -1,11 +1,7 @@
#include "types.h"
#include "string.h"
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/ansi_files.h"
/*
* --INFO--
* Address: 800C6748
* Size: 0001BC
*/
int fclose(FILE* file)
{
int flush_result, close_result;
@ -27,14 +23,9 @@ int fclose(FILE* file)
return ((flush_result || close_result) ? -1 : 0);
}
/*
* --INFO--
* Address: 800C6610
* Size: 000138
*/
int fflush(FILE* file)
{
int pos;
u32 pos;
if (file == nullptr) {
return __flush_all();
@ -61,11 +52,8 @@ int fflush(FILE* file)
return 0;
}
if (file->mMode.file_kind != __disk_file) {
if (file->mMode.file_kind != __disk_file || (pos = ftell(file)) < 0)
pos = 0;
} else {
pos = ftell(file);
}
if (__flush_buffer(file, 0) != 0) {
file->mState.error = 1;
@ -78,3 +66,28 @@ int fflush(FILE* file)
file->mBufferLength = 0;
return 0;
}
int __msl_strnicmp(const char *s1, const char *s2, int n)
{
int i;
char c1, c2;
for (i = 0; i < n; i++) {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
if(c1 < c2) {
return -1;
}
if (c1 > c2) {
return 1;
}
if(c1 == '\0') {
return 0;
}
}
return 0;
}

View File

@ -1,20 +1,10 @@
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/mbstring.h"
/*
* --INFO--
* Address: ........
* Size: 00011C
*/
// void mblen(void)
// {
// // UNUSED FUNCTION
// }
void mblen(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C6EFC
* Size: 0000EC
*/
static int is_utf8_complete(const char* s, size_t n)
{
if (n == 0) { // must have more than zero characters
@ -52,28 +42,73 @@ static int is_utf8_complete(const char* s, size_t n)
}
}
/*
* --INFO--
* Address: ........
* Size: 000120
*/
// void utf8_to_unicode(void)
// {
// // UNUSED FUNCTION
// }
static int utf8_to_unicode(wchar_t *pwc, const char *s, size_t n)
{
int number_of_bytes;
int isUTF8;
char *source;
u16 result_chr = 0;
/*
* --INFO--
* Address: 800C6DDC
* Size: 000120
*/
int mbtowc(wchar_t* pwc, const char* s, size_t n) { return mbstowcs(pwc, s, n); }
if (!s)
{
return 0;
}
if (n <= 0)
{
return -1;
}
number_of_bytes = is_utf8_complete(s, n);
if (number_of_bytes < 0)
{
return -1;
}
source = (char *)s;
switch (number_of_bytes)
{
case 3:
result_chr |= (*source++ & 0x0f);
result_chr <<= 6;
case 2:
result_chr |= (*source++ & 0x3f);
result_chr <<= 6;
case 1:
result_chr |= (*source++ & 0x7f);
}
if (result_chr == 0)
{
isUTF8 = 0;
}
else if (result_chr < 0x00000080)
{
isUTF8 = 1;
}
else if (result_chr < 0x00000800)
{
isUTF8 = 2;
}
else
{
isUTF8 = 3;
}
if (isUTF8 != number_of_bytes)
{
return -1;
}
if (pwc)
{
*pwc = result_chr;
}
return number_of_bytes;
}
int mbtowc(wchar_t *pwc, const char *s, size_t n) { return utf8_to_unicode(pwc, s, n); }
/*
* --INFO--
* Address: ........
* Size: 0000A4
*/
inline static int unicode_to_UTF8(char* s, wchar_t wchar)
{
int number_of_bytes;
@ -108,18 +143,8 @@ inline static int unicode_to_UTF8(char* s, wchar_t wchar)
return number_of_bytes;
}
/*
* --INFO--
* Address: ........
* Size: 0000A4
*/
inline int wctomb(char* s, wchar_t wchar) { return (unicode_to_UTF8(s, wchar)); }
/*
* --INFO--
* Address: ........
* Size: 000188
*/
inline int mbstowcs(wchar_t* pwc, const char* s, size_t n)
{
u32 result_chr;
@ -181,11 +206,6 @@ inline int mbstowcs(wchar_t* pwc, const char* s, size_t n)
return isUTF8;
}
/*
* --INFO--
* Address: 800C6CC4
* Size: 000118
*/
size_t wcstombs(char* s, const wchar_t* pwcs, size_t n)
{
int chars_written = 0;
@ -214,52 +234,27 @@ size_t wcstombs(char* s, const wchar_t* pwcs, size_t n)
return chars_written;
}
/*
* --INFO--
* Address: ........
* Size: 000054
*/
// void mbrlen(void)
// {
// // UNUSED FUNCTION
// }
void mbrlen(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000188
*/
// void mbrtowc(void)
// {
// // UNUSED FUNCTION
// }
void mbrtowc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000B0
*/
// void wcrtomb(void)
// {
// // UNUSED FUNCTION
// }
void wcrtomb(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0001E0
*/
// void mbsrtowcs(void)
// {
// // UNUSED FUNCTION
// }
void mbsrtowcs(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000114
*/
// void wcsrtombs(void)
// {
// // UNUSED FUNCTION
// }
void wcsrtombs(void)
{
// UNUSED FUNCTION
}

View File

@ -1,14 +1,7 @@
#include "types.h"
#include "mem.h"
/*
* --INFO--
* Address: 800C708C
* Size: 0000CC
*/
// thanks, kiwi!
void* memmove(void* dst, const void* src, size_t len)
{
u8* csrc;
@ -55,12 +48,6 @@ void* memmove(void* dst, const void* src, size_t len)
return dst;
}
/*
* --INFO--
* Address: 800C7060
* Size: 00002C
*/
void* memchr(u8* s, int c, size_t n)
{
int n_count;
@ -78,13 +65,6 @@ void* memchr(u8* s, int c, size_t n)
return 0;
}
/*
* --INFO--
* Address: 800C7034
* Size: 00002C
*/
// https://decomp.me/scratch/hTmGp
u8* __memrchr(u8* s, u8 c, size_t n)
{
int n_count;
@ -102,12 +82,6 @@ u8* __memrchr(u8* s, u8 c, size_t n)
return 0;
}
/*
* --INFO--
* Address: 800C6FE8
* Size: 00004C
*/
int memcmp(const void* __s1, const void* __s2, size_t __n)
{
const u8* val1 = ((const u8*)__s1 - 1);

View File

@ -5,31 +5,16 @@
#define srcLongPtr ((unsigned long*)pSrc)
#define destLongPtr ((unsigned long*)pDest)
/*
* --INFO--
* Address: ........
* Size: 000060
*/
void __copy_mem(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0001FC
*/
void __move_mem(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C736C
* Size: 0000BC
*/
void __copy_longs_aligned(void* pDest, const void* pSrc, unsigned long len)
{
unsigned long i = (-(unsigned long)pDest) & 3;
@ -82,11 +67,6 @@ void __copy_longs_aligned(void* pDest, const void* pSrc, unsigned long len)
}
}
/*
* --INFO--
* Address: 800C72C4
* Size: 0000A8
*/
void __copy_longs_rev_aligned(void* pDest, const void* pSrc, unsigned long len)
{
unsigned long i;
@ -134,11 +114,6 @@ void __copy_longs_rev_aligned(void* pDest, const void* pSrc, unsigned long len)
}
}
/*
* --INFO--
* Address: 800C7204
* Size: 0000C0
*/
void __copy_longs_unaligned(void* pDest, const void* pSrc, unsigned long len)
{
unsigned long i, v1, v2;
@ -193,11 +168,6 @@ void __copy_longs_unaligned(void* pDest, const void* pSrc, unsigned long len)
}
}
/*
* --INFO--
* Address: 800C7158
* Size: 0000AC
*/
void __copy_longs_rev_unaligned(void* pDest, const void* pSrc, unsigned long len)
{
unsigned long i, v1, v2;

View File

@ -1,48 +1,22 @@
/*
* --INFO--
* Address: 800C7428
* Size: 000010
*/
extern void (*__stdio_exit)(void);
extern void __close_all(void);
/*
* --INFO--
* Address: ........
* Size: 000010
*/
void clearerr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000008
*/
void feof(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000008
*/
void ferror(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000074
*/
void perror(void)
{
// UNUSED FUNCTION

View File

@ -48,11 +48,6 @@ typedef struct {
int precision; // _C
} print_format;
/*
* --INFO--
* Address: 800C9094
* Size: 000504
*/
static const char* parse_format(const char* format_string, va_list* arg, print_format* format)
{
print_format f;
@ -288,11 +283,6 @@ static const char* parse_format(const char* format_string, va_list* arg, print_f
return ((const char*)s + 1);
}
/*
* --INFO--
* Address: 800C8E3C
* Size: 000258
*/
static char* long2str(long num, char* buff, print_format format)
{
unsigned long unsigned_num, base;
@ -397,11 +387,6 @@ static char* long2str(long num, char* buff, print_format format)
return p;
}
/*
* --INFO--
* Address: 800C8B28
* Size: 000314
*/
static char* longlong2str(long long num, char* pBuf, print_format fmt)
{
unsigned long long unsigned_num, base;
@ -504,11 +489,6 @@ static char* longlong2str(long long num, char* pBuf, print_format fmt)
return p;
}
/*
* --INFO--
* Address: 800C87F0
* Size: 000338
*/
static char* double2hex(long double num, char* buff, print_format format)
{
int offset, what_nibble = 0;
@ -638,11 +618,6 @@ static char* double2hex(long double num, char* buff, print_format format)
return p;
}
/*
* --INFO--
* Address: 800C86C4
* Size: 00012C
*/
static void round_decimal(decimal* dec, int new_length)
{
char c;
@ -697,11 +672,6 @@ static void round_decimal(decimal* dec, int new_length)
dec->sig.length = new_length;
}
/*
* --INFO--
* Address: 800C7FA8
* Size: 00071C
*/
static char* float2str(long double num, char* buff, print_format format)
{
decimal dec;
@ -924,11 +894,6 @@ static char* float2str(long double num, char* buff, print_format format)
return p;
}
/*
* --INFO--
* Address: 800C7834
* Size: 000774
*/
static int __pformatter(void* (*WriteProc)(void*, const char*, size_t), void* WriteProcArg, const char* format_str, va_list arg)
{
int num_chars, chars_written, field_width;
@ -1197,21 +1162,11 @@ static int __pformatter(void* (*WriteProc)(void*, const char*, size_t), void* Wr
return chars_written;
}
/*
* --INFO--
* Address: 800C77DC
* Size: 000058
*/
static void* __FileWrite(void* pFile, const char* pBuffer, size_t char_num)
{
return (fwrite(pBuffer, 1, char_num, (FILE*)pFile) == char_num ? pFile : 0);
}
/*
* --INFO--
* Address: 800C7770
* Size: 00006C
*/
static void* __StringWrite(void* pCtrl, const char* pBuffer, size_t char_num)
{
size_t chars;
@ -1224,31 +1179,16 @@ static void* __StringWrite(void* pCtrl, const char* pBuffer, size_t char_num)
return (void*)1;
}
/*
* --INFO--
* Address: ........
* Size: 0000E8
*/
void printf(const char* format, ...)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000E0
*/
int fprintf(FILE* file, const char* format, ...)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C76D8
* Size: 000098
*/
int vprintf(const char* pFormat, va_list arg)
{
int ret;
@ -1263,21 +1203,11 @@ int vprintf(const char* pFormat, va_list arg)
return ret;
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void vfprintf(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C7664
* Size: 000074
*/
int vsnprintf(char* s, size_t n, const char* format, va_list arg)
{
int end;
@ -1295,18 +1225,8 @@ int vsnprintf(char* s, size_t n, const char* format, va_list arg)
return end;
}
/*
* --INFO--
* Address: 800C75EC
* Size: 000078
*/
int vsprintf(char* s, const char* format, va_list arg) { return vsnprintf(s, 0xFFFFFFFF, format, arg); }
/*
* --INFO--
* Address: 800C7518
* Size: 0000D4
*/
int snprintf(char* s, size_t n, const char* format, ...)
{
va_list args;
@ -1314,11 +1234,6 @@ int snprintf(char* s, size_t n, const char* format, ...)
return vsnprintf(s, n, format, args);
}
/*
* --INFO--
* Address: 800C7438
* Size: 0000E0
*/
int sprintf(char* s, const char* format, ...)
{
va_list args;

View File

@ -2,20 +2,10 @@
static u32 next = 1;
/*
* --INFO--
* Address: 800C95A0
* Size: 000020
*/
int rand()
{
next = next * 1103515245 + 12345;
return ((next >> 16) & 0x7fff);
}
/*
* --INFO--
* Address: 800C9598
* Size: 000008
*/
void srand(u32 seed) { next = seed; }

View File

@ -34,11 +34,6 @@ typedef struct {
#define set_char_map(map, ch) map[(unsigned char)ch >> 3] |= (1 << (ch & 7))
#define tst_char_map(map, ch) (map[(unsigned char)ch >> 3] & (1 << (ch & 7)))
/*
* --INFO--
* Address: 800CA0C0
* Size: 000548
*/
static const char* parse_format(const char* format_string, scan_format* format)
{
const char* s = format_string;
@ -243,11 +238,6 @@ static const char* parse_format(const char* format_string, scan_format* format)
return ((const char*)s + 1);
}
/*
* --INFO--
* Address: 800C9714
* Size: 0009AC
*/
static int __sformatter(int (*ReadProc)(void*, int, int), void* ReadProcArg, const char* format_str, va_list arg)
{
int num_chars, chars_read, items_assigned, conversions;
@ -589,21 +579,11 @@ exit:
return items_assigned;
}
/*
* --INFO--
* Address: ........
* Size: 000084
*/
void __FileRead(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800C9684
* Size: 000090
*/
int __StringRead(void* pPtr, int ch, int act)
{
char ret;
@ -637,41 +617,21 @@ int __StringRead(void* pPtr, int ch, int act)
return 0;
}
/*
* --INFO--
* Address: ........
* Size: 0000F0
*/
void fscanf(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000090
*/
void vscanf(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000E0
*/
void scanf(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000098
*/
void vfscanf(void)
{
// UNUSED FUNCTION
@ -689,11 +649,6 @@ inline int isspace_string(const char* s)
return 1;
}
/*
* --INFO--
* Address: ........
* Size: 00005C
*/
inline int vsscanf(const char* s, const char* format, va_list arg)
{
__InStrCtrl isc;
@ -707,11 +662,6 @@ inline int vsscanf(const char* s, const char* format, va_list arg)
return __sformatter(&__StringRead, (void*)&isc, format, arg);
}
/*
* --INFO--
* Address: 800C95C0
* Size: 0000C4
*/
int sscanf(const char* s, const char* pFormat, ...)
{
va_list args;

View File

@ -2,11 +2,6 @@
#define K1 0x80808080
#define K2 0xFEFEFEFF
/*
* --INFO--
* Address: 800CA910
* Size: 00001C
*/
size_t(strlen)(const char* str)
{
size_t len = -1;
@ -18,11 +13,6 @@ size_t(strlen)(const char* str)
return (len);
}
/*
* --INFO--
* Address: 800CA858
* Size: 0000B8
*/
char*(strcpy)(char* dst, const char* src)
{
register u8 *destb, *fromb;
@ -78,11 +68,6 @@ bytecopy:
return dst;
}
/*
* --INFO--
* Address: 800CA814
* Size: 000044
*/
char* strncpy(char* dst, const char* src, size_t n)
{
const unsigned char* p = (const unsigned char*)src - 1;
@ -100,11 +85,6 @@ char* strncpy(char* dst, const char* src, size_t n)
return (dst);
}
/*
* --INFO--
* Address: 800CA7E8
* Size: 00002C
*/
char* strcat(char* dst, const char* src)
{
const u8* p = (u8*)src - 1;
@ -121,21 +101,11 @@ char* strcat(char* dst, const char* src)
return (dst);
}
/*
* --INFO--
* Address: ........
* Size: 00004C
*/
void strncat(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800CA6C0
* Size: 000128
*/
int strcmp(const char* str1, const char* str2)
{
// bless metrowerks for this implementation
@ -211,11 +181,6 @@ bytecopy:
} while (1);
}
/*
* --INFO--
* Address: 800CA680
* Size: 000040
*/
int strncmp(const char* str1, const char* str2, size_t n)
{
const u8* p1 = (u8*)str1 - 1;
@ -232,11 +197,6 @@ int strncmp(const char* str1, const char* str2, size_t n)
return 0;
}
/*
* --INFO--
* Address: 800CA650
* Size: 000030
*/
char* strchr(const char* str, int chr)
{
const u8* p = (u8*)str - 1;
@ -250,31 +210,16 @@ char* strchr(const char* str, int chr)
return (c ? 0 : (char*)p);
}
/*
* --INFO--
* Address: ........
* Size: 000020
*/
void strcoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000080
*/
void strxfrm(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800CA608
* Size: 000048
*/
char* strrchr(const char* str, int chr)
{
const u8* p = (u8*)str - 1;
@ -292,71 +237,36 @@ char* strrchr(const char* str, int chr)
return (c ? 0 : (char*)p);
}
/*
* --INFO--
* Address: ........
* Size: 0000D4
*/
void strpbrk(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000D0
*/
void strspn(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000D0
*/
void strcspn(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00013C
*/
void strtok(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000068
*/
void strstr(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000028
*/
void strerror(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000458
*/
void __strerror(void)
{
// UNUSED FUNCTION

View File

@ -59,11 +59,6 @@ enum hex_scan_states {
#define fetch() (count++, (*ReadProc)(ReadProcArg, 0, __GetAChar))
#define unfetch(c) (*ReadProc)(ReadProcArg, c, __UngetAChar)
/*
* --INFO--
* Address: 800CA92C
* Size: 00100C
*/
long double __strtold(int max_width, int (*ReadProc)(void*, int, int), void* ReadProcArg, int* chars_scanned, int* overflow)
{
int scan_state = start;
@ -576,32 +571,17 @@ long double __strtold(int max_width, int (*ReadProc)(void*, int, int), void* Rea
}
}
/*
* --INFO--
* Address: ........
* Size: 0000BC
*/
void strtold(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000BC
*/
void strtod(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 00008C
*/
void atof(void)
float atof(float x)
{
// UNUSED FUNCTION
return fabs(x);
}

View File

@ -156,11 +156,6 @@ unsigned long __strtoul(int base, int max_width, int (*ReadProc)(void*, int, int
return value;
}
/*
* --INFO--
* Address: 800CBAD4
* Size: 00040C
*/
unsigned long long __strtoull(int base, int max_width, int (*ReadProc)(void*, int, int), void* ReadProcArg, int* chars_scanned,
int* negative, int* overflow)
{
@ -293,11 +288,6 @@ unsigned long long __strtoull(int base, int max_width, int (*ReadProc)(void*, in
return value;
}
/*
* --INFO--
* Address: 800CBA28
* Size: 0000AC
*/
unsigned long strtoul(const char* str, char** end, int base)
{
unsigned long value;
@ -323,21 +313,11 @@ unsigned long strtoul(const char* str, char** end, int base)
return value;
}
/*
* --INFO--
* Address: ........
* Size: 0000B4
*/
void strtoull(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800CB938
* Size: 0000F0
*/
long strtol(const char* str, char** end, int base)
{
unsigned long uvalue;
@ -364,31 +344,16 @@ long strtol(const char* str, char** end, int base)
return svalue;
}
/*
* --INFO--
* Address: ........
* Size: 000124
*/
void strtoll(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000C0
*/
int atoi(const char* str)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000C0
*/
void atol(void)
{
// UNUSED FUNCTION

View File

@ -6,103 +6,54 @@
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/ansi_files.h"
/*
* --INFO--
* Address: ........
* Size: 0000C8
*/
void putwc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000CC
*/
void putwchar(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000C8
*/
void fputwc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000C4
*/
void getwc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000CC
*/
void getwchar(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000C4
*/
void fgetwc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000154
*/
void ungetwc(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000110
*/
void fputws(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000150
*/
void fgetws(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800CC258
* Size: 000088
*/
int fwide(FILE* stream, int mode)
{
int res;
int orientation;
if (stream == nullptr || stream->mMode.file_kind == __closed_file)
@ -116,12 +67,16 @@ int fwide(FILE* stream, int mode)
else if (mode < 0)
stream->mMode.file_orientation = __char_oriented;
return mode;
res = mode;
break;
case __wide_oriented:
return 1;
res = 1;
break;
case __char_oriented:
return -1;
res = -1;
break;
}
return res;
}

View File

@ -1,9 +1,3 @@
/*
* --INFO--
* Address: 800CCDD8
* Size: 00027C
*/
/* @(#)e_log.c 1.3 95/01/18 */
/*
* ====================================================

View File

@ -1,9 +1,3 @@
/*
* --INFO--
* Address: 800CFA2C
* Size: 000224
*/
/* @(#)e_sqrt.c 1.3 95/01/18 */
/*
* ====================================================

View File

@ -1,11 +1,5 @@
extern double __ieee754_asin();
/*
* --INFO--
* Address: 800CF96C
* Size: 000020
*/
double asin(double __x) { return (double)__ieee754_asin(); }
/*

View File

@ -1,11 +1,5 @@
extern double __ieee754_atan2();
/*
* --INFO--
* Address: 800CF98C
* Size: 000020
*/
double atan2(double __x, double __y) { return (double)__ieee754_atan2(); }
/*

View File

@ -1,11 +1,5 @@
extern double __ieee754_exp();
/*
* --INFO--
* Address: 800CF9AC
* Size: 000020
*/
double exp(double __x) { return (double)__ieee754_exp(); }
/*

View File

@ -1,11 +1,5 @@
extern double __ieee754_fmod();
/*
* --INFO--
* Address: 800CF9CC
* Size: 000020
*/
double fmod(double __x, double __y) { return (double)__ieee754_fmod(); }
/*

View File

@ -1,11 +1,5 @@
extern double __ieee754_log10();
/*
* --INFO--
* Address: 800CF9EC
* Size: 000020
*/
double log10(double __x) { return (double)__ieee754_log10(); }
/*

View File

@ -1,11 +1,5 @@
extern double __ieee754_pow();
/*
* --INFO--
* Address: 800CFA0C
* Size: 000020
*/
double pow(double __x, double __y) { return (double)__ieee754_pow(); }
/*

View File

@ -1,11 +1,5 @@
extern double __ieee754_sqrt();
/*
* --INFO--
* Address: 800CFCBC
* Size: 000020
*/
double sqrt(double __x) { return (double)__ieee754_sqrt(); }
/*

View File

@ -2,11 +2,6 @@
#include "ctype.h"
#include "limits.h"
/*
* --INFO--
* Address: ........
* Size: 000070
*/
static int __count_trailing_zerol(unsigned long x)
{
int result = 0;
@ -36,11 +31,6 @@ static int __count_trailing_zerol(unsigned long x)
return result;
}
/*
* --INFO--
* Address: ........
* Size: 0000FC
*/
static int __count_trailing_zero(double x)
{
unsigned long* l = (unsigned long*)&x;
@ -52,11 +42,6 @@ static int __count_trailing_zero(double x)
return (int)(sizeof(unsigned long) * CHAR_BIT + __count_trailing_zerol(l[0] | 0x00100000));
}
/*
* --INFO--
* Address: ........
* Size: 000080
*/
static int __must_round(const decimal* d, int digits)
{
u8 const* i = d->sig.text + digits;
@ -86,11 +71,6 @@ static int __must_round(const decimal* d, int digits)
return -1;
}
/*
* --INFO--
* Address: ........
* Size: 000058
*/
static void __dorounddecup(decimal* d, int digits)
{
u8* b = d->sig.text;
@ -110,11 +90,6 @@ static void __dorounddecup(decimal* d, int digits)
}
}
/*
* --INFO--
* Address: ........
* Size: 0000FC
*/
static void __rounddec(decimal* d, int digits)
{
int unkBool;
@ -131,11 +106,6 @@ static void __rounddec(decimal* d, int digits)
}
/*
* --INFO--
* Address: ........
* Size: 000110
*/
void __ull2dec(decimal* result, u64 val)
{
result->sign = 0;
@ -172,12 +142,6 @@ void __ull2dec(decimal* result, u64 val)
result->exp = result->sig.length - 1;
}
/*
* --INFO--
* Address: 800C5E80
* Size: 000278
*/
#pragma sym on
void __timesdec(decimal* result, const decimal* x, const decimal* y)
{
u32 accumulator = 0;
@ -245,11 +209,6 @@ void __timesdec(decimal* result, const decimal* x, const decimal* y)
}
}
/*
* --INFO--
* Address: ........
* Size: 0000F0
*/
void __str2dec(decimal* d, const char* s, short exp)
{
int i;
@ -284,11 +243,6 @@ void __str2dec(decimal* d, const char* s, short exp)
}
}
/*
* --INFO--
* Address: 800C46FC
* Size: 001784
*/
void __two_exp(decimal* result, long exp)
{
switch (exp) {
@ -375,11 +329,6 @@ void __two_exp(decimal* result, long exp)
}
}
/*
* --INFO--
* Address: 800C45F0
* Size: 00010C
*/
BOOL __equals_dec(const decimal* x, const decimal* y)
{
if (x->sig.text[0] == 0) {
@ -426,11 +375,6 @@ BOOL __equals_dec(const decimal* x, const decimal* y)
return FALSE;
}
/*
* --INFO--
* Address: ........
* Size: 0000F8
*/
BOOL __less_dec(const decimal* x, const decimal* y)
{
if (x->sig.text[0] == 0) {
@ -472,11 +416,6 @@ BOOL __less_dec(const decimal* x, const decimal* y)
return x->exp < y->exp;
}
/*
* --INFO--
* Address: 800C40F4
* Size: 0004FC
*/
void __minus_dec(decimal* z, const decimal* x, const decimal* y)
{
int zlen, dexp;
@ -577,11 +516,6 @@ done:
z->sig.length = (u8)(i - ib + 1);
}
/*
* --INFO--
* Address: 800C3D40
* Size: 0003B4
*/
void __num2dec_internal(decimal* d, double x)
{
s8 sign = (s8)(signbit(x) != 0);
@ -621,11 +555,6 @@ void __num2dec_internal(decimal* d, double x)
}
}
/*
* --INFO--
* Address: 800C3B9C
* Size: 0001A4
*/
void __num2dec(const decform* form, double x, decimal* d)
{
short digits = form->digits;
@ -653,11 +582,6 @@ void __num2dec(const decform* form, double x, decimal* d)
}
}
/*
* --INFO--
* Address: 800C2B1C
* Size: 001080
*/
double __dec2num(const decimal* d)
{
if (d->sig.length <= 0) {

View File

@ -1,30 +1,10 @@
#include "types.h"
#include "PowerPC_EABI_Support/MSL_C/MSL_Common/critical_regions.h"
/*
* --INFO--
* Address: ........
* Size: 000004
*/
void __init_critical_regions(void) { return; }
/*
* --INFO--
* Address: 800C6260
* Size: 000004
*/
void __kill_critical_regions(void) { return; }
/*
* --INFO--
* Address: 800C625C
* Size: 000004
*/
void __begin_critical_region(int region) { return; }
/*
* --INFO--
* Address: 800C6258
* Size: 000004
*/
void __end_critical_region(int region) { return; }

File diff suppressed because it is too large Load Diff

View File

@ -6,11 +6,6 @@ s32 WriteUARTN(s32, s32); /* extern */
s32 __TRK_write_console(s32, s32, s32*, s32); /* extern */
static BOOL initialized;
/*
* --INFO--
* Address: 800CC2E0
* Size: 0000D0
*/
BOOL __write_console(s32 arg0, s32 arg1, s32* arg2, s32 arg3)
{
@ -35,41 +30,21 @@ BOOL __write_console(s32 arg0, s32 arg1, s32* arg2, s32 arg3)
return FALSE;
}
/*
* --INFO--
* Address: ........
* Size: 000048
*/
void __init_uart_console(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000008
*/
void __delete_file(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000008
*/
void __rename_file(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000CC
*/
void __temp_file_name(void)
{
// UNUSED FUNCTION