Commit Graph

279 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
a13fdeecf6 Merge branch 'master' into developer
Conflicts:
	source/firm.c
	source/patches.c
	source/patches.h
2016-08-21 22:31:39 +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
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
de3eb6ccd7 Merge branch 'master' into developer 2016-08-16 23:10:25 +02:00
Aurora
4f8c66b2b7 There would not be an use for this 2016-08-16 22:59:25 +02:00
Aurora
40369d44df Pin cleanup 2016-08-16 22:39:02 +02:00
TuxSH
a4531b01d5 Merge branch 'master' into developer 2016-08-15 16:51:36 +02:00
TuxSH
d445b20e90 Fix bugs 2016-08-15 16:50:58 +02:00
TuxSH
24ddf5ca3d Merge branch 'master' into developer
Conflicts:
	source/config.c
	source/fs.h
	source/patches.c
2016-08-15 16:29:48 +02:00
Aurora
7ab59e420a Fix comment 2016-08-15 13:28:43 +02:00
Aurora
83a849126a Move stuff from firm.c (2) 2016-08-15 13:23:27 +02:00
Aurora
c9c373f607 Move stuff from firm.c 2016-08-15 13:11:27 +02:00
Aurora
aa7c2c0009 Various changes/cleanups, removed useless code, simplified chronometer functions 2016-08-15 03:51:48 +02:00
TuxSH
3709ac301a Merge branch 'master' into developer
Conflicts:
	source/config.c
	source/fs.c
	source/fs.h
2016-08-13 23:04:41 +02:00
TuxSH
3bc966f84e Replace "Enable splash screen with no screen-init" by "Display splash screen before payloads".
The screens will be initied if and only if there are splash files to display.
2016-08-13 22:23:14 +02:00
TuxSH
457b4cec13 Disable interrupts and do some refactoring. 2016-08-13 20:49:40 +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
39b2aff627 Merge branch 'master' into developer 2016-08-06 22:38:54 +02:00
TuxSH
905777466d Don't set retail keys on dev units. 2016-08-06 22:38:06 +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
eccf9eab93 Enable reading TwlBg and AgbBg as well as TWL_FIRM, AGB_FIRM and SAFE_FIRM from SD card.
It's up to the user to provide supported versions of these firmware binaries (>= 5.x for NATIVE_FIRM, latest versions for the other firmwares) when using this feature.
2016-08-04 13:44:51 +02:00
TuxSH
c36ad54bcb Always load firmware.bin when it exists. 2016-08-04 11:16:28 +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
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
TuxSH
e01802e299 Check the PIN before loading a payload.
Also fix some bugs.
2016-08-03 16:58:03 +02:00
TuxSH
709aefba5d Implement a PIN-checking system.
Idea and original code by @reworks
2016-08-03 14:13:26 +02:00
Aurora
d3c507b0d4 Minor stuff 2016-07-20 00:11:59 +02:00
Aurora
a68e14def3 Added error screen when booting an unsupported NAND with no firmware.bin or writing to the config fails, added code for creating the "luma" directory if it is missing 2016-07-18 23:07:28 +02:00
Aurora
8d1befea9e Rename "Updated SysNAND" to reflect its only new purpose 2016-07-18 19:10:41 +02:00
Aurora
e7b8a0ef39 Force A9LH detection is not needed anymore 2016-07-18 18:53:23 +02:00
Aurora
be6ee894f9 Fix firmware.bin loading 2016-07-18 17:28:04 +02:00
Aurora
e0e8ed2113 Hardcode 9.6 FIRM version for firmware.bin 2016-07-18 17:13:46 +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
Aurora
efd83e063e Remove code to skip the rbeoot patch on 9.0 as it is not needed anymore with A9LH and constitutes a brick risk 2016-07-18 15:40:31 +02:00
Aurora
ae23a1c84d Fixed Luma allowing users to go to the configuration after AGB_FIRM quits 2016-07-18 15:09:04 +02:00
TuxSH
fd1253caac Merge branch 'master' into developer 2016-07-14 21:21:55 +02:00
TuxSH
a0e8bc1de3 Add support for launching >= 6.x/7.x emuNANDs properly when the sysNAND is on a lower firmware version
To launch 3.x - 4.x emuNANDs, you'll need to use an external firmware file (10.x or so should do the trick)
2016-07-14 21:20:45 +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
153bbd6242 Merge branch 'master' into developer
Conflicts:
	source/config.c
