Commit Graph

1361 Commits

Author SHA1 Message Date
Flyinghead 5db2856270 missing changes from previous commit 2021-08-23 14:16:52 +02:00
Flyinghead e3e3229612 iOS: multiple controller/rumble support. GL: fix black screen after RTT
iOS:
* multiple controllers support. Rumble support.
* fix audio recording
* declare CHD/GDI/CUE/CDI content types
* start game when opening file URL
* Use safe area for UI and virtual gamepad
* Better icons
2021-08-23 14:02:12 +02:00
Flyinghead 1bea7853ef iOS: CI job, JIT status, touch fixes 2021-08-10 17:04:36 +02:00
Flyinghead 12f302d356 iOS: uv need high precision in fragment shader. cmake build. virtual joystick. AltKit integration 2021-08-10 11:32:22 +02:00
Flyinghead 77e7c25e9c iOS support. Work in progress 2021-08-06 10:30:30 +02:00
Flyinghead 37eace9db4 osx: lockup when emulator aborts. Race condition when starting emu 2021-08-05 17:43:26 +02:00
Flyinghead 951e70328f Use exception when load content fails. ui: graceful stop on fatal error
libretro: catch/detect fatal errors and shutdown
2021-08-03 10:05:09 +02:00
Flyinghead 2dd7717128 glGetString(GL_EXTENSIONS) may return null in core contexts
xcode project missing update
2021-08-03 09:49:20 +02:00
Flyinghead 7561ce753a unwind info for arm64. use static c++ lib for android
include oboe static libs
get rid of old regalloc
2021-07-29 17:46:46 +02:00
Flyinghead de060d66ab don't save flash if no game started. libretro: fix notifications
compilation warnings, non-functional changes
2021-07-20 19:21:11 +02:00
Flyinghead 4a77f847b4 libretro: fix arcade flash files path. ui: stop spamming dc_stop 2021-07-20 10:06:44 +02:00
Flyinghead 117f47e3a2 rend: shader builder utility 2021-07-19 12:49:47 +02:00
Flyinghead af76a09e03 gl: repeat % operator for printf. remove Switch special case 2021-07-18 18:15:35 +02:00
Flyinghead 9e5769912b gl: workaround nouveau bug (oit). Use float palette coords for switch
Don't switch render type before terminating current one.
2021-07-17 15:53:47 +02:00
Flyinghead e112f2d8af gl: GLES2 build compatibility 2021-07-15 19:24:56 +02:00
Flyinghead ed0caa119a Merge remote-tracking branch 'origin/master' into libretro
# Conflicts:
#	CMakeLists.txt
2021-07-15 18:43:29 +02:00
Flyinghead f768146d8e switch: unneeded init functions. needed exit one 2021-07-15 16:50:54 +02:00
Flyinghead 412083d9ea libretro: blank vmus at unload/reset 2021-07-15 15:43:10 +02:00
Flyinghead 07cdb42ff7 switch: set UI scaling factor depending on docking mode 2021-07-15 14:44:39 +02:00
Flyinghead 0d7a2128b6 libretro: fix 32-bit arm build. delete useless #def in pvr2 filter 2021-07-15 12:06:04 +02:00
Flyinghead 8e6dc54b16 switch: add .. entry to folder chooser. start at / 2021-07-14 20:55:22 +02:00
Flyinghead a2efde1103 libretro: more switch fixes
combine all static libraries into one
save/restore gl state in !threaded mode
patch libchdr
build fixes
2021-07-13 18:51:40 +02:00
Flyinghead 63a3f02368 libretro: better switch support 2021-07-12 20:14:21 +02:00
Flyinghead 994e6826b4 libretro: option changes (resolution, widescreen, rotation)
Use RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO or
RETRO_ENVIRONMENT_SET_GEOMETRY to report resolution/aspect ratio
changes.
Handle rotation without restarting.
2021-07-12 09:57:58 +02:00
Flyinghead 97991fd8fc gl: delete libretro vmu and crosshair textures when terminating 2021-07-11 20:43:04 +02:00
Flyinghead 345dab9633 libretro: fix nvidia palette issue. request 3.2 to get a core gl ctx 2021-07-09 13:10:30 +02:00
Flyinghead 5c952021b7 libretro: vmu and crosshair display. lightgun fixes 2021-07-08 20:09:09 +02:00
Flyinghead b66e6560ca libretro: vulkan support 2021-07-08 12:47:00 +02:00
Flyinghead 042f2e0224 custom textures: saturate colors when dumping RGBA4444 and RGBA5551 2021-07-07 17:19:13 +02:00
Flyinghead 205f2690d6 gl4: delete fog & palette textures when terminating
fixes fullscreen toggle screen corruption
2021-07-07 10:54:10 +02:00
scribam aeea301ee3 Minor include header changes 2021-07-07 10:37:11 +02:00
flyinghead ef506d49aa libretro: pvr2 postprocessing filter 2021-07-06 21:37:47 +02:00
flyinghead c205a888a9 options: anisotropic filtering, oit pixel buffer size, fast gdrom load 2021-07-06 16:19:12 +02:00
flyinghead a3b66aec1f libretro: win32 support. build fix. 2021-07-06 13:22:54 +02:00
Flyinghead 7dbd79750c WIP libretro core update 2021-07-05 19:44:08 +02:00
flyinghead c5ce475359 Merge remote-tracking branch 'origin/master' into fh/directx
# Conflicts:
#	core/input/gamepad_device.cpp
2021-07-04 17:53:49 +02:00
Enrique Santos 46e3258629
Controller Mapping: System Profiles & Unmap Button (#269)
* add unmap button
* separate controller profiles for dc & arcade games
* loads current system mapping on menu exit
* simplify, use default filename for dc controls
* create blank mapping file for sdl controllers if not found
2021-06-27 12:49:47 +02:00
Flyinghead b3ad0a62c1 gl: fix multiple rendering with GLES 2
fixes split-screen multiplayer for SW1 Racer, Q3, Re-volt
2021-06-19 10:48:32 +02:00
Flyinghead 7f49accc22 Merge remote-tracking branch 'origin/master' into fh/directx 2021-06-07 20:53:31 +02:00
Flyinghead b8c2a695b8 ui: allow drag scrolling anywhere. change some ui elements
allow scrolling by dragging (almost) anywhere
move physical devices before dreamcast ones
hide insets when displaying full screen window
reduce scroll bar size on android
fix controller mapping column sizes
2021-06-07 12:18:05 +02:00
scribam d6545b253b Misc cleanup 2021-06-06 11:15:06 +02:00
Flyinghead 293761bdf5 gui: separate auto-load and auto-save options. Fix tool tips on android 2021-06-04 11:11:23 +02:00
Flyinghead 58974c9305 savestate slots 2021-06-03 13:50:40 +02:00
keita yoshimoto cddb6609f1
Multiple save states (#248) 2021-06-03 13:22:40 +02:00
Flyinghead c3bc5cfc3b vk oit: use a 2nd depth attachment for subpass 1
subpass 1 needs writable depth buffer (see
9f60c5e854)
2021-05-30 18:20:04 +02:00
scribam 57ae9022dd Update Windows resource and version.h.in files 2021-05-28 14:56:04 +02:00
flyinghead 7ed68952ba Merge remote-tracking branch 'origin/master' into fh/directx
# Conflicts:
#	core/deps/patches/SDL.patch
#	core/hw/maple/maple_devs.cpp
#	core/rend/gl4/gles.cpp
#	core/rend/gles/gles.cpp
#	core/rend/gui.cpp
#	core/rend/gui.h
#	shell/apple/emulator-osx/reicast-osx.xcodeproj/project.pbxproj
2021-05-26 22:38:48 +02:00
flyinghead 4696733eb4 dx9: linear filtering for fog texture. swap only when frame rendered 2021-05-26 21:40:43 +02:00
Flyinghead 86d014c3e4 gl: crash when rtt copy to vram due to wrong pbo size
fixes Baldr Force crash
2021-05-26 09:53:29 +02:00
Flyinghead 9f60c5e854 rend: PT alpha must be set before shading
Fixes Langrisser Millennium intro fmv and title/main screen. Issue #249
vk oit: use depth buffer like gl oit
2021-05-25 14:15:37 +02:00
vkedwardli 2b62f8c607
Fix macOS cmake & Xcode project (#255)
* Update zlib reference for Xcode project

* Add CoreHaptics.framework for Xcode project

* Capitalize app bundle

* Use local FindSDL2.cmake script for macOS

* Use `macOS` instead of the old `OSX`
2021-05-25 10:11:58 +02:00
Flyinghead 4cced8ffa0 android: add content path ui too wide when inset present 2021-05-20 10:45:12 +02:00
Flyinghead 373dffc65a wince: ditch vmem32. use address LUT in dynarec. finer grained flush 2021-05-17 11:59:34 +02:00
Flyinghead 5769d7e64f vk: typo in previous commit height -> width 2021-05-11 16:47:54 +02:00
Flyinghead 408c65fcbf gl4: pack/unpack pixel colors. pack poly params. share GLSL with vk 2021-05-11 10:38:17 +02:00
Flyinghead fb38b224f4 rend: get rid of RenderToTextureUpscale option. Use RenderResolution 2021-05-10 20:07:23 +02:00
Flyinghead a4019dd205 new VSync option 2021-05-10 18:02:06 +02:00
Flyinghead affc9f262c gl: update palette on context [re]init
backport from fh/directx
fixes black textures in SoulCalibur when switching back to app (android)
2021-05-03 09:57:45 +02:00
Flyinghead d20fc971c9 android: display cutouts support. render last frame when editing vjoy
render in display cutouts
gl/vk: render last frame when editing virtual gamepad
gl: Fix background handling
gui: reset vmus when stopping game
2021-05-02 11:31:44 +02:00
Flyinghead 5dd15e2942 android: oboe driver error handling. Set buffer size to burst size
oboe: handle lost of audio and recording streams and attempt reopen.
When using aaudio, set the oboe buffer size to the burst size.
gui: really ignore AutomaticLatency for oboe driver

Issue #182
2021-05-01 12:19:04 +02:00
Flyinghead 6dfa9f7786 android: oboe audio driver. get rid of build variants
Issue #182
2021-04-30 19:57:11 +02:00
Flyinghead acd8620139 android: add zh_HK locale 2021-04-30 18:26:35 +02:00
Flyinghead 150cfa29e7 Merge remote-tracking branch 'origin/master' into fh/directx 2021-04-29 19:06:38 +02:00
flyinghead b90cdf9588 RawInput driver. Multiple keyboards support
Merge Keyboard and KbGamepad
Always use system mouse for UI
Issue #138

Fix DX9 when not using SDL
2021-04-29 18:58:04 +02:00
flyinghead 6316479930 get rid of unneeded pixel unpacker and use better name 2021-04-29 18:38:58 +02:00
Flyinghead 92ccd6eb26 android: load Asian glyphs depending on locale
Issue #225
2021-04-22 11:12:51 +02:00
Flyinghead 805dac3039 Resize renderer after [re]init
Fixes crash on Android when app is brought back to the foreground
Issue #228
2021-04-22 10:59:40 +02:00
Edward Li 2bd77ba9c4 missing a space 2021-04-22 02:21:04 +08:00
Edward Li ba955f6659 Re-enable the content path warning dialog 2021-04-22 02:17:18 +08:00
Edward Li 01898d5f41 Fix scanner cannot be stopped 2021-04-22 02:16:18 +08:00
Flyinghead 3dd3595a79 disable emulator Exit on android
Issue #222
2021-04-20 16:32:49 +02:00
Flyinghead c0b5721920 Super widescreen option
Issue #209
2021-04-20 16:06:03 +02:00
Flyinghead 44fd67ffd2 In command line mode, exit the emulator when pressing Exit
Issue #222
2021-04-20 15:57:30 +02:00
Flyinghead 3474901e58 wsi: swap immediately when fast forwarding 2021-04-20 10:56:49 +02:00
Flyinghead d55a26c242 flatpak: better screenshots. Indicate where to put BIOS files. 2021-04-19 19:12:00 +02:00
flyinghead 8909368033 dsound: dedicated audio thread. configurable latency
Use dedicated thread to fill the audio buffer, fill with silence when
underrun, wait for notification events instead of busy loop.
Configurable ring buffer size / latency.
2021-04-19 11:13:27 +02:00
flyinghead f9603dc11a vk: use texture pointers instead of u64 2021-04-17 19:04:00 +02:00
flyinghead 5359e9a09d allow gpu-handled palette textures to be replaced by custom version
Issue #219
Fix incorrect texture size calculation for VQ textures.
Reorder BaseTextureCacheData fields to have hottest on top
2021-04-17 18:40:58 +02:00
flyinghead 28d2c6db73 dx9: rotate 90deg 2021-04-16 21:58:37 +02:00
flyinghead abc8b18b78 dx9: mipmaps. load/dump textures. vmu/crosshair display.
upload all texture mipmaps to gpu
dump textures. load custom textures
vmu and lightgun xhair display
fix dx9 half-pixel offset
fix 565_32 unpacker bug
2021-04-16 18:30:47 +02:00
flyinghead c889bfa6d4 dx9: copy to vram. clipping. fix depth/stencil size. better reset
Coordinate device reset with dxcontext. Keep compiled shaders.
Don't use automatic depth/stencil on backbuffer. Manually handle it.
Implement scissoring/clipping
multipass translucent depth
Render-to-texture copy to vram
2021-04-15 15:17:32 +02:00
flyinghead b549c56b23 build fix. default Delay Frame Swapping to true 2021-04-13 11:20:11 +02:00
flyinghead f107d380b9 WIP directx9 renderer 2021-04-12 22:49:04 +02:00
Flyinghead 4a8ce39bfd vk: use a single command buffer for all texture updates 2021-04-08 10:38:26 +02:00
Flyinghead 24d172bd51 gl: use async PBO to copy texture back to vram 2021-04-08 10:33:14 +02:00
Flyinghead 72968290bf cheats: support for .CHT cheat files
Issue #167
gui: no need to save background in opengl, use RenderLastFrame instead
disable cheats when online
2021-04-06 11:41:41 +02:00
Flyinghead 904bed862e arm32: store queue dynarec optim. ditch Unstable Optimizations
shrink Sh4Context.pad size except on arm32
reset sh4 before mem to unlock ram
2021-03-29 14:26:55 +02:00
Flyinghead 9e9aa5b4d9 gl: proper vao use. define palette uniforms only when needed 2021-03-28 20:08:02 +02:00
Flyinghead dc0c5baece move vram to pvr 2021-03-28 20:08:02 +02:00
Flyinghead 569c23ca95 pvr: use pvr_read32p/pvr_write32p to access 32b vram 2021-03-28 20:08:02 +02:00
scribam 767a1b6a8d gui: fix wrong index CrosshairColor 2021-03-28 11:38:43 +02:00
scribam d0c2c269b0 glcache: call glDeleteTextures if texture cache size > 0 during reset 2021-03-27 19:56:11 +01:00
Flyinghead 1e6874c5eb SDL2/SDL.h -> SDL.h 2021-03-21 20:07:53 +01:00
Flyinghead d8a25e73f2 cmake fixes. makefile clean up. load gles3 driver with sdl
add FindSDL2.cmake and don't provide wrong hint
cmake: option to disable vulkan
don't use/link with egl if using sdl
remove ARM_HARDFP and use standard __ARM_PCS_VFP #def
hide texture upscaling options if no openmp
2021-03-21 18:03:22 +01:00
Flyinghead 06be0d927b screen stretching always in final horiz direction. lightgun coords fix
gl: strech direct fb texture based on stretching and rotation
Fix lighgun coords when stretching and/or rotating
Dimension render size based on stretching and rotation
vk: lightgun crosshair disappears near 0-edge -> scissoring x and y must
be >= 0
always stretch horizontally even when rotating
2021-03-21 18:03:22 +01:00
Flyinghead 685dcd1c8a Variable length arrays not supported by msvc. Fix MacOS project 2021-03-21 18:03:22 +01:00
Flyinghead 1abfa19636 set rendering resolution in discrete steps instead of scaling 2021-03-21 18:03:22 +01:00
Flyinghead 58c936fa6c android: expose sound latency setting. default to auto
Issue #182
remove video Clipping option
remove audio LimitFPS option
2021-03-16 10:15:23 +01:00
scribam 8542675488 clang-tidy: run bugprone-incorrect-roundings 2021-03-15 19:52:54 +01:00
scribam 092ee6d8a5 clang-tidy: run readability-container-size-empty 2021-03-15 19:52:54 +01:00
scribam 913fbef952 clang-tidy: run readability-inconsistent-declaration-parameter-name and improve parameter names 2021-03-15 19:52:54 +01:00
scribam 26ebcdf9f5 clang-tidy: run modernize-use-equals-default 2021-03-14 21:52:42 +01:00
scribam fe17d79e8d clang-tidy: run performance-unnecessary-value-param 2021-03-13 17:28:33 +01:00
scribam af0c267d96 clang-tidy: run modernize-use-emplace 2021-03-13 17:28:32 +01:00
scribam d1239dea89 clang-tidy: run modernize-redundant-void-arg 2021-03-13 17:28:32 +01:00
scribam 28d7227ba5 clang-tidy: run modernize-use-bool-literals 2021-03-13 17:28:32 +01:00
scribam d715836c40 clang-tidy: run modernize-use-override 2021-03-13 17:28:32 +01:00
scribam 1cc3490f51 Remove HOST_OS references 2021-03-13 11:38:34 +01:00
flyinghead 99e37500e9 vk: renderer wasn't always resized when window is
Issue #199
2021-03-08 21:04:51 +01:00
flyinghead 0e20d5976b vram texture locks race condition 2021-03-05 18:22:42 +01:00
flyinghead ee9e64a253 gui: prevent crash when starting a game while game scanner is running 2021-03-05 18:20:55 +01:00
Flyinghead ca107953fe Vulkan renderer setting was reset to off when starting a game 2021-03-03 09:40:52 +01:00
flyinghead 8259b8ba02 x86 msvc build fix. Build 32bit SDL. Force renderer type at startup 2021-03-01 12:49:41 +01:00
flyinghead 72a61786f4 win32: crash when opening texture pack
Issue #187
2021-03-01 12:44:38 +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 859a8dc8fb vulkan: wrong viewport with widescreen and SSAA x2
Issue #172
2021-02-21 08:33:31 +01:00
Edward Li 25e66d6972 Keeping the original scaling calculation for other OSes 2021-02-18 07:24:05 +08:00
Edward Li 50ece2a831 Handling scaling properly on macOS 2021-02-18 06:03:14 +08:00
Edward Li 78aaf39792 Edit comment 2021-02-01 22:56:12 +08:00
Edward Li 4bbf4e3b65 Precompose characters for game scanner also 2021-02-01 20:01:56 +08:00
Edward Li eda6603808 Use `preferredLanguages` to detect system language 2021-02-01 19:57:28 +08:00
Edward Li 94caf86d4d Precompose unicode characters before displaying since HFS+ and APFS is using decomposed form 2021-02-01 19:42:18 +08:00
Edward Li 98c4343410 Font loading for macOS 2021-02-01 19:40:12 +08:00
Edward Li 7d73920ac2 Using the official common character list from the governments 2021-02-01 19:38:29 +08:00
Flyinghead 1a8b25cc34 vk: bump sampler pool size. use swap chain size 3. no mailbox on AMD
Increase descriptor set pool size for combined image sampler to
accomodate for games using a stupidly large number of textures.
Don't use mailbox mode on AMD as it needs 5(!) swap chain images on
linux.
Return to a swap chain size of 3 since it's the min for AMD.
2021-02-01 12:04:55 +01:00
Flyinghead a71c897d56 vk oit: crash when rendering to texture 2021-01-31 17:30:34 +01:00
flyinghead 6105365065 win32: load Asian glyphs from system fonts based on current code page 2021-01-31 16:08:10 +01:00
flyinghead 0fe0c6c653 gl: crosshair not displaying without fps cpunter or vmu 2021-01-28 18:57:04 +01:00
flyinghead 562660134e vulkan: fix resize crash with overlay 2021-01-26 18:12:37 +01:00
flyinghead 7697d37ec6 lightgun crosshair support 2021-01-23 15:59:57 +01:00
flyinghead d217f5232a win32 and macOS fixes 2021-01-21 22:44:51 +01:00
flyinghead ed7bd06f96 win32: multiple mice support. Patch and build SDL 2021-01-21 21:00:46 +01:00
flyinghead 119948cfdb more event use cases 2021-01-19 23:52:28 +01:00
flyinghead 87e9fdd0ac allow subfolders in custom texture folders
make file iterator to be used by custom tex and game scanner
added some missing nowide::getenv
2021-01-19 16:58:26 +01:00
flyinghead 16dec49e08 windows: use utf8 internally. Support latin2, cyrillic, etc. pathnames
upgrade libzip to 1.7
imgui: use all glyphs from font including latin2, cyrillic, greek, etc.
2021-01-19 11:11:01 +01:00
flyinghead 417b470cbb sdl: fall back to open gl if vulkan init fails 2021-01-16 19:09:22 +01:00
flyinghead 49627eaf53 vk: first framebuffer wasn't cleared 2021-01-16 18:50:54 +01:00
flyinghead f3b86f6c14 gl: TextureCache -> GlTextureCache 2021-01-15 10:14:24 +01:00
Flyinghead 1727413247 vulkan: fix crash on minimize and resize. clear framebuffer on resize
many vulkan fixes related to init/term/reset
2021-01-09 18:16:39 +01:00
Flyinghead 4a103a1de3 process input when no frame is rendered 2021-01-08 21:47:33 +01:00
Flyinghead ac7bd2a6a0 free()/delete[] mismatch 2021-01-04 21:21:35 +01:00
Flyinghead 2c8b5aa7f8 vs2019 build tentative fix 2021-01-04 18:56:15 +01:00
Flyinghead 0fd9912f02 gui: get rid of content winodw border 2021-01-03 21:26:56 +01:00
Flyinghead 889fc8256d broadband adapter support 2021-01-02 21:19:50 +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 7a889803fd renderer: mipmapped textures render as black when dumping textures
Issue #144
2020-12-26 22:59:20 +01:00
Flyinghead a00aad5fa7 pvr: auto frame skip to replace current and previous synchronous rendering
Restore previous synchronous rendering behaviour (normal auto frame skip)
No frame skipping when disabled
better cpu speed measure over 4 vblanks
2020-12-25 12:08:44 +01:00
Flyinghead ee157db078 macos: microphone support. Audio latency setting 2020-12-24 08:58:46 +01:00
Flyinghead 1a59f8bade vk: reset lastFrameView to nil when switching renderer
fix crash when switching per-tri/per-pix
2020-12-21 20:09:23 +01:00
Flyinghead 632731bede vmem: map area 4 access to vram
pass DDT0101 diag test
fix vmem handler bug with >= 8 handlers
ch2-DMA: use SB_LMMODE1 for upper mirror
dmac: update SAR and DAR according to CHCR.SM and CHCR.DM
use function templates for vram 32b handlers
clean up
2020-12-20 17:25:28 +01:00
Flyinghead a7a70f9900 gl: don't present a frame if no previous render 2020-12-16 17:25:33 +01:00
Flyinghead 3f1326a3ac rend: read framebuffer as non-interlaced when possible 2020-12-16 14:40:11 +01:00
Flyinghead 190ab6690a vk: create staging buffer for texture if null
Fixes SF3 double impact crash
better texture cache cleanup
2020-12-16 14:37:28 +01:00
Flyinghead bb5b5d4512 only switch vulkan/opengl when needed 2020-12-15 20:16:35 +01:00
Flyinghead 04cd7db2cd pvr: serialize TA render passes
use enum for renderer type
2020-12-15 16:27:34 +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 d960f8e9f5 lightgun: handle screen stretching, rotation and tall aspect ratio
Issue #139

move jvs stuff into maple_jvs.cpp
2020-12-09 13:48:58 +01:00
Flyinghead fd244eb8b9 android: create data directory if needed at startup and onboarding 2020-12-08 17:15:51 +01:00
Flyinghead b147f71ffa fix crash with vulkan an android
compiler bug?
2020-12-08 15:45:39 +01:00
Flyinghead adeacd89f4 input: implement reload. remap some naomi games input
implement lightgun reload (dc, naomi)
kcode[] set to 32 bits
revamped mapping for naomi keys
remapped btns for some naomi games
display game button/axes names in UI
2020-12-02 14:40:50 +01:00
Flyinghead 8905410aa4 clean up 2020-11-30 21:59:13 +01:00
Flyinghead 8f77a5482a config/data folders improvements
linux: look for legacy ~/.reicast and ~/.reicast/data
else look for ~/.config/flycast and ~/.local/share/flycast
and ~/.config/reicast and ~/.local/share/reicast
(defaults to flycast)

look for bios files in home folder and data folders (android, windows
,macos), then in game folder.
on linux, search in /usr/share/flycast and /usr/local/share/flycast and
legacy locations
2020-11-26 16:45:57 +01:00
Flyinghead 93dc87f17f rend: fix race condition when clearing texture cache 2020-11-25 23:22:45 +01:00
Flyinghead fad94ca759 upgrade imgui to 1.8. Allow scrolling settings by dragging empty space 2020-11-25 13:54:27 +01:00
Flyinghead 289ff59008 gui: fix content path incorrect popup. fix potential race condition 2020-11-25 10:20:03 +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 4cb361bf9f input: allow binding controller buttons/axes to more than 1 player
Issue #68
2020-11-21 17:57:23 +01:00
Flyinghead 3e3fa08430 input: use btn/axes names in ui. fix mouse btn mapping
Use button and axis names in mapping UI
Mouse button remapping was impossible
x11: use same config names for window size as sdl/win
2020-11-20 22:10:14 +01:00
Flyinghead ee66afb7f6 vk: recreate swap chain if presentation failed. retry creation if fails 2020-11-20 21:13:18 +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
Edward Li 11336a3e1f use `unsigned int` instead of `uint` 2020-11-04 06:34:25 +08:00
Edward Li 4516f9790a Restore the problematic Content Path if user clicks cancel 2020-11-04 05:59:25 +08:00
Edward Li fe1c77b9ae Display relevant game files in the select_directory_popup 2020-11-04 05:45:52 +08:00
Edward Li 4bd50b9182 Display warning when it takes too long to find a game 2020-11-04 05:45:38 +08:00
Flyinghead 170ae3477c gl4: reset scissor test before rendering a-buffers
Issue #116
2020-10-10 19:07:40 +02: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 4ecf43a08d vulkan: revert to using 3 swap images. fix crash when switching gl/vk
Fix Hello Kitty crash with empty first TR polygon
Fix Test Drive Le Mans crash on invalid textures
Fix wldkickspw crash with invalid TA data
2020-07-11 17:38:41 +02:00
Flyinghead 1713124711 vulkan: linear tiling for small texs. don't track in-flight texs
Linear tiling is faster for small, frequently updated textures
When lots of textures are updated each frame, a skipped frame will
destroy/recreate all textures, causing another skipped frame, etc. So
in-flight texture tracking is disabled, except for RTT textures
Limit swap chain to 2 images
Refactor base and oit renderers to avoid code dup
2020-07-10 18:50:53 +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 fee28194fb savestate: save sq_remap, save aw cart state, fix lr aw format
save AW cart state
save sq_remap used for mini-mmu with store queues
allow loading lr aw savestate. upgrade to v11
aica: saturate EG register
savestate: save current TA data
texcache: fix race condition when deleting a texture
handle 1x1 YUV tex as 565
2020-07-06 16:28:53 +02:00
Flyinghead 5cfed1e482 div32: get rid of edge cases. simplify 2020-06-15 16:56:09 +02:00
Flyinghead 0fd51fb52a android: ignore audio latency. skip less frames in synchronous mode
android: use minimum size for audio buffer
alsa: use period size of 1024 instead of 512
hide audio latency option for android, win32 and mac
relax frame skipping formula
2020-06-05 21:16:48 +02:00
Flyinghead fec79624df gl/gl4: simplify clipping. share code with vulkan 2020-05-11 16:11:31 +02:00
Flyinghead b907aa2d98 fix GLES2 build 2020-05-09 12:07:49 +02:00
Flyinghead 34575d577c fix sdl+egl build. get rid of USES_HOMEDIR. thread deadlock at exit
fix odroid xu3 build
sdl: use left or right alt+enter to maximize window
deadlock at exit if dc_exit called from emu thread
2020-05-08 18:41:36 +02:00
scribam 6ee4b6de85 Replace OS_DARWIN by __APPLE__ 2020-04-26 14:19:21 +02:00
scribam 429957f830 Compilation fix for MSVC 2020-04-23 13:37:07 +02:00
Flyinghead bec7a9f452 network: start network before starting game to configure eeprom/flash
do second net sync when comm board is reset
close menu/cancel loading when pressing menu button
2020-04-22 19:11:49 +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 06313dd540 naomi: auto configure eeprom and bbsram for network 2020-04-19 21:45:15 +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 c364d6379b input: per controller instance mapping file. Hide DPad U/D/L/R
Try to load a per-controller instance mapping file first, then fallback
to the per device type file.
Hide DPad U/D/L/R and DPad2 U/D/L/R in analog axes mapping to avoid
confusion.
2020-04-17 17:55:43 +02:00
Flyinghead a41a81f5dd naomi: network code for model 3 comm board 2020-04-14 17:43:11 +02:00
Flyinghead 381f0f0f95 ui: scan games in a background thread. hide unknown zips and naomi chds 2020-04-09 11:44:19 +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 5b60e3e47b Load custom textures with stb_image exclusively and remove loadPNGData function 2020-04-07 19:17:16 +02:00
flyinghead 2711912bcf
Merge pull request #66 from tokuio/axis_buttons
Add ability to map analogue triggers to digital buttons
2020-04-07 17:23:51 +02:00
Flyinghead b2af81cdb0 custom textures: use strtoll since long is 32-bit on windows 2020-04-07 16:32:38 +02:00
Flyinghead cc2ddad53b custom textures: support JPEG format 2020-04-07 14:32:09 +02:00
tokuio f5887d64c2 Add ability to map analogue triggers to digital buttons 2020-04-07 01:33:05 +01:00
Flyinghead 553447ed76 allow buttons to be mapped to left analog stick
Issue #55
2020-04-04 18:18:36 +02:00
scribam 0077bbe295 Remove unused deposterize code 2020-04-03 18:55:02 +02:00
Flyinghead d1b29a59d2 vulkan: re-enable vulkan 1.1 on Android. Fix TEST_AUTOMATION
disable vmem32 for Heroes of Might and Magic III
support no vmem in _vmem.cpp
2020-04-03 16:32:53 +02:00
Flyinghead 37d3625bf3 gui: Add log to file option. don't create log file if disabled 2020-04-02 12:20:03 +02:00
Flyinghead ca3c2a2387 rend: use original palette data to compute palette hash 2020-04-01 17:12:55 +02:00
Flyinghead 320d0a5ce7 fix crash when TR polys count is 0 2020-03-31 21:09:42 +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 9a420b0093 Remove macros EMUERROR 2020-03-30 22:18:44 +02:00
Flyinghead b3e466afed sort triangles even with 1 poly
fixes missing Naomi boot logo and vtennis2 black frame during replay
2020-03-30 18:48:06 +02:00
scribam 4bf6802855 Cleanup include headers 2020-03-29 14:26:21 +02:00
scribam c731cbcaf8 deps/vulkan: Update vk_mem_alloc.h to version 2.3 2020-03-29 13:28:06 +02:00
Flyinghead 9ce25a4e72 gl: crash when deleting null shader 2020-03-29 12:30:22 +02:00
scribam 0035871422 Replace RELEASE by NDEBUG 2020-03-29 10:12:32 +02:00
Flyinghead c5a42a57bc limit maple schedule time, allow vram 8-bit reads, minor changes 2020-03-28 12:19:36 +01: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
tokuio 7e4a31c786 Add game description to roms in file list 2020-03-25 12:49:58 +00:00
Flyinghead 5894992f70 android: don't use storage for default buttons.png 2020-03-24 23:31:34 +01:00
Flyinghead 5a1b7374e5 change icons. display error message when game fails to load. 2020-03-21 15:05:38 +01:00
Flyinghead 0c2e95185c support for right analog stick. Fix gunsur2 inputs 2020-03-20 16:57:50 +01:00
Flyinghead 34ac18479f osx build fix 2020-03-18 19:09:25 +01:00
Flyinghead 54261b69c9 renderer: handle mipmap D-adjust param (convert to lod bias) 2020-03-18 18:51:34 +01:00
Flyinghead 268b0cdcfd vulkan: mipmap levels must be 4-byte aligned 2020-03-17 19:24:00 +01:00
Flyinghead ef223bb20d vulkan: disable vulkan 1.1 on android for now
Issue #30
2020-03-17 16:34:14 +01:00
Flyinghead 1abfdaf64e audio: pulse async driver, null driver, latency setting
Pulse: use async API instead of simple API
Null driver: no audio driver with accurate timing
Add latency setting to alsa, pulse and android drivers
android: start and stop AudioTrack on audiobackend init/term
Simplify audiostream. Get rid of "none" option
2020-03-14 22:46:40 +01:00
Flyinghead e3313d27b2 custom texture: stop loader thread before loading state 2020-03-13 18:01:33 +01:00
Flyinghead 4e73af0f94 Mem leaks in input mapping/jvs/x11. Fix crash when latin-1 char is input
Fix warnings
2020-03-12 16:09:05 +01:00
Flyinghead aff2b9e1af fix simple texture bleeding case when upscaling. Clean up 2020-03-11 17:55:13 +01:00
Flyinghead 8567c42b30 gl4: Use GL_LINEAR_MIPMAP_LINEAR for mipmapped textures
improve custom texture packs rendering quality
2020-03-10 17:55:44 +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 797dabe11f Add more buttons for arcade games. Show arcade mapping in UI.
Issue #40
2020-03-09 19:44:16 +01:00
Flyinghead 99f04ec753 nuke softrend 2020-02-26 23:41:05 +01:00
Flyinghead 6bfde76514 vk: avoid calling List::head() in loops 2020-02-25 16:34:49 +01:00
Flyinghead dd29a62811 remove buggy LimitFPSAuto option 2020-02-25 12:52:21 +01:00
Flyinghead 0ff22ed0a6 custom tex: disable mipmapping when dumping textures 2020-02-21 16:16:54 +01:00
Flyinghead 75bfd25224 custom tex: support v1 (content+pal) and v3 (...+format) hashes only 2020-02-19 18:48:56 +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 9f565f2d41 vulkan: corrupted textures with mipmap and xBRZ 2020-02-17 18:26:14 +01:00
Flyinghead 3ddce6dd45 fix crash when enabling xBRZ filtering 2020-02-17 18:26:14 +01:00
Flyinghead 84ba8afe0f Ignore tex address and stride in texture hash 2020-02-09 23:08:11 +01:00
Flyinghead 3f7ea1fda9 fix crash for 1x1 TW textures 2020-02-07 20:41:59 +01:00
Flyinghead 391cbdc044 restore previous twiddle table for non-square tex 2020-02-07 19:13:23 +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 49c6a55f24 vulkan oit: pass native blend function values to shader, not vulkan ones
Fixes missing texture in Plasma Sword start screen
2020-02-06 11:39:05 +01:00
Flyinghead 333b21fac4 Fix .elf support. Init aica irq mask/level during HLE boot
BSC PCTRA is 32-bit wide
2020-02-05 18:02:44 +01:00
Flyinghead b79c074444 axe wchar 2020-01-31 23:51:12 +01:00
Flyinghead 80a0f467d7 fix crash when screen scaling is custom. fix rpi3 build
DiscSwap and InitDrive are now the same
2020-01-31 18:33:16 +01:00
Flyinghead e017fba9c1 vulkan: fix scissoring when SSAA > x1 in widescreen mode 2020-01-30 20:08:30 +01:00
flyinghead d6fe3526a4
Merge pull request #35 from vkedwardli/enable-upscaling
Enable upscaling for up to 8x SSAA
2020-01-30 19:03:15 +01:00
Flyinghead aaaf093af7 Allow ejecting and changing the disk while in-game 2020-01-30 19:01:47 +01:00
Edward Li 1d72f66de9 Enable upscaling for up to 8x SSAA 2020-01-30 03:31:42 +08:00
scribam 4161ca9b07 msvc build fixes 2020-01-28 19:08:22 +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 ef3512a2f3 gl4: fix blending issue when autosort=0
Fixes Sturmwind menu
2020-01-20 22:37:24 +01:00
Flyinghead 3b83a4e4d5 minor changes 2020-01-16 22:19:07 +01:00
Flyinghead 7f30c7078d pvr: better saturation of colors when converting tex to higher precision 2020-01-15 10:55:25 +01:00
flyinghead 36a7c00507 win32: fix crash when switching to vulkan
fix recursive call to VulkanContext::Init
still crashing when starting with vk and switching to GL
2020-01-08 10:58:24 +01:00
Flyinghead 43d924ceae vulkan: reset physical device at init
don't use PhysicalDeviceProperties2KHR with vulkan 1.0
tentative fix for issue #30
2020-01-06 21:33:31 +01:00
Flyinghead a6839f57e7 vulkan: only use per-pixel sorting when needed 2020-01-05 23:03:44 +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 d49373b0f9 vulkan: VMU display
Reset pipeline when switching per-triangle/per-strip
Adreno workaround test typo
clean up
2019-12-25 13:09:54 +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 3415ce5577 win32: detect platform. SDL support 2019-12-22 23:49:52 +01:00
flyinghead 424a02cdf3 vulkan: workaround for intel driver bug when depth write is disabled
backport adreno driver translucent modvol workaround
2019-12-22 17:48:24 +01:00
Flyinghead 29fd406dd8 vulkan: crash on windows when switching from gl to vulkan
Destroy and recreate window when switching from gl to vulkan
VkGetPhysicalDeviceProperties2 crash with old nvidia driver (376)
2019-12-14 17:53:01 +01:00
Flyinghead c683e0ded8 vulkan: push constants when starting render pass to avoid crash (mali) 2019-12-11 22:31:35 +01:00
Flyinghead 78987074a6 renderer: add 32bpp conversion routines for bump map textures 2019-12-10 16:15:14 +01:00
Flyinghead 5ac104fb0e Disable startx/starty crt shifts for now. vk: fix OIT buffer size issue 2019-12-10 15:19:41 +01:00
Flyinghead 066093553f vulkan: copy provoking vertex. crash when rtt2vram. rtt vram stride
setImageLayout was missing TransferSrcOptimal as source layout
Vulkan needs the first vertex to be the provoking vertex so copy 3rd on
1st when flat shading.
VRAM stride was incorrect (RTT to VRAM)
2019-12-10 12:51:10 +01:00
Flyinghead 637ad3b214 vulkan: delay destroying in-flight images. Fix inside clipping.
Keep in-use imave and image views when the texture is updated.
Fix inside clipping (18 wheeler rear mirror)
Wait until the graphics queue is idle before changing shared buffers and
attachments.
Refactoring
2019-12-09 19:37:14 +01:00
Flyinghead 3b86c57d0e texture corruptions with some wince games
vram wasn't protected in some cases
Worms World Party, Tomb Raider - Final Revelation, Hundred Swords
2019-12-09 13:17:58 +01:00
Flyinghead a1981c48b6 vulkan: transition oit depth attachment after init. Avoid empty buffer 2019-12-08 22:39:30 +01:00
Flyinghead 369624b28f vulkan: check if api 1.1 is available. fix screenshot R&B swap 2019-12-08 22:22:40 +01:00
Flyinghead a331c7bd84 vulkan: missing BeginFrame call 2019-12-07 22:13:22 +01:00
Flyinghead 9acbfae25d vulkan: don't allocate more than allowed 2019-12-07 22:12:14 +01:00
Flyinghead e14115683e vulkan: don't use anisotropic filtering with nearest. Set max to 4
fixes issues with adreno
2019-12-06 17:16:59 +01:00
Flyinghead 4730da31d5 vulkan: fix modvols. fix depth-write disabled poly. optimizations
stencil must be reset to zero if poly isn't shadowed -> fixes jet set
radio "see-through" shadows
take culling into account for modvols
oit: reduce per-pixel and per-poly mem usage
oit: framebuffers weren't resized when needed
oit: poly with depth write disabled weren't drawn (Soul calibur missing
water surface)
Fix glsl error when two-volume mode needs fog attachment
2019-12-05 18:48:54 +01:00
Flyinghead 21b2eb3e5d vulkan: fix clipping (alpilot black screen) 2019-12-04 19:06:14 +01:00
Flyinghead cd49b32473 vulkan: allocate oit buffers in device-local mem. NVidia fixes
BufferData was always allocated in host visible mem, regardless of the
mem property argument.
NVidia gpus don't support blitting to 565 and 5551, which is needed for
mipmaps, so convert to 8888 instead.
Use optimal tiling for oit pointers image (linear not supported by
nvidia and probably slower anyway)
oit screen drawer uses multiple final attachments
Set non-oit depth attachment as transient and lazily allocate mem
2019-12-04 15:51:26 +01:00
Flyinghead 8f80b427df vulkan: move oit renderer to own directory 2019-12-04 09:41:27 +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 6865d74a85 vulkan: use last rendered frame as background for ui 2019-11-30 12:14:36 +01:00
Flyinghead cf7aa4f310 vulkan: disable debug 2019-11-29 19:54:43 +01:00
Flyinghead 0280fcc9d4 vulkan: render to temp fbo then to screen
renderers render to image which is blitted to the screen by the context
batch texture updates command buffers and submit once
fix screen scaling
2019-11-29 19:28:22 +01:00
Flyinghead dae0908735 vulkan oit: fix imgui overlay
re-init imgui with the oit render pass when running game. use regular
render pass otherwise.
2019-11-26 18:28:48 +01:00
Flyinghead ed538f7dce vulkan: osx and arm32 build fix 2019-11-26 12:12:43 +01:00
Flyinghead 554d8005fa gl: #version must be on first line or Mali compiler complains 2019-11-26 11:08:35 +01:00
Flyinghead a944cd08c6 vulkan: use amd mem allocator 2019-11-26 10:42:44 +01:00
Flyinghead 2c26d379df renderer: fix scissoring with hscale, pixel_double, vscale...
Fixes Wacky Races, ECW Hardcore and Cho - Hatsumei Boy Kanipan cropped
screen
2019-11-18 15:57:18 +01:00
Flyinghead a4053715af vulkan: skip TR & final pass on first frame before clearing buffers 2019-11-15 11:24:00 +01:00
Flyinghead 01af8e5f5e vulkan: fix texture LoD, enable anisotropic filtering
fixes textures being grainy when seen from a distance
2019-11-15 11:17:01 +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 9928af2506 vulkan: terminate shader compiler only once if inited
fixes assert/crash when switching rendering api
2019-11-13 12:56:40 +01:00
Flyinghead 72c2ee1008 vulkan oit: RTT support
Fix Tr modifier volumes mem barrier
Simplify desc sets
2019-11-12 19:39:58 +01:00
Flyinghead 7b8840a330 Merge remote-tracking branch 'origin/master' into fh/vulkan 2019-11-10 21:01:29 +01:00
Flyinghead 25fb888d26 vulkan oit: get rid of depth2 attachment 2019-11-10 17:59:21 +01:00
Flyinghead c10f075266 vulkan: OIT renderer WIP 2019-11-10 11:27:19 +01:00
Flyinghead b8c1d6657d vulkan: quad buffer, extract shader compiler
fetch color format, storage buffer alignment and stores/atomics support
at init
support for framebuffers used as input attachments
use Allocator instead of VulkanAllocator
return handles instead of unique handles
2019-11-10 10:16:18 +01:00
Flyinghead 5d6ac0acbb gl: const everything 2019-10-25 22:47:20 +02:00
Flyinghead ba51c873d0 vulkan: fix missing geometry in multipass 2019-10-25 22:30:34 +02:00
Vai Kong Edward Li 5772e2a679 Custom Textures / Dump Textures supports NAOMI also 2019-10-26 03:56:59 +08:00
Flyinghead 920e2bf039 vulkan: return Device instead of UniqueDevice from context 2019-10-25 19:20:15 +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
Flyinghead 2a89874812 decouple imgui from gles renderer 2019-10-19 18:34:24 +02:00
Flyinghead 6611e9bf5e gl: refactor wsi into their own class.Allow dynamic vk<->gl switch 2019-10-18 21:57:08 +02:00
flyinghead dffaed7dd9 vulkan: prefer optimal depth format. use same format for rtt
Try to find an optimal depth format then fall back to linear
Use same depth format for rtt depth attachments
Allow RenderToTextureBuffer setting to be changed at runtime
Enable vulkan on windows
2019-10-16 10:40:06 +02:00
flyinghead c3cbfbdfb0 vulkan: android build fix 2019-10-15 21:50:42 +02:00
flyinghead a6c56ba748 vulkan: windows support 2019-10-15 21:25:24 +02:00
Flyinghead 43d87877be vulkan: some ui 2019-10-15 16:52:02 +02:00
Flyinghead d28a7f45c5 vulkan: android support
align uniform buffers according to physical device requirements
destroy old swap chain before creating new one
some drivers don't support some 16-bit texture formats for optimal
tiling
2019-10-15 16:49:20 +02:00
Flyinghead e3a997b642 vulkan: direct framebuffer writes support
alternate between 2 texture drawers
Fix scissor scale when pixel_double is on
Ingore Present() when nothing has been rendered
2019-10-14 17:41:49 +02:00
Flyinghead fb52b38ac3 texture upscaling was missing some paletted alpha channel formats
Fixes dark pixels on edges when using xbrz upscaling (Capcom vs SNK 2)
2019-10-14 15:15:20 +02:00
Flyinghead f8d4b08618 vulkan: increase some descriptor pool sizes. Use 3 swap chain images 2019-10-13 22:40:11 +02:00
Flyinghead 4c29a9bad7 vulkan: better tile clipping 2019-10-13 22:01:20 +02:00
Flyinghead af0b0eac42 vulkan: mipmap support 2019-10-13 18:42:28 +02:00
Flyinghead 06e1456d4f vulkan: memory allocator 2019-10-12 13:48:41 +02:00
Flyinghead 459a2b973e vulkan: make staging buffer visible to host for rtt2vram. Minor changes 2019-10-12 13:48:41 +02:00
Flyinghead 2bac2afe98 gles: fix depth issue when drawing quads on gles2
Fix Gunlord black screen on GLES 2
2019-10-12 13:48:41 +02:00
Flyinghead e9ecda2b31 vulkan: fix regression on color blending state 2019-10-09 22:59:01 +02:00
Flyinghead 970d959772 gles: build fix 2019-10-09 22:49:29 +02:00
Flyinghead becdd213fe android: build vulkan renderer 2019-10-09 22:44:06 +02:00
Flyinghead 6406523720 vulkan: RTT support 2019-10-09 21:18:06 +02:00
Flyinghead 38f50c1b5a gles: refactor rtt vram writeback out of gles 2019-10-09 21:14:31 +02:00
Flyinghead e09e895f22 vulkan: better image update. Don't kill in-flight command buffers
Transition images back to transfer and update them instead of
deleting/recreating.
Keep track of in-flight texture command buffers and free them when idle.
2019-10-07 17:45:11 +02:00
Flyinghead b790a336e9 vulkan: modifier volumes 2019-10-07 12:30:56 +02:00
Flyinghead 8d520fa5e4 vulkan: per-triangle sorting 2019-10-06 21:21:31 +02:00
Flyinghead b82a97853f vulkan: fog support 2019-10-06 17:02:17 +02:00
Flyinghead 8f8f270cfc vulkan: use separate command buffer to upload tex. Limit desc set size. 2019-10-06 14:31:39 +02:00
Flyinghead 751f30003d rend: fix stride regression introduced in 24b973f7
Fix YUV textures corruption
2019-10-06 14:16:12 +02:00
Flyinghead ebec2966d7 vulkan: create SamplerManager. Use staging buffer for textures
Samplers shouldn't be tied to a texture
Using a staging buffer fixes most texture glitches
2019-10-06 12:24:07 +02:00
scribam 1e54de93fa gui: Replace "std:string" by "std::string" 2019-10-06 10:58:44 +02:00
Flyinghead 5b35b52fda vulkan: fix uniforms alignment. Use push constants for per-poly params
Fix clipping, trilinear alpha
Imgui FPS counter
2019-10-05 23:29:39 +02:00
Flyinghead 929976c147 android build fix 2019-10-05 18:45:42 +02:00
Flyinghead fc752e6efb proper OSX build fix 2019-10-05 19:44:25 +03:00
Flyinghead bbab62810a OSX build fix 2019-10-05 19:29:23 +03:00
Flyinghead d23b7bff7b vulkan: recreate swap chain on resize. flush samplers when updating tex 2019-10-05 16:09:28 +02:00
Flyinghead 27e9acaac6 rend: refactor ReadFramebuffer() out of gles 2019-10-05 16:06:07 +02:00
Flyinghead b1defae3f7 vulkan renderer - WIP 2019-10-05 11:50:14 +02:00
Flyinghead 8202ac420b pvr,rend: more refactoring out of gles. Change texture id to 64b 2019-10-04 13:33:08 +02:00
Flyinghead 24b973f763 rend: refactor texture cache and poly/triangle sorters out of gles 2019-10-04 12:22:18 +02:00
Flyinghead 87023c722d Hide unsafe optimizations on all but arm32 platform
Non-functional changes
2019-09-30 15:36:39 +02:00
Flyinghead 6ab8b185c8 Protect vram pages only when needed. Use lambda for xbrz paralleliz.
Each vram page is now protected only once.
Get rid of std:function and std::bind and use lambda expressions.
2019-09-30 15:31:06 +02:00
Flyinghead 9d3ee3b57f dyna: get rid of SmcCheckLevel options. Fix rec-cpp
Block check is now full or off depending on block protection
rec-cpp: Add missing opcode call classes and allow for immediate args
2019-09-29 18:18:46 +02:00
Flyinghead ae4f378747 Add fast-forward mode
Fix buttons.png not being created if not first run
2019-09-27 14:15:29 +02:00
Flyinghead 219a001631 pvr: eliminate empty polygons and render passes
initialize sprite face base & offset colors to white
never join TR poly strips
re-enable depth after mod vols
2019-09-25 23:28:53 +02:00
Flyinghead 90dbaa5edd gui: disable stencil test 2019-09-25 20:25:01 +02:00
Flyinghead 334211f3a0 gl: build fix 2019-09-25 15:44:21 +02:00
Flyinghead 3fd3e097ac gl: fix modvol issue introduced by 8792c06 2019-09-25 13:54:38 +02:00
Flyinghead 9b063644c4 Per-game widescreen cheats
New option to make games render in 16/9 anamorphic format and stretch
screen to correct aspect ration.
2019-09-24 23:59:36 +02:00
Flyinghead 943a50b9bc gl4: translucent modifier volumes need inverted depth too 2019-09-23 19:37:01 +02:00
Flyinghead 537c2a4ed6 pvr: reset face and offset colors when not set in poly param
Fixes black ice in NHL 2K2 and black players in NHL 2K
Clean up
Don't build soft renderer
2019-09-21 22:53:09 +02:00
Flyinghead 8792c06adc gl4: use same depth direction as gles. Round scale_y value. 2019-09-17 13:35:23 +02:00
Raph 732e685ea7 gl4: unbind the depth tex from the fbo before reading from it
fixes diagonal pixel line issue with AMD gpu
should help issue #16
2019-09-15 18:30:44 +02:00
Flyinghead ed90bcebee partially revert 1a019b79b0
move the punch-through alpha test back to where it was (before shading)
fixes SF Rush missing chars on copyright screen
2019-09-12 18:54:14 +02:00
Flyinghead 2bdfdf96c1 gl4: fix invisible framebuffer direct writes with hle bios
Fixes hidden & dangerous black screens in hle bios mode
2019-09-11 21:10:02 +02:00
Flyinghead 8b949e1dca Get rid of time_sync timer. Clean-up 2019-09-11 15:09:23 +02:00
Flyinghead 11c95c41d3 Hide legacy Naomi roms (.bin, .dat. lst) by default 2019-09-10 21:56:58 +02:00
Flyinghead 0bd95cbba8 Delay Frame Swapping option to enable FB_R_SOF == FB_W_SOF detection 2019-09-09 14:58:53 +02:00
scribam 49b7e0682b Cleanup 2019-09-07 20:36:13 +02:00
scribam e0fb50488d deps: Update xxhash integration 2019-09-06 21:05:19 +02:00
scribam bdf2029e99 Simplify libpng/zlib integration 2019-09-04 19:59:51 +02:00
Flyinghead b4d33a6c70 Merge remote-tracking branch 'origin/master' into fh/hle-bios 2019-09-03 19:14:39 +02:00
scribam 21fa8ecfba deps/windows: Update dirent integration
Source: https://github.com/tronkko/dirent/blob/1.23.2/include/dirent.h
2019-09-02 22:57:53 +02:00
Flyinghead aadc9c3bfc Detect game region/vga support and set options accordingly
Better IP.BIN parsing (wince, vga)
Use wince flag and boot filename for wince detection
Switch to TV composite if vga unsupported
Switch to supported BIOS region if current is unsupported or default
2019-09-01 16:35:12 +02:00
Flyinghead 61f4cd4ecd Merge remote-tracking branch 'origin/master' into fh/hle-bios 2019-08-31 22:10:09 +02:00
Flyinghead 2015d9a696 rename and clean up 2019-08-30 23:35:10 +02:00
Flyinghead e173b83574 New option to force WinCE mode 2019-08-28 20:47:47 +02:00
scribam 269297be18 Use _WIN32 to handle Windows specific code 2019-08-28 20:37:53 +02:00
scribam 61382316c9 Use __ANDROID__ to handle specific Android code 2019-08-28 20:37:53 +02:00
Flyinghead 7c8ce6267a use lroundf(x) instead of x + 0.5f 2019-08-17 18:19:33 +03:00
Flyinghead cf22e942cb android build fix 2019-08-12 21:16:32 +02:00
Flyinghead 93e009bf1a gl: use matrices for ndc and viewport calculations
Support VO_STARTX and VO_STARTY for shifting displayed frame
Add glm to deps
Calculate NDC, scissoring and viewport matrices once
Reduce code duplication
2019-08-12 19:56:44 +02:00
Flyinghead 1a019b79b0 GL: blending support for punch-through polys
Disable trilinear filtering for PTs
PT alpha test should be done after color+tex shading according to documentation
2019-08-09 12:05:56 +02:00
Flyinghead 7ff225bfa0 PVR: detect direct FB writes in non-interlace. Fix packed 888 FB format 2019-08-09 12:03:09 +02:00
Flyinghead b38affe87c Build fix 2019-08-08 08:30:38 +02:00
Flyinghead 69f2b343b1 OSX: command line args support. test automation
allow test automation on other platforms (win32, OSX, ...)
2019-08-08 08:22:33 +02:00
Flyinghead 6059831ec7 reios fixes 2019-07-30 19:04:51 +02:00
Flyinghead a9dbbccf93 Unprotect VRAM before switching system. Fix texture cache clean 2019-07-28 17:06:12 +02:00
Flyinghead 9932d9bf43 OSX: fix bios files path (now in /data/) 2019-07-24 18:24:58 +02:00
Flyinghead 326bc580ec Merge branch 'fh/unified' into fh/wince-dynarec 2019-07-13 12:50:19 +02:00
Flyinghead bbc11a30aa Naomi rename vars and clean up. Logging changes. 2019-07-13 12:44:10 +02:00
Flyinghead e63d7d717e Fix Restart crash. Clear texture cache during reset 2019-07-13 10:59:20 +02:00
Flyinghead 68acf48d64 Support for Twin Stick and Ascii FT Stick 2019-07-12 19:18:39 +02:00
Flyinghead 60ec054b59 support for VQ compressed paletted textures 2019-07-12 15:34:10 +02:00
Flyinghead eb38564922 use exceptions for startup errors 2019-07-11 19:23:21 +02:00
Flyinghead cb35c80ee7 gl4: still need to update the depth buffer for TRs 2019-07-10 22:23:26 +02:00
Flyinghead f3a91de1af Unify dreamcast, naomi and atomiswave builds WIP 2019-07-09 23:52:19 +02:00
Flyinghead 632aa95c2d gl4: depth test issue in non-autosort mode
Depth testing is done in the fragment shader so it shouldn't be done
in the a-buffer shader for the first pixel, or until the depth is updated.
Fixes flashlight and lightstorm effects in Alone in the Dark
2019-07-09 15:25:15 +02:00
Flyinghead 329230bf8d Fix Naomi reset. Add some per-game settings
Re-Volt needs 100 extra deptch scale for perfect menus
Tom Clancy's Rainbow Six needs RTT to vram for correct loading screens
2019-07-08 16:31:50 +02:00
Flyinghead 478b1c719c gl4: do a depth-only TR pass in non-autosort mode
fixes HeadHunter map/radar issue
2019-07-08 16:30:07 +02:00
Flyinghead dbbc1819e8 remove NACL 2019-07-07 22:56:23 +02:00
Flyinghead 9eef02a1e8 pvr: ignore Z Write Disable for punch-through polys?
tentative fix for Worms World Party
2019-07-07 22:13:43 +02:00
Flyinghead 2c8094f987 renderer,sdl: use new logging 2019-07-01 17:41:15 +02:00
Flyinghead ad4218d617 audio: use new logging
other logging changes
2019-07-01 17:17:08 +02:00
Flyinghead 8404c6322c New logging framework stolen from dolphin 2019-06-30 21:06:46 +02:00
Flyinghead 838cbe59e3 gl4: get rid of scaling params and use normalized coords in abuffer
add Eternal Arcadia and Yu Suzuki Game Works to render rtt to vram game list
2019-06-30 11:40:42 +02:00
Flyinghead a14bf29f5f gl4: scaling and coords must be different with rtt vs screen 2019-06-28 18:26:36 +02:00
Flyinghead 5f5f300604 gl4: fix issue with RTT regarding buffer dimension
fixes shadow in THPS 1 & 2
2019-06-28 17:37:06 +02:00
Flyinghead 99778a7715 per-pixel renderer: RTT might need bigger buffers than screen 2019-06-27 22:41:16 +02:00
Flyinghead f862903a74 Don't unprotect vram when a texture is updated
Adjacent textures in other pages still need vram protection
Fixes texture corruption in many games since ad5ab6240b
2019-06-23 21:30:46 +02:00
Flyinghead 112e272075 renderer: support non-integer v-scaling factor
Fixes missing half-screen in Wacky Races (PAL), Buzz Lightyear of Star Command (PAL),
Tom Clancy's Rainbow Six - Rogue Spear + Mission Pack - Urban Operations (PAL), Sega Worldwide Soccer 2000 (PAL)

Input record and replay support for test automation
2019-06-23 12:17:24 +02:00
Flyinghead 862d892e89 texture corruption resulting from misaligned page unprotection 2019-06-21 23:31:45 +02:00
Flyinghead b226544d03 Merge remote-tracking branch 'origin/master' into fh/wince-dynarec 2019-06-21 14:37:32 +02:00
Flyinghead 9f66847469 name change 2019-06-20 21:50:19 +02:00
Flyinghead ad5ab6240b refactor vram lock/unlock code into new vmem.cpp functions 2019-06-19 14:49:14 +02:00
Flyinghead bd30752b86 Use auto& to avoid copy when iterating. Inline mmu_Read/WriteMemNoEx 2019-06-08 13:04:35 +02:00
Flyinghead 506756ea37 android: use common rend_thread() instead of a specific one
fixes the swap pending issue (double swap) on android
2019-05-25 18:48:00 +02:00
Flyinghead fa10b9ed2f Wrong offset in VramLockedWrite 2019-05-24 17:44:54 +02:00
Flyinghead e3d95f2258 wince: unify _vmem and vmem32. Use 4GB virtual space on 64-bit arch
On 64-bit architectures, _vmem first tries to allocate 4GB then falls
back to 512 MB.
The same virtual space is now used by _vmem and vmem32 (mmu)
2019-05-23 11:40:33 +02:00
Flyinghead c2c0215e1b Merge remote-tracking branch 'origin/master' into fh/wince-dynarec 2019-05-22 14:13:00 +02:00
Flyinghead d55d803c16 gles2 build fix 2019-05-21 19:11:47 +02:00
Flyinghead 3bf32f5adf Merge remote-tracking branch 'origin/fh/limitfps-option' 2019-05-21 11:42:07 +02:00
Flyinghead 74844c8940 disable per-pixel renderer on OSX 2019-05-21 11:26:18 +02:00
Flyinghead 433590b610 rend: Add per-strip TR sort option 2019-05-21 11:24:03 +02:00
Flyinghead 07b3f83343 audio: new option for automatic limitFPS
LimitFPS now can be enabled, disabled or automatic. The latter option
doesn't wait for audio if the emulator is running slow (over the last 2
secs)
Renamed `Audio Backend` to `Audio Driver` in the UI.
2019-05-20 19:12:28 +02:00
Flyinghead 8d078a923b wince: force aica.NoBatch (missing change) 2019-05-17 17:01:20 +02:00
flyinghead a6b773a23e
Merge pull request #1603 from reicast/fh/gles-dynload
Fix build errors on GL ES 2.0 platforms (RPi...)
2019-05-17 12:15:07 +02:00
drhilarius c92a997f11 Fixes for cmake + msvc
Also now builds .asm file for dynarec jit with msvc
2019-05-16 03:05:16 -07:00
Flyinghead 6053a465f7 fix win32 build 2019-05-15 13:07:52 +02:00
Flyinghead d9f2f9ae1d rend: define GLES2 and GLES3
GLES2 will only use GL ES 2.0 API functions, compile-time linked
GLES3 loads functions dynamically and supports both GL ES 2.0 and 3.0
2019-05-15 12:54:03 +02:00
Flyinghead 0dd555c5c8 Merge branch 'master' into fh/gles-dynload 2019-05-15 11:49:57 +02:00
David Guillen Fandos cbc2af29ad Fix small issues for mingw builds on Linux
Doenst like the paths, big surprise. I tipically build it like:

  make platform=win32 CXX=x86_64-w64-mingw32-g++ \
       WINDRES=x86_64-w64-mingw32-windres \
       CC=x86_64-w64-mingw32-gcc
2019-05-12 17:44:19 +02:00
David Guillen Fandos b74db6ef53 Moving vmem to separate files with a proper interface.
Works so far for Linux and Android, need to do some testing on Windows.
2019-05-11 22:09:52 +02:00
Flyinghead 3cd9736fca Ignore vscalefactor if < 1
fix black screen on some intel platforms
2019-05-08 21:33:49 +02:00
Flyinghead c330cdd88e fix scissor test and vertical scaling when using the Y scaler
Fixes missing bottom half-screen in Mr Driller (PAL, 60 Hz), Kaen Seibo,
Mahjong Taikai II Special, Pon'n'Music 1 and 2 when in TV Composite and
RGB.
Fixes stretched screen in Cho - Hatsumei Boy Kanipan.
2019-05-06 15:23:54 +02:00
skmp 3f8328da25
Merge pull request #1568 from reicast/baka/audio_options
AUDIO: Allow backend specific settings
2019-05-03 03:57:17 +03:00
Christoph "baka0815" Schwerdtfeger 99033e297c AUDIO: Implement integer and checkbox options
I remove "text" as a possibility for the moment as we're currently not having **any** text option.
2019-05-02 20:24:49 +02:00
Christoph "baka0815" Schwerdtfeger 684ba26ec0 AUDIO: Reorganize settings
Move DSP and FPS above the slug selection so that all slug specific settings are after the slug selection.
2019-05-02 18:41:45 +02:00
Flyinghead 810b8a59da wince: 32-bit virtual mem space
use fast mem read/write for x64 and arm64 dynarecs
2019-04-29 18:23:00 +02:00
David Guillen Fandos 3692ea7ae6 Improve stdclass.h/cpp support for non-Linux non-Windows platforms
Simplifies having implementation on platform separated files, which is a
pain for platforms which are not Windows but not Linux either (and yet
support pthreads).
Some minor cleanup here and there while we are at it.
2019-04-27 14:34:10 +02:00
Christoph "baka0815" Schwerdtfeger 0a3c361da2 AUDIO: Allow backend specific settings 2019-04-24 21:41:38 +02:00
david miller cc9d5ec55b CMake/Master working, tested on windows with Clang && MSC (x86,x64) 2019-04-12 16:59:39 -04:00
David Miller 3d1b82854e
Merge branch 'master' into fh/win32-winresize 2019-04-12 13:03:30 -04:00
flyinghead 8cdbb9c2fd
Merge pull request #1548 from reicast/fh/float-vmu
Float VMU option. Android renderer native thread. 90° screen rotation option. AW fixes.
2019-04-10 21:53:41 +02:00
Flyinghead 0445542ec2 gl: 90deg screen rotation option. Fix scissor/clip wrt scale/stretch
90deg CC screen rotation option for some arcade games
Fix scissoring and clipping when screen scaling/stretching/rotating
Clear shader cache when screen rotation changes
Properly delete all gl programs and shaders when needed
2019-04-09 15:18:48 +02:00
Flyinghead 0a6f503efc Don't use screen stretching parameter for RTT 2019-04-08 21:51:59 +02:00
baka0815 56374377dd
Merge pull request #1543 from reicast/baka/select_audio
AUDIO: Make backend configurable
2019-04-08 18:33:53 +02:00
Flyinghead f5a60ee5f1 New option to display VMUs in game 2019-04-08 15:54:37 +02:00
Flyinghead 47bb509f02 Add horizontal screen stretching option
fix scissor test when scaling/stretching
fix infiniloop when starting a game fails
2019-04-08 00:21:06 +02:00
Flyinghead 408d16b299 imgui: clear color buffer before drawing background tex
fixes blinking edges on nvidia shield and other glitches
2019-04-07 23:33:24 +02:00
Flyinghead 4b7e4f4677 custom textures: fix race conditions 2019-04-06 19:38:00 +02:00
Christoph "baka0815" Schwerdtfeger 16f9200bfa AUDIO: Allow selection of backend 2019-04-05 22:22:46 +02:00
Flyinghead d524e3381d only update the fog texture if fog is enabled 2019-04-04 22:54:36 +02:00
Flyinghead 05df2f06e2 imgui: use glcache, don't save/restore state
gl4: backport shader map changes from gl renderer
2019-04-04 22:26:21 +02:00
Flyinghead 3a73938240 UI for fog disable option 2019-04-04 20:05:13 +02:00
Flyinghead ec95c95b89 add option to disable fog effects 2019-04-04 19:26:15 +02:00
Flyinghead 994d52e012 gl: put shaders in a map and set uniforms once for all before each frame 2019-04-04 19:08:21 +02:00
Flyinghead 382279b12e imgui: use glcache 2019-04-04 19:07:09 +02:00
Flyinghead f83a06d9c0 glcache was always disabled 2019-04-04 19:06:46 +02:00
Flyinghead 125cccaa5a gles: only use GLES3 functions on android 2019-04-04 08:10:32 +00:00
Flyinghead eadf3047c0 gles: no runtime load of libGLESv2 on non-android platforms 2019-04-03 20:24:28 +00:00
flyinghead 7f0489ff28 visual studio compatibility
no modem support
no zip or 7z support so no naomi for now
hacked a .asm file as vs doesn't support inline assembly -> code dup
2019-03-30 19:26:05 +01:00
flyinghead 26f02e22da
Merge pull request #1531 from reicast/fh/smc-option
dynarec: add option to control smc code checks: faster, fast, full
2019-03-30 13:27:45 +01:00
flyinghead c02a6969df win32: add app icon and version resource 2019-03-30 12:32:37 +01:00
Stefanos Kornilios Mitsis Poiitidis af6993a819 dynarec: Refactor smc-option a bit 2019-03-30 07:16:44 +01:00
Flyinghead 7f44bb9956 vmu: pass bus id and port to callback 2019-03-29 19:54:59 +01:00
Flyinghead 6438a402df dynarec: add option to control smc code checks: none, fast, full 2019-03-29 19:23:37 +01:00
Flyinghead 8fb1d80751 gui: display VMUs on pause 2019-03-29 17:35:00 +01:00
Flyinghead 0a301a4758 android: use a single activity with simple layout
remove most of the android ui remains
NativeGLActivity is the unique activity
handle window focus in/out events
refresh folder list when access to external storage is granted
record audio permission request must not overlap with external storage
perm req
2019-03-27 21:09:53 +01:00
Flyinghead 1ef8caff88 include TCW in HD texture hash
Soul Calibur has textures sharing the same data but with different
formats
2019-03-26 21:14:39 +01:00
Flyinghead a3f9764936 Add Boot Dreamcast BIOS option
Reload roms/flash when starting a new game
Better naomi reset (still have issues)
Fix error reporting with Naomi
2019-03-26 17:20:44 +01:00
Flyinghead 22b08bea74 maple: disconnect/reconnect maple devices when config changes
Wait 100ms between disconnect and reconnect to let game detect it
2019-03-25 18:46:57 +01:00
Flyinghead c809c6c56f Merge branch 'fh/mymaster' into fh/master-merge 2019-03-25 16:47:47 +01:00
Flyinghead fe30fe1e8e OIT: reset scaling before drawing final quad
Fixes Wacky Races and Nomad Soul
2019-03-18 22:21:21 +01:00
Flyinghead 69484e4ae8 start game passed as command line argument 2019-03-13 21:54:04 +01:00
Flyinghead 54e9dc8338 Do not scale clipping values with rtt-upscale if rendering to vram
Enable RTT-to-vram for Flag to Flag (rear view mirrors)
2019-03-08 20:06:17 +01:00
Flyinghead 45ed8cbc02 android: install buttons.png and reload it. Record audio permission.
install buttons.png when saving settings (home dir may have changed)
reload buttons.png if previous load failed when rendering
hide surface view when microphone is enabled to ask for permission
2019-03-05 23:50:52 +01:00
Flyinghead 91c7417c22 android: replace /mnt/media_rw by /storage for portable storage 2019-03-05 16:56:19 +01:00
Flyinghead 11416990de Show home directory in settings and allow to change it (android only) 2019-03-05 12:45:11 +01:00
Flyinghead ee0161e9c4 build fix 2019-03-05 03:15:11 +01:00
Flyinghead ca58c323cd Moved most android settings into the new gui
virtual gamepad editing and settings
home directory setup during onboarding
start content browser at app startup after getting permission
Use imgui osd to display error messages (msgboxf)
Added About tab in settings with version, git hash and Send logcat
button (android)
2019-03-05 00:54:01 +01:00
Flyinghead 71ea60cc36 android: use pseudo-root folder to list storage locations
still missing changes in java and android.cpp
2019-03-04 21:49:36 +01:00
Flyinghead e0de4210ac VJoy: decouple from emulator rendering. Use same code for gl and gl4 2019-03-02 14:20:05 +01:00
Flyinghead 41e4c805de OSX: support new input system. Use existing emulator thread.
Added new OSD notification feature, combined with FPS counter, moved to
GUI
OSX: don't create and manage a new emulator thread but use existing one
OSX: keyboard and mouse use new input system
2019-02-27 23:02:25 +01:00
flyinghead b1bb89909e win32 fixes
use imgui id to allow multiple contents with same name
2019-02-25 19:15:59 +01:00
Flyinghead 492e771272 Content browser (WIP)
Get rid of the renderer thread. It is now the main/UI thread on all
platforms. The emulator runs in a separate thread.
Content browser displayed at startup.
2019-02-25 17:52:53 +01:00
flyinghead 94f346a1e0 win32: use new input system 2019-02-21 17:57:51 +01:00
Flyinghead 4ae11053ce use smart pointers to avoid crash when a gamepad is disconnected 2019-02-21 14:49:27 +01:00
Flyinghead 8e4e2c67f2 evdev: use new input system. detect hot-plugged devices with udev 2019-02-21 12:46:00 +01:00
Flyinghead 26e43ed9bd Fix scissor test when screen scaling is on
Use full screen for gui settings
2019-02-20 23:22:58 +01:00
Flyinghead 0f1630a1b7 Use proper VAOs for the per-pixel renderer 2019-02-20 19:22:24 +01:00
Flyinghead c98b685872 android: old GLSurfaceView view/activity working again
EmuThread now a top-level class shared by both views
2019-02-20 16:59:50 +01:00
Flyinghead f4da389665 android: use gl3w loader and EGL 2019-02-20 00:09:34 +01:00
Flyinghead 3a847bf4da use GL_UNSIGNED_BYTE instead of GL_UNSIGNED_INT_8_8_8_8 2019-02-19 23:15:34 +01:00
flyinghead 9ac43772fd win32 build fixes 2019-02-19 22:35:29 +01:00
Flyinghead 054b4662fd getting rid of `#ifdef GLES` to use the same code for all envs
Added latest GL 4.6 header files
2019-02-19 21:40:21 +01:00
Flyinghead 1276a58d87 move imgui renderer into rend/gles. Fix gl4 term function 2019-02-19 17:43:25 +01:00
Flyinghead a808a8f36f dynamically bind GLES functions
Compile with GLES 3.2 headers but no library
split gl_term into generic and platform-/loader-specific stuff
allow full desktop GL context creation with EGL
2019-02-19 17:21:50 +01:00
Flyinghead 9526fada5e Added RenderLastFrame() to Renderer interface
implement screen scaling for per-pixel renderer
fix output FBO not being freed/recreated when GL context is reset
refactor DrawQuad on per-pixel renderer
2019-02-19 11:36:59 +01:00
Flyinghead 810182c4fe Scale down native resolution setting 2019-02-19 00:49:24 +01:00
Flyinghead e2c839dde3 GLES: detect gl extensions and use packed depth/stencil buffer for RTT 2019-02-18 17:42:07 +01:00
Flyinghead e426bc8058 android: call eglMakeCurrent() before rendering or deleting context
Flush texture cache and terminate gui before releasing the EGL context
2019-02-18 13:14:12 +01:00
Flyinghead 666205d2a1 Define gl_term for all platforms. Delete all textures on context close. 2019-02-18 09:35:27 +01:00
Flyinghead 5701227e55 build fix 2019-02-18 00:38:11 +01:00
Flyinghead 4c1acfeab1 android: native egl surface
fps counter using imgui
restart emulator with new game in same process
2019-02-18 00:25:06 +01:00
Flyinghead dcbdf3a59d set glClearStencil to 0 before clearing, just in case
fix printf format string
2019-02-16 14:30:08 +01:00
Flyinghead 5e65d2a19d Per-game configuration: create/delete from gui
Removed unused settings
Per-game setting can override any setting
Built-in per-game settings can be overriden
2019-02-16 14:25:54 +01:00
Flyinghead edba937b6f Save last rendered frame if gl driver doesn't preserve the swap buffers
Fixes flashing screen with nvidia shield when no frame is rendered
2019-02-14 12:40:17 +01:00
Flyinghead 3320669bd4 android: use new input system
support for gamepads and mice on android
2019-02-13 20:29:49 +01:00
Flyinghead e82b9c9b18 android: remove deprecated GL2GLINative activity 2019-02-12 17:57:11 +01:00
Flyinghead 85b428c2e1 SDL: gamepad hot-plugging 2019-02-12 15:56:44 +01:00
Flyinghead 8b5c2a3fac New input handling/mapping system, SDL only for now. Gui wip 2019-02-12 11:30:24 +01:00
Marcel Szewczyk d370fd6709 PR requested changes; Adreno 506 generalized to Adreno 2019-02-11 19:02:52 +01:00
Marcel 3b951c0232
Vertical scale factor support added - typo fix 2019-02-11 11:15:01 +01:00
Marcel Szewczyk 8d4188159e Vertical scale factor support added - fixes Crazy Taxi pause menu background positioning 2019-02-10 11:51:14 +01:00
Marcel Szewczyk 7869a84f88 Additional fixes/cleanup 2019-02-10 01:10:51 +01:00
Flyinghead 66dc13b376 gui: help tooltips 2019-02-09 22:15:08 +01:00
Flyinghead ee1caeb6c2 gui: improve layout and touch device ux 2019-02-09 21:20:03 +01:00
Marcel Szewczyk 8893f97435 Handle odd screen resolution (POCOPHONE fix) 2019-02-08 22:20:02 +01:00
Marcel Szewczyk a65436cc6c Handle dynamic resolution change during emulation (LRR mode) 2019-02-08 22:15:45 +01:00
flyinghead 3cdd39170d win32: call os_DoEvents on the emu/main thread and other fixes 2019-02-07 19:20:10 +01:00
Flyinghead 82f156f143 Gamepad support to GUI. Wire evdev, SDL and windows
Allow dc_stop() to work even when the emu is paused
2019-02-07 16:59:24 +01:00
Flyinghead 598ea65c16 Android: use boolean prefs when possible. OSX build fix
Use jboolean instead of jint
Fix crash when navigating UI with popup keyboard's next button
Remove unused UI (PVR rendering)
OSX fixes
2019-02-06 22:28:04 +01:00
Flyinghead 1802c022fd UI with ImGui 2019-02-06 19:57:13 +01:00
Flyinghead 78fd92f95a No custom textures if no threads 2019-02-06 18:50:56 +01:00
Marcel Szewczyk b26b12054b Merge branch 'master' of https://github.com/reicast/reicast-emulator into mar753/render-to-texture-with-options 2019-02-06 17:39:12 +01:00
Flyinghead 2ff6d1b819 Fix render to texture buffer alpha channel for 1555
Saturate alpha when strictly greater than threshold, not >=
Don't put rendered texture in cache if rendering to texture buffer
(VRAM)
Fixes Skies of Arcadia start menu

Restore VRAM lock if null
2019-02-03 17:53:02 +01:00
Marcel Szewczyk 377fb6ace0 rend.ResolutionPercentage acceptable values are now from 1 to 100; naming fix 2019-01-25 16:43:46 +01:00
Marcel Szewczyk aa3475738a Revert "LRR: Support for OpenGL 2 added"
This reverts commit c33c0cade8.
2019-01-20 11:05:53 +01:00
Marcel Szewczyk 88b9debc89 Revert "RTT: Support for OpenGL 2 added"
This reverts commit 86339c337d.
2019-01-20 11:03:30 +01:00
Marcel Szewczyk 86339c337d RTT: Support for OpenGL 2 added 2019-01-18 19:46:46 +01:00
Marcel Szewczyk c33c0cade8 LRR: Support for OpenGL 2 added 2019-01-18 18:42:46 +01:00
Marcel Szewczyk f0c4fe6fdc Additional improvements/fixes 2019-01-18 18:39:48 +01:00
flyinghead ed3f866835 win32 build fix 2019-01-16 17:42:36 +01:00
Marcel Szewczyk 77d997401b RTT: Performance improved for DC RGB565 and ARGB4444 textures - glReadPixels() removed 2019-01-14 20:42:48 +01:00
Marcel Szewczyk 6499a82513 RTT: Additional small fixes 2019-01-14 19:32:56 +01:00
Marcel Szewczyk a9affb8ac2 RTT: Stencil support for full OpenGL >= 3.0 added 2019-01-13 19:04:33 +01:00
Marcel Szewczyk 82bbe690b1 Stencil support for OpenGL added - requires OpenGL >= 3 2019-01-13 17:33:23 +01:00
Marcel Szewczyk 27360a1c41 Lgtm warnings fixed 2019-01-12 13:17:43 +01:00
Marcel Szewczyk 7e900a4e86 Merge branch 'master' of https://github.com/reicast/reicast-emulator into lowering_rendering_resolution_option 2019-01-09 00:01:03 +01:00
Marcel Szewczyk e285d7f9ba Additional improvements to lowering rendering resolution feature 2019-01-08 23:35:48 +01:00
Marcel Szewczyk 8571be39fd Rendering resolution lowering (horizontal and vertical) is possible from the configuration menu 2019-01-07 23:55:43 +01:00
Marcel Szewczyk 2aadb3cdd4 RTT: Stencil support added (extension required) 2019-01-07 21:37:16 +01:00
Marcel Szewczyk 7e26a172f4 Changing screen resolution: Rendering quad created 2019-01-06 22:16:21 +01:00
Flyinghead 15fa475f8a Move DumpTexture() to CustomTexture and other fixes 2019-01-02 09:33:19 +01:00
Flyinghead ecb689051f Custom textures fixes 2018-12-30 22:23:23 +01:00
Flyinghead 9a3dd1c2d1 build fix 2018-12-30 19:44:18 +01:00
Flyinghead 3f98c2ba3c Don't delete a texture when async load is pending 2018-12-30 19:19:27 +01:00
Flyinghead e7fee139e4 build fix 2018-12-30 18:50:24 +01:00
Flyinghead dd280ee24d Custom textures loading and dumping 2018-12-30 18:42:55 +01:00
Marcel Szewczyk 302bfcd582
Merge branch 'master' into mar753/render-to-texture-with-options 2018-12-30 18:26:31 +01:00
Marcel Szewczyk 7450c247d3 Minor formatting fixes 2018-12-30 12:17:39 +01:00
Marcel Szewczyk 127072ec8d RTT: Fixed slow rendering of RGBA5551 framebuffer format on Adreno 506 2018-12-30 12:16:34 +01:00
Marcel Szewczyk 0761ee713e RTT: glReadPixels() functions are now compatible with OpenGL ES 2.0 2018-12-30 12:13:45 +01:00
Marcel Szewczyk e981dd14f8 Render to texture full multipass support added; RTT stride textures support added 2018-12-30 12:08:51 +01:00
Flyinghead 655d36a719 Convert vertex indices to u16 wih GLES2
GLES2 doesn't support 32-bit indexes so convert them to u16 when needed
2018-12-13 22:26:25 +01:00
Flyinghead 5664bfb9b6 pvr: use u32 for vertex indices to avoid overflow
Fixes alpilot glitches
2018-12-13 10:57:51 +01:00
Flyinghead 9fe13e20e8 Clip high z vertices
Fixes Soul Calibur intro bogus triangles
2018-12-06 20:46:23 +01:00
Flyinghead 93436c5ec1 Partially revert previous commit as it causes problems with RTT 2018-11-30 18:15:47 +01:00
Flyinghead 284dcf35a7 Add StrideSel to texture cache key as well 2018-11-30 18:06:32 +01:00
Flyinghead 63337d5178 Add ScanOrder to texture cache key
Fixes corrupted title screen in Grandia II
2018-11-30 17:56:57 +01:00
Flyinghead 7dc5fef352 Use xxhash for palette hashing
15 us -> 6 us
2018-11-30 15:24:04 +01:00
Flyinghead 2ef90152c9 GL: add #if in shader for trilinear filtering 2018-11-23 22:33:51 +01:00
Flyinghead eef297706c Bogus triangles due to huge negative z
Per-pixel only
Fixes vathlete
2018-11-19 15:38:44 +01:00
Marcel Szewczyk 4d39c10c91 Build fixes 2018-11-11 23:22:17 +01:00
Marcel Szewczyk 5f19eb7ae8 Rtt menu options are now handled by GLES 2018-11-11 22:01:18 +01:00
Marcel Szewczyk 4fd9de54ce Added rtt menu options 2018-11-11 17:55:18 +01:00
Flyinghead 4bce2bbbbf OSX wants GLSL 1.4 or later 2018-10-30 11:48:44 +01:00
Flyinghead 6177a5b33a Clear texture cache on exit 2018-10-29 18:02:47 +01:00
Flyinghead ffb72cd0b6 Texture-based fog table 2018-10-29 00:31:24 +01:00
Flyinghead 96157de639 Enable log2 depth at runtime when supported (GL, GLES 3)
Fix issues with pixel scaling and scissoring.
Wacky Races should not be playable.
2018-10-28 22:09:36 +01:00
Marcel Szewczyk f309a59fac Render to texture single pass implemented 2018-10-28 20:16:45 +01:00
Flyinghead 77fae1ef09 Backport changes from libretro 2018-10-05 15:07:30 +02:00
Flyinghead 124f920170 Backport GL 2.0 support from libretro core 2018-10-04 22:37:35 +02:00
Flyinghead 8116072f7e Refactor shader selection/compilation. Avoid using glcache for texture
in GL4 renderer.
2018-10-04 15:55:41 +02:00
Flyinghead 7203681202 Less code dup 2018-10-04 14:49:20 +02:00
Flyinghead 3a929aeeb1 Terminate A-buffers cleanly. Call renderer Term() at shutdown.
Less code dup.
2018-10-04 14:04:15 +02:00
Flyinghead b8ae998252 If GL4 renderer is not supported, fall back to default. Fix SDL GL init. 2018-10-04 13:37:45 +02:00
Flyinghead 0260b00c00 Less code dup 2018-10-04 12:32:26 +02:00
Flyinghead 1dfc9902b7 Share scale_x and scale_y between GL and GL4 renderers. Don't use
ShaderUniforms in OSD.
2018-10-04 12:03:00 +02:00
flyinghead ef5e8593fa GL4: Initialize atomic buffer correctly. Limit size of pixel buffer.
SetupMainVBO should be static
2018-10-04 10:58:33 +02:00
Flyinghead 3f791d6f04 Merge OIT renderer into master 2018-10-04 10:29:23 +02:00
Flyinghead 0627530e33 GL: avoid white lines on the screen sides due to rounding 2018-10-02 12:28:42 -04:00
Flyinghead 5d8d1bd107 GL: Partial redraws. OSD fixes
EGL: Request the surface to be preserved between two rendering
Clear the sides of the screen when not rendering widescreen.
Do not re-create GL resources multiple times (android)
2018-09-30 12:39:47 +02:00
Flyinghead 9de8379434 GL: clear gl framebuffer before drawing a direct FB write 2018-09-29 18:10:43 +02:00
Flyinghead 407a579bfc GL: take pixel scaling into account for OSD buttons and text coords
Fixes OSD with Wacky Races and JoJo's Bizarre Adventure
2018-09-29 14:48:18 +02:00
Flyinghead c49e6c17d0 gl: isinf() issues with GLES3. Use it with GL only
Fixes black screen in PSO and Sonic Adventure 2 on Android
2018-09-27 21:45:03 +02:00
Flyinghead 48225e7516 Don't serialize uneeded stuff. Fix windows build. 2018-09-20 22:00:03 +02:00
Flyinghead f355dda6a4 savestates: build fixes 2018-09-20 20:06:54 +02:00
Flyinghead 7ce4fccb37 Merge remote-tracking branch 'origin/master' into fh/mymaster 2018-09-20 17:28:41 +02:00
Flyinghead df61073c39 Clip textures that extend past the end of VRAM.
Only load the valid portion of it.
Fixes Shenmue Space Harrier mini-arcade game.

Disable verify on non-square twiddled textures for Quake 3.
2018-09-18 12:01:16 +02:00
Flyinghead 663b77cee6 Fix OpenGL compile error with VMWare WS14 driver 2018-09-17 13:02:07 +02:00
Flyinghead 2a8591798f Only clamp color if tsp.ColorClamp is set. Thanks p1pkin 2018-09-12 17:50:42 +02:00
Flyinghead e54ac36544 Texture cache optimization for frequent palette updates
Some old 2D games change palettes very frequently, which causes the
texture to be updated for each render.
This change uses a hash of the palette to detect changes, and include
the palette type in the cache key to distinguish textures of different
depth.
2018-09-06 12:11:55 +02:00
Flyinghead 4a08856775 Render-to-texture upscaling must be accounted for when clipping 2018-09-05 15:07:30 +02:00
Christoph "baka0815" Schwerdtfeger d3de815a0a Softrend: clean up if/else 2018-09-04 21:01:03 +02:00
Christoph "baka0815" Schwerdtfeger f96e0f1e5d Softrend: Error if no softrenderer backend found 2018-09-04 20:41:25 +02:00
Christoph "baka0815" Schwerdtfeger 981eb1b5ef Softrend: works only with X11
If X11 support is not there, reicast doesn't compile because the softrenderer needs it.
Use #ifdef to do X11 only if SUPPORT_X11 is set.
2018-09-04 19:08:39 +02:00
Flyinghead f202b3b143 Add new ExtraDepthScale setting to scale huge Z values.
Use 1e26 for Samurai Shodown 6 (NAOMI)
2018-09-04 18:37:59 +02:00
Flyinghead 239e178226 Simplify framebuffer drawing and fix OSD 2018-09-03 15:05:37 +02:00
Flyinghead 228b40136f Only do color clamp when fog is on 2018-09-02 22:57:59 +02:00
Flyinghead 96e9bce0e0 (Fog) Color clamping support 2018-09-01 12:56:37 +02:00
Flyinghead e59d7eaf3d Direct framebuffer writes support 2018-08-26 16:58:10 +02:00
Ender's Games 75215ec0d1 Core: Address some obvious lgtm issues 2018-08-21 02:52:03 -04:00
Abandoned Cart 62837f4db0
Merge pull request #1235 from reicast/fh/alpha-pt-rounding-fix
Float math in alpha calculation causes some punch-through textures to…
2018-08-21 00:09:06 -04:00
Flyinghead ba78184461 Fix per-polygon sort option 2018-08-20 15:51:55 +02:00
Ender's Games 8d9d40dffc Core: Changes provided by Android NDK compiler 2018-08-19 01:54:15 -04:00
Flyinghead ffb25a470d Fix Wacky Races missing half screen 2018-08-17 18:33:24 +02:00
Flyinghead f3bbb06d8c GL: Missing float precision qualifier in Bump Map calc 2018-08-13 18:21:52 +02:00
Flyinghead 65a759b3fe Merge branch 'fh/mymaster' of https://github.com/reicast/reicast-emulator into fh/mymaster 2018-08-07 09:45:10 +02:00
Flyinghead c0c06ed8ff Renderer: select shader at runtime based on the GL context version
The GL renderer now detects the version of the current GL context and
compiles the shaders accordingly. Supports GLES2, GLES3 and desktop GL.
Android: use 8,8,8 framebuffer instead of 5,6,5. Requests a 8-bit
stencil buffer (modifier volumes)
2018-08-07 09:44:52 +02:00
Flyinghead 7ff93f9256 OSX: disable OpenMP as it's not available. Time to deprecate Apple... 2018-08-04 19:10:53 +02:00
Flyinghead fddf56c5a2 Fix TA overrun detection. Bump up verts to 2 MB, idx to 120K and TR
polys to 8K
2018-08-03 09:55:53 +02:00
Flyinghead feaca43b25 Build fixes 2018-08-02 18:44:51 +02:00
Flyinghead 85781e96ec Use OpenMP instead of ctpl for multithreading 2018-08-02 17:31:38 +02:00
Flyinghead 3a7a08f3fb Do not clear the framebuffer before rendering. Fix scissoring coords.
The framebuffer is cleared by the background plane using global clipping
coordinates. This allows multiple rendering to different locations on
the framebuffer.
Fixes flashing menus in Vanishing Point, loading screens in Test Drive
Le Mans and Vigilante 8.
Better rear view mirror in Metropolis Street Racer.
2018-08-02 17:20:18 +02:00
Flyinghead 31d8c1f091 Backport texture upscaling with xBRZ 2018-08-01 19:43:01 +02:00
Flyinghead 1533091151 Clipping: do pixel scaling only when not rendering to a texture 2018-07-30 18:57:32 +02:00
Flyinghead 63a70e0f62 isinf not available in GLES 2 2018-07-29 19:24:14 +02:00
Flyinghead 0e881254ef Fix clipping when pixel_double is on.
Fixes 4 Wheel Thunder split screen issue.
2018-07-29 17:31:14 +02:00
Flyinghead b1686a8f6a Do not allow inf z value in the vertex shader. Clamp w to a very small value.
Fixes ground triangles clipping in Soulcalibur intro sequence.
2018-07-24 16:55:48 +02:00
Flyinghead 07a36ee256 avoid named struct initializers 2018-07-24 11:22:56 +02:00
Flyinghead 2e08d7a6c9 round() not available in GLES2. Using floor() instead 2018-07-23 20:55:53 +02:00
Flyinghead 86235bb4a3 Float math in alpha calculation causes some punch-through textures to have alpha noise. 2018-07-23 15:15:05 +02:00
Flyinghead 4b5e863aa7 Use log2 depth scaling in fragment shader when available.
Currently a compile time option (!GLES). Fixes many depth issues (Dynamite Cop, Cannon Spike, etc.)
2018-07-23 10:25:55 +02:00
Flyinghead 09eab8cb03 Saturate alpha channel for YUV textures 2018-07-18 22:35:55 +02:00
Flyinghead e637dcf8f9 reinstate line deleted by previous commit 2018-07-18 16:07:17 +02:00
Flyinghead cc8569fcf8 Fix 8888 high-quality textures on GLES/arm
GLES doesn't support uint 8888 so bytes must be swapped on little endian
architecture.
2018-07-18 16:01:40 +02:00
Flyinghead dc835dd64d Dump shaders source if compile fails 2018-07-16 16:52:11 +02:00
Flyinghead 0284d635d2 Upscale rendered-to textures
Increase the size of RTT textures by a given integer factor. Defaults to
1.
This gives much better quality textures, particularly visible when used
fullscreen for transition or pause screens.
2018-07-16 16:28:48 +02:00
Flyinghead bb2d860902 Use red channel for fog table in GL but continue using alpha channel in
GLES. Alpha channel is supported only in GL compat mode, not core.
2018-07-14 10:48:16 +02:00
Flyinghead 87f8c5194f Better fix for texture cache key needing StrideSel
StrideSel and ScanOrder are no longer part of the texture cache key
since that breaks RTT texture matching. But they are updated at lookup
time so they will be used if the tex is updated later.
Fixes RTT-based xfade screens in Skies of Arcadia.
2018-07-11 22:08:10 +02:00
Flyinghead d5d711cf32 Clipping scissor fix: x offset must only be added once 2018-07-11 20:06:43 +02:00
Flyinghead 1be4203ffe Far plane is at depth 0 in classic renderer. 2018-07-09 23:25:18 +02:00
Flyinghead c035635341 Clipping scissor Y coordinates must be inverted when rendering to screen
Fixes top of screen missing in San Francisco Rush 2049
2018-07-09 23:22:13 +02:00
Flyinghead 889f722e73 Fix PAL4 textures 2018-07-09 19:20:33 +02:00
Flyinghead 18b2d8273f Improve paletted and YUV texture quality.
Paletted textures using a 32-bit palette and YUV textures are now
converted to 8888 format, which results in a lossless conversion.
Fixes background texture quality in Alone in the Dark.
2018-07-09 14:59:53 +02:00
Flyinghead a89ff1e432 Ignore depth func for autosort TR polys.
This was a remain of the previous Always depth hack.
2018-07-07 08:46:29 +02:00
Flyinghead e067534f26 When sorting translucent triangle, keep the third vertex in place.
In flat shading mode, the third vertex of a triangle defines its color
so we must maintain its index.
Fixes the remaining color polygons seen in Evolution - The World of
Sacred Device.
2018-07-06 20:02:43 +02:00
Flyinghead a1997637bb Trilinear filtering limited implementation.
Fixes lighter field areas in NFL 2K2
2018-07-03 20:36:13 +02:00
Flyinghead 3c4913a35a Merge remote-tracking branch 'upstream/master' 2018-07-03 15:46:25 +02:00
Flyinghead 69263eddc0 Bump mapping support 2018-07-02 15:23:47 +02:00
Flyinghead 295395c680 Flat shading support 2018-07-01 20:25:06 +02:00
Flyinghead 3ddcc272bf Fix autosort/presort mode selection. Per render pass sort mode.
The previous algorithm to determine the sort mode for TR polys was
faulty. And the sort mode can vary between passes for multipass
rendering. This also removes the need for the hack to support Always
depth mode with autosorted TR polys. Should fix the Resident Evil 3 menu
problem.
2018-06-30 12:33:11 +02:00
Flyinghead 7ecd384612 StrideSel is now part of the texture cache and must be set by RTT 2018-06-29 19:03:43 +02:00
Flyinghead f18aa63a67 Add stride and scan order to texture cache key as they are used to update the texture
Fixes glitchy FMV title screen in Bomberman Online
2018-06-29 11:59:48 +02:00
Flyinghead a94f01ee78 Force autosort TR triangles using depth func Always to be drawn on top of others
When autosorting triangles, ignore the depth of triangles using the depth func Always and force
them to be on top. Seems to help Psyvariar 2.
2018-06-28 13:21:40 +02:00