RSDuck
6977302403
make OpenGL renderer a build option
...
mostly meant for the Switch port
2020-10-01 00:01:05 +02:00
RSDuck
9772201345
remove some UB
...
- savestates used to read a four bytes from a single byte value
- a few unassigned variables
- some other things
- also make the ROR macro an inline function
2020-09-04 20:37:14 +02:00
Arisotura
e1add6f3d7
3D: add a bunch of missing variables to savestates. oops.
...
fixes #716
2020-08-19 16:25:40 +02:00
Arisotura
0804ab3c78
* rework GPU's settings interface, make it config-agnostic
...
* make video settings dialog functional, sorta
* fix dialogs that were resizable
2020-05-28 15:53:32 +02:00
Arisotura
36f4cdbbbf
get the OpenGL renderer going.
...
sorta.
(also make the blackmagic_II branch obsolete in the process)
2020-05-25 18:25:50 +02:00
Arisotura
ec6e4a2d1e
GPU3D: more accurate viewport transform (emulate quirk with W greater than 0xFFFF)
2020-04-12 16:40:08 +02:00
Arisotura
33b4cdb077
GPU3D: implement zero-dot W limit (DISP_1DOT_DEPTH)
2020-04-12 14:01:43 +02:00
Arisotura
4c560f3324
GPU3D: swap vin and vout during clipping, giving results that are closer to hardware.
...
fixes #598 and also fixes #379
2020-04-11 23:56:36 +02:00
Arisotura
83f8e11bc1
update copyright years
2020-02-14 20:18:08 +01:00
Arisotura
34c60eaca4
fix bugs with line polygons
2019-06-12 13:14:11 +02:00
Arisotura
27f758d353
hack so that the GL renderer can render lines
2019-06-12 03:55:40 +02:00
Arisotura
9e2f47f4a0
fix more bugs
2019-05-24 02:35:25 +02:00
Arisotura
0bb3321262
getting somewhere??
2019-05-24 02:29:16 +02:00
Arisotura
667dee6754
more code botching
...
it's less shitty tho
but still has bugs
2019-05-24 02:04:41 +02:00
Arisotura
db396e992b
welp.
...
progress
2019-05-21 22:28:46 +02:00
Arisotura
b493c24128
remove reference to GL version 4.3 from filenames and namespaces
2019-05-20 00:05:37 +02:00
Arisotura
c1746f0c60
BAHAHAHHHH
...
HARK HARK HARK
2019-05-16 20:58:07 +02:00
Arisotura
c81bcccadc
BAHAHAHAHAHAHAHAA
2019-05-16 16:27:45 +02:00
Arisotura
0a464c504d
de-hardcode the GL renderer.
...
init framebuffer to black.
fix bugs.
2019-05-12 16:32:53 +02:00
Arisotura
53b2262917
calculate hi-res vertex positions. reduces shaking of polygons when rendering at a higher res.
2019-05-11 15:14:59 +02:00
Arisotura
fb4f972cad
hires hax. somewhat functional
2019-05-08 01:58:34 +02:00
Arisotura
f8751bd1fb
first attempt at things
...
(also fix softrenderer reset)
2019-04-01 02:51:31 +02:00
Arisotura
b0efde8bf7
also, update copyright name
2019-01-22 15:58:29 +01:00
StapleButter
669247e8c8
redesign main emu loop to use timestamps instead of being a trainwreck
...
* cleaner code
* faster in some cases
* more accurate (on-demand compensation for timers and GPU)
* less prone to desyncs
* overall betterer
2019-01-05 05:28:58 +01:00
StapleButter
1e35d18ce6
GX: polygon pipeline doesn't get as far if the polygon is rejected by culling/clipping.
2019-01-03 20:30:30 +01:00
StapleButter
4601636788
GX: always latch rendering engine registers even when not flushing (similar to hardware).
2019-01-03 15:29:25 +01:00
StapleButter
f86fe46035
move the W=0 check, to be sure to check all the vertices
2018-12-20 01:40:32 +01:00
StapleButter
f6e6fa05ea
some work on extreme/degenerate shit in GPU
...
* 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.
2018-12-20 01:31:31 +01:00
StapleButter
dd30b417b8
implement proper support for POWCNT1.
...
fixes #260
2018-12-18 17:04:42 +01:00
StapleButter
4a36193cab
be sure to always reset NormalPipeline
2018-12-17 02:50:36 +01:00
StapleButter
a34d456fcc
GX: timing for command 0x50 is more like 325 cycles on average on hardware. (measured 319/325/331)
...
fixes #297
2018-12-15 13:33:44 +01:00
StapleButter
12c35093aa
set GXSTAT busy flag immediately when writing a command to the GXFIFO.
...
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.
2018-12-15 05:00:25 +01:00
StapleButter
172fb4876a
begin work on general timing renovation. way shitty because it behaves as if caches were off, so everything will be slow as shit.
2018-12-04 17:54:10 +01:00
StapleButter
5b20f40fad
oopsies
2018-11-28 02:45:20 +01:00
StapleButter
b1973014d3
add some missing shit to savestates
2018-11-25 22:40:08 +01:00
StapleButter
5f1f2a7b4a
fix regression in Marvel Nemesis. keep GX cycle counter from drifting absurdly far in the negatives, and fix a few other issues.
2018-11-25 17:39:43 +01:00
StapleButter
391c8d43b0
drain GX pipelines when there's nothing else running. fixes some weird bugs, apparently.
2018-11-24 04:27:27 +01:00
StapleButter
7b48ce5b75
* fix possible issues with GXFIFO stalling
...
* 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.
2018-11-24 02:29:25 +01:00
StapleButter
a9e7f8bc5b
add proper support for GXFIFO stalls.
...
bad games that blast the GXFIFO and overflow it:
* Super Mario 64 DS
* Rayman RR2
latter seems to get its music streaming crapoed.
2018-11-23 22:21:41 +01:00
StapleButter
fa4fa164cb
* store all 32 matrix stack entries in savestates instead of 31.
...
* 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.
2018-11-05 16:14:48 +01:00
StapleButter
9b32418367
3D: fix0r matrix stack handling when stack pointers overflow (it fucking wraps around).
...
fixes #231 and probably others of the same vein.
2018-11-05 16:05:16 +01:00
StapleButter
f60ac42466
pass savefile name to NDS::LoadROM() instead of having the core generate it.
2018-10-23 21:52:41 +02:00
StapleButter
a4a9bca5f0
fix more shit
2018-10-23 20:40:57 +02:00
StapleButter
98076f2334
hopefully fix all 3D-related crashes when loading savestates
2018-10-23 20:20:38 +02:00
StapleButter
d191af8690
rewrite how structures are stored to savestates (store individual fields, to 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.
2018-10-21 03:16:41 +02:00
StapleButter
a2cc7087f7
GPU done
2018-10-18 02:31:01 +02:00
StapleButter
fea7955675
fixor copyright years.
2018-09-15 02:32:13 +02:00
StapleButter
5bea3cc530
3D: add support for 8bit accesses to GXSTAT (Golden Sun - Dark Dawn)
2017-11-04 15:13:01 +01:00
StapleButter
5b71ffceee
minor fix
2017-10-04 02:47:49 +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