Commit graph

1093 commits

Author SHA1 Message Date
dukeeeey 32414ee1fd
Merge pull request #168 from gm-matthew/specular
Specular lighting works differently on flat-shaded polys
2024-07-26 18:00:09 +01:00
gm-matthew 6d5aeb1da5 Specular lighting works differently on flat-shaded polys
Also lower multIndex values for smooth-shaded specular, more accurate to real hardware
2024-07-26 17:22:35 +01:00
dukeeeey 5fa402f2f5
Merge pull request #165 from gm-matthew/widescreen
Don't expand culling planes unless widescreen is enabled
2024-07-19 16:32:45 +01:00
gm-matthew d7fdba0620 Don't expend culling planes unless widescreen is enabled 2024-07-19 14:19:09 +01:00
gm-matthew a2645c944f Give PowerPC more cycles to acknowledge sound IRQs
400 cycles was not enough and would cause VF3 to hang. 1000 cycles should be more than plenty
2024-07-13 18:50:31 -07:00
Ian Curtis 5a8cddd09a remove dead code 2024-07-13 12:14:54 +01:00
Ian Curtis 79868e0ad3 fix compilation 2024-07-08 12:19:06 +01:00
dukeeeey 40bb7acbf7
Merge pull request #160 from gm-matthew/textureNP
Texture mipmaps must be at least 2x2
2024-07-06 18:47:05 +01:00
gm-matthew 2b186e688c Texture mipmaps must be at least 2x2
Fixes sky in Dirt Devils
2024-07-06 00:04:52 +01:00
dukeeeey ee5d6523c8
Merge pull request #159 from gm-matthew/textureNP
Implementing texture NP values
2024-07-05 17:21:14 +01:00
gm-matthew 3cf8a1fa94 Implementing texture NP values
For some reason Model 3 uses vertex coordinates rather than texel coordinates to calculate mipmap levels
Revised microtexture implementation; results are very close to real hardware when running at native resolution with supersampling disabled
2024-07-05 15:57:25 +01:00
Ian Curtis 19612e1b13 fix merge error 2024-06-13 13:43:42 +01:00
Ian Curtis 4d1484c0c9 merge conflicts 2024-06-13 13:40:30 +01: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
gm-matthew 42e236be0d Add comment briefly explaining optimization 2024-06-10 15:25:13 -07:00
gm-matthew f30a8ee2a8 Minor shader optimization
If the mipmap level is 0.0, we only need to run texBiLinear() for the highest quality texture mipmap
Adds around 10-20% more performance in Daytona 2
2024-06-10 15:25:13 -07:00
Ian Curtis a6466b353d spelling 2024-06-01 19:20:35 +01:00
Ian Curtis 21e148599a Fix some missing scroll fog background effects in ECA 2024-06-01 10:38:40 +01:00
gm-matthew 7d32bde074 When disabling sound IRQs via MIDI control port, clear current IRQ
Prevents Dirt Devils hanging during boot
2024-05-22 15:36:15 -07:00
dukeeeey 976f0208dc
Merge pull request #151 from gm-matthew/sound-irq
Sound IRQs are acknowledged by writing to MIDI data port
2024-05-20 19:31:25 +01:00
gm-matthew 8a0bf29dd8 Sound IRQs are acknowledged by writing to MIDI data port 2024-05-20 13:38:45 +01:00
dukeeeey 7b02f58694
Merge pull request #149 from gm-matthew/scuddxo
Only access SCSI device at 0xC0xxxxxx if it has been configured to do so
2024-05-04 20:22:42 +01:00
gm-matthew 3e394d1257 Only access SCSI device at 0xC0xxxxxx if it has been configured to do so
Fixes some step 1.5 games not working in last update
2024-05-04 19:43:02 +01:00
dukeeeey 2245fca796
Merge pull request #147 from gm-matthew/scuddxo
Adding newly dumped version of Scud Race
2024-05-02 23:29:47 +01:00
gm-matthew 39dc16d8ba Use integer value for game stepping 2024-05-02 23:25:53 +01:00
gm-matthew 944e4855d9 Adding newly dumped version of Scud Race
Allow Step 1.5 games to access 53C810 via 0xC00000xx if the netboard is disabled, because scuddxo requires this
2024-05-02 15:43:37 +01:00
Bart Trzynadlowski 250f84e78e Updated .gitignore to exclude build directories and Supermodel release directories 2024-04-05 14:28:07 -07:00
dukeeeey dec85032ba
Merge pull request #138 from h0tw1r3/fix/2d-shaders
Fix 2D texture rendering on OSX
2024-03-14 10:30:48 +00:00
Bart Trzynadlowski d9f48db5db CLogger: destructor needs to be virtual 2024-03-09 20:56:50 -08:00
Jeffrey Clark 93f622ee25 cleanup code format 2024-03-06 01:07:56 -06:00
Jeffrey Clark 047b15c210 fix 2d shaders on OSX 2024-03-06 02:11:21 -06:00
baraclese 1bb7de1dd9 fix segfault in CMultiLogger
vsprintf may change its va_list argument so repeatedly calling it with the same va_list arg is undefined behavior.
Fix this by creating a copy of the va_list argument before each vsprintf call.
2024-03-05 16:07:47 -08:00
Bart Trzynadlowski e59ecea32d PowerPC frequency determined by board stepping, config option is now just an override 2024-01-28 21:08:12 -08:00
Jacob Oxford 620a581227 No need to have changelog from 2011 in Readme.txt anymore. 2023-12-30 15:32:11 -08:00
Ian Curtis 75260f9f2c Clamp LODscale. If the object is drawn at zero we produce an Inf value which will produce Nans with later calculations. 2023-12-29 13:28:10 +00:00
Ian Curtis 0e07f29f80 Amend ambient fog logic
Should stop the sky flashing in lemans24, and the background totally disappearing in sega rally after a game. The logic here is still not totally understood but works well enough for the games.
2023-12-27 12:42:32 +00: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
dukeeeey 33b84c89aa
Merge pull request #122 from gm-matthew/floatZ
Floating point reversed z-buffer and new clipping code
2023-12-22 17:06:35 +00:00
gm-matthew 6acb1165d4 Added new uniform bool polyAlpha to shaders
Added original matrix functions back into Mat4 class though they are currently unused
2023-12-22 16:31:05 +00:00
gm-matthew 9f66fcaac7 Floating point reversed z-buffer and new clipping code
Also always draw nodes with culling disabled even if they test as being outside the visible frustum
2023-12-22 02:00:47 +00:00
dukeeeey 6f409539a7
Merge pull request #120 from gm-matthew/patch
Fixed Scud Race Plus "ROLLING START" patch
2023-12-04 13:08:11 +00:00
gm-matthew 5b9e97008c Fixed Scud Race Plus "ROLLING START" patch
Accidentally patched the wrong memory location in Scud Race Plus
2023-12-04 02:33:00 +00:00
dukeeeey a19ba3cba8
Merge pull request #118 from firewave/uninit
Model3.cpp: avoid usage of uninitialized memory
2023-12-03 18:22:30 +00:00
dukeeeey 11e9b14e73
Merge pull request #117 from firewave/mismatch
Inputs/MultiInputSource.cpp: fixed mismatching allocation and deallocation
2023-12-03 18:17:12 +00:00
firewave 71e5baa61b Model3.cpp: avoid usage of uninitialized memory
```
==213531== Thread 20 SoundBoardNoSyn:
==213531== Conditional jump or move depends on uninitialised value(s)
==213531==    at 0x1A1D1E: CModel3::RunSoundBoardThread() (Model3.cpp:2607)
==213531==    by 0x49BECEA: UnknownInlinedFun (SDL_thread.c:292)
==213531==    by 0x49BECEA: RunThread.lto_priv.0 (SDL_systhread.c:76)
==213531==    by 0x4F719EA: start_thread (pthread_create.c:444)
==213531==    by 0x4FF5653: clone (clone.S:100)
```
2023-12-03 14:46:23 +01:00
firewave 1cc94b7d79 Inputs/MultiInputSource.cpp: fixed mismatching allocation and deallocation
Detected by Cppcheck:
```
Src/Inputs/MultiInputSource.cpp:87:3: error: Mismatching allocation and deallocation: CMultiInputSource::m_srcArray [mismatchAllocDealloc]
  delete m_srcArray;
  ^
```
2023-12-03 14:43:22 +01:00
firewave 5332d8f945 fixed some -Wunused-* compiler warnings 2023-12-02 14:27:32 -08:00
dukeeeey 391e1b9622
Merge pull request #113 from gm-matthew/handbrake
Dirt Devils does not use the handbrake
2023-12-01 17:08:09 +00:00
gm-matthew da62fa8640 Dirt Devils does not use the handbrake 2023-12-01 14:48:25 +00:00
Ian Curtis df0034ac1f fix minor error 2023-11-18 22:56:15 +00:00