Commit Graph

4407 Commits

Author SHA1 Message Date
Lioncash 65d7a82db4 symbols: Get rid of initial underscores in variable names 2015-09-30 11:54:44 -04:00
Lioncash 7e143d4422 symbols: Directly initialize TSymbol members 2015-09-30 11:53:01 -04:00
Lioncash 052eacc3b9 symbols: Simplify GetSymbol 2015-09-30 11:51:06 -04:00
bunnei bcaafb826e 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 a97d9613a7 ivfc_archive: Fix a printf specifier 2015-09-30 08:19:42 -04:00
Emmanuel Gil Peyrot 57722fb192 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 a67df5ad94 Merge pull request #1172 from martinlindhe/fix-warnings
Fix some xcode 7 (llvm) warnings
2015-09-29 22:00:27 -04:00
Martin Lindhe bafb7afba2 fix some xcode 7.0 warnings 2015-09-29 23:11:09 +02:00
LittleWhite d06824809f Fix for the refresh issue when no rendering is done 2015-09-24 21:48:41 +02:00
bunnei 09f43c0975 Merge pull request #1160 from lioncash/clang
Silence some clang warnings
2015-09-21 21:29:55 -04:00
bunnei ca5ea5142d 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 d60a9be5c6 Implement 3dsx RomFS 2015-09-21 13:03:18 -04:00
polaris- 5114d75647 Implement gdbstub 2015-09-19 22:28:02 -04:00
Kloen 541fc80240 citra-qt: Fix connect error on startup 2015-09-18 11:36:59 +02:00
Lioncash 543192e045 hash: Get rid of unused functions 2015-09-16 08:54:28 -04:00
Lioncash 751fbfdcc3 general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
Yuri Kunde Schlesner bbf92a54e5 Service/CFG: Add default entry for block 0x000A0001 (birthday) 2015-09-14 17:39:52 -03:00
Yuri Kunde Schlesner 13a8e39813 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 d91f1c0624 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 6c89d4ca26 Fix narrowing conversion warning 2015-09-14 17:39:50 -03:00
Yuri Kunde Schlesner 1fe72dcc04 Service/CFG: Move several private types from the header to the cpp 2015-09-14 17:39:49 -03:00
Yuri Kunde Schlesner ac4f7b0fde Service/CFG: Clean up default block creation 2015-09-14 17:39:48 -03:00
Yuri Kunde Schlesner b3af7aad9e 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 d6e56b8c88 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 1ed7f3e028 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 13683a6a11 memory_util: Remove unnecessary assignment in FreeMemoryPages 2015-09-11 23:16:34 -04:00
Lioncash 3972ac40ef memory_util: Remove commented out printf statements 2015-09-11 23:12:28 -04:00
Lioncash 07bfe0abbb general: Replace 0 literals with nullptr where applicable 2015-09-11 23:11:01 -04:00
Lioncash b9fb46ac9d synchronized_wrapper: Add missing return in SynchronizedRef move assignment operator 2015-09-11 22:00:21 -04:00
Yuri Kunde Schlesner 5bca1e6adf 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 5bf8eed96c 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 48f9bef75d Merge pull request #1142 from lioncash/hdrqt
citra_qt: Reorganize headers
2015-09-11 18:17:24 -03:00
Yuri Kunde Schlesner ece0f050a9 Merge pull request #1143 from lioncash/vcore-hdr
video_core: Reorganize headers
2015-09-11 18:17:02 -03:00
Lioncash ec93d6e19a graphics_breakpoints_p: Add missing override specifier 2015-09-11 16:32:02 -04:00
Lioncash 60b3fc01a2 General: Replace NULL and '0' usages with nullptr where applicable 2015-09-11 14:59:49 -04:00
bunnei ef622a07ff Merge pull request #1144 from lioncash/remove
common: Get rid of debug_interface.h
2015-09-11 09:47:36 -04:00
Lioncash bc886a7a03 common: Get rid of a cast in swap.h 2015-09-11 08:54:33 -04:00
Lioncash 5dc9950772 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 aec28ed91e video_core: Reorganize headers 2015-09-11 07:31:15 -04:00
Lioncash abe5bb4019 citra_qt: Reorganize headers 2015-09-11 00:57:24 -04:00
Lioncash 1fa772393b video_core: Remove unnecessary includes from headers 2015-09-11 00:10:03 -04:00
Yuri Kunde Schlesner abc34ddb88 Merge pull request #1130 from lioncash/block
memory: Get rid of pointer casts
2015-09-10 18:05:24 -03:00
bunnei a008b28659 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 0d5604fdcb Merge pull request #1136 from lioncash/proto
renderer_opengl: Remove unimplemented function declaration
2015-09-10 11:29:33 -04:00
bunnei 927b34a1e3 Merge pull request #1137 from lioncash/doc
General: Fix up doxygen comments
2015-09-10 11:29:16 -04:00
Lioncash d3efa637b4 General: Fix up doxygen comments 2015-09-10 11:20:21 -04:00
Lioncash 8a3428f16c renderer_opengl: Remove unimplemented function declaration 2015-09-10 10:45:44 -04:00
Lioncash 526eb33d1e video_core: Remove unused variables 2015-09-10 10:26:21 -04:00
Yuri Kunde Schlesner 248b2993e8 Merge pull request #1131 from lioncash/uninit
y2r: Give local variables an initial value
2015-09-10 01:21:58 -03:00
Lioncash 7b72b71605 gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle 2015-09-10 00:20:30 -04:00
Lioncash 9cf1cfe3fd memory: Get rid of pointer casts 2015-09-10 00:09:55 -04:00
Lioncash d7bfda3e26 disk_archive: Remove unimplemented constructor declarations 2015-09-09 23:49:03 -04:00
Lioncash f87093686e y2r: Give local variables an initial value
Keeps compilers/static analyzers quiet.
2015-09-09 23:38:55 -04:00
Yuri Kunde Schlesner 078969bdd0 CMake: Add option to download Qt and GLFW binaries over HTTP 2015-09-08 19:35:12 -03:00
Yuri Kunde Schlesner 2aad510c84 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 3244b2b79e 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 06b3891c66 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 0f2005c370 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 47221ab1e6 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 2011f9a042 Shader Debugger: Allow editing of input vertex data 2015-09-07 16:46:31 -03:00
Yuri Kunde Schlesner 2bdf9ede91 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 2c98275b51 Shader Debugger: Remove useless signal 2015-09-07 16:46:30 -03:00
Yuri Kunde Schlesner f77dfb3966 Shader Debugger: Fix only first vertex attribute being loaded 2015-09-07 16:46:29 -03:00
Yuri Kunde Schlesner c1beb2ce20 Shader Debugger: Fix freeze when double-clicking shader disassembly 2015-09-07 16:46:29 -03:00
Yuri Kunde Schlesner 2d195ba64e Shader Debugger: Improve space efficiency of the layout 2015-09-07 16:46:28 -03:00
Yuri Kunde Schlesner 8540e02176 Shader Disassembly: Fix printing of jump offsets 2015-09-07 16:46:27 -03:00
Yuri Kunde Schlesner 3194f40e96 Shader Disassembly: Fix disassembly of IFU/CALLU instructions 2015-09-07 16:46:27 -03:00
Yuri Kunde Schlesner bc3f57efd0 Shader Disassembly: Implement support for MAD/MADI 2015-09-07 16:46:26 -03:00
Yuri Kunde Schlesner 86d5461bcd Shader Disassembly: Introduce variables to hold common subexpressions 2015-09-07 16:46:25 -03:00
Yuri Kunde Schlesner ecbad494d9 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 9431ee330a Shader Disassembly: Cleanup code and improve output alignment 2015-09-07 16:46:23 -03:00
Kloen a962c30df1 citra-qt: Use monospace font on Disassembler and ARM Registers 2015-09-07 21:02:45 +02:00
LittleWhite 86e29ac281 Stop emulation when render window is closed 2015-09-07 20:34:39 +02:00
aroulin 1484a23530 Shader JIT: Use SCALE constant from emitter 2015-09-07 16:50:28 +02:00
aroulin 87e3b9ffc0 Shader: Fix size_t to int casts of register offsets 2015-09-07 16:50:28 +02:00
Lioncash a813f78551 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 9e8383e296 DynCom: Converted all 0xE condition code checks to ConditionCode::AL 2015-09-05 22:24:42 -07:00
Yuri Kunde Schlesner b044c047c4 OpenGL: Use Sampler Objects to decouple sampler config from textures
Fixes #978
2015-09-03 15:09:51 -03:00
Yuri Kunde Schlesner 466e608c19 OpenGL: Remove ugly and endian-unsafe color pointer casts 2015-09-03 15:09:51 -03:00
Yuri Kunde Schlesner ec28f037e6 OpenGL: Add support for Sampler Objects to state tracker 2015-09-03 15:09:50 -03:00
Yuri Kunde Schlesner cd817be922 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 cc19a76656 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 bc59aaccb1 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 e0c10019a9 Add cam:u service function names to its function table 2015-09-03 01:56:59 -07:00
bunnei 918ca40c68 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 ba998b85a1 video_core: Fix format specifiers warnings 2015-09-02 08:20:00 +02:00
aroulin 179ad35c2e 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 0b6c0afeb7 Common: Import BitSet from Dolphin 2015-09-01 23:39:52 +02:00
bunnei 5e3536f66f 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 f05ae742a4 Merge pull request #1083 from yuriks/microprofile-vs2015
Common: Fix MicroProfile compilation in MSVC2015
2015-08-31 21:20:36 -04:00
Tony Wasserka 071510b367 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 58a04c0776 Pica: Added the primitive_restart register (0x25f) to the registers map. 2015-08-31 09:14:18 -05:00
Subv 149ea561a6 Pica: Add the vertex_offset register to the Pica registers map. 2015-08-31 07:02:30 -05:00
aroulin 84959be150 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 e77dc4e9d2 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 12a11472f1 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 5906d8b01c 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 68eb197494 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 a1a5570e97 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 18c1c39d5e 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 58e9f78844 Merge pull request #1049 from Subv/stencil
Rasterizer: Corrected the stencil implementation.
2015-08-29 20:06:25 -04:00
Subv ce6a65cec9 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 656d824b20 Common: Fix MicroProfile compilation in MSVC2015 2015-08-28 06:12:12 -03:00
Yuri Kunde Schlesner 0ee3e2c25e 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 2978b5fbc8 Merge pull request #1075 from yuriks/ControlMem-fixes
Fix heap-management regressions
2015-08-27 19:43:55 -04:00
Yuri Kunde Schlesner c5a4025b65 Merge pull request #1065 from yuriks/shader-fp
Shader FP compliance fixes
2015-08-27 16:34:13 -07:00
bunnei f3cef178e3 gl_rasterizer_cache: Detect and ignore unnecessary texture flushes. 2015-08-27 19:07:53 -04:00
aroulin f52d8c1a9b 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 12390eb155 Kernel: Fix assertion failure when ControlMemory is called with size=0 2015-08-26 21:29:05 -03:00
Yuri Kunde Schlesner 687d973980 Core: Improve APT Shared Font hack
Should fix invalid read loops in some games
2015-08-26 21:28:58 -03:00
bunnei 32e279c0ca Merge pull request #1074 from lioncash/bool
dyncom: Minor changes to CondPassed
2015-08-26 18:44:52 -04:00
archshift dd0e1061ef 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 dc1b024b80 dyncom: Simplify some comparisons in CondPassed 2015-08-26 00:10:23 -04:00
Lioncash 01dd833ffa dyncom: Change return type of CondPassed to bool 2015-08-25 23:59:01 -04:00
Lioncash e7ebb9d36c citra-qt: Add a missing header guard to util.h 2015-08-25 23:07:33 -04:00
Yuri Kunde Schlesner 0fcabd2b11 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 c7745408f7 citra-qt: Add helper function to get a monospace QFont 2015-08-24 22:16:28 -03:00
bunnei afd45d1d7f 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 583d777b1a 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 eff10959de fixup! Shaders: Fix multiplications between 0.0 and inf 2015-08-24 02:10:11 -03:00
Yuri Kunde Schlesner d8ef20c856 Shader JIT: Tiny micro-optimization in DPH 2015-08-24 01:48:37 -03:00
Yuri Kunde Schlesner 630a850d4d 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 082b74fa24 Shaders: Explicitly conform to PICA semantics in MAX/MIN 2015-08-24 01:46:58 -03:00
Yuri Kunde Schlesner 76247170df Shader JIT: Add name to second scratch register (XMM4) 2015-08-24 01:46:10 -03:00
Lioncash fa5076eb9b shader_jit: Replace two MDisp usages with MatR 2015-08-24 00:39:50 -04:00
Yuri Kunde Schlesner 455147ee95 Shader JIT: Fix CMP NaN behavior to match hardware 2015-08-24 01:29:40 -03:00
bunnei 83c214f6d8 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 387bd3a1e4 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 d1b9383d86 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 03c5cfead4 Shader: Use std::sqrt for float instead of sqrt 2015-08-23 22:03:07 +02:00
aroulin fa552f11ef Shader: RCP and RSQ computes only the 1st component 2015-08-23 22:01:17 +02:00
aroulin 16f39aa452 x64-emitter: add RCPSS SSE instruction 2015-08-23 15:42:58 +02:00
Lioncash 250d474280 Merge pull request #1058 from lioncash/ptr
emitter: Remove pointer casts
2015-08-22 18:42:47 -04:00
Yuri Kunde Schlesner 78735e2ada Fix broken boot introduced by last-minute change in #1025 2015-08-22 18:12:23 -03:00
Yuri Kunde Schlesner 3efb205a68 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 2f1514b904 Shader: implement DPH/DPHI in JIT 2015-08-22 11:09:53 +02:00
aroulin 2e7cf2f6cf 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 78e7c77ff5 emitter: Remove pointer casts
This should also technically silence quite a few ubsan warnings.
2015-08-21 17:09:33 -04:00
Subv 0c7da9b815 HWRasterizer: Implemented stencil ops 6 and 7. 2015-08-21 11:05:56 -05:00
Subv 7c1f84a92b SWRasterizer: Implemented stencil ops 6 and 7.
IncrementWrap and DecrementWrap, verified with hwtests.
2015-08-21 11:01:42 -05:00
Subv e43eb130d4 HWRasterizer: Implemented stencil op 1 (GL_ZERO) 2015-08-21 10:59:49 -05:00
Subv fef1462371 SWRasterizer: Implemented stencil action 1 (GL_ZERO).
Verified with hwtests.
2015-08-21 10:35:25 -05:00
Subv b3e530d005 SWRasterizer: Removed a todo. Verified with hwtests. 2015-08-21 10:09:15 -05:00
Subv 8e6336d96b 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 e74825e3d0 Rasterizer: Abstract duplicated stencil code into a lambda. 2015-08-21 09:45:36 -05:00
Subv 46f660a789 GLRasterizer: Implemented stencil testing in the hw renderer. 2015-08-20 10:11:09 -05:00
Subv 186873420f GPU/Rasterizer: Corrected the stencil implementation.
Verified the behavior with hardware tests.
2015-08-20 10:10:35 -05:00
Lioncash e85c5dbb54 emitter: Remove unnecessary defines 2015-08-20 04:45:32 -04:00
Lioncash a796149c42 emitter: Remove unnecessary else keywords 2015-08-20 04:45:31 -04:00
Lioncash e88dc7fc6d emitter: Remove unused code 2015-08-20 04:45:30 -04:00
Lioncash 8738963bce emitter: Remove unimplemented JMP prototype 2015-08-20 04:45:29 -04:00
Lioncash 55461125ba emitter: Pass OpArg by reference where possible 2015-08-20 04:45:28 -04:00
Lioncash 0609b89f74 emitter: Remove unnecessary inline specifiers
Functions implemented in a class definition are already implicitly inline.
2015-08-20 04:45:22 -04:00
bunnei 21ba05e5f1 Merge pull request #1035 from darkf/mingw-fix
Fix building under MinGW
2015-08-19 20:40:31 -04:00
bunnei a575399fbc Merge pull request #1055 from aroulin/shader-sge-sgei-slt
Shader: Implement SGE, SGEI and SLT in interpreter/JIT
2015-08-19 19:58:49 -04:00
Yuri Kunde Schlesner 08325e51e5 Merge pull request #1045 from LittleWhite-tb/qt-recent-files
Improvements for MRU
2015-08-19 13:04:03 -07:00
LittleWhite adee93d784 Improvements for MRU
avoid duplicates
always put the last file loaded to top of the list
2015-08-19 21:33:34 +02:00
aroulin f3e8f42718 Shader: implement SGE, SGEI and SLT in JIT 2015-08-19 14:29:39 +02:00
aroulin 863730f6a7 Shader: implement SGE, SGEI in interpreter 2015-08-19 14:29:39 +02:00
Yuri Kunde Schlesner a9fc659809 Merge pull request #996 from yuriks/texture-copy
GPU: Implement TextureCopy-mode display transfers
2015-08-18 20:52:40 -07:00
bunnei 3c5ff418ca Merge pull request #1047 from aroulin/shader-ex2-lg2
Shader: Save caller-saved registers in JIT before a CALL
2015-08-18 22:02:25 -04:00
aroulin 2f9eb98f03 Shader: Save caller-saved registers in JIT before a CALL 2015-08-19 03:40:07 +02:00
bunnei 026379ed55 Merge pull request #1037 from aroulin/shader-ex2-lg2
Shader: Implement EX2 and LG2 in interpreter/JIT
2015-08-18 19:42:32 -04:00
darkf e053d30bf7 Fix building under MinGW 2015-08-17 22:21:14 -07:00
bunnei 1f18c9f8dd Merge pull request #1034 from yuriks/rg8-textures
videocore: Added RG8 texture support
2015-08-16 22:17:12 -04:00
aroulin 7d3a6016d6 Shader: implement EX2 and LG2 in JIT 2015-08-17 01:12:34 +02:00
LittleWhite 9d6748fa94 Fix Linux GCC 4.9 build (complaining about undeclared memset) 2015-08-16 17:21:08 +02:00
aroulin 638e47c04d Shader: implement EX2 and LG2 in interpreter 2015-08-16 15:54:30 +02:00
Tony Wasserka 96820ae42a Build fix for Debug configurations. 2015-08-16 15:14:54 +02:00
Tony Wasserka f5144e6c10 Merge pull request #997 from Lectem/cmdlist_full_debug
citra-qt: Improve pica command list widget (add mask, fix some issues)
2015-08-16 13:34:45 +02:00
Tony Wasserka 32592364b8 citra-qt/VertexShader: Minor UI improvements.
Renamed "Iteration index" to the (hopefully) more intuitive "Cycle Index".
Added flexible space at the bottom of the widget.
2015-08-16 14:12:12 +02:00
Tony Wasserka 493c432d1e citra-qt: Fix comment style. 2015-08-16 14:12:11 +02:00
Tony Wasserka 33ba604fd9 Introduce a shader tracer to allow inspection of input/output values for each processed instruction. 2015-08-16 14:12:11 +02:00
Tony Wasserka 2e3601f415 Pica/DebugUtils: Include uniform information into shader dumps. 2015-08-16 13:22:01 +02:00
Tony Wasserka 4cb302c8ae citra-qt: Improve shader debugger.
Now supports dumping the current shader and recognizes a larger number of output semantics.
2015-08-16 13:22:00 +02:00
Tony Wasserka 6a5d560c4f citra-qt: Print the correct swizzle mask for SRC2 in the shader disassembler. 2015-08-16 13:19:40 +02:00
Yuri Kunde Schlesner 0aa443a871 Merge pull request #1033 from bbarenblat/master
Handle `FileType::CIA` in `switch` statements
2015-08-15 22:40:29 -07:00
Yuri Kunde Schlesner 7d0c17d2ae citra-qt: Give RG8 format a proper name in the texture viewer 2015-08-16 02:36:33 -03:00
Patrick Martin 5b65d95310 videocore: Added RG8 texture support 2015-08-16 02:21:50 -03:00
Yuri Kunde Schlesner 9ae5a09655 GPU: Implement TextureCopy-mode display transfers
Fixes glitchy garbage in Fire Emblem 3D scenes.
2015-08-16 01:52:51 -03:00
bunnei 882040fde7 Merge pull request #1017 from LittleWhite-tb/qt-recent-files
citra-qt: save path for recent files loaded
2015-08-16 00:22:10 -04:00
bunnei 5989a6ac57 Merge pull request #1032 from lioncash/swap
vfp: use std::swap where applicable
2015-08-16 00:20:35 -04:00
Yuri Kunde Schlesner 840b85690b Kernel: Remove unused legacy heap MapBlock_* functions 2015-08-16 01:03:49 -03:00
Yuri Kunde Schlesner 38bfbe1b2b APT: Adjust shared font hack so it works with the new linear heap code 2015-08-16 01:03:48 -03:00
Yuri Kunde Schlesner 14eca982f4 Kernel: Implement svcGetProcessInfo in a basic way
This also adds some basic memory usage accounting. These two types are
used by Super Smash Bros. during startup.
2015-08-16 01:03:48 -03:00
Yuri Kunde Schlesner 74d4bc0af1 Kernel: Add more infrastructure to support different memory layouts
This adds some structures necessary to support multiple memory regions
in the future. It also adds support for different system memory types
and the new linear heap mapping at 0x30000000.
2015-08-16 01:03:47 -03:00
Yuri Kunde Schlesner c39b52f974 HLE: Remove empty ConfigMem and SharedPage Shutdown functions 2015-08-16 01:03:47 -03:00
Yuri Kunde Schlesner 69c3021a8d Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h} 2015-08-16 01:03:46 -03:00
Yuri Kunde Schlesner e2c7954be5 Memory: Move address type conversion routines to memory.cpp/h
These helpers aren't really part of the kernel, and mem_map.cpp/h is
going to be moved there next.
2015-08-16 01:03:46 -03:00
Yuri Kunde Schlesner a12a30c9e0 Process: Store kernel compatibility version during loading 2015-08-16 01:03:45 -03:00
Yuri Kunde Schlesner cdeeecf080 Kernel: Properly implement ControlMemory FREE and COMMIT 2015-08-16 01:03:45 -03:00
Yuri Kunde Schlesner ccab02c723 Memory: Move PAGE_MASK and PAGE_BITS to memory.h 2015-08-16 01:03:44 -03:00
Yuri Kunde Schlesner 306408d174 VMManager: Introduce names for used ResultCodes 2015-08-16 01:03:44 -03:00
Yuri Kunde Schlesner b9a9ad9742 VMManager: Make LogLayout log level configurable as a parameter 2015-08-16 01:03:43 -03:00
Yuri Kunde Schlesner 785407d06f VMManager: Change block offsets to size_t 2015-08-16 01:03:43 -03:00
Lioncash 46b0277cbf vfp: use std::swap where applicable 2015-08-15 19:08:51 -04:00
Yuri Kunde Schlesner 2e5696dba4 Merge pull request #1031 from bbarenblat/master
Handle invalid `Log::Class`
2015-08-15 15:34:12 -07:00
bunnei db97090cad Shader: Use a POD struct for registers. 2015-08-15 18:03:27 -04:00
bunnei b39c053785 Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. 2015-08-15 18:03:27 -04:00
bunnei 0ee00861f6 Common: Cleanup CPU capability detection code. 2015-08-15 18:03:26 -04:00
bunnei a1942238f5 Common: Move cpu_detect to x64 directory. 2015-08-15 18:03:26 -04:00
bunnei bd7e691f78 x64: Refactor to remove fake interfaces and general cleanups. 2015-08-15 18:03:25 -04:00
bunnei cfb354f11f JIT: Support negative address offsets. 2015-08-15 18:01:22 -04:00
bunnei 094ae6fadb Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.
- Config: Add an option for selecting to use shader JIT or interpreter.
- Qt: Add a menu option for enabling/disabling the shader JIT.
2015-08-15 18:01:07 -04:00
bunnei d67e2f78b7 Common: Added MurmurHash3 hash function for general-purpose use. 2015-08-15 17:33:46 -04:00
bunnei ddbeebb887 Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP. 2015-08-15 17:33:45 -04:00
bunnei 4d51792285 Common: Ported over Dolphin's code for x86 CPU capability detection. 2015-08-15 17:33:44 -04:00
bunnei 3f69c2039d Shader: Define a common interface for running vertex shader programs. 2015-08-15 17:33:44 -04:00
bunnei 18527b9e21 Shader: Move shader code to its own subdirectory, "shader". 2015-08-15 17:33:42 -04:00
bunnei 642b9b5030 GPU: Refactor "VertexShader" namespace to "Shader".
- Also renames "vertex_shader.*" to "shader_interpreter.*"
2015-08-15 17:33:41 -04:00
Benjamin Barenblat c0a87bc89f
Properly indicate that CIA support is not implemented yet
Make `Loader::LoadFile` return an `ErrorNotImplemented` if you call
it on a CIA file.
2015-08-15 16:05:38 -04:00
Benjamin Barenblat cd8be1846b
Give CIA file type a name
Make `GetFileTypeString` return ‘CIA’ for CIA (CTR Importable
Archive) files.
2015-08-15 15:45:27 -04:00
Benjamin Barenblat 7cd5a653ff
Handle invalid `Log::Class`
Add a case of `Log::Class::Count` to the switch statement that
dispatches on `Log::Class`.  The case simply calls the `UNREACHABLE`
macro.
2015-08-15 15:39:45 -04:00
bunnei cebf245504 Merge pull request #1027 from lioncash/debugger
debugger: Add the ability to view VFP register contents
2015-08-13 18:13:25 -04:00
archshift d1ae413ffd Stop defining GCC always_inline attributes as __forceinline
__forceinline is a MSVC extension, which may confuse some people working on the codebase.
Furthermore, the C++ standard dictates that all names which contain adjacent underscores are reserved.
2015-08-11 19:45:15 -07:00
bunnei 35f3360663 Merge pull request #893 from linkmauve/remove-uint._t-int._t
Replace standard uint*_t and int*_t with CommonTypes’ u* and s* types
2015-08-11 17:55:24 -04:00
Emmanuel Gil Peyrot 5115d0177e ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types. 2015-08-11 22:38:44 +01:00
bunnei 93f607f549 Merge pull request #1023 from yuriks/gl-state-bugs
OpenGL: Fix state tracking in situations with reused object handles
2015-08-11 17:19:45 -04:00
LittleWhite 66eabd326f Add menu and logic to save and load recently loaded files.
This menu is only for ROM and will not save symbols recently loaded.
When the menu is empty, the menu is disabled (greyed out)
2015-08-11 18:45:44 +02:00
aroulin 38c87733d9 arm_disasm: ARMv6 mul/div and abs media instructions
SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD,
SMMLA, SMMUL, SMMLS
USAD8, USADA8
2015-08-11 12:48:28 +02:00
aroulin 4a1db13072 arm_disasm: ARMv6 parallel add/sub media instructions
{S, U, Q, UQ, SH, UH}{ADD16, ASX, SAX, SUB16, ADD8, SUB8}
2015-08-11 12:48:23 +02:00
aroulin 0be8e1bfb6 arm_disasm: ARMv6 reversal media instructions
REV, REV16, REVSH
Only their ARM encoding, Thumb encoding is still missing.
2015-08-09 13:52:51 +02:00
aroulin e4ff244288 arm_disasm: ARMv6 saturation media instructions
SSAT, SSAT16, USAT, USAT16
2015-08-09 01:31:10 +02:00
aroulin 47657a1817 arm_disasm: ARMv6 packing and sign-extend media instructions
PKH, SEL
SXTAB, SXTAB16, SXTB, SXTB16, SXTH, SXTAH
UXTAB, UXTAB16, UXTB, UXTB16, UXTH, UXTAH
2015-08-09 01:31:03 +02:00
Lioncash f48a89af8b Merge pull request #1026 from lioncash/disasm
arm_disasm: Remove unnecessary code
2015-08-07 07:29:27 -04:00
Lioncash 132961b14f registers: Support viewing VFP registers 2015-08-07 02:11:07 -04:00
Lioncash 3b457a5876 arm_interface: Implement interface for retrieving VFP registers 2015-08-06 21:24:25 -04:00
Lioncash 5855cf087d registers: Fix a typo with CPSR's name 2015-08-06 21:11:25 -04:00
Lioncash 59d5358068 arm_disasm: Remove unnecessary code
This part of disassembly only determines the opcode, there's no need for offset calculation here.
2015-08-06 19:55:41 -04:00
aroulin 3425cfe54a Disassembler: ARMv6K REX instructions 2015-08-06 15:50:54 +02:00
aroulin 5d81a2fd48 Disassembler: ARMv6K hint instructions 2015-08-06 15:25:08 +02:00
Yuri Kunde Schlesner 254582aa35 OpenGL: Fix state tracking in situations with reused object handles
If an OpenGL object is created, bound to a binding using the state
tracker, and then destroyed, a newly created object can be assigned the
same numeric handle by OpenGL. However, even though it is a new object,
and thus needs to be bound to the binding again, the state tracker
compared the current and previous handles and concluded that no change
needed to be made, leading to failure to bind objects in certain cases.

This manifested as broken text in VVVVVV, which this commit fixes along
with similar texturing problems in other games.
2015-08-06 00:59:37 -03:00
Yuri Kunde Schlesner ff68db61bc OpenGL: Remove redundant texture.enable_2d field from OpenGLState
All uses of this field where it's false can just set the texture id to 0
instead.
2015-08-05 22:55:22 -03:00
bunnei b6c241d667 Merge pull request #1018 from bbarenblat/master
Handle invalid `Log::Level::Count`
2015-08-05 11:59:06 -04:00
Yuri Kunde Schlesner a96502edd3 Videocore: Implement simple vertex caching
This gives a ~2/3 reduction in the amount of vertices that need to be
processed through the vertex loaders and the vertex shader, yielding a
good speedup.
2015-08-04 23:41:47 -03:00
Benjamin Barenblat 0298b7bedd
Use UNREACHABLE macro for impossible cases in previous commit
Use the UNREACHABLE macro instead of `ASSERT(false, ...);`.
2015-08-02 18:30:24 -04:00
Yuri Kunde Schlesner 48393d452c Common: Work around bug in MSVC2015 standard library
The char16_t/char32_t implementations aren't present in the library and
cause linker errors. This is a known issue that wasn't fixed in VS2015
RTM.
2015-08-02 19:03:55 -03:00
Benjamin Barenblat 9ff23da255
Handle invalid `Log::Level::Count`
Add a case of `Log::Level::Count` to all switch statements that
dispatch on `Log::Level`.  The case simply asserts `false` and notes
the invalid log level.
2015-08-02 12:55:31 -04:00
LittleWhite cb405ad1b4 Save the path leading where the last file have been loaded
I use two variables to save the path for the ROMs and the symbols.
Use of QSettings to avoid new member variable to the class.
Global settings of QSettings is done in main.
2015-07-31 17:51:01 +02:00
bunnei ce65925bc3 Merge pull request #1008 from lioncash/pc
dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM
2015-07-30 10:44:50 -04:00
bunnei bb7eb5c574 Merge pull request #1006 from yuriks/fb-commit-profile
OpenGL: Add a profiler category measuring framebuffer readback
2015-07-30 10:39:38 -04:00
bunnei a5f77c9886 Merge pull request #1014 from lioncash/unused-warn
core: Eliminate some unused variable warnings
2015-07-29 16:47:44 -04:00
bunnei 9221e6e67a Merge pull request #1011 from lioncash/initializer
citra-qt: Adjust initializer list order
2015-07-29 16:46:34 -04:00
bunnei 31c1bb901b Merge pull request #963 from yuriks/gpu-fixes
Misc. GPU vertex loading fixes
2015-07-29 16:45:17 -04:00
Yuri Kunde Schlesner ea1b04f5da Merge pull request #1013 from lioncash/unused
dyncom: Remove an unused variable
2015-07-29 09:59:37 -07:00
Lioncash 75631b2a9f core: Eliminate some unused variable warnings 2015-07-29 12:34:18 -04:00
Lioncash 46663d657f dyncom: Remove an unused variable
This was used prior to InterpreterTranslate existing.
2015-07-29 12:21:16 -04:00
bunnei d3eb63a773 Merge pull request #1012 from lioncash/prototype
core: Fix missing prototype warnings
2015-07-29 12:18:29 -04:00
Lioncash 12a9e8502c core: Fix missing prototype warnings 2015-07-29 12:12:39 -04:00
Lioncash 5df3afd522 citra-qt: Adjust initializer list order
Silences a warning.
2015-07-29 12:03:59 -04:00
Lioncash 13ddf60f60 citra-qt: Pass string by const reference 2015-07-29 11:54:07 -04:00
Yuri Kunde Schlesner 8165de065b Merge pull request #1009 from lioncash/table
am_net: Update function table data
2015-07-29 08:40:19 -07:00
Lioncash 6b25e93119 am_net: Add missing function to the function table 2015-07-29 11:37:55 -04:00
Lioncash bed3618480 am_net: Add correct function name to the function table 2015-07-29 11:37:09 -04:00
bunnei e5606d9d6e Merge pull request #982 from Subv/home
Service/APT: Return proper parameters in GetLockHandle.
2015-07-29 11:12:17 -04:00
Lioncash 2e420aba3c dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM 2015-07-29 10:57:47 -04:00
Lioncash 2182adff9e dyncom: Handle left-operand PC correctly for data-processing ops
This is considered deprecated in the ARM manual (using PC as an operand),
however, this is still able to be executed on the MPCore (which I'm quite
sure would be rare to begin with).
2015-07-28 20:14:08 -04:00
bunnei 4ccc171db4 Merge pull request #899 from zawata/Winsock-Deprecation
SOC:U : Fix WinSock function deprecation
2015-07-28 16:44:29 -04:00
Yuri Kunde Schlesner 428154da45 OpenGL: Add a profiler category measuring framebuffer readback 2015-07-28 17:37:46 -03:00
LittleWhite 5e1c32048f Update Start menu text to match with the real state of the emulator.
Move start menu text update in ShutdownGame as adviced by neobrain
2015-07-28 21:04:14 +02:00
Trung Do cc98866b25 Settings: Fix saving wrong values for input configuration 2015-07-28 13:51:09 -04:00
bunnei fe15cf0019 Merge pull request #1003 from lioncash/armcruft
dyncom: Minor cleanups.
2015-07-28 09:58:42 -04:00
Tony Wasserka 62adb4ee7b Merge pull request #873 from jroweboy/input_array
Move input values into an array.
2015-07-28 13:17:12 +02:00
Lioncash 9be4ef3879 dyncom: Remove an unnecessary typedef 2015-07-28 03:41:25 -04:00
Lioncash 89540ea761 dyncom: Use enum class for instruction decoding results 2015-07-28 02:27:57 -04:00
James Rowe 1bc7829ee9 Move input values into an array 2015-07-27 21:41:21 -06:00
Lioncash 7e4fb4db19 dyncom: Remove code duplication regarding thumb instructions 2015-07-27 22:22:00 -04:00
Lioncash a507ea23c1 dyncom: Migrate exclusive memory access control into armstate 2015-07-27 22:06:59 -04:00
Lioncash db4e99c186 dyncom: Remove duplicated typedef and extern
These are already present in arm_dyncom_dec.h.
2015-07-27 22:06:51 -04:00
bunnei 62caa89f48 Merge pull request #1001 from lioncash/arm
dyncom: Centralize state-related functions.
2015-07-27 01:09:46 -04:00
bunnei e1a3fed6ff Merge pull request #991 from yuriks/globjects
OpenGL: Make OpenGL object resource wrappers fully inline
2015-07-26 16:37:33 -04:00
Lioncash 816b1ca776 dyncom: Use std::array for register arrays 2015-07-26 13:21:04 -04:00
Lioncash 0ecc6e2f04 dyncom: Use ARMul_State as an object
Gets rid of C-like parameter passing.
2015-07-26 13:18:32 -04:00
bunnei cb76453ec4 Merge pull request #992 from yuriks/hot-path-debug
VideoCore: #ifdef out some debugging routines
2015-07-26 11:45:51 -04:00
Lectem facb2555a9 citra-qt/debug_utils: Use lock_guard everywhere
unique_lock were being used as lock_guards.
Also replaced manual lock/unlock by lock_guard for harmonization.
2015-07-26 16:28:44 +02:00
Lectem b335cce22e citra-qt/command list: Do not recreate a widget after each selection
Recreating / replacing a widget is slow since it triggers a layout pass.
2015-07-26 16:23:28 +02:00
Lectem e663751f8b citra-qt/command list: Add mask column 2015-07-26 16:23:12 +02:00
Lectem cd06f5cedb citra-qt/command list: monospace font on windows 2015-07-26 16:07:46 +02:00
Yuri Kunde Schlesner 1762267de4 OpenGL: Make OpenGL object resource wrappers fully inline
The functions are so simple that having them separate only bloats the
code and hinders optimization.
2015-07-26 10:58:58 -03:00
Tony Wasserka 72237a9305 Merge pull request #987 from yuriks/regnames
Videocore: Don't reinitialize register name map on every query.
2015-07-26 15:56:56 +02:00
Yuri Kunde Schlesner e130dac7de Videocore: Don't reinitialize register name map on every query
This greatly speeds up the command list debug widget.
2015-07-26 10:10:10 -03:00
Yuri Kunde Schlesner a99fb226fe Merge pull request #995 from linkmauve/remove-dead-option
Remove dead gpu_refresh_rate option from the default ini file
2015-07-26 05:18:39 -07:00
Emmanuel Gil Peyrot 168997df46 Citra: Remove dead gpu_refresh_rate option from the default ini file. 2015-07-26 13:16:51 +01:00
Tony Wasserka 7a132e2a77 Merge pull request #986 from Lectem/better_widgets
citra-qt: Improve pica command list widget.
2015-07-26 14:09:03 +02:00
Yuri Kunde Schlesner 4909a1486e Videocore: Simplify variables in vertex shader interpreter
Simplifies the code and gives a tiny speed-up.
2015-07-26 08:49:35 -03:00
Yuri Kunde Schlesner 877d2a0e48 Videocore: Replace std::stack in shader interpreter with static_vector
Shaves off 1/3rd of the vertex shader time in Fire Emblem
2015-07-26 08:49:35 -03:00
Yuri Kunde Schlesner 13347997ba VideoCore: #ifdef out some debugging routines
Some disabled debugging functionality was being called from rendering
routines in VideoCore. Although disabled, many of them still allocated
memory or did some extra work that was enough to show up in a profiler.
Gives a slight (~2ms) speedup.
2015-07-26 06:55:47 -03:00
Lioncash 03213f893e dyncom: Remove unnecessary initialization code.
Targeting ARM version variants was only a thing on armemu.

