Commit Graph

362 Commits

Author SHA1 Message Date
flyinghead 0e20d5976b vram texture locks race condition 2021-03-05 18:22:42 +01:00
Flyinghead c3a95594f9 New option system
Fix per-game settings (Issue #115)
Automatic load/save state (Issue #173)
Reload Naomi/AW BIOS after per-game settings are loaded to allow
per-game BIOS region. (Issue #96)
Restrict Soul Reaver widescreen cheat to the EU version (Issue #188)
Disable UI elements for overridden settings
Clean up/simplify legacy Naomi ROM loading
2021-03-01 10:13:40 +01:00
flyinghead 7697d37ec6 lightgun crosshair support 2021-01-23 15:59:57 +01:00
flyinghead f3b86f6c14 gl: TextureCache -> GlTextureCache 2021-01-15 10:14:24 +01:00
Flyinghead a859effa04 build fix 2020-12-27 09:10:19 +01:00
Flyinghead a0b099df7c gl: when loading custom textures, don't delete regular textures until after the current frame
regular textures might be referenced by the current frame and deleting them cause gl errors
Issue #144
2020-12-27 08:58:48 +01:00
Flyinghead a7a70f9900 gl: don't present a frame if no previous render 2020-12-16 17:25:33 +01:00
Flyinghead bb5b5d4512 only switch vulkan/opengl when needed 2020-12-15 20:16:35 +01:00
Flyinghead c03cf8eb45 rend: multi-render, delay swap, refactor main ui loop
move ui loop out of hw/pvr
vk: implement multi-rendering, delay swap. Load fb before render pass
fps counter now counts frames, not renders
vk: force ignoreTexAlpha for 565 texture in case the supporting texture
has an alpha channel (RTT). Fixes Alone in the Dark cinematic scenes.
pvr: better detection of frame swapping (FB_R_SOF/FB_W_SOF)
pvr: synchronous rendering now always waits for render in progress
(speed measurement not reliable, render skipped when multi-rendering)
vk: limit swap chain size to 2
2020-12-15 15:09:42 +01:00
Flyinghead 7744e1a262 vk: use-after-free if inFlight texture is deleted or cache cleared 2020-11-24 18:01:09 +01:00
Flyinghead 47f262a2c6 vk: use normal pipeline for raw fb display
raw fb also needs to be rotated/scaled
oit: draw opaque polys on first frame
2020-11-19 22:29:06 +01:00
Flyinghead 953200b87b gl: Use 32x32 palette texture to avoid precision issues
fixes kofxi graphics corruption on Mali-400/450

fix macos github action
2020-11-19 11:56:10 +01:00
Flyinghead 6280ed1507 use top/bottom black bars when screen is narrower than 4:3
Issue #127
2020-11-17 17:53:26 +01:00
Flyinghead 125c1ff37d gles: use int for palette_index uniform to avoid precision issues
Issue #104
2020-07-31 12:16:10 +02:00
Flyinghead a1dd76818e macOS build fix 2020-07-08 18:27:42 +02:00
Flyinghead 7449230af8 handle some palette textures on the GPU
get rid of PixerPacker templates
no need for GLSL precision qualifier in GL4
2020-07-08 18:17:15 +02:00
Flyinghead fec79624df gl/gl4: simplify clipping. share code with vulkan 2020-05-11 16:11:31 +02:00
scribam 6ee4b6de85 Replace OS_DARWIN by __APPLE__ 2020-04-26 14:19:21 +02:00
Flyinghead 17a2c3644f ui: add loading screen with cancel button. don't freeze ui on load 2020-04-20 18:52:02 +02:00
Flyinghead 98b2a32eae naomi: auto-rotate screen, no widescreen when rot, lightgun as analog
rotate screen for naomi games that need it
disable widescreen when rotating screen
detect lightgun games and enable proper settings
disable model 3 comm board for atomiswave
2020-04-17 22:11:11 +02:00
Flyinghead 786c8e7744 get rid of libpng and use stb_image_write instead. OSX: static link SDL 2020-04-08 15:34:21 +02:00
scribam 769770ab81 Replace cMutex by std::mutex 2020-03-30 23:00:43 +02:00
scribam a155282fd0 Cleanup compiler warnings (mostly sign-compare) 2020-03-30 23:00:43 +02:00
scribam e99aac3575 Remove "using namespace std;" 2020-03-30 23:00:43 +02:00
scribam 4bf6802855 Cleanup include headers 2020-03-29 14:26:21 +02:00
Flyinghead 9ce25a4e72 gl: crash when deleting null shader 2020-03-29 12:30:22 +02:00
Flyinghead 8ada1d5320 pvr: defer index building and strip merging, filter out infinite verts
don't reset tileclip_val on each frame (Irides - master of blocks)
spg clean up
2020-03-27 13:03:49 +01:00
scribam 3ccd8c624f libpng: use the public api to retrieve io_ptr 2020-03-25 18:15:32 +01:00
Flyinghead 5894992f70 android: don't use storage for default buttons.png 2020-03-24 23:31:34 +01:00
Flyinghead 54261b69c9 renderer: handle mipmap D-adjust param (convert to lod bias) 2020-03-18 18:51:34 +01:00
Flyinghead aff2b9e1af fix simple texture bleeding case when upscaling. Clean up 2020-03-11 17:55:13 +01:00
Flyinghead a5171a1d09 gl,gl4: don't use GL_NEAREST_MIPMAP_LINEAR if tex isn't mipmapped
fixes black grass in Virtua Striker 2
2020-03-10 15:32:17 +01:00
Flyinghead 5b644cf1ca gl: switch to GL_NEAREST_MIPMAP_LINEAR for mipmapped textures 2020-03-09 23:29:02 +01:00
Flyinghead 03f096384b generate mipmaps for custom textures when needed 2020-03-09 22:49:05 +01:00
Flyinghead 99f04ec753 nuke softrend 2020-02-26 23:41:05 +01:00
Flyinghead e2b3ef147d custom tex: recreate gl/vk texture when loading custom tex. vk crash 2020-02-19 14:31:35 +01:00
Flyinghead dd80114bf7 osx build fix 2020-02-07 17:01:42 +01:00
Flyinghead 9826afa063 upload all texture mipmap levels to gpu
implemented for gl/gl4/vulkan/oit
don't auto-generate mipmaps in vulkan
simpler/smaller detwiddle table
use std::lock_guard with cMutex
2020-02-07 16:55:32 +01:00
Flyinghead ff69efff48 ignore trilinear filtering if texture isn't mipmapped
fixes shenmue snowflakes color
2020-01-21 19:52:09 +01:00
Flyinghead f7655091b0 gl4: only use per-pixel sorting when needed
if not using autosort, there's no need to use per-pixel sorting
fixes issues with Psyvariar2 and HeadHunter
2020-01-05 20:44:39 +01:00
Flyinghead be50fca2d6 gl: (oit) Far plane is 0 in final depth test. minor gl cache reset fix
other misc changes
2019-12-25 13:05:42 +01:00
Flyinghead 5f265d03fe vulkan: use a chain of final color attachments
glcache: clear tex param cache
2019-12-03 21:29:37 +01:00
Flyinghead 554d8005fa gl: #version must be on first line or Mali compiler complains 2019-11-26 11:08:35 +01:00
Flyinghead 78eb1829d8 gles2: calculate fog depth in vertex shader in case highp not supported
Mali-400/450 don't support highp floats in the fragment shader. This
causes overflows when computing fog density in some game scenes. To work
around that, calculate fog density in vertex shader and use
interpolation.
vulkan,gl: Get rid of extra_depth_scale in fragment shader by
integrating it in fog density
2019-11-14 22:10:40 +01:00
Flyinghead 09f5d25133 vulkan: automation screenshot. less code duplication
fix assert on exit due to not released vmem
fix crash when resizing window
2019-11-13 20:08:14 +01:00
Flyinghead 5d6ac0acbb gl: const everything 2019-10-25 22:47:20 +02:00
Flyinghead 5e4dacfa67 Fix renderer selection issue in gui. Use raw strings for shader source 2019-10-23 19:23:19 +02:00
Flyinghead 07958f08ae refactor xform matrix out of gles. use xform matrix in vulkan 2019-10-23 18:13:28 +02:00
Flyinghead 2f363a7355 Merge remote-tracking branch 'origin/fh/gl-scale-mat' into fh/vulkan
# Conflicts:
#	core/rend/TexCache.h
#	core/rend/gl4/gles.cpp
#	core/rend/gles/gles.cpp
#	core/rend/gles/gles.h
#	shell/apple/emulator-osx/reicast-osx.xcodeproj/project.pbxproj
2019-10-21 19:49:53 +02:00
Flyinghead 86818389ac move texture cache to a template class. vulkan: OSD on android
store texture in the cache map instead of the heap
make related functions member of the class (CollectCleanup, killtex ->
Clear)
refactor common OSD stuff into rend/osd
vulkan support for OSD
2019-10-21 16:39:16 +02:00