Commit graph

276 commits

Author SHA1 Message Date
fgsfds
d48db1d9c6 add missing texture indicator 2020-06-20 18:13:10 +03:00
fgsfds
59cbe0ab70 update puppycam; add runtime option to disable it 2020-06-20 17:22:33 +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
34af21bad4 premultiply volume scales by master volume
instead of scaling the output
2020-06-18 02:20:32 +03:00
fgsfds
7526a998cb 'filter' is a reserved keyword in GLSL
but only Intel drivers get pissed at this
2020-06-17 04:40:14 +03:00
fgsfds
5abf1baf6a controller_sdl: init haptics separately in case it's not available 2020-06-17 03:11:50 +03:00
fgsfds
2e989e4831 properly scale sound volumes instead of abusing fadeVolume 2020-06-15 00:20:23 +03:00
fgsfds
91f50a4089 remove stray spaces 2020-06-14 23:29:34 +03:00
fgsfds
b1b3fef112
Merge pull request #329 from KiritoDv/nightly
Music Volume Config
2020-06-14 23:27:06 +03:00
fgsfds
fd05cd3adb don't use small resource alignment for large textures
thanks to Emil for this one

see https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ns-d3d12-d3d12_resource_desc#alignment for an explanation
2020-06-13 22:54:33 +03:00
NoHomoBoi
b15bd727c2 Added sfx and env volume settings 2020-06-13 02:16:00 -05:00
fgsfds
208bfdcbf3 move all the discordrpc stuff to pc_main.c
that means it will now work in D3D11 and D3D12

also 'normalized' the sdl2 main loop
2020-06-13 04:21:47 +03:00
fgsfds
eed923e442 sdl2: fix window position saving and alt-enter 2020-06-13 00:51:37 +03:00
NoHomoBoi
7c341334f0 Code cleanup & changed max volume to 127 2020-06-12 03:22:08 -05:00
NoHomoBoi
56c6590bf3 Fixed config indentation 2020-06-12 00:56:51 -05:00
NoHomoBoi
66923e05af Changed configfile variable value
*Changed from configMasterVolume to configMusicVolume
2020-06-12 00:55:21 -05:00
NoHomoBoi
a632ee21ff Changed configfile variable name
*Changed from music_enabled to music_volume
2020-06-12 00:53:40 -05:00
NoHomoBoi
2fa7e4f4ba Merge branch 'nightly' of https://github.com/KiritoDv/sm64pc into nightly 2020-06-11 22:40:55 -05:00
NoHomoBoi
49dc1e3495 Added music volume config 2020-06-11 22:39:13 -05:00
fgsfds
aa5dfaa7c2 'properly' disable noise effect scaling 2020-06-12 00:23:47 +03:00
fgsfds
36bdb54d5e remove precision specifiers from the three-point shader
gives better compatibility on desktop GL