The reset routine also does basically the same thing as NewState.
2015-07-25 22:10:54 -04:00
Lioncash 3257d797e1 dyncom: Remove unnecessary abort-related cruft
Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary.
2015-07-25 22:10:53 -04:00
Lioncash dfb424b6d1 dyncom: Rename armdefs.h to armstate.h 2015-07-25 22:10:44 -04:00
Lioncash 4bb1a5ca47 dyncom: Get rid of skyeye typedefs 2015-07-25 20:52:10 -04:00
Lioncash 0191c26521 dyncom: Move helper functions to their own header 2015-07-25 20:35:18 -04:00
Lioncash 6b73e4566b dyncom: Move arminit.cpp and armsupp.cpp into skyeye_common 2015-07-25 20:01:44 -04:00
Yuri Kunde Schlesner 453764aefc Merge pull request #989 from lioncash/extern
armdefs: Remove unnecessary extern keywords
2015-07-25 15:40:23 -07:00
Lioncash f7ba683dc3 armdefs: Remove unnecessary extern keywords 2015-07-25 18:32:57 -04:00
Lioncash 43d799fd9d loader: Remove unnecessary else usages 2015-07-25 18:10:13 -04:00
Lectem e286cfbadf citra-qt/command list: Enable uniform row heights and automatically resize columns.
Uniform row heights enables some optimisations for a smoother scrolling.
Resize columns to content so that we don't have to do it manually
2015-07-25 22:13:23 +02:00
Lectem 129e3dedc3 citra-qt/command list: Split register and value columns.
Also removed the extra spaces for each cell
2015-07-25 22:13:04 +02:00
Yuri Kunde Schlesner 24d7c05c8d Merge pull request #888 from zawata/Warning-Fixes-2
Core\HLE : Fix Warning
2015-07-25 12:55:34 -07:00
Yuri Kunde Schlesner 00529c71d4 Address error that remained in last merge 2015-07-25 16:54:51 -03:00
Yuri Kunde Schlesner 9a0f9f12cd Merge pull request #892 from zawata/another-warning-fixes
Yet More Warning Fixes
2015-07-25 12:50:32 -07:00
Yuri Kunde Schlesner 43e1f56ff5 Merge pull request #981 from Subv/checkboxes
Qt/GPU Breakpoints: Changed the widget to have a checkbox next to each bp type
2015-07-25 12:00:10 -07:00
Subv 599744921d Service/APT: Fixed a regression, PreloadLibraryApplet should also start an applet when called. 2015-07-23 21:32:30 -05:00
Subv ce31184557 Service/APT: Return proper parameters in GetLockHandle.
Documented some APT functions
This allows applets to boot.
2015-07-23 20:46:11 -05:00
Subv 23fd13dd64 Qt/GPU Breakpoints: Changed the widget so that we don't have to select and click the Enable button when enabling/disabling a breakpoint, now it is done via a checkbox next to the breakpoint's name. 2015-07-23 19:37:52 -05:00
Yuri Kunde Schlesner a989522384 Merge pull request #983 from yuriks/null-memory-fill
GSP: Don't try to write memory fill registers if start address is 0
2015-07-23 17:31:38 -07:00
Yuri Kunde Schlesner 3b61dd97e0 GSP: Don't try to write memory fill registers if start address is 0
Verified to be what GSP does via REing. Fixes invalid virt->phys
translation error spam in some games.
2015-07-23 21:20:01 -03:00
Tony Wasserka 1760eb5ca6 Merge pull request #980 from Subv/more_breakpoints
Qt/GPU Breakpoints: Added three more breakpoint types.
2015-07-24 01:58:11 +02:00
Yuri Kunde Schlesner 1fe9b0b82e VideoCore: Fix values of unset components in input attribute arrays
If an input attribute array had a field with less than 4 components, the
remaining components were left unset if not specified by a default
vertex attribute. If neither mechanism would set a component, it would
assume a garbage value.

It has been verified that the hardware behavior is to instead to set the
missing components from the fixed default of (0 0 0 1). The default
vertex attribute values aren't used at all if a vertex array is
specified for that attribute.

Fixes UI graphics on Fire Emblem: Awakening, a small texturing glitch
when selecting a character in Cubic Ninja, as well as eliminating the
unset-W hack which was required for Ocarina of Time to not have
garbled triangles.

This change has been tested against hardware.
2015-07-23 16:51:25 -03:00
Yuri Kunde Schlesner 4e09202226 VideoCore: Saturate vertex colors before interpolating
During testing, it was discovered that hardware does not interpolate
colors output by the vertex shader as-is. Rather, it drops the sign and
saturates the value to 1.0. This is done before interpolation, such that
(e.g.) interpolating outputs 1.5 and -0.5 is equivalent to as if the
shader had output the values 1.0 and 0.5 instead, with the interpolated
value never crossing 0.0.

This change has been tested against hardware.
2015-07-23 16:51:24 -03:00
Subv 6c0ea5f5e8 Qt/GPU Breakpoints: Added three more breakpoint types:
* IncomingDisplayTransfer: Triggered just before a display transfer is performed.
* GSPCommandProcessed: Triggered right after a GSP command is processed.
* BufferSwapped: Triggered when the frames flip
2015-07-23 11:47:34 -05:00
bunnei cea45af64d Merge pull request #977 from yuriks/glenable-tex2d
GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls
2015-07-23 10:07:35 -04:00
Subv 7b4961e968 Rasterizer/GL: Set the border color when binding a texture. 2015-07-22 18:41:37 -05:00
Yuri Kunde Schlesner e5c4fe0098 GL Renderer: Remove erroneous glEnable(GL_TEXTURE_2D) calls
In OpenGL 3, texturing is always enabled, and this call is invalid.
While it produced no effect in the rest of the execution, it wouldn't
have the intended effect of disabling texturing for that unit. Instead
bind a null texture to the unit.
2015-07-22 01:22:09 -03:00
bunnei 3a5352baf8 Merge pull request #968 from Subv/texture_filtering
GPU: Added registers for min and mag texture filters
2015-07-21 18:27:50 -04:00
bunnei 4a9e97d67d Merge pull request #962 from Subv/am_app
Services/AM: Stubbed am:app::GetNumContentInfos to return 0 results.
2015-07-21 18:26:31 -04:00
Subv 009e34f08a GPU: Added registers for min and mag texture filters and implemented them in the hw renderer. 2015-07-21 16:26:09 -05:00
bunnei d0b45d45b5 Merge pull request #966 from Subv/log
Services/Logging: Log more useful information when some operations fail.
2015-07-21 15:14:35 -04:00
Subv f5bff67b0b Services/Logging: Log more useful information when some operations fail.
Namely OpenFileDirectly, OpenDirectory and OpenArchive
2015-07-21 13:49:08 -05:00
bunnei dcc8f1bef2 Merge pull request #957 from Subv/hwtest_crash
Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.
2015-07-21 12:11:48 -04:00
Tony Wasserka aa6dfdb827 Merge pull request #929 from neobrain/geoshader_definitions
Pica/Shader: Add geometry shader definitions.
2015-07-21 15:24:48 +02:00
Lioncash 043b2f882a Merge pull request #964 from lioncash/svc
dyncom: Pass SVC immediates directly.
2015-07-21 05:49:05 -04:00
Yuri Kunde Schlesner a48aa4f924 Resolve issue accidentally left unaddressed in PR #930 2015-07-21 06:48:30 -03:00
Lioncash c2689b8c2c dyncom: Pass SVC immediates directly.
Previously it would just re-read the already decoded instruction and extract the immediate value.
2015-07-21 03:56:29 -04:00
Sebastian Valle baba0efcd1 Merge pull request #959 from Subv/home
Services/CFG: Added some missing functions to cfg:s
2015-07-21 01:28:02 -05:00
Subv 13f93a0188 Services/AM: Stubbed am:app::GetNumContentInfos to return 0 results.
Named the service functions in am:app as per 3dbrew.

This fixes an illegal read loop in Steel Diver
2015-07-21 00:12:13 -05:00
Yuri Kunde Schlesner 8833852acd Merge pull request #930 from neobrain/copypaste_commandlist
citra-qt: Add support for copying the command list contents to clipboard.
2015-07-20 21:44:57 -07:00
Subv 38a7f1b727 Services/CFG: Added some missing functions to cfg:s 2015-07-20 19:52:07 -05:00
Subv 275aaeef9c Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.
They'll be reset if needed during the next svcWaitSynchronization call (if there's any pending)
2015-07-20 17:15:54 -05:00
bunnei cd2bb2dc69 Merge pull request #939 from Subv/queryprocmem
Kernel/SVC: Implemented svcQueryProcessMemory
2015-07-20 00:34:41 -04:00
bunnei 863a963911 Merge pull request #951 from Subv/bit5
GPU/DisplayTransfer: Implemented bit 5 in the transfer flags.
2015-07-19 22:42:44 -04:00
bunnei 9a3b21bcf9 Merge pull request #944 from Subv/spam
GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist.
2015-07-19 22:40:57 -04:00
bunnei 21a696abde Merge pull request #946 from archshift/update-frdu
Add more frd:u unknown service commands from 3dbrew
2015-07-19 22:39:51 -04:00
zawata 395e63d5aa SOC:U : Update deprecated function gethostbyname() to getaddrinfo() 2015-07-19 19:32:12 -07:00
Subv 63dbff9b1f GPU/DisplayTransfer: Implemented bit 5 in the transfer flags.
It tells the GPU to not swizzle/de-swizzle the input during the transfer.
2015-07-19 21:30:42 -05:00
Lioncash a2f0a3d019 dyncom: Properly retrieve the PC value in BX if used. 2015-07-19 22:20:14 -04:00
Yuri Kunde Schlesner ae985bf500 Pica: Correct switched S/T texture wrapping registers
This was found and hwtested by Lectem
2015-07-19 19:27:23 -03:00
Yuri Kunde Schlesner 5a75cf8fd2 Pica: Fix DP3 instruction, which wasn't assigning to the w component 2015-07-19 19:01:59 -03:00
archshift 84a88005e2 Change trace/unimplemented service call logs to use hex
Changes the log to use hex in the parameter list instead of decimal.
2015-07-19 13:34:38 -07:00
archshift d1e6afaba1 Add more frd:u unknown service commands from 3dbrew 2015-07-19 13:30:20 -07:00
Subv a694caeee0 GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist. 2015-07-19 14:09:23 -05:00
Subv 3600c32483 Rasterizer/Textures: Fixed a bug where the I4 format would get twice the real stride.
Also added its name to the texture viewer widget
2015-07-19 13:15:23 -05:00
zawata 6933a50aeb Vertex Shader : Undo casting 2015-07-19 04:12:42 -07:00
zawata 04756bdaf6 Video_Core : Type fixes 2015-07-19 04:12:40 -07:00
zawata 972dccc3f6 Core : Change variable type
and fix various warnings
2015-07-19 04:12:39 -07:00
zawata f7050021de Video_Core: Finally fix pesky warning 2015-07-19 04:08:44 -07:00
zawata c66b5ca3d9 Citra_QT : Another Conversion Warning Fix 2015-07-19 03:59:52 -07:00
zawata 017437e8d7 Video_Core : Change Tabs to Spaces
This really should be universalized, I keep getting errors creating
commits because lines I've edited use tabs instead of spaces(and yes I
did read the contributing guide and i know they are supposed to be
spaces)
2015-07-19 03:59:50 -07:00
zawata 716120da3d Video_Core : Fix Conversion Warnings 2015-07-19 03:59:49 -07:00
zawata 1be1ff23a9 Core : Fix Conversion Warnings 2015-07-19 03:59:47 -07:00
zawata 6e9a6ca6bf Common : Fix Conversion Warnings 2015-07-19 03:59:46 -07:00
zawata 3c802b06e9 Citra_QT : Fix Conversion Warnings 2015-07-19 03:59:44 -07:00
Yuri Kunde Schlesner 71be5853e0 Merge pull request #941 from citra-emu/armv6-thumb-mov
Dyncom: Support for a new ARMv6 Thumb MOV encoding
2015-07-18 12:49:02 -07:00
Emmanuel Gil Peyrot fcdc8118eb Common: Remove the unused and commented GetThemeDir prototype from FileUtil. 2015-07-18 13:08:19 +01:00
Yuri Kunde Schlesner 13286903e6 Dyncom: Support for a missing ARMv6 Thumb MOV encoding 2015-07-18 03:41:49 -03:00
Subv 83fa3f977d Kernel/SVC: Implemented svcQueryProcessMemory 2015-07-17 14:55:35 -05:00
Yuri Kunde Schlesner 41513cfb0c Merge pull request #938 from Subv/querymem
Kernel/SVC: Implemented svcQueryMemory.
2015-07-17 12:33:26 -07:00
Subv 9e2962081a Kernel/SVC: Implemented svcQueryMemory. 2015-07-17 11:03:56 -05:00
bunnei 32be6a4553 Merge pull request #937 from yuriks/codeset-leak
Ensure all kernel objects are released during shutdown
2015-07-17 11:03:28 -04:00
zawata f723a498e7 Core\HLE : Fix Warning
"signed/unsigned mismatch"
2015-07-17 00:50:53 -07:00
Yuri Kunde Schlesner dc39d06950 Ensure all kernel objects are released during shutdown
This commit fixes several kernel object leaks. The most severe of them
was threads not being removed from the private handle table used for
CoreTiming events. This resulted in Threads never being released, which
in turn held references to Process, causing CodeSets to never be freed
when loading other applications.
2015-07-17 02:24:13 -03:00
Lioncash 23dbbb786a arm_dyncom_interpreter: Simplify assignment in SMLAW
Also a side-benefit of not having implementation-defined behavior.
2015-07-16 22:08:12 -04:00
bunnei 946f0ee2f4 Merge pull request #918 from yuriks/romfs
Do not load entire RomFS to memory, read from the file as needed instead (rebased)
2015-07-16 18:08:46 -04:00
Tony Wasserka 7fd03750bd citra-qt: Add support for copying the command list contents to clipboard. 2015-07-15 17:51:59 +02:00
Tony Wasserka 33568494af Pica/Shader: Add geometry shader definitions. 2015-07-15 17:31:57 +02:00
Tony Wasserka 0ea2319f3c Merge pull request #931 from neobrain/move_default_attr_handler
Pica/CommandProcessor: Move default attribute setup to the proper position.
2015-07-15 17:22:50 +02:00
Tony Wasserka aeec12dc33 Pica/CommandProcessor: Move default attribute setup to the proper position. 2015-07-15 17:56:38 +02:00
Tony Wasserka d2c3ecc8d8 Pica/Clipper: Output proper number of triangles in debugging logs. 2015-07-15 18:01:43 +02:00
Lectem d08e9b29e2 VideoCore: Implement the DOT3_RGB combiner 2015-07-14 02:16:10 -03:00
archshift 2501f111a6 Merge pull request #904 from aroulin/y2r-narrowing-warning
Y2R: Fix narrowing warning
2015-07-13 22:07:39 -07:00
Yuri Kunde Schlesner 62c2a262b2 Loader: Fix variable type and remove unused variable 2015-07-13 21:10:13 -03:00
Yuri Kunde Schlesner a1f08788d9 Archive: Correct a few incorrect types in function signatures
Buffer lengths should be size_t, and file offsets should be u64.
2015-07-13 21:10:12 -03:00
Yuri Kunde Schlesner 2d7299a86f Loader: Remove unnecessary pointer indirection to IOFile 2015-07-13 20:00:56 -03:00
condut c385b7767d FS: Stream RomFS from file instead of loading all of it to memory 2015-07-13 19:57:12 -03:00
Yuri Kunde Schlesner 1fc0347d27 Merge pull request #924 from aroulin/qt-disassembly-step
Qt: Fix disassembly widget stepping
2015-07-13 14:16:36 -07:00
Tony Wasserka 5e79706db2 Pica: Implement stencil testing. 2015-07-13 23:54:39 +02:00
Tony Wasserka 302e9a20f3 citra-qt: Add depth formats to framebuffer viewing widget. 2015-07-13 23:54:38 +02:00
Tony Wasserka 88df3fbf27 citra-qt: Properly specify the framebuffer format. 2015-07-13 23:52:29 +02:00
Tony Wasserka 29abb11e8f CiTrace: Clean up initialization method. 2015-07-13 22:27:21 +02:00
Tony Wasserka dc8295298e CiTrace: Record LCD registers. Cleanup recording code. 2015-07-13 22:27:21 +02:00
Tony Wasserka fd62580985 CiTrace: Record default vertex attributes. 2015-07-13 22:27:21 +02:00
Tony Wasserka 0799b40caa Clean up command_processor.cpp. 2015-07-13 22:27:21 +02:00
Tony Wasserka 01a526e1c4 citra-qt: Properly disable the CiTrace widget upon starting/stopping emulation. 2015-07-13 22:27:21 +02:00
Tony Wasserka 902fa4da52 Add CiTrace recording support.
This is exposed in the GUI as a new "CiTrace Recording" widget.

Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
2015-07-13 22:27:20 +02:00
Tony Wasserka 93d66475d4 GPU: Be robust against nullptr addresses; properly reset busy bits in the trigger registers. 2015-07-13 22:27:20 +02:00
Tony Wasserka 279e19732c FileUtil: Add a WriteObject method for writing a single, POD-type object. 2015-07-13 22:27:20 +02:00
Tony Wasserka 256bdfb579 HW: Fix a stupid issue which led to unknown register reads/writes. 2015-07-13 22:27:20 +02:00
aroulin 7ccce98389 Qt: Fix disassembly widget stepping 2015-07-13 17:27:12 +02:00
Yuri Kunde Schlesner c4e11519af Merge pull request #859 from Apology11/master
build with visual studio 2015
2015-07-12 15:02:11 -07:00
bunnei b6719ec922 Merge pull request #921 from linkmauve/fix-applet
Fix applet includes using iwyu
2015-07-12 17:25:55 -04:00
Yuri Kunde Schlesner d4f35fd989 Kernel: Add CodeSet case to Object::IsWaitable 2015-07-12 18:15:16 -03:00
Emmanuel Gil Peyrot fe909b3b5a Core: Fix applet includes using iwyu. 2015-07-12 22:10:37 +01:00
Greg Wicks 9930ef72dd Implement new argument parsing using getopt and add the corresponding library to externals 2015-07-12 15:49:23 -04:00
Apology11 af18572491 don´t define snprintf on Visual Studio 2015
Visual Studio 2015 defines this in stdio now
2015-07-12 13:12:14 +02:00
aroulin 1f125a04c3 Y2R: Fix narrowing warning 2015-07-12 03:49:16 -04:00
bunnei f4e1d8ea36 Merge pull request #823 from Subv/applets_drawing
Library applet support (swkbd for now)
2015-07-11 23:56:59 -04:00
Subv 725d5eea78 Applets: Reworked how the Applet update event is handled.
Applets are now cleaned up in AppletUpdateEvent after calling their respective Update method.
2015-07-11 22:32:12 -05:00
Yuri Kunde Schlesner 5c5cf2f8e0 Core: Properly configure address space when loading a binary
The code now properly configures the process image to match the loaded
binary segments (code, rodata, data) instead of just blindly allocating
a large chunk of dummy memory.
2015-07-11 23:54:42 -03:00
Yuri Kunde Schlesner 51820691e7 Memory: Fix unmapping of pages 2015-07-11 23:49:53 -03:00
Yuri Kunde Schlesner 34f5f77507 Loader: Clean up 3dsx loader a bit, fixing a potential buffer overrun 2015-07-11 23:49:52 -03:00
Yuri Kunde Schlesner fdbf410bd7 Loader: Make 3dsx loader logs a bit less confusing 2015-07-11 23:49:52 -03:00
Yuri Kunde Schlesner d9556912b4 Kernel: Remove unused member from Event 2015-07-11 23:49:51 -03:00
Subv 621ee10eae Applets: Add infrastructure to allow custom drawing and input handling in Applets. 2015-07-11 21:47:23 -05:00
Subv 2a6ebadf66 HLE/APT: Initial HLE support for applets.
Currently only the SWKBD is emulated, and there's currently no way to ask the user for input, so it always returns "Subv" as the text.
2015-07-11 21:47:22 -05:00
Yuri Kunde Schlesner b0d72e3de1 Merge pull request #914 from yuriks/bitfield-mask
Common: Fix mask generation in BitField
2015-07-11 19:01:57 -07:00
Tony Wasserka e110e656b9 Merge pull request #910 from linkmauve/install
Tell CMake to install the compiled binaries on Linux.
2015-07-12 03:25:53 +02:00
Tony Wasserka ae7120f5d9 Merge pull request #907 from Lectem/clamp_to_border
Add GL_CLAMP_TO_BORDER support.
2015-07-12 03:19:46 +02:00
Lioncash e5d90b5797 Common: Remove thunk.h
This isn't used, and there's no implementations of the member functions.
2015-07-10 20:09:41 -04:00
Yuri Kunde Schlesner 867c28ae03 Merge pull request #876 from linkmauve/include-cleanups
Cleanup includes, mostly in common
2015-07-10 16:36:12 -07:00
Yuri Kunde Schlesner d5b5280501 Common: Remove redundant masking in BitField
For the signed case, the shifts already remove the rest of the value, so
ANDing by the mask is redundant.
2015-07-10 18:43:41 -03:00
Yuri Kunde Schlesner d7f9529bdd Common: Fix mask generation in BitField
Fixes #913
2015-07-10 18:43:40 -03:00
Lectem 58d1c6398e Added GL_CLAMP_TO_BORDER support 2015-07-09 22:23:26 +02:00
Emmanuel Gil Peyrot 7c51bc44aa Citra, CitraQt: Tell cmake to install the compiled binaries.
This will help packaging tremendously, as a `make DESTDIR=… install` will now
put every file at their place (on Linux and related).
2015-07-09 20:19:02 +01:00
aroulin 769407e4fa Loader: Remove log line causing warning 2015-07-08 00:04:21 +02:00
bunnei 0ef3f12c71 Merge pull request #797 from linkmauve/blended-downscaling
Implement blended downscaling for display transfers
2015-07-06 11:35:55 -04:00
bunnei c19f9945b7 Merge pull request #885 from Subv/ipc_headers
Services/SOC: Added command headers to some of the soc commands.
2015-07-06 11:19:58 -04:00
Lioncash e3e8ad48c1 vfp: Change return type of VFPInit from unsigned int to void. 2015-06-29 14:51:38 -04:00
Lioncash 32a6379bc8 vfp: Handle accesses to FPINST/FPINST2 system registers
Also has a side-benefit of correcting access to the FPEXC register.
2015-06-29 03:27:26 -04:00
Emmanuel Gil Peyrot 641e78bccf GPU: Implement blended downscaling for display transfers. 2015-06-28 15:11:26 +01:00
Emmanuel Gil Peyrot 8ee814ec27 GPU: Use shifts instead of multiplications to calculate the actual size of the output. 2015-06-28 14:31:13 +01:00
Emmanuel Gil Peyrot ab61e67c09 Common: Remove unused type unions breaking aliasing rules in horrible ways. 2015-06-28 10:48:42 +01:00
Emmanuel Gil Peyrot 4964a359e1 Core: Cleanup hw includes. 2015-06-28 00:46:39 +01:00
Emmanuel Gil Peyrot 7b746914b9 Core: Cleanup soc:U includes. 2015-06-28 00:36:55 +01:00
Emmanuel Gil Peyrot f48b28ad27 Core, VideoCore: Replace or fix exit() calls. 2015-06-28 00:36:55 +01:00
Emmanuel Gil Peyrot e5fcabdd69 Core: Cleanup file_sys includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot aea15f5c73 Core: Cleanup core includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 45c4781544 CitraQt: Cleanup includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 22ae87530b Common: Cleanup emu_window includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 1775adc34c Common: Remove unused ROUND_UP_POW2 macro. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 596b7c4f63 Common: Cleanup key_map includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 2d044a67c9 Common: Cleanup memory and misc includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 3a771a13dc Common: Cleanup profiler includes. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot 2a36edfd86 Common: Cleanup thread includes. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot 13e6876463 Common: Fix string_util includes. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot 8cf9eb7f43 Common: Fix FileUtil includes, and everything relying on those. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot 79aa1b0808 Citra: Fix the includes a bit, thanks to include-what-you-use. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot ce0cfd62d9 Common: Remove now-unused EMU_PLATFORM define, fixes issue #373. 2015-06-27 14:43:57 +01:00
Emmanuel Gil Peyrot 82718c4a41 Common: Remove unused SSE version checking and a GCC macro. 2015-06-27 14:43:57 +01:00
Emmanuel Gil Peyrot c345247431 Services: Use the standard _WIN32 define in soc:U instead of our own EMU_PLATFORM. 2015-06-27 14:43:56 +01:00
Emmanuel Gil Peyrot 0aade9ad63 Common: Remove unused fifo_queue.h. 2015-06-27 14:43:56 +01:00
zawata 92bfec0566 VideoCore: Fix floating point warning 2015-06-26 21:38:04 -07:00
Subv bd336cfdce Services/SOC: Added command headers to some of the soc commands. 2015-06-25 12:55:27 -05:00
Yuri Kunde Schlesner 81488d7a6a Add helpers to create IPC command buffer headers and descriptors 2015-06-22 19:24:19 -03:00
Yuri Kunde Schlesner dc09a2ecb5 Merge pull request #860 from yuriks/y2r-color
Color support for Y2R
2015-06-21 17:22:34 -07:00
Yuri Kunde Schlesner 3e6663da43 Y2R: Rework conversion process, enabling support for all formats 2015-06-21 20:58:55 -03:00
bunnei 9850f98339 Merge pull request #855 from purpasmart96/service_rearrangment
Services: Continue separation of services into their own folders
2015-06-21 10:55:02 -04:00
Yuri Kunde Schlesner 29d2b70ea4 Y2R: Re-organize how params are stored. Support SetConversionParams 2015-06-20 19:21:16 -03:00
Greg Wicks e93056ae77 Make the call stack entries not editable 2015-06-19 11:22:20 -04:00
bunnei 2e16edbc56 Merge pull request #849 from bunnei/fix-waitsynch-2
Fix svcWaitSynch to correctly acquire wait objects
2015-06-17 18:07:15 -04:00
Lioncash a5a6306f59 Merge pull request #864 from linkmauve/gl-info
Log the GL driver’s vendor and renderer
2015-06-17 16:29:04 -04:00
bunnei 71e8822d23 kernel: Fix svcWaitSynch to always acquire requested wait objects. 2015-06-16 22:34:39 -04:00
Lioncash f1ff0fbf07 Merge pull request #866 from lioncash/typo
hw: Fix mismatched Write call
2015-06-16 17:04:34 -04:00
Lioncash bbe4430922 hw: Fix mismatched Write call 2015-06-16 15:49:22 -04:00
Emmanuel Gil Peyrot 94fc644430 VideoCore: Log the GL driver’s vendor and renderer. 2015-06-16 00:02:23 +01:00
Yuri Kunde Schlesner 9b7d85a4f5 video_core: add extra braces around initializer
Trivial change and fixes several warnings in the clang build.
2015-06-14 00:33:08 -03:00
Lioncash 71858fc7cc vfp: Handle accesses to the VFP media feature registers
These are able to be accessed in any privilege mode.
2015-06-12 20:21:51 -04:00
Lioncash e817224f89 vfp: Implement VMOVBCR/VMOVBRC 2015-06-12 02:47:10 -04:00
purpasmart96 7933dbe6a0 Services: Continue separation of services into their own folders 2015-06-11 20:41:59 -07:00
bunnei ca5d1545c3 Merge pull request #835 from tfarley/hw-renderer-fixes
HW Renderer Screen Fixes
2015-06-09 19:12:00 -04:00
Clienthax 8515b23bec Robocopy doesn't like trailing slashes 2015-06-09 18:38:00 +01:00
tfarley 26bc816d7a Renderer formatting edits 2015-06-08 19:19:15 -04:00
tfarley 66b0d799ee Render-to-texture flush, interval math fix 2015-06-08 19:18:20 -04:00
tfarley 5025b35563 Liberal texture unbind (clout menu) 2015-06-08 19:18:19 -04:00
tfarley fa2c92a3ac Depth format fix (crush3d intro/black screens) 2015-06-08 19:18:18 -04:00
tfarley d42275f11c Implemented glColorMask 2015-06-08 19:18:17 -04:00
Lioncash 04f204ed00 arm_dyncom_thumb: Fix handling of writeback for thumb LDMIA 2015-06-04 08:42:14 -04:00
Subv 66c1db7288 ExtSavedata: Save the icon passed to CreateExtSaveData to the correct folder.
Organize the ExtSaveData folders as they are stored in the console.
2015-06-01 21:48:19 -05:00
Lioncash 1974da272d Merge pull request #838 from lioncash/thumb
arm_dyncom_thumb: Implement missing instructions.
2015-05-31 22:19:31 -04:00
Lioncash c00781a908 arm_dyncom_thumb: Fix encoding of BKPT's immediate 2015-05-31 21:51:46 -04:00
Lioncash 85b1dddda1 arm_dyncom_thumb: Implement CPS and SETEND 2015-05-31 21:51:25 -04:00
Lioncash 7caef19c89 arm_dyncom_thumb: Implement SXTH, SXTB, UXTH, and UXTB. 2015-05-31 21:50:57 -04:00
Lioncash b64dea80ce arm_dyncom_thumb: Implement REV, REV16, and REVSH. 2015-05-31 21:50:18 -04:00
archshift 0414ad20cb Merge pull request #811 from archshift/commonify
Commonify video_core utility headers
2015-05-31 09:55:29 -07:00
bunnei 833936fc64 Merge pull request #832 from yuriks/refresh-rate-option
Remove gpu_refresh_rate configuration option
2015-05-31 04:48:20 -04:00
bunnei 33b9abb91e Pica: Use zero for the SecondaryFragmentColor source.
- This is a workaround until we support fragment lighting.
2015-05-31 01:52:42 -04:00
bunnei dcbc653b90 rasterizer: Remove unnecessary 'using' for BlendEquation. 2015-05-31 01:52:42 -04:00
bunnei e6ace38815 Pica: Implement LogicOp function. 2015-05-31 01:52:41 -04:00
bunnei 3b5ff61201 rasterizer: Implement AddSigned combiner function for alpha channel. 2015-05-31 01:52:40 -04:00
bunnei 1574c44586 vertex_shader: Use address offset on src2 in inverted mode. 2015-05-31 01:52:40 -04:00
bunnei 02c9fe202c Pica: Implement command buffer execution registers. 2015-05-31 01:52:39 -04:00
bunnei 4ac6c1a3b5 vertex_shader: Implement SLT/SLTI instructions. 2015-05-31 01:27:50 -04:00
bunnei 875bd29766 vertex_shader: Implement MIN instruction. 2015-05-31 01:27:49 -04:00
archshift 76690392bf Move video_core/color.h to common/color.h 2015-05-30 11:17:37 -07:00
archshift 5df2d1b5f7 Move video_core/math.h to common/vector_math.h
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
2015-05-30 11:17:36 -07:00
bunnei 595fe49a8f Merge pull request #830 from SeannyM/qt-noborder
QT: Remove border around widgets
2015-05-30 12:04:36 -04:00
Yuri Kunde Schlesner 8a04c65e20 Merge pull request #810 from yuriks/memmap
Kernel: Add VMManager to manage process address spaces
2015-05-29 18:00:17 -07:00
Yuri Kunde Schlesner d65b42a69a Remove gpu_refresh_rate configuration option
Changing it makes emulation inherently inaccurate. It also had a wrong
default value (30, whereas the real system has a refresh rate of 60 Hz)
which, even if changed, would continue to be used unless people manually
removed it from their config files.
2015-05-29 19:39:26 -03:00
Emmanuel Gil Peyrot b1503b2020 Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
Yuri Kunde Schlesner fb597b6d68 Merge pull request #817 from linkmauve/citra.ico
Move src/assets/citra.ico and doc-icon.png to dist
2015-05-29 13:56:58 -07:00
Sean Maas cd99944b1d QT: Remove border around widgets 2015-05-29 12:56:02 -04:00
Lioncash a3cad6c332 hid: Get rid of undefined behavior
Modifying a variable twice across a sequence point.
2015-05-27 12:20:12 -04:00
Yuri Kunde Schlesner 88365a23e7 Memmap: Remove unused global pointers to memory areas 2015-05-27 03:24:12 -03:00
Yuri Kunde Schlesner 0a60aa75c2 Kernel: Add VMManager to manage process address spaces
This enables more dynamic management of the process address space,
compared to just directly configuring the page table for major areas.

This will serve as the foundation upon which the rest of the Kernel
memory management functions will be built.
2015-05-27 03:24:12 -03:00
Yuri Kunde Schlesner ad883db7a9 Merge pull request #826 from lioncash/tables
arm_dyncom_thumb: Merge STR/LDR table subsets.
2015-05-26 22:05:13 -07:00
Lioncash 0265d950e6 arm_dyncom_thumb: Merge STR/LDR table subsets. 2015-05-26 21:15:29 -04:00
Lioncash 0ff414f561 Merge pull request #825 from lioncash/dync
dyncom: Minor cleanup.
2015-05-26 20:27:48 -04:00
Lioncash f62ab75c67 arm_dyncom_interpreter: Remove unused variable
Thum decoding directly checks if the thumb bit is set instead of using a temporary.
2015-05-26 17:43:08 -04:00
bunnei 4d93c30c97 Merge pull request #821 from Subv/ImportDisplayCaptureInfo
Service/GSP: Implemented ImportDisplayCaptureInfo.
2015-05-26 01:14:21 -04:00
Subv fa397494b0 Service/GSP: Implemented ImportDisplayCaptureInfo. 2015-05-25 23:35:14 -05:00
Subv 732839b1f4 Core/SVC: Map the shared memory created in CreateMemoryBlock to the specified address.
This SharedMemory can be passed to service functions (Which should map the memory into their own address space).
2015-05-25 16:17:26 -05:00
Emmanuel Gil Peyrot 87d9df89bb Assets: Move citra.ico from src/assets to dist. 2015-05-25 19:00:43 +02:00
Lioncash 8c1ab1c2c4 arm_dyncom_interpreter: Remove unused macro 2015-05-24 19:21:05 -04:00
Lioncash 6278937a28 dyncom: Get rid of armemu.h 2015-05-23 20:51:02 -04:00
Lioncash 513f6a277e Merge pull request #805 from lioncash/warn
video_core/core: Get rid of more warnings.
2015-05-23 17:28:39 -04:00
Tony Wasserka 5f193bbf06 Merge pull request #806 from yuriks/annoying-qt-warning
Qt: Silence a bogus warning printed when using the debug runtime
2015-05-23 14:01:06 +02:00
Yuri Kunde Schlesner c9244a03c7 Qt: Silence a bogus warning printed when using the debug runtime
The Qt debug runtime prints a bogus warning on the console if you
haven't called makeCurrent since the last time you called swapBuffers.
This presumably means something if you're using QGLWidget the "regular"
way, but in our multi-threaded use case is harmless since we never call
doneCurrent in the rendering thread.
2015-05-23 02:27:27 -03:00
Lioncash 951353558e gl_state: Remove unnecessary const specifier on Apply 2015-05-23 00:58:32 -04:00
Lioncash ebca3a4902 y2r_u: Remove unused variable in StartConversion 2015-05-23 00:46:22 -04:00
Lioncash dc587fa295 video_core/utils: Remove unused variables in GetMortonOffset 2015-05-23 00:38:37 -04:00
Lioncash 1c21354159 Merge pull request #804 from lioncash/dclean
dyncom: Remove unused variables and parameters.
2015-05-23 00:09:55 -04:00
Lioncash 92fd2753c5 dyncom: Remove unused cpu parameter from decode_thumb_instr 2015-05-22 23:42:23 -04:00
Lioncash 097d8282a6 dyncom: remove load_r15 from arm_inst
It's entirely unused. Also allows getting rid of more clunky macros.
2015-05-22 23:38:00 -04:00
bunnei a7946f9027 Merge pull request #776 from bunnei/pica-state
GPU: Consolidate Pica state
2015-05-22 23:27:41 -04:00
Lioncash 8617938441 dyncom: Remove unnecessary parameter for load/store operations 2015-05-22 23:14:22 -04:00
bunnei 1b42d55a9d Pica: Create 'State' structure and move state memory there. 2015-05-22 22:59:42 -04:00
bunnei 41531eeb32 Merge pull request #801 from purpasmart96/hid_stubs
HID: Stub DisableAccelerometer and DisableGyroscopeLow
2015-05-22 20:44:22 -04:00
Lioncash 23d5df9d9c gl_state: Fix a condition typo in Apply 2015-05-22 19:49:12 -04:00
Lioncash 932aeb333f Merge pull request #802 from bunnei/vfp-trace-log
VFP: Log as trace to get rid of spamming.
2015-05-22 19:44:22 -04:00
bunnei 3a348a90fd VFP: Log as trace to get rid of spamming. 2015-05-22 19:42:44 -04:00
purpasmart96 0c62b7b106 HID: Stub DisableAccelerometer and DisableGyroscopeLow 2015-05-22 15:55:27 -07:00
tfarley 62668688e1 Flush for y2r (moflex) 2015-05-22 15:51:34 -07:00
tfarley 16fbba3c2a MakeCurrent race condition fix 2015-05-22 15:51:33 -07:00
tfarley 05dc633a8c OpenGL renderer 2015-05-22 15:51:18 -07:00
tfarley 6d995b1ff6 INI hw/sw renderer toggle 2015-05-22 14:37:55 -07:00
Yuri Kunde Schlesner eca2b71fa8 Merge pull request #798 from yuriks/y2r-bw
Service::Y2R: Support for grayscale decoding of specific formats
2015-05-22 14:06:20 -07:00
Yuri Kunde Schlesner 9108482888 Service::Y2R: Support for grayscale decoding of specific formats
Implements unrotated planar YUV 4:2:0 -> RGB24 conversions in Y2R.
Currently only the Y (luma) channel is used, so the results don't
contain color. This will be added in a later PR at some point.

