Lioncash
9ed3488925
arm_disasm: Show conditional code for BKPT instructions.
...
Changed cond_to_str to take a uint32, since unsigned numbers are only ever passed to it, and this can be a source of warnings for some compilers (also indexing an array without bounds checking a signed number is kind of iffy).
2015-02-27 21:59:30 -05:00
Lioncash
1a70782cda
arm_disasm: Remove unused variable
...
Also declared an array as static, as it's only used in this translation unit.
2015-02-27 21:31:36 -05:00
Lioncash
99ff8bbb0c
result: Make comparison operators take references
...
It's unnecessary to make copies for simple comparisons like this.
2015-02-27 21:16:21 -05:00
bunnei
c9ef377afa
Merge pull request #599 from Subv/morton
...
GPU: Implemented bits 3 and 1 from the display transfer flags.
2015-02-26 22:40:27 -05:00
Subv
c564c21668
GPU: Implemented bits 3 and 1 from the display transfer flags.
...
Bit 3 is used to specify a raw copy, where no processing is done to the data, seems to behave exactly as a DMA.
Bit 1 is used to specify whether to convert from a tiled format to a linear format or viceversa.
2015-02-26 21:17:14 -05:00
Lioncash
8812d2fbdb
arm: The CP15 Main ID register is not writeable
2015-02-26 09:28:31 -05:00
Yuri Kunde Schlesner
ea3c99f3a2
Video core: Fix A4 texture decoding
...
It was trying to take the LSB from `coarse_x`, which would always be 0
and thus would always return the same texel from each byte. To add
insult to the injury, the conditional was actually the wrong way around
too.
Fixes blocky text in OoT.
2015-02-25 23:05:14 -03:00
Yuri Kunde Schlesner
1b5ee96797
Merge pull request #604 from Subv/arc_ssd
...
Archives: Properly implemented the SystemSaveData archive.
2015-02-25 22:35:55 -03:00
Yuri Kunde Schlesner
3c50da6fc0
Video core: Fix pixelation/blockiness in textures.
...
This was caused during morton decoding by me not masking the bits of
each coordinate before merging them, so the bits from x could set bits
in y if it was >255.
2015-02-25 22:16:01 -03:00
Subv
9db5c9b6dc
Archives: Properly implemented the SystemSaveData archive.
...
Ported to the new factory pattern we have for archives.
2015-02-25 19:37:10 -05:00
bunnei
f7c3193fec
Merge pull request #575 from linkmauve/xdg
...
Switch to the XDG Base Directory Specification for directory selection
2015-02-25 13:58:25 -05:00
Lioncash
1bb400be1b
arm: Remove unnecessary booleans
...
We don't care about any of these.
2015-02-25 10:55:50 -05:00
Emmanuel Gil Peyrot
129ad721c1
Common: Switch to the XDG Base Directory Specification for directory selection.
...
This allows for easily movable and independent configuration and data directories, using standardized paths.
2015-02-25 05:27:13 +01:00
bunnei
40d1f9045a
Merge pull request #601 from Subv/y2r
...
Services: Implemented Y2R_U::GetTransferEndEvent
2015-02-24 22:35:05 -05:00
bunnei
ed255ebaec
Rasterizer: Add support for RGBA4 framebuffer format.
2015-02-24 19:58:33 -05:00
Subv
ef66feaeba
Services: Implemented Y2R_U::GetTransferEndEvent
...
Aero Porter was throwing an "Invalid Handle" fatal error without this.
2015-02-24 08:28:36 -05:00
bunnei
3700263f71
Merge pull request #595 from linkmauve/new-3ds-input
...
Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one.
2015-02-23 21:13:29 -05:00
bunnei
50a0c4f14f
Merge pull request #581 from archshift/tfe
...
Added information reporting from ThrowFatalError
2015-02-23 01:23:15 -05:00
Subv
b1284222f2
GPU: Fixed RGBA8 as output format in a display transfer.
...
Verified with hwtests
2015-02-22 15:22:14 -05:00
archshift
0420a4d1de
Added information reporting from ThrowFatalError
...
This was RE'd from the errdisp applet.
2015-02-22 12:19:30 -08:00
Emmanuel Gil Peyrot
aa64f69af0
Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one.
2015-02-22 21:09:08 +01:00
bunnei
89a71eb6a4
Merge pull request #471 from archshift/pp3ports3
...
GPU: Add support for more framebuffer formats in display transfers.
2015-02-22 14:54:56 -05:00
Tony Wasserka
23c6764b2b
GPU: Add support for more framebuffer formats in display transfers.
2015-02-22 11:48:02 -08:00
bunnei
733c19ddd3
Rasterize with the correct color component order.
...
- Fixes a regression with #594 .
2015-02-22 13:57:24 -05:00
bunnei
dfe807b2cd
Merge pull request #596 from kevinhartman/unaligned-cleanup
...
Clean up unaligned 32-bit memory reads
2015-02-22 12:48:28 -05:00
bunnei
d120757f32
Merge pull request #594 from Subv/display_transfer
...
GPU: Fixed the RGBA8 input format and RGB8 output format
2015-02-22 12:44:57 -05:00
Tony Wasserka
34f21334ad
Merge pull request #593 from Subv/search_problem
...
Pica/VertexShader: Fixed LOOP with more than one iteration.
2015-02-22 15:51:12 +01:00
Kevin Hartman
05c098a9e7
Cleaned up unaligned access.
2015-02-21 17:25:31 -08:00
Subv
fbbfb52a2c
GPU: Fixed the RGBA8 input format and RGB8 output format
...
in Display Transfers, tested with hwtests.
2015-02-21 18:43:53 -05:00
Subv
9a03e9c61d
Pica/VertexShader: Fixed LOOP with more than one iteration.
...
Previously it wouldn't jump back to the start of the loop code once it reached the end of the block.
Fixes the texture problems in a lot of games.
2015-02-21 12:52:21 -05:00
Kevin Hartman
a6fdb8f217
Fix error message for bad config block request.
2015-02-20 21:47:58 -08:00
Emmanuel Gil Peyrot
54d6f6c82b
Common: Change names containing “Dolphin” or “PPSSPP” to something more generic.
2015-02-20 16:54:10 +00:00
bunnei
5f9939070e
Merge pull request #588 from archshift/somebranch
...
Sweeping cleanup of Common
2015-02-20 11:41:30 -05:00
archshift
4fb75d220a
Misc cleanup of common and related functions
2015-02-19 22:26:25 -08:00
archshift
302f0b32f5
Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h
2015-02-19 22:26:25 -08:00
bunnei
c7d1480ece
Merge pull request #587 from archshift/assert
...
Convert a few C stdlib asserts to Citra's own asserts
2015-02-19 13:45:58 -05:00
archshift
49f94b82b4
Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin
2015-02-18 23:23:18 -08:00
archshift
961f65d1fe
Remove redundant utf8 compilation unit that was leftover from Dolphin
2015-02-18 22:34:32 -08:00
archshift
9f7f1a2272
Remove useless extended_trace compilation unit that was leftover from Dolphin
2015-02-18 22:30:31 -08:00
archshift
5efd149ad5
Remove the useless msg_handler compilation unit that was left over from Dolphin
2015-02-18 22:26:22 -08:00
archshift
3c48697ea3
Convert a few C stdlib asserts to Citra's own asserts
2015-02-18 21:52:36 -08:00
Subv
5410367ebf
Rasterizer: Fixed a warning in GetWrappedTexCoord.
...
Redeclaring the variable inside the switch was causing weird behavior.
2015-02-18 23:52:47 -05:00
bunnei
ec8f2210e3
Merge pull request #580 from lioncash/emplace
...
core/video_core: Use in-place construction where possible
2015-02-18 17:36:34 -05:00
Tony Wasserka
2eee3a87f9
Pica/Rasterizer: Replace exit() calls with UNIMPLEMENTED().
2015-02-18 14:52:27 +01:00
Tony Wasserka
6e5a903286
Pica/Rasterizer: Make some local lambdas static.
2015-02-18 14:50:28 +01:00
Tony Wasserka
1561204342
Pica/BlendUnit: Implement separate color/alpha blend equations.
2015-02-18 14:50:28 +01:00
Tony Wasserka
81ebb4d682
Pica/TextureEnvironment: Add a note.
2015-02-18 14:50:28 +01:00
Tony Wasserka
e11fb96408
Pica/TextureEnvironment: Treat texture combiner source 1 as the PrimaryColor.
...
Not really sure where the difference is, but some applications seem to use this 1:1 the same way...
2015-02-18 14:50:28 +01:00
Tony Wasserka
04cd06d5c2
Pica/TextureEnvironment: Add support for the MAD-like texture combiners and clean up texture environment logic.
2015-02-18 14:50:28 +01:00
Tony Wasserka
087edcfbec
Pica/OutputMerger: Fix flipped framebuffers.
2015-02-18 14:50:28 +01:00
Tony Wasserka
6ca752ccbc
Pica/TextureUnit: Implement mirrored repeating texture wrapping.
2015-02-18 14:50:28 +01:00
Tony Wasserka
8bd7a896ea
Pica: Fix a bug in the register definitions, relating to texture wrapping.
2015-02-18 14:50:28 +01:00
Tony Wasserka
aaf30ca4ee
Pica/OutputMerger: Implement color format checking.
2015-02-18 14:50:28 +01:00
Tony Wasserka
3b5710bae6
Pica/Rasterizer: Rasterize actual pixel centers instead of pixel corners.
2015-02-18 14:50:28 +01:00
Tony Wasserka
3cb22d31a7
Pica/Rasterizer: Fix garbage pixels at triangle borders.
2015-02-18 14:50:28 +01:00
Tony Wasserka
638b370fb5
Pica/Rasterizer: Clean up and fix backface culling.
2015-02-18 14:50:28 +01:00
Tony Wasserka
365236fa4c
Pica: Cleanup clipping code and change screenspace z to range from -1..0.
...
The change in depth range seems to reflect better to what applications are expecting, and makes for cleaner code overall (hence is more likely to reflect hardware behavior).
2015-02-18 14:50:03 +01:00
Tony Wasserka
70a764d992
Pica/VertexShader: Implement the LOOP instruction.
2015-02-18 14:02:59 +01:00
Tony Wasserka
6c26ec72a5
Pica/CommandProcessor: Properly implement shader load destination offset registers.
2015-02-18 14:02:59 +01:00
Tony Wasserka
67120270f2
Pica/CommandProcessor: Work around initialized vertex attributes some more.
2015-02-18 14:02:59 +01:00
Tony Wasserka
0da6a7e234
GPU: Properly implement memory fills.
2015-02-18 14:02:58 +01:00
bunnei
745b42d236
Merge pull request #570 from purpasmart96/config_mem
...
ConfigMem: Clean up the Config memory to be more like the shared page
2015-02-18 00:12:37 -05:00
bunnei
8e731b129d
Merge pull request #582 from lioncash/warnings
...
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 23:57:54 -05:00
bunnei
60f9cd6a4a
Merge pull request #579 from lioncash/bkpt
...
dyncom: Support conditional BKPT instructions
2015-02-17 23:54:01 -05:00
Yuri Kunde Schlesner
714d507938
Asserts: Use lambdas to keep assertion code away from the main code path
2015-02-18 02:19:30 -02:00
Lioncash
4f910bb1a1
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 18:53:50 -05:00
Lioncash
5d2366e1e9
core/video_core: Use in-place construction where possible
2015-02-17 17:57:23 -05:00
Lioncash
a7120662e6
dyncom: Support conditional BKPT instructions
2015-02-17 01:37:22 -05:00
Tony Wasserka
a78b8b1bc4
Merge pull request #578 from linkmauve/math-typo
...
VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead
2015-02-17 00:30:22 +01:00
purpasmart96
c3c309f33d
ConfigMem: Clean up the Config memory to be more like the shared page and moved
...
the helper macro for padding to common_funcs.h
2015-02-16 15:12:05 -08:00
Emmanuel Gil Peyrot
8a1c08a0af
VideoCore: Fix a typo in Vec4 MakeVec(T, Vec3<T>), where the second argument was Vec2<T> instead.
2015-02-16 21:51:37 +00:00
Subv
cb3d254517
Services: Fixed "Tried to connect to named port err:f".
...
err:f is a named port, not a service
2015-02-16 15:24:15 -05:00
bunnei
2b2b343ce0
Merge pull request #574 from lioncash/warn
...
vfpdouble: Use %p for printing pointer addresses.
2015-02-16 09:45:43 -05:00
Lioncash
012d1e32ad
dyncom: Actually set the destination register for USAD8/USADA8.
...
Idiotville: Population: 1 - Inhabitant name: Lioncash
2015-02-16 01:03:01 -05:00
Lioncash
f0c4bd629c
vfpdouble: Use %p for printing pointer addresses.
2015-02-15 17:11:02 -05:00
bunnei
20dc07721c
Merge pull request #539 from linkmauve/framebuffer-formats
...
Framebuffer formats
2015-02-15 10:00:48 -05:00
Emmanuel Gil Peyrot
c439b3074d
video_core: Implement the remaining framebuffer formats in the OpenGL renderer.
2015-02-15 14:08:12 +00:00
Lioncash
473afa4530
arm: Set the A bit on reset.
...
This enum value is ORed against in ARMul_Reset (and used to refer to all interrupt bits in the CPSR). So simply updating this is enough.
2015-02-15 00:35:50 -05:00
bunnei
12181c8a64
Merge pull request #529 from Subv/master
...
Build: Fixed some warnings
2015-02-14 15:50:26 -05:00
Lioncash
0c6434c379
core: Apply static to local functions
2015-02-13 10:48:32 -05:00
Lioncash
a75e1ff6e6
arm: General cleanup
...
- Remove several typedefs for ARMul_State.
- Remove unused functions
- Remove unused/unnecessary headers
- Removed unused enums, etc.
2015-02-13 09:11:12 -05:00
bunnei
9b69079c83
Merge pull request #569 from lioncash/modeswitch
...
Dyncom: Correctly set the ARM modes on dyncom initialization.
2015-02-12 23:18:40 -05:00
Lioncash
b7fac494cd
dyncom: Switch the app and system cores into the correct mode at initialization
2015-02-12 21:54:28 -05:00
Lioncash
c3211c9c80
dyncom: Clean up the constructor
...
Some function calls aren't necessary and would be handled by regular initialization routines.
2015-02-12 21:50:51 -05:00
Lioncash
3c474a7d31
backend: Add logging subentry for ldr
...
Fixes an assertion upon executing citra in debug mode.
2015-02-12 20:46:13 -05:00
bunnei
befa556b78
Merge pull request #567 from lioncash/warn
...
dyncom: Remove warning for SXTAH
2015-02-12 20:14:10 -05:00
Lioncash
df9e0c0f81
dyncom: Remove warning for SXTAH
...
This is tested to work correctly.
2015-02-12 20:11:20 -05:00
bunnei
f7cde47911
Merge pull request #561 from Alegend45/master
...
Fix Min and Max blend equations
2015-02-12 19:59:10 -05:00
Lioncash
e3f5c6366c
arm: Remove ARMul_EmulateInit
...
This was only used for armemu, which has since been removed. Removed components related to this as well.
2015-02-12 11:30:28 -05:00
Subv
8e2b248e05
Build: Fixed some warnings
2015-02-12 09:25:35 -05:00
Lioncash
f48b0100a6
armdefs: Remove unnecessary extern C
2015-02-12 08:29:57 -05:00
Darius Goad
5db62cc758
Fix Min and Max blend equations
2015-02-11 15:33:44 -06:00
Tony Wasserka
f990728ad4
Merge pull request #384 from neobrain/vertex_shader_debugger
...
Vertex shader debugger
2015-02-11 22:17:46 +01:00
Kevin Hartman
a56f3f290e
Implemented WriteHWRegsWithMask for GSP.
2015-02-11 11:03:17 -08:00
Lioncash
49a22acd02
arm: Remove ARM26 support.
...
This will never be used. 32-bit is the norm.
2015-02-11 12:23:21 -05:00
bunnei
c51b23b052
Merge pull request #559 from lioncash/clean
...
arm: Some cleanup. Also fixed the initial ARM mode that is emulated.
2015-02-11 12:02:35 -05:00
Lioncash
c94c41f95a
arm: Get rid of some magic constants. Specify proper ARM mode.
...
Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
2015-02-11 10:49:55 -05:00
Lioncash
93cd199633
arm: Change some more constants into enums
2015-02-11 10:14:20 -05:00
Tony Wasserka
12a5cd1d65
citra-qt: Add a vertex shader debugger.
2015-02-11 15:40:45 +01:00
Tony Wasserka
3f649dc9b8
Pica/DebugUtils: Factor out BreakPointObserverDock into its own file.
2015-02-11 15:40:04 +01:00
archshift
ef24e72b26
Asserts: break/crash program, fit to style guide; log.h->assert.h
...
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)
Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00
bunnei
168eb27aee
GSP: Fixed typo in SignalInterrupt
2015-02-10 19:57:48 -05:00
bunnei
76e7d41f88
Merge pull request #552 from bunnei/setbufferswap-fix
...
GSP SetBufferSwap fix
2015-02-10 19:21:48 -05:00
bunnei
9eae2400c0
GSP: Call SetBufferSwap for each screen on corresponding signal interrupt.
2015-02-10 19:05:56 -05:00
bunnei
ca22ee3239
Merge pull request #526 from purpasmart96/citra_stubs
...
Services: Stub some functions
2015-02-10 18:39:37 -05:00
bunnei
5b735bdeea
Merge pull request #556 from lioncash/clean
...
arm: Remove TRUE/FALSE defines
2015-02-10 18:28:30 -05:00
bunnei
8f35772bd7
Merge pull request #555 from lioncash/lut
...
arm_dyncom_thumb: Make lookup tables static
2015-02-10 18:27:47 -05:00
Lioncash
088fab743f
arm: Remove TRUE/FALSE defines
...
- Removed the Debug parameter from ARMul_State since it isn't used.
- Changed ARMul_CoProInit to a void function. It always returned true.
2015-02-10 13:09:41 -05:00
Subv
0d2b6dd656
PTM: Fixed a problem with the gamecoin PTM file.
2015-02-10 13:43:46 -02:00
Subv
1bbf0567b1
Archives: Made the Format function more generic.
2015-02-10 13:43:46 -02:00
Subv
071663e074
Archives: Expose the File and Directory classes to HLE
2015-02-10 13:43:45 -02:00
Subv
ca1a87ef7d
ResultVal: Fixed compilation when reassigning a ResultVal.
2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner
3f1a3952d7
FS: Allow multiple instances of the same archive type to be open at once
2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner
4468625080
FS: Get rid of completely useless Archive class
2015-02-10 13:43:43 -02:00
Lioncash
8d2fb3bb2b
arm_dyncom_thumb: Make lookup tables static
...
These don't need to be recreated all the time.
2015-02-10 10:42:09 -05:00
bunnei
67db6aa4ce
Merge pull request #553 from lioncash/denorm
...
vfp: Normalize accumulator for multiply accumulate instructions
2015-02-10 10:09:45 -05:00
Lioncash
3eccc66abf
dyncom: Add more regs to MCR/MRC
...
Adds the registers that were left out of some coprocessor ranges.
2015-02-10 09:34:42 -05:00
Lioncash
a86d5e2752
vfp: Normalize accumulator for multiply accumulate instructions
2015-02-10 08:16:26 -05:00
Tony Wasserka
eb83ac48aa
Merge pull request #543 from Alegend45/master
...
Add more blend equations from 3dbrew
2015-02-10 13:30:29 +01:00
Kevin Hartman
5fcbfc06eb
Scheduler refactor Pt. 1
...
* Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid
for a thread at any given point in the system.
* Removes dead code from thread.cpp.
* Moves the implementation of resetting a ThreadContext to the corresponding core's implementation.
Other changes:
* Fixed comments in arm interfaces.
* Updated comments in thread.cpp
* Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp.
* Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation.
2015-02-09 21:47:12 -08:00
bunnei
848795f383
Merge pull request #551 from bunnei/mutex-fixes
...
Mutex/synch fixes
2015-02-09 22:17:20 -05:00
bunnei
1b0bf00cbc
Mutex: Locks should be recursive.
2015-02-09 22:06:09 -05:00
bunnei
caa58acc84
WaitSynch: Always reschedule (verified behavior on hw).
2015-02-09 22:05:39 -05:00
Darius Goad
536958fb29
Add more blend equations from 3dbrew
2015-02-09 20:41:06 -06:00
Lioncash
53fa04f326
vfpdouble: Fix the FTOUI NaN sign setting
...
This was fixed for vfpsingle, but not vfpdouble
2015-02-09 17:18:29 -05:00
Lioncash
a734e9fdca
Throw more unused/unnecessary VFP code out
2015-02-09 11:54:39 -05:00
Lioncash
ca7babe062
vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuff
2015-02-09 09:53:17 -05:00
Lioncash
d832c48864
vfp_helper: Normalize tabs to spaces
2015-02-09 09:32:56 -05:00
purpasmart96
60ce36f721
Services: Stub some functions
2015-02-07 17:34:59 -08:00
chinhodado
34cce345a7
Fix a wrong file name in a comment
2015-02-07 00:37:06 -05:00
Lioncash
1ecd75ea1a
vfp_helper: Remove unnecessary extern C blocks
2015-02-06 14:52:29 -05:00
Lioncash
3e576219c4
vfp: Move FPSID, FPEXC, and FPSCR values over to enums.
...
Also got rid of duplicate definitions of some of these values.
2015-02-06 14:52:05 -05:00
Tony Wasserka
1576a318f2
Merge pull request #535 from bunnei/color-modifiers
...
Implement color/alpha modifiers
2015-02-05 16:07:37 +01:00
bunnei
1eb591d6fd
Rasterizer: Implement the other color and alpha modifiers.
2015-02-04 22:15:51 -05:00
bunnei
8c93a28fed
VideoCore: Added same-component swizzlers to math utility functions.
2015-02-04 22:15:44 -05:00
bunnei
7f900ac68e
Merge pull request #537 from lioncash/vfp
...
vfp: Fix VCVT
2015-02-04 14:58:36 -05:00
bunnei
4d36a6a255
Merge pull request #536 from lioncash/dead
...
vfp: Throw out unused code
2015-02-04 14:57:00 -05:00
Lioncash
82e8f25fe7
vfp: Fix VCVT
...
These variants exclusively read from the single precision regs and write to double-precision registers
Fixes issues where converted values would be way off from what they should be due to the results being stored in the wrong registers.
2015-02-04 14:06:10 -05:00
Lioncash
7ecedfb970
vfp: Throw out unused code
2015-02-04 13:11:03 -05:00
Tony Wasserka
a45175ee0d
Merge pull request #534 from neobrain/disassembler-improvements
...
Disassembler improvements
2015-02-03 22:12:17 +01:00
Tony Wasserka
5a90420c0b
citra-qt: Fix horrible scrolling responsiveness in disassembler by giving the uniformRowHeight hint.
2015-02-03 21:11:50 +01:00
Tony Wasserka
79713d500b
citra-qt: Fix a crash when double-clicking a disassembler list item.
2015-02-03 21:11:49 +01:00
Lioncash
3a5a39c6aa
dyncom: Remove more unnecessary code
2015-02-03 14:05:53 -05:00
Lioncash
676daef3c7
core: Fix some warnings on OSX
2015-02-03 08:14:42 -05:00
Yuri Kunde Schlesner
88a4a808c6
Kernel: Stop creating useless Handles during object creation
...
They're finally unnecessary, and will stop cluttering the application's
handle table.
2015-02-02 15:37:09 -02:00
Yuri Kunde Schlesner
52f58e64ef
Kernel: Make WaitObjects share ownership of Threads waiting on them
...
During normal operation, a thread waiting on an WaitObject and the
object hold mutual references to each other for the duration of the
wait.
If a process is forcefully terminated (The CTR kernel has a SVC to do
this, TerminateProcess, though no equivalent exists for threads.) its
threads would also be stopped and destroyed, leaving dangling pointers
in the WaitObjects.
The solution is to simply have the Thread remove itself from WaitObjects
when it is stopped. The vector of Threads in WaitObject has also been
changed to hold SharedPtrs, just in case. (Better to have a reference
cycle than a crash.)
2015-02-02 15:37:08 -02:00
Yuri Kunde Schlesner
7725256f64
Explicitly instantiate constructors/destructors for Kernel objects
...
This should speed up compile times a bit, as well as enable more liberal
use of forward declarations. (Due to SharedPtr not trying to emit the
destructor anymore.)
2015-02-02 15:37:07 -02:00
Yuri Kunde Schlesner
4e84df8be3
Mutex: Replace g_mutex_held_locks with a set inside Thread
2015-02-02 15:37:06 -02:00
Yuri Kunde Schlesner
0f69668fc6
HID: Fix crash when pressing a key when the emulator is stopped
2015-02-02 15:37:05 -02:00
Yuri Kunde Schlesner
c4208c1171
SVC: Enable CloseHandle, clean up DuplicateHandle
2015-02-02 15:37:04 -02:00