Compare commits

..

230 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
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
155 changed files with 5799 additions and 3178 deletions

3
.gitignore vendored
View File

@@ -2149,6 +2149,3 @@ lib/libs2d_engine.a
# :Zone_Identifier files
*Zone.Identifier
# user-specific config file
include/config/config_local.h

View File

@@ -2,7 +2,9 @@
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in the repo.
* @Reonu @gheskett @arthurtilly
* @Reonu
* @thecozies
* @gheskett
# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners

View File

@@ -269,7 +269,7 @@ BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
COMPRESS ?= yay0
COMPRESS ?= rnc1
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
ifeq ($(COMPRESS),gzip)
DEFINES += GZIP=1
@@ -399,9 +399,6 @@ GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
# Ignore all .inc.c files
C_FILES := $(filter-out %.inc.c,$(C_FILES))
# Sound files
SOUND_BANK_FILES := $(wildcard sound/sound_banks/*.json)
SOUND_SAMPLE_DIRS := $(wildcard sound/samples/*)
@@ -444,8 +441,6 @@ else ifneq ($(call find-command,mips-linux-gnu-ld),)
CROSS := mips-linux-gnu-
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
CROSS := mips64-linux-gnu-
else ifneq ($(call find-command,mips64-none-elf-ld),)
CROSS := mips64-none-elf-
else ifneq ($(call find-command,mips-ld),)
CROSS := mips-
else
@@ -553,13 +548,7 @@ ifneq (,$(call find-command,armips))
else
RSPASM := $(TOOLS_DIR)/armips
endif
ifneq (,$(call find-command,wslview))
EMULATOR = "/mnt/c/Program Files (x86)/parallel-launcher/parallel-launcher.exe"
else
EMULATOR = parallel-launcher
endif
EMULATOR = mupen64plus
EMU_FLAGS =
ifneq (,$(call find-command,wslview))
@@ -780,7 +769,7 @@ endif
$(BUILD_DIR)/%.table: %.aiff
$(call print,Extracting codebook:,$<,$@)
$(V)$(AIFF_EXTRACT_CODEBOOK) $< $@
$(V)$(AIFF_EXTRACT_CODEBOOK) $< >$@
$(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff
$(call print,Encoding ADPCM:,$(word 2,$^),$@)
@@ -924,7 +913,7 @@ $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
# Link SM64 ELF file
$(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc -lrtc
# Build ROM
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))

View File

@@ -21,7 +21,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **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

View File

@@ -1 +1 @@
v2.3.0
v2.2.0

View File

@@ -6,6 +6,7 @@
#include "types.h"
#include "game/ingame_menu.h"
#include "game/puppyprint.h"
#include "game/segment2.h"
#include "make_const_nonconst.h"
@@ -2474,7 +2475,6 @@ static const Vtx vertex_billboard_num[] = {
// 0x0200EFF0 - 0x0200F038
const Gfx dl_billboard_num_begin[] = {
gsDPPipeSync(),
gsDPSetTextureFilter(G_TF_POINT),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, (G_TX_WRAP | G_TX_NOMIRROR), G_TX_NOMASK, G_TX_NOLOD, (G_TX_WRAP | G_TX_NOMIRROR), G_TX_NOMASK, G_TX_NOLOD),
@@ -2491,7 +2491,6 @@ const Gfx dl_billboard_num_end[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
@@ -2671,7 +2670,7 @@ ALIGNED8 static const Texture texture_shadow_quarter_square[] = {
};
#endif
UNUSED ALIGNED8 static const Texture texture_radial_light[] = {
UNUSED ALIGNED8 const Texture texture_radial_light[] = {
#include "textures/segment2/light_quarter_circle.ia16.inc.c"
};
@@ -2970,7 +2969,8 @@ const Gfx dl_ia8_up_arrow_end[] = {
gsSPEndDisplayList(),
};
// 0x02014958 - 0x02014960
#include "segment2/controllers.c.in"
#include "segment2/rumble_pak.c.in"
// 0x02014970 - 0x020149A8
const Gfx dl_paintings_rippling_begin[] = {

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

@@ -2694,7 +2694,7 @@ const BehaviorScript bhvSushiShark[] = {
const BehaviorScript bhvJrbSlidingBox[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_NO_AUTO_DISPLACEMENT),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_COLLISION_DATA(jrb_seg7_collision_floating_box),
SET_HOME(),
BEGIN_LOOP(),
@@ -5437,7 +5437,11 @@ const BehaviorScript bhvTTCPendulum[] = {
const BehaviorScript bhvTTCTreadmill[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_NO_AUTO_DISPLACEMENT)),
#ifdef PLATFORM_DISPLACEMENT_2
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_VELOCITY_PLATFORM)),
#else
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
#endif
SET_FLOAT(oCollisionDistance, 750),
CALL_NATIVE(bhv_ttc_treadmill_init),
DELAY(1),

View File

@@ -177,15 +177,9 @@ def main():
# presence of the correct roms automatically
# Make sure tools exist
tools = [ "n64graphics", "skyconv", "mio0", "aifc_decode" ]
if os.name == 'nt':
tools = [tool + ".exe" for tool in tools]
make = "mingw32-make"
else:
make = "make"
cmd = [make, "-s", "-C", "tools/"] + tools
subprocess.check_call(cmd)
subprocess.check_call(
["make", "-s", "-C", "tools/", "n64graphics", "skyconv", "mio0", "aifc_decode"]
)
# Go through the assets in roughly alphabetical order (but assets in the same
# mio0 file still go together).

View File

@@ -1,28 +0,0 @@
{
"version": 1.0,
"autoLoad": true,
"microcode": "F3DEX2/LX2",
"rdpDefaults": {
"geometryMode": {
"zBuffer": true,
"shade": true,
"cullBack": true,
"lighting": true,
"shadeSmooth": true
},
"otherModeH": {
"textureConvert": "G_TC_FILT",
"textureFilter": "G_TF_BILERP",
"perspectiveCorrection": "G_TP_PERSP",
"pipelineMode": "G_PM_1PRIMITIVE"
},
"otherModeL": {},
"other": {}
},
"sm64": {
"refresh_version": "HackerSM64 2.3.0",
"compression_format": "yay0",
"force_extended_ram": false,
"matstack_fix": true
}
}

View File

@@ -19,10 +19,6 @@
#include "config/config_objects.h"
#include "config/config_rom.h"
// Local config - include a gitignore'd config file that's specific to just the user (if the file exists)
#if __has_include("config/config_local.h")
#include "config/config_local.h"
#endif
// WARNING: Compatibility safeguards - don't remove this file unless you know what you're doing
/* WARNING: Compatibility safeguards - don't remove this file unless you know what you're doing */
#include "config/config_safeguards.h"

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).

