Commit graph

283 commits

Author SHA1 Message Date
wwylele
7166fdc490 FileSys: add SaveDataArchive
The error checking of SaveDataArchive is completely different from DiskArchive, so it has to be a new class instead of a subclass of DiskArchive.
2016-11-19 17:17:19 +02:00
wwylele
75ee2f8c67 FileSys: add PathParser 2016-11-19 17:17:19 +02:00
bunnei
1976a2d773 dynarmic: Implement ARM CPU interface. 2016-09-15 17:49:26 -04:00
wwylele
1c9612b791 LDR: Implement CRO 2016-08-27 21:38:06 +08:00
mailwl
e06f2705f0 HLE/Applets: Implement ErrEula applet 2016-07-04 09:54:51 +03:00
bunnei
251457b9d5 Merge pull request #1898 from archshift/interpreter-split-take2
Refactor arm_dyncom_interpreter into several files (take 2)
2016-06-16 14:47:55 -04:00
archshift
ca20b1f87d Make arm_dyncom_trans* into a fully fledged compilation unit 2016-06-12 01:54:45 -07:00
bunnei
78f2b85fe6 Merge pull request #1842 from Subv/ports
Kernel: Added ClientPort and ServerPort classes, along with svcCreatePort.
2016-06-11 22:46:35 -04:00
archshift
0637dd93b5 Revert "Split huge interpreter source file into translation info and interpreter (+ some tiny misc style fixes)" 2016-06-10 17:41:15 -07:00
archshift
c7ffd8a920 arm_dyncom_interpreter.cpp: Split by translation and interpreter logic
To facilitate the split, some small changes were made to names of
various structures and functions.
2016-06-08 20:59:24 -07:00
Subv
3d9fbffbab Kernel: Added ClientPort and ServerPort classes.
This is part of an ongoing effort to implement support for multiple processes.
2016-06-05 09:35:31 -05:00
Lioncash
64b6a7c006 service: Add other DLP services
Specifically, dlp::CLNT and dlp::FKCL

Moves them to their own folder like with other services.
2016-06-04 19:43:33 -04:00
Emmanuel Gil Peyrot
080a2d719c Loader: Split SMDH into its own header and import helpers from QGameList
Also rewrite Qt wrappers to use those.
2016-05-21 20:15:42 +01:00
András Domonkos
960297e577 Update ACT:U and create ACT:A (#1809)
* Update ACT_U
* Create act_a.h
* Create act_a.cpp
* Add service ACT:A
* Add ACT:A source and header
* Fix wrong header
2016-05-17 21:28:25 -04:00
Subv
abf8dcd700 APT: Move the shared font loading and relocation functions to their own subdirectory services/apt/bcfnt. 2016-05-12 20:01:54 -05:00
exhalatio
bbdfbe44e6 Dummy implementation dlp:SRVR Service. 2016-04-03 06:05:20 +09:00
JamePeng
dd0b8047eb Reorganize the ndm service path for dummy implement function
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons

The NDM file move to /core/hle/service/ndm/ now!
2016-03-15 00:42:47 +08:00
bunnei
2f0a61debf Merge pull request #1266 from Subv/miiapplet
HLE/Applets: Implemented a dummy Mii Selector applet.
2016-03-12 11:23:59 -05:00
Subv
0f8be2d2cc HLE/Applets: Implemented a dummy Mii Selector applet.
This prevents some games (like Super Mario 3D Land) from freezing when trying to launch it, however, it's not complete and won't let you go past Mii selection as the parameter structure hasn't been reverse engineered yet.
2016-03-12 10:59:37 -05:00
MerryMage
2b93313348 Memory: Implement MMIO 2016-01-30 18:41:04 +00:00
polaris-
31dee93e84 Implement gdbstub 2015-10-04 11:16:59 -04:00
Yuri Kunde Schlesner
69c3021a8d Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h} 2015-08-16 01:03:46 -03:00
Lioncash
0ecc6e2f04 dyncom: Use ARMul_State as an object
Gets rid of C-like parameter passing.
2015-07-26 13:18:32 -04:00
Lioncash
dfb424b6d1 dyncom: Rename armdefs.h to armstate.h 2015-07-25 22:10:44 -04:00
Lioncash
0191c26521 dyncom: Move helper functions to their own header 2015-07-25 20:35:18 -04:00
Lioncash
6b73e4566b dyncom: Move arminit.cpp and armsupp.cpp into skyeye_common 2015-07-25 20:01:44 -04:00
Tony Wasserka
fd62580985 CiTrace: Record default vertex attributes. 2015-07-13 22:27:21 +02:00
Tony Wasserka
902fa4da52 Add CiTrace recording support.
This is exposed in the GUI as a new "CiTrace Recording" widget.

Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
2015-07-13 22:27:20 +02:00
Subv
2a6ebadf66 HLE/APT: Initial HLE support for applets.
Currently only the SWKBD is emulated, and there's currently no way to ask the user for input, so it always returns "Subv" as the text.
2015-07-11 21:47:22 -05:00
Yuri Kunde Schlesner
dc09a2ecb5 Merge pull request #860 from yuriks/y2r-color
Color support for Y2R
2015-06-21 17:22:34 -07:00
Yuri Kunde Schlesner
3e6663da43 Y2R: Rework conversion process, enabling support for all formats 2015-06-21 20:58:55 -03:00
purpasmart96
7933dbe6a0 Services: Continue separation of services into their own folders 2015-06-11 20:41:59 -07:00
Yuri Kunde Schlesner
0a60aa75c2 Kernel: Add VMManager to manage process address spaces
This enables more dynamic management of the process address space,
compared to just directly configuring the page table for major areas.

