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