Commit graph

313 commits

Author SHA1 Message Date
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
fgsfds
d6820f6073 whoops, this is supposed to be the Z button 2020-05-10 19:09:43 +03:00
vanfanel
16a4495bf2 Do not call gfx_sdl_set_fullscreen() just after creating the game window: create window fullscreen or not directly. 2020-05-10 18:07:26 +02:00
fgsfds
690283da13 allow rebinding of joystick and mouse buttons 2020-05-10 19:05:54 +03:00
vanfanel
fd02d88b59 Fix for GLES on windowed rendering contexts (X11) 2020-05-10 17:52:01 +02:00
fgsfds
e427aaa894 make use of mouse buttons 2020-05-10 18:41:46 +03:00
vanfanel
f70ebeb2b3 Use the system video mode in GLES platforms instead of setting a new one. 2020-05-10 15:41:46 +02:00
IvanDSM
e3a2613328 Fix build without new camera, add example to README
This fixes an oversight of mine that broke building with BETTERCAMERA=0 and adds an example to the README of how to build with the new camera disabled.
2020-05-10 05:47:38 -03:00
IvanDSM
6ed071e49e
Merge branch 'master' into camera-rebase 2020-05-10 05:13:38 -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
Colton G. Rushton
ad89f663f3
More fixes ported from fdsfgsfds' fork 2020-05-10 00:05:33 -03:00
y0shin
879958617f
Merge pull request #22 from Hyenadae/master
L (Trigger) is real (now). Added key_l to config. L_TRIG and CONT_L inputs are now accepted by Mario 64
2020-05-09 06:21:20 -04:00
Hyenadae
0413703a60 L (Trigger) is real. Keyboard only for now. 2020-05-09 09:31:15 +01:00
Hyenadae
f43c06303f L (Trigger) is real. Keyboard only for now. 2020-05-09 09:28:19 +01:00
IvanDSM
3ebfc225ca Mouse Look ported to camera_rebase
With check for settings SDL_SetRelativeMouseMode only if Mouse Look is enabled.

We always send regards to Fastblitters.
2020-05-09 02:10:56 -03:00
Vinícius R. Miguel
ef2cd47343 True analog camera control has been added. 2020-05-09 01:19:13 -03:00
vanfanel
ab52a3cbf5 Pass -DUSE_GLES to sdl2 GL init context instead of -DTARGET_RPI, since there are more GLES platforms out there that this engine will run on. 2020-05-08 17:06:23 +02:00
HengiFettlich
c4707eb36f refactor fullscreen into own static function 2020-05-08 14:35:38 +02: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
HengiFettlich
848f7c352b Update gfx_sdl2.c
if fullscreened, escape to exit fullscreen
2020-05-08 12:24:40 +02:00
Vinícius R. Miguel
1e246386bc
Merge branch 'master' into master 2020-05-08 04:53:41 -03:00
Hyenadae
dba8760aad Makefile additions and part of SDL2.C Pi-GLES define 2020-05-08 08:38:50 +01:00
Vinícius R. Miguel
0c10f9eacc
Removes the cursor from view when on the game's window. 2020-05-08 04:36:17 -03:00
Vinícius R. Miguel
7e97699076
Add RPi-related optimizations. 2020-05-08 04:14:56 -03:00
HengiFettlich
1cca3ef4ea add Hotkeys for Fullscreen (ALT+Enter) 2020-05-07 20:46:35 +02:00
Jan200101
e87c070517
merge PC port onto the decompile 2020-05-07 20:21:22 +02:00