This will serve as the foundation upon which the rest of the Kernel
memory management functions will be built.
2015-05-27 03:24:12 -03:00
Lioncash
6278937a28 dyncom: Get rid of armemu.h 2015-05-23 20:51:02 -04:00
Subv
d3634d4bf4 Core/ResourceLimits: Implemented the basic structure of ResourceLimits.
Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues.

Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create.
2015-05-14 22:50:13 -05:00
Yuri Kunde Schlesner
dd4430609a Memory: Use a table based lookup scheme to read from memory regions 2015-05-15 00:04:43 -03:00
Yuri Kunde Schlesner
7ada357b2d Memmap: Re-organize memory function in two files
memory.cpp/h contains definitions related to acessing memory and
configuring the address space
mem_map.cpp/h contains higher-level definitions related to configuring
the address space accoording to the kernel and allocating memory.
2015-05-15 00:04:38 -03:00
Yuri Kunde Schlesner
6d60acf0f1 Kernel: Introduce skeleton Process class to hold process data 2015-05-08 22:11:02 -03:00
Yuri Kunde Schlesner
0f39cc359b Core: Fix sorting in CMakeFiles.txt 2015-05-08 03:03:04 -03:00
Lioncash
ae0c38a333 Remove unnecessary dyncom header files 2015-05-07 20:45:28 -04:00
Yuri Kunde Schlesner
b89f644cfe FileSys: De-inline Path members 2015-05-06 23:45:06 -03:00
Lioncash
d66a12c6f6 dyncom: Remove unused/unnecessary VFP cruft 2015-04-17 20:46:05 -04:00
purpasmart96
d6c9af600f IR: Move The IR services to their own folder and implement "GetHandles" 2015-04-03 19:36:03 -07:00
purpasmart96
198c0ddc72 Services: Stubs and minor changes 2015-04-02 20:05:11 -07:00
archshift
041e99b613 Added LCD registers, and implementation for color filling in OGL code. 2015-03-09 15:51:41 -07:00
Subv
83a8975cb8 Services: Moved the PTM and APT services to their own folder
This coincidentally fixes an issue about the PTM service failing to create its SharedExtSaveData archive due to the FS service not being initialized by the time the creating code runs.

