Commit Graph

16616 Commits

Author SHA1 Message Date
degasus ca10cf5afe PPCAnalyst: Update comments 2017-01-28 03:03:04 +01:00
degasus 4855764345 JitArm64: Implement leaf inlining.
There is no BLR stack, so this is quite trivial.
2017-01-28 02:48:56 +01:00
degasus f31b25fe39 Jit64: Enable branch following. 2017-01-28 02:48:56 +01:00
degasus 3787af9ee9 CommandProcessor: Limit scope of ugly SCPFifoStruct.
It's only used as an interface between two classes. So no need to declare
it in the backend export header.
2017-01-27 19:04:56 +01:00
Lioncash d680d1f81e MMIO: Get rid of a TODO regarding tuples 2017-01-27 02:54:07 -05:00
Markus Wick f37c5f1f1c Merge pull request #4766 from lioncash/dspemitter
DSPCore: Move CompileCurrent to the DSPEmitter
2017-01-27 08:09:52 +01:00
degasus ba1decf7bc PixelEngine: Use a DirectRead for the token.
No need to call a std::function, and a few games poll this value very often.
2017-01-27 07:49:47 +01:00
Lioncash 4003360bcb DSPCore: Move CompileCurrent to the DSPEmitter
This is only ever used here.
2017-01-27 01:36:29 -05:00
Matthew Parlane 017e8050b6 Merge pull request #4746 from JosJuice/volumedirectory-sort-case-insensitive
VolumeDirectory: Use case-insensitive comparison when sorting
2017-01-27 18:23:14 +13:00
Matthew Parlane 3d5821a9a7 Merge pull request #4745 from JosJuice/always-valid-region
ConfigManager: Always set a valid m_region
2017-01-27 18:18:37 +13:00
Matthew Parlane 06728ad687 Merge pull request #4757 from lioncash/dsptables
DSPTables: Hide remaining opcode tables
2017-01-27 18:17:36 +13:00
Matthew Parlane a0e598be10 Merge pull request #4763 from lioncash/dspemitter
DSPEmitter: Make most public variables private
2017-01-27 18:10:02 +13:00
Matthew Parlane 64b0773fc0 Merge pull request #4651 from leoetlino/bt-pass-savestates
Fix savestates in Bluetooth passthrough mode
2017-01-27 18:07:33 +13:00
Lioncash be52fcf651 DSPEmitter: Make most public variables private
Dispatchers and m_unresolved_jumps is utilized in code outside of the
emitter, so these are left as is for the time being.
2017-01-26 20:32:57 -05:00
Lioncash 970d969f63 DSPEmitter: Make conditional JIT functions in DSPJitBranch part of the emitter
These quite clearly have a dependency on the emitter itself, so these
should be a part of the emitter itself.

The template function can be modified to just simply take functions as a
parameter.
2017-01-26 20:32:34 -05:00
Lioncash 16aac00b8a DSPEmitter: Move private variables below function declarations 2017-01-26 19:25:49 -05:00
Lioncash ef52451954 DSPJitRegCache: Convert DSPJitSignExtend into an enum class
Prevents general names like SIGN, ZERO, and NONE from polluting the
surrounding namespace.
2017-01-26 18:33:50 -05:00
Lioncash bdd7034fcb DSPJitRegCache: Move allocation order array to the cpp file
As it's a private static implementation detail that doesn't rely on any
other internals of DSPJitRegCache, it can be hidden.
2017-01-26 17:12:55 -05:00
Lioncash 8f5ce50a25 DSPAssembler: Migrate VerifyParams over to an OpcodeType param instead of bool 2017-01-26 05:17:05 -05:00
Lioncash 6cb6707a4e DSPTables: Hide remaining exposed opcode tables
All opcode tables are now internal.
2017-01-26 05:17:01 -05:00
Markus Wick 0a07df13d2 Merge pull request #4753 from lioncash/dspjit
DSPEmitter: Amend member variable naming
2017-01-26 10:33:03 +01:00
Lioncash ac973e61bb ES: Separate behavior of IOCtlV into separate functions
This function is exceptionally large. Everything within a switch like this
also makes it quite error prone. Separating the functions out makes it
easier to change a certain request implementation as well as improving
code locality.
2017-01-25 19:39:22 -05:00
Lioncash 3c88c248dd ES: Convert typedef into a using alias 2017-01-25 19:31:13 -05:00
Lioncash 3cf3b50ab0 ES: Minor header reorganization
Places elements in the order:
- Structs/Enums definitions
- Functions
- Member variables
2017-01-25 19:31:13 -05:00
Lioncash f4415dd99c DSPEmitter: Amend member variable naming
Amends the variable names to follow our coding style.
2017-01-25 19:26:57 -05:00
Lioncash c2e3bd8d2f DSPAssembler: Amend printf specifiers in ShowError
code_line is a u32.
2017-01-25 17:20:25 -05:00
Lioncash 992b7f7ac0 DSPAssembler: Replace char buffer + sprintf with StringFromFormat 2017-01-25 17:20:21 -05:00
booto c889c81d8f 58 is 0x3a in hex, not 0x31 2017-01-26 01:52:10 +08:00
Léo Lam 0df2ca702b IOS: Get rid of static state in BT passthrough 2017-01-25 15:31:28 +01:00
Léo Lam 18957bdb0a IOS: Fix savestates for Bluetooth passthrough
This fixes savestates when using Bluetooth passthrough by keeping track
of pending transfer commands and discarding them on state load, so that
the emulated software receives a reply to IOS requests as expected.

