[fs/core] Load external content without NAND install #2862

Merged
crueter merged 27 commits from fs_external_dlcupdates into master 2026-02-06 14:05:45 +01:00
Member

Adds the capability to add DLC and Updates without installing them to NAND. This was tested on Windows only and needs Android integration.

Adds the capability to add DLC and Updates without installing them to NAND. This was tested on Windows only and needs Android integration.
Maufeat force-pushed fs_external_dlcupdates from 75df7f8de0
All checks were successful
eden-license / license-header (pull_request) Successful in 30s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 89cef6efa2
All checks were successful
eden-license / license-header (pull_request) Successful in 30s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-28 14:15:43 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from 3124282d26
Some checks reported errors
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build cancelled
to 5e0c14dd05
All checks were successful
eden-license / license-header (pull_request) Successful in 30s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-29 11:17:49 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from 5e0c14dd05
All checks were successful
eden-license / license-header (pull_request) Successful in 30s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 9bfb93d0f6
Some checks failed
eden-license / license-header (pull_request) Failing after 36s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-29 16:19:49 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from 93a3141a0a
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 8555821b27
All checks were successful
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-31 08:37:54 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from 982b9809ab
Some checks reported errors
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build cancelled
to bc53501d6b
All checks were successful
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-31 13:24:13 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from bc53501d6b
All checks were successful
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 7de443b753
Some checks reported errors
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build cancelled
2025-10-31 16:22:35 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from e492dd88dd
Some checks reported errors
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build cancelled
to 55c4b653d3
All checks were successful
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-31 17:31:08 +01:00
Compare
Shinmegumi force-pushed fs_external_dlcupdates from 55c4b653d3
All checks were successful
eden-license / license-header (pull_request) Successful in 32s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to dec857751c
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-10-31 19:24:51 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from dec857751c
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 8a89cef721
All checks were successful
eden-license / license-header (pull_request) Successful in 33s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2025-11-01 18:04:44 +01:00
Compare
Member

Need rebase and further testing

Need rebase and further testing
Maufeat force-pushed fs_external_dlcupdates from 8a89cef721
All checks were successful
eden-license / license-header (pull_request) Successful in 33s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 62fc359189
All checks were successful
eden-license / license-header (pull_request) Successful in 58s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2026-01-07 16:57:46 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from 32ba83c049
All checks were successful
eden-license / license-header (pull_request) Successful in 1m47s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 3fb50870ab
All checks were successful
eden-license / license-header (pull_request) Successful in 1m48s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2026-01-07 18:32:09 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from b145e6007e
All checks were successful
eden-license / license-header (pull_request) Successful in 2m36s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 750fc3595c
All checks were successful
eden-license / license-header (pull_request) Successful in 3m8s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2026-01-07 21:38:29 +01:00
Compare
Maufeat force-pushed fs_external_dlcupdates from a4020fb8ec
All checks were successful
eden-license / license-header (pull_request) Successful in 5m0s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 77371c677a
Some checks reported errors
eden-license / license-header (pull_request) Failing after 19s
GitHub Actions [CI] Build cancelled
2026-02-04 04:23:47 +01:00
Compare
headers
Some checks reported errors
eden-license / license-header (pull_request) Successful in 20s
GitHub Actions [CI] Build cancelled
03b9beef40
add logs
Some checks reported errors
eden-license / license-header (pull_request) Successful in 20s
GitHub Actions [CI] Build cancelled
b548ed1eca
remove some logs and degrade some back to debug
Some checks failed
eden-license / license-header (pull_request) Successful in 19s
GitHub Actions [CI] Build failed
520ce2c7d7
Owner

Works 100x better than before, no crashes on few games I tested. Same loading speed as w/o. Suggestions/fixes:

  • Recursive dir search for dlc and update, for example if you wasted money on have all the Smash Ultimate DLC there are literally 99 individual files, so usually you put this in a subdir I am dumb
  • Add external dirs to the file system watcher for live updates; also worth noting that a force refresh and going into menu doesn't update it (e.g. if you add a new file there). Part of that is my fault on UI side but should be trivial to add.
  • DLC/Updates not immediately showing in game list when a content dir is added
  • When games are added and have multiple updates in the external dir, older updates are not automatically shown as disabled in game list

Very nice job, will test more later.

Works 100x better than before, no crashes on few games I tested. Same loading speed as w/o. Suggestions/fixes: - ~~Recursive dir search for dlc and update, for example if you ~~wasted money on~~ have all the Smash Ultimate DLC there are literally 99 individual files, so usually you put this in a subdir~~ I am dumb - Add external dirs to the file system watcher for live updates; also worth noting that a force refresh and going into menu doesn't update it (e.g. if you add a new file there). Part of that is my fault on UI side but should be trivial to add. - DLC/Updates not immediately showing in game list when a content dir is added - When games are added and have multiple updates in the external dir, older updates are not automatically shown as disabled in game list Very nice job, will test more later.
Add live reload for external content dirs
Some checks failed
eden-license / license-header (pull_request) Successful in 19s
GitHub Actions [CI] Build failed
5115bcdb06
desktop only

