JosJuice
363547a5b2
Boot: Make EmulatedBS2 require a volume
2017-08-01 16:05:53 +02:00
JosJuice
eb6f0a7258
Boot: Remove volume parameter from SetupWiiMemory
2017-08-01 16:05:20 +02:00
JosJuice
42d7dc2e08
Boot: Remove skip_app_loader parameter
2017-08-01 16:04:15 +02:00
JosJuice
fea75d045c
Boot: Split out some code to a new function SetupGCMemory
...
Just like the existing function SetupWiiMemory.
2017-08-01 16:03:55 +02:00
JosJuice
b6c6a04f95
DirectoryBlob: Standardize the spelling of disc
...
DirectoryBlob was using disk in some places and disc in other places.
2017-08-01 11:36:40 +02:00
JosJuice
d0c322f6e6
DirectoryBlob: Don't silently set GC region to NTSC-J if bi2.bin is missing
...
We were already handling the Wii region in region.bin in this way.
2017-08-01 11:36:40 +02:00
JosJuice
3fd0d39a85
DirectoryBlob: Write partition headers properly
2017-08-01 11:36:40 +02:00
JosJuice
09832caf41
DolphinQt2: Fix memory leak in GameLoader::LoadGame
2017-08-01 11:36:40 +02:00
JosJuice
a6be1513bf
DolphinWX: Increment game list cache version
...
This is so that DirectoryBlobs won't look like valid discs
in old versions that don't support the DirectoryBlob format.
2017-08-01 11:36:40 +02:00
JosJuice
5fe3745750
Don't show "extra" files from DirectoryBlobs in game list
...
For instance, we don't want to show TGC files that might be
inside the /files/ directory of a GameCube DirectoryBlob,
and we don't want to show the /sys/main.dol files for extra
partitions of Wii DirectoryBlobs.
2017-08-01 11:36:40 +02:00
JosJuice
1ea44f425d
DirectoryBlob: Change ConvertUTF8NamesToSHIFTJIS's parameter to pointer
2017-08-01 11:36:40 +02:00
JosJuice
34fd08e7eb
DirectoryBlob: Support multiple partitions
2017-08-01 11:36:40 +02:00
JosJuice
955ab72b1d
DirectoryBlob: Remove m_root_directory from DirectoryBlob
2017-08-01 11:36:40 +02:00
JosJuice
e15b957d53
DirectoryBlob: Implement GetDataSize()
2017-08-01 11:36:40 +02:00
JosJuice
d84bee3ff4
DirectoryBlob: Prepare more for supporting multiple partitions
2017-08-01 11:36:40 +02:00
JosJuice
a3ee61e1a9
DirectoryBlob: Let DirectoryBlob force GC/Wii for partition
2017-08-01 11:36:40 +02:00
JosJuice
fb09874f79
DirectoryBlob: Reorder functions in .cpp file
...
They're now grouped by which class they belong to.
2017-08-01 11:36:40 +02:00
JosJuice
ba0ee3f54b
DirectoryBlob: Prepare for supporting multiple partitions
2017-08-01 11:36:40 +02:00
JosJuice
953ca9cee1
DirectoryBlob: Make PadToAddress and Write32 static
2017-08-01 11:36:40 +02:00
JosJuice
ab4762c4c2
DirectoryBlob: Split out setting BI2 to new function
2017-08-01 11:36:40 +02:00
JosJuice
2ea0a1a086
DirectoryBlob: Make some constants local
2017-08-01 11:36:40 +02:00
JosJuice
0d4ad0e39e
DirectoryBlob: Remove m_fst_name_offset
2017-08-01 11:36:40 +02:00
JosJuice
ef39b4da46
DirectoryBlob: Improve SetApploader
...
The code gets simpler by using IOFile instead of ReadFileToString.
Also, we now write -1 in all cases where loading fails.
2017-08-01 11:36:40 +02:00
JosJuice
31d8322c5a
DirectoryBlob: Don't use member variables for addresses
...
Now it's clearer that SetDOL depends on SetApploader
and BuildFST depends on SetDOL.
As a side note, we now load the DOL even if there's
no apploader. (I don't think it matters whether we
do it, but it was easier to implement this way.)
2017-08-01 11:36:40 +02:00
JosJuice
b28ec0b7ee
DirectoryBlob: Split out setting partition table to new function
2017-08-01 11:36:40 +02:00
JosJuice
c4879aa48d
DirectoryBlob: Split out setting TMD and ticket to new function
2017-08-01 11:36:40 +02:00
JosJuice
5a00bda490
DirectoryBlob: Move content emplacement out of the constructor
2017-08-01 11:36:40 +02:00
JosJuice
1258d18f21
DirectoryBlob: Restructure SetApploader
2017-08-01 11:36:40 +02:00
JosJuice
8747b1b6ab
DirectoryBlob: Support region.bin
2017-08-01 11:36:40 +02:00
JosJuice
c73f6b6c26
DirectoryBlob: Add ReadFileToVector function
2017-08-01 11:36:40 +02:00
JosJuice
8afa230787
DirectoryBlob: Rename DISKHEADERINFO_ADDRESS to BI2_ADDRESS
...
Because DISKHEADERINFO is too easy confuse with DISKHEADER.
Also adding BI2_SIZE and DISKHEADER_SIZE contants.
2017-08-01 11:36:40 +02:00
JosJuice
975b2b40fa
DirectoryBlob: Support bi2.bin
2017-08-01 11:36:40 +02:00
JosJuice
251828ccc0
Don't check validity twice when creating DirectoryBlob
2017-08-01 11:36:40 +02:00
JosJuice
a6bbf7e21b
DirectoryBlob: Don't keep DOL in memory
2017-08-01 11:36:40 +02:00
JosJuice
4cc8d3091c
DirectoryBlob: Require header file (boot.bin)
2017-08-01 11:36:40 +02:00
JosJuice
71578b468d
DirectoryBlob: Support tickets and TMDs
2017-08-01 11:36:40 +02:00
JosJuice
02610d4b28
DirectoryBlob: Use DISCIO instead of DVDINTERFACE for logging
2017-08-01 11:36:40 +02:00
JosJuice
3f9eec9ae4
DirectoryBlob: Use DiscContent for ReadNonPartition too
...
ReadPartition and ReadNonPartition are now unified into
ReadInternal, with a parameter controlling whether
the read is in a partition or not.
2017-08-01 11:36:40 +02:00
JosJuice
a0fa350ca6
DirectoryBlob: Use DiscContent for everything in ReadPartition
2017-08-01 11:36:40 +02:00
JosJuice
936ef5b9dd
DirectoryBlob: Let DiscContent be backed by memory instead of file
2017-08-01 11:36:40 +02:00
JosJuice
e1321b131d
DirectoryBlob: Create a DiscContent class for use in m_virtual_disc
2017-08-01 11:36:40 +02:00
JosJuice
b56214789e
DirectoryBlob: Make some functions private
2017-08-01 11:36:40 +02:00
JosJuice
b8d8c7370f
DirectoryBlob: Move constants to .cpp file
2017-08-01 11:36:40 +02:00
JosJuice
12cbeb2288
Remove DVD root and apploader path settings
2017-08-01 11:36:40 +02:00
JosJuice
37c09343d8
Turn VolumeDirectory into DirectoryBlob
...
This lets VolumeDirectory/DirectoryBlob skip implementing
various volume functions like GetGameID, GetBanner, etc.
It also lets us view extracted discs in the game list.
This ends up breaking the boot process for Wii
DirectoryBlobs due to workarounds being removed from the
boot process, but that will be fixed later by adding
proper DirectoryBlob support for things like TMDs.
We now expect the directories to be laid out in a certain
format (based on the format that WIT uses) instead of requiring
the user to set the DVD root and apploader path settings.
2017-08-01 11:36:40 +02:00
JosJuice
5f8935932d
Blob: Add interface for reading decrypted Wii data directly
...
This is useful for blob types that store Wii data unencrypted
(such as WIA and discs extracted to directories) so that
we don't have to waste CPU time encrypting in the blob code
just to decrypt right afterwards in the volume code.
2017-08-01 11:36:40 +02:00
JosJuice
878869488d
Boot: Consider DOL/ELF files as possible volumes
...
The old approach to detecting DOL/ELF files doesn't fit
with the new way of implementing extracted discs.
The game list is already doing it in a way that's similar
to the approach that this commit uses.
2017-08-01 11:36:40 +02:00
JosJuice
91a6f74639
Merge pull request #5716 from leoetlino/gameini-1-2
...
GameINI: Force safe texture cache for the System Menu and the shop
2017-08-01 09:56:11 +02:00
JosJuice
de6bd80f9c
DolphinQt2: Add i18n comments for Table/List
...
To avoid confusion with the verb "list" and the kind of table
that's a type of furniture.
2017-07-26 08:04:10 +02:00
JosJuice
b32fe5e41d
DolphinQt2: Remove the %1 from "%1 Banner Details"
...
It's not particularily useful to list the platform here,
and these kinds of messages that use words as parameters
are more likely to be mistranslated than the average string.
2017-07-26 08:04:10 +02:00
JosJuice
960525859b
Make DolphinWX strings more like DolphinQt2 strings
...
Same as the previous commit, except I'm copying strings
in the other direction because the DolphinWX variants
of these strings could use some improvement.
2017-07-26 08:04:10 +02:00
JosJuice
ce11b34e74
Make DolphinQt2 strings more like DolphinWX strings
...
Without this, we would be pushing a lot of extra strings onto
translators now that 55fb6ef is merged.
2017-07-26 08:04:10 +02:00
JosJuice
fb80c5398a
DolphinWX: Use title case for hotkey group names
2017-07-26 08:00:17 +02:00
JosJuice
d7d88aeb7d
DolphinWX: Mark AF choices as translatable
...
For consistency with DolphinQt2.
2017-07-26 08:00:17 +02:00
JosJuice
8deba867e8
DolphinQt2: Remove ellipses from settings menu options
...
The action that these menu options perform is to open a
settings window, and that action is completed instantly,
so we shouldn't have ellipses.
2017-07-26 08:00:17 +02:00
JosJuice
8292d378ea
Merge pull request #5824 from lioncash/include-guard
...
ListProxyModel: Add missing include guard
2017-07-25 08:23:49 +02:00
JosJuice
a9aabc398a
Update game INIs
...
https://bugs.dolphin-emu.org/issues/10171
https://bugs.dolphin-emu.org/issues/10207
https://bugs.dolphin-emu.org/issues/10336
https://bugs.dolphin-emu.org/issues/10355
https://bugs.dolphin-emu.org/issues/10370
https://github.com/dolphin-emu/dolphin/pull/5726#discussion_r126879253
2017-07-24 09:09:16 +02:00
JosJuice
bb3bbb2887
DolphinQt2: Fix saving "Use Built-In Database of Game Names"
...
This one is my fault too
2017-07-23 15:29:43 +02:00
JosJuice
22fbd65d47
DolphinQt2: Change the placement of "Use Built-In Database of Game Names"
...
When I added this setting, I didn't notice that the interface
pane in DolphinQt2 was split into two different sections.
2017-07-23 15:28:34 +02:00
JosJuice
34cacd4944
DolphinQt2: Reword the analytics message
...
"this" made sense when "Do you authorize..." was on the bottom,
but it doesn't make sense when it's at the top.
Also removing unnecessary newlines.
2017-07-23 15:18:12 +02:00
JosJuice
20172196f5
DolphinQt2: Let game properties show names for WADs
2017-07-23 15:11:18 +02:00
JosJuice
e60cde942f
Merge pull request #5816 from ligfx/gettextizeqttrnoop
...
gettextize: extract arguments to QT_TR_NOOP
2017-07-23 11:32:11 +02:00
JosJuice
5938c58f99
DolphinQt2: Fix localization issues
2017-07-23 10:50:20 +02:00
JosJuice
57affaff22
Merge pull request #5803 from leoetlino/pause-and-lock
...
Replace balanced Core::PauseAndLock calls with RunAsCPUThread
2017-07-22 12:42:55 +02:00
JosJuice
1fc5830d0c
Remove region mismatch check for GCI folders
...
The region mismatch check that we used can give false positives.
Skipping the check won't lead to any harm - games will ignore
save files that have a non-matching fourth game ID character.
2017-07-20 15:24:07 +02:00
JosJuice
bcdab8af48
Automatic translation resources sync with Transifex
2017-07-17 14:18:34 +02:00
JosJuice
c83cac7cca
Fix the handling of NTSC-K for GCI folders
2017-07-16 16:31:12 +02:00
JosJuice
be8e93f472
Ensure that Volume::GetRegion doesn't return invalid enum values
2017-07-16 14:52:17 +02:00
JosJuice
db1c534b3e
Add warning comments to RegionSwitch and code that uses it
2017-07-16 14:49:28 +02:00
JosJuice
cd60810d9d
Improve Japanese check in TitleDatabase
...
We should check the language of a game rather than the region.
RegionSwitchGC counts W as NTSC-J, and W games aren't in Japanese.
2017-07-16 14:33:14 +02:00
JosJuice
c8b4645039
Detect Korean GC releases as Korean when possible
...
According to http://scanlines16.com/en/blog-3/retro-gaming/game-cube/gamecube-korean-master-list/ ,
Korean GC releases use the following country codes:
- E or W for games in English
- K for games in Korean
- Unknown value for games in Japanese (my guess is that they might
have made the discs bit-for-bit identical to Japanese releases
because the regions of these games are already set to NTSC-J)
As far as I know, the GC has no Taiwanese releases, which is what
the W country code is used for on the Wii. But I could be wrong.
A small note: The country_byte == 'K' check in the code isn't
actually necessary as long as RegionSwitchGC returns NTSC_J
for 'K', but I thought it would be better to not rely on that.
2017-07-16 14:30:41 +02:00
JosJuice
ebf0f64a01
Detect GC region based on the actual region value
...
The county code isn't 100% reliable for detecting the region.
For instance, some games released in Korea have the country
code E even though they're region-locked to NTSC-J consoles.
This commit makes the GC disc region detection match the Wii
disc region detection (apart from the region value being in
a different place on the disc).
2017-07-16 14:29:43 +02:00
JosJuice
fe10e8aa6c
Fix RegionSwitchGC for the value 'K'
...
Korean GameCube releases have their region set to NTSC-J.
2017-07-16 13:52:53 +02:00
JosJuice
c64d668c3c
Use find_first_not_of in FileSystemGCWii::FindFileInfo
2017-07-16 13:19:18 +02:00
JosJuice
100b0a52d3
Merge pull request #5777 from JosJuice/unify-getgameinifilenames
...
Unify GetGameIniFilenames
2017-07-12 19:24:46 +02:00
JosJuice
d4f5038571
Unify GetGameIniFilenames
...
This deduplicates code and fixes the new config system's lack of
1-char game ID INI support.
2017-07-11 13:10:11 +02:00
JosJuice
1d7a57869a
Make the built-in wiitdb files optional
...
There are some cases where overriding the opening.bnr names
isn't desirable, such as when someone has several modded
versions of a game that differ in names but not game IDs.
2017-07-10 10:16:06 +02:00
JosJuice
edc7a4c895
Fix reading FSTs for multi-disc games
...
It's a wonder that this managed to work for any discs at all...
2017-07-08 15:17:05 +02:00
JosJuice
421a2c5776
Merge pull request #5750 from AwesomeMarioFan/master
...
IOS: Add IOS4v3 Constants
2017-07-05 21:01:31 +02:00
JosJuice
78217532e5
VolumeWii: Defer loading tickets, TMDs and keys until when needed
...
This should make building the game list cache a tiny bit
faster, since we won't have to read anything from
partitions other than the game partition.
2017-07-04 21:31:24 +02:00
JosJuice
2c7e93f3b8
Common: Add a Lazy type
2017-07-04 20:58:03 +02:00
JosJuice
93e9740683
Drop unnecessary check from FileSystemGCWii::FindFileInfo
...
If the current file_info is a file, the ranged for loop will
run 0 times, and we'll reach the last line of the function.
2017-07-04 20:40:32 +02:00
JosJuice
6a31d2598e
Support leading slashes in FileSystemGCWii::FindFileInfo
2017-07-04 20:40:08 +02:00
JosJuice
333b6d99d2
VolumeWii: Change the format of partition maps
...
Having a separate map for each type of data is a bit unnecessary.
2017-07-04 16:20:13 +02:00
JosJuice
0588a76830
DolphinWX: Fix inconsistent region name for online system update
...
This was inconsistent with the other three regions
and with DolphinQt2.
2017-07-01 16:40:07 +02:00
JosJuice
b5e19bb591
Automatic translation resources sync with Transifex
2017-07-01 16:36:18 +02:00
JosJuice
5ca3aee00a
FileUtil: Add a class for Exists/IsDirectory/GetSize
...
Some code was calling more than one of these functions in a row
(in particular, FileUtil.cpp itself did it a lot...), which is
a waste since it's possible to call stat a single time and then
read all three values from the stat struct. This commit adds a
File::FileInfo class that calls stat once on construction and
then lets Exists/IsDirectory/GetSize be executed very quickly.
The performance improvement mostly matters for functions that
can be handling a lot of files, such as File::ScanDirectoryTree.
I've also done some cleanup in code that uses these functions.
For instance, some code had checks like !Exists() || !IsDirectory(),
which is functionally equivalent to !IsDirectory(), and some
code was using File::GetSize even though there was an IOFile
object that the code could call GetSize on.
2017-06-29 19:07:29 +02:00
JosJuice
a59edfe8cf
FilesystemPanel: Put partitions in separate folders when extracting all partitions
2017-06-28 22:25:27 +02:00
JosJuice
478c4fd1f3
FileSystemGCWii: Use DiscExtractor's FST offset/size functions
2017-06-28 22:25:09 +02:00
JosJuice
1b6506f4e8
DiscExtractor: Add support for more things to extract
2017-06-28 22:24:33 +02:00
JosJuice
94b18bfb07
FilesystemPanel: Replace Extract Apploader/DOL with Extract System Data
...
Because having one option for each thing to extract is
going to be way too many options once I add support for
more things to extract.
2017-06-28 22:23:10 +02:00
JosJuice
0b068d84d5
FilesystemPanel: Overhaul the right-click menu
2017-06-28 22:23:01 +02:00
JosJuice
2ca5f1dec8
FilesystemPanel: Handle root correctly in BuildFilePathFromSelection
...
This was unnecessary in the past but is necessary
for the next commit.
2017-06-28 22:22:50 +02:00
JosJuice
39ff203c1e
DiscExtractor: Don't create extra folders when extracting a folder
...
Before, if you extracted a directory like /map/Final/Release/,
Dolphin would create the nested folders map, Final and Release
in the output directory and put the files in Release instead of
just putting the files directly in the output directory.
2017-06-28 22:22:41 +02:00
JosJuice
6d51992648
Move ExtractDir from FilesystemPanel to DiscExtractor
2017-06-28 22:22:31 +02:00
JosJuice
5778e8bdba
FilesystemPanel: Refactor partition name stripping
2017-06-28 22:22:22 +02:00
JosJuice
baf3a3b188
DiscExtractor: Don't hardcode names in ExportApploader and ExportDOL
2017-06-28 22:22:13 +02:00
JosJuice
89c901780e
DiscScrubber: Deduplicate code for writing to file
2017-06-28 22:22:04 +02:00
JosJuice
1f31390b54
DiscExtractor: Improve error handling
2017-06-28 22:21:55 +02:00
JosJuice
a17272c146
DiscExtractor: Minor cleanup
2017-06-28 22:21:48 +02:00