Commit Graph

18070 Commits

Author SHA1 Message Date
JosJuice 89e60a41eb MemoryUtil: 0 -> nullptr 2017-05-20 09:35:53 +02:00
JosJuice 4b4cf509f8 Remove code for only allocating low memory
This is unnecessary when we have position-independent code.
2017-05-20 09:35:53 +02:00
Michael Maltese 1683c69fb7 DSPAssembler: add WARNPC directive from xkas (technically, from asar)
This adds the WARNPC directive from xkas/asar to complement the existing ORG
directive. A common useful idiom is "WARNPC 0xXXXX\nORG 0xXXXX," which only
seeks forward and raises an error if you've already written to that part
of the file.
2017-05-19 19:53:38 -07:00
Michael Maltese a4cb691058 DSPAssembler: make ORG directive correctly seek forward
The xkas assembler says about org: "You can seek forward and backward
into a file."
2017-05-19 19:53:38 -07:00
Michael Maltese f3c8291c26 DSPAssembler: remove temporary file 2017-05-19 19:53:38 -07:00
Michael Maltese 2fad33cafe DSP-HLE: cleanup PushMail argument names 2017-05-19 19:04:06 -07:00
Michael Maltese 43c09c63d8 AX-HLE: delay sending interrupt when done processing command list
Fixes https://bugs.dolphin-emu.org/issues/10265 (Star Wars: The Clone
Wars hangs on loading screen with DSP-HLE and JIT Recompiler).

The Clone Wars hangs upon initial boot if this interrupt happens too
quickly after submitting a command list. When played in DSP-LLE, the
interrupt lags by about 160,000 cycles, though any value greater than or
equal to 814 will work. In other games, the lag can be as small as 50,000
cycles (in Metroid Prime) and as large as 718,092 cycles (in Tales of
Symphonia!).

All credit to @hthh, who put in a heroic(!) amount of detective work and
discovered that The Clone Wars tracks a "AXCommandListCycles" variable
which matches the aforementioned 160,000 cycles. It's initialized to ~2500
cycles for a minimal, empty command list, so that should be a safe number
for pretty much anything a game does (*crosses fingers*).
2017-05-19 19:04:06 -07:00
Mat M b47d44ab15 Merge pull request #5445 from JosJuice/remove-jitil
Remove JITIL
2017-05-19 21:33:38 -04:00
MerryMage df2fc3c32f ConfigManager: Remove load/save code to INI for SYSCONF settings
These settings are already loaded and saved to the SYSCONF. The INI
load/saves are redundant and do not work anyway because they are
overwritten by SYSCONF.
2017-05-19 23:57:08 +01:00
Starsam80 3229cde292
NANDImporter: Add logging 2017-05-19 16:36:06 -06:00
Starsam80 618eb9f743
NANDImporter: Use a indeterminate progress meter 2017-05-19 16:31:47 -06:00
XeR d30eb7ea70 GeckoCode: install code handler even if no codes are activated
This let users use the gecko code handler debugging protocol with existing
tools even when no gecko codes are enabled.
2017-05-19 23:54:22 +02:00
JosJuice 4dce620130 Merge pull request #5433 from leoetlino/cleanup
Drop remnants of the plugin system
2017-05-19 23:54:09 +02:00
JosJuice 256a0cf4db Remove JITIL 2017-05-19 22:21:07 +02:00
JosJuice 78effbabc6 Replace some usages of IVolume::ReadSwapped with IBlobReader::ReadSwapped
Skips needing to specify PARTITION_NONE.
2017-05-19 21:31:47 +02:00
JosJuice fcb2c5bd29 Remove CBlobBigEndianReader
We can simply put ReadSwapped directly in IBlobReader.
2017-05-19 21:23:00 +02:00
Léo Lam f96ab66d31 Drop remnants of the plugin system 2017-05-19 19:13:16 +02:00
JosJuice ac5c82b36b DiscIO: Remove VolumeCreator
This file is pretty small now that it doesn't handle Wii
partitions anymore, so let's move its contents to Volume.cpp.
This is also more consistent with how blob creation works.
2017-05-19 18:33:21 +02:00
JosJuice 56b218a750 DiscIO: Simplify volume creation
Basically inlining GetDiscType into CreateVolumeFromFilename.
2017-05-19 18:18:43 +02:00
Leo Lam bc5496e119 Merge pull request #5444 from sepalani/code
FrameTools: Prevent dummy code map to be saved
2017-05-19 16:33:40 +02:00
Sepalani 649eb43d98 FrameTools: Prevent dummy code map to be saved 2017-05-19 15:04:11 +01:00
Mat M 1880a97bb0 Merge pull request #4424 from Helios747/remove_more_features
Remove D3D12
2017-05-18 20:04:40 -04:00
Helios747 a465c483f3 Remove D3D12 2017-05-18 17:01:12 -07:00
Mat M 35a8771e68 Merge pull request #5427 from lioncash/host
Host: Get rid of Host_SetStartupDebuggingParameters()
2017-05-18 19:04:25 -04:00
Sepalani e0231d0b30 PPCSymbolDB: Remove biased address check
The appropriate check is already done by PPCAnalyst::AnalyzeFunction.
2017-05-17 19:37:27 +01:00
Tilka 8be41d3b7c Merge pull request #5437 from sepalani/ppc-ibat
PPCAnalyst: Use the proper RAM check
2017-05-17 13:28:13 +01:00
Sepalani aa65ca4b6b PPCAnalyst: Use the proper RAM check 2017-05-17 02:10:26 +01:00
JosJuice fa06d10f4a Merge pull request #2353 from JosJuice/wii-partition-cleanup
VolumeWiiCrypted: Replace ChangePartition with a partition parameter
2017-05-16 23:06:32 +02:00
JosJuice 2bcad57225 Check file system validity before reading opening.bnr
This happened to work without any problems because the only way for a
file system to be invalid was to not have the right GC/Wii magic word
in the unencrypted area, and a volume could not be created without
having the right GC/Wii magic word there. Now that file systems read
the magic word from a partition instead, a fix is needed.
2017-05-16 22:59:01 +02:00
JosJuice 639ce6c484 FileSystemGCWii: Replace m_Wii with m_offset_shift
I replaced m_OffsetShift with m_Wii in bb93336 to support
the decrypt parameter for read functions. Doing that is no
longer necessary, so m_offset_shift is now used like before.
2017-05-16 22:58:57 +02:00
JosJuice 19b8f1c10a VolumeWiiCrypted: Replace ChangePartition with a partition parameter
By removing mutable state in VolumeWiiCrypted, this change makes
partition-related code simpler. It also gets rid of other ugly things,
like ISOProperties's "over 9000" loop that creates a list of
partitions by trying possible combinations, and DiscScrubber's
volume swapping that recreates the entire volume when it needs to
change partition.
2017-05-16 22:58:15 +02:00
JosJuice 74d84c5af2 VolumeWiiCrypted: Turn m_dataOffset into a constant 2017-05-16 22:56:53 +02:00
Michael Maltese 930c165c4e DSPHWInterface: cleanup gdsp_idma_in 2017-05-15 20:33:42 -07:00
Michael Maltese 5f68a0dcdd DSP: cleanup DumpDSPCode and remove temp file write 2017-05-15 15:11:09 -07:00
JosJuice f4e8a01d16 Merge pull request #5431 from leoetlino/change-disc
DVDInterface: Fix a regression with changing discs
2017-05-15 23:57:51 +02:00
Michael Maltese 59c863329d DSP-LLE: calculate code CRC _before_ swapping endianness
- Makes DSP-LLE code checksums the same as those from DSP-HLE. I'm
  assuming DSP-HLE was doing it correctly, since there are numerous
  references to these pre-endian-swapped checksums (including in
  DSPHost.cpp itself).
