r700
fix illegal xml character sequence
---------------------
r699
simplify maths
---------------------
r698
comment out unneeded code
---------------------
r697
top/bottom were swapped for off axis projection
---------------------
r696
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.
---------------------
r695
fix build
---------------------
r694
add the rest of the network board code (Spindizzi)
---------------------
r693
use the correct c++ deleters
---------------------
r692
use a few macros to make debugging less painful
---------------------
r691
Add network board emulation. Currently not linked with the rest of the project.
---------------------
r690
remove using namespace from headers ..
---------------------
r689
rename to avoid clash with a #define
---------------------
r688
add asynchronous sending functions
---------------------
r687
remove dead variable
---------------------
r686
Add basic networking files to supermodel. Currently these are win32 specific but can port to SDL or whatever later.
---------------------
r685
Fix the smallest texture lods (Harry Tuttle)
---------------------
r684
fix array out of bounds
---------------------
r683
remove debug code
---------------------
r682
mark as static
---------------------
r681
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)
---------------------
r680
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.
---------------------
r679
Shift fog maths to fragment shader to fix bug in virtua on.
---------------------
r678
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.
---------------------
r677
Fixed shading also works with untextured polys. Fixes some shading issues in La machineguns. (Harry Tuttle)
---------------------
r676
Update step 1.5 luminous logic with Harry's findings. Fixes various shading issues.
---------------------
r675
Finish the hash function (Harry Tuttle)
---------------------
r674
Remove fixed shading check from specular.
---------------------
r673
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.
---------------------
r672
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)
---------------------
r671
update visual studio project
---------------------
r670
update spotlight code (Harry Tuttle)
---------------------
r669
Harry's patch: add dirtdvlsj and change "Star Wars Trilogy" to "Star Wars Trilogy Arcade"
---------------------
r668
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.
---------------------
r667
add missing header
---------------------
r666
Get rid of unused variable warning
---------------------
r665
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.
---------------------
r664
Fix tiny memory leak
---------------------
r663
---------------------
r662
update project files
---------------------
r661
work around for visual studio bug
---------------------
r660
fix missing header
---------------------
r659
cannot specify explicit initializer for arrays - fix for visual studio
---------------------
r658
- 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
---------------------
r657
Added functions to safely read and write bools
---------------------
r656
Added functions to extract bits as integer values and updated comment about bit vector layout
---------------------
r655
Added SetOnes() and SetZeros()
---------------------
r654
Safe guard against shifting empty register.
---------------------
r653
Hex formatting support extended to 64 bits.
---------------------
r652
Added ShiftOutLeft() and ShiftOutRight()
---------------------
r651
Renamed shift in/out functions to add/remove to be less ambiguous about their functionality
---------------------
r650
Added ToHexString() and made ostream serialization use this
---------------------
r649
Fix for VS2015 and newer by MetalliC
---------------------
r648
Added BitRegister class (for use in upcoming JTAG refactor): an inefficient but flexible container for manipulating a dynamic bit stream.
---------------------
r647
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.
---------------------
r646
add interface for sun clamp
---------------------
r645
Optimise vertex data to cut down on unnecessary copying
---------------------
r644
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.
---------------------
r643
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.
---------------------