Commit graph

401 commits

Author SHA1 Message Date
georgemoralis 98f773b51e video_out fixes for openBor 2023-10-15 00:31:42 +03:00
georgemoralis 0762f54656 libc strcmp,mallon,strlen implementation 2023-10-15 00:23:01 +03:00
Stefanos Kornilios Mitsis Poiitidis 5570fab8c6 Stubs: Log nids for unknown ones 2023-10-14 19:07:38 +03:00
georgemoralis 661e2e13f9 Merge pull request #53 from georgemoralis/pad
pad implementation
2023-10-13 20:42:15 +03:00
georgemoralis 01e90a85d3 map for dpad keys to emulator 2023-10-13 20:41:03 +03:00
georgemoralis 718d921aa4 pad somehow working 2023-10-13 17:44: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 3b38e27465 added pad functions parameters 2023-10-09 20:39:12 +03:00
georgemoralis ab2e3b3c31 misc 2023-10-09 16:54:10 +03:00
georgemoralis 768972dc89 _ZdlPv , _Znwm needed for breakout homebrew 2023-10-09 12:31:31 +03:00
georgemoralis 04b2eb648d 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 34df1e8e64 implemented sceVideoOutIsFlipPending 2023-10-07 17:25:08 +03:00
georgemoralis dbc7a76934 added rand in libc 2023-10-07 12:10:55 +03:00
georgemoralis e748468ab1 implemented some dummy pad, system_service, user_service calls 2023-10-07 12:03:03 +03:00
georgemoralis ed11e09cdf partial fix buffer_size for tilemode 1 2023-10-06 22:03:59 +03:00
georgemoralis 59ec120563 some more HLE functions 2023-10-06 21:49:53 +03:00
georgemoralis 394922bf77 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 37805399d8 libc cleanups 2023-10-06 16:05:34 +03:00
georgemoralis 1ba106ccd4 small adjustments to printf 2023-10-06 14:46:12 +03:00
georgemoralis dc72fae8c6 printf implementation 2023-10-06 14:19:09 +03:00
georgemoralis 34264eb6aa adapting va_arg parameters of printf 2023-10-06 13:33:45 +03:00
georgemoralis 54845c7e53 printf implementation from vita3k (not yet adapted) 2023-10-06 12:46:28 +03:00
georgemoralis e035a2c5ab partial printf , hello world demo (not from OpenOrbis) works 2023-10-05 18:38:36 +03:00
Stefanos Kornilios Mitsis Poiitidis 18514ed7dc 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 9219fc22eb dummy libc printf call 2023-10-01 16:29:48 +03:00
wheremyfoodat 61cbb0591c Use cstdint in types.h 2023-09-29 14:40:26 +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 b4b98ae60d more work on graphics . tiles are not yet supported 2023-09-27 22:47:53 +03:00
georgemoralis 1530a3d94c more on buffer rendering, added vulkan command pool 2023-09-27 15:15:18 +03:00
georgemoralis c62a4532b6 preparing for drawing 2023-09-27 09:26:50 +03:00
georgemoralis fcafb8fa63 update gpu memory function 2023-09-27 08:34:02 +03:00
georgemoralis ff83e22027 finished gpu buffer creation 2023-09-27 07:45:05 +03:00
georgemoralis fa3372bda7 small adjustments 2023-09-26 20:40:02 +03:00
georgemoralis a70a23e1ca even more work on videoOutbuffer 2023-09-26 20:08:03 +03:00
georgemoralis 432c89d9db more work on creating videoOutBuffer object 2023-09-26 18:56:08 +03:00
georgemoralis e77e97fb98 added XXH3_64bits and calculate memory obj hashes 2023-09-26 16:00:13 +03:00
georgemoralis fcbffd6c8f more abstract memoryCreateObj 2023-09-26 03:46:25 +03:00
georgemoralis 5590ffdb55 more gpu memory work 2023-09-25 15:08:36 +03:00
georgemoralis ea5bdbeaec gpumemory works 2023-09-25 12:04:40 +03:00
georgemoralis 8d48d91fcf even more work on video buffers 2023-09-25 00:06:04 +03:00
georgemoralis 3ca9569acd some video buffer work 2023-09-22 10:38:21 +03:00
georgemoralis 88785e2c54 fixed some silly issues 2023-09-22 00:05:00 +03:00
georgemoralis 469b07b9c3 almost finished vulkan init 2023-09-21 23:48:16 +03:00
georgemoralis bd6a382529 vulkanCreateQueues 2023-09-21 18:20:13 +03:00
georgemoralis f6c6f8a1c0 vulkan : createDevice 2023-09-21 12:59:48 +03:00
georgemoralis 984bef4bc9 Finished vulkanFindQueues 2023-09-21 12:41:51 +03:00
georgemoralis 34c2211e0d more work on vulkan queues 2023-09-20 14:19:20 +03:00
georgemoralis 01671c408d misc 2023-09-19 17:13:37 +03:00
georgemoralis 5cbb3bff69 Added vulkanGetSurfaceCapabilities 2023-09-19 14:02:40 +03:00
georgemoralis 8e76d6b94d some vulkan queue work 2023-09-19 09:15:59 +03:00
georgemoralis 02004efcd0 even more vulkan init 2023-09-18 14:52:16 +03:00
georgemoralis 2f3ee01e72 more vulkan init progress 2023-09-17 23:38:16 +03:00
georgemoralis 4420d80548 added vulkan extension initialize 2023-09-17 20:01:29 +03:00
georgemoralis 38c19b1af8 fixed tiling mode checking 2023-09-16 23:05:57 +03:00
georgemoralis ecddc5f0da fixed vulkan compile 2023-09-16 10:51:09 +03:00
georgemoralis a173b73ade more to buffers 2023-09-16 00:03:11 +03:00
georgemoralis 308d3d1065 Initial sceVideoOutRegisterBuffers function (added ErrorCodes returns) 2023-09-15 23:13:49 +03:00
georgemoralis 7a82c976bf small fixes 2023-09-15 14:40:03 +03:00
georgemoralis ed96ee3ac4 better event handling 2023-09-14 18:47:42 +03:00
georgemoralis 1a2646f52c initial work on sdl events 2023-09-14 16:49:47 +03:00
georgemoralis 2382619cba basic sdl window init 2023-09-12 19:39:08 +03:00
georgemoralis e49db94b04 event queue events now process nicely 2023-09-11 13:14:13 +03:00
georgemoralis 40c71e31d0 sceVideoOutSubmitFlip implementation 2023-09-10 12:59:21 +03:00
georgemoralis 7c317da14a finished sceKernelWaitEqueue implementation 2023-09-10 01:06:14 +03:00
georgemoralis 7339d3eeb2 initial sceKernelWaitEqueue implementation (WIP) 2023-09-08 08:28:01 +03:00
georgemoralis d3a002ec22 sceVideoOutGetFlipStatus implementation 2023-09-06 13:45:49 +03:00
georgemoralis d945e095bd fixing build 2023-09-05 15:26:03 +03:00
georgemoralis f48ce33c31 sceVideoOutSetFlipRate,sceVideoOutGetResolutionStatus implementation 2023-09-05 15:14:43 +03:00
georgemoralis 9eff187e2b more completed (but not finished) sceVideoOutAddFlipEvent 2023-09-05 14:28:52 +03:00
wheremyfoodat 29fdb88e11 fixing @georgemoralis code 2023-09-05 14:01:47 +03:00
georgemoralis 1595ef20d9 WIP sceVideoOutAddFlipEvent implementation 2023-09-05 09:13:14 +03:00
georgemoralis 2a9e3b4d75 cleanup VideoOut library code 2023-08-23 23:20:43 +03:00
georgemoralis c2f12cd128 sceVideoOutOpen is not dummy now 2023-08-23 00:02:24 +03:00
georgemoralis dc3f704386 implemented sceVideoOutOpen 2023-08-22 23:59:59 +03:00
georgemoralis bb70b7af53 initial video out context object 2023-08-22 00:54:44 +03:00
georgemoralis cea030dc3e SceVideoOutVblankStatus struct 2023-08-21 20:44:53 +03:00
georgemoralis 79dfac178d some sceVideoOut work (mostly dummy work) 2023-08-21 14:25:11 +03:00
georgemoralis e72e933662 small logging fix 2023-08-18 11:22:01 +03:00
georgemoralis 28a5ddbe21 fixed logging in elf 2023-08-18 10:49:51 +03:00
georgemoralis 3aa62a59d2 removed some debug code 2023-08-17 10:11:50 +03:00
georgemoralis b473d6e3e6 sceKernelCreateEqueue implemented 2023-08-17 10:10:13 +03:00
georgemoralis aca9aee7be configurable loglevel in config file 2023-08-16 10:34:04 +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 b67e7460e2 improvements in logging 2023-08-14 01:24:03 +03:00
georgemoralis b0f8aadd18 log class : added color output based on log levels (WIP) 2023-08-13 17:33:50 +03:00
georgemoralis c37067641d refactoring log class 2023-08-13 16:54:56 +03:00
georgemoralis a3c6af99b8 remove log for renaming to lowercase 2023-08-13 16:46:59 +03:00
georgemoralis 470699a41a using our own application id for discord 2023-08-12 18:47:37 +03:00
georgemoralis f62f2c767f better place to init discordRPC 2023-08-12 01:02:42 +03:00
wheremyfoodat f6d3ea4253 Add discord RPC 2023-08-11 20:22:26 +03:00
georgemoralis 011e2dffc3 proper variable naming 2023-08-10 21:30:35 +03:00
georgemoralis d0f4788647 sceVideoOutSetBufferAttribute attribute->option value 2023-08-10 20:20:42 +03:00
georgemoralis 27df587d7f sceVideoOutSetBufferAttribute implementation 2023-08-10 20:14:44 +03:00
georgemoralis 200e5933ad threading working ,fixed a big in sceKernelMapDirectMemory 2023-08-09 11:42:50 +03:00
georgemoralis e1693e28c5 threading part 1 2023-08-09 10:31:18 +03:00
wheremyfoodat d4b8a2ee17 name conversions fixes 2023-08-08 22:44:01 +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 84a9f9bb16 initial work on sceKernelMapDirectMemory 2023-08-03 14:18:55 +03:00
georgemoralis be4ce90b50 recommit debug.h 2023-08-03 13:43:42 +03:00
georgemoralis 016b5a4a76 git doesn't understand namechange 2023-08-03 13:43:25 +03:00
georgemoralis 55c8921088 improved logging in sceKernelAllocateDirectMemory 2023-08-03 13:27:07 +03:00
georgemoralis 1f1d8af940 added more proper and faster hex logging conversion 2023-08-03 13:16:49 +03:00
georgemoralis 3effaa2733 removed debug code 2023-08-03 13:06:23 +03:00
georgemoralis bd93b1f84d memory management refactoring 2023-08-03 13:05:13 +03:00
wheremyfoodat 582e27b729 general refactoring and coding format fixes 2023-08-03 12:25:25 +03:00
wheremyfoodat 1e52636259 proper timer class placeholders 2023-08-03 12:11:47 +03:00
georgemoralis 1dbc6685b2 placeholder for making Memory and Timer classes portable 2023-08-03 11:29:14 +03:00
georgemoralis ed464903d7 print memory types enum value 2023-08-03 11:13:08 +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
wheremyfoodat 7d5f53cd95 name conversions 2023-08-02 13:11:09 +03:00
georgemoralis 4d87ac2143 Refactoring PhysicalMemory 2023-08-02 08:41:41 +03:00
georgemoralis 497accb009 PhysicalMemory is now singleton 2023-08-02 08:04:09 +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 9b6101e067 improvements in sceKernelAllocateDirectMemory and function logging 2023-07-27 17:56:57 +03:00
wheremyfoodat 4384c38c35 User-defined literals 2023-07-27 15:09:52 +03:00
georgemoralis ccd86c929e some memory functions (videoout_basic now reaches sceKernelAllocateDirectMemory which is WIP) 2023-07-27 13:36:47 +03:00
georgemoralis 12b880df99 some dummy HLE functions and implementations in libc 2023-07-26 23:52:26 +03:00
georgemoralis d2b524c2db some constants defines 2023-07-26 15:13:40 +03:00
georgemoralis c2997f7a10 stubbed Assert function . should fix #26 2023-07-26 13:18:10 +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 802e72a588 added more PS4_SYSV_ABI codes 2023-07-21 14:53:19 +03:00
georgemoralis 04d3ee9a3f Added sysv_abi , now parameters in sceVideoOutOpen is correct 2023-07-21 08:03:36 +03:00
georgemoralis 118b15de67 added atexit() HLE function , sceVideoOutOpen appears to get invalid parameters 2023-07-20 17:53:51 +03:00
georgemoralis 4432f289ad we can reach atexit() function as well 2023-07-20 12:41:41 +03:00
georgemoralis 3b53e4781a we can now execute code (reaches init_env() function ) 2023-07-20 12:18:43 +03:00
georgemoralis 34a4ea3b44 more pthread progress added init for main Thread 2023-07-20 11:20:11 +03:00
wheremyfoodat 3bd30c6641 Fix compilation error maybe 2023-07-18 19:28:28 +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 61d52efb73 all function for video out demo should resolve now 2023-07-17 13:53:27 +03:00
georgemoralis 1bf467aa82 more dummy GnmDriver function calls 2023-07-17 13:39:00 +03:00
georgemoralis 7216413a03 more dummy patching functions 2023-07-14 14:29:13 +03:00
georgemoralis 51cfddb77d patching sceVideoOut functions 2023-07-13 18:36:03 +03:00
georgemoralis 152c581dc5 patching more dummy functions 2023-07-13 12:56:36 +03:00
georgemoralis 32973f1b31 some missing nid names from videoout_basic demo 2023-07-12 14:44:37 +03:00
georgemoralis c487052f0b resolving relocate function and patching them (successfully done one :D) 2023-07-11 18:50:29 +03:00
georgemoralis 11a958ba54 some more work on linker and added some more needed (but not currently used) memory functions 2023-07-10 14:52:14 +03:00
georgemoralis 87c5ce173c kalitero usage minima sto main.cpp . Ola einai modules alla den tha katalaboun 2023-07-08 21:06:10 +03:00
Stefanos Kornilios Mitsis Poiitidis 4ae5300e1a main: validate arguments 2023-07-07 13:54:44 +03:00
Stefanos Kornilios Mitsis Poiitidis 61984bf92b linux: Fix build 2023-07-07 13:49:46 +03:00
georgemoralis 1ed5fcf329 progress in relocations 2023-07-06 21:55:41 +03:00
georgemoralis fcae84df9d initial work on relocations 2023-07-04 18:34:23 +03:00
georgemoralis c15e059e74 improved memory_alloc function 2023-07-04 12:29:28 +03:00
georgemoralis 10472026b2 small fix 2023-06-29 13:31:07 +03:00
georgemoralis dffccbfcff added windows specific timer class 2023-06-29 13:20:34 +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 90182f1f63 elf symbols , bind ,type ,visibility 2023-06-19 06:58:22 +03:00
georgemoralis dc2eba1713 more progress on symbols decoding 2023-06-18 17:54:22 +03:00
georgemoralis 09ab2b1752 encode id64 for modules,libraries 2023-06-14 07:47:44 +03:00
georgemoralis 2e4321cba0 supporting self segments loading 2023-06-13 19:05:06 +03:00
georgemoralis 9331828f29 Initial symbol loading 2023-06-13 07:43:58 +03:00
georgemoralis 462f4b4913 DT_SCE_IMPORT_LIB,DT_SCE_ORIGINAL_FILENAME,DT_SCE_MODULE_INFO added. Dynamic loader should be ok for now 2023-06-12 08:16:20 +03:00
georgemoralis d3baf0680b Added DT_OS_NEEDED_MODULE 2023-06-11 15:35:04 +03:00
georgemoralis fa76be96bd Added DT_DEBUG, DT_TEXTREL,DT_FLAGS,DT_NEEDED 2023-06-09 18:10:40 +03:00
georgemoralis a319ce2db3 added DT_INIT_ARRAY, DT_FINI_ARRAY,DT_INIT_ARRAYSZ,DT_FINI_ARRAYSZ,DT_PREINIT_ARRAY,DT_PREINIT_ARRAYSZ,DT_SCE_SYMENT 2023-06-09 13:37:46 +03:00
georgemoralis baee02e2e7 Added DT_SCE_JMPREL,DT_SCE_PLTRELSZ,DT_SCE_PLTREL,DT_SCE_RELA,DT_SCE_RELASZ,DT_SCE_RELAENT 2023-06-09 11:37:18 +03:00
georgemoralis f154ee3716 added DT_INIT.DT_FINI,DT_OS_PLTGOT,DT_OS_SYMTAB,DT_OS_SYMTABSZ 2023-06-08 19:05:03 +03:00
georgemoralis d9438fff45 parsing DT_OS_HASHZ, DT_OS_STRTAB , DT_OS_STRSZ for dynamic loader 2023-06-08 13:25:24 +03:00
georgemoralis 95f00189f8 initial dynamic loader , parsing DT_HASH atm 2023-06-08 12:51:11 +03:00
georgemoralis 1d5cfb89ac simplify main (not loading imgui and sdl for the moment) 2023-06-08 11:58:29 +03:00
georgemoralis c1c1af0a16 some more playing with zydis 2023-05-30 16:27:11 +03:00
georgemoralis e55648ea62 fixed typo in Disassembler 2023-05-30 13:39:08 +03:00
georgemoralis 5b6df9042b initial disasm class using zydis 2023-05-30 13:33:52 +03:00
georgemoralis eb8a5b704e linker : loading PT_DYNAMIC , PT_DYNAMIC data 2023-05-26 19:22:43 +03:00
georgemoralis 1893e8be3b segments loading (only elf atm) 2023-05-25 18:08:10 +03:00
georgemoralis 985bbf342d changed hex->decimal in size variables output 2023-05-25 14:25:52 +03:00
georgemoralis 4e67d4048c more progress on module to memory loading 2023-05-25 13:16:53 +03:00
georgemoralis 5cf41123a8 more work on linker , closer to load to memory 2023-05-23 19:39:24 +03:00
georgemoralis 62493367ae some more progress on linker , elf is now load from there 2023-05-23 10:47:56 +03:00
georgemoralis 61e7d65490 initial work on linker 2023-05-23 07:48:25 +03:00
georgemoralis 1d2d06e02e fix on loading elf file instead of self 2023-05-22 13:58:41 +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 a831f01ce3 elfviewer : don't display section header if they don't exist (seems like commercial games doesn't have section headers) 2023-05-14 17:43:45 +03:00
georgemoralis b0a560282c elfviewer : detailed program headers info 2023-05-13 10:00:22 +03:00
georgemoralis fbc9e5cc02 elf headers and elf program headers in imgui elfviewer 2023-05-10 22:21:34 +03:00
georgemoralis 185d981141 elfview imgui : added segment headers 2023-05-08 12:15:28 +03:00
georgemoralis c81ef5468d SELF header display on imgui elf window 2023-05-06 11:35:42 +03:00
georgemoralis d63a28f63d more elf tree progress 2023-05-05 09:29:16 +03:00
georgemoralis 9af11c4d20 small ElfViewer display updates 2023-05-03 19:56:18 +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