This is enough to get all currently know Moflex videos to decode. (Some
don't display on-screen due to seemingly unrelated reasons.)

Thanks to @archshift for doing the initial implementation which I
cleaned up and then fixed the 8x8 block mode.
2015-05-22 17:57:21 -03:00
Lioncash 572c91a024 dyncom: Eliminate clang warnings
Gets rid of a whole load of missing brace initialization warnings.
2015-05-21 16:43:21 -04:00
Emmanuel Gil Peyrot b8f93e6b18 Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback code to prevent it from happening again. 2015-05-21 20:54:49 +02:00
bunnei 25f14e76f1 y2r_u: Stub StartConversion to prevent moflex games from hanging. 2015-05-20 18:05:47 -04:00
bunnei 0b7d2941cf Kernel: Move reschedules from SVCs to actual mechanisms that reschedule. 2015-05-20 18:05:47 -04:00
bunnei 1c3cda5d7e Merge pull request #783 from jroweboy/cond-wait
Use condition var to properly pause the CPU thread
2015-05-18 18:49:51 -04:00
bunnei 859707642e Merge pull request #766 from purpasmart96/cfg_service_update
CFG: Update the cfg service to be like other integrated services
2015-05-18 10:18:58 -04:00
James Rowe a406207cd8 Use condition var to properly pause the CPU thread
Adds support for threaded pausing so citra doesn't spin wait on pause
2015-05-18 08:15:57 -06:00
bunnei f0365f28c2 Merge pull request #772 from lioncash/warn
core/video_core: Fix a few warnings when compiling on MSVC.
2015-05-18 08:08:49 -04:00
bunnei 1b47da4115 Merge pull request #785 from archshift/break
Implement svcBreak
2015-05-18 08:04:22 -04:00
Subv 24d9416930 GPU/DefaultAttributes: Clear up a comment in command_processor 2015-05-17 14:13:11 -05:00
Subv 658c44af5c GPU/DefaultAttributes: Let the attribute data from the loaders overwrite the default attributes, if set.
closes #735
2015-05-17 11:52:17 -05:00
archshift 11057488f9 Implement svcBreak 2015-05-16 22:06:59 -07:00
bunnei 9fb9750411 Merge pull request #781 from archshift/delete
Delete unused hle/coprocessor.cpp
2015-05-16 11:16:29 -04:00
bunnei 42c6590349 Merge pull request #778 from purpasmart96/apt_assert_fix
APT/FS: Remove asserts that were causing false positives in games
2015-05-16 02:31:22 -04:00
archshift 4b300ba763 Delete unused hle/coprocessor.cpp 2015-05-15 23:24:11 -07:00
Yuri Kunde Schlesner ba2fe7f795 Merge pull request #758 from yuriks/sync-logging
Common: Remove async logging
2015-05-15 20:54:48 -07:00
purpasmart96 dd9aed9ea9 CFG: Update the cfg service to be like other integrated services 2015-05-15 20:19:29 -07:00
Yuri Kunde Schlesner 7dbc27ff57 Remove unused concurrent_ring_buffer.h 2015-05-15 23:57:53 -03:00
purpasmart96 0fd727f3ad APT/FS: Remove asserts that were causing false positives 2015-05-15 19:25:02 -07:00
Yuri Kunde Schlesner 12f6216741 Merge pull request #774 from lioncash/decodings
dyncom: Add ARMv6K NOP and hint instructions to the interpreter.
2015-05-15 11:36:20 -07:00
bunnei 6abed88092 Merge pull request #770 from lioncash/dyncom_clean
dyncom: Minor cleanup.
2015-05-15 09:44:39 -04:00
bunnei ef8d0e9823 Merge pull request #761 from Subv/resource_limits
Core/ResourceLimits: Implemented the basic structure of ResourceLimits.
2015-05-15 09:42:36 -04:00
Yuri Kunde Schlesner a188e0fa57 Merge pull request #675 from jroweboy/windows-build-fixes
Windows build fixes
2015-05-14 20:55:58 -07:00
Subv d3634d4bf4 Core/ResourceLimits: Implemented the basic structure of ResourceLimits.
Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues.

Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create.
2015-05-14 22:50:13 -05:00
Yuri Kunde Schlesner dd4430609a Memory: Use a table based lookup scheme to read from memory regions 2015-05-15 00:04:43 -03:00
Yuri Kunde Schlesner 52158c1b8d Memory: Read SharedPage directly from Memory::Read 2015-05-15 00:04:41 -03:00
Yuri Kunde Schlesner ec514b16a6 Memory: Read ConfigMem directly from Memory::Read 2015-05-15 00:04:39 -03:00
Yuri Kunde Schlesner 7ada357b2d Memmap: Re-organize memory function in two files
memory.cpp/h contains definitions related to acessing memory and
configuring the address space
mem_map.cpp/h contains higher-level definitions related to configuring
the address space accoording to the kernel and allocating memory.
2015-05-15 00:04:38 -03:00
Yuri Kunde Schlesner a251721bf3 Memmap: Remove unused declarations 2015-05-15 00:04:38 -03:00
bunnei 9f503387dc Merge pull request #769 from lioncash/cond
thread: Fix a conditional check in Reschedule
2015-05-14 16:39:56 -04:00
Lioncash 8cd72428c9 dyncom: Add ARMv6K NOP and hint instructions to the decoding table 2015-05-14 16:25:02 -04:00
Lioncash 699b67d7cf dyncom: Handle some MSR variants individually
This is necessary, as hint instructions will be recognized as MSR, which is pretty bad.
2015-05-14 16:24:51 -04:00
Lioncash be0119be08 dyncom: Move exclusive load/stores above bbl and swi in the decoding table 2015-05-14 16:24:39 -04:00
Lioncash 1e0255364c dyncom: Remove duplicate enums/prototypes
These are already defined in arm_dyncom_interpreter_dec.cpp.
2015-05-14 14:32:17 -04:00
Lioncash f4921d0f9d dyncom: Remove unnecessary defines
These can simply be const vars.
2015-05-14 14:32:16 -04:00
Lioncash 0530fd2499 dyncom: Make translation-unit functions and variables static 2015-05-14 14:32:07 -04:00
Lioncash 497f4bee0c pica: Add the ULL specifier in IsDefaultAttribute
This is necessary otherwise there are warnings about a 32-bit result being casted to a 64-bit value.
2015-05-14 14:23:23 -04:00
Lioncash 773b1ef6bf vfp: Get rid of warnings
- Unary minus operator applied to unsigned type.
- Unsafe use of bool.
2015-05-14 13:54:15 -04:00
Lioncash 150e700729 process: Get rid of warnings
Sign mismatches and "forcing value to bool" warnings.
2015-05-14 12:59:14 -04:00
Lioncash f3c4de4ce4 dyncom: Remove unnecessary typedefs 2015-05-14 11:51:46 -04:00
Lioncash a48b4ec583 dyncom: Remove unused structs 2015-05-14 11:33:50 -04:00
Lioncash 207087c856 thread: Fix a conditional check in Reschedule 2015-05-14 11:10:04 -04:00
Emmanuel Gil Peyrot a31fd7f86b Common: Remove unused cruft from math_util, and remove a duplicated Rect class in common_types. 2015-05-14 16:16:15 +02:00
bunnei e83bc5b7ee dyncom: Removed irrelevant log. 2015-05-14 00:24:38 -04:00
bunnei 09c8110e1a Merge pull request #763 from bunnei/qt-fix-crash
Qt: Shutdown emulation session only if EmuThread exists.
2015-05-13 22:07:35 -04:00
Lioncash 832c130ed1 dyncom: Fix decoding of BKPT's immediate
A shift here is intended since the representation is imm12:imm4
2015-05-13 14:11:03 -04:00
bunnei c3bd797917 Qt: Shutdown emulation session only if EmuThread exists. 2015-05-12 23:14:24 -04:00
bunnei 7d21b0663b Merge pull request #756 from purpasmart96/ptm_service_changes
PTM: Changed the ptm services  to be like the IR, HID, and APT services.
2015-05-12 23:10:54 -04:00
Yuri Kunde Schlesner def5913d19 GPU: Add more fine grained profiling for vertex shader and rasterization 2015-05-12 15:59:52 -03:00
Yuri Kunde Schlesner c8eae338a8 Common: Use the log system to print assert messages 2015-05-12 02:52:31 -03:00
Yuri Kunde Schlesner b88c91dd3d Common: Remove async logging
It provided a large increase in complexity of the logging system while
having a negligible performance impact: the usage patterns of the ring
buffer meant that each log contended with the logging thread, causing
it to effectively act as a synchronous extra buffering.

Also removed some broken code related to filtering of subclasses which
was broken since it was introduced. (Which means no one ever used that
feature anyway, since, 8 months later, no one ever complained.)
2015-05-12 02:31:04 -03:00
bunnei cb2b2071a8 Merge pull request #748 from Subv/tls_max
Core/Memory: Add TLS support for creating up to 300 threads
2015-05-11 23:32:28 -04:00
bunnei ee8da4c356 Merge pull request #751 from yuriks/idle-thread
Thread: Remove the idle thread
2015-05-11 23:22:47 -04:00
bunnei 6e26d063a5 Merge pull request #757 from Subv/scheduling
Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called
2015-05-11 22:54:00 -04:00
bunnei 6223496a49 Merge pull request #752 from lioncash/flush
vfp: Handle flush-to-zero mode.
2015-05-11 21:43:33 -04:00
bunnei d22bc68175 Merge pull request #755 from lioncash/mcrr-mrrc
dyncom: Stub MCRR and MRRC
2015-05-11 21:42:45 -04:00
Yuri Kunde Schlesner 4f7a055081 Thread: Remove the idle thread
Instead just use nullptr to represent no thread is active.
2015-05-11 22:39:39 -03:00
Subv dda94e56dd Core/Memory: Add TLS support for creating up to 300 threads 2015-05-11 20:09:23 -05:00
Yuri Kunde Schlesner 820b97787c Merge pull request #750 from Subv/process_svc
Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread
2015-05-11 17:44:26 -07:00
Subv dbc1320923 Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called 2015-05-11 19:38:10 -05:00
purpasmart96 53130fffd9 PTM: Changed the way the ptm services are handled to be like the
IR, HID, and APT services.
2015-05-11 17:11:26 -07:00
Subv 25c010dc7d fixup! 2015-05-11 18:23:45 -05:00
Lioncash dc7ac751f2 dyncom: Stub MCRR and MRRC
There's no other coprocessor outside the VFP (which has its own VMOV variants) in which the MPCore can send/retrieve data from.
Stubbed so citra won't crash and burn on the odd chance someone actually tries to use these.
2015-05-11 18:31:45 -04:00
purpasmart96 046044618d NWM_UDS: Fix a typo in the nwm service port name 2015-05-11 15:18:54 -07:00
Lioncash ffc51161f3 vfp: Handle flush-to-zero mode. 2015-05-11 15:56:02 -04:00
bunnei 10eb8b0c02 Merge pull request #749 from yuriks/stack-top
Thread: Correctly set main thread initial stack position
2015-05-11 11:03:08 -04:00
Subv 41f74a16fd Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread 2015-05-11 09:15:10 -05:00
Yuri Kunde Schlesner d16c2bd956 Thread: Correctly set main thread initial stack position 2015-05-11 05:08:47 -03:00
archshift 40310e2132 Implement I4 texture format
@neobrain, could you confirm that this is correct?

It's been tested with various different games and fixes different textures, including in Animal Crossing, Kirby Triple Deluxe, and SMB3D.
2015-05-10 18:59:22 -07:00
archshift e98fbadf4a Merge pull request #740 from yuriks/gsp-shmem
Fix crashes due to un-initialized GSP shared memory
2015-05-10 18:07:44 -07:00
Subv 115ad8e16a fixup! Set the TLS address in the scheduler 2015-05-10 18:43:59 -05:00
Subv 000876858d Core/Memory: Give every emulated thread it's own TLS area.
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200.
This allows some games like Mario Kart 7 to continue further.
2015-05-10 18:35:37 -05:00
Yuri Kunde Schlesner fd85367621 fixup! GSP: Small tweaks to shared memory initialization 2015-05-10 20:09:41 -03:00
Yuri Kunde Schlesner 1538a34eda GSP: Small tweaks to shared memory initialization 2015-05-10 20:05:30 -03:00
Yuri Kunde Schlesner 774eea8374 Kernel: Zero-fill shared memory blocks when mapping
This works around crashes related to GSP/HID/etc. shared memory blocks
having garbage values. The proper fix requires proper management of
mapped memory blocks in the process.
2015-05-10 20:05:29 -03:00
Yuri Kunde Schlesner c96f22490a Kernel: Capture SharedMemory attributes at creation, not when mapping 2015-05-10 19:47:07 -03:00
bunnei 23e8be573e rasterizer: Implemented combiner output scaling. 2015-05-09 22:26:17 -04:00
bunnei ff767eeb40 rasterizer: Implemented AddSigned combiner op. 2015-05-09 22:12:39 -04:00
bunnei 547da374b8 rasterizer: Fixed a depth testing bug. 2015-05-09 22:12:38 -04:00
bunnei a806b420a6 rasterizer: Implement combiner buffer input. 2015-05-09 22:12:36 -04:00
bunnei 44927f0306 rasterizer: Return zero'd vectors on error conditions. 2015-05-09 22:12:35 -04:00
bunnei 692a74c09e vertex_shader: Implement FLR instruction. 2015-05-09 22:12:34 -04:00
bunnei f935130a0f vertex_shader: Implement MADI instruction.
nihstro: Update submodule to latest upstream/master to support MADI instruction decoding.
2015-05-09 22:12:34 -04:00
Yuri Kunde Schlesner b700b55696 Common: Remove the BIT macro
When the macro was introduced in 326ec51261
it wasn't noticed that it conflicted in name with a heavily used macro
inside of dyncom. This causes some compiler warnings. Since it's only
lightly used, it was opted to simply remove the new macro.
2015-05-09 18:16:46 -03:00
Tony Wasserka e35e72d0a5 Merge pull request #734 from yuriks/memmap
Small memory map definitions cleanup
2015-05-09 15:57:29 +02:00
Yuri Kunde Schlesner 417c867e14 Loader: Add missing include 2015-05-09 05:05:59 -03:00
Yuri Kunde Schlesner 17a8cae003 Memory: Add GetPhysicalPointer helper function 2015-05-09 04:02:32 -03:00
Yuri Kunde Schlesner 28a9e4c1d5 Memory: Support more regions in the VAddr-PAddr translation functions
Also adds better documentation and removes the one-off reimplementation
of the function in pica.h.
2015-05-09 03:08:11 -03:00
Yuri Kunde Schlesner e7b6ed7578 Memory: Sort memory region variables by VAddr 2015-05-09 01:31:00 -03:00
Yuri Kunde Schlesner 1c0b87edc2 Memory: Re-organize and rename memory area address constants 2015-05-09 01:29:52 -03:00
Yuri Kunde Schlesner eb3eb9f75d Loader: Remove .bin file support
It is of very limited practical utility currently, and will soon be
impossible to support due to more accurate memory map emulation.
2015-05-08 23:09:41 -03:00
Yuri Kunde Schlesner 7c50b999fa Kernel: Remove unused g_main_thread variable 2015-05-08 22:12:12 -03:00
Yuri Kunde Schlesner 3cb19c9589 Process: Rename StaticAddressMapping => AddressMapping 2015-05-08 22:12:10 -03:00
Yuri Kunde Schlesner 83ccf85bb2 Process: Add more documentation to the class members 2015-05-08 22:11:49 -03:00
Yuri Kunde Schlesner 2f5904611d Process: Use BitField to store process flags 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner 7eb413155f Loader/NCCH: Fix formatting of braces 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner 2af30d465f Process: Support parsing of exheader kernel caps 2015-05-08 22:11:44 -03:00
Yuri Kunde Schlesner 326ec51261 Common: Add BIT macro 2015-05-08 22:11:04 -03:00
Yuri Kunde Schlesner a5eba2f984 Kernel: Remove g_program_id
This has been obsoleted by the field in Process.
2015-05-08 22:11:03 -03:00
Yuri Kunde Schlesner 6d60acf0f1 Kernel: Introduce skeleton Process class to hold process data 2015-05-08 22:11:02 -03:00
Yuri Kunde Schlesner 8809d02db3 Common: Add StringFromFixedZeroTerminatedBuffer 2015-05-08 03:03:06 -03:00
Yuri Kunde Schlesner 0f39cc359b Core: Fix sorting in CMakeFiles.txt 2015-05-08 03:03:04 -03:00
Lioncash 1622068198 Merge pull request #728 from lioncash/vars
dyncom: Remove an unnecessary variable in the interpreter
2015-05-07 21:09:03 -04:00
Lioncash ae0c38a333 Remove unnecessary dyncom header files 2015-05-07 20:45:28 -04:00
Lioncash 31dc8b8890 dyncom: Remove an unnecessary variable in the interpreter
All this was doing was needlessly aliasing a variable.
2015-05-07 19:34:04 -04:00
Yuri Kunde Schlesner 4560178f66 Merge pull request #725 from yuriks/remove-common-crap
Remove unused hash and mem_arena from common
2015-05-07 16:18:03 -07:00
bunnei 10ef39624a Merge pull request #723 from lioncash/commonstr
string_util: Get rid of UriDecode/UriEncode
2015-05-07 18:55:18 -04:00
Yuri Kunde Schlesner ed12b08e7a Profiler: Fix off-by-one error when computing average. 2015-05-07 19:48:31 -03:00
Yuri Kunde Schlesner 3396f352cb Common: Remove mem_arena.cpp/h
It is superfluous for Citra. (It's only really necessary if you're doing
JIT. We were using it but not taking any advantage from it.) This should
make 32-bit builds work again.
2015-05-07 19:01:09 -03:00
Yuri Kunde Schlesner d9df5b575a Common: Remove hash.cpp/h
Currently unused and the code quality is pretty questionable.
2015-05-07 18:31:18 -03:00
Yuri Kunde Schlesner fae5933ad6 Common: Add proper macros to test for architecture pointer size
The old system of just defining macros available in some other platform
was susceptible to silently using the wrong code if you forgot to
include a particular header. This fixes a crash on non-Windows platforms
introduced by e1fbac3ca1.
2015-05-07 18:22:36 -03:00
Lioncash 9adad45b0f string_util: Get rid of UriDecode/UriEncode 2015-05-07 17:10:55 -04:00
Yuri Kunde Schlesner 4f4d230dac Merge pull request #721 from yuriks/more-cleanups
More cleanups
2015-05-07 11:45:45 -07:00
Yuri Kunde Schlesner c956e8a686 Fix printf format warning 2015-05-07 15:45:22 -03:00
Yuri Kunde Schlesner e1fbac3ca1 Common: Remove common.h 2015-05-07 15:45:22 -03:00
Yuri Kunde Schlesner 1bd1a13a02 Common: Move alignment macros to common_funcs.h 2015-05-07 15:45:21 -03:00
Yuri Kunde Schlesner ae963d75f8 Common: Move SSE detection ifdefs to platform.h 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner a594fdb66e Common: Remove more unused compatibility defines 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner f3c096951b Common: Move IO-specific compatibility macros to file_util.cpp 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner bf12f270b3 Common: Remove many unnecessary cross-platform compatibility macros 2015-05-06 23:50:08 -03:00
Yuri Kunde Schlesner c0eaa662d4 Clean-up includes 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner b89f644cfe FileSys: De-inline Path members 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner 6f89d25f90 FileSys: Clean-up includes, de-inline destructors 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner c916bcf7b5 Move typedefs from kernel.h to more appropriate places 2015-05-06 23:45:05 -03:00
Yuri Kunde Schlesner 6ad71c216b Common: Move NonCopyable to common_types.h 2015-05-06 23:45:05 -03:00
Yuri Kunde Schlesner 7a4b717772 Common: Use C++11 deleted functions for NonCopyable 2015-05-06 23:45:04 -03:00
Yuri Kunde Schlesner 1fee769aa0 Common: Remove unused enums 2015-05-06 23:45:04 -03:00
bunnei 337f1e1b96 Merge pull request #695 from Subv/crash_f
GPU: Implemented default vertex shader attributes.
2015-05-06 19:33:03 -04:00
Subv 0e5ca080a8 GPU: Implemented default vertex shader attributes.
Fixes some games crashing.
2015-05-06 18:11:46 -05:00
Yuri Kunde Schlesner ecff2351a1 HLE: Clean up SVC dispatch mechanism 2015-05-06 00:24:39 -03:00
Yuri Kunde Schlesner 0749687b8d Core: Remove some unused functions and types 2015-05-04 00:16:43 -03:00
Tony Wasserka 7859b145cf Merge pull request #698 from Zaneo/clip_stylus_input
EmuWindow: Clip mouse input coordinates to emulated screen dimensions.
2015-05-02 19:15:03 +02:00
Zaneo b8328593fe EmuWindow: Clip mouse input coordinates to emulated screen dimensions.
If the mouse position for a mouse move/drag would take it outside the emulated screen dimensions, clip the coordinates to
the emulated screen dimensions.
Qt and GLFW will report negative coordinates for mouse positions to the left, or above citra window. Added restriction
to mouse coordinates passed to touchmoved by Qt/GLFW to be greater or equal to zero.
2015-05-01 23:52:33 -04:00
bunnei 046dd6e3ef Qt: Shutdown game on emulator close event. 2015-05-01 18:35:56 -04:00
bunnei 85cc81d8cc Qt: Disable "Start" unless we are paused (it otherwise has no meaning and causes a crash). 2015-05-01 18:35:55 -04:00
bunnei bc41de2131 Qt: Fixed a bug in shutdown procedure, various cleanups. 2015-05-01 18:35:51 -04:00
bunnei ad4445c529 Qt: Clear registers widget on shutdown. 2015-05-01 18:34:49 -04:00
bunnei 43cf424907 Qt: Use signals for emu_thread start/stop and fix disasm widget. 2015-05-01 18:34:42 -04:00
bunnei e4ea133717 Qt: Restructured to remove unnecessary shutdown event and various cleanups. 2015-05-01 18:27:07 -04:00
bunnei 3dd2688785 Qt: Fix loading a new game without stopping emulation. 2015-05-01 18:27:06 -04:00
bunnei 5a855bdb2f CoreTiming: Initialize static variables at bootup. 2015-05-01 18:27:05 -04:00
bunnei d3c2f9a4a4 HLE: Properly initialize and shutdown remaining modules. 2015-05-01 18:27:05 -04:00
bunnei bab5abaf46 Dyncom: Move cream cache to ARMul_State. 2015-05-01 18:27:04 -04:00
bunnei c7dc799e19 Kernel: Properly initialize and shutdown all modules. 2015-05-01 18:27:03 -04:00
bunnei 57aaaf92db HW: Properly initialize and shutdown all modules. 2015-05-01 18:27:02 -04:00
bunnei e0cb85691a Services: Initialize all state variables at bootup. 2015-05-01 18:27:02 -04:00
bunnei bbabed8e98 Memory: Properly cleanup & shutdown. 2015-05-01 18:27:01 -04:00
bunnei 28df8dbfeb Qt: Create emu thread on bootup, kill it on shutdown. 2015-05-01 18:27:00 -04:00
bunnei d5665fea89 EmuThread: Remove unused filename attribute. 2015-05-01 18:26:59 -04:00
bunnei 762c1a9ff5 Qt: Move EmuThread ownership from render window to main window. 2015-05-01 18:26:58 -04:00
bunnei 4d30edc11e Merge pull request #717 from linkmauve/useless-auto
VideoCore: Remove a superfluous auto variable declaration in debug_utils
2015-04-29 10:27:58 -04:00
Emmanuel Gil Peyrot 36b48082d5 VideoCore: Remove a superfluous auto variable declaration in debug_utils. 2015-04-29 13:37:12 +02:00
purpasmart96 8716445621 ConfigMem: Remove duplicate retail bit 2015-04-28 16:22:50 -07:00
bunnei 2cc6511039 Merge pull request #692 from purpasmart96/log_improvements
Services/Loader: Use more sensible log formats for certain functions along with more info being logged.
2015-04-28 10:12:50 -04:00
purpasmart96 c3a480160e Services/Loader: Use more sensible log formats for certain functions
along with more info being logged.
2015-04-27 23:07:08 -07:00
Lioncash 1baab50e7c ptm_sysm: Add static specifier to IsLegacyPowerOff 2015-04-24 18:23:20 -04:00
Lioncash 8b2b620a5e dyncom: Remove more unused/unnecessary code
Gets rid of a sizeable amount of stuff in armdefs.
2015-04-20 16:30:34 -04:00
bunnei a698e15c5d Merge pull request #703 from lioncash/cruft
dyncom: Remove unused/unnecessary VFP cruft
2015-04-19 20:50:41 -04:00
Lioncash d66a12c6f6 dyncom: Remove unused/unnecessary VFP cruft 2015-04-17 20:46:05 -04:00
bunnei 5e55a525d8 Merge pull request #691 from rohit-n/sign-compare
Silence some -Wsign-compare warnings.
2015-04-17 20:22:03 -04:00
Yuri Kunde Schlesner 6402de9ae7 Common: thread.h cleanups
The helper classes are rendered obsolete by C++11 lambdas. Also made
formatting conform to our code style.
2015-04-16 17:55:30 -03:00
bunnei 3ee9f6c5d8 Merge pull request #696 from yuriks/interface-deinline
De-inline functions from Interface, removing them from service.h
2015-04-14 19:14:27 -04:00
Emmanuel Gil Peyrot 2e860bd59c Core_ARM11: Replace debug prints with our own logging functions in vfpsingle. 2015-04-14 21:34:36 +02:00
Emmanuel Gil Peyrot d9eb7ca95c citra-qt: Use std::abs() to get the right absolute function for s64. 2015-04-14 21:18:35 +02:00
Emmanuel Gil Peyrot 0d69b2f7bd Kernel: Use the correct format string for u64 hex. 2015-04-14 21:18:31 +02:00
Emmanuel Gil Peyrot bdcf28e3bc Headers: Add some forgotten overrides, thanks clang! 2015-04-14 21:18:25 +02:00
Yuri Kunde Schlesner ad3e25b414 De-inline functions from Interface, removing them from service.h
This reduces the time for a full recompile from 65.43s to 59.53s (~9%)
2015-04-14 15:34:28 -03:00
bunnei db4bd98bac SVC: Assert on unsupported CreateThread processor ID. 2015-04-09 22:55:18 -04:00
Rohit Nirmal f15c142c5e Silence some -Wsign-compare warnings. 2015-04-09 18:55:01 -05:00
bunnei c077bcefa9 SVC: Update various SVCs to cause a reschedule.
- CreateMutex/ReleaseMutex/ReleaseSemaphore/SetTimer/CancelTimer/ArbitrateAddress
2015-04-09 19:06:42 -04:00
bunnei 9c3419ebcc Kernel: Implemented priority inheritance for mutexes. 2015-04-09 19:06:39 -04:00
bunnei 7b9f428b23 Thread: Implement priority boost for starved threads.
SVC: Return correct error code on invalid CreateThread processor ID.

SVC: Assert when creating a thread with an invalid userland priority.
2015-04-09 19:05:21 -04:00
bunnei ee3377b67d SVC: Reschedule on svcCreateThread. 2015-04-09 19:04:20 -04:00
bunnei bdd190363d APT: (Subv) Fix bug where start event was being incorrectly signaled. 2015-04-09 19:04:19 -04:00
bunnei e08f55b1a7 Kernel: Fixed default thread priority. 2015-04-09 19:04:19 -04:00
Gareth Higgins 25a43cd2ec Initialize base address to 0x0 2015-04-08 20:34:41 -04:00
Tony Wasserka 8af5753da5 Merge pull request #689 from lioncash/format
gpu: Fix a missing format specifier
2015-04-08 15:41:21 +02:00
bunnei 114126b216 Merge pull request #688 from lioncash/unused
dyncom: Remove unnecessary enum and typedef
2015-04-07 23:03:08 -04:00
bunnei e630fd2a95 Merge pull request #676 from purpasmart96/ir_service_refc
IR: Move The IR services to their own folder and implement "GetHandles"
2015-04-07 23:01:07 -04:00
Lioncash 7da90dee42 gpu: Fix a missing format specifier 2015-04-07 10:38:49 -04:00
Lioncash a6c9e453b2 dyncom: Remove unnecessary enum and typedef
Also fixes descriptions in the process.
2015-04-07 08:05:41 -04:00
Lioncash 29a4b6c7ed vfp: Make the FPSID values match the MPCore 2015-04-06 16:09:35 -04:00
Lioncash f9cc6d6484 vfp: Get rid of the VFP_OFFSET macro 2015-04-06 16:09:28 -04:00
bunnei 14dcd98653 Merge pull request #685 from lioncash/cpregs
dyncom: Set the MPCore CP15 register reset values on initialization.
2015-04-06 15:06:07 -04:00
Lioncash 8004d35ea1 core: Migrate 3DS-specific CP15 register setting into Init 2015-04-06 13:01:19 -04:00
Lioncash c3ffe8f9c3 arm_interface: Support retrieval/storage to CP15 registers 2015-04-06 12:57:49 -04:00
Lioncash b7b8b67620 Move CP15 enum definitions into their own enum.
Also gets rid of preprocessor mumbo-jumbo
2015-04-06 12:48:35 -04:00
Lioncash 23dd2ca8a6 dyncom: Properly return the value of the user RO thread register 2015-04-06 09:26:04 -04:00
Lioncash e628ed4810 dyncom: Set CP15 reset values on initialization 2015-04-06 09:16:42 -04:00
Lioncash bb7dac022e dyncom: Suppress uninitialized variable warnings
The switch cases will always be hit, but this makes compilers stop complaining.
2015-04-05 23:49:06 -04:00
bunnei 8997cfaeb4 Merge pull request #682 from yuriks/virtmem2
Clean-up mem_map constants and fix framebuffer translation errors
2015-04-05 22:07:25 -04:00
Yuri Kunde Schlesner 34b009cf38 Clean-up mem_map constants and fix framebuffer translation errors 2015-04-05 20:14:33 -03:00
Gareth Higgins 8060c519a6 Changed occurences of colour to color for consistency 2015-04-05 02:36:43 -04:00
bunnei 64196976b9 Merge pull request #680 from archshift/bg-color
Allow the user to set the background clear color during emulation
2015-04-04 15:14:14 -04:00
purpasmart96 d6c9af600f IR: Move The IR services to their own folder and implement "GetHandles" 2015-04-03 19:36:03 -07:00
bunnei 3fd2cc566b Merge pull request #641 from purpasmart96/service_stubs
Services: Stubs and minor changes
2015-04-03 22:16:50 -04:00
archshift cae89fb315 Allow the user to set the background clear color during emulation
The background color can be seen at the sides of the bottom screen or when the window is wider than normal.
2015-04-03 15:35:51 -07:00
purpasmart96 198c0ddc72 Services: Stubs and minor changes 2015-04-02 20:05:11 -07:00
bunnei e25ffaba86 Merge pull request #677 from lioncash/cp15
dyncom: Isolate CP15 register reading and writing
2015-04-02 20:21:11 -04:00
Lioncash 490df716f3 dyncom: Move CP15 register writing into its own function.
Also implements writing to the rest of the ARM11 MPCore CP15 register set.
2015-04-02 00:20:52 -04:00
Lioncash 5e5954c63b dyncom: Move CP15 register reading into its own function.
Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
2015-04-02 00:19:11 -04:00
bunnei d95d6e3ecd Merge pull request #678 from lioncash/disasm
callstack: Remove unnecessary disassembler instantiation
2015-03-31 22:33:23 -04:00
Lioncash e05d6220f5 disassembler: Get rid of a const_cast 2015-03-30 15:37:34 -04:00
Lioncash 0520a3b178 callstack: Remove unnecessary disassembler instantiation
Decode is a static function. There's no need to allocate a disassembler instance.
2015-03-30 11:25:02 -04:00
Lioncash de6eba0288 dyncom: Migrate InAPrivilegedMode to armsupp
It's a generic helper function, so it should be here anyway.
2015-03-26 09:22:02 -04:00
James Rowe 635ed87788 unsetting a few more variables that arent needed outside of this function 2015-03-26 04:11:05 -06:00
James Rowe 5b9a5493c5 Updated the copy commands to run on post_build and use generator expressions to simplify the code as well 2015-03-26 04:04:24 -06:00
James Rowe 2d7008f03c Changes to bring the previous commits in line with the comments on thepull request. Made the debug build a true debug build with no optimizxations and the RelWithDebInfo is what it says it is too. Changed the copying of the dlls to the build directories to happen at configuration time instead of build time 2015-03-26 04:04:23 -06:00
James Rowe 4a7e21eb58 More changes to the CMakeFiles for better MSVC compatibility. Added in the RelWithDebInfo target and setup copying the Qt 5 Dlls to the output directories. 2015-03-26 04:04:22 -06:00
bunnei c4767f3bb2 Merge pull request #672 from purpasmart96/citra_moar_app_mem
ConfigMem: Set the app memory to be 96MB instead of the default 64MB
2015-03-24 23:22:56 -04:00
bunnei b3d4a10e29 Merge pull request #674 from lioncash/sys-instrs
dyncom: Implement RFE and SRS.
2015-03-24 23:21:44 -04:00
Lioncash a80d93685a dyncom: Implement SRS 2015-03-24 12:44:31 -04:00
Lioncash cde671795c dyncom: Implement RFE 2015-03-24 11:34:48 -04:00
Lioncash 2df10d2284 dyncom: Remove unused/unnecessary macros and macro constants 2015-03-24 09:55:56 -04:00
purpasmart96 e0c72ec871 ConfigMem: Set the app memory to be 96MB instead of the default 64MB 2015-03-23 18:53:22 -07:00
bunnei 03ceb7adf9 Merge pull request #656 from Subv/nz
Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and Del...
2015-03-22 14:58:38 -04:00
Lioncash f23f2a9a42 armmmu: Remove unnecessary enum values
We don't need to care about XScale or Intel specific ARM stuff.
2015-03-20 19:35:32 -04:00
bunnei 1981aa3d7e Merge pull request #659 from lioncash/setend
Implement SETEND.
2015-03-19 21:37:43 -04:00
Subv b9612fe919 Service/FS: Document and log some unknown values.
In CreateExtSaveData, DeleteExtSaveData and CreateSystemSaveData
2015-03-19 17:39:00 -05:00
bunnei 580b317821 Merge pull request #650 from Subv/scaling
GPU: Fixed the bit 25 in the display transfer flags.
2015-03-17 19:13:06 -04:00
Lioncash 9fdb311d6e dyncom: Make Load/Store instructions support big endian 2015-03-17 15:13:32 -04:00
bunnei 0bb4b77b78 Merge pull request #655 from purpasmart96/hid_fixes
HID: Proper Signal Interrupts for EnableAccelerometer & EnableGyroscopeLow along  with a stub for GetSoundVolume
2015-03-17 10:19:59 -04:00
purpasmart96 5b1757d6a5 HID: Proper Signal Interrupts for EnableAccelerometer & EnableGyroscopeLow along
with a stub for GetSoundVolume
2015-03-16 18:55:58 -07:00
bunnei ef0c4aac86 Merge pull request #660 from purpasmart96/ncch_updates
NCCH: Minor updates to the ncch header
2015-03-16 21:21:54 -04:00
bunnei 6977877665 Merge pull request #661 from linkmauve/cleanup
Fix two minor understandability issues in common
2015-03-16 20:32:51 -04:00
Subv 23b401c3ac GPU/DisplayTransfer: Made the scaling bits a single 2bit value
Rephrased some comments.
2015-03-16 17:54:06 -05:00
bunnei c1f5cb7dd5 Merge pull request #652 from neobrain/shader_output_fix
Pica/VertexShader: Fix a bug caused due to incorrect assumptions of consecutive output register tables.
2015-03-16 18:35:34 -04:00
bunnei 968c418fa5 Merge pull request #662 from linkmauve/video_core-warnings
Add static_cast around expressions where the compiler doesn’t deduce the right type
2015-03-16 18:18:24 -04:00
Lioncash 8cf81643a9 arm_interface: Get rid of GetTicks.
Removes a TODO.
2015-03-16 12:18:37 -04:00
Emmanuel Gil Peyrot 92fd2a1ee3 VideoCore: Add static_cast around expressions where the compiler doesn’t deduce the right type. 2015-03-16 15:14:04 +01:00
Emmanuel Gil Peyrot 188b419586 Common: Fix logic for setting EMU_DATA_DIR. 2015-03-16 02:22:59 +01:00
Emmanuel Gil Peyrot 4c684fb274 Common: Make a #else more apparent. 2015-03-16 02:22:19 +01:00
purpasmart96 061c69a6bb NCCH: Minor updates to the ncch header 2015-03-15 14:17:19 -07:00
bunnei 3e5aeb9a7a Merge pull request #657 from Subv/flip
GPU: Implemented the flip_data (bit 0) bit in display transfers.
2015-03-14 23:11:29 -04:00
Lioncash f280806214 dyncom: Implement SETEND 2015-03-14 23:08:36 -04:00
Subv fb8f47060b GPU: Implemented the flip_data (bit 0) bit in display transfers. 2015-03-14 15:26:42 -05:00
Subv c0d1a91017 EmuWindow: Fixed a reference to a temporary variable
in GetTouchState()
2015-03-14 15:01:02 -05:00
Subv 1d61cd4460 Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and DeleteSystemSaveData
Also fixed a bug with CreateExtSaveData that made it unable to create ExtSaveData archives in the SDMC directory.
2015-03-14 12:00:01 -05:00
Tony Wasserka e4f5ec6272 Pica/VertexShader: Fix a bug caused due to incorrect assumptions of consecutive output register tables.
We now write create a temporary buffer for output registers and copy all of them to the actual output vertex structure after the shader has run. This is technically not necessary, but it's easier to vectorize in the future.
2015-03-12 14:18:46 +01:00
bunnei ed5b275d21 Merge pull request #642 from bunnei/touchpad
Touchpad support
2015-03-11 21:28:57 -04:00
bunnei 4bbddda377 hid_user: Removed unnecessary includes. 2015-03-11 00:01:03 -04:00
bunnei e79c27f1e0 HID: Removed unnecessary global variables. 2015-03-11 00:00:39 -04:00
bunnei 85cbccb1d3 HID: Added additional variable comments and some code cleanups. 2015-03-10 23:58:13 -04:00
bunnei d61b26b79f HID: Complete refactor of pad/touch input to fix threading issues. 2015-03-10 23:58:07 -04:00
bunnei b56829df02 Merge pull request #629 from archshift/lcdfb
Implement SetLcdForceBlack and add implementation for color filling in the GPU code
2015-03-10 18:08:55 -04:00
bunnei 953e09ddb5 EmuWindow: Made pad/touch functions non-static. 2015-03-10 18:05:20 -04:00
bunnei a1a1a5c6c5 HID: Cleanup how `next_touch_index` is calculated for Pad and touch. 2015-03-10 18:05:19 -04:00
bunnei 432aa1044c HID: Changed TouchDataEntry `valid` to a BitField and added some doc strings. 2015-03-10 18:05:19 -04:00
bunnei e9b9f1842b HID: Added static asserts to check register position in shared memory. 2015-03-10 18:05:19 -04:00
bunnei f213000cc4 Qt: Implemented EmuWindow touchpad support. 2015-03-10 18:05:18 -04:00
bunnei dd73217ae3 GLFW: Implemented EmuWindow touchpad support. 2015-03-10 18:05:18 -04:00
bunnei 543232436f EmuWindow: Added infrastructure code to enable touchpad support. 2015-03-10 18:05:17 -04:00
bunnei 1a904ded40 HID: Added functions to emulate the touchpad. 2015-03-10 18:05:17 -04:00
bunnei 3229b048d9 HID: Moved some docstrings to the header. 2015-03-10 18:05:17 -04:00
bunnei 83a66dd701 HID: Refactored shared memory decoding for touchpad support. 2015-03-10 18:05:16 -04:00
Subv ae0dfcae1d GPU: Fixed the bit 25 in the display transfer flags.
It is used to downscale the input image horizontally and vertically, previously we were only downscaling it vertically so this caused a hard-to-debug memory corruption problem.
2015-03-10 14:18:25 -05:00
Lioncash e34ba68e1f dyncom: Minor cleanup
Assemblers will exit with an error when trying to assemble instructions with disallowed registers.
2015-03-10 08:13:58 -04:00
bunnei ec5bc54575 Merge pull request #643 from Subv/dem_feels
GPU: Implemented more depth buffer formats.
2015-03-09 22:06:30 -04:00
Subv 1248e291f0 GPU: Added the stencil test structure to the Pica Regs struct. 2015-03-09 20:13:21 -05:00
Subv 155cc80e3b Frontend/Qt: Allow the framebuffer widget to inspect the depth buffer 2015-03-09 20:13:15 -05:00
Subv 414b0741c4 GPU: Implemented more depth buffer formats.
This fixes the horizontal lines in Picross E, Cubic Ninja, Cave Story 3D and possibly others
2015-03-09 20:12:39 -05:00
bunnei e10a9b2f66 Merge pull request #647 from neobrain/rip_culling_hack
Pica/PrimitiveAssembly: Fix triangle strips and fans being generated with incorrect winding order.
2015-03-09 19:17:43 -04:00
archshift 041e99b613 Added LCD registers, and implementation for color filling in OGL code. 2015-03-09 15:51:41 -07:00
Tony Wasserka 511bf30a69 Merge pull request #648 from Subv/fill_bit
GPU: Use the correct position for the finished bit in memory fills
2015-03-09 23:17:11 +01:00
Subv 0abba5874c GPU: Use the correct position for the finished bit in memory fills 2015-03-09 17:15:13 -05:00
Tony Wasserka e3a697b9f9 Merge pull request #646 from Subv/24bit_fills
GPU: Corrected the 24 bit memory fills component order
2015-03-09 23:12:30 +01:00
Tony Wasserka 5742367341 Pica/PrimitiveAssembly: Fix triangle strips and fans being generated with incorrect winding order. 2015-03-09 21:49:49 +01:00
bunnei 8a1cc5b805 Merge pull request #589 from kevinhartman/config-errors
Fix errorcodes for bad config block request
2015-03-09 15:44:34 -04:00
bunnei 3da94a597b Merge pull request #634 from linkmauve/logging-performances
Apply the logging filter before sending the message to the queue
2015-03-09 15:42:18 -04:00
bunnei f2a7c2b3b7 Merge pull request #645 from lioncash/ldm
Minor bugfixes to LDM/STM.
2015-03-09 11:07:52 -04:00
Subv a762f9c176 GPU: Corrected the 24 bit memory fills component order 2015-03-09 09:01:41 -05:00
bunnei 8ecba90ff0 Merge pull request #644 from archshift/nihstro
Update nihstro submodule to the initial release version.
2015-03-08 22:26:02 -04:00
bunnei ba8ce6c8f5 Merge pull request #584 from yuriks/outline-asserts
Asserts: Use lambdas to keep assertion code away from the main code path
2015-03-08 22:25:04 -04:00
Lioncash 386dbab5ea dyncom: Fix an indexing bug in STM
Previously it would write the contents of register 13 for the case where the link register (r14) is supposed to be written.
2015-03-08 22:03:11 -04:00
Lioncash 36dab56c31 dyncom: General cleanup of STM 2015-03-08 22:03:06 -04:00
Lioncash e37425b380 dyncom: Increment addr when accessing LR in LDM 2015-03-08 21:46:57 -04:00
archshift 7d43aef4d0 Update nihstro submodule to the initial release version.
Includes more opcodes to implement in the future.
2015-03-08 13:52:38 -07:00
archshift 30e41de347 Merge pull request #639 from archshift/appbundle
Build app bundles on OS X. Fixes the issue where the menubar would not appear.
2015-03-07 18:15:10 -08:00
archshift 539bbd3c59 default_ini.h: Put comments on their own lines
Apparently inline comments is not necessarily standard in the INI format, and our parser was erroneously parsing the comments as values.
2015-03-07 17:28:29 -08:00
archshift c036cf604f Build app bundles on OS X. Fixes the issue where the menubar would not appear. 2015-03-07 16:09:00 -08:00
bunnei 25633b431d Fixed EmuWindow typo (fixes OSX build) 2015-03-07 18:26:28 -05:00
bunnei 06bf471581 Merge pull request #636 from bunnei/refactor-screen-win
Set framebuffer layout from EmuWindow.
2015-03-07 18:18:40 -05:00
bunnei 9960c49c21 Set framebuffer layout from EmuWindow. 2015-03-07 17:21:19 -05:00
Subv 4b8d4d0ed5 GPU/Textures: Fixed ETC texture decoding. 2015-03-07 16:21:54 -05:00
Tony Wasserka 93e32bce72 Merge pull request #538 from yuriks/perf-stat
Add profiling infrastructure and widget
2015-03-07 15:30:40 +01:00
Emmanuel Gil Peyrot 0aa44e238d Logging: check for filter before sending to the queue, to skip all heavy formatting on the other thread. 2015-03-06 19:23:52 +01:00
archshift e011acaa84 Removed swap code redundancy and moved common swap code to swap.h 2015-03-05 22:46:45 -08:00
archshift 47010fea31 Implement SetLcdForceBlack, move register enum to hw.h 2015-03-05 19:38:23 -08:00
bunnei 8e4e28aacb Merge pull request #615 from Subv/services
Services: Moved the PTM and APT services to their own folder
2015-03-04 21:27:24 -05:00
Subv 83a8975cb8 Services: Moved the PTM and APT services to their own folder
This coincidentally fixes an issue about the PTM service failing to create its SharedExtSaveData archive due to the FS service not being initialized by the time the creating code runs.

Ideally I'd like to move each process to its own folder, and have a single file per process that registers the service classes, which would be in their own files inside that folder. Then each service class would just call functions from the process to complete the commands.
2015-03-03 21:48:08 -05:00
bunnei 8fc8c51118 Merge pull request #625 from lioncash/warn
vfp: Get rid of warnings
2015-03-03 19:15:32 -05:00
Lioncash 4b89cf9e43 vfp: Get rid of warnings 2015-03-03 19:13:01 -05:00
bunnei 34c31db14a GPU: Added RGB565/RGB8 framebuffer support and various cleanups.
- Centralizes color format encode/decode functions.
- Fixes endianness issues.
- Implements remaining framebuffer formats in the debugger.
2015-03-03 18:26:03 -05:00
Yuri Kunde Schlesner 44f46254dc Merge pull request #622 from Subv/titles
Services/AM: Stubbed TitleIDListGetTotal and GetTitleIDList.
2015-03-02 10:26:56 -03:00
Subv 9a72fb79fc Services/AM: Stubbed TitleIDListGetTotal and GetTitleIDList.
They will always return 0 titles for every media type for now.
This is needed to boot Home Menu further
2015-03-02 08:12:04 -05:00
bunnei d175f2b7f3 Merge pull request #623 from Subv/card
Services/FS: Stubbed CardSlotIsInserted to always return false
2015-03-01 22:49:29 -05:00
bunnei 9a47eb117c Merge pull request #618 from lioncash/ref
result: Make comparison operators take references
2015-03-01 22:27:28 -05:00
bunnei 5d0e557689 Merge pull request #621 from Subv/power
Services/PTM: Stubbed PTM_Sysm::IsLegacyPowerOff.
2015-03-01 22:21:08 -05:00
Yuri Kunde Schlesner dc8a3f8bc8 Profiler: Implement QPCClock to get better precision on Win32
MSVC 2013 (at least) doesn't use QueryPerformanceCounter to implement
std::chrono::high_resolution_clock, so it has bad precision. Manually
implementing our own clock type using it works around this for now.
2015-03-01 21:47:14 -03:00
Yuri Kunde Schlesner cd1fbfcf1b Add profiling infrastructure and widget 2015-03-01 21:47:13 -03:00
Subv db1a5d4222 Services/FS: Stubbed CardSlotIsInserted to always return false
We won't be emulating this for the foreseeable future and it is needed for Home Menu to boot further
2015-02-28 23:00:46 -05:00
Subv c36778e602 Services/PTM: Stubbed PTM_Sysm::IsLegacyPowerOff.
This allows the Home Menu to boot further
2015-02-28 19:51:13 -05:00
archshift c1d29ac202 Merge pull request #616 from archshift/5551
Added RGBA5551 compatibility in the rasterizer
2015-02-28 13:52:47 -08:00
bunnei d362eb2669 Merge pull request #620 from lioncash/bkpt
arm_disasm: Show conditional code for BKPT instructions.
2015-02-27 22:53:33 -05:00
archshift 7f9ee69a2b Added RGBA5551 compatibility in the rasterizer
This allows Virtual Console games to display properly.
2015-02-27 19:15:08 -08:00
Lioncash 9ed3488925 arm_disasm: Show conditional code for BKPT instructions.
Changed cond_to_str to take a uint32, since unsigned numbers are only ever passed to it, and this can be a source of warnings for some compilers (also indexing an array without bounds checking a signed number is kind of iffy).
2015-02-27 21:59:30 -05:00
Lioncash 1a70782cda arm_disasm: Remove unused variable
Also declared an array as static, as it's only used in this translation unit.
2015-02-27 21:31:36 -05:00
Lioncash 99ff8bbb0c result: Make comparison operators take references
It's unnecessary to make copies for simple comparisons like this.
2015-02-27 21:16:21 -05:00
bunnei c9ef377afa Merge pull request #599 from Subv/morton
GPU: Implemented bits 3 and 1 from the display transfer flags.
2015-02-26 22:40:27 -05:00
Subv c564c21668 GPU: Implemented bits 3 and 1 from the display transfer flags.
Bit 3 is used to specify a raw copy, where no processing is done to the data, seems to behave exactly as a DMA.
Bit 1 is used to specify whether to convert from a tiled format to a linear format or viceversa.
2015-02-26 21:17:14 -05:00
Lioncash 8812d2fbdb arm: The CP15 Main ID register is not writeable 2015-02-26 09:28:31 -05:00
Yuri Kunde Schlesner ea3c99f3a2 Video core: Fix A4 texture decoding
It was trying to take the LSB from `coarse_x`, which would always be 0
and thus would always return the same texel from each byte. To add
insult to the injury, the conditional was actually the wrong way around
too.

Fixes blocky text in OoT.
2015-02-25 23:05:14 -03:00
Yuri Kunde Schlesner 1b5ee96797 Merge pull request #604 from Subv/arc_ssd
Archives: Properly implemented the SystemSaveData archive.
2015-02-25 22:35:55 -03:00
Yuri Kunde Schlesner 3c50da6fc0 Video core: Fix pixelation/blockiness in textures.
This was caused during morton decoding by me not masking the bits of
each coordinate before merging them, so the bits from x could set bits
in y if it was >255.
2015-02-25 22:16:01 -03:00
Subv 9db5c9b6dc Archives: Properly implemented the SystemSaveData archive.
Ported to the new factory pattern we have for archives.
2015-02-25 19:37:10 -05:00
bunnei f7c3193fec Merge pull request #575 from linkmauve/xdg
Switch to the XDG Base Directory Specification for directory selection
2015-02-25 13:58:25 -05:00
Lioncash 1bb400be1b arm: Remove unnecessary booleans
We don't care about any of these.
2015-02-25 10:55:50 -05:00
Emmanuel Gil Peyrot 129ad721c1 Common: Switch to the XDG Base Directory Specification for directory selection.
This allows for easily movable and independent configuration and data directories, using standardized paths.
2015-02-25 05:27:13 +01:00
bunnei 40d1f9045a Merge pull request #601 from Subv/y2r
Services: Implemented Y2R_U::GetTransferEndEvent
2015-02-24 22:35:05 -05:00
bunnei ed255ebaec Rasterizer: Add support for RGBA4 framebuffer format. 2015-02-24 19:58:33 -05:00
Subv ef66feaeba Services: Implemented Y2R_U::GetTransferEndEvent
Aero Porter was throwing an "Invalid Handle" fatal error without this.
2015-02-24 08:28:36 -05:00
bunnei 3700263f71 Merge pull request #595 from linkmauve/new-3ds-input
Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one.
2015-02-23 21:13:29 -05:00
bunnei 50a0c4f14f Merge pull request #581 from archshift/tfe
Added information reporting from ThrowFatalError
2015-02-23 01:23:15 -05:00
Subv b1284222f2 GPU: Fixed RGBA8 as output format in a display transfer.
Verified with hwtests
2015-02-22 15:22:14 -05:00
archshift 0420a4d1de Added information reporting from ThrowFatalError
This was RE'd from the errdisp applet.
2015-02-22 12:19:30 -08:00
Emmanuel Gil Peyrot aa64f69af0 Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one. 2015-02-22 21:09:08 +01:00
bunnei 89a71eb6a4 Merge pull request #471 from archshift/pp3ports3
GPU: Add support for more framebuffer formats in display transfers.
2015-02-22 14:54:56 -05:00
Tony Wasserka 23c6764b2b GPU: Add support for more framebuffer formats in display transfers. 2015-02-22 11:48:02 -08:00
bunnei 733c19ddd3 Rasterize with the correct color component order.
- Fixes a regression with #594.
2015-02-22 13:57:24 -05:00
bunnei dfe807b2cd Merge pull request #596 from kevinhartman/unaligned-cleanup
Clean up unaligned 32-bit memory reads
2015-02-22 12:48:28 -05:00
bunnei d120757f32 Merge pull request #594 from Subv/display_transfer
GPU: Fixed the RGBA8 input format and RGB8 output format
2015-02-22 12:44:57 -05:00
Tony Wasserka 34f21334ad Merge pull request #593 from Subv/search_problem
Pica/VertexShader: Fixed LOOP with more than one iteration.
2015-02-22 15:51:12 +01:00
Kevin Hartman 05c098a9e7 Cleaned up unaligned access. 2015-02-21 17:25:31 -08:00
Subv fbbfb52a2c GPU: Fixed the RGBA8 input format and RGB8 output format
in Display Transfers, tested with hwtests.
2015-02-21 18:43:53 -05:00
Subv 9a03e9c61d Pica/VertexShader: Fixed LOOP with more than one iteration.
Previously it wouldn't jump back to the start of the loop code once it reached the end of the block.
Fixes the texture problems in a lot of games.
2015-02-21 12:52:21 -05:00
Kevin Hartman a6fdb8f217 Fix error message for bad config block request. 2015-02-20 21:47:58 -08:00
Emmanuel Gil Peyrot 54d6f6c82b Common: Change names containing “Dolphin” or “PPSSPP” to something more generic. 2015-02-20 16:54:10 +00:00
bunnei 5f9939070e Merge pull request #588 from archshift/somebranch
Sweeping cleanup of Common
2015-02-20 11:41:30 -05:00
archshift 4fb75d220a Misc cleanup of common and related functions 2015-02-19 22:26:25 -08:00
archshift 302f0b32f5 Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h 2015-02-19 22:26:25 -08:00
bunnei c7d1480ece Merge pull request #587 from archshift/assert
Convert a few C stdlib asserts to Citra's own asserts
2015-02-19 13:45:58 -05:00
archshift 49f94b82b4 Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin 2015-02-18 23:23:18 -08:00
archshift 961f65d1fe Remove redundant utf8 compilation unit that was leftover from Dolphin 2015-02-18 22:34:32 -08:00
archshift 9f7f1a2272 Remove useless extended_trace compilation unit that was leftover from Dolphin 2015-02-18 22:30:31 -08:00
archshift 5efd149ad5 Remove the useless msg_handler compilation unit that was left over from Dolphin 2015-02-18 22:26:22 -08:00
archshift 3c48697ea3 Convert a few C stdlib asserts to Citra's own asserts 2015-02-18 21:52:36 -08:00
Subv 5410367ebf Rasterizer: Fixed a warning in GetWrappedTexCoord.
Redeclaring the variable inside the switch was causing weird behavior.
2015-02-18 23:52:47 -05:00
bunnei ec8f2210e3 Merge pull request #580 from lioncash/emplace
core/video_core: Use in-place construction where possible
2015-02-18 17:36:34 -05:00
Tony Wasserka 2eee3a87f9 Pica/Rasterizer: Replace exit() calls with UNIMPLEMENTED(). 2015-02-18 14:52:27 +01:00
Tony Wasserka 6e5a903286 Pica/Rasterizer: Make some local lambdas static. 2015-02-18 14:50:28 +01:00
Tony Wasserka 1561204342 Pica/BlendUnit: Implement separate color/alpha blend equations. 2015-02-18 14:50:28 +01:00
Tony Wasserka 81ebb4d682 Pica/TextureEnvironment: Add a note. 2015-02-18 14:50:28 +01:00
Tony Wasserka e11fb96408 Pica/TextureEnvironment: Treat texture combiner source 1 as the PrimaryColor.
Not really sure where the difference is, but some applications seem to use this 1:1 the same way...
2015-02-18 14:50:28 +01:00
Tony Wasserka 04cd06d5c2 Pica/TextureEnvironment: Add support for the MAD-like texture combiners and clean up texture environment logic. 2015-02-18 14:50:28 +01:00
Tony Wasserka 087edcfbec Pica/OutputMerger: Fix flipped framebuffers. 2015-02-18 14:50:28 +01:00
Tony Wasserka 6ca752ccbc Pica/TextureUnit: Implement mirrored repeating texture wrapping. 2015-02-18 14:50:28 +01:00
Tony Wasserka 8bd7a896ea Pica: Fix a bug in the register definitions, relating to texture wrapping. 2015-02-18 14:50:28 +01:00
Tony Wasserka aaf30ca4ee Pica/OutputMerger: Implement color format checking. 2015-02-18 14:50:28 +01:00
Tony Wasserka 3b5710bae6 Pica/Rasterizer: Rasterize actual pixel centers instead of pixel corners. 2015-02-18 14:50:28 +01:00
Tony Wasserka 3cb22d31a7 Pica/Rasterizer: Fix garbage pixels at triangle borders. 2015-02-18 14:50:28 +01:00
Tony Wasserka 638b370fb5 Pica/Rasterizer: Clean up and fix backface culling. 2015-02-18 14:50:28 +01:00
Tony Wasserka 365236fa4c Pica: Cleanup clipping code and change screenspace z to range from -1..0.
The change in depth range seems to reflect better to what applications are expecting, and makes for cleaner code overall (hence is more likely to reflect hardware behavior).
2015-02-18 14:50:03 +01:00
Tony Wasserka 70a764d992 Pica/VertexShader: Implement the LOOP instruction. 2015-02-18 14:02:59 +01:00
Tony Wasserka 6c26ec72a5 Pica/CommandProcessor: Properly implement shader load destination offset registers. 2015-02-18 14:02:59 +01:00
Tony Wasserka 67120270f2 Pica/CommandProcessor: Work around initialized vertex attributes some more. 2015-02-18 14:02:59 +01:00
Tony Wasserka 0da6a7e234 GPU: Properly implement memory fills. 2015-02-18 14:02:58 +01:00
bunnei 745b42d236 Merge pull request #570 from purpasmart96/config_mem
ConfigMem: Clean up the Config memory to be more like the shared page
2015-02-18 00:12:37 -05:00
bunnei 8e731b129d Merge pull request #582 from lioncash/warnings
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 23:57:54 -05:00
bunnei 60f9cd6a4a Merge pull request #579 from lioncash/bkpt
dyncom: Support conditional BKPT instructions
2015-02-17 23:54:01 -05:00
Yuri Kunde Schlesner 714d507938 Asserts: Use lambdas to keep assertion code away from the main code path 2015-02-18 02:19:30 -02:00
Lioncash 4f910bb1a1 vfpinstr: Fix trivial signed/unsigned mismatch warnings 2015-02-17 18:53:50 -05:00
Lioncash 5d2366e1e9 core/video_core: Use in-place construction where possible 2015-02-17 17:57:23 -05:00
Lioncash a7120662e6 dyncom: Support conditional BKPT instructions 2015-02-17 01:37:22 -05:00
Tony Wasserka a78b8b1bc4 Merge pull request #578 from linkmauve/math-typo
VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead
2015-02-17 00:30:22 +01:00
purpasmart96 c3c309f33d ConfigMem: Clean up the Config memory to be more like the shared page and moved
the helper macro for padding to common_funcs.h
2015-02-16 15:12:05 -08:00
Emmanuel Gil Peyrot 8a1c08a0af VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead. 2015-02-16 21:51:37 +00:00
Subv cb3d254517 Services: Fixed "Tried to connect to named port err:f".
err:f is a named port, not a service
2015-02-16 15:24:15 -05:00
bunnei 2b2b343ce0 Merge pull request #574 from lioncash/warn
vfpdouble: Use %p for printing pointer addresses.
2015-02-16 09:45:43 -05:00
Lioncash 012d1e32ad dyncom: Actually set the destination register for USAD8/USADA8.
Idiotville: Population: 1 - Inhabitant name: Lioncash
2015-02-16 01:03:01 -05:00
Lioncash f0c4bd629c vfpdouble: Use %p for printing pointer addresses. 2015-02-15 17:11:02 -05:00
bunnei 20dc07721c Merge pull request #539 from linkmauve/framebuffer-formats
Framebuffer formats
2015-02-15 10:00:48 -05:00
Emmanuel Gil Peyrot c439b3074d video_core: Implement the remaining framebuffer formats in the OpenGL renderer. 2015-02-15 14:08:12 +00:00
Lioncash 473afa4530 arm: Set the A bit on reset.
This enum value is ORed against in ARMul_Reset (and used to refer to all interrupt bits in the CPSR). So simply updating this is enough.
2015-02-15 00:35:50 -05:00
bunnei 12181c8a64 Merge pull request #529 from Subv/master
Build: Fixed some warnings
2015-02-14 15:50:26 -05:00
Lioncash 0c6434c379 core: Apply static to local functions 2015-02-13 10:48:32 -05:00
Lioncash a75e1ff6e6 arm: General cleanup
- Remove several typedefs for ARMul_State.
- Remove unused functions
- Remove unused/unnecessary headers
- Removed unused enums, etc.
2015-02-13 09:11:12 -05:00
bunnei 9b69079c83 Merge pull request #569 from lioncash/modeswitch
Dyncom: Correctly set the ARM modes on dyncom initialization.
2015-02-12 23:18:40 -05:00
Lioncash b7fac494cd dyncom: Switch the app and system cores into the correct mode at initialization 2015-02-12 21:54:28 -05:00
Lioncash c3211c9c80 dyncom: Clean up the constructor
Some function calls aren't necessary and would be handled by regular initialization routines.
2015-02-12 21:50:51 -05:00
Lioncash 3c474a7d31 backend: Add logging subentry for ldr
Fixes an assertion upon executing citra in debug mode.
2015-02-12 20:46:13 -05:00
bunnei befa556b78 Merge pull request #567 from lioncash/warn
dyncom: Remove warning for SXTAH
2015-02-12 20:14:10 -05:00
Lioncash df9e0c0f81 dyncom: Remove warning for SXTAH
This is tested to work correctly.
2015-02-12 20:11:20 -05:00
bunnei f7cde47911 Merge pull request #561 from Alegend45/master
Fix Min and Max blend equations
2015-02-12 19:59:10 -05:00
Lioncash e3f5c6366c arm: Remove ARMul_EmulateInit
This was only used for armemu, which has since been removed. Removed components related to this as well.
2015-02-12 11:30:28 -05:00
Subv 8e2b248e05 Build: Fixed some warnings 2015-02-12 09:25:35 -05:00
Lioncash f48b0100a6 armdefs: Remove unnecessary extern C 2015-02-12 08:29:57 -05:00
Darius Goad 5db62cc758 Fix Min and Max blend equations 2015-02-11 15:33:44 -06:00
Tony Wasserka f990728ad4 Merge pull request #384 from neobrain/vertex_shader_debugger
Vertex shader debugger
2015-02-11 22:17:46 +01:00
Kevin Hartman a56f3f290e Implemented WriteHWRegsWithMask for GSP. 2015-02-11 11:03:17 -08:00
Lioncash 49a22acd02 arm: Remove ARM26 support.
This will never be used. 32-bit is the norm.
2015-02-11 12:23:21 -05:00
bunnei c51b23b052 Merge pull request #559 from lioncash/clean
arm: Some cleanup. Also fixed the initial ARM mode that is emulated.
2015-02-11 12:02:35 -05:00
Lioncash c94c41f95a arm: Get rid of some magic constants. Specify proper ARM mode.
Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
2015-02-11 10:49:55 -05:00
Lioncash 93cd199633 arm: Change some more constants into enums 2015-02-11 10:14:20 -05:00
Tony Wasserka 12a5cd1d65 citra-qt: Add a vertex shader debugger. 2015-02-11 15:40:45 +01:00
Tony Wasserka 3f649dc9b8 Pica/DebugUtils: Factor out BreakPointObserverDock into its own file. 2015-02-11 15:40:04 +01:00
archshift ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00
bunnei 168eb27aee GSP: Fixed typo in SignalInterrupt 2015-02-10 19:57:48 -05:00
bunnei 76e7d41f88 Merge pull request #552 from bunnei/setbufferswap-fix
GSP SetBufferSwap fix
2015-02-10 19:21:48 -05:00
bunnei 9eae2400c0 GSP: Call SetBufferSwap for each screen on corresponding signal interrupt. 2015-02-10 19:05:56 -05:00
bunnei ca22ee3239 Merge pull request #526 from purpasmart96/citra_stubs
Services: Stub some functions
2015-02-10 18:39:37 -05:00
bunnei 5b735bdeea Merge pull request #556 from lioncash/clean
arm: Remove TRUE/FALSE defines
2015-02-10 18:28:30 -05:00
bunnei 8f35772bd7 Merge pull request #555 from lioncash/lut
arm_dyncom_thumb: Make lookup tables static
2015-02-10 18:27:47 -05:00
Lioncash 088fab743f arm: Remove TRUE/FALSE defines
- Removed the Debug parameter from ARMul_State since it isn't used.
- Changed ARMul_CoProInit to a void function. It always returned true.
2015-02-10 13:09:41 -05:00
Subv 0d2b6dd656 PTM: Fixed a problem with the gamecoin PTM file. 2015-02-10 13:43:46 -02:00
Subv 1bbf0567b1 Archives: Made the Format function more generic. 2015-02-10 13:43:46 -02:00
Subv 071663e074 Archives: Expose the File and Directory classes to HLE 2015-02-10 13:43:45 -02:00
Subv ca1a87ef7d ResultVal: Fixed compilation when reassigning a ResultVal. 2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner 3f1a3952d7 FS: Allow multiple instances of the same archive type to be open at once 2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner 4468625080 FS: Get rid of completely useless Archive class 2015-02-10 13:43:43 -02:00
Lioncash 8d2fb3bb2b arm_dyncom_thumb: Make lookup tables static
These don't need to be recreated all the time.
2015-02-10 10:42:09 -05:00
bunnei 67db6aa4ce Merge pull request #553 from lioncash/denorm
vfp: Normalize accumulator for multiply accumulate instructions
2015-02-10 10:09:45 -05:00
Lioncash 3eccc66abf dyncom: Add more regs to MCR/MRC
Adds the registers that were left out of some coprocessor ranges.
2015-02-10 09:34:42 -05:00
Lioncash a86d5e2752 vfp: Normalize accumulator for multiply accumulate instructions 2015-02-10 08:16:26 -05:00
Tony Wasserka eb83ac48aa Merge pull request #543 from Alegend45/master
Add more blend equations from 3dbrew
2015-02-10 13:30:29 +01:00
Kevin Hartman 5fcbfc06eb Scheduler refactor Pt. 1
* Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid
for a thread at any given point in the system.
* Removes dead code from thread.cpp.
* Moves the implementation of resetting a ThreadContext to the corresponding core's implementation.

Other changes:
* Fixed comments in arm interfaces.
* Updated comments in thread.cpp
* Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp.
* Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation.
2015-02-09 21:47:12 -08:00
bunnei 848795f383 Merge pull request #551 from bunnei/mutex-fixes
Mutex/synch fixes
2015-02-09 22:17:20 -05:00
bunnei 1b0bf00cbc Mutex: Locks should be recursive. 2015-02-09 22:06:09 -05:00
bunnei caa58acc84 WaitSynch: Always reschedule (verified behavior on hw). 2015-02-09 22:05:39 -05:00
Darius Goad 536958fb29 Add more blend equations from 3dbrew 2015-02-09 20:41:06 -06:00
Lioncash 53fa04f326 vfpdouble: Fix the FTOUI NaN sign setting
This was fixed for vfpsingle, but not vfpdouble
2015-02-09 17:18:29 -05:00
Lioncash a734e9fdca Throw more unused/unnecessary VFP code out 2015-02-09 11:54:39 -05:00
Lioncash ca7babe062 vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuff 2015-02-09 09:53:17 -05:00
Lioncash d832c48864 vfp_helper: Normalize tabs to spaces 2015-02-09 09:32:56 -05:00
purpasmart96 60ce36f721 Services: Stub some functions 2015-02-07 17:34:59 -08:00
chinhodado 34cce345a7 Fix a wrong file name in a comment 2015-02-07 00:37:06 -05:00
Lioncash 1ecd75ea1a vfp_helper: Remove unnecessary extern C blocks 2015-02-06 14:52:29 -05:00
Lioncash 3e576219c4 vfp: Move FPSID, FPEXC, and FPSCR values over to enums.
Also got rid of duplicate definitions of some of these values.
2015-02-06 14:52:05 -05:00
Tony Wasserka 1576a318f2 Merge pull request #535 from bunnei/color-modifiers
Implement color/alpha modifiers
2015-02-05 16:07:37 +01:00
bunnei 1eb591d6fd Rasterizer: Implement the other color and alpha modifiers. 2015-02-04 22:15:51 -05:00
bunnei 8c93a28fed VideoCore: Added same-component swizzlers to math utility functions. 2015-02-04 22:15:44 -05:00
bunnei 7f900ac68e Merge pull request #537 from lioncash/vfp
vfp: Fix VCVT
2015-02-04 14:58:36 -05:00
bunnei 4d36a6a255 Merge pull request #536 from lioncash/dead
vfp: Throw out unused code
2015-02-04 14:57:00 -05:00
Lioncash 82e8f25fe7 vfp: Fix VCVT
These variants exclusively read from the single precision regs and write to double-precision registers
Fixes issues where converted values would be way off from what they should be due to the results being stored in the wrong registers.
2015-02-04 14:06:10 -05:00
Lioncash 7ecedfb970 vfp: Throw out unused code 2015-02-04 13:11:03 -05:00
Tony Wasserka a45175ee0d Merge pull request #534 from neobrain/disassembler-improvements
Disassembler improvements
2015-02-03 22:12:17 +01:00
Tony Wasserka 5a90420c0b citra-qt: Fix horrible scrolling responsiveness in disassembler by giving the uniformRowHeight hint. 2015-02-03 21:11:50 +01:00
Tony Wasserka 79713d500b citra-qt: Fix a crash when double-clicking a disassembler list item. 2015-02-03 21:11:49 +01:00
Lioncash 3a5a39c6aa dyncom: Remove more unnecessary code 2015-02-03 14:05:53 -05:00
Lioncash 676daef3c7 core: Fix some warnings on OSX 2015-02-03 08:14:42 -05:00
Yuri Kunde Schlesner 88a4a808c6 Kernel: Stop creating useless Handles during object creation
They're finally unnecessary, and will stop cluttering the application's
handle table.
2015-02-02 15:37:09 -02:00
Yuri Kunde Schlesner 52f58e64ef Kernel: Make WaitObjects share ownership of Threads waiting on them
During normal operation, a thread waiting on an WaitObject and the
object hold mutual references to each other for the duration of the
wait.

If a process is forcefully terminated (The CTR kernel has a SVC to do
this, TerminateProcess, though no equivalent exists for threads.) its
threads would also be stopped and destroyed, leaving dangling pointers
in the WaitObjects.

The solution is to simply have the Thread remove itself from WaitObjects
when it is stopped. The vector of Threads in WaitObject has also been
changed to hold SharedPtrs, just in case. (Better to have a reference
cycle than a crash.)
2015-02-02 15:37:08 -02:00
Yuri Kunde Schlesner 7725256f64 Explicitly instantiate constructors/destructors for Kernel objects
This should speed up compile times a bit, as well as enable more liberal
use of forward declarations. (Due to SharedPtr not trying to emit the
destructor anymore.)
2015-02-02 15:37:07 -02:00
Yuri Kunde Schlesner 4e84df8be3 Mutex: Replace g_mutex_held_locks with a set inside Thread 2015-02-02 15:37:06 -02:00
Yuri Kunde Schlesner 0f69668fc6 HID: Fix crash when pressing a key when the emulator is stopped 2015-02-02 15:37:05 -02:00
Yuri Kunde Schlesner c4208c1171 SVC: Enable CloseHandle, clean up DuplicateHandle 2015-02-02 15:37:04 -02:00
Yuri Kunde Schlesner e8330dd162 Kernel: Fix bug in HandleTable::Close 2015-02-02 15:37:04 -02:00
Yuri Kunde Schlesner 5354a479bc Kernel: Remove Object::GetHandle (it's not used anymore :D) 2015-02-02 15:37:04 -02:00
Yuri Kunde Schlesner 869ec46683 Kernel: Introduce unique Object ids for debugging 2015-02-02 15:37:03 -02:00
Yuri Kunde Schlesner a9b86db3cf Kernel: Use separate Handle tables for CoreTiming userdata
This is to support the removal of GetHandle soon
2015-02-02 15:37:03 -02:00
Yuri Kunde Schlesner ec9c773251 Kernel: Remove previous scheduled event when a Timer is re-Set 2015-02-02 15:37:02 -02:00
Yuri Kunde Schlesner 8441591659 FS: Remove use of GetHandle 2015-02-02 15:37:01 -02:00
Yuri Kunde Schlesner 664c79ff47 Thread: Modernize two functions that slipped through previous rebases 2015-02-02 15:37:01 -02:00
Yuri Kunde Schlesner 6e11570862 Service: Store function names as const char* instead of std::string
Uses less memory (strings and function table is stored in constant data)
and speeds up start up (no need to allocate and copy strings).
2015-02-02 15:37:00 -02:00
Yuri Kunde Schlesner a79d21c83e Service: Clean-up Interface 2015-02-02 15:36:59 -02:00
Yuri Kunde Schlesner 8779b31fe6 Make Port/Service registration and querying more HW-accurate 2015-02-02 15:36:59 -02:00
Yuri Kunde Schlesner 5e91fc0d1a Filesys: Move creation of Handles for File/Directory to service handlers 2015-02-02 15:36:58 -02:00
Tony Wasserka e1f9f9ea04 Merge pull request #517 from bunnei/blend-factors
Pica: Implement blend factors.
2015-02-01 12:00:10 +01:00
bunnei c915d0b727 Merge pull request #514 from rohit-n/fix-warnings
Silence a few warnings.
2015-02-01 00:31:06 -05:00
bunnei c8628f5d56 Merge pull request #525 from lioncash/armwarn
vfp: Get rid of some compile warnings
2015-02-01 00:28:50 -05:00
Lioncash 8c944bd1f0 vfp: Get rid of some compile warnings 2015-01-31 22:14:00 -05:00
Lioncash 3f00dd9117 arm: Clean up ARMul_State
Remove unnecessary/unused struct variables.
2015-01-31 21:55:34 -05:00
Lioncash f44781fd7b arm: Adios armemu 2015-01-31 20:43:03 -05:00
Tony Wasserka 73a7a379d6 Merge pull request #512 from lioncash/assignment
shared_memory: Fix assignments in SharedMemory::Map
2015-01-31 12:59:00 +01:00
bunnei 72cc512b1e Pica: Implement blend factors. 2015-01-31 01:40:05 -05:00
Lioncash b6cfc48a0b dyncom: clean up arm_dyncom_dec.h 2015-01-30 16:28:52 -05:00
Lioncash fc1a9e35fb arm: Move headers over to pragma once 2015-01-30 16:17:02 -05:00
Lioncash 83bc1a3120 arm: Get rid of armcpu.h and skyeye_types.h 2015-01-30 16:16:58 -05:00
Lioncash 904194c3e8 arm: Clean out armos.h and armmmu.h 2015-01-30 15:48:57 -05:00
bunnei 88a62b671b Merge pull request #513 from lioncash/cleanup
arm: Cleanup.
2015-01-30 15:30:30 -05:00
Rohit Nirmal 5ebf35db96 Silence a few warnings. 2015-01-30 19:20:34 +00:00
Lioncash 09a66860e2 arm: Throw out a lot of unnecessary code 2015-01-30 13:32:03 -05:00
Lioncash 3dfef1701c armdefs: Move some defines over to enums 2015-01-30 12:43:58 -05:00
Lioncash 96c174aed4 shared_memory: Fix assignments in SharedMemory::Map 2015-01-30 11:37:53 -05:00
Lioncash 0c4685ca12 loader: Add missing printf argument 2015-01-30 11:34:05 -05:00
Lioncash 551264f815 archive: Fix initializer list order for the File class. 2015-01-30 11:30:22 -05:00
Lioncash 0c53cc52bd apt_u: Fix missing printf specifiers 2015-01-30 11:28:09 -05:00
Yuri Kunde Schlesner d917a9bf77 Kernel: Mark all appropriate kernel objects as "final" 2015-01-30 11:49:46 -02:00
Yuri Kunde Schlesner 58b544db99 SVC: Use CASCADE_RESULT in SVC handlers 2015-01-30 11:49:46 -02:00
Yuri Kunde Schlesner 09ae6e1fa3 Remove result.h InvalidHandle
It was only being used in two places, where it was replaced by a local
constant.
2015-01-30 11:49:45 -02:00
Yuri Kunde Schlesner 44f90340dc SVC: Change return type of handlers to ResultCode 2015-01-30 11:49:44 -02:00
Yuri Kunde Schlesner d52d859936 Kernel: Convert Event to not use Handles 2015-01-30 11:49:43 -02:00
Yuri Kunde Schlesner ad80ff1e32 Kernel: Convert Timer to (mostly) not use Handles 2015-01-30 11:47:07 -02:00
Yuri Kunde Schlesner 882b6fed75 Kernel: Convert Mutex to not use Handles 2015-01-30 11:47:06 -02:00
Yuri Kunde Schlesner 38e7122f23 Kernel: Convert AddressArbiter to not use Handles 2015-01-30 11:47:06 -02:00
Yuri Kunde Schlesner d9b19be1d9 Kernel: Convert Semaphore to not use Handles 2015-01-30 11:47:05 -02:00
Yuri Kunde Schlesner 4bb33dfc30 Kernel: Convert SharedMemory to not use Handles 2015-01-30 11:47:04 -02:00
Yuri Kunde Schlesner fc11aff955 Common: Fix SCOPE_EXIT to actually create unique identifiers. 2015-01-30 11:47:03 -02:00
Yuri Kunde Schlesner afc416c607 Additions to ResultVal to make it more convenient to use. 2015-01-30 11:47:02 -02:00
Yuri Kunde Schlesner b5ee4f9df9 Move VAddr/PAddr typedefs to kernel.h 2015-01-30 11:47:01 -02:00
Yuri Kunde Schlesner 9a345de2bd Kernel: Remove useless/duplicated comments; mark functions static 2015-01-30 11:47:01 -02:00
bunnei 206cabc0e4 Merge pull request #412 from purpasmart96/svc_table_cleanup
SVC: Update the SVC function table
2015-01-28 17:36:23 -05:00
bunnei b522cf4e6a Pica: Implement color/alpha channel enable. 2015-01-27 22:03:34 -05:00
bunnei b2c55bf772 Rasterizer: Implemented alpha testing. 2015-01-27 14:39:17 -05:00
Lioncash 7a3e371141 dyncom: Minor cleanup
Narrow scopes for the instruction variables. Remove unnecessary parentheses.
2015-01-27 08:51:18 -05:00
purpasmart96 62f4365db1 SVC: Update the SVC function table 2015-01-26 20:42:28 -08:00
bunnei 326c451758 Merge pull request #345 from purpasmart96/apt_stubs
APT_U: Stub some functions & misc changes
2015-01-26 23:13:54 -05:00
bunnei 547737f720 Update vfp.cpp
VFP: Changed a debug log to trace.
2015-01-26 21:38:53 -05:00
bunnei ff83d23ed5 GPU: Implement the remaining depth testing functions. 2015-01-25 23:34:14 -05:00
bunnei e7dd4d34aa Merge pull request #485 from Subv/more_servs
Services: Stubbed more services.
2015-01-25 22:13:13 -05:00
Subv 2ea60bdc7f Services/HID: Removed some files due to a rebase error 2015-01-24 15:54:24 -05:00
Subv c2e9990149 Services: Stubbed more services.
Implemented FSUser::CreateExtSaveData
2015-01-24 15:44:40 -05:00
bunnei cc34462b71 Merge pull request #410 from chinhodado/cleanup
Cleanup: Logging in Core
2015-01-24 00:41:10 -05:00
Lioncash e09fb7becc vfp: Clean up vertical alignment for instructions 2015-01-23 13:35:08 -05:00
purpasmart96 2dd23b6467 APT_U: Stub some functions & misc changes 2015-01-22 16:03:48 -08:00
archshift 92a75df9b1 cam_u.h: fix indentation
Withholding my profanity towards Xcode.
2015-01-22 12:51:53 -08:00
bunnei 92550013cf Merge pull request #493 from archshift/ptmplay
Stubbed some services
2015-01-22 13:25:19 -05:00
Lioncash 8810dfe1de dyncom: Minor cleanup
Removes some unused macros and cleans up indentation inconsistencies
2015-01-22 09:39:41 -05:00
bunnei 731154f79e WaitSynchronization: Added a result code for invalid result, fixed bug. 2015-01-21 20:49:43 -05:00
bunnei 68ddaaa2f5 Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup. 2015-01-21 20:48:46 -05:00
bunnei 4255f25647 Thread: Use std::find in CheckWait_WaitObject. 2015-01-21 20:48:46 -05:00
bunnei 2f3020a102 Mutex: Cleanup and remove redundant code. 2015-01-21 20:48:36 -05:00
bunnei f09806aed2 Kernel: Renamed some functions for clarity.
- ReleaseNextThread->WakeupNextThread
- ReleaseAllWaitingThreads->WakeupAllWaitingThreads.
2015-01-21 20:48:30 -05:00
bunnei 15b6a4d9ad Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void. 2015-01-21 20:47:49 -05:00
bunnei c68eb15695 WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" pure virtual. 2015-01-21 20:47:49 -05:00
bunnei 69c5830ef2 Event: Fix implementation of "non-sticky" events. 2015-01-21 20:47:48 -05:00
bunnei 9e6ec3b6cd Session: Change to a WaitObject. 2015-01-21 20:47:47 -05:00
bunnei d2759c578e Kernel: Reschedule on SignalEvent and SendSyncRequest, fix some bugs. 2015-01-21 20:47:47 -05:00
bunnei dde02f79af Mutex: Fix a bug where the thread should not wait if it already has the mutex. 2015-01-21 20:47:46 -05:00
bunnei 9412996c8f Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a WaitObject safely. 2015-01-21 20:47:46 -05:00
bunnei c06d64528a SVC: Removed a Sleep that made no sense
- Would deadlock the calling thread
- Code would never get hit anyways
2015-01-21 20:47:45 -05:00
bunnei 254e4ebd58 AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense. 2015-01-21 20:47:45 -05:00
bunnei e5a9f1c644 Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks. 2015-01-21 20:47:38 -05:00
bunnei 6deb1a0119 WaitSynchronizationN: Improved comments 2015-01-21 19:12:51 -05:00
bunnei 6643673f28 WaitSynchronizationN: Refactor to fix several bugs
- Separate wait checking from waiting the current thread
- Resume thread when wait_all=true only if all objects are available at once
- Set output to correct wait object index when there are duplicate handles
2015-01-21 19:11:47 -05:00
bunnei aa01c57ae9 Kernel: Separate WaitSynchronization into Wait and Acquire methods. 2015-01-21 19:10:24 -05:00
bunnei 627e96fc15 WaitSynchronizationN: Handle case where handles=nullptr. 2015-01-21 19:09:10 -05:00
bunnei f5c6d367c9 WaitSynchronizationN: Handle case where handle_count is invalid. 2015-01-21 19:09:09 -05:00
bunnei 064be2b86f WaitSynchronizationN: Handle case where handle_count=0. 2015-01-21 19:09:09 -05:00
bunnei 7faf2d8e06 WaitSynchronizationN: Implement return values 2015-01-21 19:09:03 -05:00
bunnei e4a5d8ad4f Event: Fixed some bugs and cleanup (Subv) 2015-01-21 18:43:50 -05:00
bunnei 1f7a04f05a Thread: Keep track of multiple wait objects. 2015-01-21 18:42:04 -05:00
bunnei 14cbbf4d9b Event: Get rid of permanent_lock hack. 2015-01-21 18:42:04 -05:00
bunnei 5e77e2e1de WaitObject: Added RemoveWaitingThread, fixed a bug, and cleanup. 2015-01-21 18:41:58 -05:00
bunnei c22bac6398 Kernel: Added WaitObject and changed "waitable" objects inherit from it. 2015-01-21 18:41:00 -05:00
archshift 1f109c6b49 Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxx 2015-01-21 13:31:10 -08:00
archshift a68dda6328 Stubbed cam:u service 2015-01-21 12:50:18 -08:00
archshift 7516ceaf93 Stubbed ptm:play service 2015-01-21 12:50:18 -08:00
Tony Wasserka 8946df97b5 Merge pull request #429 from Kingcom/titlebar
Add option to hide dock widget title bars
2015-01-20 23:17:42 +01:00
Kingcom 76c74ffc96 citra-qt: Add option to hide dock widget title bars 2015-01-20 22:50:24 +01:00
bunnei 8571befc64 Merge pull request #498 from lioncash/statics
core_timing: Mark several variables as static
2015-01-20 14:34:07 -05:00
Lioncash a3f5e5605c core: Fix a few docstrings 2015-01-20 13:52:44 -05:00
Lioncash bfef0aa07e core_timing: Mark several variables as static
These are only used in this translation unit.
2015-01-20 13:49:10 -05:00
bunnei cbbe9e1500 Merge pull request #492 from archshift/apt
Expose GetSharedFont and NotifyToWait to APT:A and APT:S respectively
2015-01-20 12:55:53 -05:00
bunnei 205170fa62 Merge pull request #241 from linkmauve/better-loader
Improve the loader a bit
2015-01-20 12:55:28 -05:00
Lioncash 8c6edc680c dyncom: Clarify precedence for ternary statements 2015-01-19 20:35:55 -05:00
bunnei 004b23153b Merge pull request #494 from lioncash/shift
dyncom: Implement missing shifts in ScaledRegisterPostIndexed, etc
2015-01-19 16:42:31 -05:00
Chin fa8e6272c8 Cleanup: Logging in Core 2015-01-19 16:01:06 -05:00
Lioncash a873f157d0 dyncom: Implement missing shifts in ScaledRegisterPostIndexed, etc 2015-01-18 18:32:02 -05:00
bunnei be8f665142 Merge pull request #383 from zhuowei/shared_page
Add some support for the shared page
2015-01-18 18:31:52 -05:00
archshift 4d316cbd8e Expose GetSharedFont and NotifyToWait to APT:A and APT:S respectively 2015-01-18 15:15:14 -08:00
Lioncash 8575010a68 dyncom: Handle the ARM A2 encoding of STRT/LDRT
These were also missing the shifted register case.
2015-01-17 13:53:35 -05:00
Lioncash 0a5d450e94 dyncom: Handle the ARM A2 encoding of LDRBT/STRBT. 2015-01-16 21:05:27 -05:00
Zhuowei Zhang edb8450420 Add some support for the shared page (currently 3d slider is implemented) 2015-01-15 22:16:13 -05:00
bunnei 2572a62480 APT: Fix typo in setting return code for NotifyToWait 2015-01-15 18:23:53 -05:00
bunnei 350c5a7e32 DSP: Removed useless spam log for SignalInterrupt 2015-01-15 18:20:58 -05:00
bunnei 4b47ed6194 Merge pull request #482 from yuriks/fix-vblank
Correctness fixes for GPU flipping and interrupts
2015-01-15 18:11:03 -05:00
Emmanuel Gil Peyrot df0d66c7cf Loader: Clean up the ELF AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot 84e52a944d Loader: Clean up the 3DSX AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot 08aaa33500 Loader: Clean up the NCCH AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot 2c24e539a2 Loader: Display the type of the file being loaded. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot 82ec17db7d Loader: Guess filetype from the magic, or fallback to the extension. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot 04622a859c Loader: Don’t assume the file hasn’t been read before. 2015-01-15 22:23:07 +01:00
Emmanuel Gil Peyrot b5237e885d Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot 2d63df90a9 Loader: Initialize the default NCCH values in the class declaration, not in the constructor. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot 9d3bb8b7c0 Loader: Remove the useless THREEDSXReader class. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot 85030c6e6b Loader: Never forget to change is_loaded. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot 43e699d849 Loader: Don’t duplicate the docstring into the cpp file. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot bc2212106f Loader: Fix indentation, whitespace, and a few other such cosmetic stuff. 2015-01-15 21:21:25 +00:00
bunnei 3ff5a80d46 Merge pull request #481 from Subv/hm_b
APTU: Stubbed NotifyToWait, taken from 3dmoo.
2015-01-14 21:39:49 -05:00
Sebastian Valle fd1b600e05 APT: Fixed the comment style in some variables 2015-01-14 10:14:22 -05:00
bunnei 394d44cf74 Merge pull request #480 from Subv/arb_2
AddrArbiter: Implement arbitration types 3 and 4.
2015-01-14 10:04:33 -05:00
Yuri Kunde Schlesner a09f71521e GPU: Fix buffer overrun in Display Transfers
Display transfers with the horizontal downscaling flag were calculating
the wrong output size, causing them to write double the amount of data
intended. It is likely that this was perceived as correct due to a
separate bug in calculating source indices which caused the image to be
padded unless the previous bug was present.

This fixes both issues, correcting flickering issues in 3dscraft,
blargSnes and more (caused by the transfer overwriting the back buffer
which followed) as well as potentially fixing other crashes.
2015-01-14 05:20:14 -02:00
Yuri Kunde Schlesner 7630b31672 GSP: Fix appending of interrupts to the shared memory buffer
The code was previously appending the interrupt to after the end of the
buffer, instead of at the end.
2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner 9e084826b8 GPU: Do periodic VBlank updates using CoreTiming 2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner e29dd76e12 GPU: Correct wrong default framebuffer address for sub-screen.
It appears this is a mistake, since the sub-screen has no right
framebuffer.
2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner 5961a2852d GSP: Update framebuffer info on all interrupts
Hardware testing determined that the GSP processes shared memory
framebuffer update info even when no memory transfer or filling GX
commands are used. They are now updated on every interrupt, which isn't
confirmed correct but matches hardware behaviour more closely.

This also reverts the hack introduced in #404. It made a few games
behave better, but I believe it's incorrect and also breaks other games.
2015-01-14 05:20:12 -02:00
Yuri Kunde Schlesner 98e3274935 GPU: Fire GPU interrupts at the correct places.
PDC0 and PDC1 are both VBlank interrupts. PDC0 was being treated as a
HBlank interrupt and fired many more times than it should. They now both
fire together at 60 Hz. This puzzlingly *improves* apparent framerate on
many applications.

A few other interrupts were being fired inside the GSP command
processing instead of on the actual GPU register writes, so they were
moved there, which should cover direct writes tho those registers not
going through the GX command queue.
2015-01-14 05:07:35 -02:00
Subv 728c932dba APTU: Stubbed NotifyToWait, taken from 3dmoo.
Also renamed some handles in the APT:U service to be more descriptive.
Fixed a typo in InquireNotification
2015-01-13 19:18:10 -05:00
bunnei 93f36c49f7 Merge pull request #473 from archshift/pp3ports
Pica/Rasterizer: Add ETC1 texture decompression support.
2015-01-13 18:11:18 -05:00
Tony Wasserka f2b74b4fb3 Pica/Rasterizer: Add ETC1 texture decompression support. 2015-01-13 14:42:40 -08:00
Subv 9e2ae289b8 AddrArbiter: Implement arbitration types 3 and 4. 2015-01-13 14:49:26 -05:00
Subv cf071cd897 Services: Added some missing services.
cfg:s, ptm:sysm, apt:s.
apt:s is almost exactly the same as apt:u as per 3dbrew
2015-01-13 14:43:30 -05:00
bunnei 682e6bc8d9 Merge pull request #477 from lioncash/vfp
vfp: Remove dead code
2015-01-12 21:56:49 -05:00
bunnei 99c0716d4d Merge pull request #478 from archshift/pp3ports4
Pica/VertexShader: Implement the MAD instruction.
2015-01-12 21:55:35 -05:00
bunnei 65c12d2430 Merge pull request #470 from archshift/master
Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU.
2015-01-12 21:45:38 -05:00
Tony Wasserka 2b9a9a45b7 Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU. 2015-01-12 15:47:21 -08:00
Tony Wasserka e02db3904b Pica/VertexShader: Implement the MAD instruction. 2015-01-12 15:34:36 -08:00
Lioncash 9288893d29 vfp: Remove dead code 2015-01-12 15:24:57 -05:00
Lioncash f7770b83d4 dyncom: Fix 32-bit ASR shifts for immediates 2015-01-12 14:15:24 -05:00
Lioncash e16b35eb53 dyncom: Remove unused flag macros 2015-01-12 12:57:15 -05:00
bunnei 3683369500 Merge pull request #461 from archshift/callstack
Qt Callstack: Clear the callstack every time it's updated
2015-01-12 10:35:45 -05:00
bunnei f3a7b66267 Merge pull request #472 from lioncash/overflow
dyncom: Fix some more V-flag setting ops. Plus some cleanup.
2015-01-12 10:35:19 -05:00
Lioncash 2843d1b98b dyncom: Get rid of unnecessary outer-scope variables in InterpreterMainLoop 2015-01-12 01:11:46 -05:00
Lioncash 3ace75a49f dyncom: Fix overflow flag setting for ADD/RSB/RSC/SUB/SBC
Also cleans up CMN, and CMP.
2015-01-12 01:03:58 -05:00
archshift d670b7e522 Qt Callstack: Clear the callstack every time it's updated
This fixes the issue that old members of the callstack would stick around, even when the callstack shortened.
2015-01-11 21:47:28 -08:00
Lioncash 9c2c89b7e1 dyncom: Add a helper function for addition with a carry 2015-01-12 00:44:28 -05:00
darkf 67c644e317 Fix building on MinGW 2015-01-11 20:22:08 -08:00
Lioncash d2a05bbbc6 dyncom: Fix ADC overflow flag setting 2015-01-11 22:27:09 -05:00
bunnei b33380ca59 Merge pull request #456 from Subv/waitsync1
SVC: Wake up the thread after the delay in WaitSync1
2015-01-11 18:52:09 -05:00
bunnei 1da04a72a2 Merge pull request #467 from lioncash/msr
dyncom: Fix conditional execution of MSR
2015-01-11 18:51:03 -05:00
Lioncash eabfa5cf43 dyncom: Fix conditional execution of MSR 2015-01-11 18:45:45 -05:00
Tony Wasserka f1080de47d Merge pull request #437 from Kingcom/DebugMode
Replace OnCpuStepped signal
2015-01-11 21:28:18 +01:00
Kingcom 2bbc12e6c3 citra-qt: Replace OnCpuStepped signal by new signals DebugModeEntered and DebugModeLeft 2015-01-11 21:22:51 +01:00
bunnei 542b0b0057 Merge pull request #466 from Subv/wake
Thread: Prevent waking a thread multiple times.
2015-01-11 13:39:23 -05:00
Subv b68d51ed30 Thread: Prevent waking a thread multiple times.
If a thread was woken up by something, cancel the wakeup timeout.
2015-01-11 13:18:52 -05:00
bunnei 63d05fca36 Merge pull request #457 from Subv/qt
citra-qt: Fixed some Qt errors on initialization
2015-01-11 10:59:53 -05:00
Subv 38da198aa1 SVC: Wake up the thread after the delay in WaitSync1 2015-01-11 10:42:59 -05:00
archshift 3b555e2512 Stubbed y2r:u IsBusyConversion
There is no documentation available on this function, but we set the result to false as a stub.
This allows Super Little Acorns to move all the way in game with pp3c.
2015-01-10 22:47:31 -08:00
archshift 95be6ad7ae Added Archive ID to fs:USER debug logs involving opening the archive. 2015-01-10 14:32:11 -08:00
archshift 228843c43e Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance. 2015-01-10 14:32:10 -08:00
Subv 115a4bfc9e citra-qt: Add explicit casts to prevent some warnings. 2015-01-10 15:55:52 -05:00
Subv 1b01938767 citra-qt: Fixed some Qt errors on initialization 2015-01-10 15:35:26 -05:00
bunnei 5a4b361f60 Merge pull request #455 from yuriks/handle-reform3
Kernel Lifetime Reform Pt. 3
2015-01-10 15:19:21 -05:00
bunnei e7d2118858 Merge pull request #342 from uppfinnarn/master
Build improvements
2015-01-10 02:03:07 -05:00
Yuri Kunde Schlesner 8ad41775cc Kernel: Start using boost::intrusive_ptr for lifetime management 2015-01-09 19:43:52 -02:00
Yuri Kunde Schlesner d751de7341 Kernel: Don't re-assign object's handle when duplicating one 2015-01-09 19:43:51 -02:00
bunnei 6ae12424df Merge pull request #444 from yuriks/handle-reform2
Kernel Lifetime Reform Pt. 2
2015-01-09 12:59:35 -05:00
bunnei 86e07124ad Merge pull request #436 from kevinhartman/system-core
Warn if a new thread is intended to be run on the system CPU core
2015-01-09 11:14:35 -05:00
Johannes Ekberg d7ad14ae20 Use -pthread where and only where needed
Passing -pthread to GCC as a flag makes it both link to libpthread, and make C standard library routines reentrant. This makes the additional explicit links unnecessary.

Additionally, on OSX, this is the default behavior, and clang will print a message about it being unused if it's present there.
2015-01-09 15:50:46 +01:00
Johannes Ekberg 7d7ab70279 Generic PLATFORM_LIBRARIES var
This both reduces redundancy in add_executable definitions, and makes it easier to link additional libraries. In particular, extra libraries are needed on OSX - see next commit.
2015-01-09 15:50:46 +01:00
Yuri Kunde Schlesner 78ea76e12f Thread: Fix nullptr access in a logging function 2015-01-09 04:02:28 -02:00
Yuri Kunde Schlesner 7f1557fbbd Thread: Rename thread_queue => thread_list 2015-01-09 04:02:17 -02:00
Yuri Kunde Schlesner 9bf8462b96 Thread: Reduce use of Handles and move some funcs to inside the class. 2015-01-09 04:02:15 -02:00
Yuri Kunde Schlesner ba72208cd4 Kernel: Move Thread's definition to the header file 2015-01-09 03:51:55 -02:00
Yuri Kunde Schlesner 7b3452c730 Move ThreadContext to core/core.h and deal with the fallout 2015-01-09 03:51:55 -02:00
bunnei d46f650036 Merge pull request #255 from Subv/cbranch_3
Implemented timers
2015-01-08 22:38:33 -05:00
Subv 40c1439c34 Core: Fixed a crash and removed some unused variables.
ARM_Disasm only has static methods, so there's no need to have an instance of it.
2015-01-08 21:49:41 -05:00
Subv 07044651ef SVC: Implemented the Timer service calls. 2015-01-08 21:22:14 -05:00
Subv fc842963c8 DynCom: Add a comment to GetTicks. 2015-01-08 19:46:00 -05:00
Subv 620d77b7e3 Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
2015-01-08 19:39:14 -05:00
bunnei cf1bbe8705 Merge pull request #443 from Subv/sleep_thread
SVC: Fixed SleepThread
2015-01-08 18:45:35 -05:00
Subv dfc440785a SVC: Fixed SleepThread.
It will now properly wait the specified number of nanoseconds and then wake up the thread.
2015-01-08 18:39:12 -05:00
bunnei 2432f317e4 Merge pull request #446 from lioncash/umaal
dyncom: Fix UMAAL
2015-01-08 11:22:20 -05:00
Lioncash 1cef6e92d5 dyncom: Fix UMAAL
These need to be done as a 64-bit operation.
2015-01-08 11:09:21 -05:00
bunnei 72915423c3 Merge pull request #441 from Kingcom/CallStack
Add check for valid address to call stack
2015-01-07 21:00:46 -05:00
Subv 60a373a786 Threads: Use a dummy idle thread when no other are ready.
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again.
2015-01-07 20:31:31 -05:00
bunnei b659cac2dc Merge pull request #404 from bunnei/more-frame-synch-fixes
GPU: Toggle active framebuffer each frame
2015-01-07 18:13:48 -05:00
bunnei f7a3f45f1e GSP: Toggle active framebuffer each frame 2015-01-07 18:06:00 -05:00
bunnei e6864a1f41 Merge pull request #431 from yuriks/thread-queue-cleanup
Common: Clean up ThreadQueueList
2015-01-07 17:58:31 -05:00
Kevin Hartman 63be6aaadd Warn if a new thread is intended to be run on the system CPU core until we implement correct scheduling for such a thread. 2015-01-07 14:14:48 -08:00
bunnei 4c583732f2 Merge pull request #442 from lioncash/smul
dyncom: Fix SMULWB/SMULWT
2015-01-07 16:49:30 -05:00
Lioncash df5e0f9f28 dyncom: Fix SMULWB/SMULWT
Wasn't doing proper sign-extension
2015-01-07 16:41:08 -05:00
Kingcom 693f6c54e5 citra-qt: Add check for valid address to call stack 2015-01-07 21:39:40 +01:00
Yuri Kunde Schlesner 122c2bb324 Common: Clean up ThreadQueueList
Replace all the C-style complicated buffer management with a std::deque.
In addition to making the code easier to understand it also adds support
for non-POD IdTypes.

Also clean the rest of the code to follow our code style.
2015-01-07 18:38:25 -02:00
bunnei 3eca33c6a4 Merge pull request #425 from Subv/coretiming
Ported the CoreTiming namespace from PPSSPP
2015-01-07 15:30:46 -05:00
Subv 9bf82beb4c CoreTiming: Ported the CoreTiming namespace from PPSSPP
Implemented the required calls to make it work.

CoreTiming: Added a new logging class Core_Timing.
2015-01-07 15:08:35 -05:00
Yuri Kunde Schlesner a6ad68190f Fix double-free in Service manager during shutdown
Fixes #423.
2015-01-07 17:32:31 -02:00
bunnei 317fe1e528 Merge pull request #438 from lioncash/swp
dyncom: Fix SWPB
2015-01-07 09:53:29 -05:00
bunnei 5ae3a9657d Merge pull request #434 from lioncash/sm
dyncom: Move over SMLALXY
2015-01-07 09:51:06 -05:00
Lioncash 75c211c10f dyncom: Fix SWPB 2015-01-07 09:36:06 -05:00
Lioncash 511e13f3e3 dyncom: Move over SMLALXY 2015-01-07 00:53:56 -05:00
bunnei 5217e3f873 Merge pull request #421 from linkmauve/remove-dead-platforms
Remove dead platform #ifdefs to make the code more readable.
2015-01-06 23:09:20 -05:00
bunnei 088863c921 Merge pull request #376 from Subv/arc_reorder
Archives: Change the folder layout of some archives.
2015-01-06 20:13:56 -05:00
Subv 8fbe5d2dca Archives/Exdata: Don't set concrete_mount_point in the ctor 2015-01-06 16:12:25 -05:00
Subv 32dbb76e00 Archives: Changed the unimplemented archives comment.
It now refers to me as the PoC
2015-01-06 15:34:37 -05:00
Subv 5244ac0e9c Archives: Addressed some comments 2015-01-06 15:02:30 -05:00
Emmanuel Gil Peyrot 6b411c63c9 Common: Remove dead platform #ifdefs to make the code more readable.
Symbian, Xbox, Blackberry and iOS got removed.
FreeBSD and Android kept due to them potentially being able to run Citra in the future.
The iOS specific part also got removed from PPSSPP in order to fix a bug there.
2015-01-06 18:57:28 +00:00
bunnei 0bf5a0bfc4 Merge pull request #402 from chrisvj/master
Renamed all .hxx headers to .h
2015-01-06 12:43:08 -05:00
bunnei 89bb0ecbd5 Merge pull request #417 from kevinhartman/exclusive-tag-fix
Added exclusive reservation granule from ARMv7 spec to dyncom...
2015-01-06 12:42:10 -05:00
chrisvj b0a14cfe7f citra-qt: Renamed all .hxx headers to .h 2015-01-06 04:51:54 -08:00
bunnei 9c8b867d86 Merge pull request #419 from linkmauve/no-x86-specifics
Remove x86 specifics
2015-01-05 22:59:27 -05:00
bunnei 9eaef4e04a Merge pull request #413 from purpasmart96/serv_clean
Services: Clean up a few things and add a few function names
2015-01-05 22:48:58 -05:00
Kevin Hartman 8132c01830 Added exclusive reservation granule from ARMv7 spec to dyncom to protect LDR/STREX. 2015-01-05 22:29:51 -05:00
bunnei 9b83f0e158 Merge pull request #272 from rohit-n/sign-compare
Silence some -Wsign-compare warnings.
2015-01-05 22:10:56 -05:00
purpasmart96 379b39e583 Services: Clean up a few things and add a few function names 2015-01-05 16:07:15 -08:00
Subv 123a76c9c8 SaveDataCheck: Fixed a typo 2015-01-05 16:40:36 -05:00
bunnei 6fad32ea98 Merge pull request #422 from lioncash/bxj
dyncom: Partially emulate BXJ
2015-01-05 16:36:29 -05:00
Lioncash f75def619c dyncom: Partially emulate BXJ
Just in case some game studio let the intern write inline assembly or something.
2015-01-05 15:55:09 -05:00
bunnei 4828d0b7af Merge pull request #416 from bunnei/fake-dsp-interrupt
DSP: Signal (faked) interrupt on every frame.
2015-01-05 15:51:36 -05:00
Emmanuel Gil Peyrot 66e06f65c4 Common: Use std::abs instead of abs, using abs with cmath fails on some systems. 2015-01-05 16:38:12 +00:00
Lioncash e08a39a2f4 dyncom: Actually set the Q flag for SMLABB/SMLABT/SMLATB/SMLATT
Easy skyeye todo fix.
2015-01-05 10:41:02 -05:00
Emmanuel Gil Peyrot ffe4cc9c5a Common: Remove the unused x86-specific 128-bit float type. 2015-01-05 15:03:50 +00:00
bunnei 8b1ec1a82a Merge pull request #418 from lioncash/qd
dyncom: Implement QADD/QSUB/QDADD/QDSUB
2015-01-05 09:59:12 -05:00
Lioncash d00c22c706 dyncom: Implement QADD/QSUB/QDADD/QDSUB 2015-01-05 09:13:41 -05:00
bunnei e9650f1c61 DSP: Signal (faked) interrupt on every frame.
- Hack to work around games checking that the DSP event has been signaled by a real DSP interrupt.
2015-01-05 00:25:37 -05:00
bunnei cc23269ff4 Merge pull request #407 from Subv/arbiter
AddressArbiter: Ported arbitration type 2 from 3dmoo.
2015-01-05 00:05:50 -05:00
bunnei 81e255a411 Merge pull request #415 from Dante38490/master
Loader: Add support for loading NCCH ROMs with the .3DS extension
2015-01-04 23:10:04 -05:00
bunnei 96e6b2aa50 Merge pull request #408 from Subv/mutex
Mutex: Add the calling thread to the waiting list when needed
2015-01-04 22:55:53 -05:00
Dante38490 e674aa31af Fix correct espace 2015-01-05 04:45:09 +01:00
Dante38490 35a085d567 Add support load 3DS room 2015-01-05 04:39:42 +01:00
bunnei 26f31a2dfb Merge pull request #386 from archshift/y2ru
Stub the y2r:u service
2015-01-04 21:40:58 -05:00
bunnei ecf390b327 Merge pull request #406 from chrisvj/license-headers
citra-qt: Added license headers to files.
2015-01-04 21:39:07 -05:00
Subv ea80363cc2 Mutex: Add the calling thread to the waiting list when needed
This will happen when the mutex is already owned by another thread. Should fix some issues with games being stuck due to waiting threads not being awoken.
2015-01-04 12:52:34 -05:00
chrisvj 6dfcf2271b citra-qt: Added license headers to files. 2015-01-04 09:36:57 -08:00
Lioncash 41e1cb12e5 skyeye: Remove duplicate typedefs
citra already has its own typedefs like this.
2015-01-04 12:34:02 -05:00
Subv 90dffe3fc1 Archives: Make SYSTEM_ID and SDCARD_ID strings 2015-01-04 09:10:27 -05:00
Yuri Kunde Schlesner cdde76f2aa Frontends: Shutdown core when emulation is stopped 2015-01-04 01:04:46 -02:00
Subv 71a063f45c Archives: Changed the way paths are built for the archives.
Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout
2015-01-03 20:46:05 -05:00
Subv cfd7b219f6 SaveDataCheck: Move the files to nand/title
under /nand/title/high/low/content/00000000.app.romfs
2015-01-03 19:01:46 -05:00
Yuri Kunde Schlesner 930e13cb2c FileSys: Fix crash bug in DiskFile exposed by #400 2015-01-03 18:28:37 -02:00
archshift 48130b1eaa Stub the y2r:u service 2015-01-03 16:42:39 -03:00
Yuri Kunde Schlesner 19b2e739c5 FileSys: Fix a few memory leaks 2015-01-03 17:16:16 -02:00
Subv 0276a75f24 AddressArbiter: Ported arbitration type 2 from 3dmoo.
(Thanks 3dmoo!)
2015-01-03 12:09:11 -05:00
bunnei edbb47d967 Merge pull request #396 from bunnei/default-dyncom
Core: Change default CPU to dyncom.
2015-01-03 11:59:42 -05:00
bunnei caa6d431ee Merge pull request #398 from lioncash/sm
dyncom: Implement SMLAW
2015-01-03 11:47:01 -05:00
Lioncash 6adc0a4622 dyncom: Implement SMLAW 2015-01-03 03:13:49 -05:00
bunnei b11518c272 VFP: Minor cleanup, functionally the same. 2015-01-03 01:22:38 -05:00
bunnei dd21f986b8 Merge pull request #395 from lioncash/rev
dyncom: Implement REVSH
2015-01-02 22:44:39 -05:00
Lioncash 2f19acf064 dyncom: Implement REVSH
Also joins the REV ops into one common place.
2015-01-02 22:40:43 -05:00
bunnei 853b46c681 Core: Change default CPU to dyncom. 2015-01-02 22:33:53 -05:00
Lioncash e0e54f55d7 dyncom: Implement SMLALD/SMLSLD 2015-01-02 22:08:26 -05:00
Subv 3bc9f5509b Archives: Change the folder layout of some archives.
This is to better represent the hardware layout, they are still aren't quite accurate, but this better and will help a bit when implementing the other archives like NAND-RO and NAND-RW
2015-01-02 21:55:13 -05:00
bunnei 031237e52c Merge pull request #381 from Subv/savedatacheck
Implemented the SaveDataCheck archive
2015-01-02 21:50:57 -05:00
bunnei 3e230d6c9e Merge pull request #392 from lioncash/sm
dyncom: Implement SMMLA/SMMUL/SMMLS
2015-01-02 21:47:53 -05:00
Lioncash 64161bcb41 dyncom: Implement SMMLA/SMMUL/SMMLS 2015-01-02 21:40:29 -05:00
Subv 22cfa55302 IVFCArchive: Use a critical log to notify of invalid operations. 2015-01-02 21:39:31 -05:00
Subv 0d03fdec71 SaveDataCheck: Remove unneeded constructor from a class 2015-01-02 21:28:46 -05:00
Subv 2f9a2d410d Archives: Added some documentation to IVFCArchive 2015-01-02 21:13:55 -05:00
Subv aade417b14 Archives: Reduced duplicate code in RomFS and SaveCheck.
Fixed a few warnings and cleaned up the code
2015-01-02 21:13:54 -05:00
Subv 13efbdc201 SaveDataCheck: Preliminary work in this archive.
This allows Steel Diver to boot further, some files are needed.

This is still not ready and needs a big cleanup, this will possibly be delayed until the way we handle archives is fixed (with factory classes instead of ahead-of-time creation of archives)
2015-01-02 21:13:53 -05:00
bunnei 3d9bf13439 Merge pull request #391 from lioncash/pedantic
archive/elf: Minor misc changes.
2015-01-02 21:04:49 -05:00
bunnei dd8a57cb80 dyncom: Implemented LDREXD/STREXD/LDREXH/STREXH 2015-01-02 20:51:54 -05:00
bunnei 3b2da87080 Merge pull request #390 from lioncash/wut
dyncom: Remove dead function InterpreterInitInstLength
2015-01-02 20:40:29 -05:00
bunnei 6ae381ac9e Merge pull request #388 from lioncash/sm
dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSD
2015-01-02 20:39:36 -05:00
Lioncash bf23f94571 elf: Make DidRelocate const 2015-01-02 20:32:16 -05:00
Lioncash 0d81b1e75b archive: Fix initializer list order 2015-01-02 20:30:57 -05:00
Lioncash 67187c15a0 dyncom: Remove dead function InterpreterInitInstLength
Technically eliminates two memory leaks as well.
2015-01-02 20:24:00 -05:00
Lioncash bdbd111c7e soc_u: Fix a missing formatting argument 2015-01-02 19:54:21 -05:00
Lioncash bee4ff8454 armemu: Fix missing Q flag check for SMLSD. 2015-01-02 18:29:36 -05:00
Lioncash 3337b84620 dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSD 2015-01-02 18:29:30 -05:00
bunnei 092a67cefb Merge pull request #382 from lioncash/sx
dyncom: Implement SXTAB16 and SXTB16
2015-01-02 11:50:01 -05:00
Tony Wasserka 27406cc377 Merge pull request #377 from Yllodra/misc-changes
Qt: Letter cases and single window mode
2015-01-02 14:49:50 +01:00
Lioncash 48bf0f9996 dyncom: Implement SXTAB16 and SXTB16 2015-01-01 21:59:37 -05:00
bunnei 7c8f6ca051 Merge pull request #358 from neobrain/pica_progress2
pica_progress followups
2015-01-01 20:54:45 -05:00
bunnei fa4cc502e7 Merge pull request #379 from lioncash/sh
dyncom: Implement SHADD8/SHADD16/SHSUB8/SHSUB16/SHASX/SHSAX
2015-01-01 20:43:04 -05:00
bunnei 3e566be052 Merge pull request #378 from lioncash/s8
dyncom: Implement SADD8/SSUB8
2015-01-01 20:41:51 -05:00
Rohit Nirmal c589d82052 Silence some -Wsign-compare warnings. 2015-01-01 16:38:36 -06:00
Daniel Lundqvist 85c150a4fd Make letter cases consistent in menus and widgets
In various menu options letter cases were not consistent. This was also
the case within various debugging widgets. This attempts to make letter
cases consistent, but it is of course a matter of opinion which way is the
correct one.
2015-01-01 18:52:39 +01:00
Daniel Lundqvist 3f3b890694 Change popout mode to "Single Window Mode" 2015-01-01 18:50:56 +01:00
Lioncash 524da47698 dyncom: Implement SHADD8/SHADD16/SHSUB8/SHSUB16/SHASX/SHSAX 2015-01-01 10:34:20 -05:00
Lioncash 481a6c9652 Fix SADD8/SSUB8 in the armemu 2015-01-01 09:44:32 -05:00
Lioncash 4e2cb06b81 dyncom: Implement SADD8/SSUB8 2015-01-01 09:39:40 -05:00
Daniel Lundqvist a35e3a8632 Set object name for the graphics debugger
Setting an object name for GPUCommandStreamWidget allows for saving the
graphics debugger's state (if it's show, position, etc). This state is
then restored when restarting the application.
2015-01-01 14:49:35 +01:00
Subv 97a7381d29 SOC_U: Preliminary implementation of sockets.
Stubbed CreateMemoryBlock

Using Berkeley sockets, and Winsock2.2 on Windows.
So far ftpony creates the socket and accepts incoming connections

SOC_U: Renamed functions to maintain consistency

Also prevents possible scope errors / conflicts with the actual Berkeley socket functions

SOCU: Close all the opened sockets when cleaning up SOCU
2014-12-31 10:51:44 -05:00
Tony Wasserka bc187be0c1 Pica/Rasterizer: Remove some redundant casts. 2014-12-31 16:32:56 +01:00
Tony Wasserka 9675d19b47 Pica/Rasterizer: Make orient2d a free function and rename it to SignedArea. 2014-12-31 16:32:56 +01:00
Tony Wasserka 47543d62cf Pica: Cleanup color conversion. 2014-12-31 16:32:55 +01:00
Tony Wasserka 614baa39d1 VideoCore: Remove some unused functions. 2014-12-31 16:32:55 +01:00
Tony Wasserka d13bd327ba Pica/Rasterizer: Fix a bug related to multitexturing and texture wrapping. 2014-12-31 16:32:55 +01:00
Tony Wasserka 195d73a385 Pica/Rasterizer: Clean up long code lines. 2014-12-31 16:32:55 +01:00
Tony Wasserka 40c7200841 Pica/VertexShader: Coding style fixes. 2014-12-31 16:32:55 +01:00
Tony Wasserka 323a56f898 Pica/CommandProcessor: Cleanups. 2014-12-31 16:32:55 +01:00
Tony Wasserka b2d461020d Pica/CommandProcessor: Workaround games not setting the input position's w component. 2014-12-31 16:32:55 +01:00
Tony Wasserka 18a5e888bb GPU: Pseudo-implement horizontal scaling.
It's not really known how this actually works. Some testing has shown that this probably performs no filtering, and common usage in games suggests it's not actually resizing the image at all.
However, this patch does seem to fix some homebrew showing quasi-duplicated images while still keeping other applications in a working state.
2014-12-31 16:32:55 +01:00
Tony Wasserka 0f49424022 Pica/Rasterizer: Implement backface culling. 2014-12-31 16:32:55 +01:00
Tony Wasserka 3b78af904e Pica/Rasterizer: Textures seem to be laid out flipped vertically.
Not sure if this is a correct fix. Probably should instead change the decoding logic itself.
2014-12-31 16:32:55 +01:00
Tony Wasserka 3da52ead9b Pica/DebugUtils: Fix a bug in RGBA4 texture decoding. 2014-12-31 16:32:55 +01:00
Tony Wasserka a7ae0330b1 Pica/Rasterizer: Implement alpha blending. 2014-12-31 16:32:55 +01:00
Tony Wasserka e229ff8c83 Pica/Rasterizer: Implement depth testing. 2014-12-31 16:32:55 +01:00
bunnei 59bba04628 Merge pull request #375 from lioncash/uops
dyncom: Implement UADD8/UADD16/USUB8/USUB16/UASX/USAX
2014-12-31 10:14:37 -05:00
Tony Wasserka 77bb58afeb Pica/Rasterizer: Further enhance Tev support. 2014-12-31 15:35:54 +01:00
Tony Wasserka 36291bc3f6 Pica: Add output merger definitions. 2014-12-31 15:35:54 +01:00
Tony Wasserka 632655e292 Pica: Fix A4, IA4 and IA8 texture formats.
Both IA4 and IA8 had their component order mixed up. Additionally, IA4 used the wrong number of nibbles per texel. A4 skipped every second texel.
2014-12-31 15:35:24 +01:00
Tony Wasserka b7a48c422a Pica/CommandProcessor: Add support for integer uniforms. 2014-12-31 15:33:09 +01:00
Tony Wasserka b03a97e0b8 citra-qt: Fix displaying RGBA5551 framebuffers.
(not that it matters at the moment, because this code is not used yet)
2014-12-31 15:33:09 +01:00
Tony Wasserka e1144e364e citra-qt: Always show pica framebuffers as RGBA8.
We actually don't really know yet how the format is encoded. Hence just use what works.
2014-12-31 15:33:09 +01:00
Lioncash 3cc4af99d1 dyncom: Implement UADD8/UADD16/USUB8/USUB16/UASX/USAX 2014-12-31 06:45:41 -05:00
bunnei 746fcf5a59 Merge pull request #338 from chinhodado/master
Add citra icon to executable and window title in Windows
2014-12-31 00:47:06 -05:00
Chin 3aeb5970e5 Add citra icon to Windows executable and title bar 2014-12-31 00:38:03 -05:00
bunnei 631f13e462 dyncom: Massive refactor 2014-12-30 23:56:45 -05:00
bunnei 29da5da951 Merge pull request #369 from darkf/mingw_
Fix MinGW build (2)
2014-12-30 23:54:02 -05:00
Lioncash 5894c407c2 vfp: Get rid of a few warnings 2014-12-30 13:08:56 -05:00
Lioncash 6ce4b7b666 vfp: Implement VMOVBRRSS 2014-12-30 11:04:22 -05:00
Lioncash cc9f458ad3 dyncom: Implement USAT16/SSAT16 2014-12-30 09:43:24 -05:00
darkf 5d10b212ec Fix MSVC-related #defines and add CMakeLists comment 2014-12-29 20:12:03 -08:00
bunnei b3240f6455 Merge pull request #368 from purpasmart96/dsp_mem
MemMap: Add support for DSP Read & Writes in the memory map
2014-12-29 23:08:51 -05:00
Subv 545ded954d APT:A: Some style changes 2014-12-29 22:59:28 -05:00
darkf 8ba9ac0f74 Fix merge conflicts 2014-12-29 19:47:41 -08:00
purpasmart96 d5049cbba5 MemMap: Add support for DSP Read & Writes in the memory map 2014-12-29 19:35:06 -08:00
Subv 2c89d4d5cd Archives: Implemented ExtSaveData and SharedExtSaveData
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
2014-12-29 22:29:55 -05:00
bunnei 021fb42075 dyncom: Implement USAT/SSAT 2014-12-29 22:15:15 -05:00
bunnei 78bb86293f Merge pull request #253 from purpasmart96/mem_map
MemMap: Removed I/O address's and added more stuff
2014-12-29 21:57:04 -05:00
bunnei c2f41f0404 Merge pull request #362 from bunnei/dyncom-cleanup
dyncom: Various cleanups to match coding style, no functional changes.
2014-12-29 21:53:49 -05:00
bunnei dedbdb2dfb Merge pull request #344 from Yllodra/Qt-Oddities
Allow focus on the Qt render widget
2014-12-29 21:52:38 -05:00
bunnei aa49019afb dyncom: Various cleanups to match coding style, no functional changes. 2014-12-29 21:50:47 -05:00
Tony Wasserka b7e0b16354 Merge pull request #351 from yuriks/optimize
Rasterizer Optimizations
2014-12-30 00:13:48 +01:00
bunnei 2d2aa2c0be Merge pull request #361 from lioncash/moreqops
dyncom/armemu: Implement QADD8/QSUB8.
2014-12-29 14:53:04 -05:00
Lioncash d08d9f8747 dyncom: Fix SMLALXY's instruction labels
They were erroneously labeled as SMLAL.
2014-12-29 12:04:34 -05:00
Tony Wasserka 13699f05e7 Merge pull request #303 from linkmauve/fs-cleanup
FileSys cleanup
2014-12-29 12:14:59 +01:00
Lioncash e412c0fc46 dyncom: Implement QADD8/QSUB8 2014-12-29 00:54:48 -05:00
Lioncash 7ad400d5a7 armemu: Implement QADD8/QSUB8 2014-12-29 00:49:10 -05:00
bunnei 472ec0d0cf Merge pull request #360 from lioncash/dynuxt
dyncom: Implement UXTB16/UXTAB16
2014-12-28 23:20:30 -05:00
Yuri Kunde Schlesner 8369ee5803 Rasterizer: Pre-divide vertex attributes by W
Execute the division-by-W for perspective-correct interpolation of
values in the clipper, moving them out of the rasterization inner loop.
2014-12-29 02:08:11 -02:00
Yuri Kunde Schlesner fe186d3a59 GPU: Bitwise texture swizzling
Replace the loop-based texture address swizzling code by a bit-twiddling
implementation, providing a very small speed up. Also simplify
addressing code.
2014-12-29 02:08:11 -02:00
Yuri Kunde Schlesner 2012e1420f Rasterizer: Common sub-expression elimination
Move the computation of some values out of loops so that they're not
constantly recalculated even when they don't change.
2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner 7e9bc85cc8 Clipper: Compact buffers on each clipping pass
Use a new buffer management scheme in the clipper that allows using a
bounded minimal amount of buffer space. Even though it copies more data
it is still slightly faster likely due to using less cache.
2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner a320d1a5b4 Clipper: Avoid dynamic allocations
The triangle clipper was allocating its temporary input, output and work
buffers using a std::vector. Since this is a hot path, it's desirable to
use stack allocation instead.
2014-12-29 02:08:09 -02:00
Yuri Kunde Schlesner d151d797b1 Vertex Shader: Zero OutputVertex to avoid denormals
Unused OutputVertex attributes were being left un-initialized. The
leftover garbage sometimes decoded as floating-point denormalized
values, causing fallbacks to microcode and massive slowdowns in the rest
of the rasterization pipeline even though the results were unused. By
zeroing the structure we ensure these attributes only contain harmless
zeros.
2014-12-29 02:08:09 -02:00
Lioncash 5c198686ce dyncom: Implement UXTB16/UXTAB16 2014-12-28 22:45:04 -05:00
bunnei 487a80f9f7 Merge pull request #347 from bunnei/frameskip
Frameskip
2014-12-28 22:39:17 -05:00
bunnei df728cb4c2 Merge pull request #355 from lioncash/simp
armemu: Simplify some instructions.
2014-12-28 22:20:49 -05:00
bunnei 3b9d181b8e GPU: Implement frameskip and remove forced framebuffer swap hack. 2014-12-28 22:14:05 -05:00
bunnei 5763d40319 Merge pull request #352 from xdec/PR_XDEC_172
Qt: Citra crashes if disassembler pause button is pressed while no game is running. #172
2014-12-28 22:00:47 -05:00
bunnei 9a403d7dfb Merge pull request #359 from lioncash/vfp
vfp: Actually make the code somewhat readable
2014-12-28 21:54:53 -05:00
bunnei 77363d9590 Merge pull request #331 from yuriks/handle-reform
New Handle manager
2014-12-28 21:11:55 -05:00
Lioncash 9c7f2570f7 vfp: Actually make the code somewhat readable 2014-12-28 18:55:01 -05:00
bunnei bf9b33aa9f dyncom: Implement PKHBT and PKHTB. 2014-12-28 16:50:08 -05:00
bunnei 58cb62fe7b armemu: Fix PKHTB to do an arithmetic shift and correctly decode immediate field. 2014-12-28 16:18:52 -05:00
xdec e6162ed91e Qt: we don't need to check if model is valid. 2014-12-28 10:11:51 -08:00
Lioncash 7d322b5c6f dyncom: Implement USAD8/USADA8 2014-12-28 12:40:51 -05:00
Lioncash 6ce2a38ec4 armemu: Simplify SSAT/SSAT16/SXTB/SXTAB 2014-12-28 12:19:31 -05:00
Lioncash 9f5b53f9ff armemu: Simplify REV/REV16/SXTH/SXTAH 2014-12-28 12:13:13 -05:00
bunnei 762f16c4ad Merge pull request #354 from lioncash/usaduflow
armemu: Fix underflows in USAD8/USADA8
2014-12-28 11:57:25 -05:00
Lioncash 914ecfe04f armemu: Simplify USAT16/UXTB/UXTAB 2014-12-28 11:57:14 -05:00
Lioncash 5e16216afb armemu: Simplify REVSH/UXTH/UXTAH 2014-12-28 11:57:09 -05:00
Yuri Kunde Schlesner 7e2903cb74 Kernel: New handle manager
This handle manager more closely mirrors the behaviour of the CTR-OS
one. In addition object ref-counts and support for DuplicateHandle have
been added.

Note that support for DuplicateHandle is still experimental, since parts
of the kernel still use Handles internally, which will likely cause
troubles if two different handles to the same object are used to e.g.
wait on a synchronization primitive.
2014-12-28 11:52:55 -02:00
Yuri Kunde Schlesner 23f2142009 Kernel: Replace GetStaticHandleType by HANDLE_TYPE constants 2014-12-28 11:52:53 -02:00
Yuri Kunde Schlesner 73fba22c01 Rename ObjectPool to HandleTable 2014-12-28 11:52:52 -02:00
Lioncash 059c65a27a armemu: Fix underflows in USAD8/USADA8
Initially reported by xdec.
2014-12-28 06:09:43 -05:00
xdec 8de09d87ab Fix crash when the disassembler pause button is pressed while no game is running. 2014-12-28 01:56:07 -08:00
Lioncash af69b0840b dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX. 2014-12-27 17:24:34 -05:00
Lioncash 60523113a9 armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAX 2014-12-27 17:06:19 -05:00
Lioncash 52d889d85d dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX 2014-12-27 00:57:32 -05:00
bunnei b48ca7878b Merge pull request #348 from lioncash/uhops
armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-27 00:34:39 -05:00
Lioncash 84a0438cf5 armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX 2014-12-26 23:55:39 -05:00
bunnei a2005d0657 GPU: Change internal framerate to 30fps. 2014-12-26 21:48:32 -05:00
bunnei 01c675685e Merge pull request #327 from Apology11/master
Fix visual studio ambiguous symbol error
2014-12-26 21:43:59 -05:00
Daniel Lundqvist 7e3f62a367 Remove duplicate work 2014-12-26 20:12:11 +01:00
Daniel Lundqvist ba4ca041f4 Allow focus only when in popout mode
Only allow manually setting focus to the rendering widget when in Single Window mode. Apply this behavior to when changing the mode while an app is running.
2014-12-26 19:42:27 +01:00
bunnei e5ddbfee02 Merge pull request #339 from bunnei/fixup-gsp-synch
Fixup gsp synch
2014-12-25 22:52:40 -05:00
bunnei 5d2ee78d8f Merge pull request #330 from purpasmart96/new_srv
More services & small clean ups
2014-12-25 22:51:38 -05:00
bunnei 5799025ac4 GPU: Further improve synchronization. 2014-12-25 22:46:55 -05:00
bunnei 4783133bbd ARM: Add a mechanism for faking CPU time elapsed during HLE.
- Also a few cleanups.
2014-12-25 22:46:44 -05:00
purpasmart96 9796bc1fa2 More services & small clean ups 2014-12-25 19:08:33 -08:00
bunnei 9c8ec675d9 Merge pull request #343 from lioncash/smmla
armemu: Implement SMMUL, SMMLA, and SMMLS.
2014-12-25 21:57:31 -05:00
bunnei 254567056f Merge pull request #341 from lioncash/moresmops
armemu: Implement SMLALD/SMLSLD
2014-12-25 21:46:54 -05:00
Daniel Lundqvist 9d90b26020 Allow focus on the Qt render widget
By default widgets are set to the focus policy Qt::NoFocus which disallows manually focusing it. Changing the policy to allow clicking the widget to set focus to it allows for keyboard input when not rendering to a popout window. This commit also sets focus to the widget when showing it.

Fixes issue #158.
2014-12-26 02:37:52 +01:00
Lioncash 35dbfc7ab0 armemu: Implement SMMUL, SMMLA, and SMMLS. 2014-12-25 13:52:46 -05:00
Lioncash 82c3962b95 armemu: Implement SMLALD/SMLSLD 2014-12-24 09:29:48 -05:00
Lioncash 6b7808e412 armemu: Fix GE/Q flag setting semantics 2014-12-24 07:56:57 -05:00
Emmanuel Gil Peyrot bbe0bf1332 FileSys: Clean up according to the coding style, and remove redundant namespaced names. 2014-12-24 01:49:48 +00:00
bunnei 2bbbe68399 Merge pull request #328 from archshift/writeable
Stubbed IsSdmcWriteable to always return writeable.
2014-12-23 20:41:51 -05:00
archshift 81a538ccc2 Stubbed IsSdmcWriteable to always return writeable. 2014-12-23 22:22:48 -03:00
Lioncash 20fc5f2a35 armemu: Set the Q flag correctly for much of the other ops
They were setting the old S flag.
2014-12-23 09:59:37 -05:00
Lioncash 79a7a432c5 armemu: Set the Q flag properly for SMLAD/SMUAD 2014-12-23 09:58:21 -05:00
bunnei d31a94f06b Merge pull request #334 from lioncash/cpsr
armemu: Fix retrieval of the CPSR in MRS instructions.
2014-12-23 09:44:04 -05:00
bunnei 53447da142 Merge pull request #335 from lioncash/cpsrcreate
armemu: Emulate the GE and Q flags.
2014-12-23 09:43:46 -05:00
Lioncash 6446331938 armemu: Properly set the Q flag for SSAT16/USAT16 upon saturation. 2014-12-22 23:52:05 -05:00
Lioncash f66d356938 armemu: Fix SEL
Needs to use the updated state of the CPSR.
2014-12-22 23:52:05 -05:00
Lioncash 8e2accd974 armemu: Fix construction of the CPSR 2014-12-22 23:51:59 -05:00
Lioncash 8c72322422 armemu: Fix retrieval of the CPSR in MRS instructions. 2014-12-22 21:44:03 -05:00
bunnei 949d95659e Merge pull request #275 from yuriks/cmake-clean
Clean up CMake library specification
2014-12-22 11:11:37 -05:00
Lioncash 97f3e884d2 dyncom: Move over QADD16/QASX/QSAX/QSUB16 2014-12-22 01:09:42 -05:00
bunnei 2188af4a65 Merge pull request #322 from chinhodado/master
More warning cleanups
2014-12-22 00:12:43 -05:00
bunnei ae76469373 Merge pull request #332 from lioncash/sel
dyncom: Move SEL over
2014-12-21 21:49:45 -05:00
bunnei ec1ddc17e2 Merge pull request #312 from Subv/still_more_savedata_stuff
CFG: Implemented the GetConfigInfoBlk2 function.
2014-12-21 21:47:25 -05:00
Lioncash 245276c9cc dyncom: Move SEL over 2014-12-21 21:19:15 -05:00
bunnei 770b274c86 Merge pull request #324 from lioncash/dync
dyncom: Move over SASX/SSAX/SADD16/SSUB16
2014-12-21 20:33:14 -05:00
Lioncash c6f27055c9 dyncom: Move over SASX/SSAX/SADD16/SSUB16 2014-12-21 19:50:36 -05:00
Subv 2030f9d946 CFG: Fixed some warnings and errors in Clang 2014-12-21 18:25:49 -05:00
Subv 304735fb52 CFG: More style changes 2014-12-21 18:02:27 -05:00
Subv f080e3ccfa CFGU: Indentation 2014-12-21 17:54:14 -05:00
Subv 6f304d3b00 CFG: Some indentation 2014-12-21 17:41:35 -05:00
Subv b3cee19289 CFG: Changed the CreateConfigInfoBlk search loop 2014-12-21 17:26:51 -05:00
Subv 3e94b9054c CFG: Corrected the licenses in cfg_i.cpp and cfg_u.cpp 2014-12-21 16:45:13 -05:00
Subv 6115f013a9 CFG: Create a new subfolder cfg inside service to handle cfg
Moved most of the shared CFG code there, implemented a few CFG:I functions
2014-12-21 16:41:06 -05:00
Subv 9e45240e23 CFGU: Some changes 2014-12-21 16:39:29 -05:00
Subv cdd78fa01d CFGU: Addressed some issues. 2014-12-21 16:39:26 -05:00
Subv 718a120754 CFGU: Addressed some comments. 2014-12-21 16:39:23 -05:00
Subv a1b9b80a55 Style: Addressed some comments 2014-12-21 16:39:20 -05:00
Subv a7cc7972de CFG_U: Use Common::make_unique instead of the std version 2014-12-21 16:39:17 -05:00
Subv 9029efd873 CFG:U: Implemented some more blocks 2014-12-21 16:39:14 -05:00
Subv 8b0ee93526 CFG: Implemented block 0x00070001 in the config savefile 2014-12-21 16:39:11 -05:00
Subv b3d1c8ba6a CFGU: Use an absolute offset in the config savefile blocks 2014-12-21 16:39:08 -05:00
Subv 95ca6ae1e1 CFG: Load the Config savedata file if it already exists. 2014-12-21 16:39:05 -05:00
Subv b49bdb6ba7 CFGU: Added block 0x000A0002 to the default savegame file
That's the language id block, we're using LANGUAGE_EN for now. This block allows some games to boot further
2014-12-21 16:39:02 -05:00
Subv 4cd21b43c1 CFG: Refactored how the config file works.
It is now kept in memory as per 3dbrew, all updates happen on memory, then they can be saved using UpdateConfigNANDSavegame.
2014-12-21 16:38:59 -05:00
Subv 462740278d CFG:U: Add some data to the 0x00050005 config block.
Seems to allow some games to boot further, thanks @Normmatt for sharing this information
2014-12-21 16:38:57 -05:00
Subv fa3d72ab3e CFG: Implemented the GetConfigInfoBlk2 function.
Added a "config" file to the CFG process service (CFG:U), and added a few default blocks to it.

Implemented GetSystemModel and GetModelNintendo2DS
2014-12-21 16:38:54 -05:00
bunnei 0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
2014-12-21 16:05:44 -05:00
Apology11 8d81e23d6e Fix visual studio ambiguous symbol error 2014-12-21 18:34:20 +01:00
Chin 0199a7d9ef More warning cleanups 2014-12-21 10:58:55 -05:00
bunnei 572ce043c2 Merge pull request #271 from archshift/createf
Added CreateFile to the FS_USER service
2014-12-21 01:45:00 -05:00
archshift 0625dd09ea Added CreateFile to the FS_USER service
Tested with hwtests.
2014-12-21 02:21:49 -03:00
purpasmart96 ebfd831ccb License change 2014-12-20 21:20:24 -08:00
bunnei 0f696037f6 Merge pull request #323 from lioncash/saddsub
armemu: Implement SADD8/SSUB8
2014-12-21 00:10:12 -05:00
bunnei 4fcdbed9f6 Thread: Wait current thread on svc_SleepThread
- Removed unused VBLANK sleep mode
- Added error log for bad context switch
- Renamed VerifyWait to CheckWaitType to be more clear
2014-12-20 23:20:19 -05:00
Lioncash 855eda6f85 armemu: Implement SADD8/SSUB8 2014-12-20 23:10:35 -05:00
bunnei 2e5869c939 Merge pull request #316 from yuriks/thread-handle
Kernel: Implement support for current thread pseudo-handle
2014-12-20 16:36:01 -05:00
bunnei 0e9262885d Merge pull request #296 from lioncash/dyn
dyncom: Implement UMAAL
2014-12-20 16:24:12 -05:00
bunnei 993afd3bf0 Merge pull request #310 from lioncash/ssat16
armemu: Fix SSAT16.
2014-12-20 16:23:54 -05:00
Lioncash 2a097f0990 armemu: Should be using labs for USAD8/USADA8 2014-12-20 15:34:14 -05:00
bunnei 7095c4959b Merge pull request #311 from lioncash/usada
armemu: Implement USAD8 and USADA8
2014-12-20 15:21:25 -05:00
bunnei 52bc58283d Merge pull request #313 from lioncash/smlsd
armemu: Implement SMLSD
2014-12-20 15:18:52 -05:00
bunnei 1c50a036dd Merge pull request #314 from lioncash/qsax-qasx
armemu: Implement QASX and QSAX
2014-12-20 15:18:05 -05:00
Tony Wasserka 08f42c2b8c Pica/VertexShader: Promote a log message to critical status. 2014-12-20 18:06:56 +01:00
Tony Wasserka 17f31de364 Pica/VertexShader: Small optimization. 2014-12-20 18:06:56 +01:00
Tony Wasserka a664574ecb Pica/VertexShader: Be robust against invalid inputs.
More specifically, this also fixes crashes by Citra trying to load a src2 register even if the current instruction does not use that.
2014-12-20 18:06:56 +01:00
Tony Wasserka ad5db467d7 Pica/VertexShader: Clarify a comment. 2014-12-20 18:06:56 +01:00
Tony Wasserka 871418e62b Pica/DebugUtils: Further cleanups to LookupTexture. 2014-12-20 18:06:56 +01:00
Tony Wasserka 88e9efe4b8 Pica/DebugUtils: Fix two warnings. 2014-12-20 18:06:56 +01:00
Tony Wasserka 6e275778c9 Pica/DebugUtils: Better document LookupTexture. 2014-12-20 18:06:55 +01:00
Tony Wasserka e4e9710d18 Pica/Rasterizer: Get rid of C-style casts. 2014-12-20 18:06:55 +01:00
Tony Wasserka d81370682f Pica/DebugUtils: Make a number of variables static.
Makes for cleaner and faster code.
2014-12-20 18:06:55 +01:00
Tony Wasserka 6bd41de276 Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions. 2014-12-20 18:06:55 +01:00
Tony Wasserka 22afb9d830 Pica/VertexShader: Run instruction handlers according to the effective opcode.
This allows for proper emulation of the different CMP/LRP/MAD instructions.
2014-12-20 18:06:55 +01:00
Tony Wasserka cd163fb59a Pica/VertexShader: Implement MAX instructions. 2014-12-20 18:06:55 +01:00
Tony Wasserka aff808b2fd Pica: Add support for boolean uniforms. 2014-12-20 18:06:55 +01:00
Tony Wasserka 67618a2c55 Pica/VertexShader: Add support for MOVA, CMP and IFC. 2014-12-20 18:06:55 +01:00
Tony Wasserka cb1804e0ab Pica/VertexShader: Move code around a bit. 2014-12-20 18:06:55 +01:00
Tony Wasserka b85524c760 Pica/VertexShader: Some cleanups using std::array. 2014-12-20 18:06:55 +01:00
Tony Wasserka ce36ad454e Pica/VertexShader: Support negating src2. 2014-12-20 18:06:55 +01:00
Tony Wasserka cc5746abfe Pica/DebugUtils: Replace duplicated SHBIN structures in favor of nihstro's ones. 2014-12-20 18:06:55 +01:00
Tony Wasserka 8ce1d32460 Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in favor of nihstro's ones. 2014-12-20 18:06:55 +01:00
Tony Wasserka 79c29243ed Pica/DebugUtils: Add an event triggered after loading a vertex. 2014-12-20 18:06:55 +01:00
Tony Wasserka cd322e328e Pica/PrimitiveAssembly: Implement triangle strips. 2014-12-20 18:06:54 +01:00
Tony Wasserka 346012f29e Pica/CommandProcessor: Add a safety check for invalid (?) GPU configurations. 2014-12-20 18:06:54 +01:00
Tony Wasserka 1e960e9ee2 Pica/CommandProcessor: Fix vertex decoding if multiple memory areas are accessed for different attributes. 2014-12-20 18:06:54 +01:00
Tony Wasserka 1c972ef3b9 Add support for a ridiculous number of texture formats. 2014-12-20 18:06:54 +01:00
Tony Wasserka 40f123b7c0 Pica: Unify ugly address translation hacks. 2014-12-20 18:06:53 +01:00
Tony Wasserka 7e210e0229 Pica: Further improve Tev emulation. 2014-12-20 18:05:53 +01:00
Tony Wasserka 3df88d59b0 Pica: Merge texture lookup logic for DebugUtils and Rasterizer.
This effectively adds support for a lot texture formats in the rasterizer.
2014-12-20 18:05:53 +01:00
Tony Wasserka 0fba1d48a6 Pica: Implement texture wrapping. 2014-12-20 18:05:53 +01:00
Tony Wasserka c81f1a9ebc Pica/DebugUtils: Add support for RGBA8, RGBA5551, RGBA4 and A8 texture formats. 2014-12-20 18:05:53 +01:00
Tony Wasserka 782592e6d3 citra-qt: Fix invalid memory read upon program startup.
This was caused by the framebuffer display widget not checking whether we are actually in a valid emulation state or not.
2014-12-20 18:05:53 +01:00
Tony Wasserka fd2539121c Pica: Initial support for multitexturing. 2014-12-20 18:05:53 +01:00
Tony Wasserka 95be6a09b2 BitField: Add an explicit Assign method.
This is useful when doing crazy stuff like inheriting from BitField.
2014-12-20 18:05:53 +01:00
Tony Wasserka 8cd0d9c000 citra-qt: static-constify a map. 2014-12-20 18:05:52 +01:00
bunnei 2b0d7a1d29 Merge pull request #315 from chinhodado/master
Clean up some warnings
2014-12-20 11:59:18 -05:00
Chin e795692614 Clean up some warnings 2014-12-20 10:03:36 -05:00
Yuri Kunde Schlesner 82528ba7df Common: Add a clone of std::make_unique 2014-12-20 03:45:02 -02:00
Yuri Kunde Schlesner adee775f44 Kernel: Implement support for current thread pseudo-handle
This boots a few (mostly Nintendo 1st party) games further.
2014-12-20 03:27:47 -02:00
bunnei f1309e6bf0 Merge pull request #306 from Subv/even_more_savedata
SaveData: Added some documentation to FormatSaveData
2014-12-19 23:20:31 -05:00
Subv fc73bef692 FS_U: Added the command to the docs of SaveData functions 2014-12-19 22:45:39 -05:00
bunnei eb394ac0af Merge pull request #309 from chinhodado/patch-1
Properly erase/remove a DebuggerObserver
2014-12-19 16:47:42 -05:00
bunnei 245abb4125 Merge pull request #294 from lioncash/var
armemu: Narrow the scope of some variables in handle_v6_insn
2014-12-19 16:46:56 -05:00
bunnei dc5d1a9061 Merge pull request #305 from lioncash/paren
armemu: Get rid of bitwise parenthesis warnings
2014-12-19 16:46:36 -05:00
chinhodado d31c23e958 Properly erase/remove an observer 2014-12-19 14:24:44 -05:00
Lioncash 4b506cec01 armemu: Implement QASX and QSAX 2014-12-19 14:09:18 -05:00
Lioncash 0f3a6a161c armemu: Implement SMLSD 2014-12-19 09:53:54 -05:00
Lioncash 4a646ace1f dyncom: Implement UMAAL 2014-12-19 04:02:14 -05:00
bunnei 017e6a488e Merge pull request #302 from purpasmart96/flushshutup
GSP_GPU: Shut up FlushDataCache
2014-12-18 23:40:10 -05:00
Lioncash 00e8ec4a9e armemu: Implement USAD8 and USADA8 2014-12-18 23:38:57 -05:00
Lioncash 92c53fe522 armemu: Fix SSAT16
The lower-bound would never be negative like it should
2014-12-18 20:35:14 -05:00
Lioncash b9fc0b4b80 armemu: Clean up naming and formatting for SSAT16 2014-12-18 20:34:22 -05:00
purpasmart96 b2c64eb5ff GSP_GPU: Shut up FlushDataCache 2014-12-18 16:39:55 -08:00
bunnei 765dbabdb6 Merge pull request #308 from Subv/more_savedata
SystemSaveData: Fixed a typo that was segfaulting
2014-12-18 18:05:03 -05:00
Subv 78e0f36857 SystemSaveData: Fixed a typo that was segfaulting 2014-12-18 18:01:47 -05:00
bunnei 24b5e87279 Merge pull request #304 from lioncash/sflags
armemu: Set GE flags properly for SSUB16, SADD16, SSAX, and SASX.
2014-12-18 17:46:10 -05:00
bunnei 4959e3b2c0 Merge pull request #307 from lioncash/usat16
armemu: Fix USAT16.
2014-12-18 17:45:25 -05:00
bunnei c71f8840e5 Merge pull request #301 from Subv/more_savedata
SaveData: Implemented the SystemSaveData archive.
2014-12-18 17:29:34 -05:00
Subv f9472eda0a SystemSaveData: Added a TODO to move it to the NAND.
Maybe sometime when we actually implement that
2014-12-18 16:58:42 -05:00
Lioncash e683f654ce armemu: Fix lower-bounds clamping for USAT16 2014-12-18 16:54:01 -05:00
Subv 77f0cdfaf4 SaveData: Added some documentation to FormatSaveData
We still don't know what the other parameters do, but they appear to be very similar to those of FormatThisUserSaveData.
Most likely FormatThisUserSaveData is just an alias for FormatSaveData with LowPathType Empty
2014-12-18 15:30:28 -05:00
Lioncash 6b632bbe37 armemu: More concise names for USAT16-related variables 2014-12-18 14:25:07 -05:00
Lioncash eaae0ad502 armemu: Get rid of bitwise parenthesis warnings 2014-12-18 12:07:18 -05:00
Lioncash 4dc8eb40be armemu: Set GE flags correctly for SSUB16, SADD16, SSAX, and SASX. 2014-12-18 11:45:40 -05:00
bunnei 8ac22e7efc Merge pull request #299 from lioncash/join
Combine SSUB16, SADD16, SASX, and SSAX.
2014-12-18 10:04:31 -05:00
Subv bec527fa24 SaveData: Implemented the SystemSaveData archive.
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
2014-12-17 23:44:32 -05:00
bunnei 797efbde1a Merge pull request #298 from lioncash/flags
armemu: Unset GE flags for UADD8 if results are < 0x100
2014-12-17 22:06:27 -05:00
bunnei a968adf50e Merge pull request #295 from lioncash/umaal
armemu: Implement UMAAL
2014-12-17 21:44:13 -05:00
Lioncash 85c318078d armemu: Combine SSUB16, SADD16, SASX, and SSAX. 2014-12-17 21:17:54 -05:00
bunnei 075126247f Merge pull request #292 from lioncash/backports
Backport more skyeye fixes from 3dmoo
2014-12-17 20:58:00 -05:00
bunnei e00e303275 Merge pull request #297 from lioncash/ssub16
armemu: Fix SSUB16
2014-12-17 20:56:37 -05:00
bunnei 7bae450379 Merge pull request #185 from purpasmart96/mem_perm
Kernel: Add missing permissions
2014-12-17 20:56:04 -05:00
Subv ea9ce0fba7 Filesystem/Archives: Implemented the SaveData archive
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information

Got rid of the code duplication in File and Directory

Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.

FS_U: Use the correct error code when a file wasn't found
2014-12-17 19:21:38 -05:00
Lioncash 41fee1c940 armemu: Unset GE flags for UADD8 if results are < 0x100
Reference manual states these must be set to zero if this case is true.
2014-12-17 17:54:49 -05:00
Lioncash 58dc554733 armemu: Fix SSUB16
Broken from the same reason SADD16 was.

The lo part of the result should only be constructed from the lo halfwords of rm and rn.
The hi part of the result should only be constructed from the hi halfwords of rm and rn.
2014-12-17 15:40:10 -05:00
bunnei e6f440ea7f Merge pull request #293 from lioncash/sops
armemu: Fix SADD16
2014-12-17 14:54:24 -05:00
bunnei 3e9d4a7917 Merge pull request #287 from lioncash/qaddsub16
armemu: Join QADD16/QSUB16 and fix saturation clamping.
2014-12-17 12:34:52 -05:00
Lioncash 5820dba6b7 armemu: Implement UMAAL 2014-12-17 12:21:21 -05:00
Lioncash 2d91164bb9 armemu: Narrow the scope of some variables in handle_v6_insn
There's no reason to have these in the outer-most scope.
2014-12-17 10:26:20 -05:00
Lioncash 5289a496a7 armemu: Fix SADD16
The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn.
2014-12-17 09:36:25 -05:00
Normmatt 73211dc8fe armemu: Fix PKHTB 2014-12-17 03:26:12 -05:00
Normmatt 8045df14d2 armemu: Implement REVSH 2014-12-17 03:26:01 -05:00
Normmatt bc81cc9490 armemu: Fix UXTAB/UXTAH 2014-12-17 03:24:25 -05:00
Normmatt b5dbd6f2a2 armemu: Fix SXTAB 2014-12-17 03:17:44 -05:00
Normmatt efebd5589a armemu: Fix SXTAH 2014-12-17 03:16:40 -05:00
bunnei fdb4ef5210 Merge pull request #289 from lioncash/smops
Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well.
2014-12-17 00:08:43 -05:00
bunnei ec9ac2f51a Merge pull request #290 from lioncash/vsub
armemu: Backport some VFP fixes from 3dmoo.
2014-12-16 23:22:58 -05:00
Normmatt 9c127f4a01 armemu: Fix FTOUI NaN sign. 2014-12-16 05:56:06 -05:00
Normmatt 2ed03c10e0 armemu: Fix FSUBS bug where NaN shouldn't be negated 2014-12-16 05:54:00 -05:00
Lioncash d5bcddb77c armemu: Fix SMUAD, SMUSD, and SMLAD
Wrong values were being multiplied together.
2014-12-16 03:13:06 -05:00
Lioncash 0f9e3baf39 armemu: Join SMUAD, SMUSD, and SMLAD 2014-12-16 03:11:50 -05:00
Lioncash 4c53799229 armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16. 2014-12-16 00:11:51 -05:00
Lioncash 49817e89d9 armemu: Join QADD16 and QSUB16 together.
The only difference between these ops is one adds and one subtracts. Everything is literally the same.
2014-12-16 00:11:19 -05:00
bunnei cdfa7157eb Merge pull request #286 from yuriks/msvc-fix
Comment out empty arrays causing compile errors in MSVC
2014-12-15 22:52:35 -05:00
Yuri Kunde Schlesner 082bf803ab Comment out empty arrays causing compile errors in MSVC 2014-12-16 01:37:13 -02:00
bunnei a8098187aa Merge pull request #285 from lioncash/uxtab16
armemu: Implement UXTAB16
2014-12-15 22:29:12 -05:00
bunnei cd2a31eaf4 Merge pull request #283 from yuriks/archive-refactor
Archive refactor
2014-12-15 22:15:08 -05:00
Yuri Kunde Schlesner 666f6deb47 Work around libstdc++'s lack of support for std::hash on enums 2014-12-16 01:09:21 -02:00
Yuri Kunde Schlesner 83e6e4ffec FS.Archive: Clean up treatment of archives and their handles
- Refactor FS::Archive internals to make Archive creation and lifetime
  management clearer.
- Remove the "Archive as a File" hack.
- Implement 64-bit Archive handles.
2014-12-16 01:08:44 -02:00
Yuri Kunde Schlesner 0931a42af0 Service.FS: Rename FileSys::File to FileBackend 2014-12-16 01:08:43 -02:00
Yuri Kunde Schlesner d51afab0bc Service.FS: Rename FileSys::Directory to DirectoryBackend 2014-12-16 01:08:43 -02:00
Yuri Kunde Schlesner 82fe821e87 Service.FS: Rename FileSys::Archive to ArchiveBackend 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner f6153679b0 Service.FS: Do archive registration using IdCode instead of name 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner ca67bb7945 HLE: Rename namespaces to match move & fix initialization order 2014-12-16 01:08:38 -02:00
Yuri Kunde Schlesner c72ccfa6db HLE: Move kernel/archive.* to service/fs/ 2014-12-16 01:08:14 -02:00
Lioncash 1c7f77334c armemu: Implement UXTAB16 2014-12-15 20:47:27 -05:00
bunnei 5df176425b Merge pull request #282 from archshift/services
Added stubs for ldr:ro, cecd:u, nim:aoc, and am:app services
2014-12-15 19:28:13 -05:00
bunnei 0fd731ee63 Merge pull request #281 from lioncash/uxtb16
armemu: Fix UXTB16
2014-12-15 18:56:02 -05:00
archshift 89eef9eb6d Added stub for nim:aoc service... 2014-12-15 15:32:42 -08:00
archshift 1356a6b313 Added stub for cecd:u service...
I couldn't find any information about this service...
2014-12-15 15:32:42 -08:00
archshift 6117fad036 Added stub for ldr:ro service... 2014-12-15 15:32:42 -08:00
archshift 6b51683bb1 Added am:app service stub.
Apparently nothing at all is known about this service...
2014-12-15 15:32:41 -08:00
Yuri Kunde Schlesner 06f31e8b47 Clean up CMake library specification
The X11 libraries don't need to be specified when doing dynamic linking
2014-12-15 19:34:17 -02:00
Yuri Kunde Schlesner e321decf98 Remove SyncRequest from K::Object and create a new K::Session type
This is a first step at fixing the conceptual insanity that is our
handling of service and IPC calls. For now, interfaces still directly
derived from Session because we don't have the infrastructure to do it
properly. (That is, Processes and scheduling them.)
2014-12-15 18:26:17 -02:00
Lioncash 2b0acd36e1 armemu: Fix UXTB16
Rotation bits are 10 and 11, not 9 and 10.
2014-12-14 23:00:31 -05:00
bunnei 1ee740898a Merge pull request #276 from lioncash/decrappify
Clean up armdefs.h a little.
2014-12-14 22:08:14 -05:00
bunnei 17b4d6747a Merge pull request #246 from Subv/cbranch_1
SVC: Implemented Semaphores
2014-12-14 22:03:28 -05:00
bunnei 2cac148ff3 Merge pull request #273 from bunnei/more-skyeye-fixes
ARM: Pull some SkyEye fixes from 3dmoo.
2014-12-14 21:58:05 -05:00
bunnei d26b7146ce ARM: Pull some SkyEye fixes from 3dmoo. 2014-12-14 21:51:46 -05:00
Lioncash f6cb8c1927 Clean up armdefs.h 2014-12-14 02:00:42 -05:00
Yuri Kunde Schlesner ac87c3b0d0 Restore the original console color after logging a message.
Fixes #277
2014-12-14 02:10:41 -02:00
purpasmart96 23ae8aa4d3 MemMap: Added AXI_WRAM & SHARED_PAGE along with other stuff
Got rid of I/O address's since the I/O addresses range's overlap with other
address's types such as vram, these I/O addresses need to be done in an different
way.
2014-12-13 18:29:57 -08:00
Subv 1051795c32 Kernel/Semaphores: Fixed build 2014-12-13 13:43:01 -05:00
Subv ea95876431 Kernel/Semaphore: Small style change 2014-12-13 13:40:19 -05:00
Subv effb181888 Kernel/Semaphores: Invert the available count checking.
Same semantics, idea by @yuriks
2014-12-13 13:40:18 -05:00
Subv 5e25986235 Kernel/Semaphores: Addressed some issues. 2014-12-13 13:40:16 -05:00
Subv cc81a510e3 Semaphore: Removed an unneeded function 2014-12-13 13:40:15 -05:00
Subv 61434651d8 Semaphores: Addressed some style issues 2014-12-13 13:40:13 -05:00
Subv abff4a7ee2 Semaphore: Implemented the initial_count parameter. 2014-12-13 13:40:12 -05:00
Subv 49b31badba SVC: Implemented ReleaseSemaphore.
This behavior was tested on hardware, however i'm still not sure what use the "initial_count" parameter has
2014-12-13 13:40:10 -05:00
Subv 82c84883a5 SVC: Implemented svcCreateSemaphore
ToDo: Implement svcReleaseSemaphore
* Some testing against hardware needed
2014-12-13 13:40:09 -05:00
Lioncash cfc0ee9c60 kernel: Remove unused log arguments 2014-12-13 10:15:58 -05:00
Yuri Kunde Schlesner 4d2a6f8b9b Remove old logging system 2014-12-13 02:08:06 -02:00
Yuri Kunde Schlesner 0e0a007a25 Add configurable per-class log filtering 2014-12-13 02:08:06 -02:00
Yuri Kunde Schlesner 0600e2d8b5 Convert old logging calls to new logging macros 2014-12-13 02:08:02 -02:00
Yuri Kunde Schlesner 6390c66e95 Implement text path trimming for shorter paths. 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner 6b0fb62c47 Re-add coloring to the console logging output. 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner 616d874443 New logging system 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner 04b1f2936c Add SCOPE_EXIT macro to conveniently execute cleanup actions 2014-12-13 01:59:51 -02:00
Yuri Kunde Schlesner eda30c36ee Added missing include in common_funcs.h 2014-12-13 01:59:50 -02:00
Yuri Kunde Schlesner 8a681cdf3d Remove redundant include from common_funcs.h 2014-12-13 01:59:50 -02:00
bunnei a6791e4fc7 Merge pull request #267 from bunnei/apt-shared-font
APT shared font loading
2014-12-12 22:12:12 -05:00
bunnei 6fe61d3deb APT_U: Added GetSharedFont service function. 2014-12-12 22:06:10 -05:00
Tony Wasserka 33e61ef514 Merge pull request #261 from neobrain/boost
Add Boost as a submodule and add some minor cleanups using Boost.Range
2014-12-12 17:32:57 +01:00
bunnei 988998cca5 DSP: Added stub for ReadPipeIfPossible. 2014-12-12 00:53:51 -05:00
bunnei 5bac72282a Common: Add "sysdata" to GetUserPath and cleanup. 2014-12-12 00:15:47 -05:00
bunnei 4cb7a44d4e MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.
- Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU).
2014-12-12 00:15:47 -05:00
bunnei 3a75c8069e Merge pull request #256 from Subv/mutex
Kernel/Mutex: Properly lock the mutex when a thread enters it
2014-12-10 22:52:55 -05:00
Emmanuel Gil Peyrot 5a3b1b5f44 CFG:U: Store country codes as u16 instead of char pointers, and return the correct error in GetCountryCodeID. 2014-12-10 22:33:23 +00:00
bunnei ae3c6e82f7 Merge pull request #243 from bunnei/fix-gsp-synch
Fix gsp synch
2014-12-10 09:20:05 -05:00
archshift 4763fca9f8 Explicitly specify LE strings to iconv, fixes paths in Steel Diver 2014-12-09 22:07:28 -08:00
bunnei f94d8f9603 GSP: Trigger GPU interrupts at more accurate locations. 2014-12-09 19:07:14 -05:00
bunnei e90b37b935 GSP: Updated TriggerCmdReqQueue to return success code. 2014-12-09 19:07:14 -05:00
bunnei 3e1654eaa8 GSP: Updated RegisterInterruptRelayQueue to return expected magic number. 2014-12-09 19:07:14 -05:00
bunnei 170123982d GPU: Fixed bug in command list size decoding. 2014-12-09 19:07:13 -05:00
Yuri Kunde Schlesner 521e1cb7e0 Remove unused NDMA module 2014-12-09 18:27:16 -02:00
Tony Wasserka 8b8131baec More cleanups. 2014-12-09 16:37:34 +01:00
Tony Wasserka 0305435edd Pica: Re-enable command names on MSVC.
The affected code is no longer limited by compiler support on that platform.
2014-12-09 16:37:34 +01:00
Tony Wasserka ac4d7462cb citra-qt: Rename "Stop Tracing" to "Finish Tracing".
This better reflects that no commands are supposed to show up until you hit the button a second time.
2014-12-09 16:37:34 +01:00
Tony Wasserka 79bb403089 More coding style fixes. 2014-12-09 16:37:34 +01:00
Tony Wasserka 0cd27a511e Some code cleanup. 2014-12-09 16:37:34 +01:00
Tony Wasserka 55ce9aca71 citra-qt: Add pica framebuffer widget. 2014-12-09 16:37:34 +01:00
Tony Wasserka 2793619dce citra_qt: Add enhanced texture debugging widgets.
Double-clicking a texture parameter command in the pica command lists will spawn these as a new tab in the pica command list dock area.
2014-12-09 16:37:34 +01:00
Tony Wasserka fd194d95b0 citra-qt: Add texture viewer to Pica command list.
The texture viewer is enabled when selecting a write command to one of the texture config registers.
2014-12-09 16:37:34 +01:00
Tony Wasserka c63a495de6 Add GUI widget for controlling pica breakpoints. 2014-12-09 16:37:34 +01:00
Tony Wasserka 2c71ec7052 Pica/DebugUtils: Add breakpoint functionality. 2014-12-09 16:37:34 +01:00
Tony Wasserka 706f9c5574 citra-qt: Polish the pica tracing widget.
Changed start/stop button to reflect current tracing status.
Properly labeled column headers.
2014-12-09 16:37:34 +01:00
Tony Wasserka bf6b23f4a0 citra-qt: Add a utility spinbox class called CSpinBox.
This class has a few advantages over the regular QSpinBox:
- QSpinBox stores its as signed 32 bit integers, which for instance is unsuitable for representing memory addresses. CSpinBox uses 64 bit integers instead.
- QSpinBox does not provide an easy way to handle number input from bases different than 10.
- QSpinBox is quite inflexible in general and almost any sort of customization requires reimplementing it anyway.
2014-12-09 16:37:34 +01:00
Tony Wasserka 8db65723d2 Build fix for something which shouldn't have compiled successfully to begin with. 2014-12-09 16:37:34 +01:00
Tony Wasserka 27280f178b Fix some headers to include their dependencies properly. 2014-12-09 16:37:34 +01:00
bunnei b7327f807c Merge pull request #217 from archshift/cmd_buff
Log the cmd_buff arguments when citra comes across an unimplemented function
2014-12-08 23:13:07 -05:00
bunnei dd203f7068 Thread: Fixed to wait on address when in arbitration. 2014-12-08 19:44:10 -05:00
bunnei a6bf3fd613 Merge pull request #244 from bunnei/cleanup-memmap
MemMap: Updated memory map to subtract base address instead of mask.
2014-12-08 19:34:54 -05:00
bunnei f1ec1a0d2c Merge pull request #263 from lioncash/sasx
Fix emulation of SASX and SSAX instructions.
2014-12-08 19:17:54 -05:00
bunnei ff560a9428 Merge pull request #259 from ichfly/master
Loader: Add 3DSX support
2014-12-08 19:16:40 -05:00
bunnei 1f4953e1bb Merge pull request #264 from Subv/files
Kernel/File: Fixed file read/write hwtests
2014-12-08 18:05:03 -05:00
bunnei 72ad73519c Merge pull request #260 from archshift/opendir
Make OpenDirectory fail if the directory doesn't exist
2014-12-08 18:03:48 -05:00
Subv 1d1078fd8b Kernel/File: Fixed file read/write hwtests
The 3DS allows the user to read from files opened with the Write access modifier, even if he did not specify the Read access modifier.

