* 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.
* 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.
* 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>
* 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.
- 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.
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>