Commit Graph

166 Commits (95c00d5f5927d27e09f0d21dcd79b9a1c89021e7)

Author SHA1 Message Date
MysterD 38e6b5d340 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 b7f4ae735d 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 42736d9d38 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 9d3390f4b2 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 32e97c0c92 Added 32-bit Discord library for Windows 2020-09-25 23:18:56 -07:00
MysterD 67342de794 Add development flag for easier testing 2020-09-19 02:12:49 -07:00
MysterD df6cac3cab 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 663da861cb Fix DirectX builds 2020-09-15 21:48:14 -07:00
MysterD 6ecddd939a Fixed Linux builds 2020-09-14 23:26:55 -07:00
MysterD ece4d2bc93 Make C-lib link statically again, force various compiler options better 2020-09-14 18:29:47 -07:00
MysterD 15601ac856 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 33d52ef31d Added version checking to clients 2020-09-11 16:19:38 -07:00
MysterD c93096c2a6 Force no draw distance on and text saves off 2020-09-04 17:52:48 -07:00
MysterD 3d51e21be9 Add docker-build workarounds and container script 2020-09-04 17:03:35 -07:00
MysterD fc4d4d3d99 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 7c6298acbc 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 e949767243 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 ff1946a7f6 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 a8db9caede Merge branch 'nightly' into coop 2020-09-01 18:08:46 -07:00
MysterD 6558a8f43d Update Makefile's default compile flags 2020-08-31 23:52:36 -07:00
fgsfds e539a14374 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 5f38df53a5 add barebones SDL1.2 backends
for that sweet Win9x support
2020-08-15 07:15:28 +03:00
MysterD 09d975aea1 Made sockets platform-independent, supporting Linux 2020-08-09 13:23:27 -07:00
MysterD ae1f5bf892 Started synchronizing objects, refactored networking 2020-08-02 01:43:12 -07:00
MysterD ba265e9738 Started adding networking 2020-08-01 20:22:24 -07:00
MysterD 7cc01ab03d Added IMMEDIATELOAD debug flag to skip all intro stuff 2020-07-30 20:42:39 -07:00
CrispyBuns 246fa31aea Add files via upload 2020-07-14 10:54:07 -06:00
CrispyBuns f00669402a Add files via upload 2020-07-14 10:54:07 -06:00
fgsfds f2d64cc43d merge gfx updates from sm64-port 2020-07-07 15:21:14 +03:00
n64 6cf747b7d0 Refresh 11 2020-07-05 14:15:43 +03:00
fgsfds 8fa922c5e0 throw out unused libultra sources 2020-06-21 02:21:46 +03:00
fgsfds 8cd2d1b3c4 fix paths to sound data with EXTERNAL_DATA=1 2020-06-20 18:05:45 +03:00
fgsfds 3f228dd1bf fix GRUCODE defines 2020-06-20 04:32:12 +03:00
n64 5bee83faa8 merge refresh 10 2020-06-20 02:49:59 +03:00
fgsfds 75d5975dd9 use GLES shaders in web build 2020-06-17 00:15:27 +03:00
fgsfds 52c149b796 fix web build 2020-06-16 22:24:54 +03:00
fgsfds 2fd045651c thank you case sensitive file systems very cool 2020-06-13 00:53:01 +03:00
fgsfds 1559d03293 add D3D12 headers because they're missing in mingw 2020-06-11 22:24:46 +03:00
fgsfds 0493d12839 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 c778c39ad0 move the discord-rpc libs to lib/ 2020-06-09 20:19:22 +03:00
Jan 26914435a9 Merge branch 'nightly' into feature/discordrpc 2020-06-09 17:16:42 +02:00
Jan200101 928835bfef replace static linking with dynamically loaded libraries 2020-06-09 17:15:49 +02:00
Jan200101 55f543f1cc add discord rpc support 2020-06-09 12:01:31 +02:00
fgsfds 0e34f48267 use 'python3 mkzip' instead of just 'mkzip' 2020-06-08 06:06:40 +03:00
fgsfds dc29cb4081 add sky tiles to the zip as well 2020-06-07 22:00:57 +03:00
fgsfds 5c4d895fec 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 34714d8fd6 Add separate DEBUG flag for tools 2020-06-07 21:16:09 +09:00
Zerocker f9496d274d Remove old -O2 flag 2020-06-05 21:12:44 +09:00
Zerocker 7dfcbd081a Nuke old VERSION OPT_FLAGS and add DEBUG flag 2020-06-05 20:40:08 +09:00
fgsfds 8f697aad49 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 88bad645ed 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 eed9db79a7 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 255174fc4d use a script to output zero-terminated strings instead of bash printf 2020-05-26 02:59:38 +03:00
fgsfds 9e3f6e33e9 build the res target by default when EXTERNAL_TEXTURES is enabled 2020-05-26 02:18:09 +03:00
fgsfds 5524af2855 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 f4252e311e 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 fdd0057ffc remove debug print in Makefile 2020-05-25 00:58:43 +03:00
fgsfds d7331f176b separate options menu strings and add JP strings 2020-05-22 01:36:49 +03:00
IvanDSM 82500919c7 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 bcfc1160db 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 4fdaa3475f 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 219ca905f9 Merge remote-tracking branch 'upstream/nightly' into nightly 2020-05-20 00:02:29 +09:00
zerocloude ffb45b0a60 Merge pull request #153 from coltongit/patch-23
TARGET_N64 removal
2020-05-19 23:37:51 +09:00
Colton Rushton eaf1f51b0d Made the game even easier to compile in MXE. 2020-05-19 10:38:08 -03:00
Colton Rushton 2170a4cee9 Refactor PR #156 2020-05-19 10:32:01 -03:00
Zerocker 68ed80fa67 Added flag to support only text-based savefiles 2020-05-18 17:46:50 +09:00
Colton G. Rushton ff6caad6b0 Makefile updated to thanos TARGET_N64 2020-05-17 08:19:04 -03:00
Colton G. Rushton 66e448ac67 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 4e9584e178 Fix a few minor bugs with MXE compilation 2020-05-16 21:24:29 -03:00
Colton G. Rushton 9921c12d5b 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 e519d970fa Merge branch 'master' into osx_build_clean 2020-05-17 01:27:51 +03:00
fgsfds e949d0595c Merge pull request #132 from coltongit/patch-12
Further fixes to MXE compilation
2020-05-17 01:24:14 +03:00
Colton G. Rushton 4da08e8449 strip out now-needless NOBZERO flag 2020-05-16 19:20:45 -03:00
Colton G. Rushton 06d1ca4a6a Another fix to MXE 2020-05-16 17:20:33 -03:00
Colton G. Rushton e84fa5fab2 Add NO_BZERO for MXE 2020-05-16 17:12:56 -03:00
fgsfds 23055c2a44 Merge branch 'master' into master 2020-05-16 22:47:39 +03:00
Hyenadae 227c3cdb90 OSX_BUILD cleaned commit 2020-05-16 15:30:27 -04:00
Colton G. Rushton dfc0439a65 Further fixes to MXE compilation
Adds on the work of PR #130.
2020-05-16 16:16:44 -03:00
fgsfds 2f06545366 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 098fa1feae even further cleanup of the makefile 2020-05-16 14:59:27 -03:00
Colton G. Rushton 40ed95620b Further clean up the makefile fixes 2020-05-16 14:38:47 -03:00
Colton G. Rushton 3c793fae82 Clean up the makefile fixes a bit 2020-05-16 14:35:56 -03:00
fgsfds 0666656db9 separate EXT_OPTIONS_MENU into its own option 2020-05-16 19:53:36 +03:00
Colton G. Rushton c40ab766e9 Nah dude, that's possible under WINDOWS_BUILD=1 2020-05-16 13:46:18 -03:00
Colton G. Rushton 60a8e2b2ab Simplify MXE fixes 2020-05-16 13:01:23 -03:00
Colton G. Rushton e569a596e8 fix objcopy on MXE builds 2020-05-16 12:56:58 -03:00
Colton G. Rushton 752e43aa80 remove needless ifeq 2020-05-16 12:30:25 -03:00
Colton G. Rushton b0da6afc95 removing a pesky endif 2020-05-16 12:26:06 -03:00
Colton G. Rushton 7fc5775d8a 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 ecb4cea17f 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 b7c209cb84 Add in-game control binding menu
Originally on the testing branch
2020-05-15 15:38:35 -03:00
uwabami a148d1a5fa Merge branch 'master' of https://github.com/sm64pc/sm64pc 2020-05-14 14:35:15 +02:00
Hyenadae 352f0c8b9b Fixed more border-related code and fixes to N64 build removal 2020-05-14 05:18:12 -04:00
Vinícius R. Miguel 82e872d5da Show the console on Windows setting `WINDOWS_CONSOLE=1` 2020-05-13 13:23:52 -03:00
Jan200101 feb9d900f7 extend cross compilation support 2020-05-12 16:08:34 +02:00
uwabami 9791e95ae7 adding option to disable draw distance 2020-05-12 09:26:16 +02:00
IvanDSM 7f3503ddb2 Windows build clarifications. 2020-05-10 16:50:48 -03:00
IvanDSM 8ef4896f86 Disable bettercamera by default. 2020-05-10 15:08:59 -03:00
IvanDSM 941bc197eb Add warning about WINDOWS_BUILD 2020-05-10 13:13:15 -03:00
IvanDSM 33c426171c 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