Commit Graph

  • e9488734d6 Add files via upload master izzy2lost 2024-07-17 14:38:55 -04:00
  • f3f602ad56 Add files via upload izzy2lost 2024-07-17 14:38:05 -04:00
  • b88a41e212 Add files via upload izzy2lost 2024-07-17 14:37:06 -04:00
  • d0399de801 Add files via upload izzy2lost 2024-07-17 14:27:52 -04:00
  • ba74acb9bd Add Depends izzy2lost 2024-07-17 14:16:34 -04:00
  • f046717692 Update .gitignore izzy2lost 2024-07-17 14:10:53 -04:00
  • b0fff99339 Add Depends izzy2lost 2024-07-17 13:21:23 -04:00
  • 44c2ed5e89 Add Depends izzy2lost 2024-07-17 13:11:24 -04:00
  • 6bd9337b31 Update SDL_net.vcxproj izzy2lost 2024-07-17 10:21:43 -04:00
  • 57cd2165d7 Update toolset izzy2lost 2024-07-17 10:11:54 -04:00
  • 85fafab236 Update sega3.yml izzy2lost 2024-07-17 10:04:30 -04:00
  • 667968c05b Update target vs toolset izzy2lost 2024-07-17 10:03:41 -04:00
  • 659940cd0f Add Depends izzy2lost 2024-07-17 09:55:10 -04:00
  • 4c2690472a Update .gitignore izzy2lost 2024-07-17 06:34:05 -04:00
  • 43c9da38c6 Update sega3.yml izzy2lost 2024-07-16 18:53:25 -04:00
  • 59560e31a9 Update sega3.yml izzy2lost 2024-07-16 18:47:20 -04:00
  • 2612ddab8d Update sega3.yml izzy2lost 2024-07-16 12:11:25 -04:00
  • 595eb04585 Update sega3.yml izzy2lost 2024-07-02 13:30:34 -04:00
  • fc8da41b74 Update sega3.yml izzy2lost 2024-07-02 13:24:26 -04:00
  • 6d66980dcf Update sega3.yml izzy2lost 2024-07-02 13:02:53 -04:00
  • 7c55f0a52b Add files via upload izzy2lost 2024-07-02 12:45:56 -04:00
  • 67bb0b779a Delete .github/workflows/665.yml izzy2lost 2024-07-02 12:31:06 -04:00
  • f605fc7be3 Update sega3.yml izzy2lost 2024-07-02 12:30:35 -04:00
  • e6802481e9 Add files via upload izzy2lost 2024-07-02 12:27:08 -04:00
  • eb123a51da Create 665.yml izzy2lost 2024-07-02 12:09:57 -04:00
  • a359bba684 Update Supermodel.ini 1.0.5.0 aerisarn 2024-03-07 16:52:26 +01:00
  • c81ef72ec9 Merge pull request #1 from DevModeUWP/master aerisarn 2024-03-04 23:32:26 +01:00
  • 3ad89b3997 fixed controls DM 2024-03-03 13:42:49 +01:00
  • de177e2896 Add files via upload DM 2024-03-03 13:41:59 +01:00
  • 3db4c63317 Add files via upload DM 2024-03-03 13:40:42 +01:00
  • c042b23a3a Add files via upload DM 2024-03-03 13:38:48 +01:00
  • e0fdcff4dd UWP Mesa working 1.0.0.0 Edoardo Canepa 2024-01-31 22:49:21 +01:00
  • e59ecea32d PowerPC frequency determined by board stepping, config option is now just an override Bart Trzynadlowski 2024-01-28 21:08:12 -08:00
  • 620a581227 No need to have changelog from 2011 in Readme.txt anymore. Jacob Oxford 2023-12-30 21:16:52 +00:00
  • 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 +00:00
  • 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 +00:00
  • 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 +00:00
  • 33b84c89aa Merge pull request #122 from gm-matthew/floatZ dukeeeey 2023-12-22 17:06:35 +00:00
  • 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 +00:00
  • 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 +00:00
  • 6f409539a7 Merge pull request #120 from gm-matthew/patch dukeeeey 2023-12-04 13:08:11 +00:00
  • 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 +00:00
  • a19ba3cba8 Merge pull request #118 from firewave/uninit dukeeeey 2023-12-03 18:22:30 +00:00
  • 11e9b14e73 Merge pull request #117 from firewave/mismatch dukeeeey 2023-12-03 18:17:12 +00:00
  • 71e5baa61b Model3.cpp: avoid usage of uninitialized memory firewave 2023-12-02 20:05:46 +01:00
  • 1cc94b7d79 Inputs/MultiInputSource.cpp: fixed mismatching allocation and deallocation firewave 2023-12-02 20:14:12 +01:00
  • 5332d8f945 fixed some -Wunused-* compiler warnings firewave 2023-12-02 19:08:13 +01:00
  • 391e1b9622 Merge pull request #113 from gm-matthew/handbrake dukeeeey 2023-12-01 17:08:09 +00:00
  • da62fa8640 Dirt Devils does not use the handbrake gm-matthew 2023-12-01 14:48:25 +00:00
  • df0034ac1f fix minor error Ian Curtis 2023-11-18 22:56:15 +00:00
  • bd63400471 Optimise shader code (gm_matthew) Ian Curtis 2023-11-17 22:22:50 +00:00
  • 44fb32f2a9 fix compilation on linux Ian Curtis 2023-11-17 18:03:40 +00:00
  • 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 +00:00
  • de61835f14 Merge pull request #107 from gm-matthew/lod-blending dukeeeey 2023-11-17 15:53:14 +00:00
  • 8778f98c4a Add missing edge on transluency function Ian Curtis 2023-11-17 15:50:04 +00:00
  • 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 +00:00
  • d726356006 Remove debug code Ian Curtis 2023-11-13 23:19:18 +00:00
  • 33d65e097f Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-11-13 21:17:15 +00:00
  • 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 +00:00
  • 3022e418c7 Added some TODO notes to Main.cpp Bart Trzynadlowski 2023-11-11 13:57:30 -08:00
  • 47253d8398 Fixed graphics analysis -gfx-state option Bart Trzynadlowski 2023-11-11 13:55:02 -08:00
  • 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 -08:00
  • 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 -08:00
  • 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 +00:00
  • 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 +00:00
  • a8976b51a2 typo Ian Curtis 2023-11-06 10:56:39 +00:00
  • 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 +00:00
  • 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 +00:00
  • 628eeebbc3 Merge pull request #101 from gm-matthew/lod-and-blending dukeeeey 2023-11-03 19:56:17 +00:00
  • 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 +00:00
  • 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 +00:00
  • 3a85bd9e25 remove debug code Ian Curtis 2023-11-01 16:03:11 +00:00
  • 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 +00:00
  • 37065ce478 Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-10-31 23:50:33 +00:00
  • 8fea5bd3bf gm_mathew - the line scroll values, the top 16bits are the even lines, the bottom 16bits are the odd lines. We had it swapped. This fixes the number below the word results in daytona, when you finish a game. Ian Curtis 2023-10-31 23:50:19 +00:00
  • d42317db83 Update README.md to define GIF widths (for Safari) Bart Trzynadlowski 2023-10-30 14:47:25 -07:00
  • acab274526 Set language standard to c++ 17 Ian Curtis 2023-10-30 14:04:48 +00:00
  • f89da17f17 Fix white gfx on linux / intel gpus. These optimisations originally came from toxieainc Ian Curtis 2023-10-27 10:45:16 +01:00
  • c5f9a3ad26 Amend the ambient fog logic to be disabled if fog density/start is set to zero. This fixes a regression where the sky stops drawing in lost world. Ian Curtis 2023-10-24 10:17:15 +01:00
  • a214c6dae8 Prior scroll fog logic was nearly correct. For scroll fogging to draw it needs either a start value or a fog density value, but these can come from a different viewport if they have the same colour fog set. This fixes the credits in vf3 which sets scroll fog, but it never draws on the original hardware. Ian Curtis 2023-10-22 21:07:35 +01:00
  • 2af0787279 Remove debug code Ian Curtis 2023-10-17 17:33:26 +01:00
  • 79ddc8c739 Rewrite the logic for the scoll fog (render buffer clear colour). Each viewport can potentially have a scroll fog value so the logic of which value to pick wasn't immediately clear. TLDR I think it picks the highest value starting from the lowest priority layers. This fixes the sky in daytona battle on the edge. Ian Curtis 2023-10-17 17:30:14 +01:00
  • 86d477263f Scroll fog is like a clear colour for the render target, but can be semi transparent as the tilegen layer can be shown underneath. I assumed that transprent polys would be drawn to the render target for transparent polys but unfortunately the logic does not work. So where else could it be drawn? Well with limited memory it must be draw to the buffer for opaque polys, which means this render target is also blended. Ian Curtis 2023-10-15 17:16:52 +01:00
  • 392900fee2 Implement correct "round to nearest" mode On PowerPC round to nearest ties to even, not away from zero Also implement correct behavior for ppc_fresx Fixes "tips to win" sequence in Daytona 2 BOTE gm-matthew 2023-10-15 00:54:59 +01:00
  • d32641030d Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-10-14 20:05:07 +01:00
  • 6595b9320e Rewrite the renderer a bit to spit out the finished graphics from the 3d chip on separate buffers. One buffer is for opaque pixels, and 2 more for translucent pixels. Before the frame was composited on the back buffer, which meant the tilegen had to have been drawn first. This way the images are now totally independant of the tilegen chip so can be drawn as soon as the register write 0xC is written to the tilegen. Ian Curtis 2023-10-14 20:05:00 +01:00
  • 0e494a0219 Updated build script to use SFTP (Supermodel3.com server upgrade no longer supports ftp) Bart Trzynadlowski 2023-10-03 18:02:19 -07:00
  • d656643087 gm_mathew worked out that the camera flashes in sega rally 2 have the 'reset-matrix' attribute set inside the culling nodes, which was unsupported until now because we never found any games to have used this bit. The reset matrix is a bit strange, I would assume it would just reset the matrix back to identity, instead it seems to just reset the rotation back to identity whilst preserving the scale/position. Ian Curtis 2023-09-27 16:33:53 +01:00
  • e6b5468680 Update README.md: copyright dates. Bart Trzynadlowski 2023-09-25 14:46:28 +02:00
  • 7867c0145e Model3.cpp: Comment describing scan line timing. Bart Trzynadlowski 2023-09-25 14:45:57 +02:00
  • 801945d066 Whitespace Matthew Daniels 2023-09-03 19:29:58 +01:00
  • 24d24db988 Ping-pong flip timing depends of the value of tilegen register 0x08 Also make the debugger display 16 bytes per line when using the "listmemory" command. Mirrored system registers can now be watched gm-matthew 2023-09-03 16:51:18 +01:00
  • a00e8de988 Update rules file. Not tested this but hopefully it should work Ian Curtis 2023-09-23 17:28:18 +01:00
  • 6b0d5c453a Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-09-23 15:27:12 +01:00
  • c6ea81d996 Emulate the entire tilegen chip in a GLSL shader. (This is now possible with opengl 3+). The tilegen drawing was emulated on the CPU, but was one of the most expensive functions in the emulator according to a profiler. On a modern GPU it's pretty much free, because a GPU is a massive SIMD monster. Ian Curtis 2023-09-23 15:27:04 +01:00
  • 38a95088e8 Prevent "ROLLING START" scrolling glitch in Scud Race There is a quirk of the tilegen chip that causes this glitch not to occur on real hardware, but we can't be sure what it is without testing Much easier to just patch all the Scud Race ROM sets gm-matthew 2023-08-28 03:12:43 +01:00
  • c9b718e89a Fix Z80Debug.cpp compile with C++20 String literals should not be used to initialize char* but C++17 and earlier were letting it slide gm-matthew 2023-09-01 13:52:13 +01:00
  • ebff9a8b2d SCSP: added more detail to comment explaining 68K clock speed as recommended by Brian Troha Bart Trzynadlowski 2023-09-02 20:32:11 -07:00
  • b2fee4242c DMA device register always returns Step 1.x PCI ID Step 2.x games by AM3 request PCI ID this way and expect to see 0x16c311db gm-matthew 2023-08-19 23:47:00 +01:00
  • 7924fed369 Set soundboard CPU to correct clock speed The 68K on the soundboard is rated at 12 MHz but runs at 11.2896 MHz, which is 256 cycles/sample with a 44100 Hz sample rate. Removed SoundClock and Freq as they are not needed gm-matthew 2023-07-05 02:45:35 +01:00