With this change, savestates in BT passthrough should work as long as
no Wiimote is connected when creating the savestate and when
restoring it. Yes, I know this is an important limitation -- but
that is probably the best we can do, and it's still better than
completely broken savestates.
2017-01-25 15:31:28 +01:00
Florent Castelli 103361c846 cmake: Change endforeach(.*) to endforeach() 2017-01-25 15:07:32 +01:00
Florent Castelli 87380c1c2c cmake: Change endif(.*) to endif() 2017-01-25 15:07:32 +01:00
JosJuice 104faa9fb3 VolumeDirectory: Use case-insensitive comparison when sorting
This fixes a regression from 5.0-1556, but I don't know why
the regression occurred or why this fixes it. (Many games
failed to fully boot - I tried Metroid Prime and Twilight
Princess (both GC), and they never got to the title screen.)
2017-01-25 15:07:07 +01:00
Markus Wick 3c184dcf8d Merge pull request #4742 from lioncash/dspasm
DSPAssembler: Replace malloced output buffer with std::vector
2017-01-25 14:49:36 +01:00
JosJuice 188d36ff26 ConfigManager: Refactor setting the region into a new function 2017-01-25 14:42:11 +01:00
Pierre Bourdon 18968abbd7 Merge pull request #4723 from booto/ios-init
Set up IOS RAM information area with real values.
2017-01-25 11:41:26 +01:00
Matthew Parlane 54e7d4a3dd Merge pull request #4748 from lioncash/dspregcache
DSPJitRegCache: Make GetReg return by value
2017-01-25 22:49:16 +13:00
booto d16ca2e5c8 Load IOS from TMD when launching non-IOS title. 2017-01-25 01:11:48 -05:00
Lioncash 3734d6f16c DSPJitRegCache: Make GetReg return by value
Using out-references for this sort of thing is a C++03-ism.
2017-01-24 23:10:34 -05:00
degasus d3aee2de08 JitCache: Split off JIT call from dispatcher.
This avoid flushing the BLR optimization stack on fast_block_cache misses.
2017-01-25 01:51:19 +01:00
JosJuice 8475b03bd8 ConfigManager: Always set a valid m_region
Fixes a regression from f85266d that made WADs
with no detectable region not boot correctly.
The non-WAD code was already handling this correctly.
2017-01-24 16:34:08 +01:00
booto 3ba388138d Set up IOS RAM information area with real values. 2017-01-24 09:48:21 -05:00
Markus Wick eed64bb0fe Merge pull request #4744 from ligfx/cleanup-osx-cmake
CMake: Cleanup macOS-related logic
2017-01-24 14:36:10 +01:00
Markus Wick 63f56ccd02 Merge pull request #4741 from Orphis/cmake_cleanup
CMake cleanup
2017-01-24 14:35:05 +01:00
Michael Maltese 0ab3b1a3ff CMake: use CMAKE_OSX_DEPLOYMENT_TARGET 2017-01-24 01:27:41 -08:00
Matthew Parlane 221be63cb4 Merge pull request #4734 from leoetlino/info-ios-version
DolphinWX: Show the required IOS version in info panel
2017-01-24 18:47:14 +13:00
Florent Castelli a917d247ed DolphinWX: Remove HAVE_WX preprocessor define
I think we don't have to double check it when building the WX target.
2017-01-24 05:48:08 +01:00
Lioncash ed627a8cff DSPAssembler: Replace malloced output buffer with std::vector
Same thing, less manual memory management.
2017-01-23 22:03:40 -05:00
Florent Castelli 0baf1c78c0 vs: Move defines out of Common.h to the build system 2017-01-24 03:55:46 +01:00
Florent Castelli a7bf9271b5 Fix missing includes 2017-01-24 03:31:51 +01:00
Florent Castelli c649bf104b cmake: Prevent HAVE_OPENAL and HAVE_PORTAUDIO to be redefined 2017-01-24 03:22:03 +01:00
Florent Castelli cac53603c5 DolphinWX: Put wx related headers before including anything else
Including Windows.h before them creates compilation errors.
2017-01-24 03:22:03 +01:00
Matthew Parlane f70a1a27fa Merge pull request #4726 from ligfx/addingwindowsheaders
Fix building without PCH on Windows
2017-01-24 13:47:36 +13:00
Michael Maltese 0bc40cacda No longer need to //clang-format off for Windows headers 2017-01-23 16:23:37 -08:00
Matthew Parlane 00c993143f Merge pull request #4738 from EmptyChaos/pe-stackcheck-fix
PatchEngine: Fix potential crashing during stack probe
2017-01-24 11:27:44 +13:00
Matthew Parlane 98c4ceb3d1 Merge pull request #4737 from lioncash/bpmem
BPMemory: Minor changes
2017-01-24 11:00:25 +13:00
Lioncash 7a58a82a37 BPMemory: Add const specifier to member functions where applicable 2017-01-23 16:07:03 -05:00
Lioncash 1f596a23af BPMemory: Eliminate union type punning
This is undefined behavior in C++.
2017-01-23 16:05:32 -05:00
EmptyChaos 49873b1287 MMU/PatchEngine: Fix potential crash during stack probe
TryReadInstruction doesn't validate the address it resolves, that
can result in Memory::GetPointer failing and returning nullptr
which then leads to a nullptr dereference and a crash.

