Commit Graph

694 Commits

Author SHA1 Message Date
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_ifs 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
bunnei
2003ccf09d Qt: Removed unnecessary HW::Update. 2014-08-05 20:14:49 -04:00
bunnei
90aaab1df0 Merge pull request #36 from bunnei/fix-memory-unaligned-reads
Fix memory unaligned reads
2014-08-05 20:09:04 -04:00
bunnei
967e5629de MemMap: Added an error for unaligned 16-bit memory reads. 2014-08-05 20:05:06 -04:00
bunnei
da81742439 MemMap: Removed Read64 function.
- Unused code
- Was not correct for unaligned memory reads
2014-08-05 20:01:55 -04:00
bunnei
81fa804b3c FS: Fix port name (old port name was based on an unaligned memory read). 2014-08-05 19:58:33 -04:00
bunnei
2b52ec4829 MemMap: Fix Read32 for unaligned memory reads.
MemMap: Cleaned up Read32 unaligned memory access.
2014-08-05 19:58:28 -04:00
bunnei
77fc029a00 ARM: Synchronize Citra's SkyEye core with 3dmoo's. 2014-07-23 19:16:40 -04:00
bunnei
866d2a62e9 Merge pull request #27 from neobrain/disassembly_view_rewrite
citra-qt: Rewrite disassembly view.
2014-07-23 10:43:46 -04:00
Tony Wasserka
c131fb2c27 citra-qt: Show function names in disassembler based on bunnei's suggestion. 2014-07-23 00:58:52 +02:00
Tony Wasserka
456b9feb25 Disassembler: Chose slightly lower value for chunk size. 2014-07-23 00:50:28 +02:00
Tony Wasserka
9fd2537e93 Use uniform formatting when printing hexadecimal numbers. 2014-07-23 00:44:31 +02:00
Tony Wasserka
afcb250b31 Fix a few warnings.
Templates shouldn't be marked as inline if they aren't defined in the header.
2014-07-23 00:44:31 +02:00
Tony Wasserka
2eb61dafc0 GPU: Clarify display transfer code.
Also makes the illogical component order more obvious.
2014-07-23 00:44:31 +02:00