Ideally I'd like to move each process to its own folder, and have a single file per process that registers the service classes, which would be in their own files inside that folder. Then each service class would just call functions from the process to complete the commands.
2015-03-03 21:48:08 -05:00
Yuri Kunde Schlesner
7725256f64 Explicitly instantiate constructors/destructors for Kernel objects
This should speed up compile times a bit, as well as enable more liberal
use of forward declarations. (Due to SharedPtr not trying to emit the
destructor anymore.)
2015-02-02 15:37:07 -02:00
Lioncash
f44781fd7b arm: Adios armemu 2015-01-31 20:43:03 -05:00
Lioncash
83bc1a3120 arm: Get rid of armcpu.h and skyeye_types.h 2015-01-30 16:16:58 -05:00
Subv
c2e9990149 Services: Stubbed more services.
Implemented FSUser::CreateExtSaveData
2015-01-24 15:44:40 -05:00
bunnei
92550013cf Merge pull request #493 from archshift/ptmplay
Stubbed some services
2015-01-22 13:25:19 -05:00
archshift
1f109c6b49 Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxx 2015-01-21 13:31:10 -08:00
archshift
a68dda6328 Stubbed cam:u service 2015-01-21 12:50:18 -08:00
archshift
7516ceaf93 Stubbed ptm:play service 2015-01-21 12:50:18 -08:00
bunnei
be8f665142 Merge pull request #383 from zhuowei/shared_page
Add some support for the shared page
2015-01-18 18:31:52 -05:00
Zhuowei Zhang
edb8450420 Add some support for the shared page (currently 3d slider is implemented) 2015-01-15 22:16:13 -05:00
Subv
cf071cd897 Services: Added some missing services.
cfg:s, ptm:sysm, apt:s.
apt:s is almost exactly the same as apt:u as per 3dbrew
2015-01-13 14:43:30 -05:00
Subv
07044651ef SVC: Implemented the Timer service calls. 2015-01-08 21:22:14 -05:00
bunnei
26f31a2dfb Merge pull request #386 from archshift/y2ru
Stub the y2r:u service
2015-01-04 21:40:58 -05:00
archshift
48130b1eaa Stub the y2r:u service 2015-01-03 16:42:39 -03:00
Subv
aade417b14 Archives: Reduced duplicate code in RomFS and SaveCheck.
Fixed a few warnings and cleaned up the code
2015-01-02 21:13:54 -05:00
Subv
2c89d4d5cd Archives: Implemented ExtSaveData and SharedExtSaveData
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
2014-12-29 22:29:55 -05:00
purpasmart96
9796bc1fa2 More services & small clean ups 2014-12-25 19:08:33 -08:00
Subv
6115f013a9 CFG: Create a new subfolder cfg inside service to handle cfg
Moved most of the shared CFG code there, implemented a few CFG:I functions
2014-12-21 16:41:06 -05:00
Subv
bec527fa24 SaveData: Implemented the SystemSaveData archive.
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
2014-12-17 23:44:32 -05:00
Subv
ea9ce0fba7 Filesystem/Archives: Implemented the SaveData archive
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information

Got rid of the code duplication in File and Directory

Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.

FS_U: Use the correct error code when a file wasn't found
2014-12-17 19:21:38 -05:00
bunnei
cd2a31eaf4 Merge pull request #283 from yuriks/archive-refactor
Archive refactor
2014-12-15 22:15:08 -05:00
Yuri Kunde Schlesner
0931a42af0 Service.FS: Rename FileSys::File to FileBackend 2014-12-16 01:08:43 -02:00
Yuri Kunde Schlesner
d51afab0bc Service.FS: Rename FileSys::Directory to DirectoryBackend 2014-12-16 01:08:43 -02:00
Yuri Kunde Schlesner
82fe821e87 Service.FS: Rename FileSys::Archive to ArchiveBackend 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner
c72ccfa6db HLE: Move kernel/archive.* to service/fs/ 2014-12-16 01:08:14 -02:00
bunnei
5df176425b Merge pull request #282 from archshift/services
Added stubs for ldr:ro, cecd:u, nim:aoc, and am:app services
2014-12-15 19:28:13 -05:00
archshift
89eef9eb6d Added stub for nim:aoc service... 2014-12-15 15:32:42 -08:00
archshift
1356a6b313 Added stub for cecd:u service...
I couldn't find any information about this service...
2014-12-15 15:32:42 -08:00
archshift
6117fad036 Added stub for ldr:ro service... 2014-12-15 15:32:42 -08:00
archshift
6b51683bb1 Added am:app service stub.
Apparently nothing at all is known about this service...
2014-12-15 15:32:41 -08:00
Yuri Kunde Schlesner
e321decf98 Remove SyncRequest from K::Object and create a new K::Session type
This is a first step at fixing the conceptual insanity that is our
handling of service and IPC calls. For now, interfaces still directly
derived from Session because we don't have the infrastructure to do it
properly. (That is, Processes and scheduling them.)
2014-12-15 18:26:17 -02:00
Subv
82c84883a5 SVC: Implemented svcCreateSemaphore
ToDo: Implement svcReleaseSemaphore
* Some testing against hardware needed
2014-12-13 13:40:09 -05:00
Yuri Kunde Schlesner
521e1cb7e0 Remove unused NDMA module 2014-12-09 18:27:16 -02:00
ichfly
1aa969741d Loader: Add 3DSX support 2014-12-08 18:06:43 +01:00
Yuri Kunde Schlesner
c2588403c0 HLE: Revamp error handling throrough the HLE code
All service calls in the CTR OS return result codes indicating the
success or failure of the call. Previous to this commit, Citra's HLE
emulation of services and the kernel universally either ignored errors
or returned dummy -1 error codes.