Created PowerPC::HostIsInstructionRAMAddress which works the same
way as PowerPC::HostIsRAMAddress for the IBAT.
2017-01-24 08:05:11 +11:00
Léo Lam 3d21280ab4 DiscIO: Fix out-of-bounds access in NANDContentDataBuffer
Accessing buffer[start + size] triggers an error (and a crash) in debug
builds. Using std::copy_n fixes this.
2017-01-23 21:49:26 +01:00
Matthew Parlane 86b758d7ca Merge pull request #4733 from leoetlino/expose-wad-tmd
VolumeWad: Implement GetTMD()
2017-01-24 09:20:14 +13:00
Léo Lam b892d78872 VolumeWad: Implement GetTMD()
This allows getting useful info like the required IOS version for WADs
(for showing it in the UI, for example).
2017-01-23 20:59:02 +01:00
Léo Lam ceb1797977 DolphinWX: Show the required IOS version in info panel
This is useful to know which IOS version is required by a title without
having to look at the TMD manually.

The IOS version row will only appear if there is a TMD, of course.
2017-01-23 20:42:36 +01:00
Léo Lam 1cb87a9e43 DolphinWX: Simplify item creation in InfoPanel 2017-01-23 20:42:36 +01:00
degasus 7f6b8e3555 JitCache: Extract ErasePhysicalRange as function. 2017-01-23 20:33:44 +01:00
degasus 70caf447b9 JitCache: Get physical addresses from PPCAnalyst.
So we support all kind of degenerated blocks now, not just range+length based ones.
2017-01-23 20:33:44 +01:00
degasus 3529af61c4 JitAnalyzer: Remove jit block cache workaround. 2017-01-23 20:33:44 +01:00
degasus f3ed993747 JitCache: Use a map with macro blocks for the occupied memory regions.
This also allow fast invalidation, without any restritions on the blocks itself.
So we can now implement inlining.
2017-01-23 20:33:44 +01:00
degasus dc0fbc15f0 JitCache: Drop block_map.
It is only used for invalidation, and in a bad way. Just scan over all elements,
as it is still in O(n), this shouldn't matter much.
2017-01-23 20:33:44 +01:00
Matthew Parlane 98311cd9f4 Merge pull request #4728 from lioncash/virtual-dtor
ControllerEmu: Add missing virtual destructor to BooleanSetting
2017-01-24 08:19:23 +13:00
Matthew Parlane ee065181d7 Merge pull request #4730 from leoetlino/tmdreader
TMDReader: Add a way to get the required IOS version
2017-01-24 08:19:07 +13:00
Matthew Parlane d97a2aba8d Merge pull request #4731 from leoetlino/volumewad
Minor cleanup to VolumeWad
2017-01-24 08:18:02 +13:00
Lioncash 70cf774a5c RenderBase: Forward declare EFBAccessType 2017-01-23 12:41:26 -05:00
Léo Lam f89aaee91a VolumeWad: Remove useless else after return 2017-01-23 18:17:34 +01:00
Léo Lam 2cd287baf7 VolumeWad: Add missing forward declaration 2017-01-23 18:17:34 +01:00
Léo Lam 6128679396 VolumeWad: Clean up variable naming 2017-01-23 18:07:23 +01:00
Léo Lam 6d909b3e30 VolumeWad: In-class initialise member variables 2017-01-23 18:07:21 +01:00
Léo Lam 0d8ddfb7d9 TMDReader: Add a way to get the required IOS version 2017-01-23 17:44:24 +01:00
Markus Wick 1c854f2daa Merge pull request #4727 from lioncash/enum-class
VideoBackendBase: Convert EFBAccessType and FieldType into enum classes
2017-01-23 17:14:06 +01:00
JosJuice 6d879f7f3a Merge pull request #4729 from lioncash/table
ES: Move the key table into the cpp file
2017-01-23 15:51:42 +01:00
Mat M 93faf26217 Merge pull request #4721 from RisingFog/remove_dead_audiodump_code
Remove dead audio dumping code
2017-01-23 09:17:11 -05:00
Chris Burgener dd9709509c Remove dead audio dumping code 2017-01-23 09:11:48 -05:00
Lioncash fd772f6726 ES: Move the key table into the cpp file
This is a static implementation detail, so there's no need to bind it to the class directly.