View File

@@ -136,8 +136,14 @@
*/
#define BUGFIX_DIALOG_TIME_STOP
/**
* Enables Platform Displacement 2, an upgrade to the physics involving moving platforms and how Mario interacts with them.
*/
#define PLATFORM_DISPLACEMENT_2
/**
* Inertia defines; allow Mario to preserve his momemtum when leaving moving platforms.
* These require Platform Displacement 2 to be enabled.
*/
#define MARIO_INERTIA_UPWARD
// #define MARIO_INERTIA_LATERAL

View File

@@ -19,23 +19,45 @@
/**
* Enables Rumble Pak Support.
* Currently not recommended, as it may cause random crashes.
*/
// #define ENABLE_RUMBLE (1 || VERSION_SH)
#define ENABLE_RUMBLE
/**
* The maximum number of supported players/controllers. 1-4.
* This will save performance if the player has extra unused controllers plugged in.
* NOTE: Default is 2, maximum is 4.
* NOTE: This needs to be at least 2 for now for gamecube controller swap to work.
* NOTE: Default is 1, maximum is 4.
* NOTE: If this is 1, the first controller with input after boot will become player 1. Otherwise, player numbers are automatically assigned via port order.
* NOTE: It is highly recommended to enable ENABLE_STATUS_REPOLLING_GUI if this is greater than 1.
*/
#define MAX_NUM_PLAYERS 2
#define MAX_NUM_PLAYERS 1
/**
* Enables a GUI that, while opem, allows plugging/unplugging controllers and changing the controller order.
* Triggered by unplugging any active controller.
*/
#define ENABLE_STATUS_REPOLLING_GUI
/**
* Allows the player to use the button combo defined in input.h to trigger status repolling at any time during gameplay.
*/
#define ENABLE_STATUS_REPOLLING_COMBO_IN_GAMEPLAY
/**
* Highlights the currently pressed buttons on controllers in the status repolling GUI.
*/
#define CONTROLLERS_INPUT_DISPLAY
/**
* Informs supported emulators to default to GameCube controller inputs.
*/
// #define EMU_DEFAULT_TO_GCN
/**
* RCVI hack. Increases performance on emulator, and does nothing on console.
* Might break on some emulators. Use at your own risk, and don't use it unless you actually need the extra performance.
*/
// #define RCVI_HACK
/**
* Screen Size Defines.
*/
@@ -48,9 +70,3 @@
*/
#define BORDER_HEIGHT_CONSOLE 0
#define BORDER_HEIGHT_EMULATOR 0
/**
* RCVI hack. Increases performance on emulator, and does nothing on console.
* Might break on some emulators. Use at your own risk, and don't use it unless you actually need the extra performance.
*/
// #define RCVI_HACK

View File