- Fixes disassembly when dumping code from DSP-LLE, which was using the
  wrong endianness and giving totally bogus output.
- Reveals error messages of the format, "Bah! ReadAnnotatedAssembly
  couldn't find the file ../../docs/DSP/DSP_UC_AX_07F88145.txt," which
  seems to be intended behavior that was previously hidden.
2017-05-15 14:27:39 -07:00
Leo Lam 8e38eca150 Merge pull request #5426 from spycrab/qt_c_refreshbutton
Qt: Implement Wiimote Refresh button
2017-05-15 19:51:49 +02:00
Léo Lam c660dfcbd9 DVDInterface: Fix a regression with changing discs
We were not clearing s_disc_path_to_insert, which would cause disc
changes to be only possible once.
2017-05-15 19:20:29 +02:00
Leo Lam d2d7247ebe Merge pull request #5430 from sepalani/connect-log
IOS/Network: Log IOCTL_SO_CONNECT return value
2017-05-15 18:12:56 +02:00
Sepalani b323c8b34f IOS/Network: Log IOCTL_SO_CONNECT return value 2017-05-15 17:03:03 +01:00
Michael Maltese c67bae5491 DSP-HLE: use DumpDSPCode to de-duplicate logic (and gain disassembly)
This change centralizes all of the path handling and file writing logic
in DumpDSPCode. DSP-HLE also gains the feature of DSP-LLE to
automatically disassemble dumped code and write it to an accompanying
text file.
2017-05-15 02:38:51 -07:00
Michael Maltese f985e0faac DSP: remove unused DSPLLETools
With the relocation of DumpDSPCode to DSPCodeUtils, the only remaining
function in DSPLLETools is DumpCWCode. This function 1) is not used
anywhere (not even in DSPTool), 2) doesn't seem to really do anything,
and 3) has a single comment saying "TODO make this useful :p"
2017-05-15 02:35:56 -07:00
Michael Maltese e4c779de0b DSP: move DumpDSPCode from DSPLLETools to DSPCodeUtil
This code is useful outside of DSP-LLE, and I plan to modify DSP-HLE to
use it in a future commit.
2017-05-15 02:34:43 -07:00
Michael Maltese edb16cd399 DSP-LLE: dump code if m_DumpUCode instead of DEBUG
This change makes the behavior consistent with that of DSP-HLE.
2017-05-15 02:33:50 -07:00
spycrab 4bf9f5e835 Qt: Implement Wiimote Refresh button 2017-05-15 05:14:45 +02:00
Lioncash 7baabe99d1 Host: Get rid of Host_SetStartupDebuggingParameters()
This is something that should be the responsibility of the frontend
booting the game. Making this part of the host 'interface' inherently
requires frontends to leak internal details (much like the other
UI-related functions in the interface).

