Commit Graph

445 Commits

Author SHA1 Message Date
Stefanos Kornilios Mitsis Poiitidis a58289a353 Merge branch 'TLS_works' of github.com:georgemoralis/shadPS4 into TLS_works 2024-01-27 17:00:12 +02:00
Stefanos Kornilios Mitsis Poiitidis 6de4736e50 skip over 0x66 prefixes in TLS 2024-01-27 16:59:59 +02:00
georgemoralis ff43fec76a some fs work for openorbis (WIP) 2024-01-26 18:01:27 +02:00
georgemoralis 57ddf939d4 orbis weird sceVideoOut calls 2024-01-24 14:46:02 +02:00
Stefanos Kornilios Mitsis Poiitidis 724c56d8aa Basic TLS with patching + int 0x80 2024-01-20 14:29:23 +02:00
georgemoralis af18453950 initial PT_TLS support 2023-11-21 17:27:11 +02:00
georgemoralis b6d98d4b72 some cleanups 2023-11-21 16:54:10 +02:00
georgemoralis 4f6dc8fddb functions libkernel to get openrorbis working (without tls) 2023-11-19 12:55:07 +02:00
georgemoralis f57f668c92 small correction 2023-11-19 10:48:59 +02:00
georgemoralis 093ebb568c initial fs implementation (mounting /app0/) 2023-11-19 10:22:46 +02:00
georgemoralis 3e8cd57986 scePthreadCond functions 2023-11-16 13:31:12 +02:00
georgemoralis 1316443c59 initial ScePthreadCond works 2023-11-16 09:14:10 +02:00
georgemoralis 776a680e85 prefix in libc functions to avoid messing with std ones 2023-11-16 09:13:50 +02:00
georgemoralis cad5ac34b0 some threadman fixes 2023-11-16 08:49:26 +02:00
georgemoralis dde91c1c4d
Merge pull request #71 from georgemoralis/undertale
Undertale-mutexes
2023-11-12 20:26:51 +02:00
georgemoralis f3c189feb3 cleanup createMutex 2023-11-12 20:23:42 +02:00
georgemoralis 8f8f0757af fixed issue in scePthreadAttrSetschedpolicy 2023-11-12 15:09:18 +02:00
georgemoralis ae12f351f8 better posix errors 2023-11-12 13:23:35 +02:00
wheremyfoodat e8c425850e some adjustments 2023-11-12 10:57:50 +02:00
georgemoralis 7e6c741ed7 added sceSystemServiceGetStatus 2023-11-11 16:25:53 +02:00
wheremyfoodat 21c8150841
[Libc] Add getptolower/getptoupper/getpctype 2023-11-11 12:28:15 +02:00
georgemoralis 7f0cf8784b improved mutex creation 2023-11-11 12:13:43 +02:00
georgemoralis 402ee7d006 init mutex if it doesn't exist when trying to lock (found in openorbis) 2023-11-11 10:49:44 +02:00
georgemoralis dbaf38dc7d mutex debugging log 2023-11-11 10:01:16 +02:00
georgemoralis 5f825fc8a8 implemented posix error return codes 2023-11-11 09:45:47 +02:00
georgemoralis 7fcea3277d some mutexlock , mutexunlock implementations 2023-11-10 23:30:28 +02:00
georgemoralis 11edfecb75 some dummy mutexlock-unlock 2023-11-10 21:08:32 +02:00
georgemoralis a10af46153 some refactoring on thread class 2023-11-10 20:51:02 +02:00
georgemoralis 91885e8a41 added sceMutexInit functions 2023-11-10 19:52:41 +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 7bccfeb8cc emulator: Use fmt::format instead of snprintf 2023-11-05 17:14:50 +02:00
GPUCode 303f086b14 common: Move classes to common namespace 2023-11-05 16:56:28 +02:00
GPUCode 17aefc1aef src: Move certain headers in common 2023-11-05 13:41:26 +02:00
GPUCode 6e28ac711f cmake: Refactor library management 2023-11-05 13:22:32 +02:00
georgemoralis c126925dd9 libc fprintf implementation for stdout,stderr case (needed from undertale) 2023-11-01 13:02:39 +02:00
georgemoralis 7b276e0a08 some HLE implementation for undertale game to process further 2023-11-01 12:40:56 +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 53a8024e43 core renaming 2023-10-31 14:28:42 +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 bdd756a090 log scePadOpen 2023-10-31 09:04:08 +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 6f941c277a reimplemented sceKernelReadTsc in proper package and some abi fixes 2023-10-30 20:22:25 +02:00
georgemoralis 61e8919cf1 pause emu with p button 2023-10-30 14:52:01 +02:00
georgemoralis 0ad40cff1b implemented sceKernelGetProcessTimeCounter , sceKernelGetProcessTimeCounterFrequency 2023-10-30 12:53:52 +02:00
georgemoralis 51dda8e8a5 namespace update 2023-10-30 12:43:39 +02:00
georgemoralis 3602864523 added timestamp in buttons state 2023-10-30 08:57:43 +02:00
georgemoralis 758ef332f2 implemented sceKernelGetProcessTime 2023-10-30 08:48:52 +02:00
georgemoralis f732704b83 implemented fps counter 2023-10-29 23:46:34 +02:00
georgemoralis ce2c7a7d01 restored previous timer class 2023-10-29 23:46:18 +02:00
georgemoralis 1e755d3cfc fixed return in flip() function 2023-10-29 23:36:15 +02:00
georgemoralis adbe725d79 more debugging in elf loader 2023-10-28 09:12:43 +03:00
georgemoralis 4e6bfe1772 switched elf logging to fmt 2023-10-28 08:55:58 +03:00
georgemoralis f1ddf028c2
Update src/Util/log.cpp
Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
2023-10-28 00:09:47 +03:00
georgemoralis 4706b6b4e5
Update src/Util/log.cpp
Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
2023-10-27 20:56:21 +03:00
georgemoralis ff2a9dd37a
Update src/Util/log.cpp
Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
2023-10-27 20:55:18 +03:00
georgemoralis 2f0fec806a log exceptions and flush log file 2023-10-27 18:57:48 +03:00
georgemoralis af3710887c improved logging in elf loader 2023-10-27 18:28:05 +03:00
georgemoralis eb67c847a7 removed obsolute fs 2023-10-27 11:07:19 +03:00
GPUCode 0021e68aab vulkan: Remove orphan new part 2 2023-10-26 23:46:05 +03:00
GPUCode e196e35669 vulkan: Remove orphan new part 1 2023-10-26 23:38:37 +03:00
GPUCode 28819dede1 code: Replace printf/scanf with type safe fmt 2023-10-26 23:29:19 +03:00
GPUCode 33729d634e main: Remove remnants of imgui example 2023-10-26 23:15:11 +03:00
GPUCode f3504b2d25 singleton: Use unique_ptr 2023-10-26 23:13:24 +03:00
GPUCode 7cbe7c762a linker: Eliminate orphan news
* Most of these can just be on the stack, with the rest being std::vectors
2023-10-26 23:07:15 +03:00
GPUCode ca564b928c core: Rework elf loader 2023-10-26 22:55:13 +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 f39744cf62 started 0.0.3 WIP 2023-10-22 00:20:51 +03:00
georgemoralis 1b483f1f03 updated version to v0.0.2 2023-10-21 21:37:17 +03:00
georgemoralis e9d2d37aae moved controller to host 2023-10-20 07:25:52 +03:00
georgemoralis ec362948f4 more draft fs 2023-10-19 17:52:49 +03:00
georgemoralis eb307b9cd9 draft fs design 2023-10-19 17:02:49 +03:00
georgemoralis 90d24c3a3c e_type ET_SCE_DYNAMIC seems to be valid as well 2023-10-19 13:01:20 +03:00
georgemoralis e3effe8c0a few libc (pow ,_Sin ) for ps4nes 2023-10-19 12:27:28 +03:00
georgemoralis 84393e6acc initial fs work (logging mostly) 2023-10-19 12:13:09 +03:00
georgemoralis 189d177692 some libc HLE functions needed for sonic mania 2023-10-17 18:30:09 +03:00
georgemoralis ad83c454a7 atan2f libc HLE 2023-10-17 17:15:08 +03:00
georgemoralis f6c97963bd cleanup gnmDriver 2023-10-16 20:56:43 +03:00
georgemoralis 044628ab13 rewrote libc_cxa 2023-10-16 20:49:52 +03:00
georgemoralis f916fd48b0 sceVideoOutClose implementation (partial) 2023-10-16 14:34:12 +03:00
georgemoralis 675193fec3 vsnprintf implementation 2023-10-16 08:55:28 +03:00
Stefanos Kornilios Mitsis Poiitidis fb4f7b79c0 stubs: also log return address 2023-10-15 16:09:38 +03:00
georgemoralis d70c1f3f95 libc , _Fsin , qsort,free,strncpy,memmove HLE calls 2023-10-15 16:03:55 +03:00
georgemoralis 58721d84a0 refactoring singleton class 2023-10-15 10:03:26 +03:00
georgemoralis 0f80805d69 video_out fixes for openBor 2023-10-15 00:31:42 +03:00
georgemoralis c0649b8d24 libc strcmp,mallon,strlen implementation 2023-10-15 00:23:01 +03:00
Stefanos Kornilios Mitsis Poiitidis 470881dc11 Stubs: Log nids for unknown ones 2023-10-14 19:07:38 +03:00
georgemoralis 13709121ac
Merge pull request #53 from georgemoralis/pad
pad implementation
2023-10-13 20:42:15 +03:00
georgemoralis 5a905b0c4f map for dpad keys to emulator 2023-10-13 20:41:03 +03:00
georgemoralis e1b64617a8 pad somehow working 2023-10-13 17:44: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 95f1c14dcf added pad functions parameters 2023-10-09 20:39:12 +03:00
georgemoralis 1e18efcd05 misc 2023-10-09 16:54:10 +03:00
georgemoralis bc6b740ffe _ZdlPv , _Znwm needed for breakout homebrew 2023-10-09 12:31:31 +03:00
georgemoralis 9337e859ac force cpu->gpu sync after flipsubmit . this is not probably correct behaviour but neccesary for niko's homebrew 2023-10-07 17:28:50 +03:00
georgemoralis 372ac5d160 implemented sceVideoOutIsFlipPending 2023-10-07 17:25:08 +03:00
georgemoralis b7e5714990 added rand in libc 2023-10-07 12:10:55 +03:00
georgemoralis d96721e753 implemented some dummy pad, system_service, user_service calls 2023-10-07 12:03:03 +03:00
georgemoralis 03f19c4d13 partial fix buffer_size for tilemode 1 2023-10-06 22:03:59 +03:00
georgemoralis 67da986e19 some more HLE functions 2023-10-06 21:49:53 +03:00
georgemoralis 830542e870
Merge pull request #45 from georgemoralis/libc_HLE_implementations
HLE printf and refactoring to some libc functions
2023-10-06 16:11:10 +03:00
georgemoralis 5a2ee268f8 libc cleanups 2023-10-06 16:05:34 +03:00
georgemoralis e31365aea3 small adjustments to printf 2023-10-06 14:46:12 +03:00
georgemoralis 551455e56e printf implementation 2023-10-06 14:19:09 +03:00
georgemoralis cefd3d95ed adapting va_arg parameters of printf 2023-10-06 13:33:45 +03:00
georgemoralis b9c6d9d395 printf implementation from vita3k (not yet adapted) 2023-10-06 12:46:28 +03:00
georgemoralis 825d38ef31 partial printf , hello world demo (not from OpenOrbis) works 2023-10-05 18:38:36 +03:00
Stefanos Kornilios Mitsis Poiitidis 5094d3044c run_main_entry: Rewrite in asm for stack setup
- Fixes OpenOrbis loading that depends on rsp
  pointing to the argument structure, in addition
  to rdi