@@ -188,6 +188,15 @@
* config_rom.h
*/
#ifdef VERSION_SH
#undef ENABLE_RUMBLE
#define ENABLE_RUMBLE
#endif // VERSION_SH
#ifndef ENABLE_STATUS_REPOLLING_GUI
#undef CONTROLLERS_INPUT_DISPLAY
#endif // !ENABLE_STATUS_REPOLLING_GUI
#ifndef TARGET_N64
#undef BORDER_HEIGHT_CONSOLE
#define BORDER_HEIGHT_CONSOLE 0

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +1,18 @@
/*---------------------------------------------------------------------*
Copyright (C) 1998 Nintendo.
$RCSfile: os_motor.h,v $
$Revision: 1.1.1.1 $
$Date: 2002/05/02 03:28:25 $
*---------------------------------------------------------------------*/
#ifndef _OS_MOTOR_H_
#define _OS_MOTOR_H_
#define _OS_MOTOR_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif
#endif /* _LANGUAGE_C_PLUS_PLUS */
#include <PR/ultratypes.h>
#include "os_message.h"
@@ -61,23 +61,26 @@ extern "C" {
/* Rumble PAK interface */
extern s32 osMotorInit(OSMesgQueue *mq, OSPfs *pfs, int controller_no);
#if 1
#define MOTOR_START 1
#define MOTOR_STOP 0
#define osMotorStart(x) __osMotorAccess((x), MOTOR_START)
#define osMotorStop(x) __osMotorAccess((x), MOTOR_STOP)
extern s32 __osMotorAccess(OSPfs *pfs, s32 flag);
#else
extern s32 osMotorStop( OSPfs *pfs);
extern s32 osMotorStart(OSPfs *pfs);
#endif
extern s32 osMotorInit( OSMesgQueue *mq, OSPfs *pfs, int controller_no);
extern s32 osMotorInitEx(OSMesgQueue *mq, OSPfs *pfs, int controller_no);
#define MOTOR_MASK_N64 0b01
#define MOTOR_MASK_GCN 0b11
enum OSMotorOP {
MOTOR_STOP,
MOTOR_START,
MOTOR_STOP_HARD, // GCN only.
};
#define osMotorStopHard(x) __osMotorAccessEx((x), MOTOR_STOP_HARD)
#define osMotorStart(x) __osMotorAccessEx((x), MOTOR_START)
#define osMotorStop(x) __osMotorAccessEx((x), MOTOR_STOP)
extern s32 __osMotorAccess( OSPfs *pfs, s32 flag);
extern s32 __osMotorAccessEx(OSPfs *pfs, s32 flag);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#ifdef _LANGUAGE_C_PLUS_PLUS
}
#endif
#endif /* _LANGUAGE_C_PLUS_PLUS */
#endif /* !_OS_MOTOR_H_ */

View File