This also decouples more behavior from the debugger and the
initialization process in the wx frontend. This also eliminates several
usages of the parent menubar in the debugger code window.
2017-05-14 19:12:59 -04:00
JosJuice 1e56972e4f Make Load_BS2's MSR poking more readable 2017-05-14 23:56:19 +02:00
JosJuice a6283f6eec Use SetupBAT in Load_BS2 2017-05-14 23:56:19 +02:00
JosJuice 4726c9075f Split SetupBAT into SetupMSR and SetupBAT 2017-05-14 23:56:19 +02:00
Leo Lam ed5e98c3cc Merge pull request #5419 from leoetlino/import-code-reuse
Reuse the IOS code for WAD installation
2017-05-14 23:35:43 +02:00
Leo Lam 072b24a3d2 Merge pull request #5425 from sepalani/get-interface-opt
IP/Top: Implement GetInterfaceOpt hardcoded cases
2017-05-14 23:27:53 +02:00
JosJuice 405643b902 VolumeWiiCrypted: Use std::min 2017-05-14 22:52:21 +02:00
JosJuice 5c46810a36 VolumeWiiCrypted: Store last decrypted offset instead of block number
This makes it unnecessary to reset m_last_decrypted_offset
when changing partition.
2017-05-14 22:52:21 +02:00
Sepalani 6ba8130e11 IP/Top: Implement GetInterfaceOpt hardcoded cases 2017-05-14 21:47:41 +01:00
JosJuice 651340826d Merge pull request #5424 from lioncash/override
MEGASignatureDB: Add missing override specifiers
2017-05-14 22:39:14 +02:00
Lioncash 198d686a41 MEGASignatureDB: Add missing override specifiers 2017-05-14 16:20:45 -04:00
JosJuice 486de022df Don't run EmulatedBS2_Wii with VolumeDirectory
VolumeDirectory doesn't support necessities like TMDs,
so thanks to 5.0-2172 (18968ab), EmulatedBS2_Wii crashes
when the inserted disc is a VolumeDirectory.
This commit fixes that.

This commit makes our DOL booting code very similar to our
ELF booting code. One exception is that the DOL booting
code still always calls SetupBAT. (Note that EmulatedBS2_GC
calls SetupBAT even if no disc is inserted.) I'm not sure
if there's a point to the difference, but I thought I'd
better avoid changing it so that I don't break anything.
2017-05-14 22:01:36 +02:00
Leo Lam 2fca1b925f Merge pull request #4241 from JosJuice/remove-getvolume
Remove DVDInterface::GetVolume
2017-05-14 21:46:28 +02:00
JosJuice 2a2db16087 DVDInterface: Remove GetVolume
For thread safety reasons, the currently inserted volume must
only be accessed by the DVD thread (or by the CPU thread if it
calls DVDThread::WaitUntilIdle() first). After this commit,
only DVDThread.cpp can access the volume, which prevents code in
other files from accessing the volume in a non-threadsafe way.
2017-05-14 21:11:46 +02:00
Léo Lam aa3dc9a057 IOS/ES: Consider hidden channels/system menu as channels 2017-05-14 17:39:42 +02:00
Léo Lam c8bffb0153 Reuse the IOS code for WAD installation
* Less code and logic duplication.

* Fixes a bug with the data dir not being created, steps being done in
  the wrong order.
2017-05-14 15:30:42 +02:00
Léo Lam afcda22da9 DiscIO: Add GetContent() for reading content from WADs
Direct access to the WAD bytes is required to read contents with proper
padding data (since they can sometimes end up being outside of the
data app section). Allowing the whole buffer to be accessed directly
would be error prone, so this commit adds GetContent() to WiiWAD
for getting raw content data by index.
2017-05-14 15:30:42 +02:00
Léo Lam 6916a3d85b Hide non-channel WADs
These cannot be booted, so it is bad UX to show them in the UI as if
they were regular titles, and yet have different behaviour for them.

And technically, there is no reason to allow them to be used to boot
in the first place.

Another reason they should not be shown is that Dolphin fails
spectacularly with WADs that have a valid boot content index, but are
not PPC titles (e.g. IOS WADs). The only reliable way to avoid this
is to check for the title type and only show channels, just like
the Wii System Menu.
2017-05-14 15:30:42 +02:00
Léo Lam 2058f37596 IOS/ES: Implement ImportTitleCancel properly
Mistakenly used the wrong TMD to clean up the import.

The original TMD is the one that is supposed to be used when
cancelling an import, but I forgot it's in the /import directory after
starting an import.
2017-05-14 15:30:39 +02:00
Léo Lam 5587342ca1 IOS/ES: Expose title management ioctlvs
This exposes all ES title management ioctlvs to avoid duplicating IOS
code everywhere and to make it easier to reuse (since this way it's
not unnecessarily tied to the PPC IPC mechanism anymore) and unit test.

