Commit graph

248 commits

Author SHA1 Message Date
georgemoralis 191d2d0b91 Merge pull request #175 from shadps4-emu/missing_gnm_calls
Additional GnmDriver functions
2024-06-09 00:58:45 +03:00
georgemoralis 50186055d3 added rtc and disc_map modules 2024-06-08 22:41:25 +03:00
psucien f3636b77b8 common: slot_vector moved into common 2024-06-08 01:19:51 +02:00
georgemoralis c09c2da147 RWLocks implementation (#171)
* added dummy rwlock

* implemented part of rwlock functions (WIP)

* implemented the most important functions for rwlocks
2024-06-07 21:30:26 +03:00
TheTurtle 718ade970f video_core: Add depth buffer support and fix some bugs (#172)
* memory: Avoid crash when alignment is zero

* Also remove unused file

* shader_recompiler: Add more instructions

* Also fix some minor issues with a few existing instructions

* control_flow: Don't emit discard for null exports

* renderer_vulkan: Add depth buffer support

* liverpool: Fix wrong color buffer number type and viewport zscale

* Also add some more formats
2024-06-07 16:26:43 +03:00
TheTurtle 4779381eec core: Properly implement TLS (#164)
* core: Split module code from linker

* linker: Properly implement thread local storage

* kernel: Fix a few memory functions

* kernel: Implement module loading

* Now it's easy to do anyway with new module rework
2024-06-05 22:08:18 +03:00
psucien a2eb813bee video_core: added shader header files generator from Citra 2024-06-05 14:31:50 +02:00
georgemoralis 088971f5b9 added app_content module 2024-05-31 15:03:05 +03:00
raphaelthegreat 99d20d4119 video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00
georgemoralis b8ced0db35 event flag implementation from previous pr 2024-05-28 14:29:53 +03:00
raphaelthegreat 8bd9bf1a7d video_core: Add image support 2024-05-27 18:25:45 +03:00
TheTurtle 0aa04c60cb video_core: Bringup some basic functionality (#145)
* video_core: Remove hack in rasterizer

* The hack was to skip the first draw as the display buffer had not been created yet and the texture cache couldn't create one itself. With this patch it now can, using the color buffer parameters from registers

* shader_recompiler: Implement attribute loads/stores

* video_core: Add basic vertex, index buffer handling and pipeline caching

* externals: Make xxhash lowercase
2024-05-25 15:33:15 +03:00
TheTurtle 4380066a90 video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
Xphalnos 80a9e3865b Migrating from third-party to externals (#138)
* third-party migration to externals

* Fix

* Lower case for Linux
2024-05-18 20:05:18 +03:00
georgemoralis 521fc0401f show title splash while the game is loading 2024-05-16 16:58:14 +03:00
TheTurtle 94caa0336e core: Implement new memory manager (#133)
* core: Implement new memory manager

* ci: Attempt to fix linux build

* code: Fix a few build errors
2024-05-16 15:55:50 +03:00
georgemoralis 9ea9a9efec Initial LibcInternal 2024-05-13 16:13:33 +03:00
georgemoralis e55fbee0aa use winpthreads from mingw64 2024-05-09 23:45:09 +03:00
georgemoralis ccf81110b0 sceSaveDataMount2,sceSaveDataUmount some implementation 2024-05-04 22:08:04 +03:00
georgemoralis 45cbbec0b6 moved savedata to proper folder 2024-05-04 19:08:46 +03:00
georgemoralis 95a42f5b29 added dummy np* modules and screenshot module 2024-05-02 18:16:10 +03:00
georgemoralis 2b59361b7f added stubbed mostly version of flexible memory - it allows sonic mania to go further 2024-05-02 17:13:51 +03:00
georgemoralis e60cb3c745 better way for compiler option 2024-05-02 15:48:48 +03:00
georgemoralis b2ce6f274f fixed stack allocation issue 2024-05-02 10:57:24 +03:00
TheTurtle 49e65be25b core: Rewrite thread local storage implementation (#118) 2024-05-01 13:38:41 +03:00
TheTurtle 13fe78f0f5 video_core: Add basic command list processing (#117) 2024-04-30 01:23:28 +03:00
psucien 87f3724675 video_core: prefer discrete gpu if available (#116)
* video_core: prefer discrete gpu if available

* ci: Upgrade to clang format 17

* rewrite w\o std::zip usage

---------

Co-authored-by: raphaelthegreat <47210458+raphaelthegreat@users.noreply.github.com>
2024-04-30 00:19:12 +03:00
raphaelthegreat 733956c39b texture_cache: Fix linear image uploads
* Also fixed build for clang-cl with libc
2024-04-29 18:22:04 +03:00
georgemoralis c7115fc8fb trying to fix actions (again) 2024-04-15 20:35:49 +03:00
georgemoralis f4552c631e fixing qt builds 2024-04-15 20:20:00 +03:00
GPUCode 23b2eeba9b video_core: Rewrite vulkan and videoout 2024-04-14 17:10:40 +03:00
GPUCode 55eb16d09d src: Move control to input directory 2024-04-14 01:18:25 +03:00
GPUCode 661b4d0e74 src: Reorganize and cleanup libraries 2024-04-14 00:37:17 +03:00
georgemoralis 7d3985f88e several fixes (#112)
* updated fmt

* submodules updated

* fixed _TIMESPEC_DEFINED for winpthreads under windows

* fixed sdl3 under qt

* virtual_memory: Ensure mapped addresses stay inside the user area

* Fixes LLE Libc crashing on linux

---------

Co-authored-by: GPUCode <geoster3d@gmail.com>
2024-04-13 22:37:21 +03:00
georgemoralis c4b4cb5acf dummy libscesavedatadialog 2024-04-08 19:03:51 +03:00
georgemoralis 93118a3cd4 Merge pull request #107 from shadps4-emu/modules4
More module work focused on undertale
2024-04-05 20:41:26 +03:00
georgemoralis 0141781429 dummy sceAudioIn lib 2024-04-04 20:04:18 +03:00
georgemoralis efe50c8819 Merge pull request #102 from shadps4-emu/gui-rewrite
Gui rewrite.
2024-04-02 23:51:13 +03:00
georgemoralis 916a5adfd1 partial implementation of _write function , which is used as debug ouput from lle libc 2024-03-31 13:33:38 +03:00
georgemoralis ca810916b5 dummy libkernel module 2024-03-31 11:30:43 +03:00
georgemoralis 221b5c6c88 dummy sysmodule module 2024-03-30 15:34:01 +02:00
georgemoralis 1c029b0c98 added more dummy modules 2024-03-29 23:25:52 +02:00
raziel1000 88d737c358 - Gui rewrite.
- Gui: Bug fixes and cleanup.
- Gui: Performance improvement (loading, resizing...etc)
- Added a simple PKG Viewer(Settings-> Utils -> PKG Viewer), added pkg folders will be saved.
- PKG Viewer: Shows game info(name, id, region...etc)
- PKG Viewer: Right click -> Install PKG to install/extract a game. Patch installation is also possible.
- Added option to dump game list  (Settings -> Utils -> Dump Game List), will be dumped to emu folder GameList.txt
2024-03-28 23:43:46 -06:00
georgemoralis b4cb5ad233 More modules (#99)
* added dummy sceAudio lib

* added lseek in file_system

* updated sdl3

* forgot sdl3 in cmake

* cmake is case sensitive in linux

* fixed SDL_CreateWindowWithPosition

* fixed vulkan issues with latest sdl3

* some progress in sceAudio

* improvements in audio

* more sound improvements

* first working sound output , from openorbis sound demo

* updated sdl3 , zlib-ng can now be build with msvc+clangci

* fixed cmake

* fix for audio buffering

* clang format fix

* format fix

* better error handling for sceAudioOutput
2024-03-22 18:12:37 +02:00
georgemoralis 02ba353401 Autogen system,user,dialog modules (#98)
* some rework on system_service, user_service

* fixed clang format

* more clang fix

* more clang fix

* added error codes in system service

* some libc functions

* fixed fprintf

* small fix

* linux fix

* error handling in user service

* error codes reorganized
2024-03-14 14:18:16 +02:00
georgemoralis af1e3c02ad LLE libc + other fixes part1 (#97)
* app0 folder is absolute

* some improvements on symbols types

* clang format

* missing libs.h

* improved symbols_resolver

* moved config to config folder

* functions to dump import functions

* improved logging output

* option for debugdump and improvements

* Apply suggestions from code review

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* clang format

---------

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
2024-03-11 13:26:33 +02:00
qurious-pixel 0645dbb610 add window icons (#92) 2024-03-02 18:39:46 +02:00
Younes c8e79b34a1 - Added Play, Pause, Stop and several other UI icons. (#91)
* - Added Play, Pause, Stop and several other UI icons.
- Added a screenshot :3

* update reuse

* reuse again

* screenshot
2024-03-01 10:47:28 +02:00
georgemoralis a967d891d6 file formats and qt (#88)
* added psf file format

* clang format fix

* crypto functions for pkg decryption

* pkg decryption

* initial add of qt gui , not yet usable

* renamed ini for qt gui settings into shadps4qt.ini

* file detection and loader support

* option to build QT qui

* clang format fix

* fixed reuse

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/loader.h

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/loader.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* uppercase fix

* clang format fix

* small fixes

* let's try windows qt build ci

* some more fixes for ci

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/pkg.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update .github/workflows/windows-qt.yml

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/loader.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* Update src/core/file_format/psf.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* loader namespace

* Update src/core/loader.cpp

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>

* constexpr magic

* linux qt ci by qurious

* fix for linux qt

* Make script executable

* ci fix?

---------

Co-authored-by: raziel1000 <ckraziel@gmail.com>
Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
Co-authored-by: GPUCode <geoster3d@gmail.com>
2024-03-01 00:00:35 +02:00
GPUCode 367350e989 common: Rewrite logging based on cut down citra logger (#86)
* common: Rewrite logging based on cut down Citra logger

* code: Misc fixes

* core: Bring back tls handler

* linker: Cleanup

* config: Remove log level

* logging: Enable console output by default

* core: Fix windows build
2024-02-28 00:10:34 +02:00
georgemoralis c9dce45e4c submodules fixes (#87)
* update discord-rpc

* ignore gitmodules on reuse

* imgui not used atm removed
2024-02-27 20:24:47 +02:00
georgemoralis de0d824fce Modules generation tool (#81)
* Modules generation tool

* apply clang format to generator

* @whereismyfoodat suggestions

* added reuse headers

* reuse part2

* reuse part3

* reuse part3

* replace with hex_id the unknown functions to avoid compile errors with unknown characters from encode_id

* fixes in generation

* some sample module code from autogen tool

* clang format fix
2024-02-24 22:39:29 +02:00
GPUCode 7e5b7a7ffa chore: Make shadps4 REUSE compliant 2024-02-23 23:33:43 +02:00
GPUCode d9e30405ba code: Add clang-format target and CI workflow (#82)
* code: Add clang format target, rules and CI workflow

* code: Run clang format on sources
2024-02-23 22:57:57 +02:00
georgemoralis 9b47a4e72d should work without lib 2024-02-23 14:33:01 +02:00
georgemoralis 3fa14ae739 ugly workaround :D 2024-02-23 14:10:44 +02:00
GPUCode 7faf2d0ee8 common: Rework timekeeping with native RDTSC and port to linux 2024-02-23 11:30:06 +02:00
georgemoralis 8e31542122 some fs work for openorbis (WIP) 2024-01-26 18:01:27 +02:00
georgemoralis efc542bdb8 initial fs implementation (mounting /app0/) 2023-11-19 10:22:46 +02:00
georgemoralis 5c8a34609d moved thread_management to proper package 2023-11-10 17:31:56 +02:00
GPUCode 3b69d5aaaa kernel: To snake case 2023-11-06 01:19:57 +02:00
GPUCode 0150a3e9eb common: Move timer to common 2023-11-06 01:17:28 +02:00
GPUCode 477b4fb07f core: Reorganize 2023-11-06 01:11:54 +02:00
GPUCode 7cdcfb6f98 cmake: Add directory groups 2023-11-05 17:08:47 +02:00
GPUCode 0765017b4f cmake: Update CMakeLists.txt 2023-11-05 14:21:20 +02:00
GPUCode 963f665b6f cmake: Refactor library management 2023-11-05 13:22:32 +02:00
georgemoralis 34846e8b1b finished libc refactoring 2023-10-31 19:08:33 +02:00
georgemoralis 90efe48b27 libc separate stdlib functions to libc_stdlib 2023-10-31 18:12:05 +02:00
georgemoralis e07cfa1d0f libc separated string functions to libc_string 2023-10-31 17:32:56 +02:00
georgemoralis 13b8a74a43 cleanup libc (wip) and separated it to several files 2023-10-31 15:53:46 +02:00
georgemoralis 6e63d783e5 reorganized libc package 2023-10-31 15:37:24 +02:00
georgemoralis a8cd1ac26d refactoring system service 2023-10-31 14:04:35 +02:00
georgemoralis 0eef2a0fba user service refactoring 2023-10-31 13:35:52 +02:00
georgemoralis 35e632a2f0 refactored libpad to new package 2023-10-31 09:01:20 +02:00
georgemoralis 5d90022f6a refactoring Core folder to core 2023-10-31 08:47:58 +02:00
georgemoralis 5499d1c81c file_system reorganized (dummy) 2023-10-30 23:04:57 +02:00
georgemoralis eb783a1d70 implemented sceKernelGetProcessTime 2023-10-30 08:48:52 +02:00
georgemoralis 2b9fecf6d0 restored previous timer class 2023-10-29 23:46:18 +02:00
georgemoralis 1ca3d68f59 removed obsolute fs 2023-10-27 11:07:19 +03:00
GPUCode eef2973a46 core: Remove Timer in favour of std::chrono 2023-10-22 17:17:43 +03:00
GPUCode 7b6a127051 core: Switch to std threading primitives 2023-10-22 17:10:25 +03:00
georgemoralis a805718d6c moved controller to host 2023-10-20 07:25:52 +03:00
georgemoralis 22b8c3568b Merge pull request #58 from georgemoralis/fs
filesystem work
2023-10-20 07:07:59 +03:00
wheremyfoodat 271993b38c Add Result<T, E> type 2023-10-19 18:39:20 +03:00
georgemoralis bf16dbee34 draft fs design 2023-10-19 17:02:49 +03:00
georgemoralis d40728f023 initial fs work (logging mostly) 2023-10-19 12:13:09 +03:00
georgemoralis e78b470668 rewrote libc_cxa 2023-10-16 20:49:52 +03:00
georgemoralis fd2bfc869b refactoring singleton class 2023-10-15 10:03:26 +03:00
georgemoralis 661e2e13f9 Merge pull request #53 from georgemoralis/pad
pad implementation
2023-10-13 20:42:15 +03:00
georgemoralis 70487a4fed some work on pad emulation (WIP) 2023-10-13 09:40:59 +03:00
Stefanos Kornilios Mitsis Poiitidis a239ac10f3 Add auto stubs, static init
- Adds a python script to generate the tables, to avoid std::map init
- Generates stub "slots" to provide runtime information when a stub is called
- Provides fallback for unknown stubs
2023-10-11 11:50:02 +03:00
georgemoralis e748468ab1 implemented some dummy pad, system_service, user_service calls 2023-10-07 12:03:03 +03:00
georgemoralis 59ec120563 some more HLE functions 2023-10-06 21:49:53 +03:00
georgemoralis dc72fae8c6 printf implementation 2023-10-06 14:19:09 +03:00
georgemoralis c0b3b433b1 v0.0.1 release files 2023-09-29 08:40:30 +03:00
georgemoralis 6612de9fcd WIP tilemanager 2023-09-28 18:17:39 +03:00
georgemoralis e77e97fb98 added XXH3_64bits and calculate memory obj hashes 2023-09-26 16:00:13 +03:00
georgemoralis 5590ffdb55 more gpu memory work 2023-09-25 15:08:36 +03:00
georgemoralis 3ca9569acd some video buffer work 2023-09-22 10:38:21 +03:00
georgemoralis 4420d80548 added vulkan extension initialize 2023-09-17 20:01:29 +03:00
georgemoralis ecddc5f0da fixed vulkan compile 2023-09-16 10:51:09 +03:00
georgemoralis 2382619cba basic sdl window init 2023-09-12 19:39:08 +03:00
georgemoralis 2a9e3b4d75 cleanup VideoOut library code 2023-08-23 23:20:43 +03:00
georgemoralis bb70b7af53 initial video out context object 2023-08-22 00:54:44 +03:00
georgemoralis b473d6e3e6 sceKernelCreateEqueue implemented 2023-08-17 10:10:13 +03:00
georgemoralis 5a6ceb04a5 reorganize function call to proper file 2023-08-15 23:10:45 +03:00
wheremyfoodat c016e7ac12 added configuration class 2023-08-14 20:17:01 +03:00
georgemoralis c37067641d refactoring log class 2023-08-13 16:54:56 +03:00
wheremyfoodat f6d3ea4253 Add discord RPC 2023-08-11 20:22:26 +03:00
georgemoralis 27df587d7f sceVideoOutSetBufferAttribute implementation 2023-08-10 20:14:44 +03:00
georgemoralis e1693e28c5 threading part 1 2023-08-09 10:31:18 +03:00
georgemoralis a703392cbd implemented sceKernelMapDirectMemory 2023-08-08 22:24:17 +03:00
georgemoralis 297e4d9afc aligned memory allocation using VirtualAlloc2 2023-08-07 18:16:26 +03:00
georgemoralis e26cabb181 refactoring virtual_memory 2023-08-06 22:52:20 +03:00
georgemoralis 89abe5cc28 refactoring 2023-08-04 11:33:00 +03:00
georgemoralis 23944ce2d7 forgot cmake 2023-08-03 13:05:36 +03:00
wheremyfoodat 582e27b729 general refactoring and coding format fixes 2023-08-03 12:25:25 +03:00
georgemoralis 018e0d37c7 more refactoring 2023-08-02 15:16:00 +03:00
georgemoralis 17fc6b63a7 refactoring 2023-08-02 13:51:10 +03:00
georgemoralis 4d87ac2143 Refactoring PhysicalMemory 2023-08-02 08:41:41 +03:00
georgemoralis 6bfdf17a03 sceKernelAllocateDirectMemory should be ok for now 2023-08-01 17:59:08 +03:00
georgemoralis bd541da90a ugly PhysicalMemory 2023-08-01 17:02:26 +03:00
georgemoralis cc8c7eb648 Added Thread class 2023-08-01 12:49:57 +03:00
georgemoralis 8a3eb1574a improved StringUtil algo + some PhysicalMemory work 2023-08-01 00:42:49 +03:00
georgemoralis ccd86c929e some memory functions (videoout_basic now reaches sceKernelAllocateDirectMemory which is WIP) 2023-07-27 13:36:47 +03:00
georgemoralis 936d255e63 portable debugbreak
ευχαριστώ ροδάκινε

Co-Authored-By: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>
2023-07-24 13:05:57 +03:00
georgemoralis 8acd636a13 some pthread work nothing exciting 2023-07-18 18:54:46 +03:00
georgemoralis 9d24671994 initial thread management files 2023-07-17 23:46:25 +03:00
georgemoralis 3bbd34aba1 updates submodules to latest 2023-07-17 23:19:33 +03:00
georgemoralis 152c581dc5 patching more dummy functions 2023-07-13 12:56:36 +03:00
georgemoralis 09909f86ae dummy timer class 2023-06-29 13:17:05 +03:00
georgemoralis 8140f11be3 sample hle function loading (libc) 2023-06-28 20:15:19 +03:00
georgemoralis e7801019d8 started work on libraries linking 2023-06-26 20:45:16 +03:00
georgemoralis d6f8f839ea Symbol resolver added 2023-06-26 18:12:19 +03:00
Esdras Tarsis 85c805972d Add initial Linux support. 2023-06-22 22:48:55 -03:00
georgemoralis 998bc7e3a8 nid names resolver 2023-06-21 18:14:52 +03:00
georgemoralis d1ae8fb199 more symbols work and refactoring 2023-06-19 07:51:56 +03:00
georgemoralis dc2eba1713 more progress on symbols decoding 2023-06-18 17:54:22 +03:00
georgemoralis 5b6df9042b initial disasm class using zydis 2023-05-30 13:33:52 +03:00
georgemoralis 61e7d65490 initial work on linker 2023-05-23 07:48:25 +03:00
georgemoralis 6a246feebe draft work on memory allocation 2023-05-17 19:29:05 +03:00
georgemoralis 58ad071e69 initial work on loggin class 2023-05-16 19:31:53 +03:00
georgemoralis ae25888c78 cmake : copy sdl3.dll to directory where exe exists (since sdl3 is shared library) 2023-05-10 22:22:46 +03:00
georgemoralis 0109b28b93 imgui elfviewer window . first draft 2023-05-03 19:40:47 +03:00
georgemoralis e6101bea7a we can now load elf and imgui. 2023-05-02 22:10:49 +03:00
georgemoralis 3e17a9f9a5 added spdlog library 2023-05-02 22:10:49 +03:00
georgemoralis d1e8e696cf added fmt library 2023-05-02 22:10:49 +03:00
georgemoralis bbf71dfbd3 first try with cmake and imgui 2023-05-02 22:10:49 +03:00