Commit Graph

549 Commits

Author SHA1 Message Date
Anthony Pesch 93cde7f1d0 restructure main emulator loop to be driven by the amount of audio available in the aica ring buffer (#1)
made audio backend discard an incoming amount of aica frames proportionate to any silence that was previously written out to keep audio time domain in sync with emulator
2017-01-04 00:45:47 -08:00
gamax92 3f8d06cdf2 Output silence frames when needed
Prevent host audio underflow by emitting silence if there is not enoguh audio

This fixes pulseaudio temporarily locking up on underflow
2017-01-03 09:38:12 -07:00
joseph 6b02d045a3 Initial support for punch-through polygons 2017-01-02 17:35:40 -06:00
Anthony Pesch 0c34c7cd9d avoid race conditions around access to texture entry's dirty state 2017-01-02 23:48:57 -08:00
Anthony Pesch 8419cce2b6 avoid excessive gdrom / aica spam
track number of TA startrenders / second
2017-01-02 12:23:47 -08:00
Anthony Pesch 3c5827a12a fixed texture cache issues caused by games writing to textures between the start and end render events, ultimately leaving textures in the cache which were no longer being watched for updates
don't write the same texture multiple times in the same frame when recording traces
2017-01-02 01:24:40 -08:00
Anthony Pesch 1941712797 avoid parsing a frame after the end of frame interrupts have been fired 2017-01-01 20:20:23 -08:00
Anthony Pesch 32a8239132 windows build fixes 2017-01-01 22:06:16 -08:00
Anthony Pesch febbcc98eb build fix for latest nuklear 2017-01-01 12:42:46 -08:00
Anthony Pesch aa78003251 add background to texture menu 2017-01-01 12:35:05 -08:00
Anthony Pesch 0e49f52ce8 updated nuklear dependency to latest, added back TA_PARAM_VERTEX to tracer param list 2016-12-31 14:49:21 -08:00
Anthony Pesch a3712864de don't calculate the minz of a surface multiple times when sorting 2016-12-31 10:17:39 -08:00
Anthony Pesch becf6561cf temporarily ignore TA_PARAM_VERTEX in tracer view 2016-12-30 23:25:14 -08:00
Anthony Pesch 31a10e09d3 ignore vertical scale factor when used for interlacing 2016-12-30 22:07:22 -08:00
Anthony Pesch 62e0dffe44 added support for twiddled YUV422 textures 2016-12-30 21:34:28 -08:00
Anthony Pesch dfac9f39ca fixed logic around detecting a launch error 2016-12-30 16:58:03 -08:00
gamax92 98c50a0d80 Add audio latency option 2016-12-30 17:32:21 -07:00
Anthony Pesch b2fd497cda separated T and S bits from sh4 status register into their own context members, sr_t and sr_s, reducing codegen by around 15% 2016-12-30 15:41:29 -08:00
Anthony Pesch d658bb2bfe remove SH4_FLAG_SET_T 2016-12-30 14:39:30 -08:00
Anthony Pesch 65d7187d9d added ASSERT_LT debug ir op 2016-12-30 14:38:48 -08:00
Anthony Pesch bf22739dd2 aggregate profiler stats every 120 frames by default 2016-12-29 23:13:37 -08:00
Anthony Pesch f6ccc7b405 render parsed TA polygon lists in predefined order (opaque -> punch through -> translucent) instead of the order they are input 2016-12-29 22:21:02 -08:00
Anthony Pesch a58afaf7c5 added x64_backend_load_mem / x64_backend_store_mem to cut down on copy and paste 2016-12-29 14:59:53 -08:00
Anthony Pesch 361b98c625 dont rely on explicit uniform layout extension
use ifdef instead of if for shader attributes
2016-12-29 11:11:39 -08:00
Anthony Pesch 01e1b3eebc added fallback SSE support when AVX isn't available 2016-12-29 09:28:12 -08:00
Anthony Pesch 31b3d8cd53 use nk_list_view_* to avoid rendering so many list view items 2016-12-28 22:28:30 -08:00
Anthony Pesch 05a3580bd1 OCI is also read-only 2016-12-28 01:39:52 -08:00
Anthony Pesch b0826e2385 added initial support for PVR shading instructions
added support for use_alpha / ignore_tex_alpha / offset ISP/TSP settings
2016-12-28 01:17:30 -08:00
joseph 19f93bb27d Add missing 8bpp paletted texture conversions 2016-12-27 22:55:02 -06:00
joseph 3657d9f542 Add missing 4bpp palette texture conversions 2016-12-27 20:23:55 -06:00
Anthony Pesch 2d717d0166 added check for AVX support to x64_backend_create
fixed bitrot around shutdown process
2016-12-27 15:37:52 -08:00
Anthony Pesch 9eb56d1ab2 remove remaining bool usage 2016-12-27 14:28:34 -08:00
Anthony Pesch 26e572e8e5 CCR's ICI bit is read-only, this fixes some games constantly resetting the cache when writing to other bits 2016-12-27 08:58:08 -08:00
Anthony Pesch a87e1c2349 honor SCALER_CTL register, fixes Wacky Races video 2016-12-27 00:45:44 -08:00
Anthony Pesch 361e4ff19b 4 byte writes to SCIPD / MCIPD are also valid 2016-12-26 23:47:33 -08:00
Anthony Pesch fc4aeb1079 fixed issue with type 4, 6 and 8 vertices where the 16-bit uv were not handled correctly - data is actually packed with v in the lower 8 bits
ignore invalid vertices when calculating znear / zfar
added mouse scroll support to nuklear menus
2016-12-26 23:33:38 -08:00
Anthony Pesch bc1419b32d calculate texture size correctly for mipmapped and vectorized textures when writing out traces 2016-12-26 19:52:44 -08:00
Anthony Pesch 92c6baf455 added frame marker to tile_context / texture_entry
made tile params scroll into view when selecting params with the keyboard
fixed fullscreen ui elements not resizing when the window resized
2016-12-26 14:28:24 -08:00
Anthony Pesch adc8a82a5a don't lookup next TA context on each write
use list instead of rb_tree for live contexts
2016-12-26 12:13:23 -08:00
Anthony Pesch 6b174f3bac move vram access to dynamic handler, such that all texture reads / writes go through the same virtual host address, enabling texture caching to only monitor one address per texture
fix issue where starting / stopping a trace could corrupt the texture cache
2016-12-24 15:59:48 -08:00
Anthony Pesch 04cd97c4de fudge z scale a bit more to fix UI rendering in many games 2016-12-24 00:04:55 -08:00
Anthony Pesch 64c1884f2f ignore post-increment in SH4 memops when rm == rn, the store will overwrite 2016-12-23 22:55:52 -08:00
Anthony Pesch f3fe32d6ae updated memory access docs 2016-12-23 01:31:35 -08:00
Anthony Pesch dfe4304e5c empty parameters for integer options should be treated as 1 2016-12-22 20:15:40 -08:00
Anthony Pesch 8aa778b650 added log for successful audio backend creation 2016-12-22 20:11:43 -08:00
Anthony Pesch e261c26ad5 initial guest memory access docs 2016-12-22 01:10:32 -08:00
Anthony Pesch a1b1175818 fix download links in docs 2016-12-21 00:47:31 -08:00
Anthony Pesch 60648835e0 fix gcc release warning 2016-12-21 00:44:52 -08:00
Anthony Pesch 420b838135 use release configuration for ci builds 2016-12-21 00:01:59 -08:00
Anthony Pesch 87a2bf031c avoid reentering FIQ handler if it hasn't completed
only allow AICA_INT_DATA to be set when writing to SCIPD / MCIPD
2016-12-20 23:46:39 -08:00