Commit Graph

66 Commits (2595e31575c17663707d6a64c867364b23a2a045)

Author SHA1 Message Date
Connor McLaughlin 2595e31575 GPU: Split software to frontend/backend 5 years ago
Connor McLaughlin 03d4f80883 GPU: Move enums/types into separate file 5 years ago
Connor McLaughlin d3d881aa6b GPU/Software: Reduce number of copies by one, enable 16-bit scanout 5 years ago
Romain TISSERAND b2ef931772 Minor gpu_sw optimizations and warning fixes 5 years ago
Connor McLaughlin fe25f005c2 GPU: Fix incorrect sign extension of positions
Fixes missing objects in Skullmonkeys (again).
5 years ago
Connor McLaughlin 50b025c75a GPU: Use triangle area for ticks rather than bbox
Fixes slow transitions in Tales of Phantasia.
5 years ago
Connor McLaughlin 8f9f039665 GPU/SW: Port triangle/line rasterizer from Mednafen 5 years ago
Connor McLaughlin cacf7a7cc9 GPU: Precompute texture window expression [SAVEVERSION+] 5 years ago
Connor McLaughlin d73271ec0a GPU: Add option to force 4:3 for 24-bit content (e.g. FMVs) 5 years ago
Connor McLaughlin 3847be86b0 Fix a bunch of random warnings 5 years ago
Connor McLaughlin 231c0b5ff6 GPU/SW: Wrap texture coordinates when sampling 5 years ago
Connor McLaughlin 818892cb1b GPU: Claer interlaced field buffer when enabling
Fixes old frames getting briefly displayed.
5 years ago
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 5 years ago
Connor McLaughlin b6f871d2b9
JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args

* JitCodeBuffer: Support using preallocated buffer

* CPU/Recompiler/AArch64: Use bl instead of blr for short branches

* CPU/CodeCache: Allocate recompiler buffer in program space

This means we don't need 64-bit moves for every call out of the
recompiler.

* GTE: Don't store as u16 and load as u32

* CPU/Recompiler: Add methods to emit global load/stores

* GTE: Convert class to namespace

* CPU/Recompiler: Call GTE functions directly

* Settings: Turn into a global variable

* GPU: Replace local pointers with global

* InterruptController: Turn into a global pointer

* System: Replace local pointers with global

* Timers: Turn into a global instance

* DMA: Turn into a global instance

* SPU: Turn into a global instance

* CDROM: Turn into a global instance

* MDEC: Turn into a global instance

* Pad: Turn into a global instance

* SIO: Turn into a global instance

* CDROM: Move audio FIFO to the heap

* CPU/Recompiler: Drop ASMFunctions

No longer needed since we have code in the same 4GB window.

* CPUCodeCache: Turn class into namespace

* Bus: Local pointer -> global pointers

* CPU: Turn class into namespace

* Bus: Turn into namespace

* GTE: Store registers in CPU state struct

Allows relative addressing on ARM.

* CPU/Recompiler: Align code storage to page size

* CPU/Recompiler: Fix relative branches on A64

* HostInterface: Local references to global

* System: Turn into a namespace, move events out

* Add guard pages

* Android: Fix build
5 years ago
Connor McLaughlin fc0560087f GPU: Skip primitives where clip area is invalid
Fixes palettes being overwritten/menus being broken in
Yoshimoto Mahjong Club Deluxe.
5 years ago
Connor McLaughlin bda528d70a GPU: Alter timings to reflect new clock 5 years ago
Connor McLaughlin 445bd02cad GPU/HW: Interlace at native resolution rather than 1x
Also fixes screen bobbing when interlacing is disabled.
6 years ago
Connor McLaughlin 23436f08ba GPU/HW: More improvements to GPUSTAT.31
Fixes True Pinball without breaking intros to Final Fantasy 7/8.
6 years ago
Connor McLaughlin e368dbbadc GPU: Implement non-interleaved interlaced rendering
Fixes screen shaking in True Pinball.
6 years ago
Connor McLaughlin 237f469baa GPU: Mask variable sprite/rectangle sizes
Fixes broken sprites in Gradius Deluxe Pack (Gradius II).
6 years ago
Connor McLaughlin b25ed6c151 GPU: Fix interlaced rendering in vblank breaking 6 years ago
Connor McLaughlin bf3c83658a GPU: More accurate texture blending in non-true-colour-mode
Fixes Silent Hill loading animation, Advanced V.G. intro fade-out, and
probably others.
6 years ago
Connor McLaughlin 81f297456c GPU: Fix mismatched scanout between hardware/software renderers 6 years ago
Connor McLaughlin 8c6cb877eb GPU: Disable display when CRTC configuration is invalid 6 years ago
Connor McLaughlin 304391bd00 GPU: Truncate sprite/rectangle positions to 12 bits before rendering
Fixes disappearing objects in Skullmonkeys.
6 years ago
Connor McLaughlin 98ff136f67 GPU: Round texture coordinates instead of flooring
Fixes misaligned textures in some games such as Crash Bandicoot.

