Commit graph

5590 commits

Author SHA1 Message Date
bunnei
4910b6f336 added memory mapped region for system mem - sdk demos load a segment here on ELF load 2014-05-15 18:56:28 -04:00
bunnei
3c240abf10 added ability to load AXF files (same as ELF) 2014-05-15 18:54:57 -04:00
bunnei
940330c6e1 completely gutted/refactored threading code to be simpler 2014-05-15 18:27:08 -04:00
bunnei
a7cc430aa4 changed "UID" to "Handle" to be a little more consistent with CTR naming 2014-05-15 18:26:28 -04:00
bunnei
367d63691f - added ThreadContext struct
- cleaned up CreateThread svc
2014-05-15 18:25:56 -04:00
bunnei
b99a5da65b - added helper function for __KernelCreateThread
- added __KernelSwitchToThread for enabling a thread
- added __KernelRotateThreadReadyQueue
2014-05-14 20:50:30 -04:00
bunnei
9f5588725c changed primary thread priority to 0x30 - this is typical, not 0x31 2014-05-14 20:49:27 -04:00
bunnei
4d7f3c74fd added function stubs for EatCycles and ReSchedule 2014-05-14 20:49:02 -04:00
bunnei
0de78eb3c4 fixed thread reset to not set stack address 2014-05-13 23:18:28 -04:00
bunnei
7d078189da various cleanups / remove unused code 2014-05-13 22:29:31 -04:00
bunnei
3838d46b90 added a bunch of threading code, recycled from PPSSPP, with lots of hacks in for 3DS... doesn't really do much yet. Just a jumping off point 2014-05-13 22:00:11 -04:00
bunnei
b87536e82c changed loader to use __KernelLoadExec 2014-05-13 21:58:51 -04:00
bunnei
b5ef630c9c added CreateThread, CreateMutex, and ReleaseMutex SVC stubs (just parameter decoding for now) 2014-05-13 21:58:26 -04:00
bunnei
1583d2b6f3 - added __KernelLoadExec function
- fixed some logging
2014-05-13 21:57:12 -04:00
bunnei
ce4d271a53 added option to set CPSR register to arm_interface 2014-05-11 22:14:13 -04:00
bunnei
6b264518a5 added initial kernel/thread modules 2014-05-09 22:11:18 -04:00
bunnei
b39cd3a64c removed unknown fields from GX_CmdBufferHeader 2014-05-08 17:12:07 -04:00
bunnei
4de763f462 removed unnecessary log message 2014-05-07 21:19:03 -04:00
bunnei
72622a1b5a - removed HLE mem "hack" and replaced with kernel mem region
- added a helper function for getting command buffer for services
- fixed bug where GSP DMA was incorrectly being done in DataSynchronizationBarrier (instead of gsp_TriggerCmdReqQueue)
2014-05-07 21:04:55 -04:00
bunnei
f23e99bb85 added kernel memory to mem_map 2014-05-07 21:01:09 -04:00
bunnei
de36d82dde - added debug logging to syscall.cpp
- added stubbed HLE syscall functions for svc_GetResourceLimit and svc_GetResourceLimitCurrentValues
2014-05-06 23:34:20 -04:00
bunnei
a3a383cb7a added mem_map read for config_mem 2014-05-06 23:32:04 -04:00
bunnei
34dc0a9b07 added config_mem module for HLE of firmware configuration memory settings 2014-05-06 23:29:39 -04:00
bunnei
d1472b816f - disable strict alignment on LDRD/STRD
- handle RD in STREX/STREXB
2014-05-06 21:34:00 -04:00
bunnei
e3ee3e441b commented out useless debug logs that just spammed console 2014-05-06 17:17:00 -04:00
bunnei
f7c6302009 - added CallMCR function to coprocessor HLE module
- moved instruction decoding to coprocessor HLE module
2014-05-01 23:03:50 -04:00
bunnei
c1e71ae1ac fixed include in coprocessor.cpp 2014-05-01 19:21:04 -04:00
bunnei
f043424915 renamed hle "mrc" module to "coprocessor" 2014-05-01 19:20:44 -04:00
bunnei
4ee72869cc - added some function wrappers for HLE
- added stub for SVC CreateAddressArbiter
- added OutputDebugString SVC
2014-05-01 18:50:36 -04:00
bunnei
bb7fcf79fe - added option to load a code.bin file extracted from a CXI file
- updated load launcher.dat function to use ARM11 format hack
2014-04-30 23:50:14 -04:00
bunnei
29da6e9ab5 added a module to load symbol map files for debugging 2014-04-30 23:46:06 -04:00
bunnei
924e7b6af8 fixed a bug where ExeFs code was being incorrectly masked 2014-04-30 23:31:04 -04:00
archshift
704075f04a Fixed indents 2014-04-30 20:13:28 -07:00
archshift
bdc3c99904 Merge commit upstream/master into issue-7-fix 2014-04-30 18:01:12 -07:00
archshift
a7f3ed003d A bit of Cmake love 2014-04-30 16:56:47 -07:00
bunnei
235dddb3f1 added virtual memory map for ExeFS (where ARM11 code is supposed to be loaded) 2014-04-30 18:31:35 -04:00
bunnei
c37390f8e2 reorganized memory regions enum, added regions for ExeFS code 2014-04-30 18:31:24 -04:00
archshift
237d079aad Merge commit upstream/master into issue-7-fix 2014-04-28 19:44:43 -07:00
archshift
b9fc729928 Problematic template functions 2014-04-27 22:23:58 -07:00
bunnei
af921daa4c added virtual address conversion for firmware FW0B 2014-04-27 22:32:51 -04:00
bunnei
a48c6b947d removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class 2014-04-27 18:29:51 -04:00
bunnei
451a14f98c fixed weird spacing 2014-04-27 18:24:54 -04:00
bunnei
f76a60be05 removed commented out line - this was for an unimplemented MRC call, no longer need to leave this here 2014-04-27 18:22:30 -04:00
bunnei
a6c925112a hackish but working way to set the framebuffer location to VRAM (used in ARM11 demos tested thus far, e.g. yeti3DS) 2014-04-27 12:41:25 -04:00
bunnei
b2a6ad52f4 added helper functions to mem_map to convert physical addresses to virtual addresses 2014-04-27 12:40:31 -04:00
bunnei
f0525a1eb4 added code to LCD modules keep track of framebuffer location in FCRAM or VRAM 2014-04-27 12:39:57 -04:00
bunnei
f78794961e - changed HW IO map to use virtual addresses
- added hooks to catch LCD IO read/writes
2014-04-26 14:21:40 -04:00
bunnei
9e047e32d4 added simple GSP GPU ReadHWRegs function to support returning the framebuffer address 2014-04-26 01:48:24 -04:00
bunnei
a272803dcb added preliminary DataSynchronizationBarrier support with simple DMA copy 2014-04-26 01:47:52 -04:00
bunnei
25d595d869 added (fake) physical addresses for where to put framebuffer in VRAM 2014-04-26 01:32:05 -04:00
bunnei
86a515e5ac added vram to memory_map 2014-04-26 01:27:25 -04:00
bunnei
cb0663de51 moved HLE::MRC to its own module, added support for catching data synchronization barrier command 2014-04-25 17:15:19 -04:00
bunnei
6151e26958 added disassembly to unimplemented instruction 2014-04-25 15:57:32 -04:00
bunnei
2672e7d883 removed some cruft 2014-04-25 15:27:47 -04:00
bunnei
e08f242141 fixed bug where svc_ControlMemory was not properly getting passed in parameters 2014-04-25 15:26:27 -04:00
bunnei
890c7261d2 - added preliminary support for svc_MapMemoryBlock
- added shared memory region
- moarrrr cleanups to memory_map
2014-04-24 23:56:06 -04:00
bunnei
b7cd4c9e90 added functions to map Heap and Shared memory space 2014-04-24 22:32:26 -04:00
bunnei
66e1f8ab33 added GSP::RegisterInterruptRelayQueue function 2014-04-24 22:20:13 -04:00
bunnei
cd0664eb77 - refactored how service functions are called
- added option to create/delete service handles
2014-04-24 22:16:54 -04:00
bunnei
7a136b8a84 fixes to build on linux 2014-04-22 19:42:29 -07:00
ShizZy
5c89324809 updated CMakeLists for missing files 2014-04-22 18:35:40 -04:00
Mathieu Vaillancourt
5ad1aa8b68 Add a quick way to load Launcher.dat files 2014-04-21 23:15:40 -04:00
bunnei
958bca606e Merge branch 'hle-interface' 2014-04-18 17:52:49 -04:00
bunnei
70c2cce963 renamed hw_lcd module to just lcd 2014-04-17 23:48:23 -04:00
bunnei
c3a4b4bfca added NDMA hardware interface 2014-04-17 23:43:55 -04:00
bunnei
b2baafaf8b added GSP heap memory allocation 2014-04-17 23:05:31 -04:00
bunnei
33e7d97d46 fixed bug in Memory::GetPointer 2014-04-17 21:40:42 -04:00
bunnei
fb026f6b46 moved enums into Memory:: namespace 2014-04-17 21:19:32 -04:00
bunnei
a9dba388eb added memory read/write to GSP heap 2014-04-17 21:15:40 -04:00
bunnei
09ffe87360 more various refactors to memory interface 2014-04-17 21:05:34 -04:00
bunnei
ae99574b6d cleaned up memory interfaces a lot, removed some hackish stuff 2014-04-17 18:40:42 -04:00
bunnei
f0797dcf1f added a new function wrapper 2014-04-16 22:19:23 -04:00
bunnei
9d1a17ca88 fixed bug with printing std::string in log messages 2014-04-16 21:22:15 -04:00
bunnei
795d6bf5b7 changed unknown memory read/write to report the size 2014-04-16 21:21:53 -04:00
bunnei
bb5bc2df25 added class stub for HID:User service 2014-04-16 20:58:36 -04:00
bunnei
b8851305bd updated service comments 2014-04-16 20:46:05 -04:00
bunnei
de3dcd38f6 - fixed tabs in function_wrappers.h
- fixed log message wording in hle.cpp
- added syscall stubs for CloseHandle and WaitSynchronization1
2014-04-16 20:41:33 -04:00
bunnei
32c3462047 - added stubbed out GSP::Gpu service interface
- various cleanups/refactors to HLE services
2014-04-16 00:03:41 -04:00
bunnei
acef5e0b17 removed no longer used function header 2014-04-15 23:41:52 -04:00
bunnei
ffabed8c25 restructured hle:services completely to use function lookup tables 2014-04-15 23:28:03 -04:00
bunnei
386dd722e7 fixed naming for APT_U 2014-04-15 22:42:35 -04:00
bunnei
7ec5950bc4 - extracted srv: calls from service.cpp and put in its own module
- added function tables for service calls
- lots of refactoring
2014-04-15 22:40:19 -04:00
bunnei
18766b9e69 added a stub for GetLockHandle 2014-04-13 22:59:16 -04:00
bunnei
9f4d677cdf added framework for APT service (application and title launching service) 2014-04-13 16:33:45 -04:00
bunnei
524e78ece8 renamed class Interface_SRV to SRV 2014-04-13 01:22:05 -04:00
bunnei
ce822b6815 replace tabs with spaces 2014-04-13 00:39:05 -04:00
bunnei
5ea4679630 added some very initial command parsing for SRV Sync 2014-04-13 00:38:48 -04:00
bunnei
67f6e41470 added a GetPointer function for reading from HLE command buffer 2014-04-13 00:37:10 -04:00
bunnei
f2f63a0f05 fixed hw write declarations to not be const 2014-04-12 23:32:04 -04:00
bunnei
6f6d5158de added OS memory read/write for thread command buffer 2014-04-12 23:31:39 -04:00
bunnei
b24e6f2b60 cleanups to service HLE 2014-04-12 22:08:48 -04:00
bunnei
68e198476f - added HLE to connect to "srv:" service
- added a manager for keeping track of services/ports
- added a memory mapped region for memory accessed by HLE
- added HLE for GetThreadCommandBuffer function
2014-04-12 21:55:36 -04:00
Mathieu Vaillancourt
67095f8083 Implement simple LoadSymbols for ELF files 2014-04-12 19:04:32 -04:00
bunnei
4d88318903 hacked CPU interpreter to ignore branch on SVC instruction (as we are HLEing this...) 2014-04-12 01:36:39 -04:00
bunnei
cd7de52fea added a SETABORT method that does not update LR (for HLE'd SVC that does not jump appcore CPU to an IRQ vector) 2014-04-12 01:35:45 -04:00
bunnei
9a9b7b289a added a memory mapped option for HLE 2014-04-12 01:33:13 -04:00
bunnei
02fbd42e7f - renamed hle_syscall to just syscall
- added service.h as an initial service interface
2014-04-11 18:44:21 -04:00
bunnei
7ea7585898 replace tabs with spaces 2014-04-11 18:09:23 -04:00
bunnei
f6c328cf37 moved hle.cpp into hle folder (due to mistake earlier) 2014-04-11 18:07:49 -04:00
bunnei
e9f0e4967d added remaining known syscall functions to Syscall_Table 2014-04-11 14:19:40 -04:00
bunnei
2bde8f2856 base code to call a syscall from ARM11 appcore 2014-04-10 23:26:12 -04:00
bunnei
01bedbf956 updated logging message 2014-04-10 22:49:12 -04:00
bunnei
5d95bb9843 cleaned up some logging messages 2014-04-10 22:45:40 -04:00
bunnei
3bd041f5b0 changed some naming/misc cleanups 2014-04-10 22:15:07 -04:00
bunnei
2a7d7ce55d - removed syscall classes (will just use HLEFunction)
- added hle.cpp and module registration
- removed unused code
2014-04-10 21:30:00 -04:00
bunnei
95f237a086 Merge branch 'master' into hle-interface 2014-04-10 20:10:18 -04:00
bunnei
f68de21ad1 added initial modules for setting up SysCall HLE 2014-04-10 19:58:28 -04:00
bunnei
fccbfc208c missed this file with commit 95e5436f 2014-04-10 19:57:56 -04:00
bunnei
d9bb4f11c6 added Memory::GetCharPointer to read strings from HLE functions 2014-04-10 19:56:30 -04:00
bunnei
95e5436f41 cleaned up arm_interface, added a setter to set registers for use with HLE return values 2014-04-10 19:55:59 -04:00
bunnei
9527fc74ad fixed a bunch of errors in CMakeLists 2014-04-09 20:28:43 -07:00
bunnei
6b83509a7e updated CMakeLists 2014-04-09 23:09:05 -04:00
bunnei
d0674cc98b fixed licensing and updated code style naming for arm_interface/arm_interpreter frontend module 2014-04-08 20:38:33 -04:00
bunnei
de0a034a84 fixed project includes to use new directory structure 2014-04-08 20:15:08 -04:00
bunnei
63e46abdb8 got rid of 'src' folders in each sub-project 2014-04-08 19:25:03 -04:00
bunnei
03c245345e fixed some license headers that I missed 2014-04-08 19:19:26 -04:00
bunnei
c0796cf762 fixed all license file headers in core 2014-04-08 19:15:46 -04:00
bunnei
3dc3bd5627 fixed licensing issue with core_timing being GPL v2+ instead of Dolphin's GPL v2 2014-04-08 19:11:21 -04:00
bunnei
f446f79da2 Merge branch 'hardware-interface'
Conflicts:
	src/core/src/core.h
2014-04-07 00:57:37 -04:00
bunnei
6f7fd741db removed log message from hw_lcd 2014-04-06 22:56:25 -04:00
bunnei
aae52e3f8f added hack physical memory reads with Memory::GetPointer 2014-04-06 22:56:08 -04:00
bunnei
f0d49253e4 calling SwapBuffers from hw_lcd.cpp 2014-04-06 16:56:13 -04:00
bunnei
551b2a52e0 initialize VideoCore 2014-04-06 16:55:54 -04:00
bunnei
e022717477 added g_app_core->Step and HW::Update to Core::SingleStep to be consistent with other changes made 2014-04-05 15:26:03 -04:00
bunnei
ed15feebf1 changed hw_lcd to use ARM core correct tick counter instead of [what was actually] just an instruction count. this seems to fix timing issues with the 3DS_Homebrew_Pong3Dv2 demo. 2014-04-05 15:23:59 -04:00
bunnei
c874c1d06c add hw_lcd.* to VS project files 2014-04-05 01:24:54 -04:00
bunnei
6433f4d6f9 added an "Update" method to update all hardware 2014-04-05 01:24:14 -04:00
bunnei
9c2355ba4f added a module for interfacing to hardware LCD 2014-04-05 01:23:51 -04:00
bunnei
c1dfa75845 added a tick counter 2014-04-05 01:23:28 -04:00
bunnei
31abc42d3d added initial support for hw.cpp module 2014-04-05 00:01:07 -04:00
Mathieu Vaillancourt
9b6041d818 Remove Core::GetState(). Use new ARM_Interface instead. 2014-04-04 23:24:09 -04:00
bunnei
670ac5643a added hw module to interface h/w register reads/writes 2014-04-04 23:02:59 -04:00
bunnei
590f294d8e renamed some functions 2014-04-04 22:47:10 -04:00
bunnei
c89f3a5c38 added entry point loading from ELF file 2014-04-04 22:26:25 -04:00
bunnei
69223d007e - added an interface layer for ARM cores
- cleaned up core.cpp a bit
2014-04-04 22:26:06 -04:00
bunnei
d601d2e696 renamed ARM disassembler class from "Arm" to "ARM_Disasm" 2014-04-04 22:25:12 -04:00
bunnei
f5f6428b97 got rid of some really poorly named macros in SkyEye core 2014-04-04 22:24:41 -04:00
bunnei
66299a4880 moved arm core to interpreter directory 2014-04-04 21:12:05 -04:00
bunnei
c2d4c7d4f4 added some commented out ARMulator functions 2014-04-03 22:07:07 -04:00
bunnei
829952834a added hack to allow physical mem read/writes 2014-04-03 22:07:06 -04:00
bunnei
cbd1de38be made memory #define's enum to make debugging easier 2014-04-03 22:07:05 -04:00
Mathieu Vaillancourt
564e3f5032 Add Core::GetState() for debugger 2014-04-03 21:25:39 -04:00
bunnei
20bf361b95 removed some useless log messages 2014-04-03 19:04:14 -04:00
bunnei
7bf24c066b added thumb mode emulation 2014-04-03 19:03:55 -04:00
bunnei
4860480c36 convert tabs to spaces 2014-04-01 18:48:06 -04:00
bunnei
e05be0145c -converted tabs to spaces
-moved scratchpad memory out of MemArena
2014-04-01 18:48:04 -04:00
bunnei
d4b529111a added very hackish ARMulator core initialization and CPU stepping 2014-03-31 22:26:50 -04:00
bunnei
85e8da6fc8 added ELF loading support to loader.cpp 2014-03-31 22:23:55 -04:00
bunnei
e32c03e860 commented out bswap stuff... ARM ELF files are little endian anyway 2014-03-31 22:15:02 -04:00
bunnei
a36f9492cc added support for reading/writing to stack mem 2014-03-31 21:05:51 -04:00
bunnei
4fdeadb8e2 replaced some error logs with debug asserts 2014-03-30 02:13:25 -04:00
bunnei
7c5d8f6dad removed unnecessary debug assert 2014-03-30 00:42:13 -04:00
bunnei
328c415c74 added ARM11 MMU from skyeye 2014-03-29 23:28:38 -04:00
bunnei
bd38abf249 initialize mem regions 2014-03-29 21:53:41 -04:00
bunnei
6b255111d5 added various arm modules from skyeye to make project link OK 2014-03-29 21:53:07 -04:00
bunnei
20807c4d5a added a GetPointer function to Memory for use with ELF loading 2014-03-25 10:50:34 -04:00
bunnei
97e4d9f211 updated Windows project files to include ELF files 2014-03-25 10:49:56 -04:00
bunnei
872d9ae87f added Dolphin's ELF reader to the project 2014-03-25 10:47:12 -04:00
ShizZy
e0cfd6b0b8 renamed FILETYPE_CTR_DIRECTORY to FILETYPE_DIRECTORY_CXI 2013-10-06 09:39:11 -04:00
ShizZy
8a95dd3f11 fixed a typo in declaration of meta file system 2013-10-06 09:24:46 -04:00
ShizZy
e0cb54ea35 moved some core functions over to system module 2013-10-03 17:47:31 -04:00
ShizZy
9d79fc7aa6 added core_timing and system modules to core vcproj 2013-10-01 19:10:47 -04:00
ShizZy
4c24ea3d88 added an early function for booting from a directory 2013-10-01 19:09:49 -04:00
ShizZy
539bf8bc86 added a message option to Core::Halt function 2013-10-01 19:07:33 -04:00
ShizZy
a79fb90d62 upgraded proj files to vs 2013 2013-09-26 22:48:31 -04:00
ShizZy
c71868a6b1 added system.h to project 2013-09-26 22:01:09 -04:00
ShizZy
a7b06698ff added meta_file_system to project 2013-09-25 21:25:46 -04:00
ShizZy
05d5113701 renamed file_sys_directory.* to directory_file_system.* 2013-09-25 21:03:42 -04:00
ShizZy
5b0b60ad6b moved file_sys back to core 2013-09-25 20:59:29 -04:00
ShizZy
00287b7a65 removed <windows.h> include from common.h and added it only where needed 2013-09-23 22:09:26 -04:00
ShizZy
29cdc1df39 moved file_sys to common 2013-09-23 22:04:56 -04:00
ShizZy
e83de18f4b removed unused commented-out code 2013-09-23 21:57:54 -04:00
ShizZy
59020e8d9c renamed PSPFileInfo to just FileInfo 2013-09-23 21:55:02 -04:00
ShizZy
1af6ae2f48 added PPSSPP's file system directory module for game loading 2013-09-23 21:50:41 -04:00
ShizZy
80b85ee7e6 ppsspp file system module - currently unused 2013-09-19 23:28:34 -04:00
ShizZy
8990b51ac8 added a module for loading bootable binaries 2013-09-19 23:21:22 -04:00
ShizZy
bf3938d56e added mem_map hardware writing 2013-09-19 23:13:33 -04:00
ShizZy
030c836793 added hw R/W/ memory functions 2013-09-18 23:52:51 -04:00
ShizZy
cd6e998e9a refactored some mem_map stuff 2013-09-18 22:36:39 -04:00
ShizZy
b2c5690413 added log msg to core 2013-09-18 22:36:07 -04:00
ShizZy
7dcfb9c1cf added ARMulator/skyeye ARM11 core to the project 2013-09-17 23:03:54 -04:00
ShizZy
b8ca09160b renamed project to 'citrus' 2013-09-13 18:11:14 -04:00
ShizZy
2161364258 cleaned up VS project files 2013-09-08 21:56:54 -04:00
ShizZy
6847033b27 updated common paths 2013-09-08 13:17:27 -04:00
ShizZy
62d873da3e start of 3DS memory map 2013-09-05 23:04:04 -04:00
ShizZy
d708e2d68a added core and mem_map files to the project 2013-09-05 18:33:46 -04:00
ShizZy
b5c78f8a20 added an ARM disassembler from the android project 2013-09-04 23:00:12 -04:00
ShizZy
48db82013b added missing files 2013-09-04 22:10:47 -04:00
ShizZy
86495a83c1 various fixes to be able to build project 2013-09-04 22:09:15 -04:00
ShizZy
27474060e1 adding initial project layout 2013-08-29 23:35:09 -04:00