This also makes the tables read-only.
2017-01-23 08:16:28 -05:00
Markus Wick c0e8280240 Merge pull request #4706 from lioncash/dspasm
DSPAssembler: Minor cleanup
2017-01-23 12:12:01 +01:00
Lioncash a9da2d9e20 ControllerEmu: Add missing virtual destructor to BooleanSetting 2017-01-23 05:08:19 -05:00
Markus Wick 4436011c50 Merge pull request #4725 from lioncash/attachments
Attachments: Minor cleanup
2017-01-23 10:55:04 +01:00
Lioncash 34768617d2 Attachment: Make constructors explicit where applicable 2017-01-23 04:42:27 -05:00
Lioncash 34262ee3d8 Attachment: Move implementation details into the cpp file 2017-01-23 04:42:26 -05:00
Lioncash c87ee2a00e Attachment: Use std::array over C arrays 2017-01-23 04:42:21 -05:00
Michael Maltese 713ec5ffd5 Add includes for building on Windows without PCH 2017-01-23 01:37:41 -08:00
Lioncash 940aa6f32d VideoBackendBase: Convert FieldType into an enum class 2017-01-23 03:54:01 -05:00
Lioncash 5b461f50af VideoBackendBase: Convert EFBAccessType into an enum class 2017-01-23 03:53:38 -05:00
Michael Maltese c3a1547d9a AVIDump: rename CreateFile -> CreateVideoFile (conflict with windows.h) 2017-01-23 00:35:18 -08:00
Matthew Parlane 836f43038a Merge pull request #4722 from lioncash/si-device
SI_Device: Minor cleanup
2017-01-23 21:28:58 +13:00
degasus 819ebfb213 JitCache: Freeing hotfix.
Sorry, I'm too stupid to test my code.
2017-01-23 06:58:02 +01:00
Markus Wick 9cd34c7985 Merge pull request #4717 from degasus/arm
JitArm64: Fix dcbz.
2017-01-23 06:32:11 +01:00
Lioncash 4b2f40a634 Attachment: Make class members non-public 2017-01-22 23:53:13 -05:00
Lioncash fbcf86870d SI_Device: Remove const specifiers from SIDevice_Create declaration's parameters
These are only relevant on the definition of the function.
2017-01-22 22:34:23 -05:00
Lioncash 0adb0dfeef SI_Device: Move implementation details into the cpp file
Any changes to the base class' default behavior now won't require
all SI device source files to be recompiled.
2017-01-22 22:33:27 -05:00
Lioncash fb8f19f553 SI_Device: Amend variable naming 2017-01-22 22:20:16 -05:00