Commit graph

2804 commits

Author SHA1 Message Date
Subv c94a1a0375 GPU/PrimitiveAssembler: Fixed drawing triangle fans.
It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
2015-12-06 10:48:05 -05:00
Yuri Kunde Schlesner 30c70c905f OpenGL: Flip framebuffers during transfer rather than when rendering 2015-12-04 22:23:39 -08:00
Yuri Kunde Schlesner 8e478d8b99 OpenGL: Add support for glFrontFace in the state tracker 2015-12-04 21:58:26 -08:00
bunnei 3a96788f4f Merge pull request #1252 from Subv/cam
Services/Cam: Added new log type and camera enums from 3dbrew.
2015-12-03 22:01:45 -05:00
Yuri Kunde Schlesner 7b9807c835 PICA: Properly emulate 1-stage delay in the combiner buffer
This was discovered and verified by @fincs. The tev combiner buffer
actually lags behind by one stage, meaning stage 1 reads the initial
color, stage 2 reads stage 0's output, and so on.

Fixes character portraits in Fire Emblem: Awakening and world textures
in Zelda: ALBW. Closes #1140.
2015-11-30 22:45:18 -08:00
Yuri Kunde Schlesner 5bed732b03 Kernel: Implement svcGetSystemInfo
This makes smealum/ctrulib@b96dd51d33 work
with Citra.
2015-11-30 19:49:44 -08:00
Lioncash af06eaf78d armstate: Zero out the registers on creation
std::array isn't always guaranteed to explicitly zero out it's contents
without an initializer list.
2015-11-29 15:16:34 -05:00
Subv a84d5aa51e Core/ARM11: Correct the size of the VFP register array in the ThreadContext structure.
The VFP registers are 64 bits each, and there are 32 of them.
2015-11-29 13:06:45 -05:00
bunnei ae854d124f Merge pull request #1225 from lioncash/clean
csnd_snd: Get rid of type punning
2015-11-28 23:32:05 -05:00
archshift 6e66a1244e Refactor ScanDirectoryTreeAndCallback to separate errors and retvals
ScanDirectoryTreeAndCallback, before this change, coupled error/return
codes and actual return values (number of entries found). This caused
confusion and difficulty interpreting the precise way the function
worked.

Supersedes, and closes #1255.
2015-11-27 13:33:38 -08:00
bunnei 4cbe626fc7 renderer_opengl: Fix uniform issues introduced with kemenaran/avoid-explicit-uniform-location. 2015-11-25 22:33:24 -05:00
Pierre de La Morinerie 1c196456f0 Use regular uniform location
The support for GL_ARB_explicit_uniform_location is not that good
(53% according to http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_explicit_uniform_location).

