Commit Graph

640 Commits

Author SHA1 Message Date
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
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
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
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
a3e029fad0 Merge pull request #38 from neobrain/replace_registerset
Remove the fancy RegisterSet class introduced in 4c2bff61e.
2014-08-11 22:21:54 -04:00
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
29365e67d6 Merge pull request #40 from bentley/master
Use pthread_set_name_np() on OpenBSD.
2014-08-08 09:58:08 -04:00
dad3655a6d Use pthread_set_name_np() on OpenBSD. 2014-08-07 22:56:58 -06:00
d0c1794853 Merge pull request #34 from bunnei/gsp-command-synch
Gsp command synch
2014-08-06 18:30:01 -04:00
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
7ada2625fe GPU: Updated horizontal sync line counter to use framebuffer height. 2014-08-06 18:20:01 -04:00
d4bd2f2e5d Thread: Added more descriptive comment to WaitCurrentThread. 2014-08-06 18:19:59 -04:00
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
36fd1c169e GSP: Added reinitialization of other state objects. 2014-08-05 23:58:00 -04:00
4e9f305ed2 GSP: Removed dumb GX prefixes to functions/structs in GSP namespace.
- Various other cleanups.
2014-08-05 23:58:00 -04:00
99e404e221 GSP: Removed unnecessary GX_FinishCommand function. 2014-08-05 23:57:59 -04:00
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
c48ab0bd9e MemMap: Fixed typo with GetPointer to VRAM address. 2014-08-05 23:54:28 -04:00
2542350b85 AddressArbiter: Removed unnecessary HLE::Reschedule. 2014-08-05 23:54:28 -04:00
60078baab1 AddressArbiter: Fixed bug with break statements missing from case statements. 2014-08-05 23:54:27 -04:00
1b247b8031 SRV: Updated GetProcSemaphore to create an event instead of a mutex. 2014-08-05 23:54:27 -04:00
4d4607041b SVC: Removed ArbitrateAddress log message that spams to much. 2014-08-05 23:53:58 -04:00
7a1f813be1 Kernel: Updated Event and Mutex to specify handle that they are blocking for. 2014-08-05 20:14:51 -04:00
2003ccf09d Qt: Removed unnecessary HW::Update. 2014-08-05 20:14:49 -04:00
90aaab1df0 Merge pull request #36 from bunnei/fix-memory-unaligned-reads
Fix memory unaligned reads
2014-08-05 20:09:04 -04:00
967e5629de MemMap: Added an error for unaligned 16-bit memory reads. 2014-08-05 20:05:06 -04:00
da81742439 MemMap: Removed Read64 function.
- Unused code
- Was not correct for unaligned memory reads
2014-08-05 20:01:55 -04:00
81fa804b3c FS: Fix port name (old port name was based on an unaligned memory read). 2014-08-05 19:58:33 -04:00
2b52ec4829 MemMap: Fix Read32 for unaligned memory reads.
MemMap: Cleaned up Read32 unaligned memory access.
2014-08-05 19:58:28 -04:00
8a9f155f29 Merge pull request #35 from bunnei/skyeye-3dmoo
ARM: Synchronize Citra's SkyEye core with 3dmoo's.
2014-08-05 17:45:44 -04:00
77fc029a00 ARM: Synchronize Citra's SkyEye core with 3dmoo's. 2014-07-23 19:16:40 -04:00
866d2a62e9 Merge pull request #27 from neobrain/disassembly_view_rewrite
citra-qt: Rewrite disassembly view.
2014-07-23 10:43:46 -04:00
daa924b906 Merge pull request #31 from neobrain/gpu_framebuffer
GPU framebuffer emulation improvements
2014-07-22 19:20:57 -04:00
c131fb2c27 citra-qt: Show function names in disassembler based on bunnei's suggestion. 2014-07-23 00:58:52 +02:00
456b9feb25 Disassembler: Chose slightly lower value for chunk size. 2014-07-23 00:50:28 +02:00
9fd2537e93 Use uniform formatting when printing hexadecimal numbers. 2014-07-23 00:44:31 +02:00
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
2eb61dafc0 GPU: Clarify display transfer code.
Also makes the illogical component order more obvious.
2014-07-23 00:44:31 +02:00
61e2ffd448 GPU: Add documentation. 2014-07-23 00:44:31 +02:00
4b141791ed GSP: Add a few comments. 2014-07-23 00:44:31 +02:00
9b0d0c81a0 GSP: Clean up GX command processing a lot and treat command id as a u8 rather than a u32.
Anonymous structs are not standard C++, hence don't use them.
2014-07-23 00:44:31 +02:00
246cb75584 RegisterSet: Simplify code by using structs for register definition instead of unions. 2014-07-23 00:33:08 +02:00
75775e9ef4 GPU: Make use of RegisterSet. 2014-07-23 00:33:08 +02:00
357d893b26 GPU: Make framebuffer code format-aware. 2014-07-23 00:33:08 +02:00
c6fdeb7b23 Renderer: Fix component order in bottom framebuffer. 2014-07-23 00:33:08 +02:00
cb6f97b2eb Renderer: Respect the active_fb GPU register. 2014-07-23 00:33:08 +02:00
9b96407e8e Renderer: Add a few TODOs. 2014-07-23 00:33:08 +02:00
9d618d0b70 GPU: Interface cleanup. 2014-07-23 00:33:08 +02:00
46950ee4de GPU: Initialize GPU registers to some sensible default state. 2014-07-23 00:33:08 +02:00
baf0aa04f5 GPU: Emulate memory fills. 2014-07-23 00:33:08 +02:00