2023-10-02 17:26:33 +03:00
georgemoralis 809413a880 dummy libc printf call 2023-10-01 16:29:48 +03:00
wheremyfoodat 7791a8eeed
Use cstdint in types.h 2023-09-29 14:40:26 +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 05fdea61fc more work on graphics . tiles are not yet supported 2023-09-27 22:47:53 +03:00
georgemoralis abe6d39295 more on buffer rendering, added vulkan command pool 2023-09-27 15:15:18 +03:00
georgemoralis 3b853413c7 preparing for drawing 2023-09-27 09:26:50 +03:00
georgemoralis 98ccbe7f30 update gpu memory function 2023-09-27 08:34:02 +03:00
georgemoralis 21120ac0ae finished gpu buffer creation 2023-09-27 07:45:05 +03:00
georgemoralis c6633a511a small adjustments 2023-09-26 20:40:02 +03:00
georgemoralis 512309c8a0 even more work on videoOutbuffer 2023-09-26 20:08:03 +03:00
georgemoralis b14e50904b more work on creating videoOutBuffer object 2023-09-26 18:56:08 +03:00
georgemoralis 1a5dd6cdfe added XXH3_64bits and calculate memory obj hashes 2023-09-26 16:00:13 +03:00
georgemoralis 7570576aa2 more abstract memoryCreateObj 2023-09-26 03:46:25 +03:00
georgemoralis 627c0d1b61 more gpu memory work 2023-09-25 15:08:36 +03:00
georgemoralis 1f0beb0ec3 gpumemory works 2023-09-25 12:04:40 +03:00
georgemoralis 59efa477ce even more work on video buffers 2023-09-25 00:06:04 +03:00
georgemoralis f469296b78 some video buffer work 2023-09-22 10:38:21 +03:00
georgemoralis 12382ddac4 fixed some silly issues 2023-09-22 00:05:00 +03:00
georgemoralis 0859964888 almost finished vulkan init 2023-09-21 23:48:16 +03:00
georgemoralis 3c4716ba5f vulkanCreateQueues 2023-09-21 18:20:13 +03:00
georgemoralis b1d812bb32 vulkan : createDevice 2023-09-21 12:59:48 +03:00
georgemoralis 90dc454440 Finished vulkanFindQueues 2023-09-21 12:41:51 +03:00
georgemoralis 3768dfabfc more work on vulkan queues 2023-09-20 14:19:20 +03:00
georgemoralis 48ae687191 misc 2023-09-19 17:13:37 +03:00
georgemoralis b68f018fad Added vulkanGetSurfaceCapabilities 2023-09-19 14:02:40 +03:00
georgemoralis faf9a03437 some vulkan queue work 2023-09-19 09:15:59 +03:00
georgemoralis 78bafe88fa even more vulkan init 2023-09-18 14:52:16 +03:00
georgemoralis ef6da6bddb more vulkan init progress 2023-09-17 23:38:16 +03:00
georgemoralis f6388c367e added vulkan extension initialize 2023-09-17 20:01:29 +03:00
georgemoralis be4c88a338 fixed tiling mode checking 2023-09-16 23:05:57 +03:00
georgemoralis e2b6c70f0a fixed vulkan compile 2023-09-16 10:51:09 +03:00
georgemoralis 243c0158c1 more to buffers 2023-09-16 00:03:11 +03:00
georgemoralis aacbc4e675 Initial sceVideoOutRegisterBuffers function (added ErrorCodes returns) 2023-09-15 23:13:49 +03:00
georgemoralis 15089ae0b0 small fixes 2023-09-15 14:40:03 +03:00
georgemoralis da2a942415 better event handling 2023-09-14 18:47:42 +03:00
georgemoralis 61280cb6cf initial work on sdl events 2023-09-14 16:49:47 +03:00
georgemoralis 8954a35eec basic sdl window init 2023-09-12 19:39:08 +03:00
georgemoralis ab932e7503 event queue events now process nicely 2023-09-11 13:14:13 +03:00
georgemoralis 0c39b808bf sceVideoOutSubmitFlip implementation 2023-09-10 12:59:21 +03:00
georgemoralis f1b1eacb67 finished sceKernelWaitEqueue implementation 2023-09-10 01:06:14 +03:00
georgemoralis 98090ae42f initial sceKernelWaitEqueue implementation (WIP) 2023-09-08 08:28:01 +03:00
georgemoralis 5b6bbfc327 sceVideoOutGetFlipStatus implementation 2023-09-06 13:45:49 +03:00
georgemoralis fd8dc05313 fixing build 2023-09-05 15:26:03 +03:00
georgemoralis a3bdc9e4cc sceVideoOutSetFlipRate,sceVideoOutGetResolutionStatus implementation 2023-09-05 15:14:43 +03:00
georgemoralis 466cfe96e6 more completed (but not finished) sceVideoOutAddFlipEvent 2023-09-05 14:28:52 +03:00
wheremyfoodat 3a7563ef64 fixing @georgemoralis code 2023-09-05 14:01:47 +03:00
georgemoralis b634d512d3 WIP sceVideoOutAddFlipEvent implementation 2023-09-05 09:13:14 +03:00
georgemoralis bc7a13370d cleanup VideoOut library code 2023-08-23 23:20:43 +03:00
georgemoralis 201294cf18 sceVideoOutOpen is not dummy now 2023-08-23 00:02:24 +03:00
georgemoralis 491e231770 implemented sceVideoOutOpen 2023-08-22 23:59:59 +03:00
georgemoralis a8b020b153 initial video out context object 2023-08-22 00:54:44 +03:00
georgemoralis 0799c59e3f SceVideoOutVblankStatus struct 2023-08-21 20:44:53 +03:00
georgemoralis 59c2deb672 some sceVideoOut work (mostly dummy work) 2023-08-21 14:25:11 +03:00
georgemoralis 5c28ff9ee2 small logging fix 2023-08-18 11:22:01 +03:00
georgemoralis 07d1387bfe fixed logging in elf 2023-08-18 10:49:51 +03:00
georgemoralis c80df0aab9 removed some debug code 2023-08-17 10:11:50 +03:00
georgemoralis bba76cdf49 sceKernelCreateEqueue implemented 2023-08-17 10:10:13 +03:00
georgemoralis c4b072e0e1 configurable loglevel in config file 2023-08-16 10:34:04 +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 6a5308d521 improvements in logging 2023-08-14 01:24:03 +03:00
georgemoralis 5a30f0711e log class : added color output based on log levels (WIP) 2023-08-13 17:33:50 +03:00
georgemoralis 04e9366cb8 refactoring log class 2023-08-13 16:54:56 +03:00
georgemoralis ca291b6573 remove log for renaming to lowercase 2023-08-13 16:46:59 +03:00
georgemoralis 5845257e87 using our own application id for discord 2023-08-12 18:47:37 +03:00
georgemoralis 7b380e0d5f better place to init discordRPC 2023-08-12 01:02:42 +03:00
wheremyfoodat f2b64e892b Add discord RPC 2023-08-11 20:22:26 +03:00
georgemoralis 632e2e16ff proper variable naming 2023-08-10 21:30:35 +03:00
georgemoralis be0e7593ff sceVideoOutSetBufferAttribute attribute->option value 2023-08-10 20:20:42 +03:00
georgemoralis 6399886fea sceVideoOutSetBufferAttribute implementation 2023-08-10 20:14:44 +03:00
georgemoralis e5f2f91a80 threading working ,fixed a big in sceKernelMapDirectMemory 2023-08-09 11:42:50 +03:00
georgemoralis 3e1386666b threading part 1 2023-08-09 10:31:18 +03:00
wheremyfoodat d774ebdaea name conversions fixes 2023-08-08 22:44:01 +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 8b78cc1dec initial work on sceKernelMapDirectMemory 2023-08-03 14:18:55 +03:00
georgemoralis 53ce038893 recommit debug.h 2023-08-03 13:43:42 +03:00
georgemoralis abd3dd4b5a git doesn't understand namechange 2023-08-03 13:43:25 +03:00