Skip to content

GameImporter Rewrite#2358

Closed
proskd wants to merge 30 commits intoProvenance-Emu:developfrom
proskd:gameimporterstatus
Closed

GameImporter Rewrite#2358
proskd wants to merge 30 commits intoProvenance-Emu:developfrom
proskd:gameimporterstatus

Conversation

@proskd
Copy link
Contributor

@proskd proskd commented Nov 6, 2024

Remaining work before merging:

  • 1. Tons of code clean up
  • 2. Proper handling of conflicts
  • 3. Proper handling of CDROMs (need to sort to handle M3U -> Cue -> Bin)
  • 4. Proper handling of directories
  • 5. Unit tests where applicable
  • 6. Ensure validity of imports that flow through this new system.
  • 7. UI for Conflict handling
  • 8. Validate that archives work properly.
  • 9. Validate and fix Artwork

What does this PR do

  • Total Rewrite of GameImporter logic, including separation of concerns where possible
  • Introduces UI to display progress of imports

Where should the reviewer start

How should this be manually tested

Test all types of imports including

  1. Basic ROM
  2. CDROM
  3. Directory
  4. Zip
  5. BIOS
  6. Artwork
  7. Conflicts

Any background context you want to provide

What are the relevant tickets

Screenshots (important for UI changes)

Questions

proskd added 28 commits November 2, 2024 20:49
… imports

This commit adds the import status screen and connects it to a not-yet-used queue to manage the state of imports.
…n to strange everything through the import queue
1.  Introducing a robust ImportQueueItem to track an import and follow it through the system
2.  Refactored code to extract behaviors out of GameImporter so it's not a god class
3.  Pre compute as much as possible for an ImportQueueItem, such as which systems are valid.
4.  Try to simplify the general logic to 3 steps - compute, move, and import into the DB

Remaining work

1.  Tons of code clean up
2.  Proper handling of conflicts
3.  Proper handling of CDROMs (need to sort to handle M3U -> Cue -> Bin)
4.  Proper handling of directories
5.  Unit tests where applicable
6.  Ensure validity of imports that flow through this new system.
7.  UI for Conflict handling
8.  Validate that archives work properly.
9.  Validate and fix Artwork
…portQueueItem can now contain Children. We also now check the queue (and any child items in the queue) for duplicates. next step is to pre-process the queue to fix up or detect CDRoms properly.
…lated files, if they're in the queue. this will make it easy to move files to the right place all at once later in the process
…for being able to test a basic import through the system
…er. ideally that's a utility that need not live here
…t be sure of the right system.

conflicts are now properly detected and moved to the conflicts folder, and shown in UI
if a conflict is detected, user can tap to enter SystemSelectionView which offers up valid systems
tapping an item will update that ImportItem's targetSystem so hopefully import works after that.
fix case where looking up in openvgb finds a match - we handle this correctly now.
adds in a crucial preProcessQueue step to ensure the queue handles cue/bin files correctly
remove extraneous view model in ImportStatusView
Fixes some bad cases for CDROMs where child items weren't copied to the correct folder
Added some more logging in GameImporter
…stem when identified, and "BIOS" for bios (since that was crashing for some reason)
@proskd proskd marked this pull request as ready for review November 11, 2024 02:21
@proskd proskd requested a review from JoeMatt as a code owner November 11, 2024 02:21
@proskd proskd requested a review from jasarien as a code owner November 11, 2024 02:21
@proskd
Copy link
Contributor Author

proskd commented Nov 11, 2024

This PR is ready for review, but has 3 remaining issues:

  1. There are some random Realm threading crashes - MOST IMPORTANT
  2. We need a place in the code where we can begin processing the queue after files settle.
  3. The ImportStatusView and other views aren't themed.

This PR doesn't support tvOS as far as I know so we will need to add that later.

@proskd proskd changed the title WIP - GameImporter Rewrite - DO NOT MERGE GameImporter Rewrite Nov 11, 2024
@JoeMatt
Copy link
Member

JoeMatt commented Nov 18, 2024

merged on develop

@JoeMatt JoeMatt closed this Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants