Compare commits

..

232 Commits

Author SHA1 Message Date
Arceveti
87c634b3cb Merge branch 'develop/2.3.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2024-03-30 15:14:30 -07:00
Matt Pharoah
7353db562c Merge pull request #774 from mpharoah/mpharoah/update-libpl
Update libpl
2024-03-06 17:28:42 -05:00
Matt Pharoah
82e0fdf391 Update libpl 2024-03-06 09:10:09 -05:00
Arceveti
3cae3580c1 Move some analog macros to joybus.h 2024-02-14 01:06:07 -08:00
Arceveti
64b2e2d855 Revert formatting changes in types.h 2024-02-14 00:59:46 -08:00
Arceveti
05b5b91674 Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2024-02-14 00:40:08 -08:00
Arceveti
e53e6d25a0 Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-12-15 14:50:17 -08:00
Arceveti
3a24ce70cb Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-12-15 14:48:39 -08:00
Arceveti
93c2bd12d1 Move controller and rumble pak textures to .c.in files 2023-09-28 10:46:09 -07:00
Arceveti
48f15f2fcc Merge branch 'develop/2.1.2' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-27 14:55:05 -07:00
Arceveti
889d7aabdb Fix 'SIZEOF_GFX_TEXRECT_RGBA16' define name 2023-09-26 20:58:26 -07:00
Arceveti
83efeffeee Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-26 20:11:41 -07:00
Arceveti
8be4beddc4 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-25 17:38:00 -07:00
Arceveti
0e2d170798 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-22 15:44:18 -07:00
Arceveti
0a0950b471 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-11 14:31:43 -07:00
Arceveti
19ce4c0834 Better HiLo structs 2023-09-11 14:11:47 -07:00
Arceveti
5ba2c31d18 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-11 13:57:25 -07:00
Arceveti
76d41a03b6 Formatting fix 2023-09-06 13:15:41 -07:00
Arceveti
ee38bd51ca Fix comment 2023-09-02 13:18:57 -07:00
Arceveti
8f61244f57 Improve some struct definitions 2023-09-01 19:18:24 -07:00
Arceveti
64e07e086a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-09-01 18:30:09 -07:00
Arceveti
32c16846b2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-08-23 17:12:38 -07:00
Arceveti
dc0b97a65f input.c/input.h formatting 2023-08-19 02:29:03 -07:00
Arceveti
567fbf2957 Some render_controllers_overlay cleanup 2023-08-19 02:01:49 -07:00
Arceveti
6a5cf577c2 UNF ifdefs 2023-08-19 01:15:23 -07:00
Arceveti
daa429fa32 controller_select_menu fixes 2023-08-19 01:15:11 -07:00
Arceveti
dbcaba5815 Rename 'texrect_rgba32' to 'texrect_rgba16' 2023-08-18 15:50:09 -07:00
Arceveti
2f80e3eb99 Fix GCN rumble comment 2023-08-17 17:08:46 -07:00
Arceveti
c06431b040 controller_select_menu.c formatting cleanup 2023-08-17 15:40:15 -07:00
Arceveti
ac96010c70 Add analog highlights 2023-08-17 13:28:48 -07:00
Arceveti
baac7073fd Add texrect_rgba32 2023-08-17 12:40:48 -07:00
Arceveti
c880c4fab5 Optimize rumble pak graphic segment2 memory usage 2023-08-17 12:22:44 -07:00
Arceveti
fb5c68f14f CONT_CMD_GCN_CALIBRATE doesn't require uninitialized origins + analog deadzone defines + formatting 2023-08-17 11:20:39 -07:00
Arceveti
1351c41196 Fix struct offset sizes 2023-08-14 13:13:45 -07:00
Arceveti
b05b92e035 Rename '__osPackRead_impl' to '__osPackReadEx' 2023-08-11 01:26:34 -07:00
Arceveti
58c93a0c25 Fix comments for rawStickX and rawStickY ranges in Controller struct 2023-08-10 21:30:03 -07:00
Arceveti
519747d1a4 Add fasttext_get_str_width + clarify some comments 2023-08-10 16:14:51 -07:00
Arceveti
c091960a9b Update the relevant ique include files to include changes 2023-08-10 15:30:06 -07:00
Arceveti
371296f94a Rename 'osStartRead_impl' to 'osContStartReadDataEx' 2023-08-10 15:09:35 -07:00
Arceveti
b19f24e605 Move controller select menu stuff into its own file 2023-08-10 14:31:45 -07:00
Arceveti
55fd98b253 Remove redundant OSContPadEx union field + button union type consistency 2023-08-10 14:07:19 -07:00
Arceveti
0cab016a0f Add raw byte arrays to PIF command struct unions + properly fix goddard Z crash + fix some comments 2023-08-10 13:49:26 -07:00
Arceveti
a6aab07352 Rename "cmdID" to "cmd" 2023-08-09 15:48:30 -07:00
Arceveti
ffb663006f Rename "i" to "port" in crash screen input loop 2023-08-09 15:44:06 -07:00
Arceveti
8583d10bd6 Fix crash screen input 2023-08-09 15:18:38 -07:00
Arceveti
65eba3548a Fix build for merge 2023-08-09 14:24:18 -07:00
Arceveti
1798c72dd4 Set MAX_NUM_PLAYERS back to 1 2023-08-07 13:51:19 -07:00
Arceveti
ad1c9e9c70 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-08-07 13:51:05 -07:00
Arceveti
30865abfaf Highlight currently pressed buttons in the status repolling gui 2023-08-07 12:32:14 -07:00
Arceveti
d12881298e Update function return documentation 2023-08-07 12:31:22 -07:00
Arceveti
0767c76425 Split 'ALLOW_STATUS_REPOLLING_COMBO' into 'ENABLE_STATUS_REPOLLING_GUI' and 'ENABLE_STATUS_REPOLLING_COMBO_IN_GAMEPLAY' 2023-08-06 18:44:57 -07:00
Arceveti
59acce3da8 segment2 fixes 2023-08-06 18:31:59 -07:00
Arceveti
9ab67e6ebf Add cont icon size defines + fix build warning 2023-08-05 14:19:44 -07:00
Arceveti
deb53bc973 Add rawContButtons field to OSContPadEx + os_cont.h formatting 2023-08-05 14:17:32 -07:00
Arceveti
9089607f9e Rename 'USE_GAMECUBE_CONTROLLER' to 'EMU_DEFAULT_TO_GCN' 2023-08-03 16:43:51 -07:00
Arceveti
9e6d027620 Update status poll combo to Z+R+A+START, + allow changing order of combo print 2023-08-03 15:24:56 -07:00
Arceveti
86b0966e5d Update controller icons + spacing 2023-08-03 13:27:00 -07:00
Arceveti
ba420d4028 Fix polling for GCN origins running whenever any port has a non-GCN controller or is empty 2023-08-02 12:58:24 -07:00
Arceveti
6cc1975127 Update controller port icon 2023-08-02 12:44:48 -07:00
Arceveti
00e5dd6da0 Move gControllerPlayerNumbers into gControllerPads + replace gcnRumble field in OSContPadEx 2023-08-02 12:44:17 -07:00
Arceveti
b3a4eda167 Fix unimplemented command error 2023-08-02 01:29:44 -07:00
Arceveti
4fb3c843cd Revert "Fix unimplemented command error"
This reverts commit 42c52817c2.
2023-08-02 01:29:14 -07:00
Arceveti
42c52817c2 Fix unimplemented command error 2023-08-02 01:26:22 -07:00
Arceveti
3c29d9806e __osPackRead_impl cleanup 2023-08-01 20:15:42 -07:00
Arceveti
bfebadc244 Actually fix profiling.c 2023-07-31 21:57:56 -07:00
Arceveti
d3708ebd94 Revert accidental profiling.c changes + update readme + rumble.c formatting 2023-07-31 21:55:51 -07:00
Arceveti
f1c2c94c93 Update controller port icon 2023-07-31 21:40:48 -07:00
Arceveti
ebb5253de8 Streamline GCN origins polling trigger 2023-07-31 18:25:59 -07:00
Arceveti
8afd5122ea Add zero analog defines 2023-07-31 13:13:10 -07:00
Arceveti
369ef6734c Remove __osContGetInitDataEx since it's no longer needed 2023-07-30 16:13:59 -07:00
Arceveti
f93d47b7ba Dissolve gPortInfo 2023-07-30 14:55:20 -07:00
Arceveti
338eee167c Decouple button bits from non-button bits + Move controller button struct definitions to os_cont.h 2023-07-27 15:08:49 -07:00
Arceveti
5dc044590d Clarify/fix some comments 2023-07-27 13:50:04 -07:00
Arceveti
4d79f57f68 Fix get_cycle crash when 'CONT_STATUS_POLLING_TIME' is 0 + formatting 2023-07-26 14:38:13 -07:00
Arceveti
7dfa6a90d4 File renames + clean up some includes 2023-07-22 15:11:43 -07:00
Arceveti
0dbf0fbb32 Combine pack functions + finish GCN calibration command support 2023-07-21 14:34:59 -07:00
Arceveti
126253f954 More formatting 2023-07-21 13:53:07 -07:00
Arceveti
650654d033 formatting changes :) 2023-07-20 18:41:53 -07:00
Arceveti
6d3a2eeb2d Update comment 2023-07-19 19:34:07 -07:00
Arceveti
47e0f25a15 Add proper GCN controller origin recalibrating functionality 2023-07-19 19:27:51 -07:00
Arceveti
d8b9bb73e6 Fix build 2023-07-18 16:52:19 -07:00
Arceveti
1bf7a6cb47 Disable 'DISABLE_DEMO' by default 2023-07-17 16:21:55 -07:00
Arceveti
ad90eba00a Fix Goddard debug print crash 2023-07-17 15:59:27 -07:00
Arceveti
9b3e5f971e Fix demo 2023-07-17 15:54:05 -07:00
Arceveti
cb9ced8abe Use MarioState->controller for mario actions instead of gPlayer1Controller 2023-07-16 11:53:31 -07:00
Arceveti
13a81ebdea Remove duplicate remap 2023-07-13 19:57:45 -07:00
Arceveti
9b903d42d5 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-07-12 16:37:47 -07:00
Arceveti
4b3f9e8ec0 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-04-30 22:30:26 -04:00
Arceveti
8b4cd14cb6 _Bool usage 2023-04-26 12:26:36 -04:00
Arceveti
15e5a17fca _Bool usage 2023-04-16 14:58:15 -04:00
Arceveti
ec880fb46b formatting changes 2023-04-10 14:16:16 -04:00
Arceveti
482405db67 pointer formatting changes 2023-04-07 18:35:35 -04:00
Arceveti
8314034280 Improve geo_intro_rumble_pak_graphic allocation 2023-03-28 12:30:56 -04:00
Arceveti
7e7813f2bc Split D-pad and C-buttons from other buttons in input structs 2023-03-27 18:43:07 -04:00
Arceveti
947fc5d2ea Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-03-27 18:26:54 -04:00
Arceveti
ed5f628486 Fix wrong type for sRenderedFramebuffer 2023-03-17 13:49:19 -04:00
Arceveti
1c8db3d9ae Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-03-17 12:14:21 -04:00
Arceveti
b531611f13 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-03-12 14:10:21 -04:00
Arceveti
983612df1b Add 'ALLOW_STATUS_REPOLLING_COMBO' define 2023-03-10 11:42:33 -05:00
Arceveti
73b7a61bde Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-03-10 11:29:10 -05:00
Arceveti
fc977ed3e0 Rename 'NUM_SUPPORTED_CONTROLLERS' to 'MAX_NUM_PLAYERS' + formatting consistency 2023-03-09 16:37:19 -05:00
Arceveti
8b861a2d3f ALIGNED64 __MotorDataBuf + formatting consistency 2023-03-09 12:14:48 -05:00
Arceveti
cfd87e0ad5 Separate aligned and unaligned command format structs 2023-03-08 14:54:29 -05:00
Arceveti
6b95114c03 Remove PRIORITIZE_GAMECUBE_CONTROLLERS_ON_BOOT 2023-03-08 14:27:58 -05:00
Arceveti
ec6bda79aa Doxygen function documentation 2023-03-08 14:20:19 -05:00
Arceveti
82f0da7d2e Use first controller input as P1 on boot when MAX_SUPPORTED_CONTROLLERS is 1 2023-03-08 13:43:54 -05:00
Arceveti
59dc86234d Combine queue_rumble_decay into queue_rumble_data since it can't be called separately 2023-03-08 11:57:11 -05:00
Arceveti
bba724e6f8 Add OSPifRamEx 2023-03-08 11:44:58 -05:00
Arceveti
bc6c42e366 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-03-08 11:26:50 -05:00
Arceveti
69055c9401 Fix some macros 2023-03-08 11:26:37 -05:00
Arceveti
3ecadf796b Combine rumble command structs 2023-03-07 17:47:45 -05:00
Arceveti
9894152534 use pfs status to detect rumble pak + fix mario.c 2023-03-07 17:10:55 -05:00
Arceveti
f1642d58af Allow rumble on multiple controllers 2023-03-07 17:09:42 -05:00
Arceveti
bfd3e59290 Clean up rumble ifdefs + add unused controller args 2023-03-07 15:45:32 -05:00
Arceveti
3220d74b0d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-03-07 13:45:03 -05:00
Arceveti
b38bce56d7 Fix gamecube input v3 (real) [final] *release edition* (probably) 2023-03-07 13:43:23 -05:00
Arceveti
1f5e7512b6 rename 'contCenters' to 'origins' 2023-03-06 17:55:44 -05:00
Arceveti
bb8a5f3987 Fix status poll timer 2023-03-06 17:34:55 -05:00
Arceveti
8b1f359555 Rename 'pollingInput' to 'statusPollButtons' 2023-03-06 17:29:48 -05:00
Arceveti
6a1f78d284 Remove exit combo cooldown 2023-03-06 17:27:56 -05:00
Arceveti
7f3d6ace49 Fix gNumPlayers usage 2023-03-06 16:17:09 -05:00
Arceveti
4c853afb87 Fix GCN input poll command sizes 2023-03-06 16:03:59 -05:00
Arceveti
d3eed5d5f7 Actually fix gamecube controller input 2023-03-06 15:04:11 -05:00
Arceveti
ea628dd113 Potentially fix gamecube input 2023-03-06 14:28:16 -05:00
Arceveti
fe02f58004 Add __OSContGenericFormat 2023-03-05 18:37:09 -05:00
Arceveti
2d6bf908f7 Save analog centers for triggers + use origin bit 2023-03-05 12:57:39 -05:00
Arceveti
e8fc703fd0 Change OSContCmdData to OSContCmdSize 2023-03-04 12:17:54 -05:00
Arceveti
ea72987c43 Fix build 2023-03-04 12:07:30 -05:00
Arceveti
92f3a7d2ba Update some comments + formatting 2023-03-04 12:01:47 -05:00
Arceveti
da66b48f7d Fix EEPROM probe 2023-03-04 11:41:48 -05:00
Arceveti
f821dbfce5 Print Rumble PFS error descriptions 2023-03-03 16:09:59 -05:00
Arceveti
e27e0d61f1 Add separate enum for PIF control bytes 2023-03-03 16:09:02 -05:00
Arceveti
30ac33ae61 Use analog pair structs for OSContPadEx 2023-03-03 15:25:40 -05:00
Arceveti
cef1be2d40 Move Controller centers to OSContPadEx 2023-03-03 14:51:16 -05:00
Arceveti
c509e8253d Use the command itself instead of portInfo to determine which controllers to poll in osContGetReadDataEx 2023-03-03 14:30:57 -05:00
Arceveti
d8fb2f668c fix joybus.h header includes 2023-03-03 13:35:04 -05:00
Arceveti
fd345e9908 Move GCN Z/L swap to __osContWriteGCNInputData 2023-03-03 12:28:59 -05:00
Arceveti
7a94b73be2 Fix command format struct offset comments 2023-03-02 19:54:55 -05:00
Arceveti
8c56cd6654 Add remaining command format structs (VRU) 2023-03-02 18:29:39 -05:00
Arceveti
93c5fea323 Add format structs for keyboard and wheel 2023-03-02 17:58:56 -05:00
Arceveti
3fe898cc41 Rename controller.c/h to joybus.c/h 2023-03-02 16:24:31 -05:00
Arceveti
cf1d9f06e4 Add const poll format data + some refactoring 2023-03-02 16:20:57 -05:00
Arceveti
c06d960572 Add GCN calibration and long poll formats + improve osContGetReadDataEx 2023-03-02 15:14:17 -05:00
Arceveti
ec7d8c3eec Autogenerate button combo string from the combo define 2023-03-01 21:26:15 -05:00
Arceveti
9b83166ca7 Fix __osMotorAccessEx being run twice 2023-03-01 20:42:08 -05:00
Arceveti
4313cef92d Add support for GCN controller modes other than 3 2023-03-01 19:49:32 -05:00
Arceveti
1a2254fad7 Remove osSyncPrintf in init_and_check_rumble_pak 2023-03-01 18:08:02 -05:00
Arceveti
c588c13c44 More controller.c documentation + Add structs for EEPROM and RTC command formats 2023-03-01 17:09:32 -05:00
Arceveti
b1acbc234f Fix rumble pak error checking + controller.c formatting 2023-03-01 12:17:55 -05:00
Arceveti
7e8ecb0ebb controller.h formatting 2023-02-27 15:15:28 -05:00
Arceveti
43a6d84786 Add AnalogStick struct 2023-02-24 13:10:01 -05:00
Arceveti
1ddd3aa2b8 Use button structs for input read formats 2023-02-24 11:57:38 -05:00
Arceveti
b4bc5a9d1a More cleanup + update some icons 2023-02-21 23:08:48 -05:00
Arceveti
17e05f89e1 Fix command format struct size comments 2023-02-20 22:56:43 -05:00
Arceveti
2f967d5797 Use handle_input in crash_screen.c 2023-02-20 22:39:02 -05:00
Arceveti
e46dff54f4 Use poll_controller_inputs in crash_screen.c 2023-02-20 22:36:45 -05:00
Arceveti
9540005838 Fix UB in rumble_thread_update_vi 2023-02-20 22:07:29 -05:00
Arceveti
84e5576e3d Use sizeof for tx/rx byte counts 2023-02-20 21:12:21 -05:00
Arceveti
3afad8da04 More cleanup 2023-02-20 20:24:19 -05:00
Arceveti
995bc74e19 More parse_p1_controller cleanup 2023-02-19 04:57:28 -05:00
Arceveti
5a7b919729 Explain GameCube analog_mode in a comment + more struct documentation 2023-02-19 04:48:13 -05:00
Arceveti
2017928237 Actually fix assign_controllers_auto 2023-02-19 04:22:32 -05:00
Arceveti
4567dd9a77 Fix incorrect struct offset comments in __OSContGCNShortPollFormat 2023-02-19 03:50:25 -05:00
Arceveti
782a0afd9e Fix assign_controllers_auto 2023-02-19 03:44:55 -05:00
Arceveti
1defcd176f Remove alignment from controller input polling commands + simplify port/channel skipping 2023-02-18 15:37:46 -05:00
Arceveti
7aceb9c08e Add PACKED attribute to PIF command format structs 2023-02-17 17:27:24 -05:00
Arceveti
ddf0642ef4 Rename 'i' to 'port' 2023-02-17 17:10:47 -05:00
Arceveti
ec4c78298a Move input stuff out of game_init.c into its own file + menu scrolling documentation 2023-02-17 17:07:50 -05:00
Arceveti
cbd1054230 rumble_init documentation + refactoring/formatting 2023-02-17 16:10:29 -05:00
Arceveti
ba7fb77587 More formatting 2023-02-16 20:46:06 -05:00
Arceveti
b88afce952 Refactoring + documentation 2023-02-16 19:13:11 -05:00
Arceveti
5666ffac16 Don't show instructions text if no controllers are plugged in 2023-02-15 13:12:12 -05:00
Arceveti
08ad5a8908 Make text flash timing match repoll timing 2023-02-13 04:00:47 -05:00
Arceveti
116e249c91 rumble_init formatting 2023-02-12 18:26:49 -05:00
Arceveti
54a3e39f75 Improve combo handling 2023-02-12 17:50:10 -05:00
Arceveti
d6b4e57166 Use gMarioState->controller as controller to rumble 2023-02-12 17:27:38 -05:00
Arceveti
5516d041ab os_cont.h formatting 2023-02-12 17:26:45 -05:00
Arceveti
8a371bfdbb Update comments + formatting 2023-02-11 23:11:21 -05:00
Arceveti
a6ea957eac convert lerps to always inline functions 2023-02-11 18:00:39 -05:00
Arceveti
8a803d8455 Use regular input data for mario head 2023-02-11 14:52:52 -05:00
Arceveti
71b064e847 Rename lerps 2023-02-11 13:20:13 -05:00
Arceveti
addeae8680 Convert lerps and remap to macros 2023-02-11 12:44:25 -05:00
Arceveti
d95933bde0 formatting changes :) 2023-02-11 02:39:49 -05:00
Arceveti
b2ce18639a Update readme 2023-02-11 02:25:47 -05:00
Arceveti
23b58dc989 Add math_util functions + flash text 2023-02-11 02:24:04 -05:00
Arceveti
12ed8686ac Update n64 controller icon 2023-02-11 02:23:12 -05:00
Arceveti
dd2ee3508b Update controller icons 2023-02-11 01:06:03 -05:00
Arceveti
ab9a19c509 Remove 64GB icon 2023-02-11 00:24:58 -05:00
Arceveti
9a0605fee4 Fix shade_screen 2023-02-10 22:16:12 -05:00
Arceveti
500a629c6f Add/update remaining known device icons + update status poll screen 2023-02-09 17:26:46 -05:00
Arceveti
59231305e6 Initialize portInfo usages 2023-02-08 19:54:55 -05:00
Arceveti
0701b54570 Add PRIORITIZE_GAMECUBE_CONTROLLERS_ON_BOOT 2023-02-08 18:51:46 -05:00
Arceveti
ab31650de1 Put rumble pak translation texture pointers in a language array 2023-02-08 18:17:35 -05:00
Arceveti
c7b80e9abd Add some comments + "status polling" naming consistency 2023-02-08 16:51:21 -05:00
Arceveti
4b7d0daa47 Fix polling exit + Fix device IDs + Lots of cleanup 2023-02-08 04:17:56 -05:00
Arceveti
764833a2bc Remove train controller icon :( 2023-02-08 02:18:54 -05:00
Arceveti
b46061d6a2 Add osMotorStopHard 2023-02-06 18:48:38 -05:00
Arceveti
f12bd61f05 Optimize render_controllers_overlay + fasttext 2023-02-06 15:51:02 -05:00
Arceveti
a9ef064935 move rumble pak graphic textures 2023-02-04 17:52:28 -05:00
Arceveti
d6d9142425 Fix crash screen input 2023-02-04 12:45:55 -05:00
Arceveti
5470095a78 temporarily move rumble pak graphic textures to segment2 2023-02-03 18:14:54 -05:00
Arceveti
6697e9498c Add ability for the player to assign player numbers to connected controllers + default NUM_SUPPORTED_CONTROLLERS to 1 2023-02-03 18:03:28 -05:00
Arceveti
975070f5a2 Add keyboard and train controller icons 2023-02-03 16:42:46 -05:00
Arceveti
95c007f23b Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-02-03 00:48:43 -05:00
Arceveti
db050377e7 Fix player2_rotate_cam if NUM_SUPPORTED_CONTROLLERS is 1 + prevent goddard input while profiling 2023-02-03 00:48:30 -05:00
Arceveti
e60fa6261f Add controller.h 2023-02-02 15:14:21 -05:00
Arceveti
0954af0cf4 Add Repoll UI + repoll until input is detected 2023-02-02 14:37:36 -05:00
Arceveti
d0e9c8f597 Add controller device textures 2023-02-02 14:32:16 -05:00
Arceveti
25b128db7c Allow repolling for a controller when it's unplugged 2023-02-02 13:09:53 -05:00
Arceveti
bf8f170b8c Move rumble stuff to rumble_init + formatting 2023-01-31 16:07:40 -05:00
Arceveti
387c6c3954 Update comment + formatting 2023-01-30 14:42:55 -05:00
Arceveti
0c5eadcb99 Rename gamecube_controller.c to controller.c 2023-01-27 17:29:59 -05:00
Arceveti
9af5a968dc formatting + documentation 2023-01-27 17:29:22 -05:00
Arceveti
aa730a6231 Change GC deadzone 2023-01-27 14:46:27 -05:00
Arceveti
1157bbf582 Update readme + formatting 2023-01-26 23:58:10 -05:00
Arceveti
6a14b81798 Fix ENABLE_RUMBLE 2023-01-26 18:36:06 -05:00
Arceveti
fb100373de Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-01-26 12:46:21 -05:00
Arceveti
7cf6573b0d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2023-01-26 02:53:11 -05:00
Arceveti
038a4ecbff Skip polling unused ports + fix controller swap detection + formatting 2023-01-26 02:52:28 -05:00
Arceveti
2615ddb8f0 more gamecube_controller.c formatting 2023-01-26 02:36:29 -05:00
Arceveti
1703041a61 gd_init_controllers names 2023-01-20 13:56:33 -05:00
Arceveti
0cf12b263a gamecube_controller.c formatting 2023-01-20 01:01:32 -05:00
Arceveti
af81838da2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2022-12-13 19:32:35 -05:00
Arceveti
614788ba5a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2022-12-12 15:13:00 -05:00
Arceveti
c0d15634e9 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2022-12-10 15:33:57 -05:00
Arceveti
ff81ccb0a9 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2022-12-10 00:48:53 -05:00
Arceveti
b5e22a1019 Default osContSetCh to 0 if no controllers are plugged in + rename 'MAX_ALLOWED_CONTROLLERS' to 'NUM_SUPPORTED_CONTROLLERS' 2022-11-29 18:55:11 -05:00
Arceveti
c17510cb4c Add MAX_ALLOWED_CONTROLLERS + Add osContSetCh optimization + Various GC controller fixes 2022-11-29 01:16:12 -05:00
Arceveti
3b2ea062d0 Fix build warning suppression in gamecube_controller.c 2022-11-28 15:14:32 -05:00
Arceveti
f273539077 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2022-11-28 15:08:15 -05:00
Arceveti
6fec1b6fa6 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-four-controllers 2022-11-09 13:31:06 -08:00
Arceveti
efd0bf40c9 Support using 4 controllers at once 2022-10-23 00:40:24 -07:00
401 changed files with 17287 additions and 13126 deletions

View File

@@ -501,15 +501,15 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
# C compiler options
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
ifeq ($(COMPILER),gcc)
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else ifeq ($(COMPILER),clang)
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
endif
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
@@ -530,6 +530,7 @@ N64CKSUM := $(TOOLS_DIR)/n64cksum
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
N64GRAPHICS_CI := $(TOOLS_DIR)/n64graphics_ci
BINPNG := $(TOOLS_DIR)/BinPNG.py
TEXTCONV := $(TOOLS_DIR)/textconv
AIFF_EXTRACT_CODEBOOK := $(TOOLS_DIR)/aiff_extract_codebook
VADPCM_ENC := $(TOOLS_DIR)/vadpcm_enc
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
@@ -570,7 +571,7 @@ endif
# For non-IDO, use objcopy instead of extract_data_for_mio
ifneq ($(COMPILER),ido)
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data --only-section=.rodata
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
endif
# Common build print status function
@@ -645,6 +646,29 @@ $(BUILD_DIR)/src/libz/%.o: OPT_FLAGS := -Os
$(BUILD_DIR)/src/libz/%.o: CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-pointer-sign
endif
ifeq ($(VERSION),eu)
TEXT_DIRS := text/de text/us text/fr
# EU encoded text inserted into individual segment 0x19 files,
# and course data also duplicated in leveldata.c
$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/us/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/de/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/fr/define_courses.inc.c
else
ifeq ($(VERSION),sh)
TEXT_DIRS := text/jp
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/jp/define_text.inc.c
else
TEXT_DIRS := text/$(VERSION)
# non-EU encoded text inserted into segment 0x02
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
endif
endif
$(BUILD_DIR)/src/usb/usb.o: OPT_FLAGS := -O0
$(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wno-unused-function
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
@@ -662,11 +686,17 @@ $(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAG
# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
$(BUILD_DIR)/include/text_strings.h: $(BUILD_DIR)/include/text_menu_strings.h
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
#==============================================================================#
@@ -793,6 +823,20 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*
@$(PRINT) "$(GREEN)Generating demo data $(NO_COL)\n"
$(V)$(PYTHON) $(TOOLS_DIR)/demo_data_converter.py assets/demo_data.json $(DEF_INC_CFLAGS) > $@
# Encode in-game text strings
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
$(call print,Encoding:,$<,$@)
$(V)$(TEXTCONV) charmap.txt $< $@
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
$(call print,Encoding:,$<,$@)
$(V)$(TEXTCONV) charmap_menu.txt $< $@
$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
# Level headers
$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
$(call print,Preprocessing level headers:,$<,$@)

View File

@@ -243,11 +243,9 @@ $(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
# EU segment 19 translations
$(BUILD_DIR)/bin/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
# --------------------------------------
# Skybox Rules

View File

@@ -17,11 +17,11 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: ASCII / UTF-8 support, Multilang, Platform Displacement 2
- **Arthurtilly**: Platform Displacement 2
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project + widescreen, reonucam, various defines for hacker QoL, and a custom Spanish (Spain) translation of the game.
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
- **JoshDuMan**: Decomp guy, general assistance
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
- **Arceveti**: Silhouette, various optimizations including shadows, implementation of better wall collision, better hanging, breath meter, 4 controller support, major input refactoring, controller reassignment, controller icons, alternate rumble graphics
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
- **Wiseguy**: World scale reimplementation, silhouette, graph node optimisations, instant input patch, cake screen fix, segmented code support, and various optimizations/fixes
- **Kaze**: Graph node optimisations, automatic optimal collision distance
@@ -87,9 +87,9 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
- The clown font includes the entire English alphabet.
- Colored ia4 text support. Format: `"@XXXXXX[YOUR TEXT]@--------"` (By Arthurtilly)
- Example Text: `"@FF0000RED @00FF00GREEN @0000FFBLUE @FFFFFFWHITE"`
- NOTE: Text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset. The text will use gDialogTextAlpha as the alpha value when changing the color.
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *

15
bin/eu/translation_de.c Normal file
View File

@@ -0,0 +1,15 @@
// SM64 (EU) Segment 19 - Deutsch
#include "macros.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
// Include text/define_text.inc.c, preprocessed with -I text/de/ to get the
// right translation strings, with symbols renamed as below.
#define seg2_course_name_table course_name_table_eu_de
#define seg2_act_name_table act_name_table_eu_de
#define seg2_dialog_table dialog_table_eu_de
#include "text/de/define_text.inc.c"

15
bin/eu/translation_en.c Normal file
View File

@@ -0,0 +1,15 @@
// SM64 (EU) Segment 19 - English
#include "macros.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
// Include text/define_text.inc.c, preprocessed with -I text/us/ to get the
// right translation strings, with symbols renamed as below.
#define seg2_course_name_table course_name_table_eu_en
#define seg2_act_name_table act_name_table_eu_en
#define seg2_dialog_table dialog_table_eu_en
#include "text/us/define_text.inc.c"

15
bin/eu/translation_fr.c Normal file
View File

@@ -0,0 +1,15 @@
// SM64 (EU) Segment 19 - Français
#include "macros.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
// Include text/define_text.inc.c, preprocessed with -I text/fr/ to get the
// right translation strings, with symbols renamed as below.
#define seg2_course_name_table course_name_table_eu_fr
#define seg2_act_name_table act_name_table_eu_fr
#define seg2_dialog_table dialog_table_eu_fr
#include "text/fr/define_text.inc.c"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,55 @@
#ifdef ENABLE_STATUS_REPOLLING_GUI
ALIGNED8 const Texture texture_controller_port[] = {
#include "textures/segment2/controller_port.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_unknown[] = {
#include "textures/segment2/controller_unknown.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_normal[] = {
#include "textures/segment2/controller_n64_normal.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_mouse[] = {
#include "textures/segment2/controller_n64_mouse.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_voice[] = {
#include "textures/segment2/controller_n64_voice.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_keyboard[] = {
#include "textures/segment2/controller_n64_keyboard.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gba[] = {
#include "textures/segment2/controller_gba.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_normal[] = {
#include "textures/segment2/controller_gcn_normal.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_receiver[] = {
#include "textures/segment2/controller_gcn_receiver.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_wavebird[] = {
#include "textures/segment2/controller_gcn_wavebird.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_wheel[] = {
#include "textures/segment2/controller_gcn_wheel.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_keyboard[] = {
#include "textures/segment2/controller_gcn_keyboard.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_dancepad[] = {
#include "textures/segment2/controller_gcn_dancepad.rgba16.inc.c"
};
#endif // ENABLE_STATUS_REPOLLING_GUI

View File

@@ -0,0 +1,40 @@
#ifdef ENABLE_RUMBLE
//! TODO: Move rumble pak graphic textures to src/menu/intro_geo.c once build order is fixed.
ALIGNED8 const Texture title_texture_rumble_pak_en[] = {
#include "textures/segment2/rumble_pak_en.rgba16.inc.c"
};
#if MULTILANG //! TODO: Use these after ASCII/multilang is merged.
#ifdef ENABLE_FRENCH
ALIGNED8 const Texture title_texture_rumble_pak_fr[] = {
#include "textures/segment2/rumble_pak_fr.rgba16.inc.c"
};
#endif // ENABLE_FRENCH
#ifdef ENABLE_GERMAN
ALIGNED8 const Texture title_texture_rumble_pak_de[] = {
#include "textures/segment2/rumble_pak_de.rgba16.inc.c"
};
#endif // ENABLE_GERMAN
#ifdef ENABLE_JAPANESE
ALIGNED8 const Texture title_texture_rumble_pak_jp[] = {
#include "textures/segment2/rumble_pak_jp.rgba16.inc.c"
};
#endif // ENABLE_JAPANESE
#if defined(ENABLE_SPANISH_SPAIN) || defined(ENABLE_SPANISH_LATIN_AMERICA)
ALIGNED8 const Texture title_texture_rumble_pak_es[] = {
#include "textures/segment2/rumble_pak_es.rgba16.inc.c"
};
#endif // (ENABLE_SPANISH_SPAIN || ENABLE_SPANISH_LATIN_AMERICA)
#endif // MULTILANG
ALIGNED8 const Texture title_texture_rumble_pak_controller[] = {
#include "textures/segment2/rumble_pak_controller.rgba16.inc.c"
};
#endif // ENABLE_RUMBLE

View File

@@ -121,8 +121,6 @@ const Texture *const game_over_texture_table[] = {
title_texture_game_over_0, title_texture_game_over_1, title_texture_game_over_2, title_texture_game_over_3,
};
UNUSED static const u64 title_screen_bg_unused_0 = 0;
#ifdef GODDARD_EASTER_EGG
const Gfx title_screen_bg_dl_face_easter_egg_begin[] = {
gsDPPipeSync(),
@@ -142,27 +140,3 @@ const Gfx title_screen_bg_dl_face_easter_egg_end[] = {
gsSPEndDisplayList(),
};
#endif
// Not part of segment2, but define still covers same use case
#if (defined(COMPLETE_EN_US_SEGMENT2) && ENABLE_RUMBLE)
ALIGNED8 static const Texture title_texture_rumble_pak[] = {
#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c"
};
const Gfx title_screen_bg_dl_rumble_pak[] = {
gsDPPipeSync(),
gsDPSetCycleType(G_CYC_COPY),
gsDPSetTexturePersp(G_TP_NONE),
gsDPSetTextureFilter(G_TF_POINT),
gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2),
gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, 319, 239),
gsDPLoadTextureTile(title_texture_rumble_pak, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 0, 0, 0, 79, 23, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTextureRectangle(220 << 2, 200 << 2, 299 << 2, 223 << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10),
gsDPPipeSync(),
gsDPSetCycleType(G_CYC_1CYCLE),
gsDPSetTexturePersp(G_TP_PERSP),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
gsSPEndDisplayList(),
};
#endif

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - Deutsch
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_de
#define ACT_NAME_TABLE act_name_table_de
#define DIALOG_TABLE dialog_table_de
#define DIALOG_FILE "de/dialogs.h"
#define COURSE_FILE "de/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - English
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_en
#define ACT_NAME_TABLE act_name_table_en
#define DIALOG_TABLE dialog_table_en
#define DIALOG_FILE "us/dialogs.h"
#define COURSE_FILE "us/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - Español (España) (Not vanilla: Translation created and added by Reonu)
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_es
#define ACT_NAME_TABLE act_name_table_es
#define DIALOG_TABLE dialog_table_es
#define DIALOG_FILE "es/dialogs.h"
#define COURSE_FILE "es/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - Français
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_fr
#define ACT_NAME_TABLE act_name_table_fr
#define DIALOG_TABLE dialog_table_fr
#define DIALOG_FILE "fr/dialogs.h"
#define COURSE_FILE "fr/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - 日本語 (Japanese)
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_jp
#define ACT_NAME_TABLE act_name_table_jp
#define DIALOG_TABLE dialog_table_jp
#define DIALOG_FILE "jp/dialogs.h"
#define COURSE_FILE "jp/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

357
charmap.txt Normal file
View File

@@ -0,0 +1,357 @@
'0' = 0x00
'' = 0x00
'1' = 0x01
'' = 0x01
'2' = 0x02
'' = 0x02
'3' = 0x03
'' = 0x03
'4' = 0x04
'' = 0x04
'5' = 0x05
'' = 0x05
'6' = 0x06
'' = 0x06
'7' = 0x07
'' = 0x07
'8' = 0x08
'' = 0x08
'9' = 0x09
'' = 0x09
'A' = 0x0A
'' = 0x0A
'B' = 0x0B
'' = 0x0B
'C' = 0x0C
'' = 0x0C
'D' = 0x0D
'' = 0x0D
'E' = 0x0E
'' = 0x0E
'F' = 0x0F
'' = 0x0F
'G' = 0x10
'' = 0x10
'H' = 0x11
'' = 0x11
'I' = 0x12
'' = 0x12
'J' = 0x13
'' = 0x13
'K' = 0x14
'' = 0x14
'L' = 0x15
'' = 0x15
'M' = 0x16
'' = 0x16
'N' = 0x17
'' = 0x17
'O' = 0x18
'' = 0x18
'P' = 0x19
'' = 0x19
'Q' = 0x1A
'' = 0x1A
'R' = 0x1B
'' = 0x1B
'S' = 0x1C
'' = 0x1C
'T' = 0x1D
'' = 0x1D
'U' = 0x1E
'' = 0x1E
'V' = 0x1F
'' = 0x1F
'W' = 0x20
'' = 0x20
'X' = 0x21
'' = 0x21
'Y' = 0x22
'' = 0x22
'Z' = 0x23
'' = 0x23
'a' = 0x24
'b' = 0x25
'c' = 0x26
'd' = 0x27
'e' = 0x28
'f' = 0x29
'g' = 0x2A
'h' = 0x2B
'i' = 0x2C
'j' = 0x2D
'k' = 0x2E
'l' = 0x2F
'm' = 0x30
'n' = 0x31
'o' = 0x32
'p' = 0x33
'q' = 0x34
'r' = 0x35
's' = 0x36
't' = 0x37
'u' = 0x38
'v' = 0x39
'w' = 0x3A
'x' = 0x3B
'y' = 0x3C
'z' = 0x3D
'\'' = 0x3E
'.' = 0x3F
# Mario face US/EU menu string (Note: NOT multi-text, each char has a part of the face)
'☺' = 0x40, 0x41
'あ' = 0x40
'い' = 0x41
'う' = 0x42
'え' = 0x43
'お' = 0x44
'か' = 0x45
'き' = 0x46
'く' = 0x47
'け' = 0x48
'こ' = 0x49
'さ' = 0x4A
'し' = 0x4B
'す' = 0x4C
'せ' = 0x4D
'そ' = 0x4E
'た' = 0x4F
'ち' = 0x50
'つ' = 0x51
'て' = 0x52
'と' = 0x53
'な' = 0x54
'に' = 0x55
'ぬ' = 0x56
'ね' = 0x57
'の' = 0x58
'は' = 0x59
'ひ' = 0x5A
'ふ' = 0x5B
'へ' = 0x5C
'ほ' = 0x5D
'ま' = 0x5E
'み' = 0x5F
'む' = 0x60
'め' = 0x61
'も' = 0x62
'や' = 0x63
'ゆ' = 0x64
'よ' = 0x65
'ら' = 0x66
'り' = 0x67
'る' = 0x68
'れ' = 0x69
'ろ' = 0x6A
'わ' = 0x6B
'を' = 0x6C
'ん' = 0x6D
'。' = 0x6E
',' = 0x6F
'、' = 0x6F
'ア' = 0x70
'イ' = 0x71
'ウ' = 0x72
'エ' = 0x73
'オ' = 0x74
'カ' = 0x75
'キ' = 0x76
'ク' = 0x77
'ケ' = 0x78
'コ' = 0x79
'サ' = 0x7A
'シ' = 0x7B
'ス' = 0x7C
'セ' = 0x7D
'ソ' = 0x7E
'タ' = 0x7F
'チ' = 0x80
'ツ' = 0x81
'テ' = 0x82
'ト' = 0x83
'ナ' = 0x84
'ニ' = 0x85
'ヌ' = 0x86
'ネ' = 0x87
'' = 0x88
'ハ' = 0x89
'ヒ' = 0x8A
'フ' = 0x8B
'ヘ' = 0x8C
'ホ' = 0x8D
'マ' = 0x8E
'ミ' = 0x8F
'ム' = 0x90
'メ' = 0x91
'モ' = 0x92
'ヤ' = 0x93
'ユ' = 0x94
'ヨ' = 0x95
'ラ' = 0x96
'リ' = 0x97
'ル' = 0x98
'レ' = 0x99
'ロ' = 0x9A
'ワ' = 0x9B
# 0x9C is unused, only defined in jp menu char lut
'ヲ' = 0x9C
'ン' = 0x9D
' ' = 0x9E
' ' = 0x9E
'-' = 0x9F
'ー' = 0x9F
'ぇ' = 0xA0
'っ' = 0xA1
'ゃ' = 0xA2
'ゅ' = 0xA3
'ょ' = 0xA4
'ぁ' = 0xA5
'ぃ' = 0xA6
'ぅ' = 0xA7
'ぉ' = 0xA8
'ェ' = 0xD0
'ッ' = 0xD1
'ャ' = 0xD2
'ュ' = 0xD3
'ョ' = 0xD4
'ァ' = 0xD5
'ィ' = 0xD6
'ゥ' = 0xD7
'ォ' = 0xD8
'@' = 0xDF
'[%]' = 0xE0
'(' = 0xE1
'' = 0xE1
')(' = 0xE2
'' = 0xE2
')' = 0xE3
'' = 0xE3
'+' = 0xE4
'↔' = 0xE4
'&' = 0xE5
':' = 0xE6
'゛' = 0xF0
'゜' = 0xF1
'!' = 0xF2
'' = 0xF2
'%' = 0xF3
'' = 0xF3
'?' = 0xF4
'' = 0xF4
'『' = 0xF5
'』' = 0xF6
'~' = 0xF7
'' = 0xF7
'…' = 0xF8
'$' = 0xF9
'★' = 0xFA
'×' = 0xFB
'・' = 0xFC
'☆' = 0xFD
'\n' = 0xFE
# hiragana or katakana with dakuten
'が' = 0xF0, 0x45
'ぎ' = 0xF0, 0x46
'ぐ' = 0xF0, 0x47
'げ' = 0xF0, 0x48
'ご' = 0xF0, 0x49
'ざ' = 0xF0, 0x4A
'じ' = 0xF0, 0x4B
'ず' = 0xF0, 0x4C
'ぜ' = 0xF0, 0x4D
'ぞ' = 0xF0, 0x4E
'だ' = 0xF0, 0x4F
'ぢ' = 0xF0, 0x50
'づ' = 0xF0, 0x51
'で' = 0xF0, 0x52
'ど' = 0xF0, 0x53
'ば' = 0xF0, 0x59
'び' = 0xF0, 0x5A
'ぶ' = 0xF0, 0x5B
'べ' = 0xF0, 0x5C
'ぼ' = 0xF0, 0x5D
'ガ' = 0xF0, 0x75
'ギ' = 0xF0, 0x76
'グ' = 0xF0, 0x77
'ゲ' = 0xF0, 0x78
'ゴ' = 0xF0, 0x79
'ザ' = 0xF0, 0x7A
'ジ' = 0xF0, 0x7B
'ズ' = 0xF0, 0x7C
'ゼ' = 0xF0, 0x7D
'ゾ' = 0xF0, 0x7E
'ダ' = 0xF0, 0x7F
'ヂ' = 0xF0, 0x80
'ヅ' = 0xF0, 0x81
'デ' = 0xF0, 0x82
'ド' = 0xF0, 0x83
'バ' = 0xF0, 0x89
'ビ' = 0xF0, 0x8A
'ブ' = 0xF0, 0x8B
'ベ' = 0xF0, 0x8C
'ボ' = 0xF0, 0x8D
# hiragana or katakana with handakuten
'ぱ' = 0xF1, 0x59
'ぴ' = 0xF1, 0x5A
'ぷ' = 0xF1, 0x5B
'ぺ' = 0xF1, 0x5C
'ぽ' = 0xF1, 0x5D
'パ' = 0xF1, 0x89
'ピ' = 0xF1, 0x8A
'プ' = 0xF1, 0x8B
'ペ' = 0xF1, 0x8C
'ポ' = 0xF1, 0x8D
# overwritten US symbols
# these symbols overwrite
# a previous symbol.
'^' = 0x50
'|' = 0x51
'<' = 0x52
'>' = 0x53
'[A]' = 0x54
'[B]' = 0x55
'[C]' = 0x56
'[Z]' = 0x57
'[R]' = 0x58
'/' = 0xD0
# multi-text US symbols
'the' = 0xD1
'you' = 0xD2
# EU ROM symbols
'à' = 0x60
'â' = 0x61
'ä' = 0x62
'À' = 0x64
'Â' = 0x65
'Ä' = 0x66
'è' = 0x70
'ê' = 0x71
'ë' = 0x72
'é' = 0x73
'È' = 0x74
'Ê' = 0x75
'Ë' = 0x76
'É' = 0x77
'ù' = 0x80
'û' = 0x81
'ü' = 0x82
'Ù' = 0x84
'Û' = 0x85
'Ü' = 0x86
'ô' = 0x91
'ö' = 0x92
'Ô' = 0x95
'Ö' = 0x96
'î' = 0xA1
'ï' = 0xA2
'ß' = 0xEC
'Ç' = 0xED
'ç' = 0xEE
'„' = 0xF0

30
charmap_menu.txt Normal file
View File

@@ -0,0 +1,30 @@
# Menu HUD chars, only used in JP
# Char values used by text_menu_strings.h.in
'フ' = 0x00
'ァ' = 0x01
'イ' = 0x02
'ル' = 0x03
'セ' = 0x04
'レ' = 0x05
'ク' = 0x06
'ト' = 0x07
'を' = 0x08
'コ' = 0x09
'ピ' = 0x0A
'ー' = 0x0B
'す' = 0x0C
'る' = 0x0D
'け' = 0x0E
'マ' = 0x0F
'リ' = 0x10
'オ' = 0x11
'ス' = 0x12
'ア' = 0x13
'み' = 0x14
'ど' = 0x15
'の' = 0x16
'' = 0x17
'サ' = 0x18
'ウ' = 0x19
'ン' = 0x1A
'ド' = 0x1B

543
enhancements/reonucam.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -71,24 +71,22 @@
// #define DIALOG_INDICATOR
/**
* Adds support for multiple languages to the game.
* Include the English characters that were missing from US segment2 and the rumble pak texture if using rumble.
* J, Q, V, X, Z, ¨, !, !!, ?, &, %, ., and the beta key.
* [MAKE SURE TO INCLUDE EU AND JP/SH BASEROMS IN THE REPO TO OBTAIN THE ASSETS]
* If this is disabled, backup assets will be used.
*/
// #define MULTILANG
// #define COMPLETE_EN_US_SEGMENT2
/**
* Toggles for individual languages. Only works when MULTILANG is enabled.
* Note that English will always be enabled.
* Removes multi-language cake screen.
*/
#define ENABLE_FRENCH
#define ENABLE_GERMAN
// #define ENABLE_JAPANESE
#define ENABLE_SPANISH
#define EU_CUSTOM_CAKE_FIX
/**
* This define enables support for Japanese characters even when multilang or Japanese is not enabled.
* Requires a Japanese baserom.
* Adds multiple languages to the game. Just a placeholder for the most part, because it only works with EU, and must be enabled with EU.
*/
// #define JAPANESE_CHARACTERS
#define MULTILANG (0 || VERSION_EU)
/**
* Prevents infinite death loops by always restoring Mario's health when he's warped to any kind of warp while dead.

View File

@@ -7,7 +7,7 @@
/**
* Enables Goddard (the Mario head).
*/
// #define KEEP_MARIO_HEAD
#define KEEP_MARIO_HEAD
/**
* Enables the Goddard easter egg from Shindou (has no effect if KEEP_MARIO_HEAD is disabled).

Some files were not shown because too many files have changed in this diff Show More