Commit Graph

400 Commits

Author SHA1 Message Date
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
georgemoralis 813385caa3 improved logging in sceKernelAllocateDirectMemory 2023-08-03 13:27:07 +03:00
georgemoralis ba8b614afc added more proper and faster hex logging conversion 2023-08-03 13:16:49 +03:00
georgemoralis a135981fdd removed debug code 2023-08-03 13:06:23 +03:00
georgemoralis b7420e7daa memory management refactoring 2023-08-03 13:05:13 +03:00
wheremyfoodat 3e60a67785 general refactoring and coding format fixes 2023-08-03 12:25:25 +03:00
wheremyfoodat 30c1062893 proper timer class placeholders 2023-08-03 12:11:47 +03:00
georgemoralis 1cd0489dfe placeholder for making Memory and Timer classes portable 2023-08-03 11:29:14 +03:00
georgemoralis 0f85cbe54f print memory types enum value 2023-08-03 11:13:08 +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
wheremyfoodat 13ff3588fd name conversions 2023-08-02 13:11:09 +03:00
georgemoralis a6e1cf43d7 Refactoring PhysicalMemory 2023-08-02 08:41:41 +03:00
georgemoralis 7bc4fda33e PhysicalMemory is now singleton 2023-08-02 08:04:09 +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 818e0b7404 improvements in sceKernelAllocateDirectMemory and function logging 2023-07-27 17:56:57 +03:00
wheremyfoodat c0c6024e2c User-defined literals 2023-07-27 15:09:52 +03:00
georgemoralis 441471370e some memory functions (videoout_basic now reaches sceKernelAllocateDirectMemory which is WIP) 2023-07-27 13:36:47 +03:00
georgemoralis 5b0e627dc0 some dummy HLE functions and implementations in libc 2023-07-26 23:52:26 +03:00
georgemoralis 7dc1f0a47b some constants defines 2023-07-26 15:13:40 +03:00
georgemoralis d7247f9e8d stubbed Assert function . should fix #26 2023-07-26 13:18:10 +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 5706e1be1b added more PS4_SYSV_ABI codes 2023-07-21 14:53:19 +03:00
georgemoralis 28aad0a5dc Added sysv_abi , now parameters in sceVideoOutOpen is correct 2023-07-21 08:03:36 +03:00
georgemoralis d8140ca016 added atexit() HLE function , sceVideoOutOpen appears to get invalid parameters 2023-07-20 17:53:51 +03:00
georgemoralis 98e9d970a3 we can reach atexit() function as well 2023-07-20 12:41:41 +03:00
georgemoralis d641f7b6c4 we can now execute code (reaches init_env() function ) 2023-07-20 12:18:43 +03:00
georgemoralis cc596083f5 more pthread progress added init for main Thread 2023-07-20 11:20:11 +03:00
wheremyfoodat bb2de743b7 Fix compilation error maybe 2023-07-18 19:28:28 +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 ecccead408 all function for video out demo should resolve now 2023-07-17 13:53:27 +03:00
georgemoralis 35e21f9a8c more dummy GnmDriver function calls 2023-07-17 13:39:00 +03:00
georgemoralis d9da9ade78 more dummy patching functions 2023-07-14 14:29:13 +03:00
georgemoralis 3cbbdd5b2f patching sceVideoOut functions 2023-07-13 18:36:03 +03:00
georgemoralis 063a689812 patching more dummy functions 2023-07-13 12:56:36 +03:00
georgemoralis 0ac4032d00 some missing nid names from videoout_basic demo 2023-07-12 14:44:37 +03:00
georgemoralis 81906c271a resolving relocate function and patching them (successfully done one :D) 2023-07-11 18:50:29 +03:00
georgemoralis 42dc535638 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 8f36540386 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 0aaf516358 main: validate arguments 2023-07-07 13:54:44 +03:00
Stefanos Kornilios Mitsis Poiitidis b211342d8a linux: Fix build 2023-07-07 13:49:46 +03:00
georgemoralis 0edc265dc2 progress in relocations 2023-07-06 21:55:41 +03:00
georgemoralis 6717482662 initial work on relocations 2023-07-04 18:34:23 +03:00
georgemoralis bc2facaee4 improved memory_alloc function 2023-07-04 12:29:28 +03:00
georgemoralis 9103a545a2 small fix 2023-06-29 13:31:07 +03:00
georgemoralis f5dd2e83a9 added windows specific timer class 2023-06-29 13:20:34 +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 11bf9d7928 elf symbols , bind ,type ,visibility 2023-06-19 06:58:22 +03:00
georgemoralis f333098231 more progress on symbols decoding 2023-06-18 17:54:22 +03:00
georgemoralis cae39ccf23 encode id64 for modules,libraries 2023-06-14 07:47:44 +03:00
georgemoralis bcc6288e9e supporting self segments loading 2023-06-13 19:05:06 +03:00
georgemoralis cfa68f2f40 Initial symbol loading 2023-06-13 07:43:58 +03:00
georgemoralis 0682830e2f 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 6fcfe38e26 Added DT_OS_NEEDED_MODULE 2023-06-11 15:35:04 +03:00
georgemoralis 6e0cf378d2 Added DT_DEBUG, DT_TEXTREL,DT_FLAGS,DT_NEEDED 2023-06-09 18:10:40 +03:00
georgemoralis 94dff9b980 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 dd4dddded3 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 d995a0e286 added DT_INIT.DT_FINI,DT_OS_PLTGOT,DT_OS_SYMTAB,DT_OS_SYMTABSZ 2023-06-08 19:05:03 +03:00
georgemoralis 8932be618b parsing DT_OS_HASHZ, DT_OS_STRTAB , DT_OS_STRSZ for dynamic loader 2023-06-08 13:25:24 +03:00
georgemoralis 672e2b2d77 initial dynamic loader , parsing DT_HASH atm 2023-06-08 12:51:11 +03:00
georgemoralis e02c0a9398 simplify main (not loading imgui and sdl for the moment) 2023-06-08 11:58:29 +03:00
georgemoralis 66ea5329d2 some more playing with zydis 2023-05-30 16:27:11 +03:00
georgemoralis 5a72e51f4e fixed typo in Disassembler 2023-05-30 13:39:08 +03:00
georgemoralis dfc234f363 initial disasm class using zydis 2023-05-30 13:33:52 +03:00
georgemoralis 43033d6bf6 linker : loading PT_DYNAMIC , PT_DYNAMIC data 2023-05-26 19:22:43 +03:00
georgemoralis cc471a8535 segments loading (only elf atm) 2023-05-25 18:08:10 +03:00
georgemoralis 1ad70366c6 changed hex->decimal in size variables output 2023-05-25 14:25:52 +03:00
georgemoralis e87b793083 more progress on module to memory loading 2023-05-25 13:16:53 +03:00
georgemoralis 5d0a5af495 more work on linker , closer to load to memory 2023-05-23 19:39:24 +03:00
georgemoralis b27942c46b some more progress on linker , elf is now load from there 2023-05-23 10:47:56 +03:00
georgemoralis a09e2eb65a initial work on linker 2023-05-23 07:48:25 +03:00
georgemoralis 76987fb932 fix on loading elf file instead of self 2023-05-22 13:58:41 +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 08f8da2fea 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 98068809aa elfviewer : detailed program headers info 2023-05-13 10:00:22 +03:00
georgemoralis f2198ef27d elf headers and elf program headers in imgui elfviewer 2023-05-10 22:21:34 +03:00
georgemoralis 6511b280cf elfview imgui : added segment headers 2023-05-08 12:15:28 +03:00
georgemoralis cda7c67e36 SELF header display on imgui elf window 2023-05-06 11:35:42 +03:00
georgemoralis 24e68b58f5 more elf tree progress 2023-05-05 09:29:16 +03:00
georgemoralis 701278348d small ElfViewer display updates 2023-05-03 19:56:18 +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