bunnei
a5f5751b75
pica: Cleanup lighting register definitions and documentation.
2016-02-05 17:20:25 -05:00
bunnei
0a12278cd2
gl_rasterizer: Use alignas(16) instead of explicit padding.
2016-02-05 17:20:24 -05:00
bunnei
1dd1f58218
renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types.
2016-02-05 17:20:23 -05:00
bunnei
a6ad0df69f
gl_rasterizer: Fix issue with interpolation of opposite quaternions.
2016-02-05 17:20:23 -05:00
bunnei
0e48729a3a
pica_types: Fix typo in docstring.
2016-02-05 17:20:22 -05:00
bunnei
cc283bfedd
pica_types: Replace float24/20/16 with a template class.
2016-02-05 17:20:22 -05:00
bunnei
27523be7a4
command_processor: Add an assertion to ensure LUTs are not written past their boundaries.
2016-02-05 17:20:20 -05:00
bunnei
fb6e05281c
gl_rasterizer: Remove unnecessary casts.
2016-02-05 17:20:19 -05:00
bunnei
a30c609b75
gl_rasterizer: Fix PicaShaderConfig on GCC.
2016-02-05 17:20:19 -05:00
bunnei
4e22e5544a
gl_rasterizer: Initial implementation of bump mapping.
2016-02-05 17:20:19 -05:00
bunnei
da4f531a59
gl_shader_gen: Fix bug in LUT range (should within range [0, 255] not [0, 256]).
2016-02-05 17:20:17 -05:00
bunnei
ff25eb8cc9
gl_shader_gen: Implement lighting red, green, and blue reflection.
2016-02-05 17:20:16 -05:00
bunnei
4f0fc85f84
gl_shader_gen: View should be normalized.
2016-02-05 17:20:15 -05:00
bunnei
d376a783ea
gl_shader_gen: Implement fragment lighting fresnel effect.
2016-02-05 17:20:13 -05:00
bunnei
b07c7c26c6
gl_shader_gen: Implement fragment lighting specular 1 component.
2016-02-05 17:19:16 -05:00
bunnei
f878148e30
gl_shader_gen: Add support for D0 LUT scaling.
2016-02-05 17:18:36 -05:00
bunnei
481017a334
gl_shader_gen: Refactor lighting config to match Pica register naming.
...
- Also implement D0 LUT enable.
2016-02-05 17:17:35 -05:00
bunnei
1bb0aa6c01
pica: Cleanup and add some comments to lighting registers.
2016-02-05 17:17:34 -05:00
bunnei
2658c7f266
gl_rasterizer: Minor naming refactor on Pica register naming.
2016-02-05 17:17:33 -05:00
bunnei
f7510ba8f0
gl_shader_gen: Reorganize and cleanup lighting code.
...
- No functional difference.
2016-02-05 17:17:33 -05:00
bunnei
9cd5c49ee5
gl_shader_gen: Fix directional lights.
2016-02-05 17:17:32 -05:00
bunnei
aabc988463
gl_shader_gen: Fix bug with lighting where clamp highlights was only applied to last light.
2016-02-05 17:17:32 -05:00
bunnei
14877aa76f
gl_shader_gen: View vector needs to be normalized when computing half angle vector.
2016-02-05 17:17:31 -05:00
bunnei
bb3014fb28
renderer_opengl: Use textures for fragment shader LUTs instead of UBOs.
...
- Gets us LUT interpolation for free.
- Some older Intel GPU drivers did not support the big UBOs needed to store the LUTs.
2016-02-05 17:17:31 -05:00
bunnei
81511f08fa
renderer_opengl: Initial implementation of basic specular lighting.
2016-02-05 17:17:30 -05:00
bunnei
49cd958486
renderer_opengl: Implement HW fragment lighting distance attenuation.
2016-02-05 17:17:30 -05:00
bunnei
11fba4e8d0
renderer_opengl: Implement HW fragment lighting LUTs within our default UBO.
2016-02-05 17:17:29 -05:00
bunnei
07b07a2f24
renderer_opengl: Implement diffuse component of HW fragment lighting.
2016-02-05 17:17:29 -05:00
bunnei
3c3e328340
pica: Implement decoding of basic fragment lighting components.
...
- Diffuse
- Distance attenuation
- float16/float20 types
- Vertex Shader 'view' output
2016-02-05 17:17:28 -05:00
bunnei
8a9194f06e
pica: Implement fragment lighting LUTs.
2016-02-05 17:17:27 -05:00
bunnei
fe094ec9a0
pica: Add decodings for distance attenuation and LUT registers.
2016-02-05 17:17:26 -05:00
bunnei
d5edd881d3
pica: Add pica_types module and move float24 definition.
2016-02-05 17:17:26 -05:00
bunnei
20336f286a
Merge pull request #1391 from tfarley/hw-fb-sync-fix
...
hwrasterizer: Use proper cached framebuffer addr/size
2016-02-05 17:03:58 -05:00
Lioncash
e9114a6976
backend: defaulted move constructor/assignment
2016-02-04 22:39:33 -05:00
LittleWhite
3a13842bb2
Add a configuration entry to enable/disable the check
2016-02-04 22:15:42 +01:00
LittleWhite
68325884e3
Add check before closure when emulation is running
...
Implement confirmation in a specific function
Fix typos and coding style
Coding convention
2016-02-04 22:15:42 +01:00
tfarley
958e67ab53
hwrasterizer: Use proper cached fb addr/size
2016-02-03 15:52:34 -05:00
bunnei
11f8d32e41
Merge pull request #1387 from lioncash/func
...
services: minor changes
2016-02-03 12:14:48 -05:00
Yuri Kunde Schlesner
e82e3f64fd
OpenGL: Downgrade GL_DEBUG_SEVERITY_NOTIFICATION to Debug logging level
...
The nVidia driver is *extremely* spammy on this category, sending a
message on every buffer or texture upload, slowing down the emulator and
making the log useless.
2016-02-02 22:44:13 -08:00
Lioncash
c731d31b7c
services: Get rid of unnecessary includes
2016-02-02 01:40:23 -05:00
Lioncash
9bcfc35ba0
services: Update function tables
2016-02-01 21:49:44 -05:00
bunnei
7a6eac7fa4
Merge pull request #1377 from MerryMage/mmio
...
Memory: Implemented MMIO
2016-01-30 19:03:33 -05:00
MerryMage
e614492dca
Memory: Implement MMIO
2016-01-30 18:41:04 +00:00
Lioncash
15d0530902
color: Make trivial helpers constexpr
2016-01-27 22:14:17 -05:00
bunnei
9259a8baa5
Merge pull request #1367 from yuriks/jit-jmp
...
Shader JIT: Fix off-by-one error when compiling JMPs
2016-01-27 09:19:28 -05:00
bunnei
70832a600e
Merge pull request #1369 from yuriks/jmpu-inverted
...
Shader: Implement "invert condition" feature of IFU instruction
2016-01-26 09:58:16 -05:00
bunnei
63bd25553b
Merge pull request #1370 from yuriks/gpureg-names
...
Debugger: Use 3dbrew names for GPU registers
2016-01-25 13:37:12 -05:00
Yuri Kunde Schlesner
bd34d04c6b
Merge pull request #1373 from lioncash/cast
...
elf: Don't cast away const
2016-01-25 00:41:32 -08:00
Lioncash
f290c57dee
elf: Don't cast away const
2016-01-25 02:36:57 -05:00
Yuri Kunde Schlesner
c45fd2c986
Merge pull request #1372 from lioncash/tie
...
key_map: Use std::tie for comparisons
2016-01-24 22:38:37 -08:00
Lioncash
fa95cad2f9
key_map: Use std::tie for comparisons
2016-01-25 01:19:21 -05:00
Lioncash
4a87f38e9c
archive_backend: Remove unnecessary const from return types
...
This doesn't return by reference so const isn't really necessary
2016-01-25 00:14:53 -05:00
Yuri Kunde Schlesner
c922298b37
Debugger: Use 3dbrew names for GPU registers
...
This list was imported from the 3dbrew wiki page and is pretty much
complete.
2016-01-24 20:29:44 -08:00
Yuri Kunde Schlesner
b4c68589f6
Shader: Implement "invert condition" feature of IFU instruction
...
If the bit 0 of the JMPU instruction is set, then the jump condition
will be inverted. That is, a jump will happen when the boolean is false
instead of when it is true.
2016-01-24 20:29:06 -08:00
Yuri Kunde Schlesner
d1096d9adc
Shader JIT: Fix off-by-one error when compiling JMPs
...
There was a mistake in the JMP code which meant that one instruction at
the destination would be skipped when the jump was taken. This commit
also changes the meaning of the culprit parameter to make it less
confusing and avoid similar mistakes in the future.
2016-01-24 02:15:56 -08:00
bunnei
4cecbb0c85
Merge pull request #1334 from tfarley/hw-depth-modifiers
...
hwrasterizer: Use depth offset
2016-01-20 22:27:33 -05:00
tfarley
ee33d54b6f
hwrasterizer: Use depth offset
2016-01-20 21:57:59 -05:00
rob turner
0d435fe4d8
ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode name
2016-01-19 18:42:16 +01:00
Lioncash
3b682a824e
command_processor: Get rid of variable shadowing
2016-01-17 02:22:51 -05:00
Subv
155cba90f3
DiskDirectory: Initialize the directory member with valid info.
2016-01-16 09:30:29 -05:00
bunnei
416bbdb33a
Merge pull request #1327 from Subv/unmap_memblock
...
HLE/SVC: Implement UnmapMemoryBlock.
2016-01-14 22:27:36 -05:00
Subv
d9c4c1622f
HLE/SVC: Implement UnmapMemoryBlock.
...
This implementation will need to be (almost completely) changed when we implement multiprocess support.
2016-01-14 11:29:19 -05:00
bunnei
7bac11c61b
Merge pull request #1196 from linkmauve/khr_debug
...
Add optional GL_KHR_debug support
2016-01-12 22:54:52 -05:00
archshift
b1ebd54cb6
Change default gameListRootDir from "" to "."
...
Not much thought went into that one...
2016-01-06 16:54:14 -08:00
bunnei
b113fd3b63
Merge pull request #1283 from Subv/soc_fixup
...
HLE/Sockets: Fixed the buffer offset in recvfrom.
2016-01-05 13:52:25 -05:00
bunnei
1214013422
Merge pull request #1330 from archshift/add-defaults
...
Gamelist: supply default settings for QSettings config
2016-01-03 11:14:44 -05:00
archshift
8e9fde2828
Gamelist: supply default settings for QSettings config
2016-01-01 13:54:06 -08:00
bunnei
b5c04be814
Merge pull request #1310 from lioncash/services
...
services: Update some function tables
2015-12-30 21:30:07 -05:00
bunnei
09d711ef82
Merge pull request #1316 from lioncash/decode
...
arm_dyncom_dec: Fix decoding of VMLS
2015-12-30 21:29:35 -05:00
Lioncash
49e3979ae6
arm_dyncom_dec: Fix decoding of VMLS
...
Previously, all VMLS variants would misdecode as CDP
(which isn't necessarily wrong in itself, however
VMLS has it's own label of execution)
2015-12-30 14:23:07 -05:00
Lioncash
58a100d3b7
services: Update some function tables
2015-12-30 11:29:21 -05:00
Lioncash
4dcc5fe6ab
video_core: Make the renderer global a unique_ptr
2015-12-30 08:52:01 -05:00
bunnei
17aef3b4ff
Merge pull request #1306 from Subv/sync
...
HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered
2015-12-29 22:36:29 -05:00
bunnei
c3ca1bae68
Merge pull request #1303 from lioncash/unique
...
core: Use unique_ptr for holding the interpreter instances
2015-12-29 22:34:32 -05:00
Subv
9aa852982f
HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered.
...
Closes #1139
2015-12-29 20:35:25 -05:00
Lioncash
d70ea5b6aa
swrasterizer: Add missing override specifier
2015-12-29 18:35:38 -05:00
Lioncash
a64af28cf2
core: Use unique_ptr for holding the interpreter instances
2015-12-29 18:03:08 -05:00
bunnei
46e5b62d14
Merge pull request #1300 from Subv/arbitrateaddress
...
SVC: Fixed ArbitrateAddress to behave as it does on hardware.
2015-12-28 22:23:51 -05:00
Lioncash
39609e9d6e
dyncom: Handle modifying the APSR via an MRC instruction
2015-12-28 07:52:04 -05:00
Subv
a2c2b28b54
SVC: Fixed ArbitrateAddress to behave as it does on hardware.
...
This was verified with hwtests that i plan to upload later on.
2015-12-27 18:44:42 -05:00
bunnei
556bd5d159
Merge pull request #1296 from lioncash/warn
...
svc: Remove superfluous printf argument
2015-12-27 16:19:48 -05:00
bunnei
63530270da
Merge pull request #1290 from LFsWang/master
...
Add a return value in ForeachDirectoryEntry
2015-12-27 16:18:43 -05:00
Lioncash
4ab2d11182
svc: Remove superfluous printf argument
2015-12-25 14:21:45 -05:00
Subv
2e01b5d390
HLE/Sockets: Fixed the buffer offset in recvfrom.
...
Closes #1277
2015-12-24 09:19:27 -05:00
Mathew Maidment
9fe5afd035
Merge pull request #1287 from lioncash/memory
...
dyncom: Minor changes
2015-12-23 04:56:04 -05:00
LFsWang
d8d9d5d916
Add missing return values in ForeachDirectoryEntry
...
ForeachDirectoryEntry is changed by #1256 ,but return value at last line
was missing.
2015-12-23 16:26:38 +08:00
Lioncash
0908f894ca
dyncom: Remove PC dispatch from several instructions
...
These instructions aren't capable of using the PC as a destination
2015-12-20 21:19:02 -05:00
Yuri Kunde Schlesner
b7109a1113
VideoCore: Sync state after changing rasterizers
...
This fixes various bugs that appear in the HW rasterizer after switching
between it and the SW one during emulation.
2015-12-20 17:37:15 -08:00
Lioncash
2f0474efa5
dyncom: Handle unprivileged load/store variants correctly
...
LDRT/LDRBT/STRBT/STRT should simulate the load or store
as if the host CPU is in user mode.
STRT is also allowed to use the PC as an operand
2015-12-19 19:05:50 -05:00
Lioncash
00ca148685
svc: Fix compilation with LOG_TRACE enabled
2015-12-12 18:14:36 -05:00
Yuri Kunde Schlesner
10a89e10ca
Merge pull request #1267 from yuriks/flipped-framebuffer
...
OpenGL: Flip framebuffers during transfer rather than when rendering
2015-12-09 20:35:15 -08:00
bunnei
0545d2f2f3
Merge pull request #1269 from Subv/triangle_fan
...
GPU/PrimitiveAssembler: Fixed drawing triangle fans.
2015-12-08 10:27:40 -05:00
Yuri Kunde Schlesner
e73547de5b
Merge pull request #1272 from yuriks/merge-rasterizer
...
VideoCore: Unify interface to OpenGL and SW rasterizers
2015-12-07 20:21:06 -08:00
Yuri Kunde Schlesner
102d39fe20
VideoCore: Unify interface to OpenGL and SW rasterizers
...
This removes explicit checks sprinkled all over the codebase to instead
just have the SW rasterizer expose an implementation with no-ops for
most operations.
2015-12-07 20:20:38 -08:00
Yuri Kunde Schlesner
192829165a
VideoCore: Rename HWRasterizer methods to be less confusing
2015-12-06 19:08:37 -08:00
Yuri Kunde Schlesner
c2526d440e
OpenGL: Rename cache functions to better match what they actually do
2015-12-06 17:02:52 -08:00
Lioncash
8813673601
dyncom: Remove static keyword from header functions
2015-12-06 15:14:51 -05:00
Lioncash
0f083bdf0f
arm_interface: Make GetNumInstructions const
2015-12-06 15:07:59 -05:00
Lioncash
dd441a3dd6
arm_interface: directly initialize class members
2015-12-06 15:07:00 -05:00
Lioncash
93cd3dccc5
dyncom: const correctness changes
2015-12-06 15:03:06 -05:00
Subv
c94a1a0375
GPU/PrimitiveAssembler: Fixed drawing triangle fans.
...
It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
2015-12-06 10:48:05 -05:00
Yuri Kunde Schlesner
30c70c905f
OpenGL: Flip framebuffers during transfer rather than when rendering
2015-12-04 22:23:39 -08:00
Yuri Kunde Schlesner
8e478d8b99
OpenGL: Add support for glFrontFace in the state tracker
2015-12-04 21:58:26 -08:00
bunnei
3a96788f4f
Merge pull request #1252 from Subv/cam
...
Services/Cam: Added new log type and camera enums from 3dbrew.
2015-12-03 22:01:45 -05:00
Yuri Kunde Schlesner
7b9807c835
PICA: Properly emulate 1-stage delay in the combiner buffer
...
This was discovered and verified by @fincs. The tev combiner buffer
actually lags behind by one stage, meaning stage 1 reads the initial
color, stage 2 reads stage 0's output, and so on.
Fixes character portraits in Fire Emblem: Awakening and world textures
in Zelda: ALBW. Closes #1140 .
2015-11-30 22:45:18 -08:00
Yuri Kunde Schlesner
5bed732b03
Kernel: Implement svcGetSystemInfo
...
This makes smealum/ctrulib@b96dd51d33 work
with Citra.
2015-11-30 19:49:44 -08:00
Lioncash
af06eaf78d
armstate: Zero out the registers on creation
...
std::array isn't always guaranteed to explicitly zero out it's contents
without an initializer list.
2015-11-29 15:16:34 -05:00
Subv
a84d5aa51e
Core/ARM11: Correct the size of the VFP register array in the ThreadContext structure.
...
The VFP registers are 64 bits each, and there are 32 of them.
2015-11-29 13:06:45 -05:00
bunnei
ae854d124f
Merge pull request #1225 from lioncash/clean
...
csnd_snd: Get rid of type punning
2015-11-28 23:32:05 -05:00
archshift
6e66a1244e
Refactor ScanDirectoryTreeAndCallback to separate errors and retvals
...
ScanDirectoryTreeAndCallback, before this change, coupled error/return
codes and actual return values (number of entries found). This caused
confusion and difficulty interpreting the precise way the function
worked.
Supersedes, and closes #1255 .
2015-11-27 13:33:38 -08:00
bunnei
4cbe626fc7
renderer_opengl: Fix uniform issues introduced with kemenaran/avoid-explicit-uniform-location.
2015-11-25 22:33:24 -05:00
Pierre de La Morinerie
1c196456f0
Use regular uniform location
...
The support for GL_ARB_explicit_uniform_location is not that good
(53% according to http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_explicit_uniform_location ).
This fix the shader compilation on Intel HD 4000 (#1222 ).
2015-11-25 11:56:11 +01:00
bunnei
56f3db72cb
Merge pull request #1248 from polaris-/add-ssl-stubs
...
Add stub functions for Initialize and GenerateRandomData in ssl:C
2015-11-24 16:15:21 -05:00
Subv
092d5b04ec
Services/Cam: Added new log type and camera enums from 3dbrew.
...
Followup to #1102
Original author @mailwl
2015-11-23 17:17:28 -05:00
polaris-
18990ff322
Add stub functions for Initialize and GenerateRandomData in ssl:C
2015-11-22 16:54:51 -05:00
bunnei
2b68cf07c7
Merge pull request #1246 from polaris-/patch-1
...
Fix read and write register blocks in gdbstub
2015-11-22 13:38:50 -05:00
polaris-
7603ea3da1
Add Initialize and GenerateRandomData stubs
2015-11-22 09:27:46 -05:00
polaris-
ec1195c252
Fix read and write register blocks in gdbstub
...
Previously, the padding wasn't correctly accounted for which caused the gdbstub to read and write everything after R15 (starting with the dummy FPA registers) incorrectly, which caused CPSR to not be handled correctly. Everything appears to be working as expected with this change.
2015-11-22 07:48:26 -05:00
bunnei
9be370a2cf
Merge pull request #1237 from Subv/ubos
...
Shaders: Use UBOs instead of individual uniforms in the generated frag shaders
2015-11-18 22:20:12 -05:00
Subv
9acdb1e7f2
FragShader: Use an UBO instead of several individual uniforms
2015-11-18 21:03:56 -05:00
wwylele
8b6d444dd1
fix failure on gcc and clang
2015-11-12 20:39:30 +02:00
wwylele
3b7cbb25e3
disable unary minus when the type is not signed
...
silent warning C4146 on msvc
2015-11-12 20:39:28 +02:00
bunnei
5f52cec725
Merge pull request #1122 from polaris-/gdbstub
...
gdbstub implementation
2015-11-11 23:21:31 -05:00
Subv
b797ef4d9a
GPU/Loaders: Log an error when a loader tries to load from a component beyond the available ones (12).
...
Related to #1170
2015-11-09 21:16:11 -05:00
polaris-
505489551d
Fix bug with reading addresses and lengths
2015-11-03 21:50:53 -05:00
polaris-
fd7f61becf
Change headers
2015-10-29 06:17:29 -04:00
Lioncash
1349faf744
csnd_snd: Get rid of type punning
2015-10-28 16:10:21 -04:00
bunnei
58857f832e
Merge pull request #1165 from esoteric-programmer/master
...
Added CSND_ExecuteType0Commands stub.
2015-10-28 15:19:13 -04:00
Matthias Ernst
5c7881c4a3
Added CSND stub.
2015-10-28 19:04:01 +01:00
bunnei
62c57400e8
Merge pull request #1208 from archshift/free-bytes
...
Implement FS_User::GetFreeBytes
2015-10-28 11:30:25 -04:00
archshift
5da25ae7d0
Implement FS_User::GetFreeBytes
2015-10-27 23:33:59 -07:00
Filiph Sandström
23e1121337
Fix copy paste
2015-10-24 13:17:04 +02:00
Emmanuel Gil Peyrot
705dd2b552
OpenGL: Log GL_KHR_debug messages we receive
...
This allows the driver to communicate errors, warnings and improvement
suggestions about our usage of the API.
2015-10-24 02:30:51 +01:00
Filiph Sandström
d248fba5e3
Fix wrong branch
2015-10-23 23:58:54 +02:00
Filiph Sandström
29077f65a2
Add GetTotalStepCount Stub
2015-10-23 23:52:13 +02:00
Filiph Sandström
bf5793c2f8
Update ptm.h
2015-10-23 23:50:51 +02:00
bunnei
5559dad63d
Merge pull request #1209 from wwylele/file-path-encoding
...
citra-qt: Change file path encoding
2015-10-22 22:41:39 -04:00
polaris-
ac325ce61a
Add some headers so TravisCI will hopefully work
2015-10-22 00:31:49 -04:00
polaris-
f4520eb266
Use CHAR_BIT instead of 8
2015-10-22 00:19:44 -04:00
polaris-
4e0ae45d99
Handle changes pointed out in comments on PR
2015-10-22 00:11:25 -04:00
bunnei
b7b11eb5e7
gl_shader_gen: Use explicit locations for vertex shader attributes.
2015-10-21 22:29:56 -04:00
bunnei
1eb1fd06d1
gl_shader_gen: Optimize code for AppendAlphaTestCondition.
...
- Also add a comment to AppendColorCombiner.
2015-10-21 22:29:56 -04:00
bunnei
7bad07b3ef
gl_rasterizer: Define enum types for each vertex texcoord attribute.
2015-10-21 21:59:47 -04:00
bunnei
4175a09b7d
gl_shader_gen: Various cleanups to shader generation.
2015-10-21 21:59:44 -04:00
bunnei
2fd9b1999f
gl_rasterizer: Use MMH3 hash for shader cache hey.
...
- Includes a check to confirm no hash collisions.
2015-10-21 21:58:59 -04:00
bunnei
61b33d7266
gl_shader_gen: Require explicit uniform locations.
...
- Fixes uniform issue on AMD.
2015-10-21 21:54:56 -04:00
bunnei
aa1dec1953
gl_shader_gen: Rename 'o' to 'attr' in vertex/fragment shaders.
2015-10-21 21:53:19 -04:00
bunnei
3ed0610e5d
gl_shader_gen: AppendAlphaModifier default should be 0.0, not vec4(0.0).
2015-10-21 21:53:18 -04:00
bunnei
e69743a943
gl_shader_gen: Fix bug where TEV stage outputs should be clamped.
2015-10-21 21:53:18 -04:00
bunnei
589d3e2e20
gl_rasterizer: Add documentation to ShaderCacheKey.
2015-10-21 21:53:17 -04:00