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
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
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
6cddc1be95
EXI_Device: Get rid of an unnecesary cast
2017-01-22 04:28:49 -05:00
Lioncash
2e85ddef60
EXI_Device: Remove unnecessary const on EXIDevice_Create declaration parameters
...
These are only relevant on its definition.
2017-01-22 04:28:48 -05:00
Lioncash
07a61b0d15
EXI_Device: Move implementation details into the cpp file
...
Any change to the default behavior of any device methods now won't require
the recompilation of all EXI devices.
2017-01-22 04:28:44 -05:00
Lioncash
e41a6ac9a3
EXI_Device: Amend variable naming
2017-01-22 04:08:49 -05:00
Lioncash
4115d93c71
EXI_Device: Move destructor to beginning of public section
...
Constructors and destructors should be the first thing shown in a public
interface.
2017-01-22 02:35:20 -05:00
Lioncash
a5c0409050
EXI_Device: Move private details below the public interface
2017-01-22 02:30:10 -05: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
Lioncash
cbe1ec51df
DSPAssembler: Make AssembleFile take a std::string
...
File paths passed to it would have been implicitly converted to std::strings
prior to this function being reached, so it gets rid of some string churn.
It also makes it safer since nullptr can't be passed in.
2017-01-22 01:15:31 -05:00
Matthew Parlane
d9c873bc8b
Merge pull request #4704 from lioncash/exi-channel
...
EXI_Channel: Minor cleanup
2017-01-22 16:53:09 +13:00
Lioncash
d2ff34e510
EXI_Channel: Remove const qualifiers from member function declaration parameters
...
Const used on value types only really has a use when used within the
definition.
2017-01-21 22:36:09 -05:00
Lioncash
387769b4e2
EXI_Channel: Move SetEXIINT implementation into the cpp file
2017-01-21 22:36:09 -05:00
Lioncash
edf8a79005
EXI_Channel: Make constructor explicit
2017-01-21 22:36:09 -05:00
Lioncash
5a85001d30
EXI_Channel: Amend variable casing
2017-01-21 22:36:04 -05:00
Matthew Parlane
2252b7a355
Merge pull request #4705 from lioncash/mmu
...
MMU: Change '0' literals to 'false' in IsOptimizableGatherPipeWrite
2017-01-22 16:24:49 +13:00
Lioncash
0dee9bc4f0
MMU: Change '0' literals to 'false' in IsOptimizableGatherPipeWrite
2017-01-21 21:16:41 -05:00
Matthew Parlane
507715f316
Merge pull request #4700 from degasus/videoconfig
...
VideoConfig: Fix boolean default values.
2017-01-22 14:52:37 +13:00
Lioncash
688225616e
EXI_Channel: In-class initialize variables
2017-01-21 18:44:54 -05:00
Lioncash
489e4c49bc
EXI_Channel: Move private interface below public interface
2017-01-21 18:42:18 -05:00
BhaaL
07d1f18f53
CompressFileToBlob: add an explicit seek to make sure we're at the start
2017-01-21 21:42:58 +01:00
BhaaL
30e0f3d9ca
DecompressFileToBlob: don't assume success if decompression failed
2017-01-21 21:42:58 +01:00
BhaaL
24be8c0814
IsGCZBlob: try to leave the file position where it was before
...
callers that don't seek afterwards might be missing a few bytes that way.
2017-01-21 21:42:57 +01:00
Léo Lam
3eb81ad219
Netplay: Fix wrong mapping info being used in dialog
...
Obvious fix for a small mistake.
2017-01-21 20:42:30 +01:00
degasus
65e3aa796e
VideoConfig: Fix boolean default values.
2017-01-21 11:31:44 +01:00
Matthew Parlane
7ebfd357b5
Merge pull request #4699 from Orphis/cmake_cleanup
...
CMake cleanup (but wait, there's more!)
2017-01-21 16:38:09 +13:00
Florent Castelli
59fb8042d1
cmake: Add XInput file to the InputCommon target
2017-01-21 02:44:18 +01:00
Florent Castelli
6c197a8f6a
cmake: Rename variable for libxi to X11_INPUT
2017-01-21 02:44:18 +01:00
Lioncash
794d0a9d7c
Core: Move SI source files to their own directory
2017-01-20 19:33:24 -05:00
Matthew Parlane
71ea457874
Merge pull request #4696 from Orphis/cmake_cleanup
...
CMake cleanup for Windows (moar!)
2017-01-21 13:09:52 +13:00
Matthew Parlane
a945b4ea9b
Merge pull request #4691 from lioncash/dsptables
...
DSPTables: Hide/Eliminate some extern variables
2017-01-21 12:39:47 +13:00
Florent Castelli
b6a7216b07
cmake: Mark DolphinWX target as a Windows application (instead of console)
2017-01-21 00:35:55 +01:00
Florent Castelli
2ff10ad021
cmake: Add missing Windows file to common
2017-01-21 00:35:55 +01:00
Florent Castelli
5540cda820
cmake: Don't build traversal_server on Windows, it requires posix platform
2017-01-21 00:35:55 +01:00
Florent Castelli
e55ec1ed35
cmake: Build D3D and D3D12 video backends
2017-01-21 00:35:55 +01:00
Florent Castelli
1516361d1d
cmake: Add missing dependencies on libs on Windows
2017-01-21 00:35:55 +01:00
Florent Castelli
b5b9c0cfc3
cmake: Build XAudio 2.7 backend on Windows
2017-01-21 00:34:02 +01:00
Matthew Parlane
83dc03416e
Merge pull request #4690 from leoetlino/common-usb
...
IOS: Move out common USB structures
2017-01-21 12:33:06 +13:00
Matthew Parlane
2f9bf297f1
Merge pull request #4693 from lioncash/interp-naming
...
Interpreter: Amend parameter naming
2017-01-21 12:31:51 +13:00
Lioncash
8078c18a80
Core: Move EXI source files to their own directory
...
Keeps related source files together and cleans up the root directory of HW
a little bit.
2017-01-20 16:06:35 -05:00
Lioncash
4d92ffb949
Interpreter: Amend parameter naming
...
Drops prefixed underscores from parameters
The C++14 standard states in section 2.10 subsection 3.2:
"Each identifier that begins with an underscore is reserved to the
implementation for use as a name in the global namespace."
It's highly unlikely an implementation will ever use '_inst' as a global
identifier, however it's better to just amend the names and alleviate
the concern altogether.
2017-01-20 14:51:00 -05:00
Léo Lam
954c41d6e9
IOS: Move out common USB structures
...
Some structures will be reused and shared between several IOS USB
device implementations. This prepares for the upcoming USB PR.
I've also removed GetPointer calls in the trivial case (BT passthrough)
2017-01-20 18:29:21 +01:00
Matthew Parlane
25c779943b
Merge pull request #4687 from lioncash/ppc-state
...
PowerPC: Explicitly savestate PowerPCState members
2017-01-20 17:51:42 +13:00
Lioncash
c73f4bd226
DSPTables: Hide main opcode tables
...
Hides the opcode tables that the interpreter and JIT interface with to
execute instructions.
This does not, however, hide the read-only tables that the assembler and
disassembler use.
2017-01-19 17:46:07 -05:00
Lioncash
2b5b21f2a4
DSPAssembler: Rename FindOpcode parameters
...
Having opcod and opcode as parameter names is kind of silly.
2017-01-19 17:46:01 -05:00
Lioncash
14f0e66809
DSPTables: Use std::array instead of C arrays
2017-01-19 17:07:31 -05:00
Matthew Parlane
2acb3ef3f5
Merge pull request #4688 from leoetlino/ios-prefix
...
IOS: Remove IOS prefix on a few structs/enums
2017-01-20 11:04:10 +13:00
Léo Lam
a000a3c23f
Only allow reset/power when core is running
...
If we don't check for Core::IsRunning(), event types such as
iosNotifyResetButton may actually be nullptr, or some random invalid
pointer (after an emulation start then shutdown) and be used when the
user triggers a reset, which causes random crashes.
2017-01-19 22:08:13 +01:00
Léo Lam
e33d943459
IOS: Remove IOS prefix on a few structs/enums
...
Now that IOS code is namespaced, we don't need the prefix anymore.
2017-01-19 19:10:31 +01:00
Matthew Parlane
629fcb437a
Merge pull request #4683 from leoetlino/rename-ipc-hle
...
Reorganise the IOS HLE source files (and drop WII_IPC_HLE)
2017-01-19 20:54:35 +13:00
Lioncash
d266be5b56
PowerPC: Explicitly savestate PowerPCState members
...
Makes it more obvious which data is going into the savestate.
It also allows PowerPCState and InstructionCache to potentially
contain members that don't necessarily need to be saved to the save state.
It also gets rid of any potential padding data being put into the save
state.
2017-01-18 23:44:46 -05:00
Lioncash
c761f98ede
PowerPC: Simplify TLB resetting
...
Member initializers and std::array make this trivial for fixed value initialization.
2017-01-18 19:31:04 -05:00
Lioncash
b2351ddb29
PowerPC: Move CPU core initialization to its own function
2017-01-18 19:13:52 -05:00
Lioncash
e86def732a
PowerPC: Move zeroing of segment registers into ResetRegisters
2017-01-18 16:03:31 -05:00
Léo Lam
ef5a855b8e
Update log types names from IPC_HLE to IOS
...
For consistency with the other changes.
WII_IPC_DVD was changed to IOS_DI, as this describes what the log type
is used for in a more specific way.
2017-01-18 21:43:37 +01:00
Léo Lam
49b9c723e2
Put IOS devices in a namespace and drop WII_IPC_HLE prefix
2017-01-18 21:42:33 +01:00
Matthew Parlane
f94bd7d865
Merge pull request #4684 from lioncash/dsp-emu
...
DSPEmulator: Amend variable casing
2017-01-19 09:10:58 +13:00
Léo Lam
24199293d3
IOS: Reorganise the source files and IPC_HLE→IOS
...
IPC_HLE is actually IOS HLE. The actual IPC emulation is not in
IPC_HLE, but in HW/WII_IPC.cpp. So calling IPC_HLE IOS is more
accurate. (If IOS LLE gets ever implemented, it'll likely be at
a lower level -- Starlet LLE.)
This also totally gets rid of the IPC_HLE prefix in file names, and
moves some source files to their own subdirectories to make the file
hierarchy cleaner.
We're going to get ~14 additional source files with the USB PR,
and this is really needed to keep things from becoming a total pain.
2017-01-18 20:43:10 +01:00
Lioncash
cf1c194b88
DSPLLE: Amend variable casing
2017-01-18 12:50:58 -05:00
Lioncash
0f70650e93
DSPHLE: Amend variable casing
2017-01-18 12:44:27 -05:00
Lioncash
a57b378116
DSPEmulator: Amend variable casing
2017-01-18 12:20:13 -05:00
Lioncash
bba6a31eb6
Interpreter_Tables: Amend leftover comment
2017-01-18 03:03:44 -05:00
Lioncash
06488477a9
Interpreter_Tables: Ensure all instructions fit within m_allInstruction at compile-time
2017-01-18 03:03:42 -05:00
Lioncash
6c61021eb1
PPCTables: Use std::array instead of raw C arrays
2017-01-18 03:03:00 -05:00
Lioncash
1a1ce42889
Interpreter_Tables: Use std::array for instruction tables
2017-01-18 03:02:55 -05:00
Matthew Parlane
01b322d45f
Merge pull request #4679 from lioncash/ipc
...
IPC_HLE: Namespace IPC HLE
2017-01-18 17:33:08 +13:00
Matthew Parlane
41f7995916
Merge pull request #4680 from lioncash/ir
...
IR: Minor changes
2017-01-18 17:31:40 +13:00
Lioncash
e4ea9f7ace
Interpreter: Use std::array for instruction tables
2017-01-17 22:06:52 -05:00
Lioncash
f0abdbdeb5
Interpreter: Correct member variable casing
2017-01-17 21:50:01 -05:00
Lioncash
e9b506638f
Interpreter: Make m_EndBlock private
2017-01-17 21:16:14 -05:00
Lioncash
722162b54a
IPC_HLE: Namespace IOS HLE
...
Gets all of the IOS HLE code out of the global scope.
2017-01-17 20:46:58 -05:00
Lioncash
f1542c8e5a
Common: Namespace Network.h/.cpp
...
Necessary to avoid namespace clashes with IOS HLE's namespace name.
2017-01-17 20:46:48 -05:00
Lioncash
bb49012445
IR: Deduplicate code in Reset and FoldFallbackToInterpreter
2017-01-17 20:35:02 -05:00
Lioncash
89473d5996
IR: Clean up getNumberOfOperands
...
- Use std::array
- Make arrays constexpr where their contents aren't modified.
2017-01-17 20:22:38 -05:00
Lioncash
d3aed03563
IR: Make trivial helper functions constexpr
2017-01-17 19:42:36 -05:00
Lioncash
d1f39185dd
IR: Convert typedefs to using aliases
2017-01-17 19:40:56 -05:00
Matthew Parlane
f785d7f869
Merge pull request #4675 from lioncash/jitil
...
JitILBase: Make the IRBuilder protected
2017-01-18 13:10:31 +13:00
Florent Castelli
875563787f
cmake: include(Find…)->find_package(…)
2017-01-17 21:50:44 +01:00
Lioncash
1516c22a22
JitILBase: Make the IRBuilder instance protected
...
There's no need to make it public.
2017-01-17 14:55:45 -05:00
Lioncash
e924814d62
JitILBase: Move protected members below public
2017-01-17 14:45:40 -05:00
Matthew Parlane
63011f1402
Merge pull request #4661 from leoetlino/ios-request
...
IOS HLE: Deduplicate the request parsing code
2017-01-18 08:38:37 +13:00
Matthew Parlane
753455b379
Merge pull request #4671 from endrift/fix-libusb
...
InputCommon: Fix FreeBSD 11 libusb incompatibilities
2017-01-17 21:43:08 +13:00
Jeffrey Pfau
c5b3b52d55
InputCommon: Fix FreeBSD 11 libusb incompatibilities
2017-01-17 00:30:08 -08:00
Lioncash
8346f86ee4
IR: Remove unnecessary semicolon on namespace brace
2017-01-16 19:54:42 -05:00
Lioncash
67fc73e82c
IR: Make getNumInsts return type size_t
...
There's no need to cast here.
2017-01-16 19:38:30 -05:00
Lioncash
459a6e73c3
IR: Remove unused function
2017-01-16 19:32:13 -05:00
Lioncash
cd12b2c55f
IR: Make IRBuilder uncopyable
...
Hiding and not implementing the copy constructor is a pre-C++11 thing.
It should also be noted that a copy constructor, as defined by the
language, contains a const qualifier on its parameter, so this wouldn't
have prevented copies from being performed.
2017-01-16 18:59:17 -05:00
Lioncash
a8b2dd7fc3
IR: Use std::array instead of raw C arrays
2017-01-16 18:54:30 -05:00
Lioncash
ef3e6de875
IR: Move implementation of the constructor and Reset into the cpp file
...
Neither of these are intended to be called extremely frequently to warrant
this.
2017-01-16 18:36:11 -05:00
Léo Lam
25f89ccae8
IOS HLE: Specify the return code when replying
...
This makes more sense than setting the return code on the request
struct first before replying.
Ref: https://github.com/dolphin-emu/dolphin/pull/4661#discussion_r96273253
2017-01-17 00:28:22 +01:00
Lioncash
47fc72f0a8
IR: Get rid of an unimplemented member function prototype
2017-01-16 18:11:54 -05:00
Lioncash
4f75590fdb
IR: Move private details below public details
2017-01-16 18:08:11 -05:00
Léo Lam
c6b1cfb222
IOS HLE: Remove old structs and methods
...
Now that everything has been changed to use the new structs, the old
methods and structs can be removed.
And while I was changing the base device class, I also moved the
"unsupported command" code to a separate function. It was pretty silly
to copy the same 3 lines for ~5 commands.
2017-01-16 23:55:57 +01:00
Léo Lam
8629a1f11c
IOS HLE: Deduplicate request code in WFS
2017-01-16 23:55:57 +01:00
Léo Lam
4af67abb55
IOS HLE: Deduplicate request code in ES
2017-01-16 23:55:56 +01:00
Léo Lam
6bf0b487d1
IOS HLE: Deduplicate request code in USB_HID
2017-01-16 23:55:56 +01:00
Léo Lam
0e979ec75f
IOS HLE: Deduplicate request code in FileIO and FS
2017-01-16 23:55:56 +01:00
Léo Lam
5a5985f674
IOS HLE: Deduplicate request code in DI
2017-01-16 23:55:55 +01:00
Léo Lam
469a31db32
IOS HLE: Deduplicate request code in sdio_slot0
2017-01-16 23:55:55 +01:00
Léo Lam
a04902086a
IOS HLE: Deduplicate request code in net/net_ssl
2017-01-16 23:55:55 +01:00
Léo Lam
84c8d0b66d
IOS HLE: Deduplicate request code in stub
2017-01-16 23:55:54 +01:00
Léo Lam
f9e806fd71
IOS HLE: Deduplicate request code in OH1
2017-01-16 23:55:54 +01:00
Léo Lam
d4de87a973
IOS HLE: Deduplicate request code in USB_KBD
2017-01-16 23:55:53 +01:00
Léo Lam
d536082e42
IOS HLE: Deduplicate request code in USB_VEN
2017-01-16 23:55:53 +01:00
Léo Lam
d7b4e6ead5
IOS HLE: Deduplicate request code in STM
2017-01-16 23:55:52 +01:00
Léo Lam
e2d072250f
IOS HLE: Deduplicate request code in WII_IPC_HLE
2017-01-16 23:55:52 +01:00
Léo Lam
d8b9b3825c
IOS HLE: Add resource request structs
...
This adds well-defined structs that are responsible for parsing
resource requests, instead of duplicating the logic and offsets all
over IOS HLE. Command handler functions are now passed parsed requests
instead of a command address.
This may not seem like a very important change, but it removes the
need to remember all of the struct offsets or copy/paste existing
struct request variables. It also prevents nasty bugs which have
occurred in the past, such as parsing an ioctl as if it were an ioctlv
(that's way too easy to do if you pass command addresses directly);
or writing something to 0x0, which can easily happen by mistake with
a close handler that can be called with invalid command addresses.
Bonus changes:
- The return code is not an obscure Memory::Write_U32 anymore, but an
explicit, more obvious SetReturnValue() call. (Which correctly takes
a s32 instead of a u32, since return codes are signed.)
- Open handlers are now only responsible for returning an IOS ret code,
and Close handlers don't return anything and don't have to worry
about checking whether the request is a real one anymore.
- DumpAsync was moved to the ioctlv request struct, because it did
not really make sense to make it part of the IOS device and it only
works for ioctlvs.
All current usages have been removed; they will be readded in a
later commit.
As of this commit, nothing uses the structs yet. Usages will be
migrated progressively.
2017-01-16 23:55:52 +01:00
Matthew Parlane
53bfab057c
Merge pull request #4666 from lioncash/jitil-ir
...
IR_X86: Minor changes to RegInfo
2017-01-17 11:52:44 +13:00
Matthew Parlane
8153772bfe
Merge pull request #4662 from lioncash/memview
...
MemoryView: Separate memory string composition from OnPaint
2017-01-17 11:31:16 +13:00
Lioncash
43910e474b
IR_X86: Use member initializers where applicable for RegInfo
2017-01-16 17:29:09 -05:00
Lioncash
bc7374a5e1
IR_X86: Use std::array instead of raw C arrays in RegInfo
2017-01-16 17:29:09 -05:00
Lioncash
45f7883ed8
IR_X86: Make RegInfo uncopyable
...
Hiding and not implementing the copy constructor is a pre-C++11 thing.
It should also be noted that a copy constructor, as defined by the language,
contains a const qualifier on its parameter, so this wouldn't have
prevented copies from being performed.
It also follows that if the copy constructor is deleted, then copy
assignment should also be forbidden.
2017-01-16 17:27:03 -05:00
Matthew Parlane
3415a1ca18
Merge pull request #4614 from jackoalan/gba-hle-cleanup
...
DSP: Clean up GBA crypto HLE implementation
2017-01-17 11:10:50 +13:00
Matthew Parlane
ed7589cb0f
Merge pull request #4656 from hthh/cmpr-fixes
...
TextureDecoder: Fix off-by-one errors in CMPR
2017-01-17 11:05:42 +13:00
Lioncash
6788cb7266
HW/DSP: Correct prefixes of translation-unit-local variables
...
These aren't globals.
2017-01-16 14:53:37 -05:00
Lioncash
8cc4815fe2
HW/DSP: Hide the DSP state global
2017-01-16 14:14:03 -05:00
Markus Wick
1a01aee66e
Merge pull request #4663 from lioncash/dsp-init
...
HW/DSP: Use member initializers with structs/unions where applicable
2017-01-15 23:51:13 +01:00
Markus Wick
23104b6939
Merge pull request #4655 from Armada651/vertex-depth-no-uid
...
VertexShaderGen: Remove the need for an extra UID.
2017-01-15 23:02:13 +01:00
Lioncash
c6ec5de659
HW/DSP: Use member initializers with structs/unions where applicable
2017-01-15 16:03:12 -05:00
Lioncash
3848c2a018
MemoryView: Get rid of a type-punning cast from u32 to float
...
This is undefined behavior. The bits should be memcpyed.
2017-01-15 12:16:41 -05:00
Lioncash
2108bf1be6
MemoryView: Separate memory string composition from OnPaint
...
OnPaint should only care about drawing data, not directly creating
said data.
2017-01-15 12:13:08 -05:00
Pierre Bourdon
28f0d8e8a7
Merge pull request #4658 from lioncash/bits
...
Common: Add bit utility header
2017-01-15 17:23:30 +01:00
Markus Wick
5297309dfa
Merge pull request #4650 from degasus/jitcache
...
JitCache: Use pointers in the ICache and dispatchers.
2017-01-15 15:59:10 +01:00
hthh
88d52b4d69
TextureDecoder: Deduplicate some utility code
2017-01-15 20:23:26 +11:00
Matthew Parlane
e727e91be6
Merge pull request #4660 from JosJuice/gfx-debug-strings
...
Remove seemingly unused debug UI strings
2017-01-15 11:53:25 +13:00
JosJuice
2052bb8bea
Remove seemingly unused debug UI strings
...
wxChoice controls don't display any titles.
By the way, why is the file called DebuggerPanel.cpp
even though it implements the Video debug panel specifically?
2017-01-14 22:34:49 +01:00
Pierre Bourdon
dd9e6760c4
Merge pull request #4659 from leoetlino/chunkfile-set
...
Fix ChunkFile for std::set
2017-01-14 20:11:00 +01:00
Pierre Bourdon
45a1232920
IOS: Add partial wfsi/wfssrv implementations.
...
The current implementations do many things wrong but work well enough to
run the Dragon Quest X installer until the very end. The game itself
crashes when being launched from its System Menu channel unfortunately
so it is hard to verify whether the install properly worked or not.
There are plenty of "TODO(wfs)" sprinkled around this codebase with
things that are knowingly done wrong. The most important one right now
is that content extraction is done by buffering everything into memory
instead of properly streaming the data to disk (and processing
asynchronously), which causes freezes. It is likely to not cause any
practical issues since only the installer and the updater should use
this anyway.
2017-01-14 19:56:43 +01:00
Léo Lam
ea0335f7c1
Fix ChunkFile for std::set
...
Without this, attempts to savestate std::set will fail with an error
about dropping the const qualifier.
<Lioncash> leoetlino: I'll try to break it down: So, when you do a
ranged-for on a container, it's essentially syntactic sugar over begin
and end iterators. std::set is an associative container where the key
type is the same as the value type, and so it's required that all
iterator functions return constant iterators. If this wasn't a
requirement, it would allow changing the ordering of elements from
outside of the set's API (this is bad).
2017-01-14 19:00:19 +01:00
Lioncash
0a6f0dfb74
Common: Add bit utility header
...
This attempts to make some bit arithmetic more self-documenting and also
make it easier during review to identify potential off-by-one errors by
making it possible to just specify which bits are being extracted.
Functions both support the case where bits being extracted can vary and
fixed bit extraction. In the case the bits are fixed, compile-time asserts
are present to prevent accidental API usage at compile-time.
e.g. Instead of shifting and masking to get bits 10 to 15,
Common::ExtractBits<10, 15>(value) can just be done instead.
2017-01-14 11:16:02 -05:00
Pierre Bourdon
45d27f7fc7
CommonPaths: Add D_WFSROOT_IDX.
...
Defaults to $USERDIR/WFS. Used to store the contents normally stored on
WFS mass storage devices.
2017-01-14 17:06:40 +01:00
Pierre Bourdon
a8f7012cf7
IOS/ES: Implement basic title installation.
...
There are several things wrong with this implementation. The first being
that since we still don't have a proper ticket/tmd handling library, we
hardcode offsets once again to fetch TMD fields. The second being that
we don't stream data to the disk and we buffer everything in memory. The
third being that we don't properly fetch the content index for
decryption, which is prone to breaking.
But hey, it works well enough to install the DQX channel!
2017-01-14 17:06:40 +01:00
Pierre Bourdon
0a5cfd8946
IOS: Add ESFormats.{cpp,h}.
...
This library implements basic parsing support for some of the IOS ES
formats we need to extract data from. Currently only implements TMD
functions, but some ticket handling functions from DiscIO should likely
be moved here in the future.
2017-01-14 17:06:40 +01:00
Pierre Bourdon
334ddf754e
DiscIO: Export GetKeyFromTicket
...
This function has more uses than just in DiscIO (e.g. WFS).
2017-01-14 17:06:40 +01:00
Pierre Bourdon
650a1fdb1f
DiscIO: Implement functions to lookup tickets
...
These two functions load either a signed ticket or a raw ticket from the
emulated NAND.
The ticket signature skip is refactored out of the ticket writing in
order to be usable by the raw ticket reading function.
2017-01-14 17:06:40 +01:00
Pierre Bourdon
2ed352698f
IOS/ES: Implement ES_AddTicket.
...
Refactor the existing DiscIO::AddTicket to not require the caller to
pass the requested title ID. We do not have the title ID in the ES case,
and it needs to be extracted from the ticket. Since this is always a
safe operation to do (title ID is always in the ticket), the
implementation is made default.
2017-01-14 15:23:16 +01:00
Pierre Bourdon
c30635c70a
IOS/ES: Factor out the ES_Decrypt implementation.
...
WFSI calls into ES to perform this operation, so expose a way for us to
do the same thing.
2017-01-14 15:23:16 +01:00
hthh
5d4e4aa561
TextureDecoder: Fix off-by-one errors in CMPR
2017-01-14 10:52:35 +11:00
Lioncash
45415e1057
ColorUtil: Make decodeCI8image's pal parameter const
2017-01-13 17:07:26 -05:00
Matthew Parlane
30e57cecf7
Merge pull request #4653 from lioncash/dsp-define
...
DSPInterpreter: Get rid of a #define constant
2017-01-14 10:54:48 +13:00
Jules Blok
271a9fe7a9
VertexShaderManager: Break up the conditions to make it readable.
2017-01-13 14:01:17 +01:00
Jules Blok
f866748006
VertexShaderGen: Remove the need for an extra UID.
2017-01-13 14:01:17 +01:00
Matthew Parlane
ad84b904e4
Merge pull request #4496 from Mystro256/master
...
Fix GCC build issue with Fedora (linux)
2017-01-13 23:13:08 +13:00
Matthew Parlane
0d43b0e0e4
Merge pull request #4652 from lioncash/memcard
...
GCMemcard: Const-correctness changes
2017-01-13 23:09:08 +13:00
Lioncash
35cc4a4202
DSPInterpreter: Get rid of a #define constant
...
This constant isn't particularly helpful, mainly because it's not
applicable to all DSP instructions. Some instructions don't have encoding
space for registers, and not all instructions that do encode registers
have one at the first five bits.
This change also has the benefit of removing all includes to the
interpreter within the JIT code, which keeps them fully separate from one
another. Changes to the interpreter header won't require some of the JIT
code to be rebuilt.
2017-01-12 20:36:52 -05:00
Lioncash
0035a4ef3d
GCMemcard: Const-correctness changes
...
A few function reference and pointer parameters are only read from.
2017-01-12 20:01:19 -05:00
Léo Lam
5fd486014b
DolphinWX: Always keep panic alerts on top
...
This should prevent silly things like panic alerts opening *behind* the
render window and thus being impossible to see.
2017-01-12 23:40:58 +01:00
Matthew Parlane
5790f15be8
Merge pull request #4299 from sepalani/hle_symbols
...
SymbolDB: Multiple symbols detection allowed
2017-01-13 10:05:32 +13:00
Matthew Parlane
9838afea41
Merge pull request #4479 from GerbilSoft/feature/RVT-R.dev-key
...
Support for RVT-R disc images
2017-01-13 09:56:50 +13:00
Matthew Parlane
22546aef37
Merge pull request #4499 from ligfx/msgalertmainthread
...
DolphinWX: pass wxMsgAlert to main thread on non-GTK too
2017-01-13 09:52:09 +13:00
Matthew Parlane
24f7ebc890
Merge pull request #4420 from JosJuice/memcard-header-time
...
Don't use GetEmulatedTime in GCMemcard
2017-01-13 09:49:35 +13:00
degasus
fe41ed7fa1
JitCache: Use pointers in the ICache and dispatchers.
2017-01-12 21:43:28 +01:00
Léo Lam
64101137cd
Remove pre-generated SYSCONF
...
Dolphin is able to generate one with all correct default settings, so
we don't need to ship with a pre-generated SYSCONF and worry about
syncing default settings.
Additionally, this commit changes SysConf to work with session SYSCONFs
so that Dolphin is able to generate a default one even for Movie/TAS.
Which SYSCONF needs to be touched is explicitly specified to avoid
confusion about which file SysConf is managing.
(Another notable change is that the Wii root functions are moved into
Core to prevent Common from depending on Core.)
2017-01-12 21:30:11 +01:00
Matthew Parlane
d346d4ced1
Merge pull request #4544 from JosJuice/region-enum
...
DiscIO: Add GetRegion function and Region enum
2017-01-13 09:19:27 +13:00
Matthew Parlane
34c6672b97
Merge pull request #4446 from leoetlino/countries
...
ConfigManager: Don't overwrite the SYSCONF country
2017-01-13 09:09:56 +13:00
Matthew Parlane
356619642b
Merge pull request #4647 from degasus/jitcache
...
JitCache: Clean up block id handling.
2017-01-13 09:00:46 +13:00
degasus
d4a529614a
Jit64: Use PPCSTATE reg if possible.
2017-01-12 20:55:17 +01:00
degasus
a8b26937f3
JitCache: Clean up GetBlockFromStartAddress.
2017-01-12 20:24:43 +01:00
degasus
214f37ecef
JitCache: Rename variables.
2017-01-12 20:23:14 +01:00
degasus
3ee178abe7
JitCache: Drop unused functions.
2017-01-12 20:23:14 +01:00
degasus
7e850361fb
JitCache: Add a helper function to iterate over all blocks.
2017-01-12 20:23:14 +01:00
degasus
ca026b58ab
JitCache: Use a pointer in links_to.
2017-01-12 20:23:14 +01:00
degasus
928ccbef53
JitCache: Use a pointer in block_map.
2017-01-12 20:23:14 +01:00
degasus
74a27d9742
JitCache: Use a pointer in start_block_map.
2017-01-12 20:23:14 +01:00
degasus
2d5288dc10
JitCache: Return a pointer in AllocateBlock.
2017-01-12 20:23:14 +01:00
degasus
f14cebf079
JitCache: Use a pointer in FinalizeBlock.
2017-01-12 20:23:14 +01:00
degasus
d3aa8c8080
JitCache: Return a pointer in GetBlockFromStartAddress.
2017-01-12 20:23:14 +01:00
degasus
f6ec96efbd
JitCache: Use a pointer in DestroyBlock.
2017-01-12 20:23:14 +01:00
degasus
68c85d32f7
JitCache: Use a pointer in UnlinkBlock.
2017-01-12 20:23:14 +01:00
degasus
eb390f3020
JitCache: Use a pointer in LinkBlock.
2017-01-12 20:23:14 +01:00
degasus
ccb8c44a5a
JitCache: Use a pointer in LinkBlockExits.
2017-01-12 20:23:14 +01:00
Matthew Parlane
119dfbb436
Merge pull request #4648 from lioncash/iofile
...
IOFile: Get rid of IOFile's ReleaseHandle function
2017-01-13 08:15:23 +13:00
Lioncash
6f08ef9a25
IOFile: Get rid of IOFile's ReleaseHandle function
...
Transfer of handles should be done via std::move.
2017-01-12 12:34:06 -05:00
Matthew Parlane
0b6e5765dd
Merge pull request #4610 from ligfx/fixgamelist
...
DolphinWX: Fix position of GameListCtrl tooltips on macOS
2017-01-12 14:18:05 +13:00
Michael Maltese
fdcf5aeb75
DolphinWX: Fix position of GameListCtrl tooltips on macOS
2017-01-11 16:59:15 -08:00
Matthew Parlane
04a86e1cee
Merge pull request #4646 from leoetlino/minor-simplifications
...
IOS HLE: Minor simplifications
2017-01-12 12:32:05 +13:00
Matthew Parlane
ed6e346664
Merge pull request #4617 from lioncash/hotkey
...
HotkeyInputConfigDialog: Move UI creation into named functions
2017-01-12 11:02:10 +13:00
Matthew Parlane
c765087548
Merge pull request #4645 from lioncash/breakpoints
...
BreakPoints: Minor changes
2017-01-12 11:01:11 +13:00
Lioncash
b760479f77
BreakPoints: Use std::any_of where applicable
2017-01-11 16:37:31 -05:00
Léo Lam
13c374b118
IOS HLE: Replace some loops with range-based loops
2017-01-11 21:20:15 +01:00
Léo Lam
36c4dda4ed
IOS HLE: Simplify Reset() and SetDefaultContentFile()
...
Reset():
We only need to close IOS devices which were opened, and we can do that
simply by iterating over s_fdmap and closing any opened device.
With this change, s_device_map can be cleared at once.
SetDefaultContentFile():
We can just use s_es_handles which is guaranteed to contain three valid
ES devices. Gets rid of a downcast.
2017-01-11 17:52:28 +01:00
Lioncash
e97953130d
BreakPoints: Use character literals for finding single characters
...
The single character find overload is better suited over the one for
finding character sequences.
2017-01-11 10:08:14 -05:00
Lioncash
4e649c60c0
BreakPoints: Make getters const member functions
...
Just const-correctness stuff. The returned collection can't be modified,
so this makes sense.
2017-01-11 10:08:14 -05:00
Lioncash
0f8bcf412d
BreakPoints: Rename variables
...
Drops Hungarian notation where applicable.Drops Hungarian notation where
applicable.
2017-01-11 10:08:11 -05:00
Lioncash
274ab8a262
BreakPoints: Make the memchecks class member private
...
There's no need to make this public.
2017-01-11 10:07:34 -05:00
Markus Wick
f82d6c6fe1
Merge pull request #4644 from leoetlino/no-return-value
...
IOS HLE: Make Device::Update() return void
2017-01-11 15:09:41 +01:00
Mat M
55b82e323c
Merge pull request #4537 from JosJuice/blob-open-less-files
...
Open less files when detecting/opening blobs
2017-01-11 08:30:16 -05:00
Léo Lam
15567ef2bf
IOS HLE: Remove useless overrides in bt_stub
...
Since the Open command won't ever return with the stub, there's no way
we will get a Close/IOCtl/IOCtlV for it, so we don't have to
implement it at all.
2017-01-11 14:06:01 +01:00
Léo Lam
f66aab6381
IOS HLE: Make Device::Update() return void
...
The return value is not used at all, so it's useless to keep it.
And the semantics of the return value were not even well defined.
2017-01-11 14:06:01 +01:00
Lioncash
93c5c0213f
BreakPoints: Convert typedefs into using aliases
2017-01-11 07:59:43 -05:00
Lioncash
50ee01754e
BreakPoints: Add initializers for TBreakPoint and TWatch
...
Ensures all members are consistently initialized.
2017-01-11 07:55:43 -05:00
Lioncash
588374349f
BreakPoints: In-class initialize TMemCheck members
...
Same thing, less code.
2017-01-11 07:53:49 -05:00
JosJuice
b1873264d7
WbfsBlob: Don't wrap file_entry in std::unique_ptr
...
There doesn't seem to be any reason for doing it.
2017-01-11 13:39:46 +01:00
JosJuice
0363be4320
WbfsBlob: Remove m_total_files
...
std::vector already keeps track of this for us.
2017-01-11 13:39:38 +01:00
JosJuice
5c02795af0
WbfsBlob: Only open each file once
...
The first file used to be opened once by
CreateBlobReader and once inside WbfsFileReader.
2017-01-11 13:33:27 +01:00
JosJuice
8d54bbc528
Don't create new IOFiles when creating a blob
...
...except for WBFS, which is special because
it has the ability to open multiple files.
2017-01-11 13:23:23 +01:00
JosJuice
d1ea00ed88
Only open file once when detecting blob type
2017-01-11 13:23:19 +01:00