Some functions were also renamed for consistency with the other names,
*and* with official names.
2017-05-14 15:30:09 +02:00
Léo Lam f8ffcb2483 IOS/ES: Remove unused struct 2017-05-14 15:30:08 +02:00
Leo Lam ad27e90263 Merge pull request #5420 from JosJuice/elf-setupbat
Use SetupBAT in Boot_ELF
2017-05-14 15:29:27 +02:00
JosJuice 41b3b05cfe Use SetupBAT in Boot_ELF
Sigh...
2017-05-14 15:18:58 +02:00
JosJuice 5a55957741 Boot: Pass volume as argument to functions
Avoids using DVDInterface's global state in the boot process.
2017-05-14 13:29:47 +02:00
Leo Lam 690e61b997 Merge pull request #5417 from leoetlino/constructor
IOS: Fix AddCoreDevices being called twice
2017-05-13 23:20:22 +02:00
JosJuice 807e242d05 DVDInterface: Replace SetVolume functions
It's better to just let the calling code provide a volume
object instead of needing one SetVolume for each way of
creating a volume. This simplifies InsertDiscCallback and
is needed for the following commits.
2017-05-13 22:56:11 +02:00
Léo Lam adf9218e74 IOS: Fix AddCoreDevices being called twice
Also make sure m_title_id is set as soon as possible.
2017-05-13 22:14:29 +02:00
shuffle2 0f504e7a84 Merge pull request #5416 from lcsondes/d3d12-build-fix
VS2017 build fix after upgrading project
2017-05-13 13:10:02 -07:00
shuffle2 67d640bd12 Merge pull request #5376 from ligfx/fixfourswordshle
[RFC] Tweaks to Zelda-HLE to allow multiple GBA connections
2017-05-13 13:06:02 -07:00
lcsondes 94be591606 VS2017 build fix after upgrading project 2017-05-13 20:34:27 +01:00
Tilka 327180daa7 Merge pull request #5415 from MerryMage/frame-toggle-dual-core
Frame: Remove unused member function OnToggleDualCore
2017-05-13 20:15:42 +01:00
MerryMage c68c6d0f2d Frame: Remove unused member function OnToggleDualCore 2017-05-13 19:43:49 +01:00
Anthony 6cf0377ef8 Merge pull request #5386 from sepalani/ppc-analyst-target
PPCAnalyst: Fix annoyances
2017-05-13 09:03:34 -07:00
Tilka d95b82abc3 Merge pull request #5413 from leoetlino/dsphle-fixes
DSPHLE: Typo fix
2017-05-13 15:59:15 +01:00
MerryMage bd3e493695 Section: Fix Section::Get 2017-05-13 15:22:29 +01:00
MerryMage af33ae0e02 Core: Move ConfigLoaders to a ConfigLoaders filter 2017-05-13 15:22:28 +01:00
MerryMage dd9e622155 GameConfigLoader: Fix blank keys for variable sections 2017-05-13 15:22:26 +01:00
Léo Lam df63638b4a DSPHLE: Fix a typo in the savestate code
https://github.com/dolphin-emu/dolphin/pull/5306#discussion_r112840565
2017-05-13 16:08:12 +02:00
JosJuice 9e8293f5e3 Boot: Small simplifications and formatting cleanup 2017-05-13 12:13:33 +02:00
JosJuice 42370e4b5b Use console-appropriate SetupBAT when booting DOL files 2017-05-13 09:24:06 +02:00
Matthew Parlane fe71836127 Merge pull request #5409 from sepalani/vcxproj
Fix DolphinWX.vcxproj.filters
2017-05-13 14:27:38 +12:00
Tilka f77fc55568 Merge pull request #5306 from leoetlino/dsphle-ptrs
DSPHLE: Use unique_ptr for ucodes
2017-05-13 03:25:54 +01:00
Sepalani cc1f4c951f Fix DolphinWX.vcxproj.filters 2017-05-13 01:40:03 +01:00
Leo Lam ea89e8566e Merge pull request #5391 from leoetlino/delete-title-content
IOS/ES: Implement DeleteTitleContent properly
2017-05-13 00:48:28 +02:00
Leo Lam dae46fa3d2 Merge pull request #5385 from douglasjv/master
Fix for Emulator Issue #10267: Game list column sizes are being incorrectly calculated.
2017-05-13 00:41:16 +02:00
Leo Lam a44fa16601 Merge pull request #5370 from Ryanel/qt-settings-general
Qt: Add General Pane to Settings
2017-05-13 00:37:31 +02:00
Léo Lam bacf52384f IOS/ES: Implement DeleteTitleContent properly
Just like DeleteTitle, Using CNANDContentManager is overkill,
inefficient and useless. And it results in a few failures in
situations where a delete should just always work.

But here it gets bonus points, because it manages to actually use
the TMD for deleting contents, when IOS does none of that and just
deletes files ending with .app in the title content directory. :)
2017-05-13 00:34:58 +02:00
Léo Lam 12801fd722 IOS: Allow instances that are not tied to emulation
This enables constructing an IOS instance that is not tied to emulation
and that can be simply used for internal purposes (ES, FS).