This fix the shader compilation on Intel HD 4000 (#1222).
2015-11-25 11:56:11 +01:00
bunnei 56f3db72cb Merge pull request #1248 from polaris-/add-ssl-stubs
Add stub functions for Initialize and GenerateRandomData in ssl:C
2015-11-24 16:15:21 -05:00
Subv 092d5b04ec Services/Cam: Added new log type and camera enums from 3dbrew.
Followup to #1102
Original author @mailwl
2015-11-23 17:17:28 -05:00
polaris- 18990ff322 Add stub functions for Initialize and GenerateRandomData in ssl:C 2015-11-22 16:54:51 -05:00
bunnei 2b68cf07c7 Merge pull request #1246 from polaris-/patch-1
Fix read and write register blocks in gdbstub
2015-11-22 13:38:50 -05:00
polaris- 7603ea3da1 Add Initialize and GenerateRandomData stubs 2015-11-22 09:27:46 -05:00
polaris- ec1195c252 Fix read and write register blocks in gdbstub
Previously, the padding wasn't correctly accounted for which caused the gdbstub to read and write everything after R15 (starting with the dummy FPA registers) incorrectly, which caused CPSR to not be handled correctly. Everything appears to be working as expected with this change.
2015-11-22 07:48:26 -05:00
bunnei 9be370a2cf Merge pull request #1237 from Subv/ubos
Shaders: Use UBOs instead of individual uniforms in the generated frag shaders
2015-11-18 22:20:12 -05:00
Subv 9acdb1e7f2 FragShader: Use an UBO instead of several individual uniforms 2015-11-18 21:03:56 -05:00
wwylele 8b6d444dd1 fix failure on gcc and clang 2015-11-12 20:39:30 +02:00
wwylele 3b7cbb25e3 disable unary minus when the type is not signed
silent warning C4146 on msvc
2015-11-12 20:39:28 +02:00
bunnei 5f52cec725 Merge pull request #1122 from polaris-/gdbstub
gdbstub implementation
2015-11-11 23:21:31 -05:00
Subv b797ef4d9a GPU/Loaders: Log an error when a loader tries to load from a component beyond the available ones (12).
Related to #1170
2015-11-09 21:16:11 -05:00
polaris- 505489551d Fix bug with reading addresses and lengths 2015-11-03 21:50:53 -05:00
polaris- fd7f61becf Change headers 2015-10-29 06:17:29 -04:00
Lioncash 1349faf744 csnd_snd: Get rid of type punning 2015-10-28 16:10:21 -04:00
bunnei 58857f832e Merge pull request #1165 from esoteric-programmer/master
Added CSND_ExecuteType0Commands stub.
2015-10-28 15:19:13 -04:00
Matthias Ernst 5c7881c4a3 Added CSND stub. 2015-10-28 19:04:01 +01:00
bunnei 62c57400e8 Merge pull request #1208 from archshift/free-bytes
Implement FS_User::GetFreeBytes
2015-10-28 11:30:25 -04:00
archshift 5da25ae7d0 Implement FS_User::GetFreeBytes 2015-10-27 23:33:59 -07:00
Filiph Sandström 23e1121337 Fix copy paste 2015-10-24 13:17:04 +02:00
Emmanuel Gil Peyrot 705dd2b552 OpenGL: Log GL_KHR_debug messages we receive
This allows the driver to communicate errors, warnings and improvement
suggestions about our usage of the API.
2015-10-24 02:30:51 +01:00
Filiph Sandström d248fba5e3 Fix wrong branch 2015-10-23 23:58:54 +02:00
Filiph Sandström 29077f65a2 Add GetTotalStepCount Stub 2015-10-23 23:52:13 +02:00
Filiph Sandström bf5793c2f8 Update ptm.h 2015-10-23 23:50:51 +02:00
bunnei 5559dad63d Merge pull request #1209 from wwylele/file-path-encoding
citra-qt: Change file path encoding
2015-10-22 22:41:39 -04:00
polaris- ac325ce61a Add some headers so TravisCI will hopefully work 2015-10-22 00:31:49 -04:00
polaris- f4520eb266 Use CHAR_BIT instead of 8 2015-10-22 00:19:44 -04:00
polaris- 4e0ae45d99 Handle changes pointed out in comments on PR 2015-10-22 00:11:25 -04:00
bunnei b7b11eb5e7 gl_shader_gen: Use explicit locations for vertex shader attributes. 2015-10-21 22:29:56 -04:00
bunnei 1eb1fd06d1 gl_shader_gen: Optimize code for AppendAlphaTestCondition.
- Also add a comment to AppendColorCombiner.
2015-10-21 22:29:56 -04:00
bunnei 7bad07b3ef gl_rasterizer: Define enum types for each vertex texcoord attribute. 2015-10-21 21:59:47 -04:00
bunnei 4175a09b7d gl_shader_gen: Various cleanups to shader generation. 2015-10-21 21:59:44 -04:00
bunnei 2fd9b1999f gl_rasterizer: Use MMH3 hash for shader cache hey.
- Includes a check to confirm no hash collisions.
2015-10-21 21:58:59 -04:00
bunnei 61b33d7266 gl_shader_gen: Require explicit uniform locations.
- Fixes uniform issue on AMD.
2015-10-21 21:54:56 -04:00
bunnei aa1dec1953 gl_shader_gen: Rename 'o' to 'attr' in vertex/fragment shaders. 2015-10-21 21:53:19 -04:00
bunnei 3ed0610e5d gl_shader_gen: AppendAlphaModifier default should be 0.0, not vec4(0.0). 2015-10-21 21:53:18 -04:00
bunnei e69743a943 gl_shader_gen: Fix bug where TEV stage outputs should be clamped. 2015-10-21 21:53:18 -04:00
bunnei 589d3e2e20 gl_rasterizer: Add documentation to ShaderCacheKey. 2015-10-21 21:53:17 -04:00
bunnei 06d9c2795c gl_shader_gen: Add additional function documentation. 2015-10-21 21:53:17 -04:00
bunnei 711a23b8ca gl_shader_util: Cleanup header file + add docstring. 2015-10-21 21:53:16 -04:00
bunnei d8eca2f795 gl_shader_gen: Various cleanups + moved TEV stage generation to its own function. 2015-10-21 21:53:16 -04:00
bunnei eefabd6b7d renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups. 2015-10-21 21:53:14 -04:00
bunnei 44a1dcc088 gl_rasterizer: Move logic for creating ShaderCacheKey to a static function. 2015-10-21 21:53:05 -04:00
bunnei 05e11e151d gl_shader_util: Use vec3 constants for AppendColorCombiner. 2015-10-21 21:51:24 -04:00
bunnei a81772552c gl_rasterizer: Fix typo in uploading TEV const color uniforms. 2015-10-21 21:51:24 -04:00
bunnei 9722d39bc5 gl_shader_util: Fix precision bug with alpha testing.
- Alpha testing is not done with float32 precision, this makes the HW renderer match the SW renderer.
2015-10-21 21:51:23 -04:00
Subv 8733dd568d Initial implementation of fragment shader generation with caching. 2015-10-21 21:51:23 -04:00
polaris- 37b35180c5 Add a register variable to loops 2015-10-21 07:45:35 -04:00
polaris- 6c4f45627c Update register read loops to go with last commit 2015-10-21 07:40:30 -04:00
polaris- 86a42ff827 Pad responses to gdb for VFP registers 2015-10-21 07:19:03 -04:00
polaris- 82f537482d Try to add support for VFP registers 2015-10-21 07:14:43 -04:00
polaris- 0de246f668 Fix buffer overflow comments 2015-10-21 06:49:49 -04:00
wwylele 91874459b3 change file path encoding to Local8bit()
to support non-latin characters
2015-10-20 20:58:23 +03:00
bunnei 6793fd7899 Merge pull request #1207 from kemenaran/persist-citra-settings-in-qt
citra-qt: save hardware-rendering and shaders-jit settings
2015-10-20 10:31:13 -04:00
bunnei 030fabe840 Merge pull request #1204 from kemenaran/qt-add-mac-icon
citra-qt: Add icon to the OS X app
2015-10-20 10:21:03 -04:00
bunnei 7de1f406b8 Merge pull request #1199 from Gareth422/encryption-check
Loader: Implement NCCH encryption check
2015-10-20 10:17:31 -04:00
Pierre de La Morinerie b95e88c55d citra-qt: persist hardware-rendering and shaders-jit settings
Before this changing these settings from the GUI would apply the
settings, but they were reseted to the default values when exiting
citra.
2015-10-18 14:08:23 +02:00
Pierre de La Morinerie 2754ac64b7 citra-qt: Add icon to Mac app
Previously the Mac app didn't have any icon.
2015-10-14 15:02:36 +02:00
polaris- 6621f16576 Remove unnecessary new lines, changed Deinit to Shutdown 2015-10-11 20:07:58 -04:00
Gareth Poole 780fd6247f Loader: Change NCCH header types to be explicitly little-endian 2015-10-10 22:35:22 -04:00
Gareth Poole 1874d33c0b Loader: Implement encryption check 2015-10-10 22:34:17 -04:00
bunnei d52e81d425 Merge pull request #1194 from linkmauve/no-newline
Remove newlines in LOG_* calls
2015-10-10 14:42:17 -04:00
Emmanuel Gil Peyrot b0c7762520 CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.
The LOG_* function itself already appends one.
2015-10-09 22:14:56 +01:00
Gareth Poole cfeae1a4f5 Fixed spelling errors 2015-10-09 17:09:52 -04:00
bunnei f172b66738 Merge pull request #1189 from archshift/game-list-toggle-window
Game list: propely hide on toggling window mode
2015-10-07 10:33:11 -04:00
Rohit Nirmal c157d4ddd6 Silence -Wsign-compare warnings. 2015-10-06 22:16:15 -05:00
archshift df14491cf3 Game list: propely hide on toggling window mode
Properly hides the game list upon toggling from external
window mode to single window mode. Previously, both the game
list and the render window would have been shown at the same
time upon toggling.
2015-10-06 12:20:26 -07:00
Pierre de La Morinerie 831cb390ae citra-qt: Fix mouse events coordinates on high-DPI screens 2015-10-04 23:11:05 +02:00
Pierre de La Morinerie 11e08f4d23 citra-qt: Enable high-DPI widgets on Mac app
The OS will render the widgets using the system screen DPI (instead of
being locked at @1x resolution).

This has no impact on the existing high-DPI rendering code in Citra,
which means that the resolution of the emulated content is increased
to the real number of pixels, as on other platforms.
2015-10-04 23:11:05 +02:00
Pierre de La Morinerie 3e2b782f5f citra-qt: Use custom Info.plist for Mac builds
Instead of letting CMake re-generate an automatic Info.plist file on
every build, use our own. This allows greater control on the application
bundle settings.
2015-10-04 23:11:05 +02:00
polaris- 8205925b08 Use BreakpointAddress struct instead of passing address directly 2015-10-04 11:22:31 -04:00
polaris- f808a4307d Toggle use_gdbstub in citra GLFW 2015-10-04 11:22:07 -04:00
polaris- 1d319e5b46 Implement gdbstub 2015-10-04 11:16:59 -04:00
bunnei 4d5cf75d8d Merge pull request #1176 from lioncash/vs2015-code-junking-day
Obligatory "Throw out workarounds VS2013 once limited us to" PR
2015-10-03 13:19:03 -04:00
bunnei bc1663cbb8 Merge pull request #1095 from archshift/game-list
Initial implementation of a game list
2015-10-01 23:35:19 -04:00
archshift dfaed461ff Game list: save and load column sizes, sort order, to QSettings 2015-10-01 19:39:15 -07:00
archshift 7b1025c819 Add menu item for selecting the game list folder 2015-10-01 19:39:14 -07:00
archshift 6da3f4480e Initial implementation of a game list 2015-10-01 19:39:14 -07:00
archshift cad06d5d41 Add helper function for creating a readable byte size string. 2015-10-01 19:39:14 -07:00
archshift eb41ca3d00 Don't show render window until a game is started 2015-10-01 19:39:14 -07:00
Lioncash 03af08ae81 bit_field: Re-enable code on MSVC 2015-10-01 15:43:42 -04:00
bunnei 00238a02b0 Merge pull request #1180 from lioncash/symbol
symbols: Minor changes
2015-10-01 11:20:21 -04:00
archshift 7b96bd3136 Split up FileUtil::ScanDirectoryTree to be able to use callbacks for custom behavior
Converted FileUtil::ScanDirectoryTree and FileUtil::DeleteDirRecursively
to use the new ScanDirectoryTreeAndCallback function internally.
2015-09-30 21:04:47 -07:00
archshift 976a199623 Expose loader helper functions for identifying files. 2015-09-30 21:04:47 -07:00
Lioncash 84a0b184f5 symbols: Replace an insert call with emplace 2015-09-30 11:55:58 -04:00
Lioncash 3564f8ae6f symbols: Get rid of initial underscores in variable names 2015-09-30 11:54:44 -04:00
Lioncash 7b63b5f819 symbols: Directly initialize TSymbol members 2015-09-30 11:53:01 -04:00
Lioncash d5071c2b9a symbols: Simplify GetSymbol 2015-09-30 11:51:06 -04:00
bunnei 5fb9ab82fd Merge pull request #1177 from linkmauve/fix-msvc-todo
Use a constexpr function for country initialization in service/cfg
2015-09-30 11:06:47 -04:00
Lioncash 42e88c9a16 ivfc_archive: Fix a printf specifier 2015-09-30 08:19:42 -04:00
Emmanuel Gil Peyrot 918f616a46 Service/CFG: Use a constexpr function for country initialization
This fixes a TODO left over from when we supported MSVC 2013.
2015-09-30 04:02:48 +01:00
bunnei 9d8aeef475 Merge pull request #1172 from martinlindhe/fix-warnings
Fix some xcode 7 (llvm) warnings
2015-09-29 22:00:27 -04:00
Martin Lindhe b36b9d6923 fix some xcode 7.0 warnings 2015-09-29 23:11:09 +02:00
LittleWhite c5dedacaff Fix for the refresh issue when no rendering is done 2015-09-24 21:48:41 +02:00
bunnei 4a07e855cd Merge pull request #1160 from lioncash/clang
Silence some clang warnings
2015-09-21 21:29:55 -04:00
bunnei 8a434a954e Merge pull request #1106 from Kloen/fix-connect
citra-qt: Fix connect error on startup (#449)
2015-09-21 21:16:48 -04:00
Cruel aad98addf2 Implement 3dsx RomFS 2015-09-21 13:03:18 -04:00
polaris- 021fab70ac Implement gdbstub 2015-09-19 22:28:02 -04:00
Kloen 98aa9421db citra-qt: Fix connect error on startup 2015-09-18 11:36:59 +02:00
Lioncash 2c2f1250d2 hash: Get rid of unused functions 2015-09-16 08:54:28 -04:00
Lioncash 08147474cb general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
Yuri Kunde Schlesner 318429ff53 Service/CFG: Add default entry for block 0x000A0001 (birthday) 2015-09-14 17:39:52 -03:00
Yuri Kunde Schlesner 6b451adbf2 Service/CFG: Correct flags in 2 default blocks
Verified against a 9.2.0-20 config save
2015-09-14 17:39:51 -03:00
Yuri Kunde Schlesner 737572c283 Service/CFG: Add additional blocks to default save data
These blocks are required by various games to boot.
2015-09-14 17:39:50 -03:00
Yuri Kunde Schlesner 6a8deb9b91 Fix narrowing conversion warning 2015-09-14 17:39:50 -03:00
Yuri Kunde Schlesner 9a28ef260b Service/CFG: Move several private types from the header to the cpp 2015-09-14 17:39:49 -03:00
Yuri Kunde Schlesner 8fa38e6011 Service/CFG: Clean up default block creation 2015-09-14 17:39:48 -03:00
Yuri Kunde Schlesner d309230ccc Merge pull request #1123 from yuriks/gsp-flush
GSP: Implement command 0x05, used for flushing caches
2015-09-14 17:00:45 -03:00
bunnei 2131d2309a Merge pull request #1111 from LittleWhite-tb/qt-close-renderwindow
Stop emulation when render window is closed
2015-09-14 15:23:08 -04:00
Yuri Kunde Schlesner 222d77c31a GSP: Implement command 0x05, used for flushing caches
May fix additional texture caching issues. (Though mostly in homebrew, I
haven't seen any commercial software use this to flush anything but
command lists.)
2015-09-14 16:19:05 -03:00
Lioncash f28802e883 memory_util: Remove unnecessary assignment in FreeMemoryPages 2015-09-11 23:16:34 -04:00
Lioncash 36c2bedcd8 memory_util: Remove commented out printf statements 2015-09-11 23:12:28 -04:00
Lioncash 1ab765ff61 general: Replace 0 literals with nullptr where applicable 2015-09-11 23:11:01 -04:00
Lioncash 82efda5aaf synchronized_wrapper: Add missing return in SynchronizedRef move assignment operator 2015-09-11 22:00:21 -04:00
Yuri Kunde Schlesner 79e63380bd Merge pull request #1147 from lioncash/nullptr
General: Replace NULL and '0' usages with nullptr where applicable
2015-09-11 18:56:41 -03:00
Yuri Kunde Schlesner a60cb41964 Merge pull request #1149 from lioncash/override
graphics_breakpoints_p: Add missing override specifier
2015-09-11 18:24:24 -03:00
Yuri Kunde Schlesner c483ea3ea9 Merge pull request #1142 from lioncash/hdrqt
citra_qt: Reorganize headers
2015-09-11 18:17:24 -03:00
Yuri Kunde Schlesner 39109851c5 Merge pull request #1143 from lioncash/vcore-hdr
video_core: Reorganize headers
2015-09-11 18:17:02 -03:00
Lioncash c9aecc0404 graphics_breakpoints_p: Add missing override specifier 2015-09-11 16:32:02 -04:00
Lioncash 5c77b656b8 General: Replace NULL and '0' usages with nullptr where applicable 2015-09-11 14:59:49 -04:00
bunnei a923570acf Merge pull request #1144 from lioncash/remove
common: Get rid of debug_interface.h
2015-09-11 09:47:36 -04:00
Lioncash ad57b24255 common: Get rid of a cast in swap.h 2015-09-11 08:54:33 -04:00
Lioncash 75b3e911ec common: Get rid of debug_interface.h
This is technically unused. Also removes TMemChecks because it relies on this.
Whenever memory breakpoints are implemented for real, it should be designed to
match the codebase debugging mechanisms.
2015-09-11 08:12:08 -04:00
Lioncash 2cd98a45cb video_core: Reorganize headers 2015-09-11 07:31:15 -04:00
Lioncash 0638df7136 citra_qt: Reorganize headers 2015-09-11 00:57:24 -04:00
Lioncash c95206abdd video_core: Remove unnecessary includes from headers 2015-09-11 00:10:03 -04:00
Yuri Kunde Schlesner 13310a9b26 Merge pull request #1130 from lioncash/block
memory: Get rid of pointer casts
2015-09-10 18:05:24 -03:00
bunnei 4d6cd8e7b4 Merge pull request #1133 from lioncash/emplace-back
gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle
2015-09-10 15:07:06 -04:00
bunnei dc51bb8df1 Merge pull request #1136 from lioncash/proto
renderer_opengl: Remove unimplemented function declaration
2015-09-10 11:29:33 -04:00
bunnei 8d08a24e9b Merge pull request #1137 from lioncash/doc
General: Fix up doxygen comments
2015-09-10 11:29:16 -04:00
Lioncash 54fa043c92 General: Fix up doxygen comments 2015-09-10 11:20:21 -04:00
Lioncash a56b8437e6 renderer_opengl: Remove unimplemented function declaration 2015-09-10 10:45:44 -04:00
Lioncash 1d7a9c8752 video_core: Remove unused variables 2015-09-10 10:26:21 -04:00
Yuri Kunde Schlesner 0a72f8446b Merge pull request #1131 from lioncash/uninit
y2r: Give local variables an initial value
2015-09-10 01:21:58 -03:00
Lioncash b69c9fd82b gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle 2015-09-10 00:20:30 -04:00
Lioncash 9f37facda2 memory: Get rid of pointer casts 2015-09-10 00:09:55 -04:00
Lioncash 62c80d9331 disk_archive: Remove unimplemented constructor declarations 2015-09-09 23:49:03 -04:00
Lioncash 42f3cbb213 y2r: Give local variables an initial value
Keeps compilers/static analyzers quiet.
2015-09-09 23:38:55 -04:00
Yuri Kunde Schlesner e351e56465 CMake: Add option to download Qt and GLFW binaries over HTTP 2015-09-08 19:35:12 -03:00
Yuri Kunde Schlesner c1b3177248 Merge pull request #1125 from yuriks/uilayout-config
citra-qt: Separate UI layout state in a separate section of the config
2015-09-07 23:52:13 -03:00
Yuri Kunde Schlesner 40e1b07b68 citra-qt: Separate UI layout state in a separate section of the config
Closes #1113
2015-09-07 22:11:21 -03:00
Yuri Kunde Schlesner 5f59563a28 citra-qt: Trim recently used files list to size when insterting new item
Even though they weren't visible in the UI, old entries would never be
removed from the list and would be stored in the config file across
sessions.
2015-09-07 22:00:08 -03:00
bunnei f0b46ec853 Merge pull request #1118 from Kloen/monospace-font
citra-qt: Use monospace font on Disassembler and ARM Registers
2015-09-07 17:52:07 -04:00
bunnei 2c6071b3bc Merge pull request #1121 from aroulin/shader-minor-fixes
Shader: Use constants and proper type casts
2015-09-07 15:59:24 -04:00
Yuri Kunde Schlesner 65b26655ac Shader Debugger: Allow editing of input vertex data 2015-09-07 16:46:31 -03:00
Yuri Kunde Schlesner 1b79a72723 Shader Debugger: Highlight current instruction instead of focusing
This avoid some annoying focus stealing in some situations, and looks
nicer in general.
2015-09-07 16:46:31 -03:00
Yuri Kunde Schlesner 5dd7b48297 Shader Debugger: Remove useless signal 2015-09-07 16:46:30 -03:00
Yuri Kunde Schlesner 43ba2134d4 Shader Debugger: Fix only first vertex attribute being loaded 2015-09-07 16:46:29 -03:00
Yuri Kunde Schlesner c1bdf33021 Shader Debugger: Fix freeze when double-clicking shader disassembly 2015-09-07 16:46:29 -03:00
Yuri Kunde Schlesner 8d415842f3 Shader Debugger: Improve space efficiency of the layout 2015-09-07 16:46:28 -03:00
Yuri Kunde Schlesner db791bc10e Shader Disassembly: Fix printing of jump offsets 2015-09-07 16:46:27 -03:00
Yuri Kunde Schlesner 968518e740 Shader Disassembly: Fix disassembly of IFU/CALLU instructions 2015-09-07 16:46:27 -03:00
Yuri Kunde Schlesner 21c8b3c305 Shader Disassembly: Implement support for MAD/MADI 2015-09-07 16:46:26 -03:00
Yuri Kunde Schlesner 5752fbdaa3 Shader Disassembly: Introduce variables to hold common subexpressions 2015-09-07 16:46:25 -03:00
Yuri Kunde Schlesner 3e2dc6f659 Shader Debugger: Initialize input_vertex to prevent crashes
If the first type of breakpoint to be hit wasn't "Vertex Loaded", the
input_vertex would contain garbage, which would be passed to the shader
interpreter and ocasionally cause crashes.
2015-09-07 16:46:25 -03:00
Yuri Kunde Schlesner 8b76af8d0e Shader Disassembly: Cleanup code and improve output alignment 2015-09-07 16:46:23 -03:00
Kloen 0f0ef03bf6 citra-qt: Use monospace font on Disassembler and ARM Registers 2015-09-07 21:02:45 +02:00
LittleWhite f8f97c3da1 Stop emulation when render window is closed 2015-09-07 20:34:39 +02:00
aroulin 964fa561c5 Shader JIT: Use SCALE constant from emitter 2015-09-07 16:50:28 +02:00
aroulin f588077bbb Shader: Fix size_t to int casts of register offsets 2015-09-07 16:50:28 +02:00
Lioncash 8da17cb2b3 Merge pull request #1114 from archshift/conditioncode_al
DynCom: Converted all magic 0xE condition code checks to ConditionCode::AL
2015-09-06 01:29:28 -04:00
archshift 358f54fa1d DynCom: Converted all 0xE condition code checks to ConditionCode::AL 2015-09-05 22:24:42 -07:00
Yuri Kunde Schlesner 7f9a9f1339 OpenGL: Use Sampler Objects to decouple sampler config from textures
Fixes #978
2015-09-03 15:09:51 -03:00
Yuri Kunde Schlesner def0e7f71f OpenGL: Remove ugly and endian-unsafe color pointer casts 2015-09-03 15:09:51 -03:00
Yuri Kunde Schlesner efc72d0a4a OpenGL: Add support for Sampler Objects to state tracker 2015-09-03 15:09:50 -03:00
Yuri Kunde Schlesner c42f680c75 citra-qt: Move system shutdown to run inside EmuThread
This stops (for some reason sporadic) crashes and OpenGL errors during
shutdown, when the OpenGL renderer tries to clean up objects from the
UI thread, which has no OpenGL context active.
2015-09-03 15:09:50 -03:00
Yuri Kunde Schlesner 2453064ccd Merge pull request #1087 from yuriks/opengl-glad
Replace the previous OpenGL loader with a glad-generated 3.3 one
2015-09-03 15:07:01 -03:00
bunnei 1eacf4a3d2 Merge pull request #1101 from archshift/camu-service-names
Add cam:u service function names to its function table
2015-09-03 07:53:18 -04:00
archshift 0b274a5ca5 Add cam:u service function names to its function table 2015-09-03 01:56:59 -07:00
bunnei 43266c052e Merge pull request #1088 from aroulin/x64-emitter-abi-call
x64: Proper stack alignment in shader JIT function calls
2015-09-02 08:46:58 -04:00
aroulin 7019a4eaeb video_core: Fix format specifiers warnings 2015-09-02 08:20:00 +02:00
aroulin 89a7c9068f x64: Proper stack alignment in shader JIT function calls
Import Dolphin stack handling and register saving routines
Also removes the x86 parts from abi files
2015-09-01 23:39:52 +02:00
aroulin 22bc3b66d3 Common: Import BitSet from Dolphin 2015-09-01 23:39:52 +02:00
bunnei f4e3d89fdd Merge pull request #1072 from yuriks/GetSystemTick-advance-time
SVC: Advance time when calling GetSystemTick to escape busy-wait loops
2015-09-01 08:21:29 -04:00
bunnei e80c88786e Merge pull request #1083 from yuriks/microprofile-vs2015
Common: Fix MicroProfile compilation in MSVC2015
2015-08-31 21:20:36 -04:00
Tony Wasserka c4eca8d513 Merge pull request #1092 from Subv/vertex_offset
Pica: Add the vertex_offset register to the Pica registers map.
2015-08-31 18:17:59 +02:00
Subv f747cb94de Pica: Added the primitive_restart register (0x25f) to the registers map. 2015-08-31 09:14:18 -05:00
Subv 018d0f8c8f Pica: Add the vertex_offset register to the Pica registers map. 2015-08-31 07:02:30 -05:00
aroulin 36ef773fe7 Shader JIT: Fix SGE/SGEI NaN behavior
SGE was incorrectly emulated w.r.t. NaN behavior as the CMPSS SSE
instruction was used with NLT
2015-08-31 08:16:15 +02:00
bunnei 70363eec82 Merge pull request #1059 from Subv/vertex_offset
GPU: Implemented register 0x22A PICA_REG_DRAW_VERTEX_OFFSET
2015-08-30 17:12:33 -04:00
Subv ad61138359 GPU: Implemented register 0x22A.
This is the equivalent of the "first" parameter in glDrawArrays, it tells the GPU the vertex index at which to start rendering.

Register 0x22A doesn't affect indexed rendering.
2015-08-30 15:46:22 -05:00
bunnei 546ffa0046 Merge pull request #1085 from Subv/fs_stat
Services/FS: Correctly tell the guest app whether a file was correctly opened or not
2015-08-30 11:44:39 -04:00
Yuri Kunde Schlesner 084c527a95 Increase required OpenGL version to 3.3
This gives us several niceties such as Sampler Objects, shader attribute
locations and Timer Queries.
2015-08-30 08:45:57 -03:00
Yuri Kunde Schlesner e5cc2e2ef0 Replace the previous OpenGL loader with a glad-generated 3.3 one
The main advantage of switching to glad from glLoadGen is that, apart
from being actively maintained, it supports a customizable entrypoint
loader function, which makes it possible to also support OpenGL ES.
2015-08-30 08:45:56 -03:00
Yuri Kunde Schlesner e5bcc24426 SVC: Advance time when calling GetSystemTick to escape busy-wait loops
Cubic Ninja waited for the frame to end by spinning on a loop calling
GetSystemTick while doing nothing else. Since GetSystemTick doesn't
cause a reschedule (which advances time), this meant that very little
emulated time would pass inside that loop, causing the game to spend
most of the frame burning away CPU.
2015-08-30 00:07:02 -03:00
bunnei d4266dd0ae Merge pull request #1049 from Subv/stencil
Rasterizer: Corrected the stencil implementation.
2015-08-29 20:06:25 -04:00
Subv 3334ae7b74 Services/FS: Correctly tell the guest app whether a file was correctly opened or not.
Closes #1067
2015-08-28 22:01:03 -05:00
Yuri Kunde Schlesner b5ae1497e6 Common: Fix MicroProfile compilation in MSVC2015 2015-08-28 06:12:12 -03:00
Yuri Kunde Schlesner 6bef26d764 Kernel: Fix wrong linear heap base on titles using newer kernels
Typo which sneaked in through review on #1025
2015-08-27 23:52:40 -03:00
bunnei 3b600b3498 Merge pull request #1075 from yuriks/ControlMem-fixes
Fix heap-management regressions
2015-08-27 19:43:55 -04:00
Yuri Kunde Schlesner 698a15f0e3 Merge pull request #1065 from yuriks/shader-fp
Shader FP compliance fixes
2015-08-27 16:34:13 -07:00
bunnei 3cc5b3c4ad gl_rasterizer_cache: Detect and ignore unnecessary texture flushes. 2015-08-27 19:07:53 -04:00
aroulin 2c48cd4b6c Shader JIT: Fix float to integer rounding in MOVA
MOVA converts new address register values from floats to integers using truncation
2015-08-27 15:26:41 +02:00
Yuri Kunde Schlesner 990ff3f241 Kernel: Fix assertion failure when ControlMemory is called with size=0 2015-08-26 21:29:05 -03:00
Yuri Kunde Schlesner b9b540a222 Core: Improve APT Shared Font hack
Should fix invalid read loops in some games
2015-08-26 21:28:58 -03:00
bunnei eff02466f7 Merge pull request #1074 from lioncash/bool
dyncom: Minor changes to CondPassed
2015-08-26 18:44:52 -04:00
archshift 89241b3e89 Shader JIT: ifdef out reference to ifdef'd out shader_map
shader_map was only defined on x86 architectures, but was cleared on shutdown
with no ifdef protection. Ifdef this out so non-x86 architectures can be built.
2015-08-26 22:28:19 +00:00
Lioncash 3fb10e8f62 dyncom: Simplify some comparisons in CondPassed 2015-08-26 00:10:23 -04:00
Lioncash f8425c3dad dyncom: Change return type of CondPassed to bool 2015-08-25 23:59:01 -04:00
Lioncash efad1a17bf citra-qt: Add a missing header guard to util.h 2015-08-25 23:07:33 -04:00
Yuri Kunde Schlesner 424b0fa646 Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
2015-08-24 22:16:28 -03:00
Yuri Kunde Schlesner 2436b1c104 citra-qt: Add helper function to get a monospace QFont 2015-08-24 22:16:28 -03:00
bunnei 7010a27c7d Merge pull request #1063 from Subv/hw_renderer_debug_fb
HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint
2015-08-24 13:02:44 -04:00
Subv 4afd01e55e HWRenderer: Added a workaround for the Intel Windows driver bug that causes glTexSubImage2D to not change the stencil buffer.
Reported here https://communities.intel.com/message/324464
2015-08-24 11:28:28 -05:00
Yuri Kunde Schlesner 08e13a10f7 fixup! Shaders: Fix multiplications between 0.0 and inf 2015-08-24 02:10:11 -03:00
Yuri Kunde Schlesner 9023d7a1d4 Shader JIT: Tiny micro-optimization in DPH 2015-08-24 01:48:37 -03:00
Yuri Kunde Schlesner 9a4a0cc8e0 Shaders: Fix multiplications between 0.0 and inf
The PICA200 semantics for multiplication are so that when multiplying
inf by exactly 0.0, the result is 0.0, instead of NaN, as defined by
IEEE. This is relied upon by games.

Fixes #1024 (missing OoT interface items)
2015-08-24 01:48:15 -03:00
Yuri Kunde Schlesner 8b0a7e7afe Shaders: Explicitly conform to PICA semantics in MAX/MIN 2015-08-24 01:46:58 -03:00
Yuri Kunde Schlesner c0959ca635 Shader JIT: Add name to second scratch register (XMM4) 2015-08-24 01:46:10 -03:00
Lioncash 33955e171b shader_jit: Replace two MDisp usages with MatR 2015-08-24 00:39:50 -04:00
Yuri Kunde Schlesner f02539e59d Shader JIT: Fix CMP NaN behavior to match hardware 2015-08-24 01:29:40 -03:00
bunnei 986b526e83 Merge pull request #1062 from aroulin/shader-rcp-rsq
Shader: RCP and RSQ computes only the 1st component
2015-08-23 17:56:35 -04:00
bunnei ff54784aac Merge pull request #1057 from aroulin/shader-dph-dphi
Shader: Implement DPH and DPHI in interpreter/JIT
2015-08-23 17:47:09 -04:00
Subv ebb0e78d80 HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint. 2015-08-23 15:26:17 -05:00
aroulin 8367db5dcd Shader: Use std::sqrt for float instead of sqrt 2015-08-23 22:03:07 +02:00
aroulin 2bcee80587 Shader: RCP and RSQ computes only the 1st component 2015-08-23 22:01:17 +02:00
aroulin 5429dbf738 x64-emitter: add RCPSS SSE instruction 2015-08-23 15:42:58 +02:00
Lioncash 3a56bd4a9e Merge pull request #1058 from lioncash/ptr
emitter: Remove pointer casts
2015-08-22 18:42:47 -04:00
Yuri Kunde Schlesner 91fcf7f484 Fix broken boot introduced by last-minute change in #1025 2015-08-22 18:12:23 -03:00
Yuri Kunde Schlesner e3936a67b7 Merge pull request #1025 from yuriks/heap-management
Kernel: Correct(er) handling of Heap and Linear Heap allocations
2015-08-22 14:01:57 -07:00
aroulin fd789c6858 Shader: implement DPH/DPHI in JIT 2015-08-22 11:09:53 +02:00
aroulin 677a97c8bf Shader: implement DPH/DPHI in interpreter
Tests revealed that the component with w=1 is
SRC1 and not SRC2, it is now fixed on 3dbrew.
2015-08-22 11:09:53 +02:00
Lioncash b150e1d68f emitter: Remove pointer casts
This should also technically silence quite a few ubsan warnings.
2015-08-21 17:09:33 -04:00
Subv c0ddc0df52 HWRasterizer: Implemented stencil ops 6 and 7. 2015-08-21 11:05:56 -05:00
Subv aee8f01e0a SWRasterizer: Implemented stencil ops 6 and 7.
IncrementWrap and DecrementWrap, verified with hwtests.
2015-08-21 11:01:42 -05:00
Subv 2caf213ae0 HWRasterizer: Implemented stencil op 1 (GL_ZERO) 2015-08-21 10:59:49 -05:00
Subv 9a3d5a11f3 SWRasterizer: Implemented stencil action 1 (GL_ZERO).
Verified with hwtests.
2015-08-21 10:35:25 -05:00
Subv cbf5ed0c78 SWRasterizer: Removed a todo. Verified with hwtests. 2015-08-21 10:09:15 -05:00
Subv 97b1a10560 SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled.
The HW renderer already did this.
2015-08-21 09:48:43 -05:00
Subv be58cead12 Rasterizer: Abstract duplicated stencil code into a lambda. 2015-08-21 09:45:36 -05:00
Subv 9c8f4fdd75 GLRasterizer: Implemented stencil testing in the hw renderer. 2015-08-20 10:11:09 -05:00
Subv 7d816d5168 GPU/Rasterizer: Corrected the stencil implementation.
Verified the behavior with hardware tests.
2015-08-20 10:10:35 -05:00
Lioncash 70ca886a39 emitter: Remove unnecessary defines 2015-08-20 04:45:32 -04:00
Lioncash fdd90321ea emitter: Remove unnecessary else keywords 2015-08-20 04:45:31 -04:00
Lioncash 911d072bf6 emitter: Remove unused code 2015-08-20 04:45:30 -04:00
Lioncash 3bcd976780 emitter: Remove unimplemented JMP prototype 2015-08-20 04:45:29 -04:00
Lioncash c46738bebc emitter: Pass OpArg by reference where possible 2015-08-20 04:45:28 -04:00
Lioncash 62626196cb emitter: Remove unnecessary inline specifiers
Functions implemented in a class definition are already implicitly inline.
2015-08-20 04:45:22 -04:00