From fc6da20f6bd2b388f214338368e5a58fe08c00e0 Mon Sep 17 00:00:00 2001 From: M&M Date: Mon, 18 Jan 2021 15:19:02 -0800 Subject: [PATCH 1/4] Remove dead link from readme --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 771a2d83..26828ca6 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,5 @@ Cemu Graphic Packs is a repository where you can find graphic packs that can ups It's made by the Cemu community so you're also free to [contribute to the project](https://github.com/ActualMandM/cemu_graphic_packs/wiki/How-to-create-resolution-packs) if you wish. -Graphic packs that modify game files can be found [here](https://github.com/ActualMandM/cemu_graphic_packs/wiki/Game-Mods). - ### Downloads You can download the latest graphic packs via Cemu's Graphic Pack window directly or download them manually from [our website](https://ActualMandM.github.io/cemu_graphic_packs/)! From 93bf050b4b6269fc2d780014dd005ad137526ae5 Mon Sep 17 00:00:00 2001 From: Crementif <26669564+Crementif@users.noreply.github.com> Date: Tue, 19 Jan 2021 02:32:10 +0100 Subject: [PATCH 2/4] [BotW] Fixes for object draw distance I also updated the extended memory pack using what Exzap gave me, which might resolve in less issues with blood moons. --- .../Mods/DrawDistance/patch_DrawDistance.asm | 55 ++++++----- .../Mods/DrawDistance/rules.txt | 12 +-- .../ExtendedMemory/patch_extendedHeaps.asm | 93 +++++++++++++++---- 3 files changed, 109 insertions(+), 51 deletions(-) diff --git a/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm b/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm index 6636b33b..3599101f 100644 --- a/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm +++ b/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm @@ -6,41 +6,38 @@ moduleMatches = 0x6267BFD0 actorMultiplier: .float $actor -_replaceDrawDistanceActorInvoke: -lis r12, actorMultiplier@ha -lfs f13, actorMultiplier@l(r12) -fmuls f1, f1, f13 -lwz r12, 0x3B0(r29) +_setActorDrawDistanceMultiplier: +lis r9, actorMultiplier@ha +lfs f9, actorMultiplier@l(r9) +stfs f9, 0x13BC(r28) blr -0x037A617C = bla _replaceDrawDistanceActorInvoke +0x03857F58 = nop ; Force the draw distance used for load balancing normally to be enabled +0x03857F5C = bla _setActorDrawDistanceMultiplier -_replaceDrawDistanceActorKeepAlive_1: -lis r4, actorMultiplier@ha -lfs f6, actorMultiplier@l(r4) -fmuls f1, f1, f6 -lwz r4, 0x4FC(r31) -blr - -0x0379E6B8 = bla _replaceDrawDistanceActorKeepAlive_1 - -_replaceDrawDistanceActorKeepAlive_2: -lis r23, actorMultiplier@ha -lfs f9, actorMultiplier@l(r23) -fmuls f1, f1, f9 -lfs f9, 0x280(r31) -blr - -0x0379E63C = bla _replaceDrawDistanceActorKeepAlive_2 objectMultiplier: .float $object -_replaceObjectDrawDistance: -lis r9, objectMultiplier@ha -lfs f11, objectMultiplier@l(r9) -fmuls f1, f1, f11 -lwz r0, 0xC(r1) +objectDivider: +.float 1.0 - ($object - 1.0) + + +_setObjectDrawDistance: +lis r12, objectMultiplier@ha +lfs f0, objectMultiplier@l(r12) +; Doesn't catch objects that don't have their traverseRadiusXZ set, so those default to 0 blr -0x03137F04 = bla _replaceObjectDrawDistance \ No newline at end of file +0x03137ECC = nop +0x03137ED0 = bla _setObjectDrawDistance + +_setObjectDrawDistanceDivider: +fmuls f13, f1, f1 +lis r8, objectDivider@ha +lfs f1, objectDivider@l(r8) +fmuls f13, f13, f1 +blr + +0x0313A60C = bla _setObjectDrawDistanceDivider +0x0313A678 = bla _setObjectDrawDistanceDivider \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/DrawDistance/rules.txt b/src/BreathOfTheWild/Mods/DrawDistance/rules.txt index 4bc988ed..d9448376 100644 --- a/src/BreathOfTheWild/Mods/DrawDistance/rules.txt +++ b/src/BreathOfTheWild/Mods/DrawDistance/rules.txt @@ -48,33 +48,33 @@ $actor = 2 [Preset] name = Potato (0.2x) -category = Trees, Bushes, Landscape And Other Objects (Experimental) +category = Trees, Bushes, Landscape And Other Objects $object = 0.2 [Preset] name = Very Low (0.5x) -category = Trees, Bushes, Landscape And Other Objects (Experimental) +category = Trees, Bushes, Landscape And Other Objects $object = 0.5 [Preset] name = Low (0.75x) -category = Trees, Bushes, Landscape And Other Objects (Experimental) +category = Trees, Bushes, Landscape And Other Objects $object = 0.75 [Preset] name = Medium (1x) -category = Trees, Bushes, Landscape And Other Objects (Experimental) +category = Trees, Bushes, Landscape And Other Objects default = 1 $object = 1.0 [Preset] name = High (1.25x) -category = Trees, Bushes, Landscape And Other Objects (Experimental) +category = Trees, Bushes, Landscape And Other Objects $object = 1.25 [Preset] name = Ultra (1.5x, requires Extended Memory pack!) -category = Trees, Bushes, Landscape And Other Objects (Experimental) +category = Trees, Bushes, Landscape And Other Objects $object = 1.5 diff --git a/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm b/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm index f44c93c4..919acb0b 100644 --- a/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm +++ b/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm @@ -5,9 +5,11 @@ moduleMatches = 0x6267BFD0 0x02C5E660 = lis r9, 0x8B60 ; add 0x50000000 to main gameheap which by default has a fixed size of 0x3B600000. Can't make it larger due to overlay arena being in the way -SaveAreaHeapSize = 8 * 1024 * 1024 ; 8MiB (default is 2312KiB) +SaveAreaHeapSize = 8 * 1024 * 1024 ; 8MiB (default is 2312KiB) TriggerParamHeapSize = 8 * 1024 * 1024 ; 8MiB (default is around 2616KiB) -HavokMainHeapSize = 80 * 1024 * 1024 ; 80MiB (default is 30MiB) +HavokMainHeapSize = 80 * 1024 * 1024 ; 80MiB (default is 30MiB) +PhysicsTempLowHeapSize = 512 * 1024; 512KiB (default is 128KiB) +PhysicsSystemHeapSize = 512 * 1024; 512KiB (default is 128KiB) ; GameDataHeap 0x032015E0 = lis r3, (SaveAreaHeapSize@ha + TriggerParamHeapSize@ha) @@ -19,35 +21,94 @@ HavokMainHeapSize = 80 * 1024 * 1024 ; 80MiB (default is 30MiB) ; GameDataHeap -> TriggerParam ; Uses the remaining allocatable size of GameDataHeap -; HavokMainHeap +; Physics Memory System -> HavokMainHeap 0x037FD6A4 = lis r6, HavokMainHeapSize@ha +; Physics Memory System -> PhysicsTempDefault + +; Physics Memory System -> PhysicsTempLow +0x037fd758 = lis r3, PhysicsTempLowHeapSize@ha + +; Physics Memory System -> PhysicsSystem +0x037fd6d4 = lis r3, PhysicsSystemHeapSize@ha + +; Terrain Scene +0x02C5A208 = lis r3, 0x400 #lis r3, 0x140 + +; KingSystem -> ForestRenderer +0x0338cdbc = lis r3,0x80 # lis r3,0x30 + +; KingSystem -> ForestRenderer -> ForestRenderer - WorkHeap +0x033C9D80 = lis r3, 0x20 # lis r3, 0xC + + + ; Overlay arena 0x030AA5F4 = lis r7, 0x4000 ; expand overlay arena root heap size to 0x40000000 (1GiB) from default 0x1C000000 (448MiB). Can't make it larger due to forground bucket memory being in the way (starts at 0xE0000000) ; Extra size for overlay arena from rules.txt is 0x24000000 (576MiB) ; Overlay arena -> FixedHeap +; FixedHeap seems to store terrain renderer among other things 0x034ED614 = lis r3, 0x0C20 + 0x1000 ; add 256MiB ; Overlay arena -> MoveableMemoryHeap +; For resource textures? 0x034ED66C = lis r3, 0x0FD0 + 0x1000 ; add 256MiB -; Increase the size of the resource heap for small resources. When using mods like e.g. draw distance this would likely be the reason why it would spawn panic moons. -_increaseResourceSmallHeap: -lwz r10, 0x70(r24) -addis r10, r10, 0x500 -stw r10, 0x70(r24) -blr +; Overlay arena -> FixedHeap -> GameDataWork +0x034ed55c = lis r3, 0x40 + 0x20; -0x037EAADC = bla _increaseResourceSmallHeap +; Overlay arena -> FixedHeap -> TexArcWork +0x034eced8 = lis r3, 0x200 + 0x200 ; add 32MiB + +; Overlay arena -> FixedHeap -> Audio(OverlayArena) +0x034ed1e4 = lis r6, 0x1a0 + 0x200 ; add 32MiB + +; Overlay arena -> FixedHeap -> TexArcWork +0x034ECED8 = lis r3, 0x200 + 0x400 ; add 64MiB + +; 'Main' (unsure what this is responsible for) +0x0340F31C = li r7, 0x87 + 0x20 ; add 32MiB (register stores size in MiB) +0x0340f320 = nop +0x0340f324 = nop +0x0340f328 = nop +0x0340f32C = nop + +; MovableMemory +;0x0340F334 = li r9, 0xFB + 0x180 ; add 384MiB -> Too much +0x0340F334 = li r9, 0xFB + 0x100 ; add 256MiB +0x0340f338 = nop +0x0340f33C = nop + +; ForResourceS +0x0340f3f4 = lis r0,0x940 + 0x1000 ; add 256MiB + +; ForResourceL +; 0340F370 addis r26, r26, 0x20 +; size seems to have extra space added dynamically based on unknown parameters? +; ends up as 0x10f00000 +0x340F370 = lis r26, 0x2200 ; add around 288MiB + +; PlacementMgr heap +0x037c0f30 = li r28,0x5a + 0x40 ; in MiB + + +; Increase the size of the resource heap for small resources. When using mods like e.g. draw distance this would likely be the reason why it would spawn panic moons. +;;_increaseResourceSmallHeap: +;;lwz r10, 0x70(r24) +;;addis r10, r10, 0x500 +;;stw r10, 0x70(r24) +;;blr + +;;0x037EAADC = bla _increaseResourceSmallHeap ; Increase the size of the resource heap for large resources. When using mods like e.g. draw distance this would likely be the reason why it would spawn panic moons. -_increaseResourceLargeHeap: -lwz r11, 0x6C(r24) -addis r11, r11, 0x500 -stw r11, 0x6C(r24) -blr +;;_increaseResourceLargeHeap: +;;lwz r11, 0x6C(r24) +;;addis r11, r11, 0x500 +;;stw r11, 0x6C(r24) +;;blr -0x037EAB84 = bla _increaseResourceLargeHeap +;;0x037EAB84 = bla _increaseResourceLargeHeap ; Some notes on potential further heaps From b8ab96dc6768f8983eb4040865ac7e21cbadfa86 Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Tue, 19 Jan 2021 02:50:23 +0100 Subject: [PATCH 3/4] [BotW] Add transparency and saturation options to divine laser beam pack Thanks to @Fs00 for making this change! --- .../6fa2baef8a4ece42_0000000000000709_ps.txt | 4 +- .../de960d36a997b34d_0000000000000709_ps.txt | 4 +- .../Mods/DivineLaserBeam/rules.txt | 78 +++++++++++++++++-- 3 files changed, 76 insertions(+), 10 deletions(-) diff --git a/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt b/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt index 7bb0c372..5f8f10e9 100644 --- a/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt +++ b/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt @@ -25,9 +25,9 @@ #define RAINBOW_EFFECT $rainbow // [0 or 1] set it to 1 to enable rainbow beams effect. in that case, HUE_ROTATION is ignored #define DISABLE_BEAMS $disableBeams // [0 or 1] set it to 1 to hide the lasers completely #define HUE_ROTATION $hue //[0, 360] where 0 and 360 is unchanged Hue and 180 is completely opposite Hue. Check http://i.imgur.com/5UpyIGh.png -#define SATURATION_FACTOR 1.0 //[0.0, 1.0] 1.0 means unchanged Saturation, 0.0 means completely desaturated. Values above 1.0 are accepted, but they may cause clipping +#define SATURATION_FACTOR $saturation //[0.0, 1.0] 1.0 means unchanged Saturation, 0.0 means completely desaturated. Values above 1.0 are accepted, but they may cause clipping #define VALUE_FACTOR 1.0 //same as above; applies to Value -#define ALPHA_FACTOR 1.0 //same as above; applies to Transparency +#define ALPHA_FACTOR $alpha //same as above; applies to Transparency const float hueRotation = HUE_ROTATION / 360.0; diff --git a/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt b/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt index 002fbaef..abb97020 100644 --- a/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt +++ b/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt @@ -25,9 +25,9 @@ #define RAINBOW_EFFECT $rainbow // [0 or 1] set it to 1 to enable rainbow beams effect. in that case, HUE_ROTATION is ignored #define DISABLE_BEAMS $disableBeams // [0 or 1] set it to 1 to hide the lasers completely #define HUE_ROTATION $hue //[0, 360] where 0 and 360 is unchanged Hue and 180 is completely opposite Hue. Check http://i.imgur.com/5UpyIGh.png -#define SATURATION_FACTOR 1.0 //[0.0, 1.0] 1.0 means unchanged Saturation, 0.0 means completely desaturated. Values above 1.0 are accepted, but they may cause clipping +#define SATURATION_FACTOR $saturation //[0.0, 1.0] 1.0 means unchanged Saturation, 0.0 means completely desaturated. Values above 1.0 are accepted, but they may cause clipping #define VALUE_FACTOR 1.0 //same as above; applies to Value -#define ALPHA_FACTOR 1.0 //same as above; applies to Transparency +#define ALPHA_FACTOR $alpha //same as above; applies to Transparency const float hueRotation = HUE_ROTATION / 360.0; #ifdef VULKAN diff --git a/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt b/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt index 63137a04..c08038d3 100644 --- a/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt +++ b/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt @@ -2,60 +2,126 @@ titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 name = Divine Laser Beams path = "The Legend of Zelda: Breath of the Wild/Mods/Divine Laser Beams" -description = Allows customization of the color of the Divine Beasts's Laser Beams. They can also be completely hidden.||Made by Kiri. +description = Customizes the appearance of the Divine Beasts's Laser Beams. They can also be completely hidden.||Made by Kiri. version = 6 [Default] $hue:int = 0 $rainbow:int = 0 $disableBeams:int = 0 +$saturation = 1.0 +$alpha = 1.0 [Preset] -name = Disabled (Default) -category = Hide Laser +name = Yes (Default) +category = Show Laser default = 1 $disableBeams:int = 0 [Preset] -name = Enabled -category = Hide Laser -default = 1 +name = No +category = Show Laser $disableBeams:int = 1 [Preset] name = Red (Default) +condition = $disableBeams == 0 category = Laser Color default = 1 $hue:int = 0 [Preset] name = Rainbow +condition = $disableBeams == 0 category = Laser Color $rainbow:int = 1 [Preset] name = Purple +condition = $disableBeams == 0 category = Laser Color $hue:int = 300 [Preset] name = Blue +condition = $disableBeams == 0 category = Laser Color $hue:int = 225 [Preset] name = Cyan +condition = $disableBeams == 0 category = Laser Color $hue:int = 160 [Preset] name = Green +condition = $disableBeams == 0 category = Laser Color $hue:int = 120 [Preset] name = Yellow +condition = $disableBeams == 0 category = Laser Color $hue:int = 45 + + +[Preset] +name = 100% (Default) +condition = $disableBeams == 0 +category = Color Saturation +default = 1 +$saturation = 1.0 + +[Preset] +name = 75% +condition = $disableBeams == 0 +category = Color Saturation +$saturation = 0.75 + +[Preset] +name = 50% +condition = $disableBeams == 0 +category = Color Saturation +$saturation = 0.5 + +[Preset] +name = 25% +condition = $disableBeams == 0 +category = Color Saturation +$saturation = 0.25 + + +[Preset] +name = 100% (Default) +condition = $disableBeams == 0 +category = Laser Transparency +default = 1 +$alpha = 1.0 + +[Preset] +name = 75% +condition = $disableBeams == 0 +category = Laser Transparency +$alpha = 0.75 + +[Preset] +name = 50% +condition = $disableBeams == 0 +category = Laser Transparency +$alpha = 0.5 + +[Preset] +name = 25% +condition = $disableBeams == 0 +category = Laser Transparency +$alpha = 0.25 + +[Preset] +name = 10% +condition = $disableBeams == 0 +category = Laser Transparency +$alpha = 0.1 \ No newline at end of file From e20432c08aae8eacf36d5f54d5006cebfe47680c Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Fri, 22 Jan 2021 18:00:54 +0100 Subject: [PATCH 4/4] [BotW] FPS++, Added fixes for vertical sensitivity (#499) For gyro and stick --- src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm b/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm index af144971..9f35f8a4 100644 --- a/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm +++ b/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm @@ -50,6 +50,9 @@ averageFPS0.5: averageFPS0.5Inv: .float 30/(2*$fpsLimit) +averageFPS1.5: +.float 45/$fpsLimit + averageSum: .float $fpsLimit*$frameAverageAmount @@ -229,6 +232,11 @@ fmuls f13, f13, f8 ; Multiply the flurry rush distance (stored in f1) with th fcmpu cr0, f13, f29 ; Execute original instruction that got replaced with this codecave jump blr ; Return to the address that's stored in the link register +_changeVerticalSens: +lis r14, averageFPS1.5@ha ; Load average FPS... +lfs f11, averageFPS1.5@l(r14) ; ...into f11 +blr + # Patches 0x1031E2C0 = .float 2 @@ -239,6 +247,9 @@ blr ; Return to the address that's stored in the link register 0x100775AC = .float -999.0 ; Disable something that makes thunderblight ganon yeet off +0x101B2D34 = .float $fpsLimit ; Fix vertical sensitivity of gyro while using stasis + +0x02B951F0 = bla _changeVerticalSens ; Fix vertical sensitivity of stick while using stasis 0x02C6B8F8 = bla _changeFlurryRush ; Fix the flurry rush distance 0x02D5F760 = bla _changeArrowTimeDrain ; Fix the stamina drain during arrow time 0x03793328 = nop