Commit Graph

825 Commits

Author SHA1 Message Date
Flyinghead a17a0bae3b Utility to display a single frame 2018-07-16 17:19:45 +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
topu 90304f0c67 Fix controller support when building with GCC8 2018-07-15 13:59:37 +02:00
Stefanos Kornilios Mitsis Poiitidis 1ada311513
Continuous delivery to play store beta from travis
Merge pull request #1210 from reicast/skmp/reicast-beta-cd

Should build and deploy from master only

*crosses fingers*
2018-07-14 19:42:31 +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 2d3fd59e04 Revert f13b366e8d57c15a6a97cc0721d68ddb5268385f: the fixNaN function is
completely bogus and the correct one doesn't have any effect.
2018-07-14 09:13:56 +02:00
Flyinghead 4fd233aca0 Disable div32 matching for Star Wars I - Racer. Fixes the invisible
suns.
2018-07-13 23:24:47 +02:00
Flyinghead f13b366e8d Set the value for NaN according to the SH4 specs
The SH4 sets the signaling bit to 0 for qNaN: 7fbfffff instead of the
usual 7fffffff. Same games seem to rely on this.
Fixes Fur Fighters freeze and missing geometry in game.
2018-07-13 18:57:51 +02:00
Flyinghead ea35eeb728 Fix FTRC op in both interpreter and dynarec with respect to Inf and NaN
The -ffast-math gcc option implies the -ffinite-math-only option, which
produces wrong results with Inf and NaN. Use integer math to detect the
sign of float numbers in FTRC to avoid these issues.
Also the upper cut off value for conversion was apparently wrong.
Also fixed the x86 dynarec but not tested.
Fixes wrong car color in Tokyo Xtreme Racer car selection screen.
2018-07-13 12:02:32 +02:00
Flyinghead df35e95e57 Eldorado Gate Vol.1 needs EGHack 2018-07-12 19:48:39 +02:00
Flyinghead 8a9313270f Demolition Racer needs DisableDivMatching 2018-07-12 19:41:02 +02:00
Flyinghead e18eaf666d Support for 2448-byte sectors
Pier Solar and the Great Architects CDI uses an unknown type 4 sector of
2448 bytes. This hack allows the CDI to be read. Not sure about the
correctness.
2018-07-12 11:10:11 +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
barbudreadmon 8e7b6b72e1
(Naomi) Fix for "The Rumble Fish 2"
As confirmed by MettalliC, the correct value is 32KB
2018-07-11 18:14:12 +02:00
Flyinghead 527628d366 weird character again 2018-07-10 18:08:27 +02:00
Flyinghead 648988e622 don't log div32 matching and some GDRom ops 2018-07-10 14:36:28 +02:00
Flyinghead 92e16d436e PVR DMA: VRAM->System RAM transfer was handled the other way around 2018-07-10 12:07:35 +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 6df46b1d83 Enable Naomi eeprom reading and writing 2018-07-09 16:24:37 +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
Stefanos Kornilios Mitsis Poiitidis 5525d5dde2 core: Android studio fixes
- Clang edge cases for shifts
- Avoid generating relocs by not using global symbols in ngen_arm.S (fixes #1109)
2018-07-09 09:31:45 +02:00
Greg V 5d69e19ed1 Build on FreeBSD (and potentially other BSD) 2018-07-08 15:43:10 +03:00
Stefanos Kornilios Mitsis Poiitidis 03170fc0ef
Merge pull request #1163 from reicast/lk/android-studio
Android Studio Conversion
2018-07-08 11:12:16 +02:00
Stefanos Kornilios Mitsis Poiitidis ae2b5e33b5 core.mk: Revert `-O0 -g` to `-O3` 2018-07-08 02:22:32 +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 3cac9134ce Don't use the window title for debug info as it delays frames 2018-07-06 22:38:48 +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 0df91770d2 Increase dynarec code cache size to 10 MB
Fixes frequent code cache invalidation due to lack of space, which kills
performance (Extreme Sports)
2018-07-06 17:19:37 +02:00
Flyinghead 315205caa9 Add setting to disable div32 matching (Pro Pinball Trilogy)
div32 matching doesn't handle division by zero and edge cases, which
causes crashes with some games.
Setting enabled by default for Pro Pinball Trilogy.
2018-07-06 09:49:39 +02:00
Flyinghead 517c225c39 Better hack for TA data sent before ListInit.
Instead of ignoring TA data if ListInit hasn't been called, call
ListInit then accept the data. The data will still be probably ignored
but end of list interrupts are sent so game won't hang.
Fixes hang in King of Fighters New Wave (Naomi).
2018-07-05 19:57:30 +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 cbaaaaf970 Do not crash if data is sent to TA before calling ListInit, just ignore
it.

Fixes Conflict Zone - Modern War Strategy.
2018-07-03 15:24:48 +02:00
TwistedUmbrella 64656a6eb3 rec_x64: Avoid recipe for target failed error 2018-07-03 09:09:30 -04:00
TwistedUmbrella 295570a9f3 Android: resolve posix_memalign NDK inconsistency 2018-07-03 08:45:39 -04:00
Flyinghead e7d1688ae5 Round TA_ISP_BASE to 1 MB.
Some games do not align TA_ISP_BASE on 1 MB boundary so the rendering
context is not found at render time. Fixes black screen in NFL 2K2, NBA
2K2, Oooga Booga, Floigan Bros. and probably more Visual Concepts games.
Sadly Ooga Booga still crashes.
2018-07-03 14:22:44 +02:00
Flyinghead 69263eddc0 Bump mapping support 2018-07-02 15:23:47 +02:00
Flyinghead 99af84d7fb Background plane should be fogged as well. Fixes purple sky in Dragon's
Blood/Draconus.
2018-07-02 10:22:26 +02:00
Flyinghead 295395c680 Flat shading support 2018-07-01 20:25:06 +02:00
Stefanos Kornilios Mitsis Poiitidis f45f888d0b Use platform specific first argument register 2018-07-01 12:15:59 +02:00
Flyinghead 18c59c1166 Fix read_frame/dump_frame for now missing autosort param 2018-06-30 13:51:03 +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 d980f505ad Fully revert f571d6c594
Fixes NAOMI bios flickering
2018-06-29 17:16:39 +02:00
Flyinghead a52654e2de Added some game ids to per-game settings 2018-06-29 17:10:35 +02:00
Flyinghead 17a34c079c Backported EG hack. Courtesy of libretro.
See 13dacb0021
2018-06-29 17:04:07 +02:00
Stefanos Kornilios Mitsis Poiitidis ad05c35a7e Implement CheckBlock for x64 2018-06-29 15:19:49 +02:00
Stefanos Kornilios Mitsis Poiitidis c52165adbd Update XBYAK to 71b75f653f3858403eb33d48f6346eef34b837fe 2018-06-29 15:18:57 +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
Flyinghead 6871061ca0 Modifier Volumes: summing up with triangles is faster than using a quad. 2018-06-26 15:38:55 +02:00
Flyinghead 7c93727b5e Improve modifier volume parsing and drawing logic.
Parse modifier volumes similarily to other polys (first, count, params).
Draw all triangles in one shot and use quad to sum up instead of
redrawing entire strip. Use OR operation for open volumes/quads
(Soulcalibur).
2018-06-26 14:45:58 +02:00
TwistedUmbrella bf62cb8bd1 Prevent overriding Android setting w/ config.ini 2018-06-25 12:04:26 -04:00
TwistedUmbrella 571b68d468 Fix building Windows alongside Android Studio
Windows: resolve missing reference to _SC_OPEN_MAX

https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00023.html
https://libwebsockets.org/lws-api-doc-master/html/libwebsockets_8h_source.html

Windows: comment duplicate x86_ptr_imm definition

Replaced by more explicit type definitions. Fixes x64 compile

Restore secondary x86_ptr_imm for non-Windows

This appears to be a necessary duplicate for other platforms.
2018-06-25 12:04:14 -04:00
Stefanos Kornilios Mitsis Poiitidis 563052a2e8 Really force -fPIC everywhere 2018-06-25 12:04:14 -04:00
Stefanos Kornilios Mitsis Poiitidis 86593d82e7 Add fpic option, remove ndk build stuff 2018-06-25 12:04:13 -04:00
Stefanos Kornilios Mitsis Poiitidis 1933aff8a2 First steps for android studio builds 2018-06-25 12:04:07 -04:00
Flyinghead 846d02d9d2 Optimize RTT to VRAM. Add US version of THPS2 to per-game settings. 2018-06-25 16:55:22 +02:00
TwistedUmbrella e6afd22f98
Merge pull request #1191 from baka0815/gdi_skipws
GDI: Reset skipws-flag
2018-06-25 10:33:34 -04:00
Flyinghead 3256e02813 Workaround for Virtua Tennis ball color problem.
There's a texture corruption of the tennis ball and other textures,
notably the players' bags in the first intro sequence. The corruption is
due to render to texture squashing existing textures. Not sure what's
going on but this avoids the texture corruption. The original problem
remains.
2018-06-25 15:53:28 +02:00
git@baka0815.de 852d644a5f GDI: Explicitly set skipws-flag
It's not neccesarry to set it every iteration, so just set it before and reset it afterwards.
2018-06-25 09:14:51 +02:00
Christoph "baka0815" Schwerdtfeger 41ee5707a8 GDI: Reset skipws-flag 2018-06-24 14:30:46 +02:00
barbudreadmon 2e8a87cbdf
Allow loading of lst files (Naomi support #1188) 2018-06-21 19:24:05 +02:00
TwistedUmbrella 75189f0a78
Merge pull request #1180 from baka0815/unused_code
Removed unused code in core/linux-dist/main.cpp
2018-06-14 15:52:23 -04:00
Christoph "baka0815" Schwerdtfeger 3d43505504 Allow for custom <device>.cfg files in the /mappings/ directory.
Check if a configuration file named exactly like the device exists in the /mappings/ directory.
If it does, use this instead of the generic one.

Expose file_exists() from stdclass.
2018-06-13 19:33:51 +02:00
Christoph "baka0815" Schwerdtfeger 2e4cf087bd Refactored and fixed X11 buttons.
Replaced magic number with X11 constants.
Added keys for left and right shoulder buttons.
Added key for (missing) Y button.
Moved the debug printf() where it belongs.
2018-06-13 19:24:48 +02:00
Christoph "baka0815" Schwerdtfeger 8309eb7d6a Added most important X11-keys as constants. 2018-06-13 19:23:20 +02:00
Christoph "baka0815" Schwerdtfeger e6854ef87d Removed unused code in core/linux-dist/main.cpp
This is a leftover from #964
2018-06-13 19:17:20 +02:00
Flyinghead 08b8d30589 Implement clipping. Enabled by default. 2018-06-09 18:11:47 +02:00
Stefanos Kornilios Mitsis Poiitidis d0cd5a5f64
Merge pull request #1152 from flyinghead/fh/modvols
Enable modifier volumes. Fix for exclusion volumes.
2018-06-09 17:52:51 +02:00
Flyinghead 7640a35720 Draw modifier volumes only if enabled in settings (defaults to true) 2018-06-09 17:22:01 +02:00
Flyinghead 1f95eb243c Fix video choppiness 2018-06-07 19:06:16 +02:00
Flyinghead 2fdcf0d821 Use float constants in GLSL 2018-06-07 18:26:02 +02:00
Flyinghead e1a86b4e0a Fix SW1-JPB random texture corruption problem and video choppiness. 2018-06-07 17:19:49 +02:00
Flyinghead b9fe9332cf GLES 2 fix for fog table: use float only for vars and consts 2018-06-05 13:36:49 +02:00
Flyinghead 49e172b169 Push more silence on audio underrun to catch up 2018-06-05 12:18:42 +02:00
Flyinghead 828990b926 Texture based fog table 2018-06-05 12:18:09 +02:00
Flyinghead a345fcc4c7 Draw modifier volumes after punch-through so they can be shadowed as
well.
2018-05-23 14:31:11 +02:00
Flyinghead 2f9dcfabd8 Use FPU_SHAD_SCALE.scale_factor for shadow intensity instead of
hardcoded value.
2018-05-23 12:26:24 +02:00
Flyinghead 488b9ab831 Add TA_GLOB_TILE_CLIP struct. Fix typo. 2018-05-23 12:05:58 +02:00
Flyinghead bccfb5b70c Faster implementation for translucent polys depth pass. Disabled by
default. Auto-enabled for Cosmic Smash.
2018-05-22 15:47:02 +02:00
Flyinghead 23a2af0a28 Add setting for THPS2. Move RenderToTextureBuffer option to rend
section.
2018-05-22 15:34:33 +02:00
Flyinghead 0f6249fdcf Backport libretro per-game-settings logic 2018-05-22 15:20:37 +02:00
Flyinghead c8034807bb dump_frame/read_frame: save/load pvr registers 2018-05-22 13:23:07 +02:00
Flyinghead 4c7ffeb520 Per-pixel fog shading. Shaders cleanup. 2018-05-22 13:04:21 +02:00
Flyinghead 8d01bbe145 Increase Z scaling factor to 100k (fixes background menu in VR2). Set
depth mask before clearing buffers.
2018-05-21 16:44:18 +02:00
Flyinghead 9098fd5a22 Autosort poly: Write to the depth buffer in a second pass, and only if
multipass rendering.
2018-05-20 21:41:31 +02:00
Flyinghead 2d904372a9 Multipass issues: depth mask must be enabled for autosorted tr poly.
Depth buffer must NOT be cleared b/w passes, same for stencil I guess.
2018-05-20 14:16:43 +02:00
Flyinghead 9e994fecaa Avoid array overflow if more than 10 render passes 2018-05-19 18:57:16 +02:00
Flyinghead c35aa4262c Fix OpenGL errors with modvols and multipass 2018-05-19 18:51:30 +02:00
Flyinghead c427997269 Enable modifier volumes. Fix for exclusion volumes. Prevent overflow of modifier triangles (JGR). 2018-05-19 10:13:00 +02:00
Flyinghead 6e64fe90fc Reverting c3a90a63a1 as well as the
autosort hack, which was certainly a consequence. Fixes texture
corruptions.
2018-05-18 21:35:51 +02:00
Flyinghead d596f988c8 Revert 99bc20220e 2018-05-17 11:17:51 +02:00
Flyinghead 99bc20220e Simplify clipping 2018-05-17 10:32:52 +02:00
Flyinghead 80c193b3de Cache texture parameters. Fixed exclusion volume modifiers. 2018-05-16 19:34:45 +02:00
Flyinghead e73d11d0ab glHint nicest->fastest, and just once 2018-05-15 22:37:40 +02:00
Flyinghead b469f05b9d Fix wrong fog calculation issue 2018-05-15 21:19:58 +02:00
Flyinghead d8165376be GL cache fix 2018-05-15 16:09:50 +02:00
Flyinghead de046c4620 Use OpenGL state cache. Allocate texture ids in bulk. Avoid modifier
volumes entirely when not needed.
2018-05-15 15:22:26 +02:00
Flyinghead 2d834c7396 Revert glChecks 2018-05-15 11:54:14 +02:00
Flyinghead 833a616122 Merge OSX fixes 2018-05-15 11:41:44 +02:00
Flyinghead 46b40ad043 OSX: enable exceptions for vmem 2018-05-15 11:14:48 +02:00
Flyinghead 0a8348b6df Use CSYM() in assembler code 2018-05-15 11:13:42 +02:00
Flyinghead 34eae365f7 bad character? 2018-05-14 23:16:11 +02:00
Flyinghead c36e2731d7 read_frame fix 2018-05-14 22:38:22 +02:00
Flyinghead 4aee2eb5fe Increase gdrom dma buffer size to 8192 sectors 2018-05-14 19:37:33 +02:00
Flyinghead 2564c57cd2 Merge branch 'master' of https://github.com/flyinghead/reicast-emulator 2018-05-14 16:14:35 +02:00
Flyinghead b30f715796 Fix paletted textures mismatch in texture cache 2018-05-14 16:14:15 +02:00
Flyinghead 699c2986a5 WIP 2018-05-14 12:48:22 +02:00
Flyinghead ae49c19cea osx: cpu x86. glViewport now doing in RenderFrame 2018-05-14 09:31:03 +02:00
Flyinghead 46f28cfb27 Fog fix 2018-05-13 23:07:35 +02:00
Flyinghead 95120690ef Use log2 depth scaling when opengl 3 is available 2018-05-13 20:19:36 +02:00
Flyinghead 688ba5c37d Fix autosort translucent poly bug (rayman). probably still not right... 2018-05-13 16:48:09 +02:00
Flyinghead b68f0a16a8 Increase FPS font size 2018-05-13 16:45:20 +02:00
Flyinghead c30548eb6a Added on-screen FPS counter. Fix clear screen issue when widescreen
enabled but not currently on.
2018-05-13 16:01:08 +02:00
Flyinghead 50a2e7e842 Revert dd9f77b4ab0b4c66fe7a2a717ed4b8cc1835e343: no gl_FragDepth in GLES 2 :( 2018-05-12 14:39:06 +02:00
Flyinghead dd9f77b4ab Changed z normalization to log scale 2018-05-12 13:26:50 +02:00
Flyinghead 717ee0b3ce Make rendering to texture buffer optional 2018-05-11 19:33:17 +02:00
Flyinghead b02eccd5c7 Fix performance problem with RTT waiting 2018-05-11 19:08:54 +02:00
Flyinghead 43c125c208 Better texture cache: avoid duplicate. Attempt to put the RTT texture in
the cache to avoid copy to/from vram.
2018-05-11 15:29:24 +02:00
Flyinghead 683cbbba3e Multipass rendering 2018-05-10 21:28:20 +02:00
Flyinghead 0f92189585 Fix translucent triangles not being autosorted(?) 2018-05-10 13:02:57 +02:00
Flyinghead b77843b927 Handle RTT texture stride (VT) 2018-05-09 15:08:13 +02:00
Flyinghead 136c3d6825 When rendering to texture, wait until after the frame is rendered to
unlock.
2018-05-09 14:46:06 +02:00
Flyinghead c13a42611b Implemented other RTT format conversions. 2018-05-09 13:04:48 +02:00
Flyinghead 5710aa08ed Remove all vram locks before reading back RTT buffer. Use RGBA/ubyte
format when RGB/565 is not available.
2018-05-09 12:28:38 +02:00
Flyinghead 2e4ec3a1ed Added RTT support 2018-05-08 18:47:00 +02:00
Flyinghead 9f13ded502 Enable Modifier Volumes. Fix modtrig buffer overflow and stencil reset. 2018-05-04 18:18:04 +02:00
Flyinghead cc88561d4a Implemented clipping (Daytona USA menus) 2018-05-02 15:41:42 +02:00
Flyinghead db0534d5dd Fix PunchThrough texturing on JGR with nvidia 2018-05-02 12:29:47 +02:00
Flyinghead fe71519d1b Write some silence on audio underruns 2018-05-01 17:25:42 +00:00
Flyinghead 5320c3adee Fixed previous screw up 2018-05-01 11:20:25 +02:00
Flyinghead a953a0baa7 Use ring buffer for samples and detect buffer underruns 2018-04-29 17:56:01 +02:00
Flyinghead 39e0f378cb OSX: add x64 target. Use JIT compiler. Clean exit. Use semaphore in core audio driver. Use layout-independent key codes to support int'l keyboards. Fixed GL window scaling. 2018-04-29 16:07:54 +02:00
Flyinghead 64a8ac1dd5 Add clean exit patch for x11 and 64-bit architecture 2018-04-27 16:54:15 +02:00
Flyinghead 35d3bd98d4 Disable fog table logging. Small optimization 2018-04-27 10:58:10 +00:00
Flyinghead b8f3d37df2 Disabled some logging (Mr.Driller) 2018-04-27 10:50:21 +00:00
Flyinghead 94aa7c9e83 Fix alsa backend clicking noise on underrun. Set the buffer size to match the [omx] audio_latency setting 2018-04-27 10:49:23 +00:00
Flyinghead 10bdf7f449 Clean exit when exit key is pressed 2018-04-27 10:37:56 +00:00
rrrh bcdf38da0a
Merge pull request #1130 from reicast/rrrh/osx-high-sierra
Rrrh/osx high sierra
2018-04-21 19:26:27 +02:00
Hugo Hackenstein d653d4e009 Remove unneeded stdlib include 2018-04-21 19:01:24 +02:00
Hugo Hackenstein 4fcb95a0d1 Mac compile on OSX - Remove deprecated malloc.h include and switch to stdlib.h instead 2018-04-21 19:00:36 +02:00
Stefanos Kornilios Mitsis Poiitidis 34b495baa7
Merge pull request #1098 from reicast/pr/1092
fix gdi track parsing in unix #1092
2018-04-19 20:51:13 +02:00
Stefanos Kornilios Mitsis Poiitidis 90e901f4a3 gdi: Normalize paths, add test gdi files 2018-04-18 22:28:05 +02:00
gizmo98 4a7d0b9e7e rpi: add option to use mesa or new vendor gl libs 2018-04-11 21:42:57 +02:00
gizmo98 b09356f3f7 Fix GCC6 "Bool" issue 2018-04-11 21:37:31 +02:00