Commit graph

656 commits

Author SHA1 Message Date
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
Tony Wasserka
61e2ffd448 GPU: Add documentation. 2014-07-23 00:44:31 +02:00
Tony Wasserka
4b141791ed GSP: Add a few comments. 2014-07-23 00:44:31 +02:00
Tony Wasserka
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
Tony Wasserka
246cb75584 RegisterSet: Simplify code by using structs for register definition instead of unions. 2014-07-23 00:33:08 +02:00
Tony Wasserka
75775e9ef4 GPU: Make use of RegisterSet. 2014-07-23 00:33:08 +02:00
Tony Wasserka
357d893b26 GPU: Make framebuffer code format-aware. 2014-07-23 00:33:08 +02:00
Tony Wasserka
c6fdeb7b23 Renderer: Fix component order in bottom framebuffer. 2014-07-23 00:33:08 +02:00
Tony Wasserka
cb6f97b2eb Renderer: Respect the active_fb GPU register. 2014-07-23 00:33:08 +02:00
Tony Wasserka
9b96407e8e Renderer: Add a few TODOs. 2014-07-23 00:33:08 +02:00
Tony Wasserka
9d618d0b70 GPU: Interface cleanup. 2014-07-23 00:33:08 +02:00
Tony Wasserka
46950ee4de GPU: Initialize GPU registers to some sensible default state. 2014-07-23 00:33:08 +02:00
Tony Wasserka
baf0aa04f5 GPU: Emulate memory fills. 2014-07-23 00:33:08 +02:00
Tony Wasserka
0b4055c152 GPU: Add proper framebuffer register handling. 2014-07-23 00:33:08 +02:00
Tony Wasserka
bbc6f314eb GPU: Properly implement display transfers. 2014-07-23 00:33:08 +02:00
Tony Wasserka
16bbc4f81b GPU: Add display transfer configuration. 2014-07-23 00:33:08 +02:00
Tony Wasserka
ec9511e1db GSP: HLE GXCommandId::SET_DISPLAY_TRANSFER and GXCommandId::SET_TEXTURE_COPY. 2014-07-23 00:33:08 +02:00
Tony Wasserka
cb8f49b7ea GSP: Implement ReadHWRegs and WriteHWRegs properly. 2014-07-23 00:33:05 +02:00
Tony Wasserka
994d29f416 Use a more compatible choice of initial framebuffer addresses. 2014-07-22 22:27:27 +02:00
Tony Wasserka
a4d89edd9b GPU debugger: Don't keep track of debugging data if no debugger views are active. 2014-07-22 22:27:27 +02:00
bunnei
97d47d55f3 Merge pull request #32 from yuriks/master
[build] Search for the git binary in the default msysgit install dir
2014-07-21 10:51:51 -04:00
Lioncash
8761461003 core: Kill off type redefenitions in armdefs.h 2014-07-19 22:02:21 -04:00
Yuri Kunde Schlesner
78eb8ba844 [build] Search for the git binary in the default msysgit install dir
The Git for Windows installer doesn't add the Git binaries to the path
by default. (Due to risk of conflicts with built-in windows commands.)
Unless you have configured your system specially this causes the
scm_rev_gen.js script to fail to find Git.  Added more paths to the
script so that it searches in the default msysgit installation
directory, eliminating the need to set the PATH for most environments.
2014-07-19 17:16:05 -03:00
Tony Wasserka
0da8e2eacc BitField: Cast enum values to proper integer type. 2014-07-16 12:47:33 +02:00
Tony Wasserka
cd1d5786d9 BitField: Add a static_assert.
Being able to store BitField within unions requires BitField to be of standard layout, which in turn is only given if the underlying type is also has standard layout.
2014-07-16 12:46:37 +02:00
Tony Wasserka
15ab5382a5 BitField: Delete copy assignment to prevent obscure bugs.
Cf. https://github.com/dolphin-emu/dolphin/pull/483
2014-07-16 09:08:19 +02:00
Tony Wasserka
47a001722d BitField: Add an explicit evaluation method.
Sometimes it can be beneficial to use this in places where an explicit cast needs to happen otherwise. By using the evaluation method, it's not necessary anymore to explicitly write the underlying type in this case.
2014-07-16 09:05:29 +02:00
bunnei
3eb89f3e98 Kernel: Added preliminary support for address arbiters.
AddressArbiter: Added documentation comment, fixed whitespace issue.

AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear.

SVC: Removed trailing whitespace.
2014-07-08 18:46:38 -04:00
bunnei
ba840d3200 Thread: Added functions to resume threads from address arbitration.
Thread: Cleaned up arbitrate address functions.

Thread: Cleaned up ArbitrateAllThreads function.
2014-07-08 18:46:15 -04:00
bunnei
59f2750482 function_wrappers: Fixed incorrect wrapper, added another. 2014-07-07 22:13:40 -04:00
bunnei
7ff92c36ed SharedMemory: Updated MapSharedMemory to use an enum for permissions.
- Also added some safety checks to MapSharedMemory.
2014-07-05 10:24:54 -04:00
bunnei
882dc07929 Memory: Removed deprecated MapBlock_Shared function. 2014-07-05 10:24:54 -04:00
bunnei
7b7a435094 GSP: Fixed to use real shared memory object, various cleanups.
- Previously, used a hard-coded shared memory handle of 0x10002000 (as used by libctru homebrew)

GSP: Added name for shared memory.

GSP: Cleaned up assertion message.
2014-07-05 10:24:52 -04:00
bunnei
e547128185 Kernel: Added support for shared memory objects.
SharedMemory: Added optional name field for tracking known objects.
2014-07-05 01:21:05 -04:00
bunnei
3013015a0c mem_map: Updated interface to expose template functions to other modules. 2014-07-04 23:46:16 -04:00
bunnei
b70c4fb48e NCCH: Updated ExeFS memory allocation to be safer. 2014-07-04 20:37:51 -04:00
bunnei
542700ccb7 Archive: Added Init/Shutdown methods to reset kernel archive state. 2014-07-04 20:37:51 -04:00
bunnei
1099d83455 Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as "override". 2014-07-04 20:37:50 -04:00
bunnei
2d734bb6c5 Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS classes as "final" 2014-07-04 20:37:49 -04:00