Currently, because the vertex offset is not applied at >1x resolution
scale, this will not work so it is disabled at >1x.
6 years ago
Connor McLaughlin 1757932b3a GPU: Implement FIFO and timings
This will cause a slight performance loss. I've left some knobs in which
can be tweaked to mitigate this, but the goal is to be compatible with
all games which require them.
6 years ago
Connor McLaughlin 9e024b7a51 GPU: Handle VRAM wrap-around behavior on scanout 6 years ago
Connor McLaughlin f0a3e66d08 GPU/Software: Fix broken display when VRAM is X-offset 6 years ago
Connor McLaughlin 2413c5a6a3 GPU/Software: Fix incorrect colours in 24-bit FMVs 6 years ago
Connor McLaughlin 3cfead36c4 Revert "GPU: Clamp coordinates to 11 bits after applying drawing offset"
This reverts commit 5302f83818.

This is not the correct fix, and breaks other games.
6 years ago
Connor McLaughlin ddf52cc8c7 GPU/SW: Implement interlaced display 6 years ago
Connor McLaughlin c483a78889 GPU: Implement interlaced VRAM fills 6 years ago
Connor McLaughlin 2aecb570c1 GPU: Implement interlaced rendering in hardware backends 6 years ago
Connor McLaughlin 5302f83818 GPU: Clamp coordinates to 11 bits after applying drawing offset
Fixes flickering in some scenes (e.g. Galbadia Missile Base).
6 years ago
Connor McLaughlin 48fba47ee6 GPU: Implement skip-drawing-to-active-field for interlaced mode
Currently only in the software renderer.
6 years ago
Connor McLaughlin 148279e2f2 GPU: Rewrite CRTC display modeling and overscan handling 6 years ago
Connor McLaughlin fe824d6c89 GPU: Display VRAM with 1:1 pixel ratio rather than scaling 6 years ago
Connor McLaughlin 90121aa169 GPU: Fix VRAM display in software renderer 6 years ago
Connor McLaughlin f9a298f1b7 GPU: Fix incorrect handling of check mask bit
Fixes boxes in Silent Hill in Software Renderer.
6 years ago
Connor McLaughlin 7412e78aa1 GPU: Move software copy/fill functions to base class so it can be used as fallback 6 years ago
Connor McLaughlin 6bacbf3438 GPU: Fix 480i displays getting cut off in OpenGL and Software 6 years ago
Connor McLaughlin e8e44991db GPU: Fix display in OpenGL renderer 6 years ago
Connor McLaughlin fcc0ae9571 GPU: Implement "Crop Mode" (none, overscan, all borders) 6 years ago
Connor McLaughlin 287ab93cdc GPU: Fix texture bit15 not propogating when blending enabled 6 years ago
Connor McLaughlin ac5af4658d GPU: Mask bit check should use existing colour not new colour 6 years ago
Connor McLaughlin 4a3478b360 HostInterface: Add function to switch between sw/hw rendering 6 years ago
Connor McLaughlin 71c1e243fe Remove YBaseLib dependency 6 years ago
Connor McLaughlin c52040434a Core: Linux warning fixes 6 years ago
Connor McLaughlin c8d3b2c546 GPU/Software: Use templates for render functions 6 years ago