NAND root initialisation was moved to IOS since we cannot rely on HW
doing that for us anymore, and technically the NAND is entirely managed
by IOS anyway.
2017-05-13 00:34:58 +02:00
Leo Lam f4e115b322 Merge pull request #5406 from JosJuice/refactor-emulatedbs2
Boot: Refactor EmulatedBS2
2017-05-13 00:31:11 +02:00
Léo Lam 8a9075ac1d DSPHLE: Use unique_ptr for ucodes 2017-05-12 23:55:13 +02:00
spycrab dd54f3c0c1 Qt: Fix Interface Pane 2017-05-12 20:56:00 +02:00
JosJuice 20f7a7a3e3 Boot: Read apploader trailer for Wii discs too
This was probably an oversight from back when the code
was duplicated between EmulatedBS2_GC and EmulatedBS2_Wii.
2017-05-12 18:49:00 +02:00
JosJuice 22c499aafe Boot: Deduplicate code by creating a RunApploader function 2017-05-12 18:00:17 +02:00
JosJuice 5e1fb1a596 Boot: Deduplicate code by creating a SetupBAT function 2017-05-12 17:53:15 +02:00
Corwin McKnight e8a214ad14 Qt: Fix how Icons are assigned in Settings Window. 2017-05-11 13:14:47 -07:00
Corwin McKnight a2d2acf741 Qt: Add General Pane to Settings
Replace SConfig references with Settings()
2017-05-11 12:40:14 -07:00
Anthony 33980d816a Merge pull request #5378 from Ryanel/qt-settings-interface
Qt: Add Interface Pane to Settings
2017-05-11 11:19:27 -07:00
Leo Lam ade0e51a78 Merge pull request #5403 from leoetlino/formatting
Config: Fix a formatting issue
2017-05-10 20:33:59 +02:00
Anthony eab243d6ee Merge pull request #5402 from spycrab/qt_gamelist_cfix
Qt: Fix that some columns are not hidden properly
2017-05-10 11:30:52 -07:00
Léo Lam 6185933d18 Config: Fix a formatting issue
Not sure why clang-format did not catch this on the lint builder, but
it definitely doesn't like the lines being too long here.
2017-05-10 17:56:09 +02:00
spycrab 4d4dc03801 Qt: Fix that some columns are not hidden properly 2017-05-10 11:04:21 +02:00
Leo Lam f1f8beef25 Merge pull request #5397 from MerryMage/do-not-cast-derived-to-base
Config/Layer: Fix accidental cast of RecursiveSection to Section
2017-05-09 23:27:46 +02:00
Léo Lam 6b8cb2ee41 IOS/ES: Handle fake-signed tickets properly
Fake-signed tickets have a bogus common key index, in which case we
must assume and use the normal common key to decrypt contents.
2017-05-09 20:58:20 +02:00
spycrab c8d0b647ac Qt: Add controller (overview) window 2017-05-09 18:49:10 +02:00
Anthony f8ca0901a7 Merge pull request #5395 from spycrab/qt_gamelist_columns
Qt: Bring Gamelist up to Wx standards
2017-05-09 08:31:31 -07:00
Douglas 3e1cc46523 Fix for Emulator Issue #10267: Game list column sizes are being incorrectly calculated.
Default column width was being used for  math related to automatic column sizing, in the case of COLUMN_SIZE the default width was -1  which resulted in an issue where an errant scrollbar would appear.
2017-05-08 17:40:42 -07:00
MerryMage 32d9428171 Config/Layer: Fix accidental cast of RecursiveSection to Section 2017-05-09 00:17:00 +01:00
spycrab 6bf7b5ff0f Qt: Bring Gamelist up to Wx standards 2017-05-08 19:03:59 +02:00
Corwin McKnight 8112c736fe Qt: Interface Pane
Adds the interface pane to Qt Settings. Very basic, just some UI
customization options.
2017-05-07 12:57:13 -07:00
Leo Lam 9f39fa2e13 Merge pull request #5380 from JosJuice/minor-text-fixes
Minor text fixes
2017-05-07 21:04:30 +02:00
JosJuice 994b4040bf NetPlaySetupFrame: Remove spaces that shouldn't be present 2017-05-07 20:55:58 +02:00
JosJuice b8721b6839 Unify memory breakpoint strings
The MemoryWindow.cpp strings should be the same as the
MemoryCheckDlg.cpp strings so that translators don't
have to translate very similar strings twice.

Also adding i18n comments. These strings are *very* easy
to misinterpret in my opinion.
2017-05-07 20:55:34 +02:00
Léo Lam 57f8520242 WX: Don't create data dir if it is missing
This is unsafe, because the NAND should not be accessed and messed with
while it is being used. In fact, this kind of inappropriate behaviour
will not be possible when we get NAND image support.

And even if there were no safety issue, there is still no reason
a *getter* function should *do* something that has lasting effects
on user data. GetWiiFSPath() should *just* return a path!
2017-05-07 18:56:54 +02:00
Léo Lam eff8c1eb48 Merge pull request #5383 from JosJuice/getwiifspath-condition
ISOFile/GameFile: Correct GetWiiFSPath condition
2017-05-07 18:48:43 +02:00
Léo Lam 71400745cc Merge pull request #5356 from sepalani/hle-app
HLE: Use a proper apploader OSReport
2017-05-07 18:45:58 +02:00
Léo Lam 18b1ee59ed Merge pull request #5389 from leoetlino/delete-title
IOS/ES: Fix DeleteTitle to not use CNANDContentManager
2017-05-07 17:14:04 +02:00
Léo Lam 131aeec580 Boot_WiiWAD: Set the UID and GID on launch
This adds code to update the PPC's UID and GID, which fixes a
regression with the system menu. Ideally, we would simply rely on IOS's
ES_Launch here and not duplicate the logic here, but we cannot do that
properly until the direct WAD launch hack is dropped, *and* until the
IOS changes that would enable internal calls are ready.

Since this fixes a semi-important regression with managing saves from
the SM, and the duplication is not too terrible, I believe it is a good
idea to get this fixed right now to avoid affecting users too much.

I do plan to fix this properly in the future.
2017-05-07 17:02:36 +02:00
Léo Lam 3cdb8fd297 IOS/ES: Fix DeleteTitle to not use CNANDContentManager
* CNANDContentManager does things that are absolutely useless. In
  particular, it parses the ticket, the TMD, reads contents, etc.
  when we only need to remove the title directory.

* This means it will fail if the ticket cannot be found, when that
  should not be the case.

* This also obviously caused DeleteTitle to be incredibly inefficient.

* We are already removing the title directory later in the function,
  as CNANDContentManager does not even delete titles correctly.
  DeleteTitle != DeleteTitleContents.
