aboutsummaryrefslogtreecommitdiff
path: root/src/GPU3D.cpp
Commit message (Collapse)AuthorAge
* first attempt at thingsArisotura2019-04-01
| | | | (also fix softrenderer reset)
* also, update copyright nameArisotura2019-01-22
|
* redesign main emu loop to use timestamps instead of being a trainwreckStapleButter2019-01-05
| | | | | | | | * cleaner code * faster in some cases * more accurate (on-demand compensation for timers and GPU) * less prone to desyncs * overall betterer
* GX: polygon pipeline doesn't get as far if the polygon is rejected by ↵StapleButter2019-01-03
| | | | culling/clipping.
* GX: always latch rendering engine registers even when not flushing (similar ↵StapleButter2019-01-03
| | | | to hardware).
* move the W=0 check, to be sure to check all the verticesStapleButter2018-12-20
|
* some work on extreme/degenerate shit in GPUStapleButter2018-12-20
| | | | | | * clip against Z then Y then X. apparently, fixes #310. I had also observed hints that the hardware does it this way. * truncate W to 24 bits before viewport transform. * mark any polygons that have a W=0 at that point as degenerate. do not render.
* implement proper support for POWCNT1.StapleButter2018-12-18
| | | | fixes #260
* be sure to always reset NormalPipelineStapleButter2018-12-17
|
* GX: timing for command 0x50 is more like 325 cycles on average on hardware. ↵StapleButter2018-12-15
| | | | | | (measured 319/325/331) fixes #297
* set GXSTAT busy flag immediately when writing a command to the GXFIFO.StapleButter2018-12-15
| | | | | | there was a slim chance that a game could send a couple commands and read GXSTAT.busy as zero immediately after. the new timings made that happen in NSMB (not in the USA ROM, oddly), such that the game was reading the clip matrix while matrix commands were running, and getting the first few values wrong. fixes #295 and probably others in the same vein.
* begin work on general timing renovation. way shitty because it behaves as if ↵StapleButter2018-12-04
| | | | caches were off, so everything will be slow as shit.
* oopsiesStapleButter2018-11-28
|
* add some missing shit to savestatesStapleButter2018-11-25
|
* fix regression in Marvel Nemesis. keep GX cycle counter from drifting ↵StapleButter2018-11-25
| | | | absurdly far in the negatives, and fix a few other issues.
* drain GX pipelines when there's nothing else running. fixes some weird bugs, ↵StapleButter2018-11-24
| | | | apparently.
* * fix possible issues with GXFIFO stallingStapleButter2018-11-24
| | | | | * rework GPU timings, now almost same as hardware. display lists generally execute faster. not finished. not bad for a start tho. * Rayman RR2 is still getting sound streaming issues. I don't think GXFIFO stalls are supposed to halt the ARM7. that doesn't make sense and would mess badly with sound since it's also using the ARM7 bus.
* add proper support for GXFIFO stalls.StapleButter2018-11-23
| | | | | | | | bad games that blast the GXFIFO and overflow it: * Super Mario 64 DS * Rayman RR2 latter seems to get its music streaming crapoed.
* * store all 32 matrix stack entries in savestates instead of 31.StapleButter2018-11-05
| | | | | * bump savestate version up. will break compatibility, but the alternative would be guessing the missing matrix entries somehow, so blarg. * avoid relocating the savefile if loading a savestate fails.
* 3D: fix0r matrix stack handling when stack pointers overflow (it fucking ↵StapleButter2018-11-05
| | | | | | wraps around). fixes #231 and probably others of the same vein.
* pass savefile name to NDS::LoadROM() instead of having the core generate it.StapleButter2018-10-23
|
* fix more shitStapleButter2018-10-23
|
* hopefully fix all 3D-related crashes when loading savestatesStapleButter2018-10-23
|
* rewrite how structures are stored to savestates (store individual fields, to ↵StapleButter2018-10-21
| | | | | | | | avoid compatibility issues) also fixes stability issues when 3D is involved. turns out we were storing raw pointers to vertices. figures more crapo code to get around that, but atleast it works without asploding now.
* GPU doneStapleButter2018-10-18
|
* fixor copyright years.StapleButter2018-09-15
|
* 3D: add support for 8bit accesses to GXSTAT (Golden Sun - Dark Dawn)StapleButter2017-11-04
|
* minor fixStapleButter2017-10-04
|
* 3D:StapleButter2017-08-28
| | | | | * more accurate polygon edges (still not perfect. heh) * antialiasing (doesn't always work)
* 3D: faster and more accurate interpolationStapleButter2017-08-17
|
* 3D: fix culling. fixes #86. watch out for any missing polygons elsewhere.StapleButter2017-07-24
|
* * FPS counter displays target framerateStapleButter2017-07-21
| | | | * fix potential hang and out-of-bounds drawing when VCount is modified during drawing
* 3D: fix Z calculation in Z-buffering mode (should use original W, not ↵StapleButter2017-07-14
| | | | normalized one). fixes horrendous Z-fighting in Pokémon games.
* apply the interpolation fix to Z interpolation.StapleButter2017-07-14
| | | | | | 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 >_<
* * actually fix linear interpolation when y0>y1StapleButter2017-07-13
| | | | * change the backfacing attribute bit, so that it doesn't mess with edgemarking
* normalize W values in both directions (0123-0157 -> 1230-1570)StapleButter2017-07-06
|
* 3D:StapleButter2017-07-06
| | | | | * 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
* 3D: opaque polygons are sorted by winding orderStapleButter2017-07-06
| | | | the Sands of Destruction character menu relies on this, it mixes and matches polygon windings to thwart Y-sorting
* 3D: Y-sortingStapleButter2017-07-05
|
* 3D: move opaque/translucent sorting to GPU3D.cppStapleButter2017-07-05
|
* 3D: change viewport handling to match hardware. finally fixes #18StapleButter2017-07-04
|
* 3D: fix boxtest coord overflow. fixes #57StapleButter2017-06-29
|
* fix rendering for crapoed 'butterfly' polygonsStapleButter2017-06-28
|
* 3D: fix missing term in MatrixTranslate(). fixes Monster Trucks billboards.StapleButter2017-06-27
|
* initialize clearZ to 0x7FFF. fixes #38StapleButter2017-06-26
|
* clean up some shit. make framebuffer access less weird.StapleButter2017-06-03
|
* rework slope/edge code. lay groundwork for antialiasing.StapleButter2017-05-28
|
* fogStapleButter2017-05-26
|
* fix crapoed shadowsStapleButter2017-05-26
|
* first attempt at threading the 3D rendererStapleButter2017-05-23
|