Commit graph

  • c6b86c0812 Render the opaque part of texture transparency in the first pass. Fixes numerous transparency related issues in lemans24 and some in ocean hunter. I don't really know if this is the 'correct' way of solving this because the real3d pro-1000 is a complete black box. There is still a lot we don't understand about how it handles transparency. Ian Curtis 2018-05-02 20:10:02 +0000
  • 11a3cdbfd1 remove unnecessary copies Ian Curtis 2018-04-24 13:51:53 +0000
  • b39de6e4df Fix controller inputs (Spindizzi) Ian Curtis 2018-03-30 12:04:27 +0000
  • 934941423a Inconsequential typo Bart Trzynadlowski 2018-03-26 23:02:30 +0000
  • b5f1b7a2fd Reverted version to 0.3a-WIP. Release version will be updated to 0.4a. Bart Trzynadlowski 2018-03-26 23:01:18 +0000
  • f0ea6b45a8 Added ability to load save state at startup using -load-state or InitStateFile (in config file) Bart Trzynadlowski 2018-03-26 22:59:06 +0000
  • d21e71dced work around for non working jtag code in star wars Ian Curtis 2018-03-21 10:26:05 +0000
  • b184ca3e1b Clamping must be applied before the spotlight is applied on step 1.0 h/w. Ian Curtis 2018-03-10 09:13:28 +0000
  • 609d1ba19f Fix step 1.0 games with NET_BOARD defined (Spindizzi) Ian Curtis 2018-03-08 14:27:28 +0000
  • d8572a923a Update network code (Spindizzi) Ian Curtis 2018-02-24 15:53:18 +0000
  • 995cf6adb0 white space Ian Curtis 2018-01-29 19:33:29 +0000
  • 10cefb7c61 Support both types of lightgun in lost world. 2nd type fixes some missing fx. Thanks to Any for pointing this out. To use the old type change analog_gun1 to gun1 in the xml file. Ian Curtis 2018-01-29 19:31:23 +0000
  • 6bc4224154 fix a few compile warnings Ian Curtis 2018-01-25 21:07:22 +0000
  • b210636c1c Add the netboard stuff to the ini file. Stops crashes when they are missing. Ian Curtis 2018-01-25 21:03:43 +0000
  • 820f27cea1 A hack to get spikeout to work (uncomment to enable) (Spindizzi) Ian Curtis 2018-01-25 20:40:05 +0000
  • 964f08c894 Disable the netboard if EmulateNet=0 (Spindizzi) Ian Curtis 2018-01-25 20:38:31 +0000
  • 85a638bc06 remove extra qualifier Ian Curtis 2018-01-22 21:10:20 +0000
  • 04758e38b6 Update make files and fix build for the various options (Harry Tuttle) Ian Curtis 2018-01-22 21:01:35 +0000
  • b5bbda67d0 fix header files Ian Curtis 2018-01-22 18:27:51 +0000
  • 571d1060ee Remove using namespace std from the header files .. Ian Curtis 2018-01-21 15:09:11 +0000
  • 8266eecabb Parse out line of sight position. Only known to be used by scud. Ian Curtis 2018-01-15 21:27:21 +0000
  • 99b5b9ba1b make the logic a bit clearer Ian Curtis 2018-01-15 14:40:59 +0000
  • 22a6166b82 fix Ian's bad maths :) Ian Curtis 2018-01-15 13:08:39 +0000
  • a1350d95a2 Update microtexture coordinate logic (Harry Tuttle) Ian Curtis 2018-01-14 12:56:24 +0000
  • 303c77fbbe fix illegal xml character sequence Ian Curtis 2018-01-13 15:49:58 +0000
  • 863ea95013 simplify maths Ian Curtis 2018-01-10 20:37:21 +0000
  • adb5196625 comment out unneeded code Ian Curtis 2018-01-10 16:12:33 +0000
  • d708ce9ba2 top/bottom were swapped for off axis projection Ian Curtis 2018-01-10 16:08:02 +0000
  • 6efa03112e Rewrite projection maths based upon previously unknown viewport values. The previous values used roughly worked as the normals for frustum planes. Perhaps they were only used for culling and not actually rendering, as sometimes the values don't work correctly. Ian Curtis 2018-01-08 18:35:42 +0000
  • cf7850602b fix build Ian Curtis 2018-01-08 00:13:23 +0000
  • 0b6da91cc0 add the rest of the network board code (Spindizzi) Ian Curtis 2018-01-07 14:07:59 +0000
  • dc3048df24 use the correct c++ deleters Ian Curtis 2018-01-06 11:19:04 +0000
  • 19e6aab1fa use a few macros to make debugging less painful Ian Curtis 2018-01-06 01:18:14 +0000
  • 314279ed25 Add network board emulation. Currently not linked with the rest of the project. Ian Curtis 2018-01-04 19:14:12 +0000
  • f7678d918e remove using namespace from headers .. Ian Curtis 2018-01-03 17:51:24 +0000
  • 53c98283aa rename to avoid clash with a #define Ian Curtis 2018-01-03 16:19:10 +0000
  • 3ab93cf6ee add asynchronous sending functions Ian Curtis 2018-01-02 18:54:34 +0000
  • 58dc18cd11 remove dead variable Ian Curtis 2017-12-29 11:46:38 +0000
  • 78ae00faf1 Add basic networking files to supermodel. Currently these are win32 specific but can port to SDL or whatever later. Ian Curtis 2017-12-29 11:42:03 +0000
  • 080acd08c2 Fix the smallest texture lods (Harry Tuttle) Ian Curtis 2017-12-21 11:14:06 +0000
  • a772dd32fc fix array out of bounds Ian Curtis 2017-12-20 18:47:17 +0000
  • 4702fef33e remove debug code Ian Curtis 2017-12-19 11:43:17 +0000
  • 429d6cbb02 mark as static Ian Curtis 2017-12-17 23:02:25 +0000
  • cc28d5f00e Implement sub 8x8 tile encoding. Fixes incomplete mipmap chains which previously only went down to 8x8 pixels before. It wasn't known these textures existed before. (Harry Tuttle) Ian Curtis 2017-12-17 22:25:50 +0000
  • cede67468c Fix some bad/missing textures in fighting vipers. The game is referencing totally illegal texture sizes. The real h/w was just handling it somehow, whilst we were returning null for the textures. This might produce junk textures for the lower mipmaps, but this can be clamped in a later update. Ian Curtis 2017-12-13 01:21:25 +0000
  • 62d9584b0d Shift fog maths to fragment shader to fix bug in virtua on. Ian Curtis 2017-11-23 17:51:51 +0000
  • bddc86aba9 The vertex shader is run before clipping is done. If fogging values are calculated and clamped in the vertex shader it can interpolate bad values, since the range has been truncated. This happens if the polys overlap the near plane. The solution to clamp the values in the fragment shader. This fixes a bunch of fogging errors I long thought were transparency related errors in the ocean hunter. Ian Curtis 2017-11-20 22:21:15 +0000
  • bc7f1e9fac Fixed shading also works with untextured polys. Fixes some shading issues in La machineguns. (Harry Tuttle) Ian Curtis 2017-11-07 00:15:57 +0000
  • df44ad458b Update step 1.5 luminous logic with Harry's findings. Fixes various shading issues. Ian Curtis 2017-11-05 13:25:33 +0000
  • 8e13c3bbb9 Finish the hash function (Harry Tuttle) Ian Curtis 2017-10-19 20:48:53 +0000
  • 7f6df0cc84 Remove fixed shading check from specular. Ian Curtis 2017-10-07 12:39:30 +0000
  • 4d685e0750 Makefile fixes: Moved Windows-specific source files out of Makefile.inc, using 'bin' and 'obj' when bits are not explicitly set, and changed output file to Supermodel rather than Supermodel.exe, which works on all platforms. Bart Trzynadlowski 2017-10-06 01:04:49 +0000
  • eb798ed15e Star wars is the only game to pass unsigned fixed shaded values (per vertex brightness) to the renderer. Originally we thought that the specular flag would turn on unsigned values since it's the only game to set specular with these polys, but this logic turned out to be incorrect. The JTAG interface seems to config the GPU to turn on this functionality. (Harry Tuttle) Ian Curtis 2017-10-05 19:15:00 +0000
  • 7c84bc6aeb update visual studio project Ian Curtis 2017-10-05 18:54:36 +0000
  • 43cf6b3bbf update spotlight code (Harry Tuttle) Ian Curtis 2017-10-05 18:49:08 +0000
  • cee468b2bc Harry's patch: add dirtdvlsj and change "Star Wars Trilogy" to "Star Wars Trilogy Arcade" Bart Trzynadlowski 2017-10-05 02:17:48 +0000
  • 2397b8225a New, saner Makefiles. They still require some customization but share a core Makefile include with auto-generation of dependencies. Multi-threaded building (e.g., make -j6) is supported now. Bart Trzynadlowski 2017-10-05 02:14:02 +0000
  • 9bac7836ed add missing header Ian Curtis 2017-09-30 19:05:04 +0000
  • 3ca37089ca Get rid of unused variable warning Bart Trzynadlowski 2017-09-27 13:20:09 +0000
  • 0afd9026dc Fix the sky in one of the levels in virtua on. The problem was caused by the fact we didn't split the mesh by the fog % burn through, so all the polys had the same value. We could use a vertex attrib, but % burn through fog is so rarely used and when it is, normally every poly in the mesh has the same value. Ian Curtis 2017-09-26 00:30:08 +0000
  • 1eac755bc3 Fix tiny memory leak Bart Trzynadlowski 2017-09-25 00:05:10 +0000
  • 18f460db6f Ian Curtis 2017-09-24 22:49:20 +0000
  • da1342b5d9 update project files Ian Curtis 2017-09-24 22:39:53 +0000
  • 0376f74192 work around for visual studio bug Ian Curtis 2017-09-24 22:36:12 +0000
  • adecec77de fix missing header Ian Curtis 2017-09-24 22:14:39 +0000
  • 7590f50350 cannot specify explicit initializer for arrays - fix for visual studio Ian Curtis 2017-09-24 22:03:31 +0000
  • 55bb02d4e5 - New work-in-progress frame timing code (disabled by default, compile with NEW_FRAME_TIMING defined to activate it) - New JTAG emulation, moved into its own class, CJTAG - Removed game-specific sun clamp hacks from CNew3D (JTAG and Real3D emulation will call the appropriate method to configure this at run-time) - Removed JTAG from Real3D save state data and reused some of that space for new state variables having to do with the internal JTAG-based config as well as new frame timing state variables Bart Trzynadlowski 2017-09-24 20:52:48 +0000
  • c4f8471d7a Added functions to safely read and write bools Bart Trzynadlowski 2017-09-24 20:49:31 +0000
  • 1db2f6bb84 Added functions to extract bits as integer values and updated comment about bit vector layout Bart Trzynadlowski 2017-09-24 18:40:58 +0000
  • 3041ca1922 Added SetOnes() and SetZeros() Bart Trzynadlowski 2017-09-23 16:08:27 +0000
  • c3eef706e8 Safe guard against shifting empty register. Bart Trzynadlowski 2017-09-23 15:40:20 +0000
  • 98b0354dd6 Hex formatting support extended to 64 bits. Bart Trzynadlowski 2017-09-23 15:33:26 +0000
  • 61a0517bd9 Added ShiftOutLeft() and ShiftOutRight() Bart Trzynadlowski 2017-09-23 15:03:06 +0000
  • 7a2e6b393a Renamed shift in/out functions to add/remove to be less ambiguous about their functionality Bart Trzynadlowski 2017-09-23 14:42:05 +0000
  • 86631695d7 Added ToHexString() and made ostream serialization use this Bart Trzynadlowski 2017-09-19 19:43:06 +0000
  • e12a945ddd Fix for VS2015 and newer by MetalliC Bart Trzynadlowski 2017-09-18 04:24:23 +0000
  • f2030ac125 Added BitRegister class (for use in upcoming JTAG refactor): an inefficient but flexible container for manipulating a dynamic bit stream. Bart Trzynadlowski 2017-09-07 19:33:25 +0000
  • a3e2fb7906 Calculating the length of the vertex results in quite broken values for fogging when the vertices are traversing the view frustum. The hardware also wouldn't have been doing a square root per vertex for fogging. Simply using the z values is enough. Todo check clamping of values for the near/far planes. Ian Curtis 2017-09-06 13:07:39 +0000
  • 2786d95795 add interface for sun clamp Ian Curtis 2017-09-02 14:54:16 +0000
  • 266c911133 Optimise vertex data to cut down on unnecessary copying Ian Curtis 2017-08-30 21:45:25 +0000
  • 165926aa06 Modern hardware does backface culling in window space by calculating the face normal for the polygon, then doing a dot product against the view vector. The real3d pro-1000 on the other hand passes a pre-calculated face normal for each polygon which is used for culling. We were using this face normal to rewind the polygons so that regular backface culling would work. This worked 99.9% of the time. However this was failing on some models in Virtua Striker. The reason was because the pre-calculated face normals being passed were actually completely different to the actual face normals for the poly (not just inverted like you would expect). This broke our code. The solution was to emulate face culling directly in the vertex shader using the pre-calculated face normals directly. Only minimally tested this but hopefully there are no obvious regressions. Ian Curtis 2017-08-29 10:27:29 +0000
  • f04a285727 DMA and register space access for Real3D have been unified and CReal3D::ReadRegister() returns little endian data now that the PowerPC handler byte-swaps back, to be consistent with how DMA registers work. Bart Trzynadlowski 2017-08-29 01:28:21 +0000
  • 50d1f95648 Changed fixed shaded logic for step 1.5 hw based upon Harry's findings Ian Curtis 2017-08-25 22:40:39 +0000
  • b21ed49512 cosmetic Ian Curtis 2017-08-21 23:00:29 +0000
  • cd5978773a Harry made some important discoveries with regards to fixed shading on the model 3 (per vertex poly brightness values). Firstly values are allowed to be negative, and they are used as a drop in replacement in the standard lighting equation for the normal dot light vector. This quite radically changes the brightness in LA Machine guns, but now correctly matches the arcade. Ian Curtis 2017-08-19 20:06:31 +0000
  • 94e6f9a156 Patched Sega Rally 2 DX to boot up. Enjoy Sega Rall 2 without MPEG music at 50% speed ;) Bart Trzynadlowski 2017-08-19 19:29:05 +0000
  • 507990a350 Fixed up memory region dumping code to use the new Util::FlipEndian functions Bart Trzynadlowski 2017-08-19 19:27:58 +0000
  • 21f813ad3e Fixed a bug in MCRFS instruction related to the VXSOFT, VXSQRT, and VXCVI bits. Thanks to Spindizzi. Bart Trzynadlowski 2017-08-16 00:58:39 +0000
  • 0efd4dac39 Finish fixed shading for 2.0 hardware. I'm pretty sure it actually works identically to step 1.5 hardware. The oddball is LA machine guns where the viewport ambient doesn't seem to effect the brightness. But the ambient works differently in this game because it uses the unclamped light model. Still need to investigate if the diffuse factor effects fixed shading. Ian Curtis 2017-08-15 23:21:57 +0000
  • b1cc9a615d With fixed shading, when lighting is disabled, fixed shading appears to be a flat shaded version based upon the poly colour, instead of per vertex attributes. Ian Curtis 2017-08-15 20:50:36 +0000
  • 2422caadc6 Pad struct and align on 4 byte boundary. Ian Curtis 2017-08-15 20:45:08 +0000
  • eac76f0908 simplify Ian Curtis 2017-08-14 23:30:34 +0000
  • 81188bee07 fixed shading doesn't effect the alpha channel Ian Curtis 2017-08-14 16:10:26 +0000
  • c12e4c3215 Fixed shading (per vertex poly colours) on step 1.5 hardware have the viewport ambient value added to them. This fixes various shading on scud. To do this had to switch the maths to the vertex shader. Ian Curtis 2017-08-14 09:14:06 +0000
  • 8f622714a7 Fix attribute locations. glBindAttribLocation must be called linking Ian Curtis 2017-08-11 11:59:41 +0000
  • a315627401 Added support for loading shaders from files for new engine and tile renderer. Changed help text to reflect new engine being default. Bart Trzynadlowski 2017-08-11 00:41:10 +0000
  • 7dc1eac614 make the new3d engine default :] Legacy engine can still be selected using -legacy3d in the command line Ian Curtis 2017-08-10 15:59:16 +0000
  • d7403afda6 use generic vertex attributes Ian Curtis 2017-08-10 15:43:03 +0000
  • 57d0a513fd Technically matrix casts are only allowed in glsl 1.2 and later Ian Curtis 2017-08-09 23:25:01 +0000
  • 063b7d3ea4 Remove debug code Ian Curtis 2017-08-09 21:40:48 +0000