2017-05-07 16:20:41 +02:00
Léo Lam cc5b5c15ac IOS/ES: Fix a ticket validity check 2017-05-07 16:16:41 +02:00
Corwin McKnight 24657f557e Qt: Port help menu items. 2017-05-07 03:47:10 -07:00
JosJuice 9b8089bb70 ISOFile: Simplify error handling in GetWiiFSPath 2017-05-07 09:28:20 +02:00
JosJuice 55960f7feb ISOFile/GameFile: Correct GetWiiFSPath condition
This code was originally written when there only were three
possible types, but nowadays we also have the DOL/ELF type.
2017-05-07 09:27:20 +02:00
Sepalani 40c243df28 PPCAnalyst: Fix off by one instruction 2017-05-07 04:56:16 +01:00
Sepalani 93ba6aa9f2 PPCAnalyst: Function calls without link added 2017-05-07 04:55:36 +01:00
Sepalani 95d0a48759 PPCAnalyst: EvaluateBranchTarget improved 2017-05-07 04:55:36 +01:00
Mat M ef4a1f0ec7 Merge pull request #5384 from leoetlino/disable
WX: Disable NAND import when emulation is running
2017-05-06 19:38:07 -04:00
Léo Lam 6426ea2b1a WX: Disable NAND import when emulation is running
Oversight from the NAND import PR. Allowing this while Wii
emulation is running is a recipe for failure.
2017-05-07 01:30:44 +02:00
JosJuice 71d105e545 DolphinWX: Use title ID from ISOFile when possible
This skips creating volume objects, which can take a while.
2017-05-06 18:39:51 +02:00
JosJuice 40653a6607 NandPaths: Make .h function order match .cpp 2017-05-06 17:51:50 +02:00
JosJuice 36b9e3dd35 Don't duplicate code for getting paths based on title IDs
I've seen the expression (u32)(title_id >> 32), (u32)title_id
a few more times in my life than I would've liked to...
2017-05-06 17:45:08 +02:00
Sepalani 21183db4df CodeView: Remove accelerator duplicates 2017-05-06 13:18:12 +01:00
Sepalani 960344d64d CodeView: Set Symbol End Address added 2017-05-06 13:18:11 +01:00
Sepalani 7f552581e7 CodeView: Set Symbol Size added 2017-05-06 13:18:00 +01:00
Léo Lam f4179f45b4 Merge pull request #5373 from leoetlino/delete-ticket
IOS/ES: Fix the implementation of ES_DeleteTicket
2017-05-06 13:59:11 +02:00
Léo Lam a24ad85463 Merge pull request #5332 from spycrab/wiimote_casts
Clean up Wiimote* code (comments, casts, underscore variable names)
2017-05-06 13:27:04 +02:00
spycrab c3f435287e Clean up Wiimote* code (comments, casts, variable names) 2017-05-06 12:44:56 +02:00
Markus Wick b4aaf806ec Merge pull request #5372 from JonnyH/WIP/powervr-fixes
Add a workaround for a PowerVR glsl compiler bug
2017-05-05 12:17:25 +02:00
Michael Maltese b14466b7e3 Zelda-HLE: set state to waiting when replacing ucode
Part 2/2 of a fix for using multiple GBAs in Four Swords Adventures.
2017-05-05 02:25:42 -07:00
Michael Maltese 01cc36693a Zelda-HLE: run pending commands when replacing ucode
Part 1/2 of a fix for using multiple GBAs in Four Swords Adventures.
2017-05-05 02:24:53 -07:00
Léo Lam 5fb2ad2b3a IOS/ES: Fix the implementation of ES_DeleteTicket
* It should take a ticket view, not a title ID.
* It's missing a lot of checks.
* It's not deleting tickets properly.
* It's not deleting only the ticket it needs to delete.
* It should not return -1017 when the ticket doesn't exist.
* It's not returning the proper error code when a read/write fails.
* It's not cleaning up the ticket directory if there is nothing left.

This commit fixes its implementation.
2017-05-05 00:32:58 +02:00
Léo Lam a7680a3d1a IOS/ES: Drop code handling non-RSA2048 tickets
* Supporting other ticket types makes the logic slightly more complex.

* There have been no such non-RSA2048 tickets seen during the Wii's
  lifetime.

* The Wii's IOS doesn't even have support for them.
2017-05-05 00:32:57 +02:00
Léo Lam e9571106c2 Merge pull request #5353 from spycrab/qt_contextmenu
Qt: Add missing gamelist contextmenu options
2017-05-04 23:47:21 +02:00
spycrab 2f523afc41 Qt: Add missing gamelist contextmenu options 2017-05-04 23:01:12 +02:00
Léo Lam 5088fac54b Merge pull request #5354 from leoetlino/iosc
IOS: Implement IOSC-like library (+ bug fixes)
2017-05-04 19:58:47 +02:00
Anthony dc4f8dd70b Merge pull request #5345 from JosJuice/consistent-controller-translation
Use _trans consistently for controllers
2017-05-04 09:00:41 -07:00
Jonathan Hamilton 35caf48d7d Add a workaround for a PowerVR glsl compiler bug
It seems it doesn't like negating arguments for bitops, so suff like
"var <<= (-othervar);"
fails to compile
2017-05-03 19:33:56 -07:00
Mat M f3052b7a15 Merge pull request #5318 from ligfx/cmakehidapi
CMake: clean up HIDAPI build
2017-05-03 19:54:06 -04:00
Tilka 2c817545fd Merge pull request #5368 from ligfx/bluezcmake
CMake: only look for Bluez on Linux
2017-05-04 00:32:44 +01:00
Michael Maltese 5230a8c996 CMake: only look for Bluez on Linux
Stops CMake from saying "BlueZ NOT found, disabling bluetooth support"
on other OSes. Windows, macOS, and Android support Bluetooth using other
libraries. I'm not sure if non-Linux, non-Android Unices (like FreeBSD)
need another message?
2017-05-03 15:15:47 -07:00
degasus 7389f0f55e Analytics: Set proper thread name. 2017-05-03 23:59:29 +02:00
degasus afb0beb9ab OpenGL: Mute nvidia performance warning about stalling the GPU.
They are right, our perf query implementation is terrible.
But raising a warning makes it just even slower.
2017-05-03 23:48:14 +02:00
degasus 90d551e0d1 JitArm64: Drop ps_res.
The accuracy doesn't match ppc, and worse, it doesn't set the error flags if the input is zero.

