Commit graph

  • 0c0cbe6001 Adding libglu master XargonWan 2024-08-24 22:11:19 +0900
  • 970d518a23 Adding sources to the module XargonWan 2024-08-24 00:17:40 +0900
  • 93968bd9bd Wrong manifest extension XargonWan 2024-08-24 00:14:45 +0900
  • b31221994d Manifest was not initialized correctly XargonWan 2024-08-24 00:13:03 +0900
  • 6babd75ab4 Removing unused file XargonWan 2024-08-24 00:11:11 +0900
  • bb12820687 Fixes XargonWan 2024-08-24 00:08:51 +0900
  • 86753c373b Making it more generic XargonWan 2024-08-24 00:05:56 +0900
  • 49b1bb673c Enable manifest building XargonWan 2024-08-24 00:03:26 +0900
  • 0701a4124b Adding manifest and workflow XargonWan 2024-08-24 00:01:32 +0900
  • 6638c847c6 Fix build in vs. Upgrade to c++20? Ian Curtis 2024-08-17 17:56:24 +0100
  • 309bf9856e Music.xml: Added Daytona 2 and Sega Rally 2 tracks Bart Trzynadlowski 2024-08-10 21:12:18 -0700
  • 3383b26bee supermodel_build_bot.py: Include Config/Music.xml in package Bart Trzynadlowski 2024-08-09 22:42:32 -0700
  • 6bae80bdf9 Makefile.Win32: Fixed SDL2 flags when building in MSYS Bart Trzynadlowski 2024-08-09 22:30:50 -0700
  • a0341cd1a4 Rules.inc: Restored 'release' target for Supermodel3.com-hosted builds and added some comments Bart Trzynadlowski 2024-08-09 21:39:14 -0700
  • cf8a61fd9d Update copyright date Bart Trzynadlowski 2024-08-08 19:07:43 -0700
  • e636dd5fb2 Improved Makefiles (from h0tw1r3's PR): macOS Makefile will download SDL2 Framework, hopefully fixed Musashi dependency issues that occasionally affect parallel builds Bart Trzynadlowski 2024-07-22 20:54:06 -0700
  • 2df8511e56
    Update README.md: Copyright updated to 2024 Bart Trzynadlowski 2024-08-09 11:56:12 -0700
  • c705a896d3 MpegAudio.cpp: Comment out debug logging of music start offsets Bart Trzynadlowski 2024-08-09 01:06:13 -0700
  • dbfe2b1a72 Added support for custom MPEG music in a new Music.xml config file Bart Trzynadlowski 2024-08-09 00:57:00 -0700
  • dd90d0e2e0
    Merge pull request #174 from gm-matthew/luminous15 dukeeeey 2024-08-02 19:08:52 +0100
  • 6908e5fd3f Step15Luminous() applies to all polys, not just textured ones gm-matthew 2024-08-02 17:20:23 +0100
  • ce9809c4d7
    Merge pull request #173 from gm-matthew/textureNP dukeeeey 2024-08-02 08:03:06 +0100
  • 493c5aae98 New textureNP implementation This new implementation uses the previously unused viewport parameter "cota" gm-matthew 2024-08-01 23:24:46 +0100
  • 3d8557dc44 fix minor compile warning Ian Curtis 2024-07-29 10:54:59 +0100
  • 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. Ian Curtis 2024-07-29 00:19:26 +0100
  • 27a2336528
    Merge pull request #169 from gm-matthew/texture dukeeeey 2024-07-28 16:39:18 +0100
  • 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. gm-matthew 2024-07-28 16:06:47 +0100
  • 32414ee1fd
    Merge pull request #168 from gm-matthew/specular dukeeeey 2024-07-26 18:00:09 +0100
  • 6d5aeb1da5 Specular lighting works differently on flat-shaded polys Also lower multIndex values for smooth-shaded specular, more accurate to real hardware gm-matthew 2024-07-26 17:22:35 +0100
  • 5fa402f2f5
    Merge pull request #165 from gm-matthew/widescreen dukeeeey 2024-07-19 16:32:45 +0100
  • d7fdba0620 Don't expend culling planes unless widescreen is enabled gm-matthew 2024-07-19 14:19:09 +0100
  • 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 gm-matthew 2024-07-14 02:30:51 +0100
  • 5a8cddd09a remove dead code Ian Curtis 2024-07-13 12:14:54 +0100
  • 79868e0ad3 fix compilation Ian Curtis 2024-07-08 12:19:06 +0100
  • 40bb7acbf7
    Merge pull request #160 from gm-matthew/textureNP dukeeeey 2024-07-06 18:47:05 +0100
  • 2b186e688c Texture mipmaps must be at least 2x2 Fixes sky in Dirt Devils gm-matthew 2024-07-06 00:04:52 +0100
  • ee5d6523c8
    Merge pull request #159 from gm-matthew/textureNP dukeeeey 2024-07-05 17:21:14 +0100
  • 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 gm-matthew 2024-07-05 15:57:25 +0100
  • 19612e1b13 fix merge error Ian Curtis 2024-06-13 13:43:42 +0100
  • 4d1484c0c9 merge conflicts Ian Curtis 2024-06-13 13:40:30 +0100
  • 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. Ian Curtis 2024-06-13 13:36:30 +0100
  • 42e236be0d Add comment briefly explaining optimization gm-matthew 2024-06-09 22:04:53 +0100
  • 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 gm-matthew 2024-06-04 16:40:36 +0100
  • a6466b353d spelling Ian Curtis 2024-06-01 19:20:35 +0100
  • 21e148599a Fix some missing scroll fog background effects in ECA Ian Curtis 2024-06-01 10:38:40 +0100
  • 7d32bde074 When disabling sound IRQs via MIDI control port, clear current IRQ Prevents Dirt Devils hanging during boot gm-matthew 2024-05-22 22:31:02 +0100
  • 976f0208dc
    Merge pull request #151 from gm-matthew/sound-irq dukeeeey 2024-05-20 19:31:25 +0100
  • 8a0bf29dd8 Sound IRQs are acknowledged by writing to MIDI data port gm-matthew 2024-05-20 13:38:45 +0100
  • 7b02f58694
    Merge pull request #149 from gm-matthew/scuddxo dukeeeey 2024-05-04 20:22:42 +0100
  • 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 gm-matthew 2024-05-04 19:43:02 +0100
  • 2245fca796
    Merge pull request #147 from gm-matthew/scuddxo dukeeeey 2024-05-02 23:29:47 +0100
  • 39dc16d8ba Use integer value for game stepping gm-matthew 2024-05-02 23:25:53 +0100
  • 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 gm-matthew 2024-05-02 15:43:37 +0100
  • 250f84e78e Updated .gitignore to exclude build directories and Supermodel release directories Bart Trzynadlowski 2024-04-05 14:28:07 -0700
  • dec85032ba
    Merge pull request #138 from h0tw1r3/fix/2d-shaders dukeeeey 2024-03-14 10:30:48 +0000
  • d9f48db5db CLogger: destructor needs to be virtual Bart Trzynadlowski 2024-03-09 20:56:50 -0800
  • 93f622ee25 cleanup code format Jeffrey Clark 2024-03-06 01:07:56 -0600
  • 047b15c210 fix 2d shaders on OSX Jeffrey Clark 2024-03-06 01:06:17 -0600
  • 1bb7de1dd9 fix segfault in CMultiLogger baraclese 2024-03-05 18:57:11 +0100
  • e59ecea32d PowerPC frequency determined by board stepping, config option is now just an override Bart Trzynadlowski 2024-01-28 21:08:12 -0800
  • 620a581227 No need to have changelog from 2011 in Readme.txt anymore. Jacob Oxford 2023-12-30 21:16:52 +0000
  • 75260f9f2c Clamp LODscale. If the object is drawn at zero we produce an Inf value which will produce Nans with later calculations. Ian Curtis 2023-12-29 13:28:10 +0000
  • 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. Ian Curtis 2023-12-27 12:42:32 +0000
  • 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. Ian Curtis 2023-12-26 18:25:03 +0000
  • 33b84c89aa
    Merge pull request #122 from gm-matthew/floatZ dukeeeey 2023-12-22 17:06:35 +0000
  • 6acb1165d4 Added new uniform bool polyAlpha to shaders Added original matrix functions back into Mat4 class though they are currently unused gm-matthew 2023-12-22 16:31:05 +0000
  • 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 gm-matthew 2023-12-22 02:00:47 +0000
  • 6f409539a7
    Merge pull request #120 from gm-matthew/patch dukeeeey 2023-12-04 13:08:11 +0000
  • 5b9e97008c Fixed Scud Race Plus "ROLLING START" patch Accidentally patched the wrong memory location in Scud Race Plus gm-matthew 2023-12-04 02:33:00 +0000
  • a19ba3cba8
    Merge pull request #118 from firewave/uninit dukeeeey 2023-12-03 18:22:30 +0000
  • 11e9b14e73
    Merge pull request #117 from firewave/mismatch dukeeeey 2023-12-03 18:17:12 +0000
  • 71e5baa61b Model3.cpp: avoid usage of uninitialized memory firewave 2023-12-02 20:05:46 +0100
  • 1cc94b7d79 Inputs/MultiInputSource.cpp: fixed mismatching allocation and deallocation firewave 2023-12-02 20:14:12 +0100
  • 5332d8f945 fixed some -Wunused-* compiler warnings firewave 2023-12-02 19:08:13 +0100
  • 391e1b9622
    Merge pull request #113 from gm-matthew/handbrake dukeeeey 2023-12-01 17:08:09 +0000
  • da62fa8640 Dirt Devils does not use the handbrake gm-matthew 2023-12-01 14:48:25 +0000
  • df0034ac1f fix minor error Ian Curtis 2023-11-18 22:56:15 +0000
  • bd63400471 Optimise shader code (gm_matthew) Ian Curtis 2023-11-17 22:22:50 +0000
  • 44fb32f2a9 fix compilation on linux Ian Curtis 2023-11-17 18:03:40 +0000
  • cdf5e4b2b2 Fix transparency depth testing The two transparency layers, might not be separate layers at all. We believe the hardware is writing each layer to every other pixel (stipple alpha), then using an anti-aliasing filter to effectively blend the pixels. Because the pixels don't overlap they don't depth test against each other. We are using separate layers to emulate this, so the depth buffer must be saved and restored between the layers. Ian Curtis 2023-11-17 16:07:20 +0000
  • de61835f14
    Merge pull request #107 from gm-matthew/lod-blending dukeeeey 2023-11-17 15:53:14 +0000
  • 8778f98c4a Add missing edge on transluency function Ian Curtis 2023-11-17 15:50:04 +0000
  • ac53101214 Implement LOD blending If two translucent polygons with opposing patterns overlap the result is always opaque Also the LOD scale calculation depends on Euclidean distance of x, y and z, not just z gm-matthew 2023-11-16 23:03:21 +0000
  • d726356006 Remove debug code Ian Curtis 2023-11-13 23:19:18 +0000
  • 33d65e097f Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-11-13 21:17:15 +0000
  • efe3077f53 Fix some stencil issues The stencil mask must be set to all 1s otherwise we can't clear all the bits in the stencil buffer. Also we no longer need to save/restore the depth buffer into between priority layers. Ian Curtis 2023-11-13 21:17:06 +0000
  • 3022e418c7 Added some TODO notes to Main.cpp Bart Trzynadlowski 2023-11-11 13:57:30 -0800
  • 47253d8398 Fixed graphics analysis -gfx-state option Bart Trzynadlowski 2023-11-11 13:55:02 -0800
  • a57b379498 DSB.h: when generating a debug build in gcc w/ -g, k_framePeriod was causing a linker error. Not sure why k_timerPeriod wasn't but made them both constexpr. Bart Trzynadlowski 2023-11-11 13:46:05 -0800
  • ccca9afceb byte_layout attribute for region tag, intended to support Sega Racing Classic 2 ROM extracted from Yakuza Bart Trzynadlowski 2023-11-11 13:11:15 -0800
  • c40d6ac17b Rewrite the stencil buffer usage slightly, so both the LOS and layered polys work. LOS uses the top bit of the stencil buffer. Fixes some minor issues with draw order in sega rally. Ian Curtis 2023-11-10 19:13:37 +0000
  • f9a0901e8c Fix regression Scroll attenuation seems to disable ambient fog. If scroll attenuation is enabled it's telling the h/w to draw the real3d spot light on fog for the scroll fog layer. This should fix a regression where the background disappears on sega rally. Ian Curtis 2023-11-09 18:41:57 +0000
  • a8976b51a2 typo Ian Curtis 2023-11-06 10:56:39 +0000
  • a065df24b8 Correct scroll fog attenuation logic (gm_matthew) The attenuation value effects the spot light on fog for the scroll fog layer. The old implemention was nearly correct but the paramaters for the mix function were swapped. Ian Curtis 2023-11-05 23:44:27 +0000
  • aecf61762e Various fixes - Scroll fog needed a break statement otherwise it could draw potentially multiples times. - The fog atttenuation paramater doesn't appear to effect scroll fog, other than to potentially enable it. This fixes some issues with emergency call ambulance. - Added support for the node discard attributes which sega rally2 uses to throw away specific geometry. This fixes junk that starts to show up in the levels after multiple runs. Ian Curtis 2023-11-05 17:39:23 +0000
  • 628eeebbc3
    Merge pull request #101 from gm-matthew/lod-and-blending dukeeeey 2023-11-03 19:56:17 +0000
  • 8dda8e9105 Fix the line of sight function. Polygons have a line of sight value that's either a 0 or 1. We write this value into the stencil buffer, then read the app can read it back to determine the polygon attribute is visible or not. The returned value is 1/depth value in world coordinates. The first bit of the float is actually a control bit, 1 indicates no geometry hit, 0 indicates geometry hit. Ian Curtis 2023-11-03 13:24:59 +0000
  • 483dbdda2e Add LOD switching and blending out culling nodes We're not blending between LODs yet as we're not sure of the best way to implement it Also implementing control bits for disable culling and enable model scale (needed for ECA and Harley) gm-matthew 2023-11-02 00:25:52 +0000
  • 3a85bd9e25 remove debug code Ian Curtis 2023-11-01 16:03:11 +0000
  • d16ba90856 Update comments for the culling node function. gm_matthew worked out that the last 2 bits of the model scale float appear to be control bits for disable culling and valid model scale. Strange logic but the line of sight (LOS) function does something similar by re-using float bits for control words. Ian Curtis 2023-11-01 16:01:13 +0000