135 Commits

Author SHA1 Message Date
TuxSH
ef1773ef4a rosalina: add ability to menu to take screenshot of itself (default combo: L+Up+Select)
Only for documentation purposes, via compile-time flag.

And fix some resource leak bugs, etc.
2024-09-23 00:35:22 +02:00
TuxSH
0a11d29d8b rosalina: move power off/reboot back, in a single menu entry this time 2024-09-18 22:36:04 +02:00
TuxSH
1c737d499f rosalina: add qtm calibration submenu
Also steal qtm handle b/c of limitiations (max 3 sessions total)
2024-09-15 23:44:44 +02:00
TuxSH
2aa2013318 rosalina: add SS3D toggle option
Closes #2062
2024-09-15 23:44:36 +02:00
TuxSH
a7bd3208a5 Declutter main rosalina menu & reorder
"Change screen brightness" (due to limitations), "Power Off", "Reboot" moved to sysconfig menu
2024-09-09 00:44:48 +02:00
TuxSH
14e462be20 Clarify that the color curve fixing is intended for IPS top screen only (with stellar results)
And that bottom screen curve doesn't actually match (I don't have bottom IPS New 3DSes but I have asked people who do).
2024-09-03 20:33:21 +02:00
TuxSH
f0be624792 rosalina: add system info menu with TN/IPS screen detection in it 2024-08-14 22:48:33 +02:00
TuxSH
2c49a04516 rosalina: add battery info in debug info 2024-08-02 17:22:53 +02:00
TuxSH
db4564a3f5 rosalina: implement full color space correction (to sRGB)
Add option to make the 3DS screens look like sRGB monitors. While this
is not perfect (due to screen variance, and it may make dark tones
slightly darker), this significantly improves the color fidelity of
homebrew and custon HOME Menu themes, removing that "blueish, washed-out
look".

Do note that first-party party 3DS games are designed around the 3DS's
"washed-out" color curve, and may not need that adjustment.