probably shouldn't be used on GLES anyway
2020-06-11 22:24:46 +03:00
fgsfds
8788cfa3ad d3d11 renderer now uses the configWindow values
d3d12 renderer still doesn't because I can't test it
2020-06-11 22:24:46 +03:00
fgsfds
3dff608c7b add D3D12 headers because they're missing in mingw 2020-06-11 22:24:46 +03:00
fgsfds
383983ef9d form window title in pc_main; show correct RAPI in it 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
ca4986e82d fix GLEW include on OSX 2020-06-10 04:16:46 +03:00
fgsfds
457189bb13 use SDL_opengles2.h only when USE_GLES is defined 2020-06-10 01:01:34 +03:00
fgsfds
fca5ed8846 don't scale the noise to 240 height 2020-06-10 01:00:20 +03:00
fgsfds
33b4bd7f8d don't use the noise shader on GLES 2020-06-10 00:58:44 +03:00
fgsfds
735d032bdd use #version 120 on desktop GL 2020-06-10 00:56:10 +03:00
MaikelChan
fbbb3cba5c Implemented noise effects in OpenGL. (#6) 2020-06-10 00:30:59 +03:00
fgsfds
8d05d2b7e2 check GL version in the GL2.1 backend; check GLEW errors 2020-06-09 23:28:26 +03:00
fgsfds
01e6061276 clean up discord rpc a bit 2020-06-09 20:46:26 +03:00
fgsfds
dc17d19cd1 use snprintf() instead of itoa() 2020-06-09 20:26:00 +03:00
fgsfds
c04c315410 move the discord-rpc libs to lib/ 2020-06-09 20:19:22 +03:00
Jan200101
80e674cc21
remove explicit dereference 2020-06-09 19:02:00 +02: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
326f8ed071 properly check for basepacks 2020-06-08 08:49:06 +03:00
fgsfds
ef5eab2263 fix sys_file_extension for folders that start with dot 2020-06-08 07:45:22 +03:00
fgsfds
585c24a282 updated usage text 2020-06-08 06:38:41 +03:00
fgsfds
51651d52d0 restore --savepath and replace --datapath with --gamedir 2020-06-07 23:54:39 +03:00
fgsfds
0bf5a192f4 fix sys_fatal() warnings in gfx 2020-06-07 22:00:49 +03:00
fgsfds
b9c94ad57d fix text saves 2020-06-07 22:00:23 +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
fgsfds
aff081080b unfuck keyboard API; actually use seconds for rumble time 2020-06-04 23:58:18 +03:00
fgsfds
bd68d6cb67 move rumble functions to controller API 2020-06-04 23:39:57 +03:00
Zerocker
77217baf13 Merge remote-tracking branch 'upstream/nightly' into rumble_back 2020-06-04 19:13:41 +09:00
fgsfds
88b044bd76 load external gamecontrollerdb file if it's present 2020-06-03 00:10:42 +03:00
fgsfds
5b14bf3b5e precache is now turned on by default 2020-06-03 00:10:20 +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
8b386a2175 allow binding stick directions to controller buttons 2020-06-01 00:03:53 +03:00
Zerocker
9917188ec8 Revert "Secret Cheat was added"
This reverts commit 19990cde38.
2020-05-31 14:18:17 +09:00
Zerocker
709a049ab6 Added rumble strength option 2020-05-30 20:50:12 +09:00
Zerocker
2bc577bc3c Added haptic implementation 2020-05-30 20:37:37 +09:00
Zerocker
cf122ee6e8 Merge remote-tracking branch 'upstream/nightly' into rumble_back 2020-05-30 17:34:56 +09:00
fgsfds
f6c54e95b2 read in all config line tokens (fixes the binds not saving) 2020-05-29 20:10:38 +03:00
fgsfds
93030b02a3 don't die after encountering a NULL texture 2020-05-29 19:35:35 +03:00
fgsfds
540a0387c9 fix build 2020-05-29 18:08:00 +03:00
Zerocker
3f1fd3aba8 Merge remote-tracking branch 'upstream/nightly' into rumble_back 2020-05-29 23:19:09 +09:00
GateGuy
875d7a9b3c Added deadzone option 2020-05-28 18:40:36 -04:00
fgsfds
655c381d6f add texture preloading
when EXTERNAL_TEXTURES is defined, the texture hashmap in gfx_pc.c uses texture names as keys

all textures are precached on startup if EXTERNAL_TEXTURES is defined and 'precache' is true in the config
2020-05-26 00:54:51 +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
Zerocker
ce864043c1 Enabled rumble for all versions. 2020-05-24 23:52:03 +09:00
Zerocker
19990cde38 Secret Cheat was added 2020-05-24 23:50:55 +09:00
Zerocker
37ff33b0a2 Added blank SDL functions for rumble support. 2020-05-24 23:49:49 +09:00
fgsfds
4bbde37464 this ain't const anymore 2020-05-22 01:42:07 +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
0724f0ed09 add fog to GL1.3 renderer
uses two different methods, with the first one taking priority if it's available:

a) use the fog factor supplied in the fog colors as a GL_FOG_COORD; GL_FOG_COORD is only available in GL1.4+ or when GL_EXT_fog_coord is present

