Commit graph

149 commits

Author SHA1 Message Date
Albert Liu 866cbdca4b GPU: Prevent potential overflow in CRTC visible area calculation 2020-12-14 19:28:59 -08:00
Albert Liu 78e42d9b4c GPU: Clean up CRTC variable naming 2020-12-14 19:28:59 -08:00
Albert Liu b8abf2df95 GPU: Don't apply display offsets when not cropping 2020-12-14 19:28:58 -08:00
Connor McLaughlin d7bd21c06d Timers: Update when sync is used with sysclk source
Fixes hang at boot in Zoku Mikagura Shoujo Tanteidan - Kanketsuhen.
2020-12-06 00:35:54 +10:00
Connor McLaughlin d757056891 GPU: Implement dot clock timer (Timer 0)
Fixes softlock in Evil Dead - Hail to the King.
2020-12-06 00:35:54 +10:00
Connor McLaughlin 362905e3df GPU: Add display line offset game setting
Use when games need additional cropping.
2020-12-04 00:33:04 +10:00
Connor McLaughlin b45bee5954 libretro: Work around crash in RetroArch Vulkan driver 2020-11-25 23:06:41 +10:00
Connor McLaughlin 2595e31575 GPU: Split software to frontend/backend 2020-11-21 18:39:04 +10:00
Connor McLaughlin 03d4f80883 GPU: Move enums/types into separate file 2020-11-21 18:39:04 +10:00
Connor McLaughlin 0726ad1275 GPU: Flush partial VRAM writes to backend VRAM 2020-11-19 00:40:02 +10:00
Connor McLaughlin 473cfffa0c GPU: Only accept DMA writes when FIFO is empty or command incomplete
Fixes a bunch of games, including Red Asphalt, Little Princess, Vampire
Hunter D main menu when combined with tight DMA sync.
2020-11-16 01:00:55 +10:00
Connor McLaughlin a1453ee8a5 GPU: Skip full CRTC update on GP1(05h) 2020-10-23 19:37:56 +10:00
Albert Liu 6bc7cf29cc GPU: Synchronize CRTC on GP1(05h) command
Fixes text flashing briefly after startup PlayStation logo in King's
Field (USA).
2020-10-22 21:41:42 -07:00
Albert Liu ca7db7a2d2 GPU: Update CRTC debug window reporting 2020-10-21 23:17:39 -07:00
Albert Liu 1a0b1a3149 GPU: Use accurate VRAM display width rounding
Modified version of Nocash algorithm, confirmed with hardware test.
Relies on proper horizontal display range rounding for correct results.
2020-10-21 23:17:39 -07:00
Albert Liu bbaebfd4c9 GPU: Round horizontal display range values down to clockdiv multiple
GP1(06h) X1 and X2 are persistent across clockdiv changes, but the GPU
actively uses rounded values for display output. This behavior is
modeled by storing the rounded values in horizontal_display_start and
horizontal_display_end. Verified with hardware test.
2020-10-21 23:17:39 -07:00
Connor McLaughlin 27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
Connor McLaughlin cacf7a7cc9 GPU: Precompute texture window expression [SAVEVERSION+] 2020-09-30 23:03:52 +10:00
Connor McLaughlin d73271ec0a GPU: Add option to force 4:3 for 24-bit content (e.g. FMVs) 2020-09-26 15:11:45 +10:00
Connor McLaughlin f990d6ab3b GPU: Idle bit should be clear during an incomplete command 2020-09-24 22:16:15 +10:00
Silent 1918a5ddd4
STBI: Handle UTF-8 paths correctly 2020-09-14 21:27:22 +02:00
Connor McLaughlin 13e3095801 Core: Don't link to imgui for libretro core 2020-09-01 12:22:32 +10:00
Connor McLaughlin 60d3fffec1 Add per-game overrides (mainly for compatibility) 2020-08-21 00:09:37 +10:00
Connor McLaughlin c9c2c00c1a GPU: Update GPUSTAT.13 with field
Doubt this'll change much..
2020-08-19 00:02:37 +10:00
Connor McLaughlin f65651823e GPU: Simplify hsync handling
Fixes character lighting in Monkey Hero.
2020-08-17 01:22:03 +10:00
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 2020-08-16 00:20:11 +10:00
Connor McLaughlin d4665e8b22 GPU: Tweaks to ODE handling
Fixes Team Buddies and The Next Tetris.
2020-08-16 00:20:10 +10:00
Connor McLaughlin 818892cb1b GPU: Claer interlaced field buffer when enabling
Fixes old frames getting briefly displayed.
2020-08-03 03:26:13 +10:00
Connor McLaughlin 9b7512f7b8 GPU/HW: Implement automatic resolution scale from window size 2020-08-03 03:06:03 +10:00
Connor McLaughlin 4d9c2c1b6c GPU: Ensure pending time is used in events
Fixes long delay in Syphon Filter.
2020-08-02 14:09:22 +10:00
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +10:00
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
2020-07-31 17:09:18 +10:00
Albert Liu c44e74db80 GPU: Compute VRAM display width from GP1(06h) values
Fixes overpadding in some specific cases, e.g. when cropping overscan in
Captain Commando.
2020-07-11 10:57:23 -07:00
Albert Liu e42d5fed75 GPU: Adjust 4-pixel boundary alignment formula
Fixes missing edge in Tenchi wo Kurau II: Sekiheki no Tatakai.
2020-07-05 06:00:36 -07:00
Albert Liu 000a51298a GPU: Don't round screen size to 4-pixel multiple 2020-07-05 06:00:36 -07:00
Albert Liu e2b1158514 GPU: Report CRTC padding as signed in debug window 2020-07-05 06:00:36 -07:00
Connor McLaughlin 511c3133f1 GPU: Let GPU catch up before handling GP1 reset commands
Fixes trashed VRAM writes in some homebrew.
2020-07-05 02:25:56 +10:00
Connor McLaughlin 1231f6dafe GPU: Handle GP1 command mirrors 2020-07-04 01:28:18 +10:00
Connor McLaughlin 8a8ce8d41c NamcoGunCon: Use correct GPU clock as reference 2020-07-03 01:51:05 +10:00
Connor McLaughlin 936d92dfb8 System: Add option to force start in software mode 2020-06-30 02:44:19 +10:00
Connor McLaughlin dad63f2303 GPU: Run draw clock at sysclk * 2 2020-06-13 01:40:05 +10:00
Connor McLaughlin bdf9c91271 GPU: Fix double shader compilation 2020-06-09 03:04:02 +10:00
Connor McLaughlin b4e45e865a GPU: Use correct clocks for NTSC region
Fixes sync drift in Bust-a-Move 1/2.
2020-06-07 19:15:06 +10:00
Connor McLaughlin 3848276fa2 GPU: Improvements to height calculations when interlaced
Fixes screen doubling with interlacing force disabled, as well as
incorrect cropping area when non-interleaved framebuffers are used.
2020-06-02 20:52:07 +10:00
Connor McLaughlin 23436f08ba GPU/HW: More improvements to GPUSTAT.31
Fixes True Pinball without breaking intros to Final Fantasy 7/8.
2020-05-26 22:57:58 +10:00
Connor McLaughlin e368dbbadc GPU: Implement non-interleaved interlaced rendering
Fixes screen shaking in True Pinball.
2020-05-26 03:18:05 +10:00
Connor McLaughlin 19cebd97da GPU: Further refinements to crop overscan
Fixes flickering line in South Park.
2020-05-17 19:23:48 +10:00
Connor McLaughlin 0ef0c36704 GPU: Align display widths to 4 pixels
Documentation thanks to nocash.

Fixes line on edge in X2 - No Relief, Gunbird.
2020-05-17 18:46:59 +10:00
Connor McLaughlin 664bd06df6 GPU: Don't recursively execute commands
This can happen with interlaced rendering on when a line is pending
scanout and a primitive is drawn.

Fixes screen transitions in Slap Happy Rhythm Busters.
2020-05-17 17:58:48 +10:00
Connor McLaughlin 2185bbec73 GPU: Display state in debug window 2020-05-17 14:11:42 +10:00