Commit graph

  • 72b2c0eb28 Fixed a longstanding bug that caused stereo channels to be flipped incorrectly. This was due to the initial audio buffer write position being aligned to the middle of a 4 byte (2 byte left, 2 byte right) audio sample. In multi-threaded mode, some sort of race condition caused this alignment to be fixed until audio playback was temporarily paused (via pausing, loading a state, etc.) Audio playback should now be fixed and work consistently in all cases. SpinDizzy 2020-09-14 06:59:38 +0000
  • 38c3ff61f9 Clip scroll fog to viewport, instead of filling entire screen. Fixes fog bug in Daytona credits. Ian Curtis 2020-09-08 09:10:24 +0000
  • aaa26f678c Update scroll fog logic. Should fix the credits in virtua fighter and daytona that have fogging applied to the background layer and shouldn't. Ian Curtis 2020-09-07 16:25:18 +0000
  • 1d37358b8c - Add missing library from previous windows makefile update. - NEW_FRAME_TIMING build option was removed because it was no longer used. SpinDizzy 2020-09-04 05:48:41 +0000
  • 95488acb0a Windows makefile update SpinDizzy 2020-09-03 06:27:57 +0000
  • 60c923f45f - Reworked logging system to support output to multiple outputs: files, stdout, stderr, and syslog (OutputDebugString on Windows, syslog on other systems). - Added ordinal logging level: all, debug, info, error. Compiling with DEBUG defined is no longer necessary for debug logging. Be careful when logging debug level because it produces copious output. - Fixed -enter-debugger options when compiled with SUPERMODEL_DEBUGGER. - Command line parse errors no longer ignored; Supermodel will now exit. SpinDizzy 2020-08-31 09:28:35 +0000
  • 6491ed46a7 Rename command line SCSP option to -legacy-scsp and -new-scsp SpinDizzy 2020-08-26 16:14:54 +0000
  • d3955062e4 Correct the returned value from previous getbass patch There was a strange side effect on Ocean Hunter game SpinDizzy 2020-08-26 16:05:23 +0000
  • 9e8e993026 Getbass related Game now boots in game Add missing analog input and buttons SpinDizzy 2020-08-25 08:48:25 +0000
  • 97d61a970c Small oversight in the new SCSP code SpinDizzy 2020-08-24 10:09:01 +0000
  • 816d541b98 Various SCSP improvements and code cleanup: - Ported MAME's implementation - Corrected FM sound for songs in VF3 that use it - Music tempo now closer to real hardware thanks to emulating two SCSP chips. - Add LegacySoundDSP config option for games with SCSP DSP glitches (ex. engine noises in Sega Rally 2, and loud garbage on Bahn's stage in Fighting Vipers 2) - Renamed SysFPS to "SoundClock" (since raising this appears to adjust the sound frequency). Ian Curtis 2020-08-22 20:41:47 +0000
  • cf64375371 New ecap crc rom + rom patch SpinDizzy 2020-08-22 09:03:53 +0000
  • 27cda80abb Low level z80 core bug Discovered when looking at lemans ffb board (real Model3 rom, not Model2 stcc one) This could affect other ffb board and/or scud race DSB1 sound board However I didn't notice any bad things SpinDizzy 2020-08-22 09:00:13 +0000
  • d77433b525 Remove some debug code Ian Curtis 2020-08-01 09:02:04 +0000
  • ba917aca6d Update glew version Ian Curtis 2020-07-31 19:18:51 +0000
  • 5e434e2644 build fixes for mac Ian Curtis 2020-07-27 10:28:48 +0000
  • 858b84f424 skichamp rom patch : prevent driveboard error at boot SpinDizzy 2020-07-27 09:02:07 +0000
  • 6af882548f Linux build compatibility changes SpinDizzy 2020-07-03 09:15:08 +0000
  • 12081a9ff7 Update makefiles SpinDizzy 2020-07-03 09:08:03 +0000
  • f7d75b783d silence a few casting warnings Ian Curtis 2020-07-01 17:51:21 +0000
  • a73a06d546 Netboard related : Define a new hardware line in games.xml SpinDizzy 2020-07-01 15:56:21 +0000
  • 345310fbee _rotl() replacement SpinDizzy 2020-06-17 16:31:22 +0000
  • 9a651bdb61 Only try and make a connection if we have enabled EmulateNet Ian Curtis 2020-06-17 15:11:58 +0000
  • 1a3407bec8 Fix corrupted memory in network mode Ian Curtis 2020-06-17 11:41:41 +0000
  • 597ea93749 remove old files Ian Curtis 2020-06-16 12:01:13 +0000
  • daef27be37 Replace network code with new tcp implementation Ian Curtis 2020-06-16 11:55:38 +0000
  • 8071efbf79 Add SDLnetworking + some basic tcp classes Ian Curtis 2020-06-13 19:46:12 +0000
  • d688fdd3d5 cache variable, without it is unusably slow in debug mode Ian Curtis 2020-06-12 17:33:21 +0000
  • 8b4a4ec93f add missing file Ian Curtis 2020-06-10 09:12:34 +0000
  • 90df4afbad update vs project files Ian Curtis 2020-06-08 14:27:37 +0000
  • f69d7c7006 fix output values Ian Curtis 2020-06-08 10:14:03 +0000
  • 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. Ian Curtis 2020-05-11 09:05:46 +0000
  • 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) Ian Curtis 2020-05-07 19:34:22 +0000
  • 5b406059ce custom resolution bug fix SpinDizzy 2020-04-24 07:04:41 +0000
  • 4f347ff3f1 SDL1 to SDL2 internal changes SpinDizzy 2020-04-19 08:34:58 +0000
  • 14e2a50212 remove files Ian Curtis 2020-01-22 18:44:30 +0000
  • 247921dce4 SpinDizzy 2020-01-22 17:36:22 +0000
  • 5ace960f14 tweak value so the map indicator still works at the start of spikeout Ian Curtis 2020-01-04 18:15:30 +0000
  • 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. Ian Curtis 2020-01-04 13:48:14 +0000
  • d711afade1 Only need to clip against 4 planes for poly culling Ian Curtis 2020-01-04 13:45:55 +0000
  • 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. Ian Curtis 2019-12-27 21:36:46 +0000
  • 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. Ian Curtis 2019-12-10 11:40:39 +0000
  • 06688de5fc Really should cull against 5 frustum planes. Ian Curtis 2019-11-15 20:00:25 +0000
  • 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. Ian Curtis 2019-11-08 20:36:11 +0000
  • ed2816cea4 Optimise Games.xml (Krom) Ian Curtis 2019-11-08 19:38:20 +0000
  • 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. Ian Curtis 2019-11-07 20:29:17 +0000
  • 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. Ian Curtis 2019-11-02 20:11:48 +0000
  • 714f6a123a skip invalid culling nodes Ian Curtis 2019-07-28 12:14:13 +0000
  • 17f4103123 A culling node must follow immediately after a viewport. Ian Curtis 2019-07-26 16:39:58 +0000
  • cc830003f5 Fix possible negative pointer arithmetic which was causing the music to wrap around. Ian Curtis 2019-02-22 01:00:41 +0000
  • a76e46e3b8 Update makefiles Ian Curtis 2019-02-21 14:57:57 +0000
  • 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. Ian Curtis 2019-02-21 14:56:25 +0000
  • 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 SpinDizzy 2019-02-19 09:24:31 +0000
  • 6fe878b1d3 Restore Sega Rally 2 music in some practice stages SpinDizzy 2019-02-07 06:32:46 +0000
  • 383e6ac85c Fixed MPEG music looping glitch. SpinDizzy 2019-02-05 10:30:50 +0000
  • bb89bc8e54 Refactor code from previous svn768 (Note : break old savestate compatibility) SpinDizzy 2019-02-05 10:03:50 +0000
  • 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) Ian Curtis 2019-02-01 21:02:02 +0000
  • f634d19fdc Fix shader. Why this worked on my nvidia card .. I'm not sure. Ian Curtis 2019-01-24 19:11:26 +0000
  • 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. Ian Curtis 2019-01-21 14:30:42 +0000
  • c171356f7d -Added support for specifying multiple sections simultaneously in INI files, e.g., [ daytona2, dayto2pe ] -Forgetfulness in 763 SpinDizzy 2019-01-20 08:02:01 +0000
  • 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. Ian Curtis 2019-01-16 01:07:56 +0000
  • 98106df68b Inputs can now be configured on a per-game basis SpinDizzy 2019-01-13 16:20:19 +0000
  • 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. SpinDizzy 2019-01-13 16:00:37 +0000
  • d8f736e7a8 timing fix for srally2x (Spindizzi) Ian Curtis 2019-01-06 23:48:34 +0000
  • 24cbc401b9 Updates games.xml for new prototype games (Spindizzi) Ian Curtis 2019-01-06 23:43:27 +0000
  • 0f49e0b1e9 remove commands that do nothing Ian Curtis 2018-12-08 20:01:37 +0000
  • 08eeb20033 clear scissored out areas Ian Curtis 2018-12-08 19:55:26 +0000
  • 6075352868 Optimise depth calculation for quad shader. Ian Curtis 2018-11-27 20:43:27 +0000
  • 6eaf204d72 Update Games.xml for games that were recently dumped Ian Curtis 2018-11-11 20:48:49 +0000
  • 78039e91a8 Ian Curtis 2018-10-28 18:30:04 +0000
  • 538a714086 Fade out microtextures with higher textures LODs. Fixes incorrectly applied microtextures in LA machineguns. Ian Curtis 2018-10-23 00:16:23 +0000
  • b8da2d6064 debug code should be disabled Ian Curtis 2018-10-22 21:59:01 +0000
  • bf4d725970 Smooth texture repeat makes no sense for alpha/contour textures with pixel dilate. HW seems to treat them as non smooth anyway. Also implement some line of sight stuff, used by Scud. Really need to check the threading/synchronisation of the register reads but it basically works. Ian Curtis 2018-10-19 20:59:46 +0000
  • df02d6a753 return correct PCI ID Ian Curtis 2018-10-18 09:42:51 +0000
  • 3dc69f89b8 fix debugging code Ian Curtis 2018-10-17 22:36:33 +0000
  • 42eaa7f3d8 fix copy paste error :] Ian Curtis 2018-10-14 10:05:24 +0000
  • 3eeec35e7c Correctly emulate the real3d pro-1000 texture modes in our shader. Ian Curtis 2018-10-13 13:29:45 +0000
  • a5ad1c4099 Revert some patches (Spindizzi) Ian Curtis 2018-10-07 19:31:55 +0000
  • 7bcc70a170 Update makefile Ian Curtis 2018-10-01 17:42:45 +0000
  • 3dbfa73734 Both lemans24 and dirt devils are rendering some totally transparent objects as the first model in each viewport. The HW seems to skip these entirely, and including them breaks our near/far plane calculations leading to Z fighting. Ian Curtis 2018-09-19 20:43:41 +0000
  • e3255e45f3 Tweak the ratio for the near plane. Fixes missing text on the map indicator at the start of spikeout. The vertices are 0.003 units apart so a tonne of precision is required at the near plane to not depth test out. Ian Curtis 2018-09-18 21:46:38 +0000
  • c5b156d95d remove debug code Ian Curtis 2018-09-18 21:20:15 +0000
  • 5dab9910e2 avoid double matrix load Ian Curtis 2018-09-16 08:43:13 +0000
  • a7e851d578 updated command line help Ian Curtis 2018-09-14 20:31:34 +0000
  • b5f9ad9651 Quad rendering engine. Set QuadRendering = 1 in the ini file to use, or -quad-rendering at the end of the command line to use. Ian Curtis 2018-09-13 12:50:34 +0000
  • e4f5f0bcaf Sega bass fishing is starting some off the meshes with a shared vertex. Without having a previous vertex to share with, the values were just uninitialised and junk. The hardware itself seems to hold the value from the previous mesh, and sega bass fishing relies on this undefined behaviour to function correctly. Storing the cached vertices as member variables instead of locally to the function means it holds the values from the last mesh, and uses those values instead of random garbage. Ian Curtis 2018-09-02 21:36:24 +0000
  • c1c2dedcfa remove dead variable Ian Curtis 2018-08-09 21:57:51 +0000
  • 9f5a19a04a Use correct PCI IDs (Harry Tuttle) Ian Curtis 2018-07-09 08:06:06 +0000
  • 80cf1f9b52 add crosshair effect (Harry Tuttle) Ian Curtis 2018-07-04 22:15:44 +0000
  • 73ff32a10d fix cast, and remove extra ; that had snuck into the shaders Ian Curtis 2018-06-18 10:24:46 +0000
  • f9be1259c0 Opaque polys definitely depth test with less than or equal. Virtua striker is drawing co-planar polys for the bar gfx Ian Curtis 2018-06-17 11:30:01 +0000
  • c7ffd0a808 Draw transparent polys to separate layers and composite at the end. This solves a tonne of transparency errors we had been battling with for a long time. The model3 is strange in the fact it only supports a max of two translucent overlapped polys. They are not blended into the frame normally. Doing this means the topmost translucent polys only are visible in the scene, the equivalent of doing a depth pass first, but without the added cost. Ian Curtis 2018-06-16 21:31:29 +0000
  • 7497e3f1a6 forgot parentheses Ian Curtis 2018-05-29 14:54:23 +0000
  • f9f43ca66b Ian Curtis 2018-05-28 12:55:13 +0000
  • c1e0e3728b optimise hash function and parse out transparency layer select bit Ian Curtis 2018-05-28 11:59:48 +0000
  • 2af58f4352 select correct bit .. Ian Curtis 2018-05-24 20:19:54 +0000
  • 8452d4c0ef Parse out TranslucencyPatternSelect Ian Curtis 2018-05-24 20:13:15 +0000
  • 4d5c9e7231 Fixed Makefiles for non-MSYS builds. Unfortunately had to revert a lot of the automated configuration that Harry had inserted. Users will again need to hand-edit Makefile.Win32 for their configuration. Verbose warnings (-Wall) have been restored. Bart Trzynadlowski 2018-05-06 18:52:23 +0000
  • 4d275ba49e Parse siblings after children. It's the only way to get Daytona water fall to look correct without h/w poly sorting. Ian Curtis 2018-05-03 18:37:49 +0000
  • 3f9b1b76e5 Added a stretch mode (-stretch) and modified new renderer's viewport code (hopefully correctly) to handle aspect ratio correction and widening the way the legacy one does. Bart Trzynadlowski 2018-05-03 03:46:44 +0000