Lets stop to ship broken instructions, so right now, the interpreter is the closest one.
2017-05-03 23:48:14 +02:00
Markus Wick eaa4565e63 Merge pull request #5362 from Tilka/hash
Common/Hash: small cleanup
2017-05-03 23:44:48 +02:00
Tillmann Karras 5c93c98c05 JitArm64: fix ps_res 2017-05-03 08:02:35 +01:00
Tillmann Karras c54c49714d Arm64Emitter: add FRECPE 2017-05-03 08:02:35 +01:00
Tillmann Karras 3a13e1aa7a Common/Hash: small cleanup 2017-05-03 06:40:52 +01:00
Tillmann Karras 25f61f0329 Common/Hash: use __crc32d() intrinsic on ARM64 2017-05-03 06:40:47 +01:00
Anthony e4e37b3a82 Merge pull request #5255 from MerryMage/latency
ConfigManager: Increase default latency for OpenAL backend to 5
2017-05-02 22:18:58 -07:00
Michael Maltese 89eb019788 SignatureDB: fix prevented copy elision
Clang warning:

```
Source/Core/Core/PowerPC/SignatureDB/SignatureDB.cpp:22:17: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
    : m_handler(std::move(CreateFormatHandler(handler)))
                ^
Source/Core/Core/PowerPC/SignatureDB/SignatureDB.cpp:22:17: note: remove std::move call here
    : m_handler(std::move(CreateFormatHandler(handler)))
                ^~~~~~~~~~                            ~
```
2017-05-02 20:01:32 -07:00
Anthony ad829ec7a9 Merge pull request #5232 from MerryMage/osx-screensaver
Disable screensaver on OS X
2017-05-02 19:00:21 -07:00
Mat M 7c3905a612 Merge pull request #5140 from sepalani/signature_db
SignatureDB: Rewrite FormatHandler API
2017-05-02 19:23:46 -04:00
Mat M c51e40f92f Merge pull request #5357 from ligfx/jitintegerwarning
Jit64: fix braces warning in Jit_Integer
2017-05-02 18:44:02 -04:00
Michael Maltese f04747e910 NANDImporter: fix printf warning
Fixes warning:

```
Source/Core/DiscIO/NANDImporter.cpp:55:17: warning: format specifies type 'unsigned long' but the argument has type 'u64' (aka 'unsigned long long') [-Wformat]
                file.GetSize(), NAND_BIN_SIZE);
                ^~~~~~~~~~~~~~
1 warning generated.

```
2017-05-02 15:13:46 -07:00
Léo Lam 08f6c31287 IOS: Reuse more code for crypto operations
This changes some parts of IOS (actually just ES) to reuse more crypto
code from IOSC or Common::AES.

TicketReader still returns the title key directly as opposed to having
ES use IOSC directly to avoid duplicating the title key IV stuff.

Side effects:

* A nasty unbounded array access bug is now fixed.

* ES_Decrypt/ES_Encrypt now returns sane results for keys other than
  the SD key.

* Titles with a Korean ticket can now be decrypted properly.

And in the future, we can look into implementing ioctlv 0x3c and 0x3d
now that we have the proper "infra" for IOSC calls.
2017-05-02 23:49:22 +02:00
Léo Lam f8fb9e2d03 IOS: Implement IOSC-like API
This prevents the IOS crypto code and keys from being spread over
the codebase. Things only have to be implemented once, and can be
used everywhere from the IOS code.

Additionally, since ES exposes some IOSC calls directly (DeleteObject
and Encrypt/Decrypt), we need this for proper emulation.

Currently, this only supports AES key objects.
2017-05-02 23:49:22 +02:00
Léo Lam e01624f64b IOS: Add/move some useful enums/structs 2017-05-02 23:49:21 +02:00
spycrab f18dd7550a Qt: Fix no games at all showing up all 2017-05-02 23:42:55 +02:00
Michael Maltese b5223fb15f Jit64: fix braces warning in Jit_Integer
Fixes a warning:

