Commit Graph

19557 Commits

Author SHA1 Message Date
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 223e213bcf cmake: Change endmacro(.*) to endmacro() 2017-01-25 15:07:32 +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
Florent Castelli fa04c1479e cmake: Remove PCH support
Compilers are very picky and don't use PCH when they have been compiled
with different flags. I even got some ICE in MSVC, so removing them for now.

Modules are the solution.
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
Michael Maltese f024fd48f9 clang-format: Sort windows.h before other headers 2017-01-23 00:35:09 -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
Mat M a2caa0d733 Merge pull request #4719 from ligfx/removeandroidtoolchainfile
Android: remove unused android.toolchain.cmake
2017-01-22 22:46:31 -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
Lioncash f41e5eac2e SI_Device: Move protected interface below public interface 2017-01-22 22:10:43 -05:00
Lioncash 7f4ef74542 SI_Device: Move the null device implementation to its own source files 2017-01-22 21:18:51 -05:00
Michael Maltese 21ae6afa73 Android: remove unused android.toolchain.cmake
Gradle automatically sets up the CMake build and this file isn't referenced
anywhere.
2017-01-22 16:54:08 -08:00
degasus a19993c2a0 JitArm64: Fix dcbz.
This fixes the hidden wall in xenoblade.
2017-01-23 00:26:38 +01:00
Matthew Parlane ba5c3f4c46 Merge pull request #4582 from iwubcode/per_game_wii_lang
Add support for specifying the GC/Wii system language per-game
2017-01-23 11:51:37 +13:00
Matthew Parlane ef7a809fad Merge pull request #4678 from degasus/jitcache
JitCache: Store the JIT blocks in the std::map.
2017-01-23 11:49:46 +13:00
Matthew Parlane 5cee3f99ce Merge pull request #4710 from leoetlino/save-stm-hook
IOS: STM: Save event hook to savestates
2017-01-23 11:11:08 +13:00
iwubcode a7a8e35823 Add support for specifying the GC/Wii system language per-game 2017-01-22 12:00:45 -06:00
Markus Wick 90ee85f4e8 Merge pull request #4714 from JosJuice/wbfs-file-entry
Fix -Wshadow warning for file_entry
2017-01-22 17:56:51 +01:00
Léo Lam 6291cd0bce IOS: STM: Save event hook to savestates
This allows a STM event hook to be saved and restored correctly and
fixes the power/reset button after loading a state in some cases.
2017-01-22 17:29:39 +01:00
JosJuice 79f3b5c5ff Fix -Wshadow warning for file_entry
This struct didn't follow our naming convention,
so let's rename the struct itself instead of
the variable that triggered the warning.
2017-01-22 17:27:37 +01:00
degasus 8e00c411a3 JitCache::Rename iCache to fast_block_map.
iCache sounds too much like emulation.
2017-01-22 17:10:28 +01:00
degasus 830ae6a2c1 JitCache: Store the JitBlock in the std::map. 2017-01-22 16:50:46 +01:00
degasus 43cdbab515 Jit64: Add a switch for easier fallback to the C++ dispatcher. 2017-01-22 16:50:46 +01:00
degasus 9b77a39767 JitCache: Only call DestroyBlock on valid blocks. 2017-01-22 16:50:46 +01:00
degasus 113d6b3b84 JitCache: Use a multimap for block_map and start_block_map.
We may have duplicated entries here because of MSR mismatch. Just
store both and validate the matching one on cache access.
2017-01-22 16:50:46 +01:00
degasus 9d58127dec JitCache: Move JitBlock config variable. 2017-01-22 16:50:46 +01:00
degasus 352909fc4c JitCache: Track the ICache entry of jit blocks.
This guarantees that no invalidated jit block is still in the icache.
2017-01-22 16:50:14 +01:00
Lioncash a97aef2e94 Jit: Eliminate JIT global usages 2017-01-22 06:01:30 -05:00
Lioncash a18ab5e154 JitArm64_LoadStore: Eliminate JIT global usages 2017-01-22 05:59:38 -05:00
Lioncash 4601499179 JitArm64_LoadStoreFloating: Eliminate JIT global usages 2017-01-22 05:57:44 -05:00
degasus c9c5437cb8 JitCache: Fix links_to updates on destroying blocks. 2017-01-22 11:37:22 +01:00
Lioncash 7c0b96f638 EXI_Device: Move the dummy implementation to its own source files 2017-01-22 02:15:36 -05:00
Lioncash d6bdbfe90e DSPAssembler: Use std::string instead of malloced char buffers in AssembleFile 2017-01-22 01:15:36 -05:00