Open the files in binary mode so that we can prevent CR/LF problems in Windows, where a line-end is replaced by these two bytes instead of just 0xA, this was causing problems with the GetSize test
2014-12-08 17:45:17 -05:00
Lioncash 905e3b616a armemu: Fix SSAX 2014-12-08 15:47:20 -05:00
ichfly 1aa969741d Loader: Add 3DSX support 2014-12-08 18:06:43 +01:00
Lioncash 62fd564854 armemu: Fix SASX 2014-12-08 01:44:37 -05:00
Lioncash b4256431aa armemu: Fix parenthesis warnings regarding bitwise ops 2014-12-07 23:58:12 -05:00
Tony Wasserka 3d8c6e61be StringUtil: Perform some minimal cleanup. 2014-12-07 23:52:17 +01:00
Tony Wasserka 4d4572c697 Integrate Boost into build system and perform a trivial cleanup in vertex_shader.cpp. 2014-12-07 23:52:17 +01:00
archshift 20d2ed0950 Make OpenDirectory fail if the directory doesn't exist
This is in line with what the hardware itself does.

It does this by splitting the initial directory opening into Directory.Open(), which will return false if a stat fails.
Then, Archive::OpenDirectory will return nullptr, and archive.cpp will return an error code .
2014-12-07 14:47:14 -08:00
Subv bc318c464b Mutex: Remove some forward declarations
Moved Mutex::WaitSynchronization to the end of the file.
2014-12-07 15:57:28 -05:00
Subv 64128aa61a Mutex: Release all held mutexes when a thread exits. 2014-12-07 15:44:21 -05:00
bunnei 2aa2d341d0 Merge pull request #245 from rohit-n/null-nullptr
Change NULLs to nullptrs.
2014-12-07 13:40:04 -05:00
Subv e3c8e4901c Mutex: Properly lock the mutex when a thread enters it
Also resume only the next immediate thread waiting for the mutex when it is released, instead of resuming them all.
2014-12-05 23:40:43 -05:00
bunnei 17fae11fc7 Merge pull request #250 from Subv/cbranch_2
SVC: Implemented GetThreadId.
2014-12-04 22:15:03 -05:00
bunnei 5056329a80 Merge pull request #222 from archshift/renamexyz
Implemented RenameFile and RenameDirectory in FS:USER
2014-12-04 22:07:47 -05:00
bunnei 21d183e1e6 Merge pull request #248 from lioncash/kernel
Misc minor kernel-related changes.
2014-12-04 22:05:20 -05:00
Subv 6fac2bf0ab Threads: Remove a redundant function.
Use the next_thread_id variable directly.
2014-12-04 14:59:56 -05:00
Subv ef1d5cda06 Threads: Implemented a sequential thread id 2014-12-04 08:13:53 -05:00
archshift 139a4d91d9 Updated archive.cpp functions for proper error handling 2014-12-03 22:50:44 -08:00
Subv 029ff9f1fd SVC: Implemented GetThreadId.
For now threads are using their Handle value as their Id, it should not really cause any problems because Handle values are unique in Citra, but it should be changed. I left a ToDo there because this is not correct behavior as per hardware.
2014-12-04 00:25:35 -05:00
bunnei 846dc72a37 Merge pull request #249 from lioncash/enum
mem_map: Make enum for addresses use u32 as the underlying type
2014-12-04 00:01:13 -05:00
bunnei 306b5392ca Merge pull request #247 from lioncash/const
hid_user: Pass by reference with PadButtonPress/PadButtonRelease
2014-12-03 23:56:35 -05:00
Lioncash 3ba32d2b53 mem_map: Make enum for addresses use u32 as the underlying type 2014-12-03 23:36:45 -05:00
bunnei abbc340957 Merge pull request #238 from archshift/dsp
Add stub for ConvertProcessFromDspDram
2014-12-03 23:35:06 -05:00
archshift a404ad5272 Add stub for ConvertProcessFromDspDram
Should theoretically push retail stuff further along
2014-12-03 20:03:57 -08:00
Lioncash 208598dbe2 kernel: Shorten GetCount 2014-12-03 22:52:02 -05:00
Lioncash 9b68d5e074 kernel: Make some functions const 2014-12-03 19:48:34 -05:00
Lioncash 7ff8f0d916 hid_user: Pass by reference with PadButtonPress/PadButtonRelease 2014-12-03 19:33:54 -05:00
purpasmart96 16fc98af64 PTM_U: Added a stub for GetBatteryLevel & GetBatteryChargeState & GetAdapterState 2014-12-03 15:09:59 -08:00
Rohit Nirmal 8a62423970 Change NULLs to nullptrs. 2014-12-03 12:57:57 -06:00
bunnei 63b1453dd8 Merge pull request #236 from rohit-n/sign-compare
Silence a few -Wsign-compare warnings.
2014-12-03 10:04:47 -05:00
bunnei e5b2733801 Merge pull request #231 from purpasmart96/serv_ac_wifi_status
AC_U: Added a stub for GetWifiStatus
2014-12-03 10:00:13 -05:00
bunnei e2e56c7bac Merge pull request #219 from Subv/ptm
PTM_U: Implemented the GetShellState function.
2014-12-03 09:58:52 -05:00
bunnei e3886adc22 MemMap: Updated memory map to subtract base address instead of mask.
- More readable, a little less error prone.

