Commit Graph

140 Commits

Author SHA1 Message Date
Pengfei cb6d58b538 Replace file writes with new helper 2021-07-06 16:42:22 +08:00
Pengfei c81db424bb Refactor InnerFAT into Savegame and Extdata
And derive TitleDB from it too.
2021-07-06 16:11:03 +08:00
Pengfei 184d73d465 Fix LGTM.com not being able to analyse 2021-07-01 15:46:10 +08:00
Pengfei 3d4d815595 Fix build for outdated compilers on CI 2021-07-01 15:34:09 +08:00
Pengfei 19bc9d0210 Use GodMode9 naming scheme 2021-07-01 15:22:38 +08:00
Pengfei e2bef4d705 Add support for title.db, and use title.db to augment TMD finding
Also added support for system title CIA building, and fixed various minor issues.
Also moved MakeMagic to Common.
2021-07-01 14:13:20 +08:00
Pengfei 857bd12a6f Fix appveyor artifact 2021-06-28 23:21:05 +08:00
Pengfei 2575e7fdde Unify ProgressCallbacks to a Common::ProgressCallback 2021-06-28 22:50:16 +08:00
Pengfei 5a4bf7daff Clean up code a little bit 2021-06-28 22:37:03 +08:00
Pengfei 974363b0d9 Added 'Advanced...' menu with batch dumping cxi/cia 2021-06-28 22:17:28 +08:00
Pengfei dac4b1cb41 Rename ImportJob to MultiJob and generalize 2021-06-28 00:26:32 +08:00
Pengfei 817c3ea1a8 Rename ProgressiveJob to SimpleJob
Because I had to.
2021-06-28 00:26:32 +08:00
Pengfei 3db1c43fd6 Changes to accommodate for high DPI
Not sure how this will work on Linux or macOS.
2021-06-27 18:46:08 +08:00
Pengfei 412aeaa0d4 Use Github Actions instead of Travis
Moved MSVC to Github Actions as well.
2021-06-27 00:11:09 +08:00
Pengfei 3d3b51bb98 Enable C++20 and re-enable MSVC build
Also switched to standard-conforming __VA_OPT__ for logging.
2021-06-26 17:37:05 +08:00
zhupengfei e6d67f3aee Fix build 2020-11-28 23:11:10 +08:00
zhupengfei b89376faa8 Update README.md 2020-11-28 20:49:45 +08:00
zhupengfei 47a98faa6f Fix a potential bug in ProgressiveJob 2020-11-28 20:26:52 +08:00
zhupengfei 7aff22c3fc Fix build 2020-11-28 20:16:15 +08:00
zhupengfei 5c595a8046 Add IOFile::GetData 2020-11-28 20:12:24 +08:00
zhupengfei 9cbec118cd core: Add NAND data importing 2020-11-28 17:20:46 +08:00
zhupengfei 87fd41076b frontend: Minor text improvements 2020-11-28 15:53:30 +08:00
zhupengfei 2688a6ef61 Move System Applets into a new category and deselect by default
As they are known to cause problems with Mii Maker and games like Tomodachi Life.
2020-11-28 15:39:59 +08:00
zhupengfei e238015e82 import_dialog: Fix Qt weirdty with ProgressDialog
Hopefully fixes #11

There are times when file writes can be *really* fast (for instance if you just deleted the same file). With modal progress dialogs, Qt call processEvents on setValue. If the operation is done too fast, a new signal would have arrived by this time. This can lead to stack overflow caused by overly deep recursion.
2020-08-27 00:52:35 +08:00
zhupengfei b06440aefb Fix some LGTM alerts 2020-08-07 16:03:22 +08:00
zhupengfei 7c0dc35cab Dump ticket.db
In case we need it later
2020-08-07 13:56:33 +08:00
zhupengfei 0c2e034fac Minor UI fixes 2020-08-07 12:35:56 +08:00
zhupengfei 66b09ffa27 A bunch of fixes to CIA building
1. Clean stale state
2. DLC CIAs
3. Build content index for ticket better
2020-08-07 12:28:47 +08:00
zhupengfei 26b6aee5ca Add LGTM static analyzer config file 2020-08-07 09:02:03 +08:00
zhupengfei 49ddd86b7a Add CIA building
Quite a lot of code, yeah.

The built CIA is almost identical to GM9, with the following differences:
1. Paddings are zeroed out
2. Title key is not written (GM9 gets it from support data/ticket db)
3. Ticket content index is slightly different (GM9 likely takes it from the legit ticket, while we are building a fake one)

The 2, 3 points can be fixed probably.
2020-08-07 08:58:09 +08:00
zhupengfei 769162e95c ncch_container: Fix progress report in DecryptToFile
The total size should now be correct
2020-08-07 08:55:38 +08:00
zhupengfei bf3fe550f8 ncch: Fix Secure1 with seed
Citra's code was wrong here.
2020-08-06 23:03:19 +08:00
zhupengfei ac6f95c067 tmd: Changes in preparation for CIA building 2020-08-06 20:34:59 +08:00
zhupengfei 13409503bf ncch: Fix some issues with DecryptToFile
Now have byte-for-byte accuracy against Godmode9

Now uses a file instead of a path

Preliminary work to support non-executable files
2020-08-06 20:34:10 +08:00
zhupengfei c8f510188c core/ncch: Add ticket
Added structure and fake ticket building (from GodMode9)
2020-08-03 22:47:09 +08:00
zhupengfei 900275bffd Dump certs.db
This is used to build CIAs. Currently only retail certs are supported
2020-08-03 22:47:08 +08:00
zhupengfei 10122a376c Re-add TMD modification code from Citra 2020-08-02 15:49:07 +08:00
zhupengfei 1f91cbdaec Use virtual classes instead of templates for file interfaces
For convenience.
2020-08-01 09:47:44 +08:00
zhupengfei e861d84b72 Fix macos dist folder 2020-06-24 16:13:53 +08:00
zhupengfei 562ef5a3ed Set deployment to tags only 2020-06-24 16:01:21 +08:00
zhupengfei f0d0552139 Updates to the deploy scripts
Only push 7z files (to reduce confusion)
Use tag name when possible
2020-06-24 15:38:29 +08:00
zhupengfei 732695f456 Properly set date and rev 2020-06-23 23:19:42 +08:00
zhupengfei 0323749718 Configure appveyor deploy 2020-06-23 23:11:18 +08:00
zhupengfei d837a07884 Use the older command 2020-06-23 22:43:42 +08:00
zhupengfei 877c4724d8 frontend: Add -no-pie for Linux 2020-06-23 22:07:51 +08:00
zhupengfei 1b8b66521f Fix framework linking 2020-06-20 23:38:07 +08:00
zhupengfei f009574b1e Fix more clang issues
It doesn't seem to like capturing structured bindings, even though they are tuple-like
2020-06-20 23:16:19 +08:00
zhupengfei e9d7ec7244 Fix compile error 2020-06-20 22:54:24 +08:00
zhupengfei 518c995f38 Fix std::min 2020-06-20 22:37:01 +08:00
zhupengfei ce104eb38f Fix strerror_r thingy 2020-06-20 22:27:13 +08:00