Commit graph

77 commits

Author SHA1 Message Date
Bart Trzynadlowski 6bae80bdf9 Makefile.Win32: Fixed SDL2 flags when building in MSYS 2024-08-09 22:44:51 -07:00
Bart Trzynadlowski a0341cd1a4 Rules.inc: Restored 'release' target for Supermodel3.com-hosted builds and added some comments 2024-08-09 22:44:51 -07:00
Bart Trzynadlowski e636dd5fb2 Improved Makefiles (from h0tw1r3's PR): macOS Makefile will download SDL2 Framework, hopefully fixed Musashi dependency issues that occasionally affect parallel builds 2024-08-09 22:44:51 -07:00
Ian Curtis edb11dc223 Performance improvements
The old texture code was being bottle necked by the texture reads. We mirrored the real3d texture memory directly, including the mipmaps in a single large texture. I *think* most h/w has some sort of texture cache for a 2x2 or 4x4 block of pixels for a texture. What we were doing was reading the base texture, then reading the mipmap data from a totally separate part of the same texture which I can only assume flushed this cache. What I did was to create mipmap chains for the texture sheet, then copy the mipmap data there. Doing this basically doubles performance.
2024-06-13 13:36:30 +01:00
Ian Curtis c039d08c03 Add supersampling anti-aliasing
Late christmas present. Due to the way alpha works on the model3 adding regular anti-aliasing doesn't really work. Supersampling is very much a brute force solution, render the scene at a higher resolution and mipmap it.

It's enabled via command line with the -ss option, for example -ss=4 for 4x supersampling or by adding Supersampling = 4 in the config file.

Note non power of two values work as well, so 3 gives a very good balance between speed and quality. 8 will make your GPU bleed, since it is essentially rendering 64 pixels for every visible pixel on the screen.
2023-12-26 18:25:03 +00:00
Ian Curtis a00e8de988 Update rules file. Not tested this but hopefully it should work 2023-09-23 17:28:18 +01:00
Bart Trzynadlowski 6993dfcfb0 Makefile.Win32: fixed detection of Windows Command Prompt for rmdir command 2023-03-28 15:38:43 -07:00
Bart Trzynadlowski 95fc08e0a3 Windows app manifest added to enable PerMonitorV2 DPI awareness 2023-03-15 18:24:01 -07:00
CapitaineSheridan 1b066fe4b3 Crosshair refactor
-add a new separate class for crosshair
-crosshair coordinates are calculated by matrix instead of recreating every object at correct coordinates
-add ability to scale crosshair by dpi
-add ability to use bitmap crosshair (located in ./Media/). 32bits bmp format + alpha
-cmd line "-bitmapcrosshair" or "-vectorcrosshair" and/or BitmapCrosshair=0|1 in config file
-these changes are only for lost world game with Crosshairs=1|2|3

don't forget to copy the 2 crosshair images in Supermodel/Media folder
2023-03-13 20:18:51 -07:00
Fernando Casas Schössow d83e4754fe Fixed build on macOS 2022-12-12 16:49:07 -08:00
Fernando Casas Schössow df7787f040 Keep Supermodel files (config, nvram, saves, etc.) in a predictable path when running on Linux 2022-12-12 16:49:07 -08:00
ToBul acc7161ca5 [Makefile.Win32] $MSYSTEM check never fails.
'make clean' from Win command shell doesn't fully clean, condition always true.
2022-11-13 10:49:20 -08:00
Ian Curtis fe36b07702 Update makefile 2022-11-08 10:35:05 +00:00
Bart Trzynadlowski 237f2756c0 Rules.inc: whitespace error 2022-06-23 12:41:32 -07:00
Bart Trzynadlowski d42f7d6563 Rules.inc: Fixed git revision parsing 2022-06-23 12:38:58 -07:00
Bart Trzynadlowski 8c8cc3d32b Preparing for Git snapshot build bot and updated copyright header to reference full lifespan of Supermodel repo 2022-06-23 12:34:02 -07:00
Matthew Daniels 5a570ce7fe Adding simulated netboard; all linked games except Sega Rally 2 working at full speed. 2021-04-14 01:20:45 +00:00
SpinDizzy 08d4735ee8 Huge refactor of the Driveboard:
-Separate each possible boards (wheel, joystick, skipad, billboard).
-Defined a Driveboard type in Games.xml for each games.
-Due to the refactoring, Driveboard Savestates have changed (a common base data + a specific board data are saved).
-Backwards compatibility with previous save states is maintained.
-Driveboard rom section is no longer required anymore. This disables Driveboard emulation in case the rom is not found.
-Added Billboard emulation (vf3, vs2, fvipers2, von2). 7 segments and lamps Outputs are redirected to Supermodel outputs.
-Changes project to C++ 17 standard.
2021-02-18 10:29:15 +00:00
SpinDizzy c8f47cc52b - Add -O3 optimization option for OSX and Linux.
- Revert netboard to disable by default.
2020-12-30 16:05:25 +00:00
SpinDizzy 8df56ddcbf - Star Wars Trilogy untextured Death Star surface bug in gcc builds was caused by -Ofast (thanks to rokfpoewrkcpoqwkcp for discovering this). Using -O3 now.
- Net board enabled by default.
2020-12-27 13:14:37 +00:00
SpinDizzy cce9914a13 Updated rules file. 2020-12-25 08:29:18 +00:00
SpinDizzy 53185c3eff Introducing a special release build target with SVN version stamping. 2020-12-24 10:20:26 +00:00
SpinDizzy d70a79a127 Makefiles update 2020-11-06 09:24:16 +00:00
SpinDizzy 1d37358b8c - Add missing library from previous windows makefile update.
- NEW_FRAME_TIMING build option was removed because it was no longer used.
2020-09-04 05:48:41 +00:00
SpinDizzy 95488acb0a Windows makefile update 2020-09-03 06:27:57 +00:00
Ian Curtis 5e434e2644 build fixes for mac 2020-07-27 10:28:48 +00:00
SpinDizzy 12081a9ff7 Update makefiles 2020-07-03 09:08:03 +00:00
SpinDizzy 4f347ff3f1 SDL1 to SDL2 internal changes 2020-04-19 08:34:58 +00:00
Ian Curtis a76e46e3b8 Update makefiles 2019-02-21 14:57:57 +00:00
Ian Curtis 7bcc70a170 Update makefile 2018-10-01 17:42:45 +00:00
Bart Trzynadlowski 4d5c9e7231 Fixed Makefiles for non-MSYS builds. Unfortunately had to revert a lot of the automated configuration that Harry had inserted. Users will again need to hand-edit Makefile.Win32 for their configuration. Verbose warnings (-Wall) have been restored. 2018-05-06 18:52:23 +00:00
Ian Curtis 04758e38b6 Update make files and fix build for the various options (Harry Tuttle) 2018-01-22 21:01:35 +00:00
Bart Trzynadlowski 4d685e0750 Makefile fixes: Moved Windows-specific source files out of Makefile.inc, using 'bin' and 'obj' when bits are not explicitly set, and changed output file to Supermodel rather than Supermodel.exe, which works on all platforms. 2017-10-06 01:04:49 +00:00
Bart Trzynadlowski 2397b8225a New, saner Makefiles. They still require some customization but share a core Makefile include with auto-generation of dependencies. Multi-threaded building (e.g., make -j6) is supported now. 2017-10-05 02:14:02 +00:00
Bart Trzynadlowski 55bb02d4e5 - New work-in-progress frame timing code (disabled by default, compile with NEW_FRAME_TIMING defined to activate it)
- New JTAG emulation, moved into its own class, CJTAG
- Removed game-specific sun clamp hacks from CNew3D (JTAG and Real3D emulation will call the appropriate method to configure this at run-time)
- Removed JTAG from Real3D save state data and reused some of that space for new state variables having to do with the internal JTAG-based config as well as new frame timing state variables
2017-09-24 20:52:48 +00:00
Bart Trzynadlowski a2fcbf8a3a Linux Makefile fixed by Sergio Benjamin 2017-04-14 17:09:33 +00:00
Bart Trzynadlowski a649a0d36b Removed patches from source code and moved them into game XML file. Created ROMSet.cpp. Print a more descriptive error when game XML file fails to load. 2017-04-08 18:30:29 +00:00
Bart Trzynadlowski cc32e0bf8e Removed last vestiges of CINIFile from input system and removed Games.cpp, INIFile.cpp, and ROMLoad.cpp 2017-04-05 16:19:08 +00:00
Bart Trzynadlowski f34e25dfc7 Massive internal change: removed CConfig object and replaced it with a hierarchical config object system (Util::Config::Node). Games are now defined in an XML file. Hopefully I didn't break too many things :/ 2017-03-27 03:19:15 +00:00
Bart Trzynadlowski 41105c15d7 Added Logger.o to OSX and UNIX Makefiles. Should fix compilation on these platforms. 2016-08-10 03:38:19 +00:00
Bart Trzynadlowski 821243b80f Removing MSVC Makefile 2016-08-10 03:37:29 +00:00
Bart Trzynadlowski 724dc93294 XML parsing support for new config system 2016-07-07 04:59:10 +00:00
Bart Trzynadlowski bcc663d4eb Moved logging functions into OSD/Logger.cpp (eventually logging system will be reworked entirely) and added new config tree structure (not yet used). 2016-07-05 01:15:58 +00:00
Bart Trzynadlowski 0650ffc37c Updated Win32 gcc, UNIX, and OSX Makefiles 2016-07-04 01:02:04 +00:00
Bart Trzynadlowski ad96676d68 Updated Mac OS X Makefile 2016-04-15 23:54:58 +00:00
Bart Trzynadlowski 22907b033f Fixes for non-Windows builds: Makefile updated and fixed header files in Vec.cpp 2016-04-05 04:30:52 +00:00
Bart Trzynadlowski 6e5c301de8 Encryption device emulation (thanks to MAME), fixed warnings in Model3.cpp, added a string formatter helper, and updated Win32 GCC Makefile. 2016-04-02 21:50:40 +00:00
Bart Trzynadlowski 09747bcd7c Tweaked Windows gcc Makefile 2016-03-22 03:43:55 +00:00
Bart Trzynadlowski 34301e97e1 Adding new 3D engine by Ian Curtis. Old engine moved to Graphics/Legacy3D/. 2016-03-21 04:10:14 +00:00
Bart Trzynadlowski f1e93bcd8f - Fixed Win32 GCC Makefile.
- Reverted Nik's polygon palette index change in Models.cpp. Subtracting 1 was breaking Scud Race.
- Added an explicit typecast in Inputs.cpp, which GCC requires for some reason.
2012-07-16 02:27:55 +00:00