Signed-off-by: crueter <crueter@eden-emu.dev>
Partial fix live refresh
Some checks reported errors
eden-license / license-header (pull_request) Successful in 20s
GitHub Actions [CI] Build cancelled
8b70348db8
Recreates the ExternalContentProvider factory when factories are
requested to be recreated, and also request recreate on game list
refresh.

Needs to be added to Android, also currently it's partially borked, see
my comment.

Signed-off-by: crueter <crueter@eden-emu.dev>
fix 2 android build errors
Some checks failed
eden-license / license-header (pull_request) Successful in 21s
GitHub Actions [CI] Build failed
556717d692
Signed-off-by: crueter <crueter@eden-emu.dev>
fix
All checks were successful
eden-license / license-header (pull_request) Successful in 22s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
5d1035a203
put external content in "Manage game folders" and show a modal. Also handles logic for android now.
Some checks failed
eden-license / license-header (pull_request) Failing after 2m27s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
fd61d098ab
multi version support for android (and fix bug of not selecting the right one and saving)
Some checks failed
eden-license / license-header (pull_request) Failing after 7m22s
GitHub Actions [CI] Build failed
4d2572da2a
multi nca test
Some checks reported errors
eden-license / license-header (pull_request) Failing after 22s
GitHub Actions [CI] Build cancelled
7b428869b2
fix headers
Some checks reported errors
eden-license / license-header (pull_request) Failing after 21s
GitHub Actions [CI] Build cancelled
14604456e6
fix headers 2
Some checks reported errors
eden-license / license-header (pull_request) Successful in 21s
GitHub Actions [CI] Build cancelled
ffd4de289d
clean up the code for update checks, had unnecessary checks for multi update entries
Some checks reported errors
eden-license / license-header (pull_request) Successful in 24s
GitHub Actions [CI] Build cancelled
367835e7bd
Rather than having that hardcoded one like before. Also adds
infrastructure which should make it easier to setup defaults at runtime
(e.g. GPU stuff?)

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: #3462
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
It seems too easy, the specification does not state anything more to be done for it towork.
Requires performance testing on android.

Co-authored-by: DraVee <dravee@eden-emu.dev>
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: #3318
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: wildcard <wildcard@eden-emu.dev>
Co-committed-by: wildcard <wildcard@eden-emu.dev>
[android] Add profile management (#3461)
Some checks reported errors
eden-license / license-header (pull_request) Successful in 22s
GitHub Actions [CI] Build cancelled
ce2ca3e522
There could be an issue with save files being wiped if updating from an older version, this is due to profiles being hard set on android previously but am not sure, needs testing

Reviewed-on: #3461
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: DraVee <dravee@eden-emu.dev>
Co-authored-by: nekle <nekle@protonmail.com>
Co-committed-by: nekle <nekle@protonmail.com>
Merge branch 'master' into fs_external_dlcupdates
All checks were successful
eden-license / license-header (pull_request) Successful in 22s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
3f0c9534b5
# Conflicts:
#	src/android/app/src/main/jni/native.cpp
try to fix NAND updates
All checks were successful
eden-license / license-header (pull_request) Successful in 22s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
bbaa16efe8
try to disabled logic
All checks were successful
eden-license / license-header (pull_request) Successful in 1m18s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
ba94b98780
try fix android nand install
All checks were successful
eden-license / license-header (pull_request) Successful in 4m33s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
bc97c083a2
change to materialdesign alert box
Some checks reported errors
eden-license / license-header (pull_request) Successful in 23s
GitHub Actions [CI] Build cancelled
ec67cbce81
refreshes metadata + list when changing external content directories. (just using RefreshMetadata does not work)
Some checks reported errors
eden-license / license-header (pull_request) Failing after 26s
GitHub Actions [CI] Build cancelled
6bf5a4b4b4
Add live reload for external content
Some checks failed
eden-license / license-header (pull_request) Failing after 27s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
b0ec579241
Signed-off-by: crueter <crueter@eden-emu.dev>
fix when enabled NAND update is deleted NAND
Some checks failed
eden-license / license-header (pull_request) Failing after 25s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
8e068391f3
fix headers
Some checks reported errors
eden-license / license-header (pull_request) Successful in 27s
GitHub Actions [CI] Build cancelled
0361db0875
swap the list to general > general
All checks were successful
eden-license / license-header (pull_request) Successful in 23s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
4e38ea421e
DraVee approved these changes 2026-02-06 13:51:26 +01:00
DraVee left a comment
Member

Tested on Gentoo, working fine

Tested on Gentoo, working fine
crueter approved these changes 2026-02-06 14:05:40 +01:00
crueter merged commit 69aff83ef4 into master 2026-02-06 14:05:45 +01:00
crueter deleted branch fs_external_dlcupdates 2026-02-06 14:05:45 +01:00
Sign in to join this conversation.
No description provided.