Commit graph

665 commits

Author SHA1 Message Date
mailwl
1908d26093
lseek: let the host OS set lseek errors (#2370)
* Fix lseek(fd, -1, SEEK_SET) for XNA

* be sure, if seek really return error

* refactoring

* let host os set lseek errors
2025-03-24 15:51:36 +02:00
Pavel
a80c4a7f48
Reset previous buffer label instead of current one (#2663)
* Reset previous buffer label

* Reset flip label also when registering buffer
2025-03-23 00:27:57 +02:00
Dmugetsu
b1885badda
clock_gettime fixes for windows (#2659)
* Using OrbisKernelTimespec under clock_gettime, orbis_clock_gettime, sceKernelClockGettime  to fix compatibility issues.

* final fix test

* Roamic suggestions
2025-03-20 22:24:47 +02:00
Vinicius Rangel
5691046dcc
Renderer fixes (Splash + Aspect Ratio) (#2645)
* rewrite splash

removed Splash class
rewrite using imgui texture manager
fix crashes & old validation error

* handle games with abnormal aspect ratios
2025-03-13 18:10:24 +02:00
Stephen Miller
4d0c03fd4a
Properly implement sceVideoOutGetBufferLabelAddress (#2642)
* 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.
2025-03-12 20:36:01 +02:00
Vinicius Rangel
f663176a5d
FidelityFX FSR implementation (#2624)
* 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
2025-03-12 20:33:30 +02:00
Pavel
8bcdd9c068
Fix sceKernelLoadStartModule (#2635) 2025-03-10 11:12:12 +02:00
panzone91
a711f4d86e
libkernel: improve module finding in sceKernelLoadStartModule (#2541)
* libkernel: improve module finding in sceKernelLoadStartModule

* clang-format

* asserts for system module

* fixes

* linting

* cleaning

* fix linker impl
2025-03-09 23:44:17 +02:00
Stephen Miller
20ea0ee190
Handle error behavior in sceSysmoduleGetModuleInfoForUnwind stub (#2629)
* Stubby implementation of sceSysmoduleGetModuleInfoForUnwind

* Update sysmodule.cpp

* Minor cleanup
2025-03-09 23:17:33 +02:00
Stephen Miller
0e315cbd8f
sceKernelReleaseDirectMemory fix (#2623)
* Fix error return on sceKernelMunmap

FreeBSD docs state that len <= 0 is a EINVAL return.

* Early return on ReleaseDirectMemory with len = 0

Calls to these two functions with len = 0 cause an assert in CarveDmemArea. Since there's no memory to release, an early return should be safe here.

* Remove check for negative length in munmap

Addresses review comment
2025-03-09 15:12:05 +02:00
Vladislav Mikhalin
6b3746f3a6
kernel: re-implement clock_gettime (#2615) 2025-03-07 21:42:25 +03:00
smiRaphi
eaa18d4e3c
load trophy from .wav (#2603)
Co-authored-by: smiRaphi <neogt404@gmail.com>
2025-03-06 16:20:55 +02:00
georgemoralis
951128389d
[Lib] libsceHttp (#2576)
* implemented sceHttpUriParse

* argg clang

* improved in case of file:////  (probably)

* rewrote httpuriparse to support file:////

* fixed uriparse
2025-03-02 23:09:38 +02:00
Dmugetsu
d59536a71c
Adding Top and Bottom trophy option for pop window + Trophy improvements (#2566)
* Adding top button option for trophy pop up

* Ui fix

* Clang format

* improvements to trophy pr 

* improvements

* Note: The sound will only work in QT versions

* -.

* Update path_util.cpp

* Update path_util.cpp

* centered text when using top and bottom option

* Clang

* trophy viewer now opens in window not fullscreen

---------

Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
2025-03-02 21:36:12 +02:00
DanielSvoboda
f4110c43a7
Fix time - sceKernelClockGettime (#2582) 2025-03-02 21:32:28 +02:00
Randomuser8219
9061028ce5
Reduce some service ID log spam (#2578)
* Change systemserivce param ID calling to debug only

Some games, including Namco Museum Archives spam this.

* Update userservice.cpp

Also reduces log spam in Dysmantle.
2025-03-02 11:55:45 +02:00
georgemoralis
636a90386b
fix for ime (#2475)
* fix for ime

* typo
2025-03-01 20:02:29 +02:00
DanielSvoboda
5e5ca2138e
Custom Trophy images / sound | and improvements (#2539)
* Custom Trophy images

* text and button - settings

* Description

* +

* plural

* translation for 'Trophy earned!'

* Revert: translation for 'Trophy earned!'

* play audio

* fixes crash due to having too many trophies

The game 'My Name is Mayo' has so many trophies in sequence that when overlapping them, the emulator ended up crashing, so if there is something on the screen and a new trophies are achieved, it will clear and show the new one.

* Animations, config: position, duration

* -

* TR

* fix sdl/qt

* clang \O/

* Side menu with filter options. Sorting

* +TR

* fix showHiddenCheck

* Time Unlocked

* Fixes ghost text, larger image, black text in light theme

* Button - Delete Trophy

* limits the width of Description - showMaximized

* changing column positions

* useEuropeanDateFormat

en_US, zh_CN, zh_TW, ja_JP, ko_KR, lt_LT, nb_NO, nl_NL
useEuropeanDateFormat = false
2025-02-28 08:31:42 +02:00
jarred wilson
15d10e47ea
fix: move trophy pngs to src/images (#2519)
* fix: move trophy pngs to src/images

* Fix pointers to trophy files

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-24 22:39:27 +02:00
kalaposfos13
b8aac357cb
Fix SDL gyro and acceleration sensor handling (#2532)
* Fix sensor handling if they are enabled but an error was thrown regardless

* Initialise orientation to a default value + clang
2025-02-24 22:38:06 +02:00
TheTurtle
76b4da6212
video_core: Various small improvements and bug fixes (#2525)
* ir_passes: Add barrier at end of block too

* vk_platform: Always assign names to resources

* texture_cache: Better overlap handling

* liverpool: Avoid resuming ce_task when its finished

* spirv_quad_rect: Skip default attributes

Fixes some crashes

* memory: Improve buffer size clamping

* liverpool: Relax binary header validity check

* liverpool: Stub SetPredication with a warning

* Better than outright crash

* emit_spirv: Implement round to zero mode

* liverpool: queue::pop takes the front element

* image_info: Remove obsolete assert

The old code assumed the mip only had 1 layer thus a right overlap could not return mip 0. But with the new path we handle images that are both mip-mapped and multi-layer, thus this can happen

* tile_manager: Fix size calculation

* spirv_quad_rect: Skip default attributes

---------

Co-authored-by: poly <47796739+polybiusproxy@users.noreply.github.com>
Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-02-24 14:31:12 +02:00
smiRaphi
f975c0603c
change sizeof to TmpMount.size (#2523)
Co-authored-by: smiRaphi <neogt404@gmail.com>
2025-02-24 12:44:22 +02:00
rainmakerv2
47ac8b6c03
Fix and add back Trophy type icons for both the trophy pop-up and viewer (#2522)
* Add back fixed trophy type icons to trophy viewer

* Remove unused declaration until it is needed again

* Fix trophy pop-up icons

* Adjust size and alignment based on trophy name length

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-24 12:41:57 +02:00
rainmakerv2
e1e697a3ff
Revert use of embedded icons (#2509)
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-23 17:00:26 +02:00
rainmakerv2
22ca57b1f2
Trophy pop-up and viewer enhancements (#2493)
* Include trophy rarity icons in pop up, remove newlines from viewer

Fix layout

Update platinum.png

Fix linux and apple

* Smaller type icons, center text vertically

* use original icons

* MacOS fixes

* Address Review comments

Update build.yml

Update build.yml

Update build.yml

Update build.yml

Update build.yml

Update build.yml

Update build.yml

test

* Move trophy type to leftmost and trophy art to rightmost

* Embed resources

* Revert packaging of resources with builds

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-23 10:00:24 +02:00
Stephen Miller
4f1baece33
Avoid processing job buffers before codec initialization (#2507) 2025-02-23 06:47:44 +03:00
georgemoralis
0aaeea4837
libcInternal HLE fixes (#2491)
* internal_vprintf was wrong

* reducing the calls to only needed (and tested one) . Fixed strcpy_s

* clang fix

* Added snprintf
2025-02-22 10:56:35 +02:00
kalaposfos13
1cc9e0d37f
Initial implementation of controller color config (#2411) 2025-02-14 12:30:49 +02:00
georgemoralis
57bdb6cac2 hotfix: another typo.. 2025-02-14 10:24:12 +02:00
georgemoralis
1dca54c165 hotfix: typo 2025-02-14 10:12:43 +02:00
georgemoralis
67a74a9357 hotfix: removed questionable setjmp 2025-02-14 10:03:57 +02:00
kalaposfos13
7db30d12cb
Libraries: Update libcInternal (#2265)
* Added all stubs + logging

* Added back memory and math functions from the original code + added some more math functions

* More string functions, snprintf, memmove and setjmp

* Add longjmp + clang

* gmtime, __cxa_atexit and log what functions some games use

* Add Mspace unreachable

* Renaming

* Take out mspace functions to their own file

* Factor out io to a new file

* Empty str and memory files

* Overloaded functions be like:

* str

* memory + math +clang

* clang...

* adjustments :D

* longjmp is questionable

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-02-14 09:58:38 +02:00
DanielSvoboda
4dfe05db24
language fix (#2421) 2025-02-13 20:01:35 +02:00
Stephen Miller
455b23c6f1
Update video_out.cpp (#2416) 2025-02-13 16:29:26 +02:00
squidbus
ebe2aadb4c
gnmdriver: Implement sceGnmUpdateHsShader (#2412) 2025-02-12 19:45:42 -08:00
squidbus
7624e9482c
memory: Log for sceKernelMapNamedDirectMemory in more cases. (#2404) 2025-02-12 19:04:58 +02:00
Stephen Miller
b51c767296
Better bounds checks for sceKernelDlsym (#2394)
Unity, being the awful game engine it is, checks for a return value of zero to determine if sceKernelLoadStartModule failed. This results in it throwing an error code into sceKernelDlsym's handle parameter when the module it's searching for doesn't exist.
2025-02-09 19:31:07 -08:00
Stephen Miller
22357f70c2
Improve parameter checks for posix_pthread_rename_np (#2391) 2025-02-09 13:50:59 -08:00
squidbus
214eab2c52
gnmdriver: Fill in functions stubbed on real firmware. (#2379) 2025-02-09 18:57:10 +02:00
psucien
8f2883a388
video_out: HDR support (#2381)
* Initial HDR support

* fix for crashes when debug tools used
2025-02-09 15:54:54 +01:00
Vladislav Mikhalin
fb0871dbc8
ajm: mark empty batches as finished immediately (#2385) 2025-02-09 16:11:24 +03:00
Stephen Miller
ecfc940381
libSceHmd Stubs (#2355)
* Add generated libSceHmd stubs

* Implement ReprojectionQuery functions

These constant returns come from decompiling libSceHmd.

* Clang

* Clang
2025-02-05 17:24:53 +02:00
Stephen Miller
e757063d31
Improved error handling in sceKernelAllocateDirectMemory (#2037)
* Handle errors in sceKernelAllocateDirectMemory

* Improve accuracy of error cases

Some of our existing cases are normally EAGAIN returns.

* Improve logging on errors

* Clang

* TEMPORARY HACK FOR NBA TESTS

This will be removed before this PR is marked as ready, and is only here to make sure the other NBA games (and perhaps DOA3) work if some missing init behavior is handled.

* Revert "TEMPORARY HACK FOR NBA TESTS"

This reverts commit a0e27b0229.

* Change error message
2025-02-05 17:21:05 +02:00
georgemoralis
e4598e8821
sceVideoOutDeleteFlipEvent (#2339) 2025-02-03 23:27:48 -08:00
Stephen Miller
8ad650582a
Fix VideoOut events (#2330)
* 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
2025-02-03 17:37:28 +02:00
hspir404
c5cd4bc5cf
Remove log line that was consuming as much as 0.6ms frame time (#2335) 2025-02-03 02:37:11 -08:00
squidbus
e1550c9091
audioout: Add error returns when not initialized. (#2309) 2025-02-01 10:52:40 +02:00
kalaposfos13
c4bfaa6031
Added keyboard and mouse input remapping, mouse movement to joystick logic, GUI and more (#1356)
* added support for loading keyboard config from file

* final minor update before pull request

* fix messing up the merge

* fix waitEvent to correctly handle mouse inputs

* add license

* Applied coding style fixes

* clang-format fucked up the .ini file

* actually fix clang changing ini syntax
use relative path for the ini file

* remove big commented out code blocks,
and fixed platform-dependent code

* fix windows hating me

* added mouse config option

* added toggle for mouse movement input (f7)

* fix license and style

* add numpad support i accidentally left out

* added support for mouse wheel (to buttons only)

* if keyboard config doesn't exist, autogenerate it

* added keybinds for "walk mode"

* Mouse movement input is now off by default

* code cleanup and misc fixes

* delete config file since it is now autogenerated

* F6 = F7 + F9

* added better mouse handling with config options

* Added capslock support

* fix clang-format

* Added support for mod key toggle key

* F6 and F7 are removed, F9 captures and enables the mouse

* Encapsulated globals and new classes in a new namespace

* Added mouse side button support

* Added per-game config

* relocated input parser to the new namespace

* changed parser parameters to make it possible to use it from the gui

* added home, end, pgup and pgdown

* Resolved merge conflict and refactored code

* Updated default keybindings

* Changed input handling to be single-threaded

* General code cleanup

* Start working on new backend

* Mouse polling, CMakeLists, and basic framework

* Output update handling, and reworked file creating, reading and parsing

* Parsing works now

* Single key button inputs work now

* Axis outputs work now

* Wheel works now (for me), l2/r2 handling improvements, and misc bugfixes

* Downgraded prints to log_debug, and implemented input hierarchy

* Implemented key toggle

* Added mouse parameter parsing

* clang-format

* Fixed clang and added a const keyword for mac

* Fix input hierarchy

* Fixed joysick halfmodes, and possibly the last update on input hierarchy

* clang-format

* Rewrote the default config to reflect new changes

* clang

* Update code style

* Updated sorting to accomodate for that one specific edge case

* Fix default config and the latest bug with input hiearchy

* Fix typo

* Temporarily added my GUI

* Update cmakelists

* Possible fix for Gravity Rush

* Update Help text, default config, and clang

* Updated README with the new keybind info

* okay so maybe the gravity rush fix might have slightly broken the joystick halfmode and key toggle

* Fixed mistakenly overwriting the last opened config with the default one if the GUI is opened multiple times in a session

* Updated Help descriptions and fixed mouse movement default parameters

* Fix crash if the Help dialog was opened a second time
If it's closed with the top right close button instead of clicking the Help button again, a required flag wasn't reset, making the next click on Help try to close a nonexistent window and segfault

* Added closing the config also closing the Help window, and fixed more segfaults due to mismatched flags

* Initial controller support

* clang and debug print cleanup

* Initial axis-to-button logic

* Updated Help text

* Added 'Reset to Default' button in GUI

* Minor text and description updates + fixed an issue with Help text box rendering

* Fix button-to-touchpad logic and l2/r2 handling, as they are both axes and buttons
The touchpad's button state was correctly handled, so games that use that were fine, but the touchDown flag was always set to true, so games that use this flag had problems, like Gravity Rush

* Fix merge conflict

* Clang

* Added back back button to touchpad binding

* Added touchpad button handling

* Added end-of-line comments and fixed some crashes happening with the VS debugger

* Apply recent changes from kbm-only

* Deadzone + initial directional axis-to-button mapping

* Added that one missing space in the README. Are you all happy now?

* Fixups from making everything use SDL

* Revert directional joystick code and fix a memory leak

* Change config directory name again to conform to project standards

* Clang

* Revert the old deeadzone code and properly add the new one

* Clang
2025-01-31 16:36:14 +02:00
georgemoralis
8aea0fc7ee
Revert "libkernel: handle special case in path for load module (#2269)" (#2298)
This reverts commit ec0cf25097.
2025-01-31 12:54:16 +02:00
panzone91
ec0cf25097
libkernel: handle special case in path for load module (#2269)
* libkernel: handle special case for load module

* fix linting
2025-01-31 10:51:03 +02:00