Commit graph

93 commits

Author SHA1 Message Date
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
578d9d052b Move first party tools to tools folder. 2024-12-13 21:21:58 +03: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
Skyth (Asilkan)
d36aa26bac
Specialization constants, reverse Z and async PSO implementation. (#9)
* Specialization constant implementation for Vulkan.

* Implement DXIL library linking.

* Implement proper reverse Z & fix motion blur flicker.

* Mirage API mapping.

* Initial work for async PSO.

* Further async PSO work.

* Set pipeline names.

* Handle special layers writing depth.

* Handle bones in shadow pipeline.

* Fix additive mode setting wrong pipeline field.

* Pass models to compilation threads through shared pointers.

* Safety improvements.

* Allow DXIL linking to happen in parallel.

* Display more debug information.

* Queue unique models for compilation immediately.

* Put async PSO debug printing behind a macro.

* Kick off terrain models to pipeline compilation thread the moment they are made.

* Hook a different function to do waiting in.

* Fix pipelines getting dropped.

* Account for ConstTexCoord.

* Fix async PSO accounting for alpha to coverage even when MSAA is off.

* Remove "has bone" specialization constant.

* Sky shader compilation & more debugging helpers.

* Assign names to shaders during loading.

* Fix string symbol definitions.

* Print description of recently compiled render thread pipelines.

* Switch to an enum library that doesn't murder IntelliSense.

* Precompile pipelines for object icons.

* Skip fur pipelines.

* Skip printing info for pipelines compiled during loading.

* Precompile pipelines for Sonic's mouth, motion blur, and forced transparent objects.

* Precompile planar reflection shaders.

* Precompile sparkle shaders in loading screens.

* Precompile fur shader.

* Refactor model traversing to enqueue every single compilation to worker threads.

* Dynamically create pipeline threads depending on hardware concurrency.

* Fix MSAA depth resolve not accounting for reverse Z.

* Integrate smol-v.

* Implement PSO caching.

* Update ShaderRecomp & remove unused function.
2024-11-29 23:30:48 +03:00
Skyth
cffefcdbf3 Use global instead of function provided delta time in cmaera HFR patches. 2024-11-20 10:54:22 +03:00
Hyper
c9b6a6913f Fix loading screen speed at high frame rates 2024-11-12 19:55:00 +00:00
Skyth
0962560ec9 Add triangle list fallback path for triangle fans. 2024-11-08 22:03:26 +03:00
Skyth
4fa03e96b9 Add resolution patches for bloom glare & light shaft. 2024-11-08 13:34:17 +03:00
Skyth
611a2c7c31 Add HFR patches for 2D camera slope sensitivity. 2024-11-07 15:10:36 +03:00
Skyth
220da348f8 Update ShaderRecomp submodule. 2024-11-06 13:38:29 +03:00
Skyth
d8512fd6b7 Add motion blur toggle. 2024-11-06 00:47:16 +03:00
Hyper
fabc1ffbc7 window: fix abnormal window states erroneously saving dimensions 2024-11-05 14:37:07 +00:00
Hyper
9e2edfe8cd Merge branch 'main' of https://github.com/hedge-dev/UnleashedRecomp 2024-11-05 12:47:39 +00:00
Hyper
02e0f1e0d2 Remove unused register from Werehog battle music hook 2024-11-05 12:47:28 +00:00
Skyth
88c7b8b8d5 Add player 2D camera HFR patches. 2024-11-05 15:17:31 +03:00
Skyth
8ff30ab383 Add player 3D camera HFR patches. 2024-11-05 13:37:45 +03:00
Hyper
90b60ebc8d Implemented Werehog battle music toggle 2024-11-05 03:57:34 +00:00
Hyper
4bf576ab1c Implemented control tutorial toggle 2024-11-04 12:46:58 +00:00
Skyth
3c4a8f5ee5 Add HFR patches for Werehog key mash objects. 2024-11-03 18:39:54 +03:00
Darío
ca9009b88d
Fix the new ShaderRecomp include. (#2) 2024-10-30 11:07:39 +03:00
Skyth
c1495170fe Make shader recompilation depend on ShaderRecomp source files. 2024-10-29 20:27:12 +03:00
Skyth
c2d0128226 Remove half pixel globally instead of negating them with patches. 2024-10-24 17:43:05 +03:00
Skyth
afc02cd68b Make recompilation part of the CMake build process. 2024-10-21 14:22:03 +03:00
Skyth
66c20e73c9 Implement movie rendering & fix some validation errors. 2024-10-20 18:47:26 +03:00
Hyper
dd74392279 Implemented Unleash gauge hooks
- Implements "Unleash Cancel" to allow cancelling Unleash after activating it.
- Implements out of control fixes to prevent the gauge from draining when the player cannot utilise it.
2024-10-20 02:54:49 +01:00
Skyth
018b32062e Embed shader cache to the executable. 2024-10-20 00:53:16 +03:00
Hyper
56223974ff Fix Eggmanland using the wrong loading transition on restart 2024-10-19 20:44:33 +01:00
Skyth
d29dd06dce Add high frame rate fixes for 2D splines & down force. 2024-10-18 15:40:07 +03:00
Hyper
e899f32f0e Remove CSD offset hook
We'll just move the casts manually once we get around to sorting the rest of the UI out, this'll just interfere with that.
2024-10-18 09:03:30 +01:00
Hyper
8f80396b1f Remove graceful exit hook
Might as well stick with ExitProcess, seeing as this is how the game is exited on Xbox.
2024-10-18 09:02:41 +01:00
Hyper
52f751c6c8 Implemented XButtonHoming hook 2024-10-18 00:10:33 +01:00
Hyper
ceee6948a8 Implemented score hooks 2024-10-17 23:41:38 +01:00
Hyper
ce95692d8a Implemented hooks for disabling hints 2024-10-17 22:25:14 +01:00
Hyper
554be01412 Implemented CSD aspect ratio hooks
This only includes the centred mode, as the intention is to map out CSD classes in the API and handle the rest manually.

Co-Authored-By: Michael <15317421+ActualMandM@users.noreply.github.com>
2024-10-17 19:36:10 +01:00
Hyper
3c1c13e4ce Implemented camera aspect ratio hooks 2024-10-17 19:16:33 +01:00
Hyper
f68f720b17 Preliminary mid-asm hook for gracefully exiting the game 2024-10-17 16:11:20 +01:00
Skyth
86eac5ad8c Remove half pixel offset from primitive 2D renderer. 2024-10-17 16:07:22 +03:00
Skyth
982d619ba1 Add an empty .cpp file to make CMake generation pass. 2024-10-08 16:16:52 +03:00
Skyth
81d737e14f Move recompiled files to a separate project. 2024-10-07 21:47:00 +03:00