Commit: c40d6ac17b2936726e79c874473b7c8029d8425c / c40d6ac
Author: Ian Curtis
Date: Fri Nov 10 19:13:37 2023 +0000
- 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.
Commit: f9a0901e8cd8e644cbf360e0192e1fd24df6cbb9
Author: Ian Curtis
Date: Thu Nov 9 18:41:57 2023 +0000
- 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.
Commit: a8976b51a2e3bdbe31dbdf2741115e42d00e9cda / a8976b5
Author: Ian Curtis
Date: Mon Nov 6 10:56:39 2023 +0000
Commit: a065df24b8525eee40e882e194b6294ff589ea1d
Author: Ian Curtis
Date: Sun Nov 5 23:44:27 2023 +0000
- 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.
Commit: aecf61762e649c13298345c7973b625be379a652
Author: Ian Curtis
Date: Sun Nov 5 17:39:23 2023 +0000
- 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 thelevels after multiple runs.
Commit: 628eeebbc3eae08de86989329fed1f3cb7426a88
Author: dukeeeey
Date: Fri Nov 3 19:56:17 2023 +0000
- Merge pull request #101 from gm-matthew/lod-and-blending
- Add LOD switching and blending out culling nodes
Commit: 8dda8e9105a2cd08aafcbb7d9149c05db3a3f59e
Author: Ian Curtis
Date: Fri Nov 3 13:24:59 2023 +0000
- 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.
Commit: 483dbdda2e40cf5109136d9e3742dc920f9954b0
Author: gm-matthew
Date: Thu Nov 2 00:25:52 2023 +0000
- 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)
Commit: 3a85bd9e257af2641191b387d56a027844e36a49
Author: Ian Curtis
Date: Wed Nov 1 16:03:11 2023 +0000
Commit: d16ba90856e1111261818fef2b2677f1ec7cad05
Author: Ian Curtis
Date: Wed Nov 1 16:01:13 2023 +0000
- 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.
Commit: 37065ce4787cb45c74dcffdb630136b45e1904d8
Author: Ian Curtis
Date: Tue Oct 31 23:50:33 2023 +0000
- Merge branch 'master' of https://github.com/trzy/Supermodel
Commit: 8fea5bd3bf615b00953f74f8e7ad174605492814
Author: Ian Curtis
Date: Tue Oct 31 23:50:19 2023 +0000
- 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.
Commit: d42317db833fb5ba7415dbd2f410818af1c28d64
Author: Bart Trzynadlowski
Date: Mon Oct 30 14:47:25 2023 -0700
- Update README.md to define GIF widths (for Safari)
Commit: acab27452693ee9f7c55dfa297602ce42f8f6ec5
Author: Ian Curtis
Date: Mon Oct 30 14:04:48 2023 +0000
- Set language standard to c++ 17
Commit: f89da17f1778947fa2b3c4e543f3da3429578440
Author: Ian Curtis
Date: Fri Oct 27 10:45:16 2023 +0100
- Fix white gfx on linux / intel gpus. These optimisations originally came from toxieainc
Commit: c5f9a3ad2607dd26700ac9970425ca3b9e26776b / c5f9a3a
Author: Ian Curtis
Date: Tue Oct 24 10:17:15 2023 +0100
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.
Rewrite the scroll fog shader slightly. Scroll fog is a 2d layer, it has no depth, or can be considered to be drawn at infinity, therefore is not effected by the viewport light. The scroll attenatuion value also I think attenatutes the scroll fog alpha value. This fixes various effects in emergency call ambulance.
Commit: a214c6dae8e2ac016a63a2a656feec438cd72eeb
Author: Ian Curtis
Date: Sun Oct 22 21:07:35 2023 +0100
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.
For a long time we've had bug reports that in vf3 the background in the Dural levels was the wrong colour, it should have been much darker. We thought it was again missing scroll fog, but gm_mathew worked out it was actually coming from the fogAmbient paramater. Not only does it darken the fog, but it also has an effect on the 2d background from the tilegen, similar to scroll fog. This also fixes the sky in lemans24.
Commit: 2af078727948454a767995b340b6ecdba683d521
Author: Ian Curtis
Date: Tue Oct 17 17:33:26 2023 +0100
Remove debug code
Commit: 79ddc8c739b3966f8db3569de5ef7ae98d0e39ed
Author: Ian Curtis
Date: Tue Oct 17 17:30:14 2023 +0100
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.
Commit: 86d477263f0eacc88f42142d33a6e3eedf00dfa8
Author: Ian Curtis
Date: Sun Oct 15 17:16:52 2023 +0100
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.
Commit: 392900fee20fbd4277ff592abca1736b3b657048
Author: gm-matthew
Date: Sun Oct 15 00:54:59 2023 +0100
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
Commit: d32641030df03fba15fb0077d0bd270f1c71c10b
Author: Ian Curtis
Date: Sat Oct 14 20:05:07 2023 +0100
Merge branch 'master' of https://github.com/trzy/Supermodel
Commit: 6595b9320e7332914cb0b5c1229f32c7d1840636
Author: Ian Curtis
Date: Sat Oct 14 20:05:00 2023 +0100
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.
Some games update the tilegen after the ping_ping bit has flipped at 66% of the frame, so we need to split the tilegen drawing up into two stages to get some effects to work. So having the tilegen draw independantly of the 3d chip can make this happen.
Commit: 0e494a0219b5cfe9fff05201f576036d019ed106
Author: Bart Trzynadlowski
Date: Tue Oct 3 18:02:19 2023 -0700
- Updated build script to use SFTP (Supermodel3.com server upgrade no longer supports ftp)
Commit: d6566430872c89bdbdc30a03aec5a864ed8d6139
Author: Ian Curtis
Date: Wed Sep 27 16:33:53 2023 +0100
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.
Commit: e6b54686804cc349972d43e5960edae4c46b61ae
Author: Bart Trzynadlowski
Date: Mon Sep 25 14:46:28 2023 +0200
Update README.md: copyright dates.
Commit: 7867c0145e53919999de3afac7ddcf3dd0959947
Author: Bart Trzynadlowski
Date: Mon Sep 25 14:45:57 2023 +0200
Model3.cpp: Comment describing scan line timing.
Commit: 801945d06635839c218502ce45e156bd311af893
Author: Matthew Daniels
Date: Sun Sep 3 19:29:58 2023 +0100
Whitespace
Commit: 24d24db988fdf92a8e3368c24384cf84219add9c
Author: gm-matthew
Date: Sun Sep 3 16:51:18 2023 +0100
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