(done in collaboration with @profi200)
2024-07-31 23:22:48 +02:00
TuxSH
988ec17ebf Screenshots: when dealing with 800px mode, produce 800x480 instead of 800x240 images for more faithful output
Each line is duplicated in this case (integer scaling 2)
2024-06-22 01:22:22 +02:00
PabloMK7
2df3c389c1
plugin loader: add persistent plugin user load parameters (#2027) 2024-05-09 21:52:49 +02:00
TuxSH
64293f8942 Config changes and fixes, see description
- Remove allow_updown_leftright_dsi (option was unused and useless)
- Hide enable_dsi_external_filter. Do not mention out-of-date wiki,
  fixes #1992
- Limit gamma to a more reasonable value of 8, fixes #1989
2024-05-01 17:58:15 +02:00
PabloMK7
5928eefe95
plugin_loader: Add new flags to 3gx files (#2021) 2024-05-01 00:31:23 +02:00
PabloMK7
bef642c04f Add volume slider override 2024-02-06 23:53:28 +01:00
PabloMK7
e2778a45cf Fix macro change in libctru 2023-10-31 18:38:40 +01:00
TuxSH
41edcde5c0 Add enable_dsi_external_filter and allow_updown_leftright_dsi 2023-07-17 01:11:43 +02:00
PabloMK7
c055fb6f5e
Merge 3GX plugin loader fork (#1916)
This commit adds all the changes made to the 3GX plugin loader fork of Luma3DS. The most important features are:

- Add 3GX plugin loader support. New service added to rosalina: plg:ldr
- Add svcControlProcess, svcControlMemoryUnsafe and improve svcMapProcessMemoryEx (breaking change)
- Allow applications to override certain configurations depending on their needs:
    - Disable core2 thread redirection
    - Disable game patching for the next app
    - Force New 3DS speedup
    - Force next application in a specific memory mode
    - Block the opening of the Rosalina menu
- Add GDB commands to list all process handles and catch all SVC (latter is for IDA Pro as gdb client supports it)
- Other changes necessary for plugins to work properly. Please check changed files in this PR for more details. 

---------

Co-authored-by: PabloMK7 <hackyglitch@gmail.com>
Co-authored-by: Nanquitas <nath.doidi@gmail.com>
Co-authored-by: TuxSH <1922548+TuxSH@users.noreply.github.com>
2023-07-14 20:08:07 +02:00
TuxSH
5b417189db Remove "Use EmuNAND FIRM with R" option
This is a leftover from the Gateway era that has long lost its utility
and that unnecessarily complicated the code base.

Please just load an external FIRM from SD card if you need something
similar.

Also refactor the multi-EmuNAND code and CTRNAND mounting code.
2023-07-09 00:28:17 +02:00
TuxSH
ef1072f996 Add option to force audio routing to speakers, closes #1837
Also refactor ini file a little bit
2023-02-10 01:02:01 +00:00
TuxSH
1d7cca25d1 Fix long-standing bug affecting hbldr TID change option
This was a long-standing bug since Luma3DS v8.0.

If you changed the homebrew title and didn't immediately reboot, then
the ExHeader during termination would not match the ExHeader that was
was used for loading the process, and thus sysmodule process refcounts
would get all messed up.

The obvious solution to this is to ensure no application is running
while changing the hbldr titleID (hence the changes in custom PM).

This was quite possibly one of the cause of homebrew failing to load
when using N3DS H&S.
2023-02-08 16:14:59 +00:00
TuxSH
1888e17b22 Add ability to force routing audio to headphones...
... even when HPs aren't inserted.

This is aimed at people using Bluetooth audio hw mods.

There are some software limitations, please read the INI/option
description.

Closes #1828.
2023-02-08 00:52:57 +00:00
TuxSH
9957d6db1a rosalina: move "save settings" to top-level menu 2023-02-05 16:34:37 +00:00
TuxSH
777b43b285 rosalina: allow setting top and bot screen filters separately 2023-01-31 00:32:16 +00:00
TuxSH
8dd40158ca Add config persistence for new screen filters stuff 2023-01-21 18:28:53 +00:00
TuxSH
7397c85434 rosalina: add color gamma control, and more
This commits adds an "Advanced configuration" option to screen filters,
where CCT, color gamma, contrast and "brightness" can be fine-tuned,
instead of just using a preset.

Persistence in config.ini TBD in a later commit.
2023-01-20 02:10:14 +00:00
TuxSH
6592b516a4 rosalina: refactor screen filter code
https://i.kym-cdn.com/photos/images/original/001/264/842/220.png
2023-01-17 23:48:07 +00:00
TuxSH
19f7ef372b errdisp: properly handle game medium being removed
- transform some error codes into "NAND damaged" or "Gamecard removed"
like official errdisp does
- fix bug in SetUserString
- add more info to logfile (/luma/errdisp.txt)
2023-01-11 23:24:59 +00:00
TuxSH
5cdbfab54b Add build options to Makefile
For stuff like testing PASLR, *hax2x, khc3ds, etc.

Also fix a corner-case bug when changing the 3dsx app from itself to
itself, if its TID corresponds to the default.
2023-01-07 15:38:36 +00:00
TuxSH
7074ac1166 Move hb:ldr from Rosalina to Loader
Let's not pretend in 2022 that it needed things from rosalina sysmodule
- it did not.

This moves 3DSX loading from Rosalina to Loader, and also removes all
the dependencies Loader had to other Luma3DS components (if kernel ext.
is missing, a default config will be used). This means that, as long as
you replace Loader to the one in here, you will be able to properly load
3DSX files.

Changes:
- hb:ldr is now hosted in loader
- hb:ldr LoadProcess, PatchExHeaderInfo, DebugNextApplicationByForce:
  all removed
- fix a bug where some malformed 3DSX files were not rejected
- grant access to CONFIG11 registers to 3DSX homebrew
- move dirty homebrew chainload (when HM. isn't loaded nor loadable) to
  pm
- pm:dbg (ext.) PrepareToChainloadHomebrew: removed
2022-12-25 23:27:48 +01:00
TuxSH
c0eaf1ea3c Add option to toggle power to card slot.
Fixes #1202. This option is meant to be used when you have something like e.g. a flashcard that is misbehaving.
2022-04-15 21:41:23 +01:00
TuxSH
56be46b4bd rosalina: introduce bootdiag, tool to dump state of a process in early init 2022-04-10 21:43:19 +01:00
TuxSH
01ebbf114c Restore extended-remote support & map <GDB PID>-><1 + 3DS PID> (breaking change)
Once more, the "official" gdb client is the one than is the least compliant to its very own stub specs (compared to, say, IDA)
2022-04-09 19:28:33 +01:00
TuxSH
676bbf0d88 Moved config file to INI, and more
- Add support for saving screen filters color temperature and NTP timezone offset (you still need to go to misc->save config)
- some advanced options moved to "in ini file only"; "patch games" is now enabled by default
- ntp: fix support for UTC+12 to +14
- remove deprecated custom svc 0x2e
2022-03-28 20:30:02 +01:00
TuxSH
bc6e14ada7 ntp: more precise & also set system time
System time is what System Settings (only) changes; user time seems to be set periodically by HM.
2022-03-16 22:19:49 +00:00
TuxSH
44c1711805 Update copyright years 2022-03-13 18:00:00 +00:00
TuxSH
505a17bba1 rosalina: add DSP firm dumping option 2021-01-16 21:16:32 +00:00
TuxSH
883c5e25dd sysmodules: update ifile, process_patches 2021-01-16 21:16:06 +00:00
TuxSH
2a947b5c42 rosalina: split ntp and timeoffset nullification
- NTP option doesn't require a reboot to take effect anymore and behaves as if you'd used System Settings, taking effect immediately. This is the proper way to do it, and is easier to use.
- Timeoffset nullification kept as a separate option for compatibility. RTC is supposed to be somehwat monotonic; using this option causes issues with SpotPass. IMHO GodMode9 should parse the cfg save file and do things *properly*
2021-01-13 23:55:55 +00:00
TuxSH
12ed3ae65f rosalina: add kernel&mcu fw ver. to debug info menu 2021-01-07 01:38:40 +00:00
Nanquitas
8c7f31bb4d Rosalina: disable black fillcolor 2020-07-23 20:04:42 +02:00
TuxSH
748b771618 rosalina: ndm + shutdown issue workaround 2020-07-16 17:55:31 +01:00
TuxSH
781cd85b00 rosalina: display min/max luminance 2020-07-16 00:50:05 +01:00
TuxSH
2af05220c2 rosalina: properly rewrite luminance-setting menu, etc. 2020-07-14 22:10:13 +01:00
TuxSH
768e587b76 sysmodules: introduce "luma shared config", rewrite ndmu workaround 2020-07-12 19:36:18 +01:00
TuxSH
4c01bb453c rosalina: prevent disconnect when shell is closed
Fuck ndm, fuck StreetPass
2020-07-11 21:39:36 +01:00
TuxSH
dc67d438dc rosalina: properly restore screen filters when lid is reopened 2020-07-10 22:58:07 +01:00
TuxSH
e69f89a0d4 Change screen filters presets (adding more) menu & print CCT. Fixes #1442.
Most new presets come from 8bitwonder
2020-07-05 20:54:27 +01:00
TuxSH
9411a8c186 rosalina: implement 800px top-screen screenshot, etc. Fixes #1443 2020-07-05 18:44:41 +01:00
TuxSH
0471002d4c rosalina: ntp: use PTMSYSM_SetRtcTime 2020-05-18 22:43:00 +01:00
TuxSH
b02d0346fd rosalina: add hidden debug info menu 2020-05-17 22:48:26 +01:00