Commit Graph

  • 391234ea7b Update Russian translation (#155) redraz 2025-05-29 01:24:43 +03:00
  • 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
  • 36c8a60de0 multi-threaded file copy (2.5x speed improvement for sd -> hdd). ITotalJustice 2025-05-28 15:25:50 +01:00
  • 6b01735655 multi-threaded hasher. ITotalJustice 2025-05-28 15:16:32 +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
  • b0ff2eb4b7 Impeeza build enh (#144) impeeza 2025-05-28 05:58:42 -05:00
  • 8821dfcbe4 Update Portuguese translation (#152) Ny'hrarr 2025-05-28 07:57:32 -03: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
  • 8f6c5ff618 enable hdd mounting over ftp, bump ftpsrv commit, disable ftpsrv gc mount, reduce ftpsrv memory usage in half ITotalJustice 2025-05-27 21:47:06 +01:00
  • e1e19b1001 fix native fs showing empty dir count. ITotalJustice 2025-05-27 18:21:13 +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
  • d8b2896bed fix native dump, fix xci dumps going to nsp folder. ITotalJustice 2025-05-23 13:07:00 +01:00
  • 6475f4316a simplify stdio/native file paths by sharing the same code. ITotalJustice 2025-05-23 12:44:56 +01:00
  • 93c38da742 add support for mounting stdio (hdd) in the file browser. ITotalJustice 2025-05-23 12:23:28 +01:00
  • 8070268d2a add hdd dump support, cleanup dump code into a single generic file. ITotalJustice 2025-05-22 15:50:50 +01:00
  • 2e6d757852 update usbds_getspeed to match pr, fix appstore install returning a bool instead of Result. ITotalJustice 2025-05-21 21:52:54 +01:00
  • a91550174a add dump options, allow for gamecard menu to be accessed without install enabled. ITotalJustice 2025-05-21 19:52:22 +01:00
  • 52b166932d Merge branch 'master' into dev ITotalJustice 2025-05-21 17:42:07 +01:00
  • d50bcb650f fix crash if nro has corrupted asset entry, bump version for new release 0.10.2 -> 0.10.3 0.10.3 ITotalJustice 2025-05-21 17:29:18 +01:00
  • 654f3a1446 replace progress box result from bool to Result. Display error box if progress box fails. ITotalJustice 2025-05-21 16:50:18 +01:00
  • 71415e5044 remove unused last_launch | prev_timestamp storing / fetching. ITotalJustice 2025-05-21 15:32:42 +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
  • a67171e2b8 disable sleep whilst downloading, uploading, using usb, inside ftp menu. ITotalJustice 2025-05-20 23:33:51 +01:00
  • cf908d63b9 backport controller led flashing from ftpsrv (only flash 1 controller). ITotalJustice 2025-05-20 23:13:20 +01:00
  • ef25c3edc7 multi thread game dumps and file uploads. ITotalJustice 2025-05-20 22:50:05 +01:00
  • f956adabc3 add xci dumping, add xci cert and id set dump. ITotalJustice 2025-05-20 17:56:55 +01:00
  • 4244be9592 Fix handling of unicode filenames in usb_install_pc.py (#143) ⭐️NINIKA⭐️ 2025-05-20 14:45:59 +03:00
  • a7fc19e28a Pt patches (#140) Ny'hrarr 2025-05-20 05:00:39 -03: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
  • 3bbb5ccb3c Update zh.json (#136) BIGBIGSUI 2025-05-14 07:29:04 +08: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
  • db23f072a2 add sysmmc / emummc install enable options. ITotalJustice 2025-05-11 20:14:34 +01:00
  • 4d3d7e81d4 update libhaze to silence gcc 15 warning and run on core2 instead of core0. ITotalJustice 2025-05-11 03:45:48 +01:00
  • 441807bc53 fix building for gcc 15 ITotalJustice 2025-05-11 03:00:04 +01:00
  • 20e2d85843 remove bubbles, no one likes easter eggs apparently. ITotalJustice 2025-05-11 02:41:56 +01:00
  • e279a70606 add layout options to grid based menues. ITotalJustice 2025-05-11 02:39:03 +01:00
  • 5d9e24af31 use ns application event to detect when to re-scan for record changes. ITotalJustice 2025-05-04 20:37:36 +01:00
  • 078627e07b Update pt.json (#133) Ny'hrarr 2025-05-03 18:27:31 -03: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