* using new emulator_settings
* the default user is now just player one
* transfer install, addon dirs
* fix load custom config issue
---------
Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
* Remove dead code from EqueueInternal::WaitForEvents
No longer necessary now that we avoid using small timers when falling back on equeue logic.
* Refactor type names
Might as well
* Properly define OrbisKernelEqueue as a handle
Most of the functions using an "OrbisKernelEqueue" call directly into kevent. Therefore, OrbisKernelEqueue should be a equeue handle.
* Clang
* Widen OrbisKernelEqueue type
On real hardware, it's some value that contains the handle, as opposed to just the handle itself.
* kqueue implementation
The easy part
* Hardware-accurate timer data
Needed to make kevent simpler for these uses.
* Move callback scheduling to EqueueInternal::AddEvent
kevent would become excessively bloated if I needed to deal with that in there.
* posix_kevent
kevent is a bit of a pain, for now I've implemented as much as libkernel actually uses for it's wrappers, and left error logs to skip behavior when necessary.
* Log calls
* Apple, why are you calling fstat on an equeue?
* There is a mountain of evidence suggesting that flip_arg for these functions should be a 64-bit integer.
This fixes "memory" errors in some Unity titles.
* oops
* Fix sceVideoOutGetEventData
This bug went unnoticed for a while because the selection of Unity games I had at the time didn't actually care.
This + the prior fix is needed for Unity titles.
* Remove checks for module version_major and version_minor
Following this rule broke linking for some libraries, and introduced extra effort needed to get some homebrew running.
* Clang
* Fix rebase
* Disable libSceSsl HLE
Real hardware uses a title workaround to determine if base libSceSsl is needed. Currently, this title workaround applies to absolutely nothing.
* Readable VideoOutEvent data packing
Inspired by the work of former shadPS4 devs and mostly based on red_prig's current code.
* Apply DceData struct to sceVideoOutGetEventCount
Makes the code easier to read
* Update equeue.h
* Update main.cpp
* Update equeue.h
* Proper struct names
* Fix hint mask
Thanks to red_prig for catching my mistake here.
* Clang
* Fix header discrepancy
* Implement sceVideoOutDeleteVblankEvent
* Implement sceVideoOutGetEventCount
Based on decompilation, needs testing.
I also tidied up some types for other functions in here.
* Change hexadecimal numbers to lowercase
A minor change to make sure my implementation follows the formatting standards seen in https://github.com/shadps4-emu/shadPS4/pull/2423
* Export sceVideoOutGetBufferLabelAddress
It's an exported function, used by red_prig's BLACKSQUAR2 homebrew sample.
This also fixes the function's return type accordingly.
* More sceVideoOutGetBufferLabelAddress fixups
Library decomp shows a hardcoded return 16 on success. Not sure why it does that, but it never hurts to be accurate.
Also needs to have an openOrbis-specific export to get it to work with the homebrew sample I'm testing.
* Final fixups
Removed the port assert and added asserts in libSceGnmDriver for when sceVideoOutGetBufferLabelAddress calls fail.
* host_shaders: support for includes
* video_core: add a simpler vulkan asserts
* video_core: refactored post processing pipeline to another file
* renderer_vulkan: add define param to compile shader utility
* video_core: fsr implementation
* devtools: show resolution & fsr state
* Fix event data for VideoOut events
Fix is based on some decompilation work shared by red_prig.
* Cleanup
* Oops
* Style fixes
* Clang
* Fix libSceVideoOut event idents
Based on some decompilation work, events coming from libSceVideoOut use a separate set of values for identifiers. These values are only converted to OrbisVideoOutEventId values during calls to sceVideoOutGetEventId.
For convenience, I've placed all relevant identifiers into a enum called OrbisVideoOutInternalEventId.
Thanks to @red_prig for the tips.
* Fix?
Seems like `static_cast<u32>(hint) & 0xFF == event.ident` here, and doing those right shifts on the event.ident winds up breaking stuff.
Without this change, the if always fails because event_id was getting set to 0 instead.
* Clang
* core: Split error codes into separate files
* Reduces build times and is cleaner
* core: Bring structs and enums to codebase style
* core: More style changes
* `RendererVulkan` -> `Presenter`
* support for Video Out gamma setting
* sRGB hack removed
* added post process pass to presenter
* splash functionality restored
* gui: add option to boot a game by choosing elf file
* core: some small implementations
* fs: implement open func
* add some validations
* spirv: add image format
* video_core: add eR16Uint to formats
* video_core: Add a few missed things
* libkernel: More proper memory mapped files
* memory: Fix tessellation buffer mapping
* Cuphead work
* sceKernelPollSema fix
* clang format
* fixed ngs2 lle loading and rtc lib
* draft pthreads keys implementation
* fixed return codes
* return error code if sceKernelLoadStartModule module is invalid
* re-enabled system modules and disable debug in libs.h
* Improve linux support
* fix windows build
* kernel: Rework keys
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>