92eb3a9ecd
add some default url entries, add option to enter custom url.
ITotalJustice
2025-05-28 20:02:51 +01:00
491445a12f
Revert "remove Web menu"
ITotalJustice
2025-05-28 18:46:30 +01:00
04c3c64562
always display commit hash with the version, log version hash, bump version for new release.
0.11.2
ITotalJustice
2025-05-28 15:37:14 +01:00
a801e385ce
reduce the size of all file assoc entries by removing the [config] section.
ITotalJustice
2025-05-28 15:15:32 +01:00
01bfcb05cd
fix gamecard install due to fs==NULL. more explicit yields for sd card transfers for file based emummc.
ITotalJustice
2025-05-28 15:00:31 +01:00
6b56b7f7c2
make all threads preemptive. workaround file based emummc hanging due to fs r/w hanging the system.
ITotalJustice
2025-05-28 14:37:56 +01:00
f48e6e21a1
Make RU translation (#151)
redraz
2025-05-28 13:57:13 +03:00
37ab1a345c
fix toggling ftp enable in options which could cause a crash / prevent it from re-starting ftp.
ITotalJustice
2025-05-28 11:55:15 +01:00
89fbb10ee6
change update behaviour to update all paths where sphaira exists and better prompt the user how to update.
ITotalJustice
2025-05-27 22:17:50 +01:00
6db0cc0615
hide left-side menu from appearing in the misc menu
ITotalJustice
2025-05-27 21:51:51 +01:00
695102405b
fix filebrowser split crash due to capturing the lambda by ref, 0.11.1
0.11.1
ITotalJustice
2025-05-27 17:59:06 +01:00
aeb6c64077
bump version for new release 0.10.3 -> 0.11.0
0.11.0
ITotalJustice
2025-05-27 17:44:48 +01:00
9050229b12
Change NSP padding logic to follow nxdt and nsfw validation (#147)
⭐️NINIKA⭐️
2025-05-27 19:05:28 +03:00
af4aa836a9
add gamecard trim detection. remove duplicate value in error box.
ITotalJustice
2025-05-27 15:35:52 +01:00
fb2272546a
bump usbhsfs git tag to include hack for adaptor mounting. fix applet mode text being draw at wrong offset.
ITotalJustice
2025-05-27 00:55:26 +01:00
4b25b2c5eb
use usb mount flags to detect if its read only, rather than checking global config.
ITotalJustice
2025-05-26 23:18:14 +01:00
c11d9edc4e
add support for changing the left-side menu.
ITotalJustice
2025-05-26 22:55:06 +01:00
e2a5454263
set fs view to the right side when split mode is enabled.
ITotalJustice
2025-05-26 20:27:54 +01:00
3ca82463cc
mount hdd by default, add hdd write protect option.
ITotalJustice
2025-05-26 19:25:09 +01:00
793b36fd59
add hotkey for file browser to jump to advanced options (R2 + X).
ITotalJustice
2025-05-26 18:01:06 +01:00
66fe526754
add option to label trimmed xci dumps (disabled by default).
ITotalJustice
2025-05-26 17:55:54 +01:00
7c45d60e60
add nxmp and switch wave file assoc, remove old sphaira file assoc, replace ext/db assoc parse code with views::split
ITotalJustice
2025-05-26 17:42:32 +01:00
a9931a975d
many more optimisations. cleaned up fs code. bug fixes etc (see below). - fix usb using the wrong year when polling the timestamp. - fs file/dir has been re-written to allow for simplified calling and remove the need of manually closing. - add SetSize for stdio by using ftruncate. - don't truncate the file when opened in stdio. - add getcount api for stdio. - display file/dir count in filebrowser for non-native fs. - allow hash to be used on non-native fs. - slightly optimise nro parsing by manually calculating nro size rather than doing an os call. - slightly optimise nro parsing by keeping the fs struct alive between calls, rather than creating a new one on the stack. - fix filebrowser peeking into zip files that are stored on non-sd fs. - set the timestamp of a file moved to a stdio location (cut/paste). - slightly optimise daybreak update folder detection by skipping opening/polling the dir size. - set the fullpath of the file thats being hashed in progress box.
ITotalJustice
2025-05-26 17:06:04 +01:00
3e3ec71329
default to having boost mode enabled for progress bar
ITotalJustice
2025-05-26 01:46:28 +01:00
49abdc0590
hotkey R2 in filebrowser for when pressed along with L2, select all files.
ITotalJustice
2025-05-25 21:06:14 +01:00
4f931d2991
Merge branch 'master' into dev
ITotalJustice
2025-05-25 21:00:51 +01:00
f7c5ccfa87
huge optimisations (see below). Build with c++26 and c23.
ITotalJustice
2025-05-25 20:57:03 +01:00
5ce23f29fa
GC add initial data and UID dumping (credit to nxdumptool). Fix gc bug where ns wasn't closed. Fix usb s2s being an option if dumping the bins. Always remount GC after storage has been mounted.
ITotalJustice
2025-05-25 13:24:03 +01:00
d13ad64099
Update french translation (#149)
shadow2560
2025-05-25 12:23:00 +02:00
be88bdb567
initial work towards support standard nsp spec.
ITotalJustice
2025-05-24 23:56:42 +01:00
1bff57f9c9
Merge branch 'master' into dev
ITotalJustice
2025-05-24 23:40:52 +01:00
4172d5d5b6
Added new strings and update Korean, Japanese lang. (#146)
Yorunokyujitsu
2025-05-25 07:32:38 +09:00
1cdea981de
workaround for time / battery % x position changing every few seconds. fixes#142
ITotalJustice
2025-05-24 23:13:53 +01:00
22ebfd4a82
fs display hdd at the top of mount list for quick access, change xci dump folder to Gamecard.
ITotalJustice
2025-05-24 22:31:24 +01:00
798ac47487
limit fs hash to a single file.
ITotalJustice
2025-05-24 22:17:12 +01:00
fba8051007
use feof and ferror to detect errors with stdio fs stream.
ITotalJustice
2025-05-24 22:14:06 +01:00
15721b8e8a
split screen mode for fs. fix game dump. scrolling text for fs, progress, menu base. display icon when dumping.
ITotalJustice
2025-05-24 21:55:10 +01:00
d43ca37875
add file hashing to the file browser (crc32, md5, sha1, sha256)
ITotalJustice
2025-05-23 17:02:35 +01:00
1b5e7401f2
use stdio for minini to benefit from buffering (reduces startup by 300ms), reduce fatfs size by 60kb.
ITotalJustice
2025-05-23 14:51:49 +01:00
da33b9a6b9
add usbds speed / max packet detection, add zlt support for usbds, fix game usb transfer bug (see below). due to the previous commit, i broke dumping multiple games via usb as the stream offset wasn't reset. because of this, the first transfer would complete, but the 2nd one would fail.
ITotalJustice
2025-05-21 14:43:18 +01:00
fe2a1a3a80
add support for streamed usb upload, multi thread usb uploads / dumps.
ITotalJustice
2025-05-21 13:19:46 +01:00
cf192fca85
fix hbmenu not being updated due to faulty string compare, bump version 0.10.1 -> 0.10.2
0.10.2
ITotalJustice
2025-05-19 20:34:22 +01:00
041bb2bbe5
Added Ukranian language (#139)
xHR
2025-05-19 21:57:15 +03:00
df558d5dcc
bump version for new release 0.10.0 -> 0.10.1
0.10.1
ITotalJustice
2025-05-19 17:06:49 +01:00
33de03a923
fix sd card dumps due to the folder not being created.
ITotalJustice
2025-05-19 17:04:49 +01:00
1000b9c8ec
fix sphaira not detecting latest update as we went from 0.9 to 0.10.
ITotalJustice
2025-05-19 16:23:45 +01:00
74fddecebc
bump version for new release 0.9.1 -> 0.10.0
0.10.0
ITotalJustice
2025-05-19 16:09:33 +01:00
a64d4dce7a
remove ns event from games menu (see below). turns out that the event is auto cleared when waited. this meant that if sphaira handled the event before qlaunch got chance to handle it, then qlaunch won't update when app records changed.
ITotalJustice
2025-05-19 16:07:24 +01:00
5daca4354c
add support for webdav uploads by creating missing folders, game now dumps to title/title[id].nsp
ITotalJustice
2025-05-19 16:00:03 +01:00
da9235f58e
fix upload url path not being encoded, add seek api for uploads.
ITotalJustice
2025-05-19 12:06:43 +01:00
bd6566524c
enable ftp in the ftp menu if it isn't already enabled.
ITotalJustice
2025-05-19 08:32:05 +01:00
eadc46b0e4
add support for file uploads in the file browser, optimise curl single thread download. - curl now keeps the handle alive for single threaded downloads, rather than creating it each time.
ITotalJustice
2025-05-18 23:00:51 +01:00
71df5317be
add game dump uploading, fix download progress using u32 instead of s64, add progress and title for usb game dump. - added support for custom upload locations, set in /config/sphaira/locations.ini - add support for various auth options for download/upload (port, pub/priv key, user/pass, bearer).
ITotalJustice
2025-05-18 20:30:04 +01:00
bd7eadc6a0
add game dumping, add game transfer (switch2switch) via usb, add multi game selecting, fix bugs (see below). - added more es commands. - fixed usb install potential hang if the exit command is sent, but the client stops responding (timeout is now 3s). - added multi select to the games menu. - added game dumping. - added switch2switch support by having a switch act as a usb client to transfer games. - replace std::find with std::ranges (in a few places). - fix rounding of icon in progress box being too round. - fix file copy helper in progress box not updating the progress bar.
ITotalJustice
2025-05-18 13:46:10 +01:00
544272925d
fix IsEmunand() failing due to the paths not being page aligned.
ITotalJustice
2025-05-15 16:13:35 +01:00
70a31be134
don't fail if the control nca cannot be parsed during install, as it may depend on ticket not yet installed.
ITotalJustice
2025-05-15 15:25:03 +01:00
55ae2a63d9
fix installing failing during setup if prod.keys isn't found.
ITotalJustice
2025-05-15 15:14:02 +01:00
5a53947a3e
fix crash in list layout caused by rendering all previous hidden entries.
ITotalJustice
2025-05-14 18:00:56 +01:00
83472f1020
fix game menu forcefully disabled manual loading of control data. this was done during testing / benchmarking, but i forgot to undo this.
ITotalJustice
2025-05-14 00:06:36 +01:00
0167bf034c
gc menu now tries to load control data from ns cache before manually loading. on fw 19 and below, loading from cache takes ~5ms, whereas manually loading takes ~20ms. manually loading is still faster than relying on ns to load control from storage (~50ms).
ITotalJustice
2025-05-14 00:04:47 +01:00
35abe363a6
optimise theme meta loading.
ITotalJustice
2025-05-13 23:52:34 +01:00
97d3fd396e
optimise game menu for fw 20 - loading the control data is ran on its own thread, it does not block the main thread. allows for smooth scrolling like nintendos home menu. - on fw20+, sphaira manually parses the control data, rather than using ns. manually parsing takes 20-40ms, which is faster than ms which can take 50-500ms. - on fw19 and below, if the control data is not in ns cache, sphaira will manually parse the data as its twice as fast as ns. You can see how fast this is by loading the gamecard menu as that manually parses everything, and it loads the gamecard faster than the home menu
ITotalJustice
2025-05-13 23:51:06 +01:00
b98ccb927e
fix appstore status icons no longer being rounded (bug added in e279a70)
ITotalJustice
2025-05-11 20:19:43 +01:00
365ae2d0cb
fix freeze if the usb menu is closed whilst a usb cable is not connected, 0.9.0 -> 0.9.1
0.9.1
ITotalJustice
2025-05-03 21:15:21 +01:00
5b6e09b926
bump version for new release 0.8.2 -> 0.9.0
0.9.0
ITotalJustice
2025-05-03 18:01:49 +01:00
7072647611
reduce usb install exit latency by waiting on a cancel uevent, rather than relying on a timeout.
ITotalJustice
2025-05-03 17:17:53 +01:00
30cf4826f8
add code for calculating games size, stubbed for now as the ns calls are too slow to be usable.
ITotalJustice
2025-05-03 15:30:40 +01:00
ca47fc1f89
add (limited) sort options to game menu. getting the list of title_ids is very fast (less than 1ms), however parsing the control info, such as title names is very slow. depending on how many games the user has, blocking until we read all control info can take several seconds... we would only need to block if the user wants to sort by name. normally, we lazy load the control data, so we don't suffer from slow load times at all. i decided that its not worth slowing the whole system down just to give the option to sort by name.
ITotalJustice
2025-05-03 15:08:25 +01:00
16a2c84edd
simplify right-side shortcuts impl, add gamecard and themezer to shortcut list, fix l2/r2 using wrong icons, sort l2/r2 so l2 displays first. some other changes: - shorten the next page and prev page to just next/prev in themezer. - remove misc shortcut name. the function itself still exists.
ITotalJustice
2025-05-03 14:39:20 +01:00