just blend the same triangles a second time, but replace the color with fog color and multiply the alpha by fog alpha
2020-05-21 03:12:51 +03:00
fgsfds
2714708ca9 avoid redefining CLOCK_MONOTONIC and shit 2020-05-20 17:56:35 +03:00
Mario Reder
f99298943c fix non mingw builds
resolves #230
2020-05-20 16:50:05 +02: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
IvanDSM
fb706c42f6 CLI improvements 2020-05-19 21:22:05 -03:00
Zerocker
6a628322ba Merge remote-tracking branch 'upstream/nightly' into nightly 2020-05-20 00:02:29 +09:00
zerocloude
f1698b9081
Merge pull request #205 from porcino/nightly
Option to hide the hud
2020-05-19 23:46:19 +09:00
zerocloude
0c03280516
Merge pull request #93 from yksoft1/mingw.org-compatible
Making code MinGW.org and MSYS1 compatible
2020-05-19 23:45:44 +09:00
Colton Rushton
08ad740b1c Refactor PR #176 2020-05-19 10:51:49 -03:00
yksoft1
ee795fa7af My hacks to cliopts.h is not necessary anymore. 2020-05-19 20:15:25 +08:00
U-ALTTP-PC\ALTTP
e97d25c2c6 option to hide the hud 2020-05-19 03:24:51 -03:00
V. R. Miguel
29bfb1b9b8
Merge branch 'nightly' into master 2020-05-18 23:00:42 -03:00
fgsfds
c18e70f44e Revert "Merge branch 'nightly' into master"
This reverts commit 2e8a821fa3, reversing
changes made to d499f55402.
2020-05-19 02:38:59 +03:00
fgsfds
2e8a821fa3
Merge branch 'nightly' into master 2020-05-19 02:33:30 +03:00
fgsfds
26705aed7a disable cheats by default; use --cheats CLI option to enable for now 2020-05-19 01:59:29 +03:00
fgsfds
6a79a9af99 bring back the old frame timing method (if vsync != 2) 2020-05-19 01:32:49 +03:00
fgsfds
59913a9beb Revert "Revert "(hopefully) fix the timing crap; add vsync option""
This reverts commit c6961b8606.
2020-05-19 01:25:59 +03:00
fgsfds
c6961b8606 Revert "(hopefully) fix the timing crap; add vsync option"
This reverts commit 2bd840a299.
2020-05-18 18:48:11 -03:00
fgsfds
c3c2451c6a Revert "(hopefully) fix the timing crap; add vsync option"
This reverts commit 2bd840a299.
2020-05-18 18:44:35 -03:00
fgsfds
952495ae08 clean up cliopts 2020-05-18 23:31:19 +03:00
fgsfds
2bd840a299 (hopefully) fix the timing crap; add vsync option 2020-05-18 23:03:04 +03:00
Daniel
8586c7657a Added "Exit course at any time", "Huge Mario" and "Tiny Mario" cheats
The exit course at any time cheat clears up one of the TODO items while keeping purists happy since it's optional :)
2020-05-18 17:51:53 +01:00
Zerocker
e24473ee17 Support for text-based savefiles 2020-05-18 17:44:21 +09:00
Vinícius R. Miguel
bd186569de Fixes --fullscreen and --windowed problems 2020-05-18 00:28:05 -03:00
V. R. Miguel
cd2e6c0774
Merge pull request #165 from HeavenVolkoff/save_win_dimensions
Implement save/restore of window dimensions/position

