Commit graph

223 commits

Author SHA1 Message Date
MysterD
34e903b89a Merge branch 'unstable' into lua 2022-01-21 19:19:21 -08:00
MysterD
addd16721f Added headless server compile mode 2022-01-21 19:13:41 -08:00
MysterD
0aa1e04f93 More lua improvements
Added mods folder for lua scripts
Created constants.lua so scripts could use constants internal to the C code
Created event hooks
Separated out lua functions into multiple files
2022-01-16 18:07:45 -08:00
MysterD
1a47707be8 Initial LUA support - MarioState read/write 2022-01-16 08:51:29 -08:00
MysterD
7294e127f5 Fixed over 100 code warnings 2021-08-19 18:16:16 -07:00
MysterD
8642479d82 Fix Mac + DISCORD_SDK compilation errors 2021-08-02 02:59:45 -07:00
MysterD
7e1a05a40b DJUI: Replaced old ingame menu with new DJUI menu 2021-07-15 19:37:09 -07:00
MysterD
038c1135b3 Initial DJUI commit
The birth of a custom user interface system.

Has the ability to draw things to the screen at native resolution
regardless of window size.

Components can be nested within one another to an arbitrary depth.

Text rendering is completely rewritten.

Text and images can be clipped by their parent container.
2021-06-18 15:23:59 -07:00
anzz1
d1739648e1
Added Luigi sounds (#77)
* added a new audio bank 10 for luigi sounds
* made some audio memory buffers larger to fix sound cuts
* added option to enable/disable luigi sounds in the sound options menu
* added Andrat's "90's Classic Luigi Voice Pack" as default luigi sounds

Co-authored-by: anzz1 <>
2020-10-16 11:54:59 -07:00
anzz1
7971dbfa3f
Makefile update (#80)
* build with TEXTURE_FIX=1 as default
* disallow building with jp,eu,sh rom versions
2020-10-16 03:00:48 -07:00
MysterD
ed06b57649 Added mod registration system
Allows mods to register themselves so that mismatches don't occur. This
does not automagically detect when someone modified the game, so the
mods will have to insert a function like this into their patch:

static void __attribute__((constructor)) _register_this_mod() {
    network_register_mod("mod name here");
}
2020-10-04 16:41:55 -07:00
MysterD
469fa2ff33 Added 32-bit Discord library for Windows 2020-09-25 23:18:56 -07:00
MysterD
5472f3d13a Add development flag for easier testing 2020-09-19 02:12:49 -07:00
MysterD
4a7b9736b4 Added compile-time flag to disable Discord SDK
In order to support ARM/Mac, discord must be disabled.
To disable compile with:
make DISCORD_SDK=0

Fixes #62
2020-09-19 00:53:56 -07:00
MysterD
a0d5deceff Fix DirectX builds 2020-09-15 21:48:14 -07:00
MysterD
a675f4efd5 Fixed Linux builds 2020-09-14 23:26:55 -07:00
MysterD
5fe5ffda45 Make C-lib link statically again, force various compiler options better 2020-09-14 18:29:47 -07:00
MysterD
3e1b193ea8 Add Discord Game SDK networking system
Allows players to host without forwarding their ports or using a program
like Hamachi.
2020-09-13 03:27:35 -07:00
MysterD
04c21d91bc Added version checking to clients 2020-09-11 16:19:38 -07:00
MysterD
05674f3d69 Force no draw distance on and text saves off 2020-09-04 17:52:48 -07:00
MysterD
1bb0c90741 Add docker-build workarounds and container script 2020-09-04 17:03:35 -07:00
MysterD
9512fde4a5 Added custom packets for mods-of-this-mod
Now a patch can choose to register callbacks for sending and receiving
packets. It's a bit tricky to use but at least it won't collide with
normal packets or other mod packets.
2020-09-04 02:04:37 -07:00
MysterD
d5005c9f37 Served time for crimes against C
Due to my compile & launch scripts, I was silently ignoring warnings
this whole time. I've fixed my process, and gone back to fixed all of
the warnings I could (even outside of my code).
2020-09-04 01:58:54 -07:00
MysterD
621533fae8 Add coop-specific define
Added -DCOOP to identify that this is a coop build so that one patch can
be applied to EX and/or COOP. They can choose to ifdef entity synchronization
out.
2020-09-03 21:49:58 -07:00
MysterD
c88ff19190 Prevent infinite looping of Mario action transitions
There have been several times where the unpredictable behavior of
a remote player where execute_mario_action() would get caught in
an infinite loop. Now we attempt to detect an infinite hang and
escape from it. The sequence of actions will be recorded into an
errorlog.txt file. In debug mode this infinite hang will cause an
assertion to fail, crashing the game. In normal mode the game will
break out of it and hopefully carry on normally after new packets
come in.

I believe this addresses github issue #12 but I can't be sure.
2020-09-01 22:06:36 -07:00
MysterD
8711829664 Merge branch 'nightly' into coop 2020-09-01 18:08:46 -07:00
MysterD
2815f03adb Update Makefile's default compile flags 2020-08-31 23:52:36 -07:00
fgsfds
8a23a8a5c5 add rudimentary SDL1 controller backend
it's more to deal with the mouse not working I suppose
2020-08-30 16:06:22 +03:00
fgsfds
3e9e2595aa add barebones SDL1.2 backends
for that sweet Win9x support
2020-08-15 07:15:28 +03:00
MysterD
a896713510 Made sockets platform-independent, supporting Linux 2020-08-09 13:23:27 -07:00
MysterD
579415dca9 Started synchronizing objects, refactored networking 2020-08-02 01:43:12 -07:00
MysterD
34b1ec76f6 Started adding networking 2020-08-01 20:22:24 -07:00
MysterD
2d2dff6647 Added IMMEDIATELOAD debug flag to skip all intro stuff 2020-07-30 20:42:39 -07:00
CrispyBuns
77eede660b Add files via upload 2020-07-14 10:54:07 -06:00
CrispyBuns
669f1a6ab1 Add files via upload 2020-07-14 10:54:07 -06:00
fgsfds
765a08c846 merge gfx updates from sm64-port 2020-07-07 15:21:14 +03:00
n64
6330644371 Refresh 11 2020-07-05 14:15:43 +03:00
fgsfds
99f69eff1c throw out unused libultra sources 2020-06-21 02:21:46 +03:00
fgsfds
7331fab8d8 fix paths to sound data with EXTERNAL_DATA=1 2020-06-20 18:05:45 +03:00
fgsfds
fe44da4794 fix GRUCODE defines 2020-06-20 04:32:12 +03:00
n64
4a448cf10d merge refresh 10 2020-06-20 02:49:59 +03:00
fgsfds
6686a2d7d9 use GLES shaders in web build 2020-06-17 00:15:27 +03:00
fgsfds
1d6469d2cf fix web build 2020-06-16 22:24:54 +03:00
fgsfds
7fe8645fcd thank you case sensitive file systems very cool 2020-06-13 00:53:01 +03:00
fgsfds
3dff608c7b add D3D12 headers because they're missing in mingw 2020-06-11 22:24:46 +03:00
fgsfds
a81a8e6ef1 added D3D11 and D3D12 renderers from Emil/n64-fast3d-engine
along with options to select backends for windowing, rendering, audio and controls in the Makefile

use RENDER_API=D3D11 or D3D12 for the D3D renderers, that will also automatically enable using DXGI for windowing; SDL2 will still be used for input and audio for the time being

also adds three-point filtering to the OpenGL backend and an option for it in the menu
2020-06-11 22:24:46 +03:00
fgsfds
c04c315410 move the discord-rpc libs to lib/ 2020-06-09 20:19:22 +03:00
Jan
233c2d8f72
Merge branch 'nightly' into feature/discordrpc 2020-06-09 17:16:42 +02:00
Jan200101
5933742f82
replace static linking with dynamically loaded libraries 2020-06-09 17:15:49 +02:00
Jan200101
f1ba90d25b
add discord rpc support 2020-06-09 12:01:31 +02:00
fgsfds
504b38725e use 'python3 mkzip' instead of just 'mkzip' 2020-06-08 06:06:40 +03:00
fgsfds
9ebde3c219 add sky tiles to the zip as well 2020-06-07 22:00:57 +03:00
fgsfds
4feacc0065 add virtual filesystem thing w/ ZIP support
similar to Quake 3: all the archives and folders get mounted to the same mountpoint in the VFS, read access to files in the VFS is transparent
2020-06-07 21:06:25 +03:00
Zerocker
e7218f043b Add separate DEBUG flag for tools 2020-06-07 21:16:09 +09:00
Zerocker
2ae6e0fac0 Remove old -O2 flag 2020-06-05 21:12:44 +09:00
Zerocker
caea5ec4cb Nuke old VERSION OPT_FLAGS and add DEBUG flag 2020-06-05 20:40:08 +09:00
fgsfds
35382b83a1 roll back rsync
apparently I'm the only man in existence who has it installed by default
2020-06-02 22:37:43 +03:00
fgsfds
afca02c0a7 use 'rsync' instead of 'find' + 'cp -r --parents'
mostly because cp is fucking weird on OSX, thank you Apple very cool
2020-06-02 17:57:45 +03:00
fgsfds
6cee636382 change EXTERNAL_TEXTURES to EXTERNAL_DATA; load sound data from external files
no separation tho, just binary blobs o shit
2020-06-01 12:13:05 +03:00
fgsfds
e3401f1547 use a script to output zero-terminated strings instead of bash printf 2020-05-26 02:59:38 +03:00
fgsfds
9f9e79ed9d build the res target by default when EXTERNAL_TEXTURES is enabled 2020-05-26 02:18:09 +03:00
fgsfds
1873f7aba5 game now uses non-working directory paths by default
saves by default go into XDG_DATA_HOME/sm64pc

external data is read from the executable directory, if it's not found there on Unix systems the game will attempt to read it from some paths like /usr/local/share/sm64pc

both save data and readonly data fall back to other options in case of a problem

behavior can be overridden by specifying --datapath and --savepath on the CLI

both of those will expand the exclamation point ('!') to the executable path, e. g. --savepath '!/save'
2020-05-25 07:19:35 +03:00
fgsfds
9825b02f50 add option to load textures from external files
this stores the null terminated texture name instead of the texture data

activated with EXTERNAL_TEXTURES=1
2020-05-25 04:22:03 +03:00
fgsfds
eeca3b0ec0 remove debug print in Makefile 2020-05-25 00:58:43 +03:00
fgsfds
686ea5be7b separate options menu strings and add JP strings 2020-05-22 01:36:49 +03:00
IvanDSM
1298cd6017 Add commit hash to window title for nightly builds.
This also adds a flag for detecting nightly builds in the code.
2020-05-21 14:19:20 -03:00
fgsfds
c540712154 add GL1.3 (or 1.2 with some extensions) rendering backend
there are still some graphical glitches and no fog
2020-05-20 07:00:04 +03:00
fgsfds
c57bacdfd7 clean up some toolchain compatibility fixes
also rename the abs() macro to not cause any fucking conflicts ever again
2020-05-19 22:22:52 +03:00
Zerocker
6a628322ba Merge remote-tracking branch 'upstream/nightly' into nightly 2020-05-20 00:02:29 +09:00
zerocloude
d604711468
Merge pull request #153 from coltongit/patch-23
TARGET_N64 removal
2020-05-19 23:37:51 +09:00
Colton Rushton
41828987f2 Made the game even easier to compile in MXE. 2020-05-19 10:38:08 -03:00
Colton Rushton
9230cb832d Refactor PR #156 2020-05-19 10:32:01 -03:00
Zerocker
2417004d20 Added flag to support only text-based savefiles 2020-05-18 17:46:50 +09:00
Colton G. Rushton
71d7750d45
Makefile updated to thanos TARGET_N64 2020-05-17 08:19:04 -03:00
Colton G. Rushton
5d800819df
fix small bug with MXE compilation
the no-pie command line option was being sent to MXE when it shouldn't have been, breaking MXE compilation. Urgent fix.
2020-05-16 22:54:03 -03:00
Colton G. Rushton
410090a84c
Fix a few minor bugs with MXE compilation 2020-05-16 21:24:29 -03:00
Colton G. Rushton
bd4187c92b
Make MXE easier to compile in
Specifying the target arch MXE expects in the makefile makes it easier for MXE users to compile the game.
2020-05-16 21:04:55 -03:00
fgsfds
54f986a528
Merge branch 'master' into osx_build_clean 2020-05-17 01:27:51 +03:00
fgsfds
009aef1da5
Merge pull request #132 from coltongit/patch-12
Further fixes to MXE compilation
2020-05-17 01:24:14 +03:00
Colton G. Rushton
5c9e3c60a7
strip out now-needless NOBZERO flag 2020-05-16 19:20:45 -03:00
Colton G. Rushton
8736776545
Another fix to MXE 2020-05-16 17:20:33 -03:00
Colton G. Rushton
3d7bdc300c
Add NO_BZERO for MXE 2020-05-16 17:12:56 -03:00
fgsfds
ff844643d2
Merge branch 'master' into master 2020-05-16 22:47:39 +03:00
Hyenadae
5dd43ad674 OSX_BUILD cleaned commit 2020-05-16 15:30:27 -04:00
Colton G. Rushton
f4a3757145
Further fixes to MXE compilation
Adds on the work of PR #130.
2020-05-16 16:16:44 -03:00
fgsfds
efadc481ec
Merge pull request #130 from coltongit/patch-11
Fix compilation for MXE on Linux and WSL
2020-05-16 21:05:55 +03:00
Colton G. Rushton
3c6bf53dea
even further cleanup of the makefile 2020-05-16 14:59:27 -03:00
Colton G. Rushton
50af1393c3
Further clean up the makefile fixes 2020-05-16 14:38:47 -03:00
Colton G. Rushton
0a6ea9e9d4
Clean up the makefile fixes a bit 2020-05-16 14:35:56 -03:00
fgsfds
0446b244eb separate EXT_OPTIONS_MENU into its own option 2020-05-16 19:53:36 +03:00
Colton G. Rushton
31c91c6968
Nah dude, that's possible under WINDOWS_BUILD=1 2020-05-16 13:46:18 -03:00
Colton G. Rushton
74058cf32f
Simplify MXE fixes 2020-05-16 13:01:23 -03:00
Colton G. Rushton
17695a7b4f
fix objcopy on MXE builds 2020-05-16 12:56:58 -03:00
Colton G. Rushton
b4cb8a7f65
remove needless ifeq 2020-05-16 12:30:25 -03:00
Colton G. Rushton
0f688c80d0
removing a pesky endif 2020-05-16 12:26:06 -03:00
Colton G. Rushton
07aa2cd234
Fix compilation for MXE on Linux and WSL
Even though this isn't usually an option on the wiki, this will allow for cross-compilation of sm64pc through MXE on both Linux and WSL, making Wine testing much easier.
2020-05-16 12:21:16 -03:00
Colton G. Rushton
a83fa35c4d
Add compile-time texture fixes to Makefile
Add compile-time texture fixes as a Makefile build flag, set when `TEXTURE_FIX=1`.
2020-05-16 09:41:57 -03:00
Vinícius R. Miguel
4a13fd3380 Add in-game control binding menu
Originally on the testing branch
2020-05-15 15:38:35 -03:00
uwabami
24b672df33 Merge branch 'master' of https://github.com/sm64pc/sm64pc 2020-05-14 14:35:15 +02:00
Hyenadae
829c1f29a8 Fixed more border-related code and fixes to N64 build removal 2020-05-14 05:18:12 -04:00
Vinícius R. Miguel
47c4b7b41b
Show the console on Windows setting WINDOWS_CONSOLE=1 2020-05-13 13:23:52 -03:00
Jan200101
5f99e21592
extend cross compilation support 2020-05-12 16:08:34 +02:00
uwabami
c98a263cf4 adding option to disable draw distance 2020-05-12 09:26:16 +02:00
IvanDSM
1245f3c75e Windows build clarifications. 2020-05-10 16:50:48 -03:00
IvanDSM
5e2e510500 Disable bettercamera by default. 2020-05-10 15:08:59 -03:00
IvanDSM
6c7df61480 Add warning about WINDOWS_BUILD 2020-05-10 13:13:15 -03:00
IvanDSM
a0068c747b Fix Web build.
The ifeq($(TARGET_WEB),0) check on line 49 wasn't being endif'ed properly, which caused the rest of the code up until 244 (where an incorrect endif was placed) to be ignored.
This commit fixes that issue and allows web builds to work normally.
2020-05-10 12:45:46 -03:00
IvanDSM
88b063d7a1 New Makefile and fgsfdsfgs fixes
New Makefile based on master branch Makefile.
Ported fdsfgsfds' OOB memory access and save buffer corruption fixes.
2020-05-10 05:11:27 -03:00
Jan200101
be340547c4
port analog camera code to the master codebase 2020-05-08 13:41:35 +02:00
Jan200101
c540898c71
revert -O2 when non matching,fix EU compile,disable cursor in fullscreen
- O2 caused problems with audio on US builds when targeting generic systems
- compiling an EU version previously caused problems due to race condition in the Makefile
- not being able to see the cursor on a small window is annoying, only hide on fullscreen
2020-05-08 13:41:12 +02:00
Hyenadae
dba8760aad Makefile additions and part of SDL2.C Pi-GLES define 2020-05-08 08:38:50 +01:00
HengiFettlich
31bb068358 Update Makefile
remove unnecessary dependencies
2020-05-07 20:46:35 +02:00
Jan200101
e87c070517
merge PC port onto the decompile 2020-05-07 20:21:22 +02:00
n64
c45aa301bb Refresh 8 2020-04-03 14:57:26 -04:00
n64
06ec56df7f Refresh 7 2020-03-01 22:42:52 -05:00
n64
9a801cb96d refresh 6 2020-02-03 00:51:26 -05:00
n64
9273f38df1 refresh 5 2020-01-03 10:38:57 -05:00
n64
04732af90b refresh 4 2019-12-01 21:52:53 -05:00
n64
a7c423cb43 Refresh 3 2019-11-03 14:36:27 -05:00
n64
b1665cdfdb HOTFIX: Text Makefile dependency 2019-10-05 19:40:22 -04:00
n64
52e605f075 Refresh 2 2019-10-05 15:08:05 -04:00
n64
1ef98ec785 Refresh 1 2019-09-01 15:50:50 -04:00
n64
89e8690857 init2 2019-08-25 00:46:40 -04:00