Conflicts:
	src/core/mem_map.h
	src/core/mem_map_funcs.cpp
2014-12-03 01:23:29 -05:00
purpasmart96 32d420330d AC_U: Added a stub for GetWifiStatus 2014-12-02 15:30:42 -08:00
Rohit Nirmal f9b53c3e94 Silence a few -Wsign-compare warnings. 2014-11-30 22:29:23 -06:00
bunnei d5be332d21 Merge pull request #237 from vaguilar/fix-viewport
Fixed viewport error caused by rounding
2014-11-30 23:24:16 -05:00
bunnei 884ecd58ea Merge pull request #224 from bunnei/dsp-service-improvements
Dsp service improvements
2014-11-30 23:21:34 -05:00
bunnei b0a5b3d986 Merge pull request #214 from Subv/master
CFG:U: Implemented the GetCountryCodeID and GetCountryCodeString
2014-11-30 23:19:07 -05:00
bunnei 1827bb1fcc Merge pull request #196 from archshift/settings
Merge Config::ReadXYZs
2014-11-30 23:17:45 -05:00
bunnei 3e286fff7c DSP: Added stubs for several commonly used DSP service functions. 2014-11-30 23:14:57 -05:00
bunnei 45fd3fe5c4 DSP: Fixed typo in port name. 2014-11-30 23:14:48 -05:00
Subv 4cdaac44d3 PTM_U: Implemented the GetShellState function. 2014-11-30 19:50:14 -05:00
vaguilar 95b33ee0a7 Fixed viewport error caused by rounding 2014-11-30 09:53:50 -08:00
bunnei e3d1ffff4b Merge pull request #225 from bunnei/fix-release-mutex
Mutex: Changed behavior to always release mutex for all threads.
2014-11-30 08:47:49 -05:00
bunnei a5afad0937 Merge pull request #226 from bunnei/svc-and-thread-fixes
Svc and thread fixes
2014-11-30 08:41:49 -05:00
bunnei 2ad9ad9297 Merge pull request #228 from linkmauve/glfw-error
GLFW: Add an error callback before calling glfwInit()
2014-11-30 08:41:17 -05:00
bunnei 13005d54aa Merge pull request #235 from yuriks/dyncom-map
dyncom: Use unordered_map rather than the terrible 2-level bb_map
2014-11-30 08:35:03 -05:00
Subv 5753da89e4 CFG:U: Implemented the GetCountryCodeID and GetCountryCodeString. 2014-11-29 21:16:28 -05:00
Emmanuel Gil Peyrot 648743cf66 GLFW: Add an error callback before calling glfwInit()
It will print a message to know what happened in case something went wrong in a GLFW call.

