Commit Graph

586 Commits

Author SHA1 Message Date
Hyper df03a64305 Redirected Install button to custom implementation
This currently fades out and closes the game upon accepting the message, it does not yet reboot into the installer menu using --install-dlc.
2024-12-07 01:02:59 +00:00
DeaTh-G 9e168ab326 Disable storage device option and enable install option on title menu (#12) 2024-12-06 22:16:42 +03:00
Hyper 3c7765eb27 installer_wizard: implemented button guide 2024-12-06 18:10:46 +00: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 b4296ff701 Update PowerRecomp submodule. 2024-12-04 12:48:46 +03:00
Skyth 5876c2b658 Add missing files. 2024-12-04 12:48:38 +03:00
Hyper 2c2e37f6fe Implemented immersive dark title bar 2024-12-03 19:24:08 +00:00
Skyth 78fde84bd9 Fix Dark World cutscene getting frozen at the end. 2024-12-03 19:41:27 +03:00
Skyth fe4801b9ff Fix counter shared pointer getting created with the wrong function. 2024-12-03 18:44:58 +03:00
Skyth (Asilkan) 6c65e0914d Implement miniaudio. (#15) 2024-12-03 18:10:06 +03:00
Hyper 913f5a388b Move resources to submodule 2024-12-01 19:56:14 +00:00
Skyth 1821fae71e Update pipeline cache. 2024-12-01 14:06:32 +03:00
Skyth e7494667ad Use readerwriterqueue for SDL2 audio. 2024-12-01 13:55:50 +03:00
Sajid d51ba31f27 Merge pull request #11 from hedge-dev/sdl2-audio
Implement SDL Audio
2024-11-30 23:32:17 +06:00
Skyth 1a53a3b463 Rename the RHI. 2024-11-30 18:20:56 +03:00
Sajid de9726c7d0 XAudio2 cmake option 2024-11-30 17:00:34 +06:00
Sajid 019d889306 SDL audio cleanup and volatile callback 2024-11-30 16:32:18 +06:00
Skyth 63b8a1e130 Check for triangle fan support when precompiling pipelines. 2024-11-30 12:18:13 +03:00
Sajid 5cd694fac6 Default to SDL audio 2024-11-30 12:03:14 +06:00
Dario a15daa4150 Restore ShaderRecomp commit. 2024-11-29 17:53:24 -03:00
Darío 3215e47279 Implement installer with support for ISO, STFS and SVOD. Also implement XEX Patcher. (#5) 2024-11-29 17:47:30 -03: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 349f07cf77 Fix sizeof/offsetof assertions. 2024-11-25 18:29:15 +03:00
Skyth 49b0dbe4db Auto generate SWA.h, add offsetof/sizeof asserts. 2024-11-25 16:48:58 +03:00
Hyper 8f525b571b Implemented guest-to-host function pointers (#7)
* 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

* api: ported BlueBlur headers and misc. research

* Move over function-pointers changes from options-menu branch.

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
2024-11-25 13:50:10 +03:00
Skyth a908780de8 Remove vendor parameter from CMakePresets.json that breaks IntelliSense. 2024-11-24 16:53:18 +03:00
Skyth 6ae0ecd58e Switch to using CMakePresets.json. 2024-11-24 13:44:00 +03:00
Skyth f7d4f93ba0 Implement brightness slider & color correction. 2024-11-21 23:00:15 +03:00
Skyth cffefcdbf3 Use global instead of function provided delta time in cmaera HFR patches. 2024-11-20 10:54:22 +03:00
Skyth e403f961aa Cherry pick of global delta time from 'options-menu' branch.
Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com>
2024-11-20 10:39:58 +03:00
Skyth 2fd26cfd80 Fix freeze in latest Clang version. 2024-11-17 21:01:00 +03:00
Hyper 1117cbe33e window: make Japanese title uppercase 2024-11-17 15:59:12 +00:00
Michael e405887c0e video_patches: don't adjust CSD aspect if UIScaleMode is Stretch 2024-11-16 16:02:02 -08:00
Hyper 118c2f3ce2 config_detail: move implementation to cpp, relocate sources 2024-11-15 21:21:43 +00:00
Hyper b354c6123d config: make definitions global 2024-11-15 19:57:44 +00:00
Hyper 784d3973f4 git: move ignore rule for ./res/win32/ to res directory 2024-11-15 02:22:44 +00:00
Hyper c9b6a6913f Fix loading screen speed at high frame rates 2024-11-12 19:55:00 +00:00
Skyth 3080412dc0 Change spin lock release functions to do an interlocked exchange. 2024-11-11 20:18:12 +03:00
Skyth 043c9e039b Update ShaderRecomp submodule. 2024-11-11 19:57:23 +03:00
Skyth 5ecc397639 Fix Chip not appearing transparent in "To The Surface" cutscene. 2024-11-11 16:01:25 +03:00
Skyth cc2727d068 Fix vertex declaration not getting set in guest device. 2024-11-11 15:51:59 +03:00
Hyper 4d9e835c88 Update window icon dynamically for Werehog 2024-11-10 22:47:11 +00:00
Hyper f1d633c8a5 config: use raw pointers for definitions 2024-11-10 18:27:31 +00:00
Hyper f157b21d67 Implemented SDL event listener class and HUD toggle key (#4)
* Implemented SDL event listener class

* Add HUD toggle.

* frontend_listener: clean-up

* window: invoke all listener callbacks at once

* window: use raw pointers for listeners

* Rename WindowListener to SDLEventListener, reduce virtual functions

---------

Co-authored-by: RadiantDerg <jayvier13@gmail.com>
2024-11-10 21:23:36 +03:00
Hyper 21fc80798e Ignore XML exception to allow invalid DLC XMLs to parse 2024-11-10 12:50:51 +00:00
Skyth 05e09ba7e2 Implement ImGui. 2024-11-09 21:47:50 +03:00
Hyper dabda369ca patches: move XButtonHoming hook to player_patches 2024-11-09 14:54:44 +00:00
Skyth 0962560ec9 Add triangle list fallback path for triangle fans. 2024-11-08 22:03:26 +03:00
Skyth 329d51885d Negate the game's reverse Z implementation. 2024-11-08 20:18:54 +03:00