@@ -21,18 +21,18 @@
/*---------------------------------------------------------------------*
Copyright (C) 1998 Nintendo. (Originated by SGI)
$RCSfile: os_pfs.h,v $
$Revision: 1.1.1.1 $
$Date: 2002/05/02 03:28:25 $
*---------------------------------------------------------------------*/
#ifndef _OS_PFS_H_
#define _OS_PFS_H_
#define _OS_PFS_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif
#endif /* _LANGUAGE_C_PLUS_PLUS */
#include <PR/ultratypes.h>
#include "os_message.h"
@@ -50,28 +50,28 @@ extern "C" {
* Structure for file system
*/
typedef struct {
int status;
OSMesgQueue *queue;
int channel;
u8 id[32];
u8 label[32];
int version;
int dir_size;
int inode_table; /* block location */
int minode_table; /* mirrioring inode_table */
int dir_table; /* block location */
int inode_start_page; /* page # */
u8 banks;
u8 activebank;
} OSPfs;
/*0x00*/ int status;
/*0x04*/ OSMesgQueue *queue;
/*0x08*/ int channel;
/*0x0C*/ u8 id[32];
/*0x2C*/ u8 label[32];
/*0x4C*/ int version;
/*0x50*/ int dir_size;
/*0x54*/ int inode_table; /* block location */
/*0x58*/ int minode_table; /* mirrioring inode_table */
/*0x5C*/ int dir_table; /* block location */
/*0x60*/ int inode_start_page; /* page # */
/*0x64*/ u8 banks;
/*0x65*/ u8 activebank;
} OSPfs; /*0x68*/
typedef struct {
u32 file_size; /* bytes */
u32 game_code;
u16 company_code;
char ext_name[4];
char game_name[16];
} OSPfsState;
/*0x00*/ u32 file_size; /* bytes */
/*0x04*/ u32 game_code;
/*0x08*/ u16 company_code;
/*0x0A*/ char ext_name[4];
/*0x0E*/ char game_name[16];
} OSPfsState; /*0x20*/
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
@@ -83,45 +83,48 @@ typedef struct {
*/
/* File System size */
#define OS_PFS_VERSION 0x0200
#define OS_PFS_VERSION_HI (OS_PFS_VERSION >> 8)
#define OS_PFS_VERSION_LO (OS_PFS_VERSION & 255)
#define OS_PFS_VERSION 0x0200
#define OS_PFS_VERSION_HI (OS_PFS_VERSION >> 8) // 0x0002
#define OS_PFS_VERSION_LO (OS_PFS_VERSION & 0xFF) // 0x0000
#define PFS_FILE_NAME_LEN 16
#define PFS_FILE_EXT_LEN 4
#define BLOCKSIZE 32 /* bytes */
#define PFS_ONE_PAGE 8 /* blocks */
#define PFS_MAX_BANKS 62
#define PFS_FILE_NAME_LEN sizeof(((OSPfsState*)0)->game_name) // 16
#define PFS_FILE_EXT_LEN sizeof(((OSPfsState*)0)->ext_name ) // 4
#define BLOCKSIZE 32 /* bytes */
#define PFS_ONE_PAGE 8 /* blocks */
#define PFS_MAX_BANKS 62
/* File System flag */
#define PFS_READ 0
#define PFS_WRITE 1
#define PFS_CREATE 2
enum OSPfsFlag {
PFS_READ,
PFS_WRITE,
PFS_CREATE,
};
/* File System status */
#define PFS_INITIALIZED 0x1
#define PFS_CORRUPTED 0x2 /* File system was corrupted */
#define PFS_ID_BROKEN 0x4
#define PFS_MOTOR_INITIALIZED 0x8
#define PFS_GBPAK_INITIALIZED 0x10
#define PFS_STATUS_NONE 0x00
#define PFS_INITIALIZED (1 << 0) // 0x01
#define PFS_CORRUPTED (1 << 1) // 0x02 /* File system was corrupted */
#define PFS_ID_BROKEN (1 << 2) // 0x04
#define PFS_MOTOR_INITIALIZED (1 << 3) // 0x08
#define PFS_GBPAK_INITIALIZED (1 << 4) // 0x10
/* File System error number */
#define PFS_ERR_NOPACK 1 /* no memory card is plugged or */
#define PFS_ERR_NEW_PACK 2 /* ram pack has been changed to a */
/* different one */
#define PFS_ERR_INCONSISTENT 3 /* need to run Pfschecker */
#define PFS_ERR_CONTRFAIL CONT_OVERRUN_ERROR
#define PFS_ERR_INVALID 5 /* invalid parameter or file not exist*/
#define PFS_ERR_BAD_DATA 6 /* the data read from pack are bad*/
#define PFS_DATA_FULL 7 /* no free pages on ram pack */
#define PFS_DIR_FULL 8 /* no free directories on ram pack*/
#define PFS_ERR_EXIST 9 /* file exists */
#define PFS_ERR_ID_FATAL 10 /* dead ram pack */
#define PFS_ERR_DEVICE 11 /* wrong device type*/
#define PFS_ERR_NO_GBCART 12 /* no gb cartridge (64GB-PAK) */
#define PFS_ERR_NEW_GBCART 13 /* gb cartridge may be changed */
enum OSPfsError {
PFS_ERR_SUCCESS, /* no error */
PFS_ERR_NOPACK, /* no memory card is plugged or */
PFS_ERR_NEW_PACK, /* ram pack has been changed to a different one */
PFS_ERR_INCONSISTENT, /* need to run Pfschecker */
PFS_ERR_CONTRFAIL, /* CONT_OVERRUN_ERROR */
PFS_ERR_INVALID, /* invalid parameter or file not exist */
PFS_ERR_BAD_DATA, /* the data read from pack are bad */
PFS_DATA_FULL, /* no free pages on ram pack */
PFS_DIR_FULL, /* no free directories on ram pack */
PFS_ERR_EXIST, /* file exists */
PFS_ERR_ID_FATAL, /* dead ram pack */
PFS_ERR_DEVICE, /* wrong device type */
PFS_ERR_NO_GBCART, /* no gb cartridge (64GB-PAK) */
PFS_ERR_NEW_GBCART, /* gb cartridge may be changed */
};
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
@@ -165,10 +168,10 @@ extern s32 osPfsFreeBlocks( OSPfs *pfs, s32 *bytes_not_used);
extern s32 osPfsNumFiles( OSPfs *pfs, s32 *max_files, s32 *files_used);
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#ifdef _LANGUAGE_C_PLUS_PLUS
}
#endif
#endif /* _LANGUAGE_C_PLUS_PLUS */
#endif /* !_OS_PFS_H_ */

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