Thanks for the contribution, @HeavenVolkoff!
2020-05-18 00:10:42 -03:00
Vinícius R. Miguel
4246242138 Still about #172 2020-05-17 23:58:22 -03:00
Vinícius R. Miguel
ba04643b61 Potential fix for #172
Adds a null-terminator to gCLIOpts.ConfigFile
2020-05-17 23:55:17 -03:00
Heaven Volkoff
98efed7c51 Reset Window now exit fullscreen
Change configFullscreen to configWindow.fullscreen
2020-05-17 23:31:31 -03:00
Heaven Volkoff
9927b3555d Fix fullscreen exit resulting in a slightly lower Y position 2020-05-17 23:31:31 -03:00
Heaven Volkoff
0fa331d961 Implement save/restore window dimensions/position
- Add an entry in options menu to reset window
2020-05-17 23:31:31 -03:00
IvanDSM
d6495550f5 Release mouse when paused 2020-05-17 22:37:52 -03:00
V. R. Miguel
6811d9e01c
Fixed a dumb thing 2020-05-17 21:17:27 -03:00
Vinícius R. Miguel
15c7670ce8 Merge remote-tracking branch 'origin/nightly' into nightly 2020-05-17 21:06:59 -03:00
Vinícius R. Miguel
262963bf88 Restructuring some of the cheat code 2020-05-17 21:06:38 -03:00
fgsfds
eaba9656d6
Merge pull request #169 from kurethedead/nightly
Implemented LoadTile f3d command, I4/I8/RGBA32 texture formats.
2020-05-18 02:45:11 +03:00
V. R. Miguel
2287fcce9f
Merge pull request #170 from Leon422/nightly
Added a "responsive controls" cheat
2020-05-17 20:08:13 -03:00
Daniel
17c6e56907 Added a "super responsive controls" cheat
Added a "super responsive controls" cheat. When enabled, Mario will look straight into the direction the user inputs when changing directions, with no interpolation at all. (you can still slide / side jump / etc )

The change is especially noticeable when playing with keyboard.
2020-05-18 00:05:26 +01:00
kurethedead
181e18dfea Implemented LoadTile f3d command, I4/I8/RGBA32 texture formats. 2020-05-17 15:48:06 -07:00
V. R. Miguel
15dabb7c22
Merge pull request #166 from Leon422/nightly
Enabled a Cheat menu

