Commit graph

108 commits

Author SHA1 Message Date
Rohit Nirmal f15c142c5e Silence some -Wsign-compare warnings. 2015-04-09 18:55:01 -05:00
Subv 1248e291f0 GPU: Added the stencil test structure to the Pica Regs struct. 2015-03-09 20:13:21 -05:00
Subv 414b0741c4 GPU: Implemented more depth buffer formats.
This fixes the horizontal lines in Picross E, Cubic Ninja, Cave Story 3D and possibly others
2015-03-09 20:12:39 -05:00
bunnei 34c31db14a GPU: Added RGB565/RGB8 framebuffer support and various cleanups.
- Centralizes color format encode/decode functions.
- Fixes endianness issues.
- Implements remaining framebuffer formats in the debugger.
2015-03-03 18:26:03 -05:00
archshift 7f9ee69a2b Added RGBA5551 compatibility in the rasterizer
This allows Virtual Console games to display properly.
2015-02-27 19:15:08 -08:00
Subv c564c21668 GPU: Implemented bits 3 and 1 from the display transfer flags.
Bit 3 is used to specify a raw copy, where no processing is done to the data, seems to behave exactly as a DMA.
Bit 1 is used to specify whether to convert from a tiled format to a linear format or viceversa.
2015-02-26 21:17:14 -05:00
bunnei ed255ebaec Rasterizer: Add support for RGBA4 framebuffer format. 2015-02-24 19:58:33 -05:00
bunnei 733c19ddd3 Rasterize with the correct color component order.
- Fixes a regression with #594.
2015-02-22 13:57:24 -05:00
Subv 5410367ebf Rasterizer: Fixed a warning in GetWrappedTexCoord.
Redeclaring the variable inside the switch was causing weird behavior.
2015-02-18 23:52:47 -05:00
Tony Wasserka 2eee3a87f9 Pica/Rasterizer: Replace exit() calls with UNIMPLEMENTED(). 2015-02-18 14:52:27 +01:00
Tony Wasserka 6e5a903286 Pica/Rasterizer: Make some local lambdas static. 2015-02-18 14:50:28 +01:00
Tony Wasserka 1561204342 Pica/BlendUnit: Implement separate color/alpha blend equations. 2015-02-18 14:50:28 +01:00
Tony Wasserka 81ebb4d682 Pica/TextureEnvironment: Add a note. 2015-02-18 14:50:28 +01:00
Tony Wasserka e11fb96408 Pica/TextureEnvironment: Treat texture combiner source 1 as the PrimaryColor.
Not really sure where the difference is, but some applications seem to use this 1:1 the same way...
2015-02-18 14:50:28 +01:00
Tony Wasserka 04cd06d5c2 Pica/TextureEnvironment: Add support for the MAD-like texture combiners and clean up texture environment logic. 2015-02-18 14:50:28 +01:00
Tony Wasserka 087edcfbec Pica/OutputMerger: Fix flipped framebuffers. 2015-02-18 14:50:28 +01:00
Tony Wasserka 6ca752ccbc Pica/TextureUnit: Implement mirrored repeating texture wrapping. 2015-02-18 14:50:28 +01:00
Tony Wasserka 8bd7a896ea Pica: Fix a bug in the register definitions, relating to texture wrapping. 2015-02-18 14:50:28 +01:00
Tony Wasserka aaf30ca4ee Pica/OutputMerger: Implement color format checking. 2015-02-18 14:50:28 +01:00
Tony Wasserka 3b5710bae6 Pica/Rasterizer: Rasterize actual pixel centers instead of pixel corners. 2015-02-18 14:50:28 +01:00
Tony Wasserka 3cb22d31a7 Pica/Rasterizer: Fix garbage pixels at triangle borders. 2015-02-18 14:50:28 +01:00
Tony Wasserka 638b370fb5 Pica/Rasterizer: Clean up and fix backface culling. 2015-02-18 14:50:28 +01:00
Tony Wasserka 365236fa4c Pica: Cleanup clipping code and change screenspace z to range from -1..0.
The change in depth range seems to reflect better to what applications are expecting, and makes for cleaner code overall (hence is more likely to reflect hardware behavior).
2015-02-18 14:50:03 +01:00
Darius Goad 5db62cc758 Fix Min and Max blend equations 2015-02-11 15:33:44 -06:00
archshift ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00
Darius Goad 536958fb29 Add more blend equations from 3dbrew 2015-02-09 20:41:06 -06:00
bunnei 1eb591d6fd Rasterizer: Implement the other color and alpha modifiers. 2015-02-04 22:15:51 -05:00
bunnei 72cc512b1e Pica: Implement blend factors. 2015-01-31 01:40:05 -05:00
bunnei b522cf4e6a Pica: Implement color/alpha channel enable. 2015-01-27 22:03:34 -05:00
bunnei b2c55bf772 Rasterizer: Implemented alpha testing. 2015-01-27 14:39:17 -05:00
bunnei ff83d23ed5 GPU: Implement the remaining depth testing functions. 2015-01-25 23:34:14 -05:00
Tony Wasserka bc187be0c1 Pica/Rasterizer: Remove some redundant casts. 2014-12-31 16:32:56 +01:00
Tony Wasserka 9675d19b47 Pica/Rasterizer: Make orient2d a free function and rename it to SignedArea. 2014-12-31 16:32:56 +01:00
Tony Wasserka d13bd327ba Pica/Rasterizer: Fix a bug related to multitexturing and texture wrapping. 2014-12-31 16:32:55 +01:00
Tony Wasserka 195d73a385 Pica/Rasterizer: Clean up long code lines. 2014-12-31 16:32:55 +01:00
Tony Wasserka 0f49424022 Pica/Rasterizer: Implement backface culling. 2014-12-31 16:32:55 +01:00
Tony Wasserka 3b78af904e Pica/Rasterizer: Textures seem to be laid out flipped vertically.
Not sure if this is a correct fix. Probably should instead change the decoding logic itself.
2014-12-31 16:32:55 +01:00
Tony Wasserka a7ae0330b1 Pica/Rasterizer: Implement alpha blending. 2014-12-31 16:32:55 +01:00
Tony Wasserka e229ff8c83 Pica/Rasterizer: Implement depth testing. 2014-12-31 16:32:55 +01:00
Tony Wasserka 77bb58afeb Pica/Rasterizer: Further enhance Tev support. 2014-12-31 15:35:54 +01:00
Yuri Kunde Schlesner 8369ee5803 Rasterizer: Pre-divide vertex attributes by W
Execute the division-by-W for perspective-correct interpolation of
values in the clipper, moving them out of the rasterization inner loop.
2014-12-29 02:08:11 -02:00
Yuri Kunde Schlesner 2012e1420f Rasterizer: Common sub-expression elimination
Move the computation of some values out of loops so that they're not
constantly recalculated even when they don't change.
2014-12-29 02:08:10 -02:00
bunnei 0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
2014-12-21 16:05:44 -05:00
purpasmart96 ebfd831ccb License change 2014-12-20 21:20:24 -08:00
Tony Wasserka e4e9710d18 Pica/Rasterizer: Get rid of C-style casts. 2014-12-20 18:06:55 +01:00
Tony Wasserka 40f123b7c0 Pica: Unify ugly address translation hacks. 2014-12-20 18:06:53 +01:00
Tony Wasserka 7e210e0229 Pica: Further improve Tev emulation. 2014-12-20 18:05:53 +01:00
Tony Wasserka 3df88d59b0 Pica: Merge texture lookup logic for DebugUtils and Rasterizer.
This effectively adds support for a lot texture formats in the rasterizer.
2014-12-20 18:05:53 +01:00
Tony Wasserka 0fba1d48a6 Pica: Implement texture wrapping. 2014-12-20 18:05:53 +01:00
Tony Wasserka fd2539121c Pica: Initial support for multitexturing. 2014-12-20 18:05:53 +01:00
Yuri Kunde Schlesner 0600e2d8b5 Convert old logging calls to new logging macros 2014-12-13 02:08:02 -02:00
Lioncash eb5054e6eb Fix warnings in video_core 2014-10-07 20:35:13 -04:00
bunnei 20d169e4a1 VideoCore: Fixes rendering issues on Qt and corrects framebuffer output size. 2014-08-26 17:34:52 -04:00
Tony Wasserka a79644c9ba Pica/Rasterizer: Clarify a TODO. 2014-08-25 22:03:19 +02:00
Tony Wasserka 9679d231df Pica/Rasterizer: Add texturing support. 2014-08-25 22:03:18 +02:00
Tony Wasserka 27cab6477e Pica/Rasterizer: Add initial implementation of texture combiners. 2014-08-25 22:03:18 +02:00
Tony Wasserka 162d641a30 Pica/Math: Improved the design of the Vec2/Vec3/Vec4 classes and simplified rasterizer code accordingly.
- Swizzlers now return const objects so that things like "first_vec4.xyz() = some_vec3" now will fail to compile (ideally we should support some vector holding references to make this actually work).
- The methods "InsertBeforeX/Y/Z" and "Append" have been replaced by more versions of MakeVec, which now also supports building new vectors from vectors.
- Vector library now follows C++ type promotion rules (hence, the result of Vec2<u8> with another Vec2<u8> is now a Vec2<int>).
2014-08-25 22:03:18 +02:00
Tony Wasserka 94d742fe17 Pica: Add basic rasterizer. 2014-08-12 13:50:07 +02:00