2016-07-02 12:48:08 +02:00
Aurora
136e0d8974 Cleanup 2016-07-01 20:27:28 +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
fcb8edffdf Merge branch 'master' into developer 2016-06-14 19:51:49 +02:00
TuxSH
61684ecb68 We need to clean and flush caches before jumping to payloads, actually. 2016-06-14 19:50:38 +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
159c9cb475 Implement our own DCache cleaning functions 2016-06-13 21:14:53 +02:00
TuxSH
2943dcb2e9 Refactor firm.c as well as other files 2016-06-12 22:14:52 +02:00
TuxSH
984c3e549c Merge branch 'master' into developer
Conflicts:
	Makefile
2016-06-11 00:00:53 +02:00
TuxSH
e593584a47 Move screen management code to screen.c and fix cache-related issues
- Screen brightness is now updated as soon as the user selects a brightness option, on all boot environments
- Payloads can now be 1KB bigger
- Some cache-related bugs may have been fixed
2016-06-10 21:48:22 +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
f9d6cdccb0 This is what happens when I don't have a N3DS 2016-06-05 12:08:55 +02:00
TuxSH
edff11be7b Stub svcBreak with "bkpt 65535" so we can debug it 2016-06-04 21:14:00 +02:00
TuxSH
bb230de72c The ARM11 exception handlers are now working.
Refactored the exception handling code in general.
2016-06-03 21:38:35 +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
2424865fa1 Make developer features multi-choice, since modifying UNITINFO prevents accessing eShop on retail consoles (you can now choose "ErrDisp" for a less aggressive patch) 2016-05-28 16:13:22 +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
5fac49447c Update authors for the Cakehax loader 2016-05-27 14:08:06 +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
TuxSH
a3ae38520c Fix the latest two commits 2016-05-25 20:08:37 +02:00
Aurora
c36fa01651 Move patches within emunand.c 2016-05-25 15:35:50 +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
b6969cf0d1 Make "Enable developer features" the last option for compatibility with the master branch 2016-05-13 09:15:40 +02:00
TuxSH
58a33ee6e9 Merge branch 'master' into developer
Conflicts:
	source/firm.c
2016-05-13 08:46:24 +02:00
Aurora
050f433046 Small chrono function refactoring 2016-05-13 05:01:32 +02:00
TuxSH
d48f6b62ce Fixed a build issue 2016-05-12 18:12:10 +02:00
Aurora
ffee64c67f Skip the svcBackdoor function on 9.0 O3DS FIRM - <= 9.5 N3DS FIRM 2016-05-12 15:28:48 +02:00
Aurora
8cbc535755 Minor pedantic changes (3) 2016-05-12 15:16:46 +02:00
TuxSH
2fe5da97eb Merge branch 'master' into developer 2016-05-12 15:03:27 +02:00
Aurora
6ffaeadd1b Minor pedantic changes (3) 2016-05-12 14:48:52 +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
1750b256eb Do things right 2016-05-11 01:08:54 +02:00
TuxSH
d00d82ac89 Update firm.c 2016-05-10 23:27:54 +02:00
TuxSH
edb5a82a89 Restore svcBackdoor (on ARM11, for 11.0 and higher) 2016-05-10 23:06:32 +02:00
TuxSH
d2f53626ae Add precise and reliable time measurement (with a resolution of 67MHz).
Splash screens now last 3 seconds after they have been loaded.
The delay after pressing START in the configuration menu is now 2s long.
2016-05-10 01:27:58 +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
c3ad7eda08 Derp 2016-05-08 17:59:15 +02:00
TuxSH
02c6a3c214 Make FCRAM (and VRAM as a side effect) globally executable from arm11 kernel (only when "developer features" are enabled) 2016-05-08 01:23:22 +02:00
TuxSH
8dd9c1a1af Merge branch 'master' into developer
Conflicts:
	source/firm.c
2016-05-08 00:07:25 +02:00
TuxSH
be54052b6d Make 3ds_injector able to be bigger than the official loader module (max. 25KB on O3DS due to memory limitations). Thanks @mid-kid for the idea. 2016-05-07 23:40:02 +02:00
TuxSH
a63fb971d4 Add support for k9/p9 exception handling on all FIRMs 2016-05-06 20:22:43 +02:00
Aurora
9d68c980e6 Added support for 9.5 New 3DS FIRM to the arm9loader 2016-05-05 04:43:44 +02:00