Commit graph

80 commits

Author SHA1 Message Date
Skyth (Asilkan)
f7c823eeaf
Fix staffroll text getting cropped at narrow aspect ratios. (#1489) 2025-03-30 18:42:37 +03:00
ĐeäTh
d0cc13c2fd
Fix "Disable Boost Filter" code not affecting certain parts of the game. (#1468)
* hook different part of the code to affect Eggmanland too

* Update UnleashedRecomp/patches/misc_patches.cpp

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
2025-03-24 22:15:46 +03:00
Hyper
8ca5f1bf53
Added code to force the alternate game title (#1249) 2025-03-24 21:57:35 +03:00
Hyper
a9e280e116
Fix Homing Attack on Jump not affecting Cool Edge Act 3 (Day) (#904)
Some checks failed
validate-internal / build (push) Failing after 14m58s
2025-03-07 04:54:17 +03:00
Hyper
3c050887d8
Fix shoe upgrade hints patch breaking sequence flags (#1130) 2025-03-07 04:43:49 +03:00
NextinHKRY
8a80db141d
code: Add Disable Boost Filter code (#999) 2025-03-06 05:46:45 +00:00
Hyper
fd2fb745e0
Fix XButtonHoming patch leaking state into other parameters (#640) 2025-03-03 01:42:25 +03:00
ĐeäTh
98daa27c14
Added exceptions for specific hint messages being allowed/blocked by the Hints option (#462)
* Fix Windmill Isle Act 1 (Night) chip 'hint' not being shown

* code style adjustments

* Fix Apotos entrance gate first time Chip hint appearing with hints disabled

---------

Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com>
2025-02-25 18:34:57 +03:00
Skyth (Asilkan)
5ba4e927ab
Port XEX patcher to XenonRecomp. (#433)
* Port XEX patcher to XenonRecomp.

* Update XenonRecomp submodule.
2025-02-19 20:31:01 +03:00
Hyper
4aeee49561
object_patches: fix rail booster sounds overlapping at HFR (#427) 2025-02-18 11:54:37 +03:00
Hyper
910d043f19
Disable Chip hints for shoe upgrades (#413) 2025-02-16 13:29:04 +03:00
Hyper
beac8339c2
Fix D-Pad support for bosses with 2D or overhead sections (#411) 2025-02-16 13:27:58 +03:00
Hyper
414ccb3637
Moved callbacks to config.cpp, fixed Subtitles option not applying to stages (#400) 2025-02-13 20:30:12 +03:00
Skyth (Asilkan)
4f3144472a
Fix model explosion in Temple Entrance cutscene. (#395) 2025-02-13 18:25:42 +03:00
Hyper
a54f850425
Added more D-Pad hooks (#390) 2025-02-13 15:43:23 +03:00
Hyper
8df3e0e440
Added hooks to disable voice hints (#389) 2025-02-13 15:42:48 +03:00
Hyper
a13fdc136b
fps_patches: fix Egg Dragoon drill missile rotating incorrectly (#378)
Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
2025-02-12 18:40:12 +03:00
Hyper
e86922b2b2
Fix Rooftop Run barrels rolling backwards at HFR (#368) 2025-02-11 15:15:43 +00:00
Hyper
854d7412fa
Fixed Werehog battle theme returning after defeating bosses when disabled (#360) 2025-02-11 14:22:18 +03:00
Skyth (Asilkan)
f23d8ae08e
Stretch shop fade in/out to the screen for ultrawide. (#337) 2025-02-09 15:21:08 +03:00
Skyth (Asilkan)
fff96a8528
Implement fix for Sparkle locus particle vertex corruption. (#317) 2025-02-08 20:45:14 +03:00
Skyth (Asilkan)
e3ac47a797
Fix werehog HUD guide not having correct position at 4:3. (#311) 2025-02-08 14:16:33 +03:00
Hyper
e1edd5f35d
Fix Tornado Defense boss firing missiles too frequently (#306)
Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
Co-authored-by: Darío <538504+DarioSamo@users.noreply.github.com>
2025-02-07 20:11:25 +00:00
Skyth (Asilkan)
aaad10d797
Implement copy bypass optimization. (#262)
* Initial work on copy bypass optimization.

* Force depth stencil textures to be transient.

* Get rid of texture copying for shadow maps.

* Move barrier populate function.

* Set viewport/scissor rect explicitly for MSAA depth resolve.
2025-02-02 21:29:47 +03:00
Hyper
3497d9b34b
CTitleStateIntro_patches: fixed message inconsistencies (#259) 2025-02-01 13:37:48 +00:00
Skyth (Asilkan)
e761c9f4d6
Disable ingame frame limiters. (#240) 2025-01-29 23:58:21 +03:00
Skyth (Asilkan)
091b4ef089
Implement hack to fix options menu SFX not playing in stages. (#239) 2025-01-29 19:32:44 +03:00
Skyth (Asilkan)
4d41d8eaae
Stretch title screen fade to the screen. (#209) 2025-01-26 23:42:32 +03:00
Skyth (Asilkan)
76ec5f032d
Implement aspect ratio adjustments for inspire overlays. (#201)
* Handle texture/movie overlays for original 4:3.

* Implement aspect ratio adjustments for texture/movie overlays.

* Fix fade scale for original 4:3.
2025-01-26 13:19:39 +03:00
Hyper
8e58cbcbf2 input_patches: clean up ambiguous naming
Changed all instances of "touch" or "touchpad" to "cursor" to clear up ambiguity with future input methods.
2025-01-26 00:37:33 +00:00
Hyper
5321ee0fba
Fix Werehog columns not accepting D-Pad input (#192) 2025-01-25 20:37:56 +00:00
Hyper
5441075c5e
Fix World Map cursor threshold and touchpad issues (#190)
* input_patches: fix cursor threshold and SFX during tutorial

* input_patches: fix touchpad flag magnetism
2025-01-25 18:51:25 +00:00
Skyth (Asilkan)
470d8f797b
Stretch NPC fade in/out to the screen. (#189) 2025-01-25 19:06:13 +03:00
Skyth (Asilkan)
dfa2a31286
Fix PlayStation time of day transition animation not rendering. (#167)
* Fix PlayStation transition animation not rendering.

* Remove medal swinging animation from the YNCP.
2025-01-24 20:26:09 +03:00
Hyper
686ef22c4d
Implemented D-Pad support for the World Map, Gaia Colossus, Super Sonic and the Bobsleigh (#150)
* Implemented D-Pad support for World Map, Super Sonic (WIP) and Bobsleigh

* Implemented D-Pad support for Gaia Colossus and Super Sonic

* Improved touchpad sensitivity
2025-01-23 17:43:08 +00:00
Skyth (Asilkan)
ca6b42e20e
Interpolate barrels in Spagonia Night to fix softlock at high frame rates. (#153) 2025-01-23 19:41:15 +03:00
Hyper
b56c0b8209
Implemented safer hooks for D-Pad movement (#129) 2025-01-19 15:01:11 +00:00
Hyper
aacb9d259c
Added error message for corrupted save data, removed Win32 message box on XamShowMessageBoxUI (#122)
* xam: remove Win32 message box on XamShowMessageBoxUI

* CTitleStateIntro_patches: display error message on corrupted save data

TitleMenuRemoveContinueOnCorruptSaveMidAsmHook by @DeaTh-G

Co-Authored-By: DeaTh-G <55578911+DeaTh-G@users.noreply.github.com>

---------

Co-authored-by: DeaTh-G <55578911+DeaTh-G@users.noreply.github.com>
2025-01-18 22:32:37 +03:00
Skyth (Asilkan)
d56b823b00
Aspect ratio adjustments. (Part 1) (#90)
* Map CSD structures by full path.

* Initial work for unstretching & aligning to edges.

* Add extend flag, fix cast lookups.

* Add right extend flag.

* Fill the flags map with a bunch of casts.

* Implement unstretching.

* Set more title casts to unscretch.

* Add some more flags.

* Move CSD patches to its own file.

* Replace CSD vertex shaders to get rid of pixel snapping.

* Snap to pixel on the CPU.

* Current work trying to get 3D screen position casts working correctly.

* Fix and properly align font, handle most 3D screen positions.

* Add stretch flags for background casts.

* Use 4:3 as the base aspect ratio instead of 16:9.

* Replicate the game's 4:3 downscaling behavior.

* World map now identical to original 4:3.

* Replace camera aspect ratio/field of view logic.

* Make original 4:3 scaling a separate option, use custom behavior for auto.

* Keep UI scale same only above Steam Deck aspect ratio.

* Release paths when the YNCP file gets freed.

* Add more path flags.

* Interpolate to original 4:3 scale.

* Scaling animation offset to prevent offscreen casts from showing up in ultrawide.

* Queue draw calls without actually executing anything to extract the corner.

* Clean unnecessary hooks.

* Add result screen modifiers.

* Stretch loading primitive 2D.

* Scale DoF correctly at different aspect ratios.

* Remove stretch option.

* Make aspect ratio a global variable.

* Ultrawide patch for HUD 3D items.

* Fix world map 3D to 2D projection.

* Right align world map info box.

* Set medal positions.

* Respect center option in more places.

* Implement the aspect ratio option.

* Use viewport dimensions for snapping CSD pixels.

* Fix DoF fix not using viewport height.

* Implement aspect ratio patches for 2D drop ring emitter.

* Implement inspire letterbox.

* Add cutscene aspect ratio option.

* Shift subtitles by aspect ratio.

* Fix crash in earth restoration cutscenes.

* Offset scale patches for Tornado Defense.

* Scale new record arrow casts.

* Expose aspect ratio variables globally.

* Properly center the achievements menu.

* 4:3 scaling for options menu.

* Fix procedural filtering logic in ImGui pixel shader.

* Fix button guide offset.

* UI scaling for installer.

* Remove grid snaps in the installer.

* Handle center UI scale option for rings going to HUD.

* Remove unnecessary diff.

* Revert temporary changes.

* Fix typo.
2025-01-18 01:51:45 +03:00
Hyper
95bd71a23e
Implemented hidden config values, removed DLL exports (#112) 2025-01-17 19:51:56 +00:00
Hyper
4b7f2c0ae7 api: update research 2025-01-15 19:47:11 +00:00
Hyper
9a29b187cd
Implemented support for maintaining aspect ratio for movies (#73)
* video_patches: aspect ratio support for CPlayMovieWrapper

* config: remove movie scale mode option

* video_patches: improve movie aspect ratio correction, support intro logos

Co-Authored-By: Darío <538504+DarioSamo@users.noreply.github.com>
Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

* api: upload Inspire research

* api: move Vertex struct

---------

Co-authored-by: Darío <538504+DarioSamo@users.noreply.github.com>
Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
2025-01-12 18:53:31 +03:00
Skyth (Asilkan)
fd009bcada
Sync render thread present with main thread. (#62)
* Experimenting with syncing the render thread.

* Separate wait functions for swap chains.

* Sync render thread present to the main thread.

* Move present to main thread and frame limit after presenting.

* g_next -> s_next

* Fix Vulkan validation errors.

* Make max frame latency configurable.

* Fix loading thread breaking waitable swap chain order.
2024-12-25 16:29:15 +03:00
Skyth (Asilkan)
f1416c85ba
Implement frame limiter. (#60)
* Implement audio timing with integer math.

* Add busy loop to audio thread.

* Implement a frame limiter.

* Implement implot.

* Add more stuff to the profiler window.

* Redo frame limiter logic to fix drifting.

* Move frame limiter, add limiters for SFD & loading screen.

* Update waiting logic for audio thread.

* Correct small delta time errors.

* Decrease delta time error threshold.

* Set busy wait threshold to 2ms.

* Change spin wait in D3D12 present to infinite wait.

* Replace FPS literals with constants.
2024-12-22 19:58:06 +03:00
Hyper
587b222483 Implemented D-Pad player input
This is mainly beneficial for 2D sections with PlayStation controllers where the D-Pad may be more preferable, but it also works in 3D too.
2024-12-15 01:44:01 +00:00
Skyth
075ee43808 Redo down force HFR fix. 2024-12-09 13:46:17 +03:00
Skyth (Asilkan)
31b100894f
Option for PS controller icons. (#21)
* Initial PS button implementation.

* Add controller buttons as config option & handle loading screen.

* Rename "Controller Buttons" to "Controller Icons".
2024-12-07 16:50:07 +03:00
DeaTh-G
9e168ab326
Disable storage device option and enable install option on title menu (#12) 2024-12-06 22:16:42 +03:00
Skyth (Asilkan)
c0897dd507
Options menu, achievements, and installer wizard. (#19)
* Implemented guest-to-host function pointers (WIP)

Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

* function: support more types for function pointers

* Initial options menu implementation.

* Improve options menu visuals.

* Draw fade on borders, center tabs better.

* Adjust line sizes, fix tab text centering.

* Adjust padding & text sizes.

* Fix bar dark gradient effect.

* api: ported BlueBlur headers and misc. research

* Fix config name padding not getting scaled at different resolutions.

* config: use string_view, added method to get value pointer

* config: use std::map for reverse enum template

* Draw config options manually instead of looping through them.

* config: implemented name and enum localisation

* config_detail: move implementation to cpp, relocate sources

* Implemented accessing options menu via pause and title screen

* config: replace MSAA with AntiAliasing enum

* options_menu: implemented info panel and text marquee (see TODOs)

* Draw selection triangles.

* Supersample fonts to 2K.

* Implement options menu navigation.

* Fix duplicate triangles when selecting options.

* Draw scroll bar.

* Adjust scroll bar padding.

* Further scroll bar padding adjustments.

* Draw outer container as an outline.

* Improve marquee text scrolling.

* CTitleMenu: fix options menu re-entering on A press whilst visible

* Make procedural grid pattern more accurate.

* Add enum & bool editing.

* Update English localisation

* Fix input state mapping.

* options_menu: hide menu on Y hold

* CHudPause: fix crash when opening options menu from village/lab

* Implement float slider.

* options_menu: round res scale description resolution

* options_menu: use config callbacks after setting items

* api: fix GameObject layout

* camera_patches: implemented camera X/Y invert

* options_menu: fix buffered A press selecting first option upon entry

* config_locale: update description for Battle Music

* config: added Allow Background Input option

* options_menu: move ATOC option below Anti-Aliasing

* options_menu: only draw header/footer fade in stages

* Handle real-time modifications of some video config values.

* Converge increments only when holding the left/right button.

* Add sound effects to options menu.

* Change some sounds used in options menu.

* Give the final decide sound to bool toggling.

* Add option select animation.

* options_menu: only play slider sound between min/max range

* Apply category select animation.

* config: rename Controls category to Input

* Implement intro transition animation for options menu.

* audio_patches: implemented music volume

* Implement FPS slider.

* Prevent ImGui from displaying OS cursor.

* Fade container brackets during intro transition.

* player_patches: added penalty to Unleash Cancel

* config_locale: update English localisation

* player_patches: ensure Unleash gauge penalty doesn't dip into negatives

* options_menu: fix being unable to press A at least once after opening the menu

* CTitleMenu: added open/close sounds to the options menu

* audio_patches: implemented Music and SE volume

* api: update research

* Implemented music volume attenuation for Windows 10+

* api: fix score offset

* Add an interval between consecutive playbacks of the slider sound effect in fastIncrement mode

* config: implemented enum descriptions

* options_menu: fit thumbnail rect to grid, remove menu hide input

* options_menu: fix description wrap width

* camera_patches: fix FOV at narrow aspect ratios

mobile gaming is back on the menu

* options_menu: implemented greyed out options and localisation

* options_menu: allow providing reasons for greyed out options

* audio_patches: check if Windows version is supported

* Update PowerRecomp submodule

* api: more research

* options_menu: forget selected item upon opening

* options_menu: restrict XButtonHoming to title and world map

* window: always hide mouse cursor

The options menu doesn't accept mouse input, so there's not really any point to showing the cursor at all.

* Animate category tab background  from the center.

* Fix clip rect in info panel not getting popped at all times.

* Expose texture loader in "video.h".

* config: use final names and descriptions, label options to be moved to exports

* options_menu: implemented Voice Language (and some misc. clean-up)

* Move Voice Language patch to resident_patches

* config: added Aspect Ratio option (to be implemented)

* options_menu: implemented Subtitles

* Remove triple buffering from options menu, turn it to an enum.

* window: hide mouse cursor on controller input for windowed mode

* window: show window dimensions on title bar when resizing window

* api: update research

* Accept functions directly in GuestToHostFunction & add memory range asserts.

* Add guest_stack_var, improve shared_ptr implementation.

* Handle float/double arguments properly in GuestToHostFunction.

* CHudPause_patches: allocate options strings on stack

* api: update research

* guest_stack_var: allow creation without constructing underlying type

* memory: make assertions lenient towards nullptr

* api: include guest_stack_var in SWA.inl

* audio_patches: don't worry about it

* Implemented achievement overlay (WIP)

* Implemented achievements menu (WIP)

* Clean-up, improved animation and layouts

* options_menu: fix naming convention

* achievements_overlay: implemented queue and hermite interpolation

* achievements_menu: implemented animations and improved navigation

* achievements_menu: improve animation accuracy

* achievements_menu: added timestamps

* achievement_data: added checksum and format verification

* achievement_menu: improved outro animation

* achievement_menu: added total unlocked achievements

* achievement_menu: update sprite animation

* Update resources submodule

* Add installer wizard.

* Skip drawing scanlines when height is 0.

* Tweak install screen to better match the original

* Added arrow circle to installer's header

* Move icon header generation to resources submodule

* Added missing animations and tweaked other ones for installer

* Improve detection for DLC only mode. Add template for message prompts.

* Add language picker.

* window: update icon resources

* Added file_to_c

* Fixes to conversion.

* Implemented message window

* achievement_menu: use selection cursor texture

* Update embedded resources

* Implemented message window

* Merge branch 'bin2c' into options-menu

* Update embedded resources

* Framework for max width for buttons.

* Update embedded resources

* Use textures for pause menu containers

* audio_patches: check if Windows major version is >=10

Just in case.

* installer_wizard: use integer outline for button text

* Added arrow circle spinning animation during installation screen

* achievement_menu: fix timestamp and scroll bar padding

* achievement_overlay: fix achievement name padding

* installer_wizard: fix arrow circle spinning animation misaligning

* Add Scale and Origin to ImGui shaders. Change text to be squashed.

* message_window: implemented mouse input

* installer_wizard: implemented message windows

* achievement_menu: start marquee before timestamp margin

* Fix message box flow.

* message_window: use pause container texture

* Add extra condition for starting the installer.

* message_window: only accept mouse click if option is selected

* Implemented safer way to check if the game is loaded

* Add queued update when using files pickers.

* installer_wizard: implement localisation

* installer_wizard: use enum for localisation

* message_window: fix visibility persisting after window closes

* Fix arrow circle animation and added pulse animation

* Come back check space.

* Implement ZSTD compression in file_to_c.

* Add fade-in/out to installation icons and sleep after hitting 100%

* Implement ImGui font atlas caching.

* Controller navigation.

* Implemented button guide

* CTitleStateMenu: fix start button opening old options menu

* Update resources submodule

* imgui_snapshot: check if game is loaded before accessing XDBF

* message_window: added button guide

* options_menu: increase button guide side margins

* video: disable imgui.ini creation

* Use IM_DELETE for deleting the existing font atlas.

* Remove redundant FlushViewport call.

* Fix ImGui callbacks leaking memory.

* Replace unique_ptr reference arguments with raw pointers.

* Specialize description for resolution scale by reference.

---------

Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com>
Co-authored-by: PTKay <jp_moura99@outlook.com>
Co-authored-by: Dario <dariosamo@gmail.com>
2024-12-06 18:52:06 +03:00
Hyper
b0562b4360 Remove storage device prompt on new game
A.K.A. The Fucking Thing™️
2024-12-06 13:52:43 +00:00