Thanks for the contribution, @Leon422!
2020-05-17 19:32:44 -03:00
Leon422
1a9c8dbe47
Fixed tabs/spaces 2020-05-17 23:27:40 +01:00
Daniel
28fc53c207 Enabled a Cheat menu
Enabled a cheat menu. It includes 4 cheats, and all of them rely on the global "Enable cheats" option so the user can quickly turn all the selected cheats off and back on.
2020-05-17 22:56:06 +01:00
Andrew Bobulsky
fcc4cbb51d
Fix TARGET_WEB builds 2020-05-17 15:22:50 -04:00
fgsfds
094f3ebb33
Merge branch 'nightly' into master 2020-05-17 20:19:42 +03:00
fgsfds
ece7649b4b use a wrapper for exiting instead of just calling exit()
this might also fix the webgl build issue
2020-05-17 19:56:56 +03:00
fgsfds
62cc4620ec no need for that, window resize events happen when fullscreen state changes 2020-05-17 19:56:33 +03:00
fgsfds
58dbb04f97 update gfx_sdl2.c with the latest stuff from Emill/n64-fast3d-engine 2020-05-17 19:49:36 +03:00
yksoft1
072025d243 Fix cliopts on MinGW.org. 2020-05-17 19:01:13 +08:00
yksoft1
753be9e1b7 Merge remote-tracking branch 'upstream/master' into mingw.org-compatible 2020-05-17 18:33:17 +08:00
Vinícius R. Miguel
bdc06d1709
Merge pull request #139 from sm64pc/master
Add MXE/OSX stuff to nightly
2020-05-16 22:08:24 -03:00
IvanDSM
5145f2a897 Fix --fullscreen/--windowed CLI option altering config file.
Previously, when the --fullscreen or --windowed CLI options were set, configFullscreen was overwritten.
This caused the config file to be changed according to the CLI options given when running the executable.
A helper variable that copies configFullscreen stops the game from overwritting the config file.
2020-05-16 21:53:00 -03:00
IvanDSM
2c8382e60e Add --help and --windowed CLI options. 2020-05-16 21:39:48 -03:00
fgsfds
54f986a528
Merge branch 'master' into osx_build_clean 2020-05-17 01:27:51 +03:00
Vinícius R. Miguel
e67a5443b7 Fixed some stuff 2020-05-16 18:14:43 -03:00
Vinícius R. Miguel
7bf7b34c57 Add a --configfile CLI option
Usage: `--configfile yahoo.ini` will load up a file named yahoo.ini as the configuration file.
2020-05-16 18:07:14 -03:00
fgsfds
f6642e9a9d tabs begone 2020-05-16 22:39:37 +03:00
fgsfds
f5e73a099b
Merge pull request #126 from HeavenVolkoff/gfx_use_second_light_color
Consider second color column of Light_t when calculating vertex colors
2020-05-16 22:38:36 +03:00
Hyenadae
5dd43ad674 OSX_BUILD cleaned commit 2020-05-16 15:30:27 -04:00
Vinícius R. Miguel
9e8290773b Shutdown subsystems on exit
Porting from testing, originally by @fgsfdsfgs
2020-05-16 16:23:23 -03:00
fgsfds
93cfab086a bettercam: add adjustable camera deceleration 2020-05-16 20:30:06 +03:00
fgsfds
9ae444d2b5 move filtering check to gfx_pc.c for those sweet realtime updates 2020-05-16 16:15:45 +03:00
fgsfds
a259cd15a1 add dumb master volume control 2020-05-16 16:15:40 +03:00
fgsfds
dbca0c413d add fullscreen and filtering settings to options
filtering only applies to newly loaded textures
2020-05-16 16:15:27 +03:00
Heaven Volkoff
1a3034898c Consider second color column of Light_t when calculating vertex colors 2020-05-16 04:48:11 -03:00
IvanDSM
e96bbef650 Fix configfile skip_intro option 2020-05-15 16:47:04 -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
Vinícius R. Miguel
fd74e20373 Add a --fullscreen CLI option 2020-05-15 12:51:06 -03:00
IvanDSM
86a3f84010
Merge branch 'master' into skipintro 2020-05-14 23:05:21 -03:00
IvanDSM
59d0cc16c1 Add <strings.h> include
Oops!
2020-05-14 23:02:04 -03:00
yksoft1
1b03e251bb Better way to detect mingw-w64; fix bettercamera for mingw.org; close
.assets-local.txt before deleting it.
2020-05-15 00:26:56 +08:00
yksoft1
fa9af3227e Make the code buildable on MinGW.org (not mingw-w64) and MSYS1. 2020-05-14 23:47:00 +08:00
vanfanel
d59c081905 Hide mouse cursor when in fullscreen mode. 2020-05-11 13:37:48 +02:00
IvanDSM
bd93878c56 Add option in the configfile for skipping the intro
Now it's possible to either provide the --skip-intro command line argument or have skip_intro set to 1 on the config file.
2020-05-11 05:13:51 -03:00
IvanDSM
4cbe3af070 Added CLI functionality with --skip-intro option. 2020-05-11 02:42:22 -03:00
Vinícius R. Miguel
ff2ec85f8c Adds credit to Emil.
For implementing n64-fast32-engine
2020-05-10 17:47:10 -03:00
fgsfds
a0ba46eaf6 move bettercamera settings to config file; cleanup 2020-05-10 21:39:23 +03:00
Vinícius R. Miguel
aa046c76d9
Merge pull request #42 from vanfanel/master
Thanks!
2020-05-10 14:02:27 -03:00
vanfanel
f24d44c9c7 Remove redundant code. Make GLES and GL modes respect DESIRED_WIDTH and DESIRED_HEIGHT in windowed mode, but in fullscreen mode just use the system video mode. 2020-05-10 18:23:34 +02:00
fgsfds
d0b85785fe might as well check for L while we're at it 2020-05-10 19:15:13 +03:00
fgsfds
2234e28625 rebind Z trigger back to L 2020-05-10 19:14:59 +03:00