Also replace every printf() in the glfw emu-window by ERROR_LOG().
2014-11-29 23:03:04 +00:00
Yuri Kunde Schlesner 4a68e91a62 dyncom: Use unordered_map rather than the terrible 2-level bb_map
Seems (probably just placebo/wishful thinking) to make it slightly
faster. Also reduces memory usage and makes shutdown when debugging from
MSVC fast.
2014-11-29 17:42:39 -02:00
Lioncash 4f28861008 arm_dyncom_interpreter: Get rid of unused var warnings 2014-11-29 14:13:29 -05:00
darkf a19354aced Add comment regarding __WIN32__ in SkyEye code 2014-11-28 21:50:50 -08:00
darkf 459502e48c Fix MinGW build 2014-11-28 21:38:20 -08:00
vaguilar 223e76d51d Fixed formatting and switch statement warnings 2014-11-27 02:59:14 -08:00
bunnei de851ba1a1 Thread: Check that thread is actually in "wait state" when verifying wait. 2014-11-26 15:04:08 -05:00
bunnei f985469901 SVC: Add debug log to ArbitrateAddress. 2014-11-26 15:04:07 -05:00
bunnei e0e7443517 SVC: SleepThread should yield to the next ready thread. 2014-11-26 15:04:07 -05:00
bunnei a449e0e11a Mutex: Changed behavior to always release mutex for all threads. 2014-11-26 14:38:42 -05:00
Emmanuel Gil Peyrot f8c05e53c4 Remove unused includes to common/thread.h 2014-11-25 20:39:25 +00:00
archshift 43a682a106 Log the cmd_buff arguments when citra comes across an unimplemented function 2014-11-24 15:51:48 -08:00
archshift e5ff01c2cd Implemented RenameDirectory in FS:USER 2014-11-24 15:09:12 -08:00
archshift 45afc15aa6 Implemented RenameFile in FS:USER 2014-11-24 15:09:11 -08:00
Yuri Kunde Schlesner 8189593255 Use pointers instead of passing handles around in some functions. 2014-11-24 17:08:37 -02:00
Yuri Kunde Schlesner 22c86824a4 Remove duplicated docs/update them for changed parameters. 2014-11-24 17:08:36 -02:00
Yuri Kunde Schlesner c2588403c0 HLE: Revamp error handling throrough the HLE code
All service calls in the CTR OS return result codes indicating the
success or failure of the call. Previous to this commit, Citra's HLE
emulation of services and the kernel universally either ignored errors
or returned dummy -1 error codes.

