Commit Graph

136 Commits

Author SHA1 Message Date
TuxSH
384dd2ad81 Implement on-the-fly patching of TwlBg
(and port the patches from https://github.com/ahezard/twl_firm_patcher; big thanks to ahezard and people mentioned in this page; also to Subv for the original patching idea (for NATIVE_FIRM))
2016-08-25 00:13:43 +02:00
TuxSH
4885e0b8d8 On second thought... 2016-08-23 20:51:48 +02:00
TuxSH
2a84911d3b Setting "Dev. options" to "None" now disables the exception handlers and related patches (again)
Port the UNITINFO patch to TWL/AGB (although it doesn't make debugging information display on fatal errors) and SAFE firms.
On dev units this patch will set it to its "retail" value (i.e. 0)
2016-08-23 20:39:42 +02:00
TuxSH
253e031f83 Add support for loading /luma/TwlBg.cxi (on dev branch this will take precedence) 2016-08-21 22:09:27 +02:00
TuxSH
0951260df7 Merge branch 'master' into developer
Conflicts:
	source/patches.c
2016-08-18 00:39:21 +02:00
TuxSH
b87dadbb72 Update patches.c 2016-08-18 00:36:28 +02:00
TuxSH
1dd6a9821a Merge branch 'master' into developer
Conflicts:
	Makefile
	source/patches.c
2016-08-18 00:35:20 +02:00
TuxSH
50a2424001 Implement svcGetCFWInfo in place of svc 0x2e (which is stubbed). Luma3DS now boots ca. 1.5s faster
Fix bug in pin.c where the START button wasn't recognized as well.
2016-08-17 23:47:30 +02:00
Aurora
aa7c2c0009 Various changes/cleanups, removed useless code, simplified chronometer functions 2016-08-15 03:51:48 +02:00
TuxSH
88891ef6cd Setting "Dev. Options" to "None" no longer disable exception handling and related patches.
Removed the patch that disables execution protection on the global kernel FCRAM and VRAM mapping as it was unused, worthless, and caused bugs in the past.
2016-08-13 15:31:08 +02:00
TuxSH
25811e2b52 Remove handling of kernel panics for SAFE_FIRM k9, fix it for LGY FIRMs. 2016-08-13 11:47:10 +02:00
TuxSH
f81c92e35b The user-mode context is now dumped (instead of the supervisor-mode context) on a svcBreak call.
Kernel panics are now handled by the exception handlers as well.
2016-08-12 15:17:19 +02:00
TuxSH
4e21cf4f1c Add an option to disable access checks (svc, service and arm9 flag checks) (thanks to @Subv for the most part) 2016-08-04 20:10:31 +02:00
TuxSH
81e2b7c11c Merge branch 'master' into developer
Conflicts:
	source/patches.c
2016-08-04 00:18:53 +02:00
TuxSH
18b5cdcddf Don't make any assumption regarding version when loading an external firmware file. 2016-08-04 00:05:01 +02:00
TuxSH
df30a2a320 Fix bug regarding Arm9 exceptions 2016-08-03 23:15:45 +02:00
TuxSH
cf7fa8ecbd Merge branch 'master' into developer
Conflicts:
	source/config.c
	source/firm.c
	source/fs.c
	source/fs.h
	source/patches.c
	source/patches.h
	source/utils.h
2016-08-03 22:52:51 +02:00
Aurora
e7b8a0ef39 Force A9LH detection is not needed anymore 2016-07-18 18:53:23 +02:00
Aurora
c63e46b1a9 Added FIRM version detection, removed firmware.bin loading unless an unsupported O3DS NATIVE_FIRM (pre-5.0) is being loaded, skip patching old unsupported O3DS AGB/TWL FIRMs, only apply 11.0 patches with 11.0 or greater 2016-07-18 16:58:29 +02:00
TuxSH
2412faf033 Merge branch 'master' into developer 2016-07-05 16:11:58 +02:00
TuxSH
72caad86cc Minor stuff 2016-07-05 16:05:53 +02:00
TuxSH
2d6debddb9 Merge branch 'master' into developer
Conflicts:
	source/firm.h
	source/fs.h
	source/patches.h
2016-07-02 17:44:08 +02:00
TuxSH
96211813e3 Use bool instead of u32 where it's relevant 2016-07-02 14:44:01 +02:00
TuxSH
0eb87df84f Enable support for reading FIRM system modules from SD card (in /luma/sysmodules) 2016-06-27 13:21:08 +02:00
TuxSH
0ced86b55f Merge branch 'master' into developer
Conflicts:
	source/firm.c
	source/patches.h
2016-06-13 23:16:33 +02:00
TuxSH
2943dcb2e9 Refactor firm.c as well as other files 2016-06-12 22:14:52 +02:00
TuxSH
e478908dca Make the exception handlers dump more information
You'll need to the latest version of exception_dump_parser.py
2016-06-07 19:25:45 +02:00
TuxSH
35fdd470b3 Fix previous commit on N3DS, with dev. features enabled 2016-06-04 23:51:00 +02:00
TuxSH
edff11be7b Stub svcBreak with "bkpt 65535" so we can debug it 2016-06-04 21:14:00 +02:00
TuxSH
2d7dde9cf9 ARM11 exception handlers (not working yet, it fails to retrieve the data after the reboot)
Uncomment the appropriate line in firm.c to test.
2016-06-02 22:33:44 +02:00
TuxSH
6a280723f8 Fix developer-branch-exclusive patches 2016-05-27 22:06:11 +02:00
Aurora
477414a636 Merge from master, fix derp, cleanup 2016-05-27 14:56:18 +02:00
Aurora
30b3a51309 Cleanup 2016-05-27 04:16:49 +02:00
TuxSH
bafba1197e Fix and refactor stuff 2016-05-25 22:56:26 +02:00
TuxSH
2fab0be5e8 Merge branch 'master' into developer
Conflicts:
	Makefile
	source/firm.c
	source/patches.c
	source/patches.h
2016-05-25 22:28:50 +02:00
TuxSH
7ea2a0a278 Remove the anti-DG check on 11.0 firmware (and future ones) 2016-05-25 20:50:45 +02:00
Aurora
9aeac7af92 Move patches to patches.c and emunand.c, section 0 copying to launchFirm for consistency 2016-05-25 14:34:43 +02:00
TuxSH
58a33ee6e9 Merge branch 'master' into developer
Conflicts:
	source/firm.c
2016-05-13 08:46:24 +02:00
Aurora
8cbc535755 Minor pedantic changes (3) 2016-05-12 15:16:46 +02:00
TuxSH
2c10b6bff2 Merge branch 'master' into developer
Conflicts:
	source/firm.c
	source/patches.c
	source/patches.h
2016-05-12 14:31:48 +02:00
TuxSH
76acfd9934 Minor pedantic changes (2) 2016-05-12 13:35:39 +02:00
TuxSH
06cc4f7172 Minor pedantic changes 2016-05-12 12:24:14 +02:00
Aurora
158659e5b0 More cleanup 2016-05-12 03:13:17 +02:00
Aurora
808c4b7361 Cleanup, possibly slight speedup by limiting Process9 memsearches to the P9 code 2016-05-11 19:28:45 +02:00
TuxSH
b4029dcd73 Merge branch 'master' into developer
Conflicts:
	source/firm.c
	source/patches.h
2016-05-11 01:32:06 +02:00
TuxSH
edb5a82a89 Restore svcBackdoor (on ARM11, for 11.0 and higher) 2016-05-10 23:06:32 +02:00
TuxSH
ac01fe417e Merge branch 'master' into developer
Conflicts:
	source/firm.c
	source/patches.c
	source/patches.h
	source/utils.h
2016-05-09 20:45:06 +02:00
Aurora
b90b138766 Cleanup, fix latest ctrulib, removed reboot after config (needs testing!), fixed L+SELECT payload 2016-05-09 03:41:29 +02:00
TuxSH
8dd9c1a1af Merge branch 'master' into developer
Conflicts:
	source/firm.c
2016-05-08 00:07:25 +02:00
TuxSH
9e87679ee2 Use a much better algorithm for getLoader (Luma3DS boots around 0.25s faster now) 2016-05-07 19:16:53 +02:00
Aurora
169b12fc20 Merge changes from master, added support for netloader companion (payload must be "nlc.bin" and will be deleted after being read, moved exception vectors 2016-05-03 16:57:00 +02:00
Aurora
fef48a449a Code refactoring, added support for SAFE_MODE FIRM on A9LH (you can update safely from it now). Thanks to delebile for the O3DS SAFE_MODE FIRM FIRM0/1 protection! 2016-05-03 01:21:43 +02:00
Aurora
efd08ff731 Revert "Move the UNITINFO patch to the developer version"
This reverts commit f9a1f1a79b.
2016-04-26 22:00:29 +02:00
Aurora
f9a1f1a79b Move the UNITINFO patch to the developer version 2016-04-26 21:51:57 +02:00
Aurora
a736e4602a Cleanup 2016-04-26 20:10:20 +02:00
Aurora
3fd4603553 Welcome Luma3DS 2016-04-23 01:43:36 +02:00
Aurora
6d4a84a325 Remove unneeded stuff from the loader injection 2016-04-13 14:37:40 +02:00
Aurora
ef3ba896d5 Cleanup, removed the non-working clock speed patch 2016-04-12 14:32:38 +02:00
Aurora
0e9ff44746 Made N3DS >9.6 key generation version independent 2016-04-11 22:26:39 +02:00
Steven Smith
b3f0d13aa4 Add developer UNITINFO patch. 2016-04-11 12:14:51 -07:00
Aurora
3475cfe1e6 Changed indentation style across the code to make it more readable, added newlines before comments, moved patches to separate functions, made memory operations slightly faster by compiling them with O3 (thanks TuxSH!) 2016-04-02 18:22:47 +02:00
Aurora
5f32779ceb Lots of changes/new features
- To override the last used boot mode on soft reboot, you only need to press A if you want to boot to the default option. Holding L(+payload button)/R is enough for the other modes.
- Added version number to the config menu
- Replaced the memsearch algorithm with a faster one
- Integrated 3ds_injector from @yifanlu. This brings us region free and all the other FreeMultiPatcher patches. Other than that, you now have the possibility to display the currently booted NAND/FIRM in System Settings!
- Rewritten most code for the config menu. You now can navigate to the first/last options with left and right.
- You can now choose the 9.0 FIRM to be default in the config menu. This will essentially switch "no buttons" and L in both modes.
- You can now choose the second emuNAND to be default in the config menu. This will essentially switch "B is not pressed" and "B is pressed".
- When the second emuNAND is booted, it will persist like the other boot options on soft reboot
- Bugfixes
2016-03-29 17:43:53 +02:00
Aurora
e8ebb2f7fe Fixed signature patterns searching area, aligned variable/function names to the latest ReiNand 2016-03-27 19:19:35 +02:00
Aurora
441c143b3e No reason for these not to be u8s 2016-03-26 19:28:46 +01:00
Aurora
0f44205959 Simplified patching, yet one memsearch less, fixed override with A+L when boot options are forced 2016-03-26 17:25:05 +01:00
Aurora
1861d556a6 Spaces and stuff
Makes things more uniform
2016-03-25 18:17:12 +01:00
Aurora
96e46b2234 Remove unneeded casts 2016-03-23 15:16:40 +01:00
Aurora
b7b734bad1 Added configuration menu (thanks to Cakes for the screen printing code - no more flags!), auto-delete of patched FIRMs when switching to/from A9LH or the CFW gets updated, moved screen init from the loader, general reorganization 2016-03-23 02:46:41 +01:00
Aurora
d01d9b53f2 No need to search for the Process9 .code, calculate it (one memsearch less) 2016-03-21 20:27:01 +01:00
Aurora
1f5b824c27 Clean-up, optimized the SDMMC struct searching function, lots of useless casts removed, Process9 only gets searched once 2016-03-21 19:14:32 +01:00
Aurora
a437e533f5 Slightly improved the reboot patch, added emuNAND patch improvements from CakesFW, made the emuNAND patch completely version-independent
Should work as-is with future firmwares!
2016-03-21 03:21:22 +01:00
Aurora
04978ebb01 Const for all
Probably useless, but for the sake of readability
2016-03-06 23:52:14 +01:00
Aurora
478ebeadf8 Fixed stupid mistakes 2016-03-06 19:05:41 +01:00
Aurora
4bdba9f8e9 Even moar clean-up 2016-03-06 16:31:16 +01:00
Aurora
90ebe78c8e Added forcing of boot options on A9LH
Always prevents losing AGB_FIRM saves, forces the last used options on a MCU reboot (can be overridden with A)
2016-03-05 15:42:40 +01:00
Aurora
23fd26630f New reboot patch (works on N3DS, no more GBA/DS or 80 MB games toggle), fixed N3DS 3D bug (thanks TiniVi and Cakes), code cleanup, new universal MPU code (thanks Cakes)
Thanks to a very skilled reverser for the reboot patch!
2016-02-25 20:22:10 +01:00
Aurora
38995d3231 Re-added reboot patch on A9LH, optimizations
O3DS and N3DS now share the same emuNAND patch, shorter patching patterns, patched_firmware does not keep garbage from larger loaded FIRMs, flags can be empty files
2016-02-20 15:29:32 +01:00
Aurora
b4d94da531 Added "updated sysNAND" mode, FIRM writes patch, propered emuNAND code location
Thanks to delebile for the patch!
2016-02-19 21:32:07 +01:00
Aurora
e34ca44715 Reduced pattern size, fixed N3DS NAND0 FIRM size
It's actually a little smaller
2016-02-11 00:45:24 +01:00
Aurora
42b39c9ab8 Merged my changes
There you have it!
2016-02-08 03:37:03 +01:00
Reisyukaku
7f2597fe2f Encrypted illegal stuff ;^) ..and more work on smart patching system 2016-02-05 18:56:30 -05:00
Reisyukaku
62d8d582c1 Emunand self patching; found solution for some hard coded stuff/FS more flexible; got rid of screenShot; implemented PoC RAM dumper using txt file; changed location of arm9 thread; fixed ver string; tons of organization and cleaning up for easier to read and modify code. 2016-01-23 04:17:48 -05:00
Reisyukaku
2465cb0fa9 10.2 firmlaunch + emunand partition bug fix 2016-01-18 16:41:49 -05:00
Reisyukaku
6a2c30503d Got rid of sysnand mode, add key gen code, new splash screen, autoboot, update fatfs, removed ninjhax/mset folder for CakeBrah/CakeHax, lots of minor changes. 2016-01-16 07:57:56 -05:00
Reisyukaku
475ddf8b6a 9.6+ emunand! 2016-01-13 16:30:09 -05:00
Reisyukaku
b914674325 Added crypto libs, tons of code refactoring to support other firms, other minor stability issues handled. 2015-08-21 14:11:23 -04:00