Commit graph

807 commits

Author SHA1 Message Date
Ian Curtis d77433b525 Remove some debug code 2020-08-01 09:02:04 +00:00
Ian Curtis ba917aca6d Update glew version 2020-07-31 19:18:51 +00:00
Ian Curtis 5e434e2644 build fixes for mac 2020-07-27 10:28:48 +00:00
SpinDizzy 858b84f424 skichamp rom patch : prevent driveboard error at boot 2020-07-27 09:02:07 +00:00
SpinDizzy 6af882548f Linux build compatibility changes 2020-07-03 09:15:08 +00:00
SpinDizzy 12081a9ff7 Update makefiles 2020-07-03 09:08:03 +00:00
Ian Curtis f7d75b783d silence a few casting warnings 2020-07-01 17:51:21 +00:00
SpinDizzy a73a06d546 Netboard related : Define a new hardware line in games.xml 2020-07-01 15:56:21 +00:00
SpinDizzy 345310fbee _rotl() replacement 2020-06-17 16:31:22 +00:00
Ian Curtis 9a651bdb61 Only try and make a connection if we have enabled EmulateNet 2020-06-17 15:11:58 +00:00
Ian Curtis 1a3407bec8 Fix corrupted memory in network mode 2020-06-17 11:41:41 +00:00
Ian Curtis 597ea93749 remove old files 2020-06-16 12:01:13 +00:00
Ian Curtis daef27be37 Replace network code with new tcp implementation 2020-06-16 11:55:38 +00:00
Ian Curtis 8071efbf79 Add SDLnetworking + some basic tcp classes 2020-06-13 19:46:12 +00:00
Ian Curtis d688fdd3d5 cache variable, without it is unusably slow in debug mode 2020-06-12 17:33:21 +00:00
Ian Curtis 8b4a4ec93f add missing file 2020-06-10 09:12:34 +00:00
Ian Curtis 90df4afbad update vs project files 2020-06-08 14:27:37 +00:00
Ian Curtis f69d7c7006 fix output values 2020-06-08 10:14:03 +00:00
Ian Curtis 6f6c98c671 The translator map seems to work with paletted colour values too, and the result is not clamped. Colours are passed to the GPU as unsigned bytes to multiplying by 16 will overflow, so we do the logic in the shader. If we passed floats we could skip the shader logic. 2020-05-11 09:05:46 +00:00
Ian Curtis e2ad593e88 When the translator map is enabled the colour values seem to use 4 bits, 0-16. Why not 0-31 I don't know. Anyway virtua on is overflowing these values for some of the smoke effects. For us the numbers were wrapping around. Clamping is enough to fix this. (Thanks model123) 2020-05-07 19:34:22 +00:00
SpinDizzy 5b406059ce custom resolution bug fix 2020-04-24 07:04:41 +00:00
SpinDizzy 4f347ff3f1 SDL1 to SDL2 internal changes 2020-04-19 08:34:58 +00:00
Ian Curtis 14e2a50212 remove files 2020-01-22 18:44:30 +00:00
SpinDizzy 247921dce4 2020-01-22 17:36:22 +00:00
Ian Curtis 5ace960f14 tweak value so the map indicator still works at the start of spikeout 2020-01-04 18:15:30 +00:00
Ian Curtis 6b8a29105a Sutherland-Hodgeman clipping only works for planar primitives. Scud is rendering non planar quads and this breaks our algorithm a little when using the quad renderer. Stretching the near plane a few % is enough to fix it. 2020-01-04 13:48:14 +00:00
Ian Curtis d711afade1 Only need to clip against 4 planes for poly culling 2020-01-04 13:45:55 +00:00
Ian Curtis 605dad2c02 Fix the sky in harley in first person mode where pixels in the sky are culled when they shouldn't be with the quad renderer. Basically we were running out of precision in a rare corner case. Doing the maths with double precision and casting back to float was enough to fix the issue. 2019-12-27 21:36:46 +00:00
Ian Curtis a5858e635d To calculate the mipmap value the opengl needs to calculate the difference in the texture coordinates between adjacent pixels. If there are no adjacent pixels the hw may need to spawn invisible fragments outside of the visible polygon. Our algorithm was culling these out so the mipamp calculation failed for edge pixels. Anyway this fixes quad rendering looking broken with the latest nvidia drivers. 2019-12-10 11:40:39 +00:00
Ian Curtis 06688de5fc Really should cull against 5 frustum planes. 2019-11-15 20:00:25 +00:00
Ian Curtis e1827cfd13 Stretch the time the ping_pong bit flips a bit to bump writes into correct frame. Otherwise they end up getting written at like 99.8% of the frame and overlapping with the next. 2019-11-08 20:36:11 +00:00
Ian Curtis ed2816cea4 Optimise Games.xml (Krom) 2019-11-08 19:38:20 +00:00
Ian Curtis 2e6968fe9d Thanks to our anonymous contributor who managed to patch a model 3 game and run it on real h/w, we were able to obtain some timing values we had been long been missing for correct emulation. The h/w polls something called the ping_pong bit at start-up to sync the GPU with the CPU. Unfortunately we didn't have the correct values and just manually used some per game hacks to get games to run. This mostly worked, but some games were writing more or less frames than they should have been for a given time period. When the ping_pong bit flips at 66% of the frame time, games were writing data for a new frame, which meant writes were often straddling 2 separate frames. We aren't 100% sure if IRQ2 or the ping_pong bit is vblank. 2019-11-07 20:29:17 +00:00
Ian Curtis 06b43c45b3 Ocean hunter in the middle of the game is passing a few matrices with FLT_MAX inside them, which blows apart our near/far calculation. The hardware must have some method to sanitize the near/far for instance if you render something extremely close to the origin you will also blow apart any near/far calc. 2019-11-02 20:11:48 +00:00
Ian Curtis 714f6a123a skip invalid culling nodes 2019-07-28 12:14:13 +00:00
Ian Curtis 17f4103123 A culling node must follow immediately after a viewport. 2019-07-26 16:39:58 +00:00
Ian Curtis cc830003f5 Fix possible negative pointer arithmetic which was causing the music to wrap around. 2019-02-22 01:00:41 +00:00
Ian Curtis a76e46e3b8 Update makefiles 2019-02-21 14:57:57 +00:00
Ian Curtis 8aa476aeeb Previous mpeg audio code worked for me in debug mode, but the release build had some serious corruption issues when being built in visual studio. Replaced the old spaghetti code with a more modern implementation. 2019-02-21 14:56:25 +00:00
SpinDizzy c86dab0fe9 - Disabled Alt-O (dump timings) and Alt-U (dump input state) when
SUPERMODEL_DEBUGGER not defined
- Option '-print-inputs' works again if no ROM set specified
2019-02-19 09:24:31 +00:00
SpinDizzy 6fe878b1d3 Restore Sega Rally 2 music in some practice stages 2019-02-07 06:32:46 +00:00
SpinDizzy 383e6ac85c Fixed MPEG music looping glitch. 2019-02-05 10:30:50 +00:00
SpinDizzy bb89bc8e54 Refactor code from previous svn768 (Note : break old savestate compatibility) 2019-02-05 10:03:50 +00:00
Ian Curtis 90faeafbc4 Fix the audio in sega rally2. The game has packed separate tracks into the left and right audio channels. Selecting the correct track fixes the garbled mess. (Spindizzi) 2019-02-01 21:02:02 +00:00
Ian Curtis f634d19fdc Fix shader. Why this worked on my nvidia card .. I'm not sure. 2019-01-24 19:11:26 +00:00
Ian Curtis 8094c2e2b7 Composite the alpha layers at the end of rendering. To do this we need to mask the alpha pixels with the opaque pixels from the next priority layer. Fixes some overlapping shadows in vf3tb that have different priority layers. I assume that was a game bug, but it works on the real h/w. 2019-01-21 14:30:42 +00:00
SpinDizzy c171356f7d -Added support for specifying multiple sections simultaneously in INI
files, e.g., [ daytona2, dayto2pe ]
-Forgetfulness in 763
2019-01-20 08:02:01 +00:00
Ian Curtis 864bb36b5a Technically backface culling should cull polys when the dot product = 0, since when it equals 0 the polys is perpendicular to the camera and thus invisible. When you complete sega rally2 (if you can get that far lol) the champagne is invisible. The reason is because all the face normals are 0. So when multiplied by the model matrix they are still 0 and get culled. Tweaking the condition to only cull polys when greater than 0 fixes this, and allows these 'bad' polys to render as they do on the model3. 2019-01-16 01:07:56 +00:00
SpinDizzy 98106df68b Inputs can now be configured on a per-game basis 2019-01-13 16:20:19 +00:00
SpinDizzy b0813ef7a0 - PCI bridge can be specified in Games.xml for games that use a different version than expected based on stepping. No more hard-coded exceptions.
- Real3D PCI ID can be specified in Games.xml for exceptions that require it.
- Real3D status bit timing specified in Games.xml for exceptions that require it.
2019-01-13 16:00:37 +00:00