This commit makes an initial effort to provide an infrastructure for
error reporting and propagation which can be use going forward to make
HLE calls accurately return errors as the original system. A few parts
of the code have been updated to use the new system where applicable.

One part of this effort is the definition of the `ResultCode` type,
which provides facilities for constructing and parsing error codes in
the structured format used by the CTR.

The `ResultVal` type builds on `ResultCode` by providing a container for
values returned by function that can report errors. It enforces that
correct error checking will be done on function returns by preventing
the use of the return value if the function returned an error code.

Currently this change is mostly internal since errors are still
suppressed on the ARM<->HLE border, as a temporary compatibility hack.
As functionality is implemented and tested this hack can be eventually
removed.
2014-11-24 17:08:36 -02:00
Yuri Kunde Schlesner 924bbde89b Change some SkyEye defines to const ints
This prevents them from interfering with other constants defined in
different namespaces.
2014-11-24 16:47:01 -02:00
bunnei ef1b16a7eb Merge pull request #191 from archshift/deletexyz
Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.
2014-11-23 20:02:23 -05:00
archshift 8aeadbd95a Added DeleteFile and DeleteDirectory functions to FS:USER and the archives. 2014-11-23 00:33:43 -08:00
purpasmart96 9821bfcb8e Add more services and some fixes, along with more "override"
in the service's headers
2014-11-20 17:09:57 -08:00
bunnei c0cd0fa78e Merge pull request #211 from linkmauve/master
Remove trailing spaces from the entire project
2014-11-19 15:24:46 -05:00
bunnei 112768f436 Merge pull request #208 from lioncash/statics
Add static to some variables
2014-11-19 09:39:20 -05:00
Emmanuel Gil Peyrot 739bb58c3a Remove tabs in all files except in skyeye imports and in generated GL code 2014-11-19 09:04:03 +00:00
Emmanuel Gil Peyrot f5d38649c7 Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated 2014-11-19 09:03:07 +00:00
Lioncash 7cbecde2ca Add static to some variables 2014-11-18 20:04:00 -05:00
purpasmart96 66431bceda Kernel:Add missing permissions in shared memory & svc 2014-11-18 15:57:25 -08:00
bunnei 40acd63631 Merge pull request #165 from neobrain/viewport-scaling
Stretch emulation output to render window and be display density independent
2014-11-18 18:32:01 -05:00
archshift 06c9712bc7 Merge Config::ReadXYZs 2014-11-18 15:12:49 -08:00
Tony Wasserka 219628d1c8 Merge pull request #207 from lioncash/docs
Fix documentation of parameters
2014-11-18 16:55:58 +01:00
Tony Wasserka d218a547fa Merge pull request #209 from lioncash/warn
directory_sdmc: Fix a signed/unsigned mismatch comparison
2014-11-18 16:54:56 +01:00
Tony Wasserka ed4e599008 Merge pull request #210 from lioncash/typedef
system: Get rid of an unnecessary enum typedef
2014-11-18 16:54:37 +01:00
Lioncash b37f91c617 system: Get rid of an unnecessary enum typedef 2014-11-18 09:00:32 -05:00
Lioncash 548c49dfe9 directory_sdmc: Fix a signed/unsigned mismatch comparison 2014-11-18 08:51:03 -05:00
Lioncash 64cc6cb6cf Fix documentation of parameters 2014-11-18 08:31:24 -05:00
Lioncash 1a8f466217 Remove extraneous semicolons 2014-11-18 08:27:16 -05:00
Tony Wasserka 963c923d59 citra GLFW: Ignore minimal window size hints.
GLFW provides no proper support for this, hence we just allow any window size to be used.
2014-11-18 13:16:02 +01:00
Tony Wasserka 5785f764ab EmuWindow: Add some explicit documentation and set proper minimal client area size. 2014-11-18 13:16:02 +01:00
Tony Wasserka 688a5c033e citra-qt: Small cleanup. 2014-11-18 13:16:02 +01:00
Tony Wasserka 6a6464807a EmuWindow: Add a TODO.
Implementing this function currently is not critical, as we don't perform any configuration changes, yet.

