Commit graph

289 commits

Author SHA1 Message Date
georgemoralis 1dfa91b638 event flag implementation from previous pr 2024-05-28 14:29:53 +03:00
raphaelthegreat d59b102b6f video_core: Add image support 2024-05-27 18:25:45 +03:00
TheTurtle 3c90b8ac00
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 8730968385
video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
Xphalnos 8cf64a33b2
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 c9b5b5e963 show title splash while the game is loading 2024-05-16 16:58:14 +03:00
TheTurtle 55855b4195
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 f1883870fd Initial LibcInternal 2024-05-13 16:13:33 +03:00
georgemoralis b00b849d3f use winpthreads from mingw64 2024-05-09 23:45:09 +03:00
georgemoralis 277e16c7ba sceSaveDataMount2,sceSaveDataUmount some implementation 2024-05-04 22:08:04 +03:00
georgemoralis 2b9b3e76bf moved savedata to proper folder 2024-05-04 19:08:46 +03:00
georgemoralis e4d43f8e07 added dummy np* modules and screenshot module 2024-05-02 18:16:10 +03:00
georgemoralis 90e3e47c4d added stubbed mostly version of flexible memory - it allows sonic mania to go further 2024-05-02 17:13:51 +03:00
georgemoralis 2308d7f1d6 better way for compiler option 2024-05-02 15:48:48 +03:00
georgemoralis 6f1e488b37 fixed stack allocation issue 2024-05-02 10:57:24 +03:00
TheTurtle 1b9bf924ca
core: Rewrite thread local storage implementation (#118) 2024-05-01 13:38:41 +03:00
TheTurtle b94efcba5a
video_core: Add basic command list processing (#117) 2024-04-30 01:23:28 +03:00
psucien 2696733cad
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 25c04ad42f texture_cache: Fix linear image uploads
* Also fixed build for clang-cl with libc
2024-04-29 18:22:04 +03:00
georgemoralis 7b5d8e5ff9 trying to fix actions (again) 2024-04-15 20:35:49 +03:00
georgemoralis 096316619a fixing qt builds 2024-04-15 20:20:00 +03:00
GPUCode c01b6f8397 video_core: Rewrite vulkan and videoout 2024-04-14 17:10:40 +03:00
GPUCode 0a94899c86 src: Move control to input directory 2024-04-14 01:18:25 +03:00
GPUCode 5e2ac6c72b src: Reorganize and cleanup libraries 2024-04-14 00:37:17 +03:00
georgemoralis e99129d72f
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 bb8a400b7b dummy libscesavedatadialog 2024-04-08 19:03:51 +03:00
georgemoralis 598a6a88e0
Merge pull request #107 from shadps4-emu/modules4
More module work focused on undertale
2024-04-05 20:41:26 +03:00
georgemoralis 935842291d dummy sceAudioIn lib 2024-04-04 20:04:18 +03:00
georgemoralis 33209a77f1
Merge pull request #102 from shadps4-emu/gui-rewrite
Gui rewrite.
2024-04-02 23:51:13 +03:00
georgemoralis 0525481a9b partial implementation of _write function , which is used as debug ouput from lle libc 2024-03-31 13:33:38 +03:00
georgemoralis 8fa5874fb1 dummy libkernel module 2024-03-31 11:30:43 +03:00
georgemoralis 94cd3be814 dummy sysmodule module 2024-03-30 15:34:01 +02:00
georgemoralis b36df1383a added more dummy modules 2024-03-29 23:25:52 +02:00
raziel1000 ca6f582ea8 - 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 2e931c9f72
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 2a03b4d03b
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 02dcf4d45c
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 58ae9c3ade
add window icons (#92) 2024-03-02 18:39:46 +02:00
Younes f2691d83b8
- 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 02cbebbf78
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 79d6c8a377
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 b3084646a8
submodules fixes (#87)
* update discord-rpc

* ignore gitmodules on reuse

* imgui not used atm removed
2024-02-27 20:24:47 +02:00
georgemoralis 08aba86ca1
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 584b7d2b15 chore: Make shadps4 REUSE compliant 2024-02-23 23:33:43 +02:00
GPUCode 6f4c6ae0bb
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 552d2da17a should work without lib 2024-02-23 14:33:01 +02:00
georgemoralis b62c44c914 ugly workaround :D 2024-02-23 14:10:44 +02:00
GPUCode fe43558779 common: Rework timekeeping with native RDTSC and port to linux 2024-02-23 11:30:06 +02:00
georgemoralis ff43fec76a some fs work for openorbis (WIP) 2024-01-26 18:01:27 +02:00
georgemoralis 093ebb568c initial fs implementation (mounting /app0/) 2023-11-19 10:22:46 +02:00
georgemoralis 86bc2d427f moved thread_management to proper package 2023-11-10 17:31:56 +02:00
GPUCode 79c9d9ebd1 kernel: To snake case 2023-11-06 01:19:57 +02:00
GPUCode 099d01f96c common: Move timer to common 2023-11-06 01:17:28 +02:00
GPUCode 369d92fa56 core: Reorganize 2023-11-06 01:11:54 +02:00
GPUCode 1cf032eeb1 cmake: Add directory groups 2023-11-05 17:08:47 +02:00
GPUCode a0b80893db cmake: Update CMakeLists.txt 2023-11-05 14:21:20 +02:00
GPUCode 6e28ac711f cmake: Refactor library management 2023-11-05 13:22:32 +02:00
georgemoralis 6fba3a4380 finished libc refactoring 2023-10-31 19:08:33 +02:00
georgemoralis fd535bae6b libc separate stdlib functions to libc_stdlib 2023-10-31 18:12:05 +02:00
georgemoralis f5526977d3 libc separated string functions to libc_string 2023-10-31 17:32:56 +02:00
georgemoralis bb578ae377 cleanup libc (wip) and separated it to several files 2023-10-31 15:53:46 +02:00
georgemoralis 28a5277e2b reorganized libc package 2023-10-31 15:37:24 +02:00
georgemoralis 11c0d79045 refactoring system service 2023-10-31 14:04:35 +02:00
georgemoralis 7391f7708a user service refactoring 2023-10-31 13:35:52 +02:00
georgemoralis c488b7132d refactored libpad to new package 2023-10-31 09:01:20 +02:00
georgemoralis 93e75481c7 refactoring Core folder to core 2023-10-31 08:47:58 +02:00
georgemoralis cfdc45dfcb file_system reorganized (dummy) 2023-10-30 23:04:57 +02:00
georgemoralis 758ef332f2 implemented sceKernelGetProcessTime 2023-10-30 08:48:52 +02:00
georgemoralis ce2c7a7d01 restored previous timer class 2023-10-29 23:46:18 +02:00
georgemoralis eb67c847a7 removed obsolute fs 2023-10-27 11:07:19 +03:00
GPUCode ba299c4c00 core: Remove Timer in favour of std::chrono 2023-10-22 17:17:43 +03:00
GPUCode e2b1b059ed core: Switch to std threading primitives 2023-10-22 17:10:25 +03:00
georgemoralis e9d2d37aae moved controller to host 2023-10-20 07:25:52 +03:00
georgemoralis 08b0057754
Merge pull request #58 from georgemoralis/fs
filesystem work
2023-10-20 07:07:59 +03:00
wheremyfoodat 077b254a4f Add Result<T, E> type 2023-10-19 18:39:20 +03:00
georgemoralis eb307b9cd9 draft fs design 2023-10-19 17:02:49 +03:00
georgemoralis 84393e6acc initial fs work (logging mostly) 2023-10-19 12:13:09 +03:00
georgemoralis 044628ab13 rewrote libc_cxa 2023-10-16 20:49:52 +03:00
georgemoralis 58721d84a0 refactoring singleton class 2023-10-15 10:03:26 +03:00
georgemoralis 13709121ac
Merge pull request #53 from georgemoralis/pad
pad implementation
2023-10-13 20:42:15 +03:00
georgemoralis da9adf84c0 some work on pad emulation (WIP) 2023-10-13 09:40:59 +03:00
Stefanos Kornilios Mitsis Poiitidis f1ce6fe669 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 d96721e753 implemented some dummy pad, system_service, user_service calls 2023-10-07 12:03:03 +03:00
georgemoralis 67da986e19 some more HLE functions 2023-10-06 21:49:53 +03:00
georgemoralis 551455e56e printf implementation 2023-10-06 14:19:09 +03:00
georgemoralis 1395fd4939 v0.0.1 release files 2023-09-29 08:40:30 +03:00
georgemoralis 23eeec09d0 WIP tilemanager 2023-09-28 18:17:39 +03:00
georgemoralis 1a5dd6cdfe added XXH3_64bits and calculate memory obj hashes 2023-09-26 16:00:13 +03:00
georgemoralis 627c0d1b61 more gpu memory work 2023-09-25 15:08:36 +03:00
georgemoralis f469296b78 some video buffer work 2023-09-22 10:38:21 +03:00
georgemoralis f6388c367e added vulkan extension initialize 2023-09-17 20:01:29 +03:00
georgemoralis e2b6c70f0a fixed vulkan compile 2023-09-16 10:51:09 +03:00
georgemoralis 8954a35eec basic sdl window init 2023-09-12 19:39:08 +03:00
georgemoralis bc7a13370d cleanup VideoOut library code 2023-08-23 23:20:43 +03:00
georgemoralis a8b020b153 initial video out context object 2023-08-22 00:54:44 +03:00
georgemoralis bba76cdf49 sceKernelCreateEqueue implemented 2023-08-17 10:10:13 +03:00
georgemoralis c3135341c2 reorganize function call to proper file 2023-08-15 23:10:45 +03:00
wheremyfoodat a0ab3dbc0c added configuration class 2023-08-14 20:17:01 +03:00
georgemoralis 04e9366cb8 refactoring log class 2023-08-13 16:54:56 +03:00
wheremyfoodat f2b64e892b Add discord RPC 2023-08-11 20:22:26 +03:00
georgemoralis 6399886fea sceVideoOutSetBufferAttribute implementation 2023-08-10 20:14:44 +03:00
georgemoralis 3e1386666b threading part 1 2023-08-09 10:31:18 +03:00
georgemoralis 25e1095c7e implemented sceKernelMapDirectMemory 2023-08-08 22:24:17 +03:00
georgemoralis c412a5cb0b aligned memory allocation using VirtualAlloc2 2023-08-07 18:16:26 +03:00
georgemoralis 3cb89c4b5c refactoring virtual_memory 2023-08-06 22:52:20 +03:00
georgemoralis 1e57ccc6ec refactoring 2023-08-04 11:33:00 +03:00
georgemoralis 7b7a659ba9 forgot cmake 2023-08-03 13:05:36 +03:00
wheremyfoodat 3e60a67785 general refactoring and coding format fixes 2023-08-03 12:25:25 +03:00
georgemoralis c0e1ace5fc more refactoring 2023-08-02 15:16:00 +03:00
georgemoralis 7773e11c2d refactoring 2023-08-02 13:51:10 +03:00
georgemoralis a6e1cf43d7 Refactoring PhysicalMemory 2023-08-02 08:41:41 +03:00
georgemoralis dcac8c1661 sceKernelAllocateDirectMemory should be ok for now 2023-08-01 17:59:08 +03:00
georgemoralis 770f743a49 ugly PhysicalMemory 2023-08-01 17:02:26 +03:00
georgemoralis 0e1ca354a9 Added Thread class 2023-08-01 12:49:57 +03:00
georgemoralis 692759099f improved StringUtil algo + some PhysicalMemory work 2023-08-01 00:42:49 +03:00
georgemoralis 441471370e some memory functions (videoout_basic now reaches sceKernelAllocateDirectMemory which is WIP) 2023-07-27 13:36:47 +03:00
georgemoralis 2b9aaff641 portable debugbreak
ευχαριστώ ροδάκινε

Co-Authored-By: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>
2023-07-24 13:05:57 +03:00
georgemoralis ce95520f38 some pthread work nothing exciting 2023-07-18 18:54:46 +03:00
georgemoralis f03c1a5fb4 initial thread management files 2023-07-17 23:46:25 +03:00
georgemoralis 5180a282ed updates submodules to latest 2023-07-17 23:19:33 +03:00
georgemoralis 063a689812 patching more dummy functions 2023-07-13 12:56:36 +03:00
georgemoralis 20c0960cc6 dummy timer class 2023-06-29 13:17:05 +03:00
georgemoralis 79a6464c58 sample hle function loading (libc) 2023-06-28 20:15:19 +03:00
georgemoralis e0cee2d7fd started work on libraries linking 2023-06-26 20:45:16 +03:00
georgemoralis b8c542805f Symbol resolver added 2023-06-26 18:12:19 +03:00
Esdras Tarsis 1e57195ded Add initial Linux support. 2023-06-22 22:48:55 -03:00
georgemoralis 8acfc3d557 nid names resolver 2023-06-21 18:14:52 +03:00
georgemoralis cc34a85c54 more symbols work and refactoring 2023-06-19 07:51:56 +03:00
georgemoralis f333098231 more progress on symbols decoding 2023-06-18 17:54:22 +03:00
georgemoralis dfc234f363 initial disasm class using zydis 2023-05-30 13:33:52 +03:00
georgemoralis a09e2eb65a initial work on linker 2023-05-23 07:48:25 +03:00
georgemoralis 5f0b15e2fa draft work on memory allocation 2023-05-17 19:29:05 +03:00
georgemoralis 81ca77a464 initial work on loggin class 2023-05-16 19:31:53 +03:00
georgemoralis 45420b340e cmake : copy sdl3.dll to directory where exe exists (since sdl3 is shared library) 2023-05-10 22:22:46 +03:00
georgemoralis dda7020ef4 imgui elfviewer window . first draft 2023-05-03 19:40:47 +03:00
georgemoralis f35f7b62cd we can now load elf and imgui. 2023-05-02 22:10:49 +03:00
georgemoralis 72bdf22035 added spdlog library 2023-05-02 22:10:49 +03:00
georgemoralis f998469730 added fmt library 2023-05-02 22:10:49 +03:00
georgemoralis 222d0204db first try with cmake and imgui 2023-05-02 22:10:49 +03:00