```
Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp:54:45: warning: suggest braces around initialization of subobject [-Wmissing-braces]
  static const std::array<u8, 4> ovtable = {0, 0, XER_SO_MASK, XER_SO_MASK};
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            {                             }
```
2017-05-02 14:30:28 -07:00
Anthony 0031a490c1 Merge pull request #5355 from spycrab/qt_duplicate_entry
Qt: Fix gamelist updating
2017-05-02 12:52:53 -07:00
Sepalani 0f74f1ffb3 HLE: Use a proper apploader OSReport 2017-05-02 20:47:47 +01:00
Anthony d4e424fad5 Merge pull request #5272 from spycrab/master
Convert VolumeDirectory names back to SHIFT-JIS (issue #9988)
2017-05-02 11:41:53 -07:00
spycrab 7455c9bf51 Qt: Fix gamelist updating 2017-05-02 17:38:47 +02:00
JosJuice 252bb4471d Merge pull request #5350 from lioncash/frame
Frame: Normalize member names
2017-05-02 15:34:50 +02:00
Matthew Parlane e9ad0ec612 Merge pull request #5322 from ligfx/cleanfifofile
FifoPlayer: replace union structures with explicit byte padding
2017-05-02 13:16:24 +12:00
Anthony 86a8a3f656 Merge pull request #5352 from spycrab/qt_gamelist_icons
Qt: Fix platform icons
2017-05-01 14:02:40 -07:00
Pierre Bourdon e9349cf029 Merge pull request #5283 from spycrab/issue_9622
Make ENABLE_ANALYTICS=0 do something (Issue #9622)
2017-05-01 21:09:55 +02:00
spycrab e66ad018f4 Convert VolumeDirectory names back to SHIFT-JIS (issue #9988) 2017-05-01 14:08:47 +02:00
spycrab 13ca98923b Qt: Fix platform icons 2017-05-01 13:40:23 +02:00
Léo Lam 3be987be40 IOS/ES: Extend the "fake IOSes" hack to netplay/TAS
Netplay uses a blank NAND, which means that homebrew launchers like
Gecko will force users to install IOSes.

Expecting netplay users to have a proper NAND setup is unrealistic,
and we don't actually give them a good way of syncing NANDs, so
let's extend the hack to netplay/TAS until we have a better way
of dealing with the issue.
2017-05-01 11:32:27 +02:00
Lioncash 9e71031e23 Frame: Normalize member names 2017-05-01 05:13:19 -04:00
Mat M 1bad3bef4b Merge pull request #5344 from lioncash/table
MemoryWindow: Minor cleanup
2017-04-30 18:32:29 -04:00
Mat M 344767a258 Merge pull request #5336 from JosJuice/memcard-shiftjis
Fix display of Japanese text in the Memory Card Manager
2017-04-30 18:22:47 -04:00
Mat M d5534e069c Merge pull request #5334 from spycrab/wx_gamelist_cleanup
Refactor GameListCtrl
2017-04-30 18:21:50 -04:00
Mat M eb8dbe03ad Merge pull request #5349 from JosJuice/more-incorrect-trans
Remove incorrect usage of _trans
2017-04-30 18:20:19 -04:00
Mat M 4f2ecf03b3 Merge pull request #5348 from JosJuice/host-code-ip-address
Mark "Host Code:" and "IP Address:" as translatable
2017-04-30 18:19:21 -04:00
Léo Lam 8e2028e8da Merge pull request #5340 from leoetlino/ios-reorg
IOS: Convert the IOS kernel HLE code to a class
2017-04-30 18:03:32 +02:00
Léo Lam 58fe0f12a4 IOS: Reorder functions in IOS.cpp
Puts them in a more logical order.
2017-04-30 17:18:53 +02:00
Léo Lam 2fc5047d26 IOS: Convert the IOS kernel HLE code to a class
This changes the main IOS code (roughly the equivalent of the kernel)
to a class instead of being a set of free functions + tons of static
variables.

The reason for this change is that keeping tons of static variables
like that prevents us from making an IOS instance and reusing IOS
code easily.

Converting the IOS code to a class also allows us to mostly decouple
IOS from the PPC emulation.

The more interesting changes are in Core/IOS/IOS. Everything else is
mostly just boring stuff required by this change...

* Because the devices themselves call back to the main IOS code
  for various things (getting the current version, replying to a
  request, and other syscall-like functions), just like processes in
  IOS call kernel syscalls, we have to pass a reference to the kernel
  to anything that uses IOS syscalls.

* Change DoState to save device names instead of device IDs to simplify
  AddDevice() and get rid of an ugly static count.

* Change ES_Launch's ack to be sent at IOS boot, now that we can do
  this properly.
2017-04-30 17:18:53 +02:00
JosJuice 8b5980f33e Remove incorrect usage of _trans
It only marks a string for translation. It doesn't actually do anything
at runtime, so the string will always be displayed in English. Even if
we would've had a way to make the translation work, we shouldn't
translate this, because OSD doesn't support non-ASCII characters.
2017-04-30 15:15:08 +02:00
JosJuice f92331b925 Mark "Host Code:" and "IP Address:" as translatable
Also remove some spaces before colons.
2017-04-30 15:09:57 +02:00
JosJuice b248016e41 Mark "Recenter" for translation 2017-04-30 14:05:05 +02:00
JosJuice 0e93c18902 Use _trans consistently for controllers
Some strings were marked with _trans in some places but not
others. This commit adds extra _trans markers so that the
usage of _trans is consistent.

This shouldn't have any effect on which strings actually get
translated. (Note that _trans doesn't do anything at runtime.)

I also added a few new i18n comments.
2017-04-30 14:04:21 +02:00
Lioncash 683462679b MemoryWindow: Remove unused member variable 2017-04-30 06:35:59 -04:00
Lioncash 9a778786df MemoryWindow: Convert event table over to bound events
Event tables are the old method of performing event binding.
2017-04-30 06:35:41 -04:00
Lioncash aad9fd6751 MemoryWindow: Localize sizer creation code
Keeps specific UI element initialization separate from one another.
2017-04-30 06:20:26 -04:00