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
ea3c99f3a2
Video core: Fix A4 texture decoding
...
It was trying to take the LSB from `coarse_x`, which would always be 0
and thus would always return the same texel from each byte. To add
insult to the injury, the conditional was actually the wrong way around
too.
Fixes blocky text in OoT.
2015-02-25 23:05:14 -03:00
3c50da6fc0
Video core: Fix pixelation/blockiness in textures.
...
This was caused during morton decoding by me not masking the bits of
each coordinate before merging them, so the bits from x could set bits
in y if it was >255.
2015-02-25 22:16:01 -03:00
ed255ebaec
Rasterizer: Add support for RGBA4 framebuffer format.
2015-02-24 19:58:33 -05:00
733c19ddd3
Rasterize with the correct color component order.
...
- Fixes a regression with #594 .
2015-02-22 13:57:24 -05:00
34f21334ad
Merge pull request #593 from Subv/search_problem
...
Pica/VertexShader: Fixed LOOP with more than one iteration.
2015-02-22 15:51:12 +01:00
9a03e9c61d
Pica/VertexShader: Fixed LOOP with more than one iteration.
...
Previously it wouldn't jump back to the start of the loop code once it reached the end of the block.
Fixes the texture problems in a lot of games.
2015-02-21 12:52:21 -05:00
5f9939070e
Merge pull request #588 from archshift/somebranch
...
Sweeping cleanup of Common
2015-02-20 11:41:30 -05:00
302f0b32f5
Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h
2015-02-19 22:26:25 -08:00
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
ec8f2210e3
Merge pull request #580 from lioncash/emplace
...
core/video_core: Use in-place construction where possible
2015-02-18 17:36:34 -05:00
2eee3a87f9
Pica/Rasterizer: Replace exit() calls with UNIMPLEMENTED().
2015-02-18 14:52:27 +01:00
6e5a903286
Pica/Rasterizer: Make some local lambdas static.
2015-02-18 14:50:28 +01:00
1561204342
Pica/BlendUnit: Implement separate color/alpha blend equations.
2015-02-18 14:50:28 +01:00
81ebb4d682
Pica/TextureEnvironment: Add a note.
2015-02-18 14:50:28 +01:00
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
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
087edcfbec
Pica/OutputMerger: Fix flipped framebuffers.
2015-02-18 14:50:28 +01:00
6ca752ccbc
Pica/TextureUnit: Implement mirrored repeating texture wrapping.
2015-02-18 14:50:28 +01:00
8bd7a896ea
Pica: Fix a bug in the register definitions, relating to texture wrapping.
2015-02-18 14:50:28 +01:00
aaf30ca4ee
Pica/OutputMerger: Implement color format checking.
2015-02-18 14:50:28 +01:00
3b5710bae6
Pica/Rasterizer: Rasterize actual pixel centers instead of pixel corners.
2015-02-18 14:50:28 +01:00
3cb22d31a7
Pica/Rasterizer: Fix garbage pixels at triangle borders.
2015-02-18 14:50:28 +01:00
638b370fb5
Pica/Rasterizer: Clean up and fix backface culling.
2015-02-18 14:50:28 +01:00
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
70a764d992
Pica/VertexShader: Implement the LOOP instruction.
2015-02-18 14:02:59 +01:00
6c26ec72a5
Pica/CommandProcessor: Properly implement shader load destination offset registers.
2015-02-18 14:02:59 +01:00
67120270f2
Pica/CommandProcessor: Work around initialized vertex attributes some more.
2015-02-18 14:02:59 +01:00
5d2366e1e9
core/video_core: Use in-place construction where possible
2015-02-17 17:57:23 -05:00
8a1c08a0af
VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead.
2015-02-16 21:51:37 +00:00
c439b3074d
video_core: Implement the remaining framebuffer formats in the OpenGL renderer.
2015-02-15 14:08:12 +00:00
12181c8a64
Merge pull request #529 from Subv/master
...
Build: Fixed some warnings
2015-02-14 15:50:26 -05:00
8e2b248e05
Build: Fixed some warnings
2015-02-12 09:25:35 -05:00
5db62cc758
Fix Min and Max blend equations
2015-02-11 15:33:44 -06:00
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
536958fb29
Add more blend equations from 3dbrew
2015-02-09 20:41:06 -06:00
1eb591d6fd
Rasterizer: Implement the other color and alpha modifiers.
2015-02-04 22:15:51 -05:00
8c93a28fed
VideoCore: Added same-component swizzlers to math utility functions.
2015-02-04 22:15:44 -05:00
72cc512b1e
Pica: Implement blend factors.
2015-01-31 01:40:05 -05:00
b522cf4e6a
Pica: Implement color/alpha channel enable.
2015-01-27 22:03:34 -05:00
b2c55bf772
Rasterizer: Implemented alpha testing.
2015-01-27 14:39:17 -05:00
ff83d23ed5
GPU: Implement the remaining depth testing functions.
2015-01-25 23:34:14 -05:00
5961a2852d
GSP: Update framebuffer info on all interrupts
...
Hardware testing determined that the GSP processes shared memory
framebuffer update info even when no memory transfer or filling GX
commands are used. They are now updated on every interrupt, which isn't
confirmed correct but matches hardware behaviour more closely.
This also reverts the hack introduced in #404 . It made a few games
behave better, but I believe it's incorrect and also breaks other games.
2015-01-14 05:20:12 -02:00
93f36c49f7
Merge pull request #473 from archshift/pp3ports
...
Pica/Rasterizer: Add ETC1 texture decompression support.
2015-01-13 18:11:18 -05:00
f2b74b4fb3
Pica/Rasterizer: Add ETC1 texture decompression support.
2015-01-13 14:42:40 -08:00
99c0716d4d
Merge pull request #478 from archshift/pp3ports4
...
Pica/VertexShader: Implement the MAD instruction.
2015-01-12 21:55:35 -05:00
2b9a9a45b7
Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU.
2015-01-12 15:47:21 -08:00
e02db3904b
Pica/VertexShader: Implement the MAD instruction.
2015-01-12 15:34:36 -08:00
f7a3f45f1e
GSP: Toggle active framebuffer each frame
2015-01-07 18:06:00 -05:00
bc187be0c1
Pica/Rasterizer: Remove some redundant casts.
2014-12-31 16:32:56 +01:00