Commit Graph

189 Commits

Author SHA1 Message Date
JosJuice 1f1dae367d Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
The original reason I wanted to do this was so that we can replace
the Android-specific code with this in the future, but of course,
just deduplicating between DolphinWX and DolphinQt2 is nice too.

Fixes:

- DolphinQt2 showing the wrong size for split WBFS disc images.

- DolphinQt2 being case sensitive when checking if a file is a DOL/ELF.

- DolphinQt2 not detecting when a Wii banner has become available
after the game list cache was created.

Removes:

- DolphinWX's ability to load PNGs as custom banners. But it was
already rather broken (see https://bugs.dolphin-emu.org/issues/10365
and https://bugs.dolphin-emu.org/issues/10366). The reason I removed
this was because PNG decoding relied on wx code and we don't have any
good non-wx/Qt code for loading PNG files right now (let's not use
SOIL), but we should be able to use libpng directly to implement PNG
loading in the future.

- DolphinQt2's ability to ignore a cached game if the last modified
time differs. We currently don't have a non-wx/Qt way to get the time.
2018-03-09 13:08:38 +01:00
JosJuice af51063a9a DolphinWX: Rewrite the logic for adding/removing games from cache
Thanks to degasus for coming up with most of this faster design.
2018-01-05 19:52:14 +01:00
JosJuice 04cefc6ed3 DolphinWX: Use vector instead of list for game list cache
The advantage of std::list is that elements can be removed from the
middle efficiently, but we don't actually need that, because the
ordering of the elements doesn't matter for us. We can just replace the
element we want to remove with the last element and then call pop_back.

Replacing list with vector should speed up looping through the elements.
2018-01-04 17:14:35 +01:00
Tony Drake b66a72eb8f Update maker information to match the wiki
This updates the maker data to (mostly) mirror that of the Wiki:
https://wiki.dolphin-emu.org/index.php?title=GameIDs

Only maker ids from that page are now included in Dolphin. This
means no homebrew/unofficial makers.

Also, separate multiple maker names with a slash
2017-10-22 11:39:16 -04:00
FoxP 999c23b182 Add some missing WiiWare makers
Some of my WiiWare games does not have a maker :
- Blue's Journey : EAFPJ8
- Magician Lord : EACPJ8
- The King of Fighters '94 : EAGPJ8
- The Last Ninja : C9XPGX
- World Games : C9ZPGX
2017-10-08 13:04:23 +02:00
Tony Drake 4035d0781c Update the cache revisions for WX and QT 2017-10-03 17:35:14 -04:00
JosJuice b6bc3bc7c9 Remove DVDInterface::ChangeDiscAsHost
There isn't much point in keeping this utility function around
now that RunAsCPUThread provides a simple way of running things
on the CPU thread.
2017-09-17 11:44:27 +02:00
Léo Lam 0e71c0760e WX: Add menu item to perform system update from disc 2017-08-10 23:47:18 +08:00
Michael M dde3471b62 WX: make Netplay use new-style config 2017-08-03 13:16:17 -07:00
Michael M f8fea83e67 NetPlayLauncher: store window geometry in native wxConfig 2017-08-03 13:16:17 -07: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
Michael Maltese 41917cb43c Wx: make GameListCtrl fallback to sorting by title
Fixes an issue with game items moving around randomly when resorted.
2017-07-14 15:29:48 -07:00
JosJuice e73de25a9e GameListCtrl: Put CACHE_REVISION in .cpp file
Reduces the number of files that have to be recompiled
when changing the cache revision.
2017-06-27 11:27:36 +02:00
JosJuice 0ac1562fbd DolphinWX: Load EmuState and custom name for actual discs 2017-06-27 08:29:57 +02:00
JosJuice d5bf6f1bbc DolphinWX: Sync custom title changes on game list rescan 2017-06-27 08:29:48 +02:00
Shawn Hoffman f51df62344 DolphinWX: properly sync EmuState and banner changes. 2017-06-26 12:35:40 -07:00
Shawn Hoffman a66b747366 DolphinWX: show simple message about scanning in statusbar. 2017-06-23 17:25:53 -07:00
Shawn Hoffman c5fa470ad8 replace DoFileSearch with optimized version 2017-06-23 17:25:53 -07:00
Shawn Hoffman f16599f4a8 DolphinWX: defer gamelist scanning and switch to single-file cache. 2017-06-23 17:25:53 -07:00
Shawn Hoffman 79961b6f76 GameListCtrl: minor cleanup 2017-06-23 17:25:53 -07:00
Shawn Hoffman 668c6b5ce9 DolphinWX: rename CGameListCtrl -> GameListCtrl 2017-06-23 17:25:52 -07:00
spycrab 1d8ba6f865 Wx: Implement new, themed stars 2017-06-02 22:38:56 +02:00
Tillmann Karras 5c08b1d704 WX: improve game list reload speed
When loading a big game list, this eliminates the long delay after the
progress dialog disappears.
2017-05-28 23:02:03 +01:00
Léo Lam 2f5f9be9ac WX: Use TitleDatabase for getting title names 2017-05-21 18:57:55 +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
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
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
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
Mat M d5534e069c Merge pull request #5334 from spycrab/wx_gamelist_cleanup
Refactor GameListCtrl
2017-04-30 18:21:50 -04:00
spycrab 303b54a3a5 Refactor GameListCtrl 2017-04-28 17:35:23 +02:00
Léo Lam 3124f3c4d8 WX: Add the ability to uninstall WADs from the game list
Simple quality-of-life addition that allows "uninstalling" WADs
(removing the corresponding installed title) from the NAND.

The option is only enabled when the WAD can be uninstalled

The motivation for this is actually to encourage proper usage of the
WAD launch feature (installing it to the NAND first), so we can
drop the "direct WAD title launch" hack.
2017-04-25 23:34:32 +02:00
spycrab 72e92add8a Make title column toggleable (Issue #9952) 2017-04-17 19:34:14 +02:00
Mat M 59d93f3a0d Merge pull request #5219 from lioncash/common
FileSearch: Namespace functions under the Common namespace
2017-04-08 17:19:00 -04:00
Lioncash f7a2f6ad01 FileSearch: Namespace functions under the Common namespace 2017-04-07 01:02:14 -04:00
Léo Lam d8089a457f WX: Disable a few menu items when a Wii title is running
Unsafe and keeping them enabled would allow inaccurate behaviour that
can break games.
2017-04-05 20:54:48 +02:00
JosJuice f106ba70d4 Move DVD code to a new directory 2017-03-31 17:27:23 +02:00
Steven Newbury 28f4793785 Always use visible text in GameList
Depending upon the desktop colour scheme, the light/dark
GameList backgrounds can cause the always white text
to become unreadble.

Use the common luminance approximation algorithm to
determine whether black text should be used instead.
2017-03-08 18:03:51 +00:00
JosJuice a7e11db4bf DolphinWX: Remove usage of IsCompressed() in compression code
What we actually care about is whether it's a GCZ file,
not whether it's compressed. (This commit doesn't change
the behavior, since the beginning of CompressSelection
discards items that aren't BlobType::GCZ or BlobType::PLAIN.)
2017-02-20 16:08:07 +01:00
JosJuice b1589a6337 DolphinWX: Don't use a special color for compressed games
- There's no clear definition of what it means for a GC/Wii game
  to be compressed. GC games in GCZ are obviously compressed,
  but what about formats like WBFS and CISO that just discard data?
- Hardcoded colors might have bad contrast with the used theme.
- It feels Windows XP to me.
2017-02-20 16:02:30 +01:00
Lioncash ea6e75d45f GameListCtrl: Separate some scanning code into functions
Several of the things done while performing a scan are logically their own
behavior (e.g. loading a titles file, checking if an entry should be added, etc).
2017-02-09 14:50:20 -05:00
Lioncash e07383a783 Core: Convert State enum into an enum class 2017-02-05 08:32:23 -05:00
Michael Maltese fdcf5aeb75 DolphinWX: Fix position of GameListCtrl tooltips on macOS 2017-01-11 16:59:15 -08:00
JosJuice 9bd514ed1c Add TGC disc image compatibility 2016-12-18 18:57:36 +01:00
Lioncash 20fcfd0ed8 DolphinWX: Separate the information panel from ISOProperties
Makes the information panel self-contained.

This was done first, as opposed to isolating the GameConfig panel--the
first panel in the group--as this panel had code all over the place in
ISOProperties, so I figured it'd be best to fix this one up first.
2016-12-01 21:21:46 -05:00
Lioncash c2d00d25fe DolphinWX: Make the main config dialog modeless 2016-11-06 08:04:54 -05:00
JosJuice 1081497cad DiscIO/SConfig: Rename GetUniqueID to GetGameID
We call this "game ID" everywhere else, and it's not
actually completely unique.
2016-10-29 15:24:02 +02:00
EmptyChaos 3b11581aff WX: HiDPI: ISOProperties
And related ARCodeAddEdit/PatchAddEdit.

Change ISOFile to use wxImage instead of wxBitmap since bitmaps require
a screen context and banner images have a fixed resolution.
2016-10-04 13:47:21 +11:00
EmptyChaos 107d4afb08 WX: HiDPI: Dolphin Main UI (CFrame) 2016-10-04 13:47:21 +11:00
Shawn Hoffman 2b0f7d2669 Re-add saving position of netplay window. 2016-10-03 15:57:32 -07:00