Commit graph

286 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