Commit graph

1100 commits

Author SHA1 Message Date
gm-matthew 6908e5fd3f Step15Luminous() applies to all polys, not just textured ones 2024-08-02 17:20:23 +01:00
dukeeeey ce9809c4d7
Merge pull request #173 from gm-matthew/textureNP
New textureNP implementation
2024-08-02 08:03:06 +01:00
gm-matthew 493c5aae98 New textureNP implementation
This new implementation uses the previously unused viewport parameter "cota"
2024-08-01 23:24:46 +01:00
Ian Curtis 3d8557dc44 fix minor compile warning 2024-07-29 10:54:59 +01:00
Ian Curtis 49ca8c1480 Fix mipmaps
Real3d mipmaps only go down to 2x2 pixels. The 1x1 pixels generated previously were actually the last part of the 2x2 mipmaps.
2024-07-29 00:19:26 +01:00
dukeeeey 27a2336528
Merge pull request #169 from gm-matthew/texture
First 4MB of VROM maps to polygon RAM
2024-07-28 16:39:18 +01:00
gm-matthew aeaa602093 First 4MB of VROM maps to polygon RAM
Daytona 2 PE replaces unused Dreamcast logo textures by filling in zeroed data from polygon RAM. Before we were reading from the first 4MB of VROM which is filled with 0xFF values, resulting in the replaced textures incorrectly becoming white and opaque.
2024-07-28 16:06:47 +01:00
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