diff --git a/README.md b/README.md index 1ce1407..44bea11 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт. -### [UltraNX 3.0|R4+](https://github.com/Ultra-NX/UltraNX/releases/tag/3.0-R4) Поддерживает все HOS до 22.5.0 включительно +### [UltraNX 3.1|RC1](https://github.com/Ultra-NX/UltraNX/releases/tag/3.1-R1) Поддерживает все HOS до 23.0.0 включительно diff --git a/README_ENG.md b/README_ENG.md index 7f840ae..a24e933 100644 --- a/README_ENG.md +++ b/README_ENG.md @@ -6,7 +6,7 @@ # ### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience. -### [UltraNX 3.0|R4+](https://github.com/Ultra-NX/UltraNX/releases/tag/3.0-R4) Supports all HOS up to and including 22.5.0 +### [UltraNX 3.1|RC1](https://github.com/Ultra-NX/UltraNX/releases/tag/3.1-R1) Supports all HOS up to and including 23.0.0 diff --git a/SaltySD/saltynx_core.elf b/SaltySD/saltynx_core.elf index 0684fca..0cfb7ed 100644 Binary files a/SaltySD/saltynx_core.elf and b/SaltySD/saltynx_core.elf differ diff --git a/SaltySD/saltynx_core32.elf b/SaltySD/saltynx_core32.elf index cb76cc4..34b8b46 100644 Binary files a/SaltySD/saltynx_core32.elf and b/SaltySD/saltynx_core32.elf differ diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp index 74aa6e7..e424120 100644 Binary files a/atmosphere/contents/0000000000534C56/exefs.nsp and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/contents/0000000000534C56/toolbox.json b/atmosphere/contents/0000000000534C56/toolbox.json index 08fe956..a3ec2fd 100644 --- a/atmosphere/contents/0000000000534C56/toolbox.json +++ b/atmosphere/contents/0000000000534C56/toolbox.json @@ -2,5 +2,5 @@ "name": "SaltyNX", "tid": "0000000000534C56", "requires_reboot": true, - "version": "1.9.3" + "version": "2.0.0" } diff --git a/atmosphere/contents/010000000000bd00/exefs.nsp b/atmosphere/contents/010000000000bd00/exefs.nsp index 45b8e4d..9574b7f 100644 Binary files a/atmosphere/contents/010000000000bd00/exefs.nsp and b/atmosphere/contents/010000000000bd00/exefs.nsp differ diff --git a/atmosphere/contents/690000000000000D/exefs.nsp b/atmosphere/contents/690000000000000D/exefs.nsp index 0c91dde..f2a9de5 100644 Binary files a/atmosphere/contents/690000000000000D/exefs.nsp and b/atmosphere/contents/690000000000000D/exefs.nsp differ diff --git a/atmosphere/contents/690000000000000D/flags/boot2.flag b/atmosphere/contents/690000000000000D/flags/boot2.flag deleted file mode 100644 index e69de29..0000000 diff --git a/atmosphere/exefs_patches/hid_patches/12DB6C7DF6BF40BC02695C611EC46F458504A5AD.ips b/atmosphere/exefs_patches/hid_patches/12DB6C7DF6BF40BC02695C611EC46F458504A5AD.ips deleted file mode 100644 index e70e8aa..0000000 Binary files a/atmosphere/exefs_patches/hid_patches/12DB6C7DF6BF40BC02695C611EC46F458504A5AD.ips and /dev/null differ diff --git a/atmosphere/exefs_patches/hid_patches/403978CD2BC64E4ACB3BF1A5E556F582BFC3498B.ips b/atmosphere/exefs_patches/hid_patches/403978CD2BC64E4ACB3BF1A5E556F582BFC3498B.ips deleted file mode 100644 index e70e8aa..0000000 Binary files a/atmosphere/exefs_patches/hid_patches/403978CD2BC64E4ACB3BF1A5E556F582BFC3498B.ips and /dev/null differ diff --git a/atmosphere/exefs_patches/hid_patches/8BDBD223E61D122E98CDBFC77C231BBB5CBE56E3.ips b/atmosphere/exefs_patches/hid_patches/8BDBD223E61D122E98CDBFC77C231BBB5CBE56E3.ips deleted file mode 100644 index e70e8aa..0000000 Binary files a/atmosphere/exefs_patches/hid_patches/8BDBD223E61D122E98CDBFC77C231BBB5CBE56E3.ips and /dev/null differ diff --git a/atmosphere/exosphere.bin b/atmosphere/exosphere.bin index 05f62db..380629a 100644 Binary files a/atmosphere/exosphere.bin and b/atmosphere/exosphere.bin differ diff --git a/atmosphere/kips/hoc.kip b/atmosphere/kips/hoc.kip index 002e011..d0d796a 100644 Binary files a/atmosphere/kips/hoc.kip and b/atmosphere/kips/hoc.kip differ diff --git a/atmosphere/package3 b/atmosphere/package3 index b2d5ef8..df42f8d 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/atmosphere/reboot_payload.bin b/atmosphere/reboot_payload.bin index db05b16..ed5d52e 100644 Binary files a/atmosphere/reboot_payload.bin and b/atmosphere/reboot_payload.bin differ diff --git a/atmosphere/stratosphere.romfs b/atmosphere/stratosphere.romfs index efa9b73..3e3b983 100644 Binary files a/atmosphere/stratosphere.romfs and b/atmosphere/stratosphere.romfs differ diff --git a/bootloader/payloads/Lockpick_RCM.bin b/bootloader/payloads/Lockpick_RCM.bin index 359e6a4..0d57008 100644 Binary files a/bootloader/payloads/Lockpick_RCM.bin and b/bootloader/payloads/Lockpick_RCM.bin differ diff --git a/bootloader/res/icon_payload.bmp b/bootloader/res/icon_payload.bmp new file mode 100644 index 0000000..f60e75d Binary files /dev/null and b/bootloader/res/icon_payload.bmp differ diff --git a/bootloader/res/icon_switch.bmp b/bootloader/res/icon_switch.bmp new file mode 100644 index 0000000..358c495 Binary files /dev/null and b/bootloader/res/icon_switch.bmp differ diff --git a/bootloader/sys/emummc.kipm b/bootloader/sys/emummc.kipm index 13aa3a5..4238756 100644 Binary files a/bootloader/sys/emummc.kipm and b/bootloader/sys/emummc.kipm differ diff --git a/bootloader/sys/l4t/sc7exit_b01.bin b/bootloader/sys/l4t/sc7exit_b01.bin index d9253a6..17cd3c5 100644 Binary files a/bootloader/sys/l4t/sc7exit_b01.bin and b/bootloader/sys/l4t/sc7exit_b01.bin differ diff --git a/bootloader/sys/nyx.bin b/bootloader/sys/nyx.bin index 461299a..91ddd3d 100644 Binary files a/bootloader/sys/nyx.bin and b/bootloader/sys/nyx.bin differ diff --git a/bootloader/update.bin b/bootloader/update.bin index db05b16..ed5d52e 100644 Binary files a/bootloader/update.bin and b/bootloader/update.bin differ diff --git a/config/aio-switch-updater/custom_packs.json b/config/aio-switch-updater/custom_packs.json index 9595d3e..f089c5f 100644 --- a/config/aio-switch-updater/custom_packs.json +++ b/config/aio-switch-updater/custom_packs.json @@ -1,6 +1,7 @@ { "ams": { - "[PACK] UltraNX 3.0|R4": "https://github.com/Ultra-NX/UltraNX/releases/latest/download/Ultra.zip" + "[PACK] UltraNX 3.1|RC1 Prerelease HOS ≤23.0.0": "https://github.com/Ultra-NX/UltraNX/releases/latest/download/Ultra.zip", + "[PACK] UltraNX 3.0|R4+ Stable HOS ≤22.5.0": "https://github.com/Ultra-NX/UltraNX/releases/download/3.0-R4/Ultra.zip" }, "misc": { "Refresh AIO": "https://github.com/Ultra-NX/Ultra-Resources/releases/download/Homebrews/AIO.zip" diff --git a/config/status-monitor/lang/ru.json b/config/status-monitor/lang/ru.json index 735c347..e97c624 100644 --- a/config/status-monitor/lang/ru.json +++ b/config/status-monitor/lang/ru.json @@ -23,10 +23,10 @@ "Load": "Нагрузка", "Total\nApplication\nApplet\nSystem\nSystem Unsafe": "Общая\nПриложение\nАпплет\nСистема\nСистем. (небез.)", "Board": "Плата", - "Battery Power Flow": "Мощность аккумулятора", + "Battery Power Flow": "Расход/зарядка", "\nTemperatures": "\nТемпературы", "SoC\nPCB\nSkin": "SoC\nPCB\nSkin", - "Fan Rotation Level": "Скорость вентилятора", + "Fan Rotation Level": "Скорость кулера", "Game": "Игра", "PFPS ": "PFPS ", "FPS ": "FPS ", @@ -45,7 +45,7 @@ "Age": "Износ", "Voltage": "Напряжение", "Current Flow": "Сила тока", - "Power Flow": "Мощность", + "Power Flow": "Расход/зарядка", "Remaining Time": "Оставшееся время", "Charger Stats": "Состояние зарядки", "Input Current Limit": "Лимит входного тока", @@ -106,7 +106,7 @@ "Stacked VDD2/VDDQ": "VDD2/VDDQ (стек)", "Full Resolution": "Полное разрешение", "SOC Voltage": "Напряжение SOC", - "Stacked Fan/SOC": "Вентилятор/SOC (стек)", + "Stacked Fan/SOC": "Кулер/SOC (стек)", "RAM Load CPU/GPU": "Загрузка RAM CPU/GPU", "Stacked RAM Load CPU/GPU": "Загрузка RAM CPU/GPU (стек)", "Use DTC Symbol": "Исп. символ DTC", @@ -200,7 +200,7 @@ "Skin": "Skin", "CPU ": "CPU ", "GPU ": "GPU ", - "MEM ": "MEM ", + "MEM ": "RAM ", "SOC ": "SOC ", "PCB ": "PCB ", "Skin ": "Skin ", diff --git a/config/sys-con/config.ini b/config/sys-con/config.ini index 891bdd1..63fd4b2 100644 --- a/config/sys-con/config.ini +++ b/config/sys-con/config.ini @@ -4,6 +4,13 @@ ;Loaded once during startup, if you change it you need to restart the console [global] +;How USB controllers are published to the console as virtual pads: +; hiddbg: attach virtual devices through hiddbg/HDLS (default, most compatible) +; mitm: man-in-the-middle the 'hid' service and feed each game a fake HID shared memory +; disabled: completely disable sys-con (Similar to remove boot2.flag) +;Both are available on either build; requires Atmosphere at runtime. +mode=hiddbg + ; polling_timeout_ms determines how long (in ms) the polling_thread waits for data from the controller before retrying to poll it. ; For controllers with multiple interface (Like XBOX360 wireless) this value will determine how fast sys-con will read controllers. ; For all other controllers, this value doesn't really impact controller responsiveness, so keep it high to avoid high CPU usage. @@ -34,6 +41,15 @@ discovery_vidpid=054c-*,0f0d-0088 ;1: Enabled auto_add_controller=1 +;Network controller driven over UDP, for scripted input during testing (see tools/networkpad.py). +;When enabled, sys-con listens on the port below and turns each datagram into a virtual pad, +;which appears alongside any real USB controllers. The console must already be on the network. +;Leave this disabled unless you are testing: anyone on the same network can press buttons. +;0: Disabled +;1: Enabled +network_controller=0 +network_controller_port=56789 + ; *************************************** ; Controller configuration ; *************************************** @@ -41,7 +57,7 @@ auto_add_controller=1 ; Default configuration is used as base of configuration for all controller (Do not change it) ; If you want to change the default configuration, it's better to change the configuration of the controller you want to use -;controller_type might be one of these ones: prowithbattery, tarragon, snes, pokeballplus, gamecube (Not supported since 19.0.1), pro, 3rdpartypro, n64, sega, nes, famicom +;controller_type might be one of these ones: prowithbattery, tarragon, snes, pokeballplus, gamecube, pro, 3rdpartypro, n64, sega, nes, famicom [default] driver= @@ -97,6 +113,19 @@ home=0 simulate_capture=minus+dpad_up simulate_home=minus+dpad_down +;Rumble for controllers sys-con has no dedicated driver for (driver= empty, so generic HID). +;Write the output report the pad expects in hex and leave the amplitudes as placeholders: +; LL low frequency (heavy) motor, one byte +; RR high frequency (light) motor, one byte +; LLLL / RRRR two bytes, most significant first +; llll / rrrr two bytes, least significant first +; 00*26 repeats the byte before it, so trailing padding stays readable +;Spaces are ignored, everything else is sent as written, and the report goes to the pad's +;output endpoint. Drivers with their own rumble (xbox*, switch, dualshock3, sinput, ...) +;ignore this key. Capture a rumble report with Wireshark to find the right bytes +;(see doc/WiresharkCapture.md). Example for a pad taking an Xbox 360 style report: +;vibration=00 08 00 LL RR 00 00 00 + ; *************************************** ; Profiles ; *************************************** @@ -197,6 +226,7 @@ home=13 capture=14 lstick_click=11 rstick_click=12 +vibration=02 03 00 RR LL 00*58 [dualshock4] color_body = #1c1c1c @@ -290,6 +320,27 @@ factor_rz=125 factor_rx=125 factor_ry=125 +[sinput] +driver=sinput +color_body = #1c1c1c +color_buttons = #515050 +color_leftGrip = #1c1c1c +color_rightGrip = #1c1c1c +B=1 +A=2 +Y=3 +X=4 +lstick_click=5 +rstick_click=6 +L=7 +R=8 +ZL=9,+Rx +ZR=10,+Ry +plus=13 +minus=14 +home=15 +capture=16 + [steam2026] driver=steam2026 color_body = #1c1c1c @@ -311,6 +362,46 @@ rstick_click=14 home=12 capture=11 +;Profile for the network controller driven over UDP (network_controller=1 above). +;Unlike a real controller, its pin numbers are not dictated by hardware, so they are simply +;the button numbering itself: bit N of the UDP packet is pin N. The mapping is written out in +;full rather than left implicit, and you can remap it here like any other controller. +;The deadzones and factors are reset because the sender already says exactly where the +;sticks are - [default] would otherwise clamp the first 20% of every axis to zero. +[network] +driver=network +;Debugger blue: the UDP pad is a testing tool, so it should never be mistaken for a real one. +color_body = #2d7dff +color_buttons = #0a3d91 +color_leftGrip = #1a5fd0 +color_rightGrip = #1a5fd0 +X=1 +A=2 +B=3 +Y=4 +lstick_click=5 +rstick_click=10 +L=15 +R=16 +ZL=17 +ZR=18 +minus=19 +plus=20 +dpad_up=21 +dpad_right=22 +dpad_down=23 +dpad_left=24 +capture=25 +home=26 +deadzone_x=0 +deadzone_y=0 +deadzone_z=0 +deadzone_rz=0 +factor_x=100 +factor_y=100 +factor_z=100 +factor_rz=100 + ; *************************************** ; Controllers VID/PID configuration ; *************************************** @@ -724,12 +815,22 @@ dpad_up=3 dpad_down=4 a=11 +[04d9-0008] ;Saulabi 4K Arcade Stick +b=2 +a=3 +x=4 +y=1 +l=5 +r=6 +minus=9 +plus=10 + ; *************************************** ; N64 / GC adapter ; *************************************** [0601-0101] ;GC controller adapter HS-WU025 (pc mode) -;controller_type=gamecube ;Not supported since 19.0.1 +controller_type=gamecube b=3 a=2 x=1 @@ -742,7 +843,7 @@ dpad_up=13 dpad_right=14 [0079-1846] ;GC controller adapter BX-W201C (pc mode) -;controller_type=gamecube ;Not supported since 19.0.1 +controller_type=gamecube b=3 a=2 x=1 @@ -755,6 +856,7 @@ dpad_up=13 dpad_right=14 factor_x=150 factor_y=150 +vibration=RR LL [0e8f-3013] ;N64 PC adapter controller_type=n64 @@ -816,6 +918,7 @@ capture=17 home=18 lstick_click=14 rstick_click=15 +vibration=05 llll rrrr [2dc8-301c] ;8bitdo Ultimate 2C Wireless Dongle A=1 @@ -846,9 +949,31 @@ profile=switch [057e-0337] ;Wii Controller BX-W201 (USB) or WUP-028 profile=wii -;controller_type=gamecube +controller_type=gamecube +; *************************************** +; SInput controllers +; *************************************** + +[2e8a-10c6] ;Generic SInput gamepad (reference firmware) +profile=sinput + +[2e8a-10df] ;Hand Held Legend ProGCC (SInput mode) +profile=sinput + +[2e8a-10dd] ;Hand Held Legend GC Ultimate (SInput mode) +profile=sinput + +[2e8a-10e0] ;Bonziri FireBird (SInput mode) +profile=sinput + +[2e8a-10e5] ;Void Gaming PS4 FireBird (SInput mode) +profile=sinput + +[38d2-1014] ;Void Gaming GENESIS (SInput mode) +profile=sinput + ; *************************************** ; Steam controllers ; *************************************** @@ -859,6 +984,9 @@ profile=steam2026 [28de-1304] ;Steam Controller (2026) Wireless (Puck) profile=steam2026 +[28de-1305] ;Steam Controller (2026) Wireless (Nereid dongle) +profile=steam2026 + ; *************************************** ; Dualshock 3 controllers ; *************************************** @@ -900,12 +1028,15 @@ profile=dualsense5 [054c-05c4]; DS4 v1 profile=dualshock4 +vibration=05 01 00 00 RR LL 00*26 [054c-09cc]; DS4 v2 profile=dualshock4 +vibration=05 01 00 00 RR LL 00*26 [054c-0ba0]; PS4 wireless Adapter profile=dualshock4 +vibration=05 01 00 00 RR LL 00*26 [0c12-0c30]; Brooks Universal Fighting Board (PS4 mode) profile=dualshock4 @@ -1611,3 +1742,8 @@ profile=xbox360 [2f24-0050] profile=xbox360 + +; The network controller driven over UDP. Not a real device: sys-con creates it itself when +; network_controller=1, and this VID/PID only exists so it picks up a profile like anything else. +[ffff-0001] ;Network controller (UDP) +profile=network diff --git a/payload.bin b/payload.bin index db05b16..ed5d52e 100644 Binary files a/payload.bin and b/payload.bin differ diff --git a/switch/.overlays/FPSLocker.ovl b/switch/.overlays/FPSLocker.ovl index d91f14a..81b6c84 100644 Binary files a/switch/.overlays/FPSLocker.ovl and b/switch/.overlays/FPSLocker.ovl differ diff --git a/switch/DBI/DBI.nro b/switch/DBI/DBI.nro index c488b61..26c1893 100644 Binary files a/switch/DBI/DBI.nro and b/switch/DBI/DBI.nro differ diff --git a/switch/daybreak/daybreak.nro b/switch/daybreak/daybreak.nro index e9cc535..c5fc2ac 100644 Binary files a/switch/daybreak/daybreak.nro and b/switch/daybreak/daybreak.nro differ