StapleButter
dd30b417b8
implement proper support for POWCNT1.
...
fixes #260
2018-12-18 17:04:42 +01:00
StapleButter
68d5e3c782
3D: in Z-buffering mode, margin for 'equal' depth test mode is +-0x200, not +-0xFF
...
fixes #274
2018-12-13 22:46:12 +01:00
StapleButter
b4165cc0a9
3D: keep the rasterizer from accidentally going out of bounds when given very flat X-major edge slopes.
...
this, by a fucking shitshow of butterfly effect, ends up fixing #234 . technically, the rasterizer was going out of bounds, which, under certain circumstances, caused interpolation to shit itself and generate Z values that were out of range (but still ended up in the zbuffer). sometimes those values ended up negative, which caused these glitches when polygons had to be drawn over those.
about fucking time.
2018-11-04 23:21:58 +01:00
StapleButter
4075dad0a8
3D: attempt at fixing that shadow/AA interaction bug in the MKDS character select screen
2018-10-22 01:36:04 +02:00
StapleButter
fea7955675
fixor copyright years.
2018-09-15 02:32:13 +02:00
StapleButter
ce592a1d80
this TODO item is already done, idiot
2017-10-02 00:55:44 +02:00
StapleButter
c9ac08aa5b
3D: blend translucent pixels with bottom pixels when needed.
...
fixes antialiasing within shadows, under translucent polygons, etc
2017-08-28 22:19:49 +02:00
StapleButter
183b8b58e0
3D: move shadow mask rendering to separate function, optimize it (it doesn't need to interpolate all vertex attributes)
2017-08-28 20:27:56 +02:00
StapleButter
ee6daa0e62
fix antialiasing along Y-major edges
2017-08-28 18:48:06 +02:00
StapleButter
2e23ae54b2
3D:
...
* more accurate polygon edges (still not perfect. heh)
* antialiasing (doesn't always work)
2017-08-28 18:37:07 +02:00
StapleButter
d656e6e7ff
3D: faster and more accurate interpolation
2017-08-17 23:34:37 +02:00
StapleButter
bc1385e905
3D: revise fog calculation to match hardware (emulate precision loss and overflow with big shifts)
2017-08-16 22:20:53 +02:00
StapleButter
0df3a29374
* FPS counter displays target framerate
...
* fix potential hang and out-of-bounds drawing when VCount is modified during drawing
2017-07-21 10:19:56 +02:00
StapleButter
6b6389fbb4
separate polygonID attributes for opaque and translucent pixels.
...
rendering translucent pixels preserves opaque polygonID and edge flags for edgemarking.
fixes edgemarking malfunctions, like #80 or black dots in Pokémon games
2017-07-15 15:24:25 +02:00
StapleButter
cd6ecfc21f
apply the interpolation fix to Z interpolation.
...
more accurate conversion of Z values.
but this doesn't fix the horrendous Z-fighting in Pokémon B/W because of course it doesn't >_<
2017-07-14 04:49:29 +02:00
StapleButter
04172f47de
fix potential overflow in fog density calculation
2017-07-14 00:12:35 +02:00
StapleButter
a1401e724c
* actually fix linear interpolation when y0>y1
...
* change the backfacing attribute bit, so that it doesn't mess with edgemarking
2017-07-13 23:09:42 +02:00
StapleButter
800540b710
attempt to fix interpolation when y0>y1
2017-07-10 13:31:05 +02:00
StapleButter
3aa83ae641
3D:
...
* undo 'winding sorting' hypothesis
* special depth test rules: 'less than' function becomes 'less or equal' when rendering front-facing polygon pixels against back-facing opaque pixels
2017-07-06 18:38:13 +02:00
StapleButter
d5376b4184
3D: Y-sorting
2017-07-05 18:38:10 +02:00
StapleButter
01404ac6c3
3D: move opaque/translucent sorting to GPU3D.cpp
2017-07-05 18:11:00 +02:00
StapleButter
1acf355d99
3D: change viewport handling to match hardware. finally fixes #18
2017-07-04 19:11:43 +02:00
StapleButter
da10f9b3f6
fix rendering for crapoed 'butterfly' polygons
2017-06-28 21:19:44 +02:00
StapleButter
5f6e8cc30b
fix toon highlight mode. GBAtek is wrong.
2017-06-28 09:19:38 +02:00
StapleButter
fa2db3826e
(finally) make the threaded 3D renderer option actually work
2017-06-04 15:55:23 +02:00
StapleButter
568b9fbf49
edge marking
2017-06-03 22:33:14 +02:00
StapleButter
64a447bb7c
clean up some shit. make framebuffer access less weird.
2017-06-03 22:10:32 +02:00
StapleButter
d81b68b16b
* fix range for 'equal' Z-test mode
...
* confirm clear Z value for screen outer borders
* misc code cleanup
2017-06-03 21:46:14 +02:00
StapleButter
77d0a0d76e
only do lower-pixel rendering when rendering under an edge
2017-06-01 15:16:44 +02:00
StapleButter
d1781c8bf2
remove more per-pixel checks
2017-06-01 14:59:41 +02:00
StapleButter
27c023a0cc
separate rasterizer inner loop into three loops for leftedge/middle/rightedge
2017-06-01 01:02:39 +02:00
StapleButter
fe55ef1af1
* begin work on antialiasing, but not good yet. also code sucks.
...
* start making code nicer
2017-06-01 00:45:47 +02:00
StapleButter
d3b3255ce3
* add 'push old pixel down' behavior for antialiasing
...
* delay final pass (edge/fog/AA) one scanline, required for edgemarking
2017-05-28 19:18:16 +02:00
StapleButter
ae78faf2a7
rework slope/edge code. lay groundwork for antialiasing.
2017-05-28 18:36:42 +02:00
StapleButter
6f4d835c7f
fog
2017-05-26 15:14:22 +02:00
StapleButter
a63ab24447
fix crapoed shadows
2017-05-26 04:00:15 +02:00
StapleButter
911888f1e0
fix alpha equation when blending is disabled
2017-05-26 03:16:23 +02:00
StapleButter
8558eff8aa
properly reset 3D thread state
2017-05-26 01:22:11 +02:00
StapleButter
4b3caedbe7
first attempt at threading the 3D renderer
2017-05-23 23:38:28 +02:00
StapleButter
88d982b7e3
proper stencil buffer
2017-05-22 22:29:21 +02:00
StapleButter
b66ac09e43
make the renderer truly per-scanline
2017-05-22 22:22:26 +02:00
StapleButter
cb1b03b253
make the 3D renderer work per-scanline
2017-05-21 20:14:03 +02:00
StapleButter
9fe24cb1e7
latch 3D registers upon VBlank
...
(fixes the last bugs in Gericom's train game)
2017-05-09 22:22:52 +02:00
StapleButter
da31af9202
fix Z-buffering. not really clean, and not perfectly accurate.
2017-04-29 00:20:04 +02:00
StapleButter
9eb68c2ede
misc optimizations
2017-04-25 01:14:26 +02:00
StapleButter
1759672d14
a few attempts at optimization
2017-04-23 15:25:15 +02:00
StapleButter
96b471d729
fix shadow oddities
...
not a proper fix, but shadows aren't emulated properly anyway
2017-04-22 19:06:48 +02:00
StapleButter
a086e22023
attempt at shadows. they're still a bit weird tho.
2017-04-22 18:04:54 +02:00
StapleButter
70c72004ac
behavior for translucent pixels is preserved even when alphablending is disabled
2017-04-22 17:15:50 +02:00
StapleButter
4f72ee3895
add support for polygon ID and conditional depth update for translucent pixels
2017-04-22 16:47:31 +02:00