However, the interface is a good starting point for adding this functionality.
2014-11-18 13:16:02 +01:00
Tony Wasserka e02ff0121f MathUtil: Make Rectangle work with unsigned types. 2014-11-18 13:15:59 +01:00
Tony Wasserka c5c6e095f0 OpenGL Renderer: Cleanup viewport extent calculation. 2014-11-18 13:09:01 +01:00
Tony Wasserka 19bb01c223 EmuWindow: Better document the purpose of OnMinimalClientAreaChangeRequest. 2014-11-18 13:09:01 +01:00
Tony Wasserka 182476c96a EmuWindow: Remove window title getters/setters.
The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there.
Providing properly thread-safe window title getters and setters is a mess anyway.
2014-11-18 13:09:01 +01:00
Tony Wasserka ded9c8a826 EmuWindow: Add documentation. 2014-11-18 13:09:01 +01:00
Tony Wasserka 722ce22589 EmuWindow: Add support for specifying minimal client area sizes. 2014-11-18 13:09:01 +01:00
Tony Wasserka bd8f491e4c Fixup EmuWindow interface and implementations thereof. 2014-11-18 13:09:01 +01:00
Kevin Hartman 221a9b023d Viewport scaling and display density independence
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window.
On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
2014-11-18 13:06:05 +01:00
Tony Wasserka c8d933a142 Add a GUI logging channel.
Replace asserts with _dbg_assert_.
2014-11-18 13:03:02 +01:00
Lioncash 72846c418e core: Mark some hle functions as static
These functions are not referred to by their linkage name outside of the translation unit, so they can be marked as static.
2014-11-17 22:41:49 -05:00
bunnei 11641b5e79 Archive: Fixed to not destroy archive handle on close. 2014-11-17 22:19:14 -05:00
bunnei bcb0dbf7e1 Archive: Fixed close archive before freeing. 2014-11-17 22:19:14 -05:00
bunnei 3e09c07378 FS_User: Support FileSye::Path in a more generic way.
added a todo to kernel archive
2014-11-17 22:18:58 -05:00
bunnei a3107a6b57 FileSys: Updated backend code to use FileSys::Path instead of string for paths. 2014-11-17 21:49:24 -05:00
bunnei c04a04189a FileSys: Added DebugStr method to Path class. 2014-11-17 18:42:37 -05:00
bunnei 4ac4c3caf1 Merge pull request #201 from archshift/boss
Add missing boss:U service
2014-11-17 17:46:18 -05:00
bunnei 77fe4b5c9e Merge pull request #199 from lioncash/prototype
mem_map: Add missing prototype for Write64
2014-11-17 15:21:41 -05:00
archshift e27f169acb Add missing boss:U service, needed according to Nintendo Zone logs. 2014-11-17 07:31:37 -08:00
Lioncash 827e7a1898 emu_window: Fix initializer list order.
Gets rid of a warning on OSX.
2014-11-17 09:27:59 -05:00
Lioncash cfea27a615 mem_map: Add missing prototype for Write64 2014-11-16 22:50:13 -05:00
Tony Wasserka 8717c79fe4 Merge pull request #195 from lioncash/control
vertex_shader: Fix control reaches end of function warning
2014-11-16 22:50:00 +01:00
Lioncash bd76783d91 vertex_shader: Fix control reaches end of function warning 2014-11-16 16:44:14 -05:00
Tony Wasserka 80e9c02bd6 Merge pull request #159 from SeannyM/enable_log
Add support for disabling log from settings
2014-11-15 12:42:08 +01:00
bunnei 26622818ae Merge pull request #193 from lioncash/fmt
Fix two format strings.
2014-11-15 01:41:28 -05:00
bunnei 613627205c Merge pull request #194 from lioncash/virt
ARM_Interface: Make destructor virtual
2014-11-15 01:38:51 -05:00
Lioncash e8f4361d76 ARM_Interface: Make destructor virtual
Fixes some warnings on OSX.
2014-11-14 12:10:35 -05:00
Lioncash ac58b76e71 Fix two format strings. 2014-11-14 12:08:26 -05:00
bunnei 3cfdabb2e3 Merge pull request #183 from archshift/lowpath
Add support for UTF-16 strings for LowPaths in FS:USER
2014-11-12 22:56:27 -05:00
archshift 1f7c4ab7f6 Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functions 2014-11-12 19:30:17 -08:00
bunnei a490490336 Merge pull request #188 from bunnei/apt-fixes
APT_U: Various improvements and bug fixes.
2014-11-12 00:06:45 -05:00
bunnei 9fb549cb84 APT_U: Added stub for function AppletUtility. 2014-11-11 23:51:54 -05:00
bunnei 19cfcfe8c0 APT_U: Set a valid parameter buffer size in GlanceParameter.
- Also Clarified GlanceParameter/ReceiveParameter documentation.
2014-11-11 23:51:54 -05:00
bunnei 8eced1b697 APT_U: Release service lock on initialization. 2014-11-11 23:51:54 -05:00
bunnei 0df9c34410 APT_U: Fixes for GetLockHandle to boot system titles.
- Also added comment to GetLockHandle function.
2014-11-11 23:51:33 -05:00
bunnei b8e6f52419 ARM: Fixed dyncom to use reg15 for PC (this core doesn't use pc variable).
- Fixes single stepping in debugger.
2014-11-11 19:54:18 -05:00
bunnei ce1125d490 Core: Changed RunLoop iterations to 1000 (slightly better performance). 2014-11-11 19:54:09 -05:00
bunnei 0fab380801 Citra-Qt: Use Core::RunLoop when not single stepping. 2014-11-11 19:53:47 -05:00
bunnei 573756e241 ARM: Removed unnecessary goto with each instruction. 2014-11-11 19:53:46 -05:00
bunnei 3409790668 ARM: Fixed several dyncom bugs.
- Fixed NZCVT flags to properly save state when function returns.
- Fixed counter to keep track of the actual number of instructions executed.
- Fixed single-step mode to only execute one instruction at a time.
- DefaultIni: Removed comment that no longer applied to dyncom.
2014-11-11 19:53:19 -05:00
archshift 37e582c395 Add FRD:U service and functions 2014-11-10 22:43:45 -08:00
archshift 0ad5964c8b Add support for UTF-16 strings for LowPaths in FS:USER 2014-11-10 10:53:26 -08:00
archshift 1efb83bf53 Qt: Auto-start game when selected, play game that's passed via argv[1].
Also moves system initialization to when the game is booted.
2014-11-04 21:44:03 -08:00
Sean 371b61f3ea Add support for disabling log from settings 2014-11-03 17:00:32 -05:00
Sean Maas d06420807c Fix compilation errors 2014-11-02 18:43:52 -05:00
bunnei 9be17e4d84 Merge pull request #163 from archshift/create-directory
Added CreateDirectory function to service/fs.cpp, and in Archive.
2014-11-02 17:15:52 -05:00
bunnei be1fb2c5f2 Merge pull request #179 from Gareth422/myradicalbranch
Fixed capitalization issues
2014-11-02 17:12:16 -05:00
bunnei 7f9bcacdf7 Merge pull request #166 from bunnei/skyeye-vfp-fixes
SkyEye ARM/VFP fixes
2014-11-02 17:09:35 -05:00
archshift 04c90c395d Added CreateDirectory function to service/fs.cpp, and in Archive. 2014-11-02 10:48:28 -08:00
archshift 40a84833ae Added ReceiveNotification, PublishToSubscriber unimplemented functions to SRV 2014-11-01 23:15:38 -07:00
bunnei 0832cf7cd7 ARM: Merged additional ARMv6 instructions implemented by 3dmoo. 2014-11-02 01:04:54 -05:00
bunnei bc6989b075 ARM: Merge latest VFP fixes from 3dmoo team. 2014-11-02 01:04:41 -05:00
Gareth Poole 1c074ced94 Fixed capitalization issues 2014-11-01 23:08:06 -04:00
archshift c22923f8c4 Added stub err:f service. 2014-11-01 20:07:59 -07:00
bunnei 6e6947118b Merge pull request #135 from purpasmart96/master
Added a bunch of services
2014-11-01 19:03:01 -04:00
purpasmart96 539b4c883d Added a bunch of services 2014-11-01 15:28:35 -07:00
Yuri Kunde Schlesner c6e3c7df62 Fix VFP compilation errors with gcc 2014-10-30 22:24:03 -02:00
bunnei 01e37962e7 Merge pull request #162 from SeannyM/warning-fixes
Fix some warnings
2014-10-29 21:07:27 -04:00
archshift ed797a4354 FS:USER - Implemented IsSdmcDetected 2014-10-29 17:43:48 -07:00
Sean 9a012ff007 Fix some warnings 2014-10-29 20:26:15 -04:00
Gareth Poole 38df9e96dd Renamed souce files of services to match port names 2014-10-29 15:55:51 -04:00
bunnei 48f80bb79e Merge pull request #151 from archshift/dyncom-enabled
Use configuration files to enable or disable the new dyncom interpreter.
2014-10-27 22:51:10 -04:00
archshift 09e19f9f1e Added `gpu_refresh_rate` config setting for the new interpreter speed hack. 2014-10-27 19:42:01 -07:00
archshift 0783498f57 Use configuration files to enable or disable the new dyncom interpreter. 2014-10-27 18:35:21 -07:00
bunnei a110b06fb6 Merge pull request #141 from archshift/crash-hunt
hid.cpp: Fixed crash when updating pad data while null
2014-10-27 21:35:01 -04:00
bunnei 19d91a45f5 Merge pull request #153 from yuriks/add-override
Add override keyword where appropriate
2014-10-27 21:23:16 -04:00
Lioncash d155586801 vfp_helper: Get rid of integer type redefinitions 2014-10-26 14:19:47 -04:00
Yuri Kunde Schlesner d72708c1f5 Add `override` keyword through the code.
This was automated using `clang-modernize`.
2014-10-26 16:18:05 -02:00
Yuri Kunde Schlesner da564d3fe0 Fix compile errors in Clang 2014-10-26 16:18:04 -02:00
Tony Wasserka a7a57c04c6 Merge pull request #150 from lioncash/typo
bit_field: Fix a typo in the sample usage.
2014-10-25 21:19:43 +02:00
bunnei 70058f8151 Merge pull request #148 from archshift/no-cstring
Removed some uses of raw c-string manipulation functions.
2014-10-25 15:19:05 -04:00
Lioncash 2dce9b2ead bit_field: Fix a typo in the sample usage. 2014-10-25 15:18:34 -04:00
bunnei 818ba32746 ARM: Removed unnecessary and unused SkyEye MMU code.
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
2014-10-25 14:11:41 -04:00
bunnei 3c823c0028 ARM: Removed unused armos code from SkyEye. 2014-10-25 14:11:40 -04:00
bunnei 130efd461d ARM: Updated dyncom core to use fast label lookup table on clang. 2014-10-25 14:11:40 -04:00
bunnei 53a22b84da ARM: Integrate SkyEye faster "dyncom" interpreter.
Fixed typo (make protected member public)

Added license header back in. I originally removed this because I mostly rewrote the file, but meh

ARM: Fixed a type error in dyncom interpreter.

ARM: Updated dyncom to use unique_ptr for internal ARM state.
2014-10-25 14:11:39 -04:00
bunnei b5e6524594 ARM: Reorganized file structure to move shared SkyEye code to a more common area.
Removed s_ prefix
2014-10-25 14:11:39 -04:00
Emmanuel Gil Peyrot 2d960f5040 Don’t fail on empty filename in OpenFileDirectly, return the archive handle instead 2014-10-25 16:12:57 +00:00
archshift 7fa4dbd0c6 Removed uses of raw c-string manipulation functions. 2014-10-23 21:44:10 -07:00
bunnei ce8390ac03 Merge pull request #133 from archshift/sdmc-enabled
Use config files to store whether SDMC is enabled or not, auto-create SDMC dir.
2014-10-23 18:51:54 -04:00
Yuri Kunde Schlesner b75ac24391 Use std sized types instead of platform specific typedefs 2014-10-22 22:43:15 -02:00
archshift a7c7946867 Common: Return from CreateFullPath early if the directory creation fails 2014-10-22 15:24:25 -07:00
archshift a59f57d504 Use config files to store whether SDMC is enabled or not
Before, it used to use whether the directory actually existed. As a result, .citra-emu/sdmc was never auto-created (something quite confusing to me until I read through the logs).
2014-10-22 15:24:25 -07:00
Yuri Kunde Schlesner 15c59f3974 Only check OpenGL shader log if size is >1.
This prevents a crash when the buffer size returned by the driver is 0,
in which case no space is allocated to store even the NULL byte and
glGetShaderInfoLog errors out.

Thanks to @Relys for the bug report.
2014-10-21 16:07:39 -02:00
archshift 36c04ae2ee emu_window_glfw.cpp: Fixed graceful quitting
In PR #143, the name of the function IsOpen was originally ShouldClose, but was changed. The function's caller was changed to reflect this, but the return value wasn't.
2014-10-19 00:53:49 -07:00
archshift ccb59a9d28 Implemented graceful closing of the GLFW window, along with emulation. 2014-10-17 14:56:17 -07:00
archshift 366ae1b351 hid.cpp: Fixed crash when updating pad data while null
Fixes #137
2014-10-13 22:18:03 -07:00
Yuri Kunde Schlesner ac54cd13db OpenGL renderer: Request a forward compatible context in citra-qt
This should fix context creation on OS X. Also requests a core context on all platforms in Citra-GLFW, for consistency.
2014-10-12 14:39:02 +02:00
Yuri Kunde Schlesner 11642fd3a2 Rework OpenGL renderer.
The OpenGL renderer has been revised, with the following changes:
 - Initialization and rendering have been refactored to reduce the number of
   redundant objects used.
 - Framebuffer rotation is now done directly, using texture mapping.
 - Vertex coordinates are now given in pixels, and the projection matrix
   isn't hardcoded anymore.
2014-10-12 14:38:53 +02:00
Yuri Kunde Schlesner fec7f6b035 Rename GPU::Regs::FramebufferFormat to PixelFormat
This name better represents what the enum does, and is less overloaded
in the context. (The whole register the enum is part of is also called
'format'.)
2014-10-12 14:37:24 +02:00
Yuri Kunde Schlesner 5f598a5e2c OpenGL renderer: Shuffle initialization code around and rename functions. 2014-10-12 14:37:24 +02:00
Yuri Kunde Schlesner 787a1b047c Remove virtual inheritance from RendererOpenGL
Also make destructor virtual so that instances are properly destructed.
2014-10-12 14:37:24 +02:00
bunnei 8fb064cd62 Merge pull request #119 from lioncash/warn
Fix warnings in video_core
2014-10-08 23:06:28 -04:00
Lioncash eb5054e6eb Fix warnings in video_core 2014-10-07 20:35:13 -04:00
bunnei 8d1154c24e Merge pull request #128 from purpasmart96/master
APT:U Added a stub fuction for "GlanceParameter"
2014-10-07 20:30:21 -04:00
purpasmart96 20f15f31dd APT: Added a stub for the "GlanceParameter" function. 2014-10-07 17:10:54 -07:00
bunnei a171000cbe Merge pull request #108 from archshift/config
Configuration files
2014-10-07 19:44:13 -04:00
archshift e6594f9f53 Added configuration file system.
Uses QSettings on citra-qt, and inih on citra-cli.
2014-10-07 15:09:37 -07:00
Emmanuel Gil Peyrot fbd72fd6bf Common: Add a helper function to generate a 8.3 filename from a long one.
Core: Fix the SDMC Directory implementation to make blargSnes work.
2014-10-06 19:58:43 +02:00
Emmanuel Gil Peyrot 19c2a96ab0 FileSys: Add static asserts for the Directory struct, and fix its fields position. 2014-10-06 19:58:43 +02:00
Emmanuel Gil Peyrot 0be5c03176 FileSys: split the constructor into an Open method, in order to notify the opener something went wrong.
Kernel: Return an invalid handle to OpenFile when it failed to open.
2014-10-06 19:58:42 +02:00
Emmanuel Gil Peyrot 23c2fbfc7a FileSys/Kernel: Implement SetSize service call for File objects. 2014-10-06 19:58:37 +02:00
Emmanuel Gil Peyrot d34673990b FileSys: Add forgotten docstrings. 2014-10-06 19:54:50 +02:00
purpasmart96 1d0ac47832 Added some more names to the function table
Added "SetApplicationCpuTimeLimit" and "GetApplicationCpuTimeLimit" to apt.cpp
2014-10-04 15:01:36 -07:00
purpasmart96 7d6f7684e1 added "StoreDataCache" to the function table
seems simple enough
2014-09-30 09:13:29 -07:00
Lioncash ca2f0de08a Fix warnings in core and common 2014-09-28 11:44:14 -04:00
bunnei ee7cfc71bd Merge pull request #118 from lioncash/chunk-file
chunk_file: General cleanup
2014-09-22 22:02:51 -04:00
Lioncash ff442d6cf9 chunk_file: General cleanup
- Remove unnecessary ifdefs
- Remove commented out code. Can be retrieved later if needed.
2014-09-21 18:36:14 -04:00
archshift 1966f7b0ad Use the citra user path for the sdmc directory 2014-09-21 09:34:33 -07:00
Emmanuel Gil Peyrot 3a570a9fee Kernel: Implement the Close command for Archive, File and Directory. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot 99bfa4ae1f FS: Implement OpenArchive, OpenDirectory, OpenFile and OpenFileDirectly calls. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot c197ce2180 Kernel: Add a Directory object and a getter for it from an Archive object. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot c14e5713f5 Core: Add a method to obtain a Directory from an Archive. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot 33b0d1081e Core: Add a Directory object, with both a stub and a passthrough implementations. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot 19d04f3abe Kernel: Add a File object and a getter for it from an Archive object. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot e73caaefe5 Core: Add a passthrough backend for the filesystem, exposed as SDMC. 2014-09-17 14:35:45 +00:00
Emmanuel Gil Peyrot 9251f7e2f8 Core: Add a new File class, obtainable from an Archive, and a stub implementation. 2014-09-17 14:35:45 +00:00
Emmanuel Gil Peyrot 6b7b36a874 Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions. 2014-09-17 14:35:45 +00:00
Emmanuel Gil Peyrot edaf59a759 Common: Return the number of items read/written in IOFile’s methods instead of a boolean. 2014-09-17 14:35:45 +00:00
bunnei 1c79a4f10c Merge pull request #107 from lioncash/sprintf
Core: Replace a sprintf in core_timing with StringFromFormat
2014-09-16 16:54:41 -04:00
bunnei 73b6f85f9a Merge pull request #109 from lioncash/cruft
Core: Get rid of unnecessary switch statement in Kernel
2014-09-15 00:47:13 -04:00
Lioncash 741321ac24 Core: Get rid of unnecessary switch statement in Kernel 2014-09-14 21:31:09 -04:00
bunnei 31d9cf4d17 Merge pull request #110 from lioncash/warnings
Core: Fix warnings in gpu.cpp
2014-09-14 21:28:44 -04:00
bunnei 5481115e71 Merge pull request #97 from archshift/cleanup
Small, general code cleanup
2014-09-13 22:58:58 -04:00
Lioncash 6cc7c73b80 Core: Fix warnings in gpu.cpp 2014-09-13 22:55:41 -04:00
Lioncash 093d6fbcdc Core: Replace a sprintf in core_timing with StringFromFormat 2014-09-12 21:18:46 -04:00
Kevin Hartman 02fd19b2f6 Added support for multiple input device types for KeyMap and connected Qt. 2014-09-12 01:15:14 -07:00
Kevin Hartman 4a94ec934a Initial HID PAD work, with GLFW only. 2014-09-11 22:43:42 -07:00
Kevin Hartman bb7ddede15 Created structure for PAD. 2014-09-11 22:43:42 -07:00
bunnei 532a9e80a0 Merge pull request #99 from archshift/ext-check
loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
2014-09-11 00:04:36 -04:00
bunnei d79fe3ebaa Merge pull request #103 from archshift/prune
Prune redundant includes
2014-09-10 18:44:08 -04:00
bunnei 249a567834 Merge pull request #104 from archshift/removal
Removed fixed_size_queue.h
2014-09-09 20:56:28 -04:00
bunnei 8891c27425 Merge pull request #101 from lioncash/inf-loop
Common: Fix a potential infinite loop in StringUtil's ReplaceAll
2014-09-09 20:53:33 -04:00
archshift 727bad24a2 Removed fixed_size_queue.h
It's unused and doesn't look like it compiles anyway :/
2014-09-08 18:49:41 -07:00
archshift 6e606c515f core: Prune redundant includes 2014-09-08 17:54:14 -07:00
archshift 9d7cc2bedc common: Prune all redundant includes 2014-09-08 17:25:43 -07:00
archshift 8fe5f2e2fe Moved common_types::Rect from common to Common namespace 2014-09-08 15:43:36 -07:00
archshift 5472fd4d9b Added string_util to common, small changes in loader.cpp 2014-09-08 15:43:22 -07:00
archshift 4ed24a0619 loader.cpp: improved file extension checking, made Upper/LowerStr useful
Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location.
2014-09-08 15:41:58 -07:00
Lioncash 5b65decf91 Common: Remove HAVE_CXX11_SYNTAX define from Common.h 2014-09-08 15:01:15 -04:00
Lioncash 2f6ef914db Common: Fix a potential infinite loop in StringUtil's ReplaceAll 2014-09-08 14:48:59 -04:00
bunnei 335082e74e Merge pull request #95 from lioncash/disassembler
core: Make the ARM disassembler use std::string internally
2014-09-08 00:10:13 -04:00
bunnei 85f1b76cd8 Merge pull request #87 from archshift/remove-cruft
Removed redundant headers for std implementations
2014-09-07 22:08:06 -04:00
archshift 498d1a37f1 Removed common/std_xyz, instead using the std header 2014-09-07 14:31:07 -07:00
archshift 81baa477b5 renderer_opengl.cpp: improved alignment for readability 2014-09-07 12:09:02 -07:00
archshift 1c02c03e32 Dead code removal: video_core.cpp, load_symbol_map.cpp 2014-09-07 12:09:02 -07:00
archshift 9c0efdb75b bootmanager::EmuThread: fixed initialization order 2014-09-07 12:09:02 -07:00
archshift 0167e9140e utils: cleaned up DumpTGA, removing redundancies 2014-09-07 12:09:02 -07:00
Lioncash 403c84cdab core: Make the ARM disassembler use std::string internally 2014-09-06 14:45:56 -04:00
bunnei a130086587 Merge pull request #93 from lioncash/ref
core: Pass string by reference in FetchFromPortName and DeleteService
2014-09-06 14:06:37 -04:00
Lioncash f68776ce13 ncch: Remove C-style struct typedefs
In C++ you can simply just declare it as is.
2014-09-06 13:38:03 -04:00
Lioncash 26cd696843 ncch: inline declare some variables in LZSS_Decompress 2014-09-06 13:36:49 -04:00
Lioncash d30747efea core: Pass string by reference in FetchFromPortName and DeleteService 2014-09-06 13:30:27 -04:00
archshift 4795a64fc8 Removed common/atomic, instead using std::atomic 2014-09-02 22:40:02 -07:00
Yuri Kunde Schlesner c57de3e404 Remove hand-crafted Visual Studio solution. 2014-09-01 18:06:30 -03:00
Yuri Kunde Schlesner b15d631d99 Avoid LOGGING redefinition warnings. 2014-09-01 18:06:30 -03:00
Yuri Kunde Schlesner 45976da975 CMake cleanup
Several cleanups to the buildsystem:
 - Do better factoring of common libs between platforms.
 - Add support to building on Windows.
 - Remove Qt4 support.
 - Re-sort file lists and add missing headers.
2014-09-01 18:06:30 -03:00
Yuri Kunde Schlesner 478289140d Replace GLEW with a glLoadGen loader.
This should fix the GL loading errors that occur in some drivers due to
the use of deprecated functions by GLEW. Side benefits are more accurate
auto-completion (deprecated function and symbols don't exist) and faster
pointer loading (less entrypoints to load). In addition it removes an
external library depency, simplifying the build system a bit and
eliminating one set of binary libraries for Windows.
2014-09-01 17:41:56 -03:00
bunnei 76372feb19 Merge pull request #84 from bunnei/fix-hw-synchronization
Fix GPU/HW synchronization
2014-08-31 00:53:07 -04:00
bunnei 038a51aac1 Merge pull request #82 from yuriks/addr-types
Introduce VAddr and PAddr typedefs for ARM addresses.
2014-08-30 23:27:46 -04:00
bunnei aabfcfe6ad GPU: Improve frame synchronization, increases compatibility with both homebrew and retail applications. 2014-08-30 23:24:14 -04:00
bunnei eb36d3fc90 Core: Refactor core to use only one function for execution.
Core: Cleaned up comment to be more readable.

Citra: Changed loop to be more readable.
2014-08-30 23:23:38 -04:00
bunnei 738b88293c Loader: Added support for loading raw BIN executables.
- Useful for debugging homebrew

Qt: Updated GUI to support loading .bin files.
2014-08-30 23:23:33 -04:00
bunnei 3ade84cb7b Threading: Fix thread starting to execute first instruction correctly. 2014-08-30 23:23:32 -04:00
bunnei ae93adddd1 srv::Initialize: Return "success" status code. 2014-08-30 23:23:31 -04:00
Yuri Kunde Schlesner 83c3d2bcd1 Introduce VAddr and PAddr typedefs for ARM addresses. 2014-08-31 00:04:11 -03:00
bunnei 06864c93fd Merge pull request #80 from bunnei/fix-latest-libctru
Fixes Citra for the latest changes made to the "refactor" branch of libctru.
- For reference, see: https://github.com/smealum/ctrulib/tree/refactor/libctru
2014-08-28 18:07:45 -04:00
bunnei 6966fdf025 Loader: Added support for loading raw BIN executables.
- Useful for debugging homebrew

Qt: Updated GUI to support loading .bin files.
2014-08-28 17:51:49 -04:00
bunnei 304999dfeb Threading: Fix thread starting to execute first instruction correctly. 2014-08-28 17:51:49 -04:00
bunnei fb908b9395 srv::Initialize: Return "success" status code. 2014-08-28 17:51:41 -04:00
Yuri Kunde Schlesner 9d172ab550 Downgrade GLSL version to 1.50 (compatible with GL 3.2) 2014-08-28 05:38:13 -03:00
bunnei 20d169e4a1 VideoCore: Fixes rendering issues on Qt and corrects framebuffer output size. 2014-08-26 17:34:52 -04:00
Kevin Hartman cbfd6b6e52 Rewrite of OpenGL renderer, including OS X support
Screen contents are now displayed using textured quads. This can be updated to expose an FBO once an OpenGL backend for when Pica rendering is being worked on. That FBO's texture can then be applied to the quads.

Previously, FBO blitting was used in order to display screen contents, which did not work on OS X. The new textured quad approach is less of a compatibility risk.
2014-08-25 20:56:59 -07:00
Tony Wasserka a79644c9ba Pica/Rasterizer: Clarify a TODO. 2014-08-25 22:03:19 +02:00
Tony Wasserka 697b50c3ff Pica/VertexShader: Fix a bug in the call stack handling. 2014-08-25 22:03:19 +02:00
Tony Wasserka b5b3aeb576 Math: Warning fixes. 2014-08-25 22:03:19 +02:00
Tony Wasserka 941762a573 GPU: Fix a compiler warning about redundant semicolons. 2014-08-25 22:03:19 +02:00
Tony Wasserka 2f1c129f64 Pica: Consolidate the primitive assembly code in PrimitiveAssembly and GeometryDumper. 2014-08-25 22:03:19 +02:00
Tony Wasserka 9679d231df Pica/Rasterizer: Add texturing support. 2014-08-25 22:03:18 +02:00
Tony Wasserka 34fa0b6d9c Pica/DebugUtils: Add convenient tev setup printer. 2014-08-25 22:03:18 +02:00
Tony Wasserka 27cab6477e Pica/Rasterizer: Add initial implementation of texture combiners. 2014-08-25 22:03:18 +02:00
Tony Wasserka c4691b784b Pica: Add support for dumping textures. 2014-08-25 22:03:18 +02:00
Tony Wasserka 162d641a30 Pica/Math: Improved the design of the Vec2/Vec3/Vec4 classes and simplified rasterizer code accordingly.
- Swizzlers now return const objects so that things like "first_vec4.xyz() = some_vec3" now will fail to compile (ideally we should support some vector holding references to make this actually work).
- The methods "InsertBeforeX/Y/Z" and "Append" have been replaced by more versions of MakeVec, which now also supports building new vectors from vectors.
- Vector library now follows C++ type promotion rules (hence, the result of Vec2<u8> with another Vec2<u8> is now a Vec2<int>).
2014-08-25 22:03:18 +02:00
Tony Wasserka 62c36a4ef0 Pica/VertexShader: Fix a bug in the bitfield definitions and add the "negate" field for swizzlers. 2014-08-25 22:03:18 +02:00
Tony Wasserka 26ade98411 Pica/citra-qt: Replace command list view and command list debugging code with something more sophisticated. 2014-08-25 22:03:18 +02:00
Tony Wasserka 0465adf206 Pica/CommandProcessor: Implement parameter masking. 2014-08-25 22:03:18 +02:00
Tony Wasserka f37e39deb9 Pica: Add debug utilities for dumping shaders. 2014-08-25 22:03:18 +02:00
Tony Wasserka 6ea003c7b5 Pica: Add debug utility functions for dumping geometry data. 2014-08-25 22:03:18 +02:00
Tony Wasserka 14b24a75b3 GSP: Update framebuffer information when necessary. 2014-08-25 22:03:18 +02:00
Tony Wasserka 590c206ac8 GSP: Implement SetBufferSwap. 2014-08-25 22:03:18 +02:00
Tony Wasserka e832bbe554 GSP: Add a helper function for convenience. 2014-08-25 22:02:33 +02:00
Sacha 1b1205cf73 Pass format to the QGLWidget and use atomic instead of mutex. 2014-08-25 03:42:52 +10:00
Sacha b044510fa9 Fix EmuThread loop by ensuring it exits properly.
Note: There is a pre-existing issue with booting a new game in that it keeps the old EmuThread.
The GL code now supports this but the Core still doesn't.
2014-08-25 01:49:34 +10:00
Sacha a3a70e56ac Fix the threading for GL Context in Qt5.
Connect the emu_thread start/finish to a moveContext slot.
2014-08-25 00:47:00 +10:00
bunnei 0ffc966e42 Merge pull request #68 from archshift/readfile
Added FS functions to Archive and Archive_RomFS
2014-08-22 18:50:00 -04:00
archshift 4c4a01bf41 Added FS functions to Archive and Archive_RomFS 2014-08-22 15:45:10 -07:00
bunnei c3c66ad34d Merge pull request #46 from archshift/citrah
Removed unused citra.h
2014-08-21 18:27:54 -04:00
bunnei 59d512484a Merge pull request #58 from lioncash/clamp
Common: Add a clamp function to math_utils.h
2014-08-21 11:31:43 -04:00
Emmanuel Gil Peyrot ef27770a53 ARM: Remove a forgotten const in vfp. 2014-08-20 17:50:27 +00:00
archshift d93dc81953 Revert "Removed redundant loop in EmuThread::run()" 2014-08-20 10:15:12 -07:00
archshift 80c4d7bf48 Removed unused citra.h 2014-08-19 22:22:12 -07:00
bunnei bc64261d29 Merge pull request #60 from xsacha/qt5
Use Qt5 by default for citra-qt project.
2014-08-19 19:08:01 -04:00
bunnei 0db986d92a Merge pull request #61 from lioncash/kernel-stuff
Core: Use std::array for managing kernel object space
2014-08-19 19:01:22 -04:00
bunnei 39fbb0d508 Merge pull request #59 from lioncash/fwddecl
Common: Get rid of an unnecessary forward declaration in symbols.h
2014-08-19 19:00:22 -04:00
Sacha 90f23020f5 Add Qt5 option. Use Qt5 by default. 2014-08-19 21:34:00 +10:00
Lioncash 2f571a0d9d Common: Add a clamp function to math_utils.h 2014-08-19 03:37:38 -04:00
Lioncash ab4648d3ca Core: Use std::array for managing kernel object space
These avoid relying on memset for clearing the arrays.
2014-08-19 00:32:48 -04:00
bunnei e9c5c563a5 Merge pull request #55 from lioncash/string
Core: Alter the kernel string functions to use std::string instead of const char*.
2014-08-18 21:42:44 -04:00
bunnei 10f25866e2 SVC: Added support for svc_GetSystemTick.
Changed HLE function return methods to be static inline functions.
2014-08-18 21:26:20 -04:00
Lioncash 85a20a9b19 Common: Get rid of an unnecessary forward declaration in symbols.h 2014-08-18 16:40:17 -04:00
bunnei 0a1aab5b42 Merge pull request #57 from lioncash/str
Common: Don't return a reference to a string when calling GetName in symbols.cpp
2014-08-18 15:35:47 -04:00
Lioncash a49a5fa4d9 Common: Don't return a reference to a string when calling GetName in symbols.cpp
Returning a copy of the string is what was likely meant to be done.
2014-08-18 01:59:03 -04:00
Sacha b7ecc9543a CMake Cleanup 2014-08-18 14:35:44 +10:00
Lioncash 98fa3f7cba Core: Alter the kernel string functions to use std::string instead of const char*.
Most functions already operate on std::strings. This also removes the need to manually null terminate thread names.
2014-08-17 23:12:20 -04:00
bunnei 68c81f28d9 Merge pull request #52 from lioncash/memory
Common: Correctly set ptr to null if mmap fails in memory_util
2014-08-17 20:38:28 -04:00
bunnei 3cd5ede355 Merge pull request #49 from archshift/redundantloop
Removed redundant loop in EmuThread::run()
2014-08-17 20:35:18 -04:00
bunnei 54d5d4477f Merge pull request #48 from linkmauve/master
Replace insecure temporary file creation with devshm.
2014-08-17 20:33:47 -04:00
bunnei b26f25356d Merge pull request #51 from lioncash/pragma
Common: Move header guards over to pragma once.
2014-08-17 20:32:04 -04:00
bunnei 7ed73af78f Merge pull request #53 from lioncash/memmap
Core: Fix undefined behavior in mem_map_funcs' WriteBlock function
2014-08-17 20:30:30 -04:00
Lioncash 986dd27392 Core: Fix a formatting error in svc.cpp
entry_point would not be added to the string. Also used StringFromFormat
so that the buffer is unnecessary.
2014-08-17 14:28:39 -04:00
Lioncash da18671166 Core: Fix undefined behavior in mem_map_funcs' WriteBlock function 2014-08-17 14:23:54 -04:00
Lioncash cc9f352b66 Common: Correctly set ptr to null if mmap fails in memory_util
On POSIX systems mmap will return MAP_FAILED ((void*)-1) instead of a null pointer.
2014-08-17 14:08:43 -04:00
Lioncash da6f24b374 Common: Move remaining C header includes over to their C++ equivalent 2014-08-17 13:54:06 -04:00
Lioncash 90e994471a Common: Move header guards over to pragma once
Also replaced C headers with the C++ equivalent ones
2014-08-17 13:45:55 -04:00
archshift 9a4e58c370 Removed redundant loop in EmuThread::run() 2014-08-16 23:31:25 -07:00
Emmanuel Gil Peyrot c91d9fd837 mem_arena: Replace insecure temporary file creation with devshm, importing Dolphin’s code. 2014-08-16 10:12:30 +02:00
archshift 6096b289b7 Bootmanager: changed `filename` to std::string 2014-08-14 23:59:31 -07:00
bunnei 73c53b5eb8 Merge pull request #43 from archshift/iftree
Simplified if-tree in extended_trace.cpp
2014-08-13 13:16:03 -04:00
bunnei 388356f629 Merge pull request #42 from archshift/glexp
Use glewExperimental to fix crashes with citra-glfw
2014-08-13 13:10:45 -04:00
archshift 662a1993e6 float24: Remove private default constructor
Fixes building with clang.
2014-08-13 02:54:16 -07:00
bunnei bf7bc3dacd Merge pull request #39 from bunnei/hid-minor-improvements
Hid minor improvements
2014-08-12 18:23:17 -04:00
bunnei 091f6cf55b HID: Added new function entries from 3dbrew to FunctionTable.
HID: Fix typo with DisableGyroscopeLow command.
2014-08-12 18:08:09 -04:00
archshift a7c549a40c Simplified if-tree in extended_trace.cpp 2014-08-12 14:34:25 -07:00
archshift d71af1bd20 Use glewExperimental on Linux in order to fix GLFW-mode 2014-08-12 13:42:04 -07:00
bunnei 0ccd026a6d Merge pull request #41 from archshift/itr
Changed iterators to use auto, many of which using range-based loops
2014-08-12 10:12:39 -04:00
Tony Wasserka 94d742fe17 Pica: Add basic rasterizer. 2014-08-12 13:50:07 +02:00
Tony Wasserka 94aa9da562 Pica: Add triangle clipper. 2014-08-12 13:49:33 +02:00
Tony Wasserka 9a76a2d061 Pica: Add primitive assembly stage. 2014-08-12 13:48:56 +02:00
Tony Wasserka c526512619 Pica: Add vertex shader implementation. 2014-08-12 13:48:10 +02:00
Tony Wasserka d443f0a921 Pica: Implement vertex loading. 2014-08-12 13:47:31 +02:00
Tony Wasserka 1a43f69477 Pica: Add register definition for vertex loading and rendering. 2014-08-12 13:47:31 +02:00
Tony Wasserka 76a586de49 Pica: Add command processor. 2014-08-12 13:47:30 +02:00
Tony Wasserka 98ad16a45b Pica: Add float24 structure.
24-bit floating points are used internally for calculations on the GPU, however the current code will still emulate that with 32-bit floating points.
In the future we might want to accurately perform the calculations with correct bitness in the future, but for now we just wrap the calculations around this class.
2014-08-12 13:46:24 +02:00
Tony Wasserka 8528c810cf Video core: Add utility class for vector operations.
I wrote most of this for ppsspp, so I hold full copyright over it.
In addition to the original release in ppsspp, this provides functionality to easily extend e.g. two-dimensional vectors to three-dimensional vectors.
2014-08-12 13:46:20 +02:00
Tony Wasserka 7b6a7d7dfb Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.
This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible.
This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though.
2014-08-12 13:32:56 +02:00
Tony Wasserka bd798390d5 GSP: Fix a major regression introduced in ffda035c, due to which no display transfers were triggered at all anymore. 2014-08-12 13:32:18 +02:00
archshift 1a2604902f break_points.cpp: return directly from conditionals 2014-08-12 04:04:54 -07:00
archshift e3efc613fd break_points: cleaned up, added `find_if`s 2014-08-12 03:48:11 -07:00
archshift 5a7c3ad194 Changed iterators to use auto, some of which using range-based loops 2014-08-11 17:53:23 -07:00
Tony Wasserka 9c781a6c76 Remove the fancy RegisterSet class introduced in 4c2bff61e.
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures.
Instead, we now use a more conventional approach which is a lot more clean to use.
2014-08-12 02:17:21 +02:00
Anthony J. Bentley dad3655a6d Use pthread_set_name_np() on OpenBSD. 2014-08-07 22:56:58 -06:00
bunnei 552287498a HID: Implemented HID_User::GetIPCHandles service function. 2014-08-07 20:27:56 -04:00
bunnei 66f91b4346 SVC: Fixed typo with MapMemoryBlock DEBUG_LOG call. 2014-08-07 20:27:11 -04:00
bunnei 0805ecbaca GPU: Updated g_last_ticks variable to be more descriptive (represents CPU tick count of last vertical line). 2014-08-06 18:20:02 -04:00
bunnei 7ada2625fe GPU: Updated horizontal sync line counter to use framebuffer height. 2014-08-06 18:20:01 -04:00
bunnei d4bd2f2e5d Thread: Added more descriptive comment to WaitCurrentThread. 2014-08-06 18:19:59 -04:00
bunnei cad2f21985 GSP: Cleaned up command buffer decoding.
GSP: Cleaned up code and added additional comments.

GSP: Removed unnecessary TODO comment.

GSP: Changed u32 iterators in TriggerCmdReqQueue to unsigned.
2014-08-06 18:19:56 -04:00
bunnei 36fd1c169e GSP: Added reinitialization of other state objects. 2014-08-05 23:58:00 -04:00
bunnei 4e9f305ed2 GSP: Removed dumb GX prefixes to functions/structs in GSP namespace.
- Various other cleanups.
2014-08-05 23:58:00 -04:00
bunnei 99e404e221 GSP: Removed unnecessary GX_FinishCommand function. 2014-08-05 23:57:59 -04:00
bunnei ec14ffe1cd GSP: Implements preliminary command synchronization via GPU interrupts.
Core: Added a comment to explain the logic for the RunLoop iterations.
2014-08-05 23:57:53 -04:00
bunnei c48ab0bd9e MemMap: Fixed typo with GetPointer to VRAM address. 2014-08-05 23:54:28 -04:00
bunnei 2542350b85 AddressArbiter: Removed unnecessary HLE::Reschedule. 2014-08-05 23:54:28 -04:00
bunnei 60078baab1 AddressArbiter: Fixed bug with break statements missing from case statements. 2014-08-05 23:54:27 -04:00
bunnei 1b247b8031 SRV: Updated GetProcSemaphore to create an event instead of a mutex. 2014-08-05 23:54:27 -04:00
bunnei 4d4607041b SVC: Removed ArbitrateAddress log message that spams to much. 2014-08-05 23:53:58 -04:00
bunnei 7a1f813be1 Kernel: Updated Event and Mutex to specify handle that they are blocking for. 2014-08-05 20:14:51 -04:00