This commit makes an initial effort to provide an infrastructure for
error reporting and propagation which can be use going forward to make
HLE calls accurately return errors as the original system. A few parts
of the code have been updated to use the new system where applicable.

One part of this effort is the definition of the `ResultCode` type,
which provides facilities for constructing and parsing error codes in
the structured format used by the CTR.

The `ResultVal` type builds on `ResultCode` by providing a container for
values returned by function that can report errors. It enforces that
correct error checking will be done on function returns by preventing
the use of the return value if the function returned an error code.

Currently this change is mostly internal since errors are still
suppressed on the ARM<->HLE border, as a temporary compatibility hack.
As functionality is implemented and tested this hack can be eventually
removed.
2014-11-24 17:08:36 -02:00
purpasmart96
9821bfcb8e Add more services and some fixes, along with more "override"
in the service's headers
2014-11-20 17:09:57 -08:00
archshift
e27f169acb Add missing boss:U service, needed according to Nintendo Zone logs. 2014-11-17 07:31:37 -08:00
archshift
37e582c395 Add FRD:U service and functions 2014-11-10 22:43:45 -08:00
archshift
c22923f8c4 Added stub err:f service. 2014-11-01 20:07:59 -07:00
purpasmart96
539b4c883d Added a bunch of services 2014-11-01 15:28:35 -07:00
Gareth Poole
38df9e96dd Renamed souce files of services to match port names 2014-10-29 15:55:51 -04:00
bunnei
818ba32746 ARM: Removed unnecessary and unused SkyEye MMU code.
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
2014-10-25 14:11:41 -04:00
bunnei
3c823c0028 ARM: Removed unused armos code from SkyEye. 2014-10-25 14:11:40 -04:00
bunnei
53a22b84da ARM: Integrate SkyEye faster "dyncom" interpreter.
Fixed typo (make protected member public)

Added license header back in. I originally removed this because I mostly rewrote the file, but meh

ARM: Fixed a type error in dyncom interpreter.

ARM: Updated dyncom to use unique_ptr for internal ARM state.
2014-10-25 14:11:39 -04:00
bunnei
b5e6524594 ARM: Reorganized file structure to move shared SkyEye code to a more common area.
Removed s_ prefix
2014-10-25 14:11:39 -04:00
archshift
e6594f9f53 Added configuration file system.
Uses QSettings on citra-qt, and inih on citra-cli.
2014-10-07 15:09:37 -07:00
Emmanuel Gil Peyrot
33b0d1081e Core: Add a Directory object, with both a stub and a passthrough implementations. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot
e73caaefe5 Core: Add a passthrough backend for the filesystem, exposed as SDMC. 2014-09-17 14:35:45 +00:00
Emmanuel Gil Peyrot
9251f7e2f8 Core: Add a new File class, obtainable from an Archive, and a stub implementation. 2014-09-17 14:35:45 +00:00
Yuri Kunde Schlesner
45976da975 CMake cleanup
Several cleanups to the buildsystem:
 - Do better factoring of common libs between platforms.
 - Add support to building on Windows.
 - Remove Qt4 support.
 - Re-sort file lists and add missing headers.
2014-09-01 18:06:30 -03:00
bunnei
3eb89f3e98 Kernel: Added preliminary support for address arbiters.
AddressArbiter: Added documentation comment, fixed whitespace issue.

AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear.

SVC: Removed trailing whitespace.
2014-07-08 18:46:38 -04:00
bunnei
e547128185 Kernel: Added support for shared memory objects.
SharedMemory: Added optional name field for tracking known objects.
2014-07-05 01:21:05 -04:00
bunnei
17a6148f9d FileSys: Added preliminary support for applications reading the RomFS archive.
Archive: Fixed brace ugliness for neobrain :)

