diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index e1122005..8129c895 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -460,6 +460,93 @@ game/board/item.c: .sbss start:0x801D40F8 end:0x801D4138 .sdata2 start:0x801D5AF8 end:0x801D5D30 +game/board/bowser.c: + .text start:0x800975AC end:0x8009B4D4 + .rodata start:0x8011E238 end:0x8011E300 + .data start:0x8013AA10 end:0x8013AA60 + .bss start:0x801A4BE8 end:0x801A4C30 + .sdata start:0x801D37B0 end:0x801D37C8 + .sbss start:0x801D4138 end:0x801D4178 + .sdata2 start:0x801D5D30 end:0x801D5DE0 + +game/board/battle.c: + .text start:0x8009B4D4 end:0x8009D148 + .rodata start:0x8011E300 end:0x8011E380 + .data start:0x8013AA60 end:0x8013AB10 + .bss start:0x801A4C30 end:0x801A4C40 + .sdata start:0x801D37C8 end:0x801D37D0 + .sbss start:0x801D4178 end:0x801D41A0 + .sdata2 start:0x801D5DE0 end:0x801D5E88 + +game/board/fortune_space.c: + .text start:0x8009D148 end:0x8009DFD0 + .rodata start:0x8011E380 end:0x8011E3A8 + .data start:0x8013AB10 end:0x8013AB28 + .bss start:0x801A4C40 end:0x801A4C58 + .sdata start:0x801D37D0 end:0x801D37D8 + .sbss start:0x801D41A0 end:0x801D41B0 + .sdata2 start:0x801D5E88 end:0x801D5E98 + +game/board/boo.c: + .text start:0x8009DFD0 end:0x800A1A34 + .data start:0x8013AB28 end:0x8013AD00 + .sdata start:0x801D37D8 end:0x801D37E8 + .sbss start:0x801D41B0 end:0x801D41E8 + .sdata2 start:0x801D5E98 end:0x801D5FA0 + +game/board/mg_setup.c: + .text start:0x800A1A34 end:0x800A4F6C + .rodata start:0x8011E3A8 end:0x8011E3D0 + .data start:0x8013AD00 end:0x8013AE38 + .bss start:0x801A4C58 end:0x801A4CC8 + .sdata start:0x801D37E8 end:0x801D37F0 + .sbss start:0x801D41E8 end:0x801D4218 + .sdata2 start:0x801D5FA0 end:0x801D6080 + +game/board/boo_house.c: + .text start:0x800A4F6C end:0x800A6EE4 + .data start:0x8013AE38 end:0x8013AF70 + .bss start:0x801A4CC8 end:0x801A4CD8 + .sdata start:0x801D37F0 end:0x801D3840 + .sbss start:0x801D4218 end:0x801D4230 + .sdata2 start:0x801D6080 end:0x801D60C8 + +game/board/start.c: + .text start:0x800A6EE4 end:0x800A9708 + .rodata start:0x8011E3D0 end:0x8011E3F0 + .data start:0x8013AF70 end:0x8013B1F8 + .bss start:0x801A4CD8 end:0x801A4CF0 + .sdata start:0x801D3840 end:0x801D3850 + .sbss start:0x801D4230 end:0x801D4240 + .sdata2 start:0x801D60C8 end:0x801D6198 + +game/board/last5.c: + .text start:0x800A9708 end:0x800ADB84 + .rodata start:0x8011E410 end:0x8011E430 + .data start:0x8013B1F8 end:0x8013B3F0 + .bss start:0x801A4CF0 end:0x801A4D38 + .sdata start:0x801D3850 end:0x801D38B8 + .sbss start:0x801D4240 end:0x801D4260 + .sdata2 start:0x801D6198 end:0x801D6298 + +game/board/pause.c: + .text start:0x800ADB84 end:0x800B1974 + .data start:0x8013B3F0 end:0x8013B518 + .bss start:0x801A4D38 end:0x801A4D68 + .sbss start:0x801D4260 end:0x801D4280 + .sdata2 start:0x801D6298 end:0x801D6350 + +game/board/com_path.c: + .text start:0x800B1974 end:0x800B3ED8 + .bss start:0x801A4D68 end:0x801A52E8 + .sbss start:0x801D4280 end:0x801D4288 + +game/board/tutorial.c: + .text start:0x800B3ED8 end:0x800B42F4 + .data start:0x8013B518 end:0x8013B560 + .bss start:0x801A52E8 end:0x801A5300 + .sbss start:0x801D4288 end:0x801D42B0 + dolphin/PPCArch.c: .text start:0x800B42F4 end:0x800B439C diff --git a/configure.py b/configure.py index 210cdc43..e7ba6984 100755 --- a/configure.py +++ b/configure.py @@ -298,6 +298,17 @@ config.libs = [ Object(NonMatching, "game/board/ui.c"), Object(NonMatching, "game/board/hidden_block.c"), Object(NonMatching, "game/board/item.c"), + Object(NonMatching, "game/board/bowser.c"), + Object(NonMatching, "game/board/battle.c"), + Object(NonMatching, "game/board/fortune_space.c"), + Object(NonMatching, "game/board/boo.c"), + Object(NonMatching, "game/board/mg_setup.c"), + Object(NonMatching, "game/board/boo_house.c"), + Object(NonMatching, "game/board/start.c"), + Object(NonMatching, "game/board/last5.c"), + Object(NonMatching, "game/board/pause.c"), + Object(NonMatching, "game/board/com_path.c"), + Object(NonMatching, "game/board/tutorial.c"), ], }, DolphinLib( diff --git a/include/functions.h b/include/functions.h index 8a43084f..a906f8c5 100644 --- a/include/functions.h +++ b/include/functions.h @@ -78,7 +78,6 @@ void fn_800B4264(s32, s32, s32); void fn_8007500C(s32); void fn_8006F0D4(s32, f32); f32 fn_8006F128(s32); -f64 fmod(f32, f64); void fn_8006F61C(s16, s32); void fn_800B42BC(s16); s32 fn_8006DBD4(s16); diff --git a/include/math.h b/include/math.h new file mode 100644 index 00000000..95c77704 --- /dev/null +++ b/include/math.h @@ -0,0 +1,43 @@ +#ifndef _MATH_H +#define _MATH_H + +extern inline float sqrtf(float x) +{ + static const double _half=.5; + static const double _three=3.0; + volatile float y; + if(x > 0.0f) + { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits + y=(float)(x*guess); + return y; + } + return x; +} + +double atan(double x); +double copysign(double x, double y); +double cos(double x); +double floor(double x); +double frexp(double x, int *exp); +double ldexp(double x, int exp); +double modf(double x, double *intpart); +double sin(double x); +double tan(double x); +double acos(double x); +double asin(double x); +double atan2(double y, double x); +double fmod(double x, double y); +double log(double x); +float tanf(float x); +float sinf(float x); +float cosf(float x); +float atan2f(float y, float x); +float acosf(float x); + +#define abs(x) __abs(x) + +#endif \ No newline at end of file diff --git a/src/REL/subchrselDll/subchrselDll.c b/src/REL/subchrselDll/subchrselDll.c index 92b5264c..aa5c4c37 100644 --- a/src/REL/subchrselDll/subchrselDll.c +++ b/src/REL/subchrselDll/subchrselDll.c @@ -3,9 +3,7 @@ #include "game/printfunc.h" #include "dolphin/pad.h" -//HACK: Force 0.5 and 3.0 double constants to appear in REL -const double _half = 0.5; -const double _three = 3.0; +#include "math.h" static void SubchrMain(void); diff --git a/src/REL/w10Dll/w10Dll.c b/src/REL/w10Dll/w10Dll.c index 2ffda651..b3ea6a1f 100644 --- a/src/REL/w10Dll/w10Dll.c +++ b/src/REL/w10Dll/w10Dll.c @@ -1,6 +1,8 @@ #include "include/REL/w10Dll.h" #include "game/data.h" +#include "math.h" + //BSS s16 lbl_1_bss_22[11]; s16 lbl_1_bss_20; @@ -58,11 +60,6 @@ s32 lbl_1_data_6C[2] = { DATA_NUM_LISTEND }; -//RODATA -//HACK: Force 0.5 and 3.0 double constants to appear in REL -const double _half = 0.5; -const double _three = 3.0; - // function is probably global. only inlined in rels? inline s32 get_current_board(void) { return GWSystem.unk08 & 0x1F;