FS: Commented out unused local variables to prevent warnings.

...But keeping them here for future use.

archive_romfs: Removed unused #include.
2014-07-04 20:37:45 -04:00
bunnei
48e39fc992 FS: Added stubbed code to intercept and decode file system service functions.
FS: Added to CMakeLists.txt
2014-06-27 16:58:30 -04:00
bunnei
8b8c8f4c13 Kernel: Added stubbed code to support creation of kernel Archive objects. 2014-06-27 16:58:30 -04:00
bunnei
0cc3e85685 Core: Removed unused directory_file_system and meta_file_system modules.
Core: Updated CMakeLists.txt to remove directory_file_system and meta_file_system modules.
2014-06-27 16:58:30 -04:00
bunnei
1da361c7ab Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces. 2014-06-16 23:43:32 -04:00
bunnei
3577dd027d Loader: Added support for booting NCCH executables.
NCCH: Fixed typo in printing NCCH filename.
2014-06-16 23:43:29 -04:00
bunnei
0aca202ae9 Loader: Moved elf and loader modules to a "loader" subdirectory. 2014-06-16 18:03:13 -04:00
bunnei
004df76795 Merge branch 'threading' of https://github.com/bunnei/citra
Conflicts:
	src/core/hle/function_wrappers.h
	src/core/hle/service/gsp.cpp
2014-06-14 12:13:16 -04:00
Tony Wasserka
1dfa392824 Rename LCD to GPU. 2014-06-12 06:10:49 -04:00
bunnei
55325dea4c hle: added stubbed service for ndm_u 2014-05-30 00:24:04 -04:00
bunnei
ea8627d536 event: fixed typos and updated CMakeLists 2014-05-27 22:14:38 -04:00
bunnei
420971a849 core: fixed headers in CMakeLists 2014-05-22 23:39:25 -04:00
bunnei
32c314c992 Merge branch 'threading' 2014-05-22 22:57:45 -04:00
bunnei
978e1d4653 mutex: initial commit of HLE module 2014-05-20 23:03:45 -04:00
bunnei
143bba2045 renamed "syscall" module to "svc" (more accurate naming) 2014-05-20 18:28:38 -04:00
archshift
403e4bf837 CMakeLists: rename HEADS, improved comments
Changes for clarity of comments, removed redundant compiler flags.
2014-05-19 15:19:36 -07:00
archshift
c1394650ff Updated cmakelists 2014-05-16 23:39:27 -07:00
archshift
b8c8d0903e Merge remote-tracking branch 'upstream/master' into issue-7-fix 2014-05-16 23:21:03 -07:00
bunnei
0b1ba2f37a Merge master into threading to add support for VFP 2014-05-16 22:24:34 -04:00
bunnei
afc9e27fc7 fixed typo in CMakeLists.txt 2014-05-16 20:57:31 -04:00
bunnei
f872807de2 added maverick.cpp to ARM core from skyeye 2014-05-16 00:52:42 -04:00
bunnei
ad49d481a8 added missing armcopro from skyeye 2014-05-16 00:23:36 -04:00
bunnei
9a642caee7 added missing skyeye mmu code 2014-05-15 23:39:06 -04:00
bunnei
3e1eafa244 - moved mmu to arm/interpreter folder
- added initial VFP code from skyeye
2014-05-15 22:54:17 -04:00
bunnei
6b264518a5 added initial kernel/thread modules 2014-05-09 22:11:18 -04:00
bunnei
34dc0a9b07 added config_mem module for HLE of firmware configuration memory settings 2014-05-06 23:29:39 -04:00
bunnei
f043424915 renamed hle "mrc" module to "coprocessor" 2014-05-01 19:20:44 -04:00
bunnei
29da6e9ab5 added a module to load symbol map files for debugging 2014-04-30 23:46:06 -04:00
archshift
704075f04a Fixed indents 2014-04-30 20:13:28 -07:00
archshift
a7f3ed003d A bit of Cmake love 2014-04-30 16:56:47 -07: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
ShizZy
5c89324809 updated CMakeLists for missing files 2014-04-22 18:35:40 -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
ShizZy
27474060e1 adding initial project layout 2013-08-29 23:35:09 -04:00