Commit Graph

696 Commits

Author SHA1 Message Date
bunnei
de851ba1a1 Thread: Check that thread is actually in "wait state" when verifying wait. 2014-11-26 15:04:08 -05:00
bunnei
f985469901 SVC: Add debug log to ArbitrateAddress. 2014-11-26 15:04:07 -05:00
bunnei
e0e7443517 SVC: SleepThread should yield to the next ready thread. 2014-11-26 15:04:07 -05:00
bunnei
a449e0e11a Mutex: Changed behavior to always release mutex for all threads. 2014-11-26 14:38:42 -05:00
Emmanuel Gil Peyrot
f8c05e53c4 Remove unused includes to common/thread.h 2014-11-25 20:39:25 +00:00
archshift
43a682a106 Log the cmd_buff arguments when citra comes across an unimplemented function 2014-11-24 15:51:48 -08:00
archshift
e5ff01c2cd Implemented RenameDirectory in FS:USER 2014-11-24 15:09:12 -08:00
archshift
45afc15aa6 Implemented RenameFile in FS:USER 2014-11-24 15:09:11 -08:00
Yuri Kunde Schlesner
8189593255 Use pointers instead of passing handles around in some functions. 2014-11-24 17:08:37 -02:00
Yuri Kunde Schlesner
22c86824a4 Remove duplicated docs/update them for changed parameters. 2014-11-24 17:08:36 -02: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
Yuri Kunde Schlesner
924bbde89b Change some SkyEye defines to const ints
This prevents them from interfering with other constants defined in
different namespaces.
2014-11-24 16:47:01 -02:00
bunnei
ef1b16a7eb Merge pull request #191 from archshift/deletexyz
Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.
2014-11-23 20:02:23 -05:00
archshift
8aeadbd95a Added DeleteFile and DeleteDirectory functions to FS:USER and the archives. 2014-11-23 00:33:43 -08: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
bunnei
c0cd0fa78e Merge pull request #211 from linkmauve/master
Remove trailing spaces from the entire project
2014-11-19 15:24:46 -05:00
bunnei
112768f436 Merge pull request #208 from lioncash/statics
Add static to some variables
2014-11-19 09:39:20 -05:00
Emmanuel Gil Peyrot
739bb58c3a Remove tabs in all files except in skyeye imports and in generated GL code 2014-11-19 09:04:03 +00:00
Emmanuel Gil Peyrot
f5d38649c7 Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated 2014-11-19 09:03:07 +00:00
Lioncash
7cbecde2ca Add static to some variables 2014-11-18 20:04:00 -05:00
Tony Wasserka
219628d1c8 Merge pull request #207 from lioncash/docs
Fix documentation of parameters
2014-11-18 16:55:58 +01:00
Tony Wasserka
d218a547fa Merge pull request #209 from lioncash/warn
directory_sdmc: Fix a signed/unsigned mismatch comparison
2014-11-18 16:54:56 +01:00
Tony Wasserka
ed4e599008 Merge pull request #210 from lioncash/typedef
system: Get rid of an unnecessary enum typedef
2014-11-18 16:54:37 +01:00
Lioncash
b37f91c617 system: Get rid of an unnecessary enum typedef 2014-11-18 09:00:32 -05:00
Lioncash
548c49dfe9 directory_sdmc: Fix a signed/unsigned mismatch comparison 2014-11-18 08:51:03 -05:00
Lioncash
64cc6cb6cf Fix documentation of parameters 2014-11-18 08:31:24 -05:00
Lioncash
1a8f466217 Remove extraneous semicolons 2014-11-18 08:27:16 -05:00
Lioncash
72846c418e core: Mark some hle functions as static
These functions are not referred to by their linkage name outside of the translation unit, so they can be marked as static.
2014-11-17 22:41:49 -05:00
bunnei
11641b5e79 Archive: Fixed to not destroy archive handle on close. 2014-11-17 22:19:14 -05:00
bunnei
bcb0dbf7e1 Archive: Fixed close archive before freeing. 2014-11-17 22:19:14 -05:00
bunnei
3e09c07378 FS_User: Support FileSye::Path in a more generic way.
added a todo to kernel archive
2014-11-17 22:18:58 -05:00
bunnei
a3107a6b57 FileSys: Updated backend code to use FileSys::Path instead of string for paths. 2014-11-17 21:49:24 -05:00
bunnei
c04a04189a FileSys: Added DebugStr method to Path class. 2014-11-17 18:42:37 -05:00
bunnei
4ac4c3caf1 Merge pull request #201 from archshift/boss
Add missing boss:U service
2014-11-17 17:46:18 -05:00
archshift
e27f169acb Add missing boss:U service, needed according to Nintendo Zone logs. 2014-11-17 07:31:37 -08:00
Lioncash
cfea27a615 mem_map: Add missing prototype for Write64 2014-11-16 22:50:13 -05:00
Tony Wasserka
80e9c02bd6 Merge pull request #159 from SeannyM/enable_log
Add support for disabling log from settings
2014-11-15 12:42:08 +01:00
bunnei
26622818ae Merge pull request #193 from lioncash/fmt
Fix two format strings.
2014-11-15 01:41:28 -05:00
bunnei
613627205c Merge pull request #194 from lioncash/virt
ARM_Interface: Make destructor virtual
2014-11-15 01:38:51 -05:00
Lioncash
e8f4361d76 ARM_Interface: Make destructor virtual
Fixes some warnings on OSX.
2014-11-14 12:10:35 -05:00
Lioncash
ac58b76e71 Fix two format strings. 2014-11-14 12:08:26 -05:00
bunnei
3cfdabb2e3 Merge pull request #183 from archshift/lowpath
Add support for UTF-16 strings for LowPaths in FS:USER
2014-11-12 22:56:27 -05:00
archshift
1f7c4ab7f6 Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functions 2014-11-12 19:30:17 -08:00
bunnei
a490490336 Merge pull request #188 from bunnei/apt-fixes
APT_U: Various improvements and bug fixes.
2014-11-12 00:06:45 -05:00
bunnei
9fb549cb84 APT_U: Added stub for function AppletUtility. 2014-11-11 23:51:54 -05:00
bunnei
19cfcfe8c0 APT_U: Set a valid parameter buffer size in GlanceParameter.
- Also Clarified GlanceParameter/ReceiveParameter documentation.
2014-11-11 23:51:54 -05:00
bunnei
8eced1b697 APT_U: Release service lock on initialization. 2014-11-11 23:51:54 -05:00
bunnei
0df9c34410 APT_U: Fixes for GetLockHandle to boot system titles.
- Also added comment to GetLockHandle function.
2014-11-11 23:51:33 -05:00
bunnei
b8e6f52419 ARM: Fixed dyncom to use reg15 for PC (this core doesn't use pc variable).
- Fixes single stepping in debugger.
2014-11-11 19:54:18 -05:00
bunnei
ce1125d490 Core: Changed RunLoop iterations to 1000 (slightly better performance). 2014-11-11 19:54:09 -05:00
bunnei
573756e241 ARM: Removed unnecessary goto with each instruction. 2014-11-11 19:53:46 -05:00
bunnei
3409790668 ARM: Fixed several dyncom bugs.
- Fixed NZCVT flags to properly save state when function returns.
- Fixed counter to keep track of the actual number of instructions executed.
- Fixed single-step mode to only execute one instruction at a time.
- DefaultIni: Removed comment that no longer applied to dyncom.
2014-11-11 19:53:19 -05:00
archshift
37e582c395 Add FRD:U service and functions 2014-11-10 22:43:45 -08:00
archshift
0ad5964c8b Add support for UTF-16 strings for LowPaths in FS:USER 2014-11-10 10:53:26 -08:00
Sean
371b61f3ea Add support for disabling log from settings 2014-11-03 17:00:32 -05:00
Sean Maas
d06420807c Fix compilation errors 2014-11-02 18:43:52 -05:00
bunnei
9be17e4d84 Merge pull request #163 from archshift/create-directory
Added CreateDirectory function to service/fs.cpp, and in Archive.
2014-11-02 17:15:52 -05:00
bunnei
7f9bcacdf7 Merge pull request #166 from bunnei/skyeye-vfp-fixes
SkyEye ARM/VFP fixes
2014-11-02 17:09:35 -05:00
archshift
04c90c395d Added CreateDirectory function to service/fs.cpp, and in Archive. 2014-11-02 10:48:28 -08:00
archshift
40a84833ae Added ReceiveNotification, PublishToSubscriber unimplemented functions to SRV 2014-11-01 23:15:38 -07:00
bunnei
0832cf7cd7 ARM: Merged additional ARMv6 instructions implemented by 3dmoo. 2014-11-02 01:04:54 -05:00
bunnei
bc6989b075 ARM: Merge latest VFP fixes from 3dmoo team. 2014-11-02 01:04:41 -05:00
archshift
c22923f8c4 Added stub err:f service. 2014-11-01 20:07:59 -07:00
bunnei
6e6947118b Merge pull request #135 from purpasmart96/master
Added a bunch of services
2014-11-01 19:03:01 -04:00
purpasmart96
539b4c883d Added a bunch of services 2014-11-01 15:28:35 -07:00
Yuri Kunde Schlesner
c6e3c7df62 Fix VFP compilation errors with gcc 2014-10-30 22:24:03 -02:00
bunnei
01e37962e7 Merge pull request #162 from SeannyM/warning-fixes
Fix some warnings
2014-10-29 21:07:27 -04:00
archshift
ed797a4354 FS:USER - Implemented IsSdmcDetected 2014-10-29 17:43:48 -07:00
Sean
9a012ff007 Fix some warnings 2014-10-29 20:26:15 -04:00
Gareth Poole
38df9e96dd Renamed souce files of services to match port names 2014-10-29 15:55:51 -04:00
bunnei
48f80bb79e Merge pull request #151 from archshift/dyncom-enabled
Use configuration files to enable or disable the new dyncom interpreter.
2014-10-27 22:51:10 -04:00
archshift
09e19f9f1e Added gpu_refresh_rate config setting for the new interpreter speed hack. 2014-10-27 19:42:01 -07:00
archshift
0783498f57 Use configuration files to enable or disable the new dyncom interpreter. 2014-10-27 18:35:21 -07:00
bunnei
a110b06fb6 Merge pull request #141 from archshift/crash-hunt
hid.cpp: Fixed crash when updating pad data while null
2014-10-27 21:35:01 -04:00
bunnei
19d91a45f5 Merge pull request #153 from yuriks/add-override
Add override keyword where appropriate
2014-10-27 21:23:16 -04:00
Lioncash
d155586801 vfp_helper: Get rid of integer type redefinitions 2014-10-26 14:19:47 -04:00
Yuri Kunde Schlesner
d72708c1f5 Add override keyword through the code.
This was automated using `clang-modernize`.
2014-10-26 16:18:05 -02: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
130efd461d ARM: Updated dyncom core to use fast label lookup table on clang. 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
Emmanuel Gil Peyrot
2d960f5040 Don’t fail on empty filename in OpenFileDirectly, return the archive handle instead 2014-10-25 16:12:57 +00:00
archshift
a59f57d504 Use config files to store whether SDMC is enabled or not
Before, it used to use whether the directory actually existed. As a result, .citra-emu/sdmc was never auto-created (something quite confusing to me until I read through the logs).
2014-10-22 15:24:25 -07:00
archshift
366ae1b351 hid.cpp: Fixed crash when updating pad data while null
Fixes #137
2014-10-13 22:18:03 -07:00
Yuri Kunde Schlesner
fec7f6b035 Rename GPU::Regs::FramebufferFormat to PixelFormat
This name better represents what the enum does, and is less overloaded
in the context. (The whole register the enum is part of is also called
'format'.)
2014-10-12 14:37:24 +02:00
bunnei
8fb064cd62 Merge pull request #119 from lioncash/warn
Fix warnings in video_core
2014-10-08 23:06:28 -04:00
Lioncash
eb5054e6eb Fix warnings in video_core 2014-10-07 20:35:13 -04:00
bunnei
8d1154c24e Merge pull request #128 from purpasmart96/master
APT:U Added a stub fuction for "GlanceParameter"
2014-10-07 20:30:21 -04:00
purpasmart96
20f15f31dd APT: Added a stub for the "GlanceParameter" function. 2014-10-07 17:10:54 -07:00
bunnei
a171000cbe Merge pull request #108 from archshift/config
Configuration files
2014-10-07 19:44:13 -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
fbd72fd6bf Common: Add a helper function to generate a 8.3 filename from a long one.
Core: Fix the SDMC Directory implementation to make blargSnes work.
2014-10-06 19:58:43 +02:00
Emmanuel Gil Peyrot
19c2a96ab0 FileSys: Add static asserts for the Directory struct, and fix its fields position. 2014-10-06 19:58:43 +02:00
Emmanuel Gil Peyrot
0be5c03176 FileSys: split the constructor into an Open method, in order to notify the opener something went wrong.
Kernel: Return an invalid handle to OpenFile when it failed to open.
2014-10-06 19:58:42 +02:00
Emmanuel Gil Peyrot
23c2fbfc7a FileSys/Kernel: Implement SetSize service call for File objects. 2014-10-06 19:58:37 +02:00
Emmanuel Gil Peyrot
d34673990b FileSys: Add forgotten docstrings. 2014-10-06 19:54:50 +02:00
purpasmart96
1d0ac47832 Added some more names to the function table
Added "SetApplicationCpuTimeLimit" and "GetApplicationCpuTimeLimit" to apt.cpp
2014-10-04 15:01:36 -07:00
purpasmart96
7d6f7684e1 added "StoreDataCache" to the function table
seems simple enough
2014-09-30 09:13:29 -07:00
Lioncash
ca2f0de08a Fix warnings in core and common 2014-09-28 11:44:14 -04:00
archshift
1966f7b0ad Use the citra user path for the sdmc directory 2014-09-21 09:34:33 -07:00
Emmanuel Gil Peyrot
3a570a9fee Kernel: Implement the Close command for Archive, File and Directory. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot
99bfa4ae1f FS: Implement OpenArchive, OpenDirectory, OpenFile and OpenFileDirectly calls. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot
c197ce2180 Kernel: Add a Directory object and a getter for it from an Archive object. 2014-09-17 14:35:46 +00:00
Emmanuel Gil Peyrot
c14e5713f5 Core: Add a method to obtain a Directory from an Archive. 2014-09-17 14:35:46 +00: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
19d04f3abe Kernel: Add a File object and a getter for it from an Archive object. 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
Emmanuel Gil Peyrot
6b7b36a874 Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions. 2014-09-17 14:35:45 +00:00
bunnei
1c79a4f10c Merge pull request #107 from lioncash/sprintf
Core: Replace a sprintf in core_timing with StringFromFormat
2014-09-16 16:54:41 -04:00
bunnei
73b6f85f9a Merge pull request #109 from lioncash/cruft
Core: Get rid of unnecessary switch statement in Kernel
2014-09-15 00:47:13 -04:00
Lioncash
741321ac24 Core: Get rid of unnecessary switch statement in Kernel 2014-09-14 21:31:09 -04:00
bunnei
31d9cf4d17 Merge pull request #110 from lioncash/warnings
Core: Fix warnings in gpu.cpp
2014-09-14 21:28:44 -04:00
bunnei
5481115e71 Merge pull request #97 from archshift/cleanup
Small, general code cleanup
2014-09-13 22:58:58 -04:00
Lioncash
6cc7c73b80 Core: Fix warnings in gpu.cpp 2014-09-13 22:55:41 -04:00
Lioncash
093d6fbcdc Core: Replace a sprintf in core_timing with StringFromFormat 2014-09-12 21:18:46 -04:00
Kevin Hartman
02fd19b2f6 Added support for multiple input device types for KeyMap and connected Qt. 2014-09-12 01:15:14 -07:00
Kevin Hartman
4a94ec934a Initial HID PAD work, with GLFW only. 2014-09-11 22:43:42 -07:00
Kevin Hartman
bb7ddede15 Created structure for PAD. 2014-09-11 22:43:42 -07:00
bunnei
532a9e80a0 Merge pull request #99 from archshift/ext-check
loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
2014-09-11 00:04:36 -04:00
archshift
6e606c515f core: Prune redundant includes 2014-09-08 17:54:14 -07:00
archshift
5472fd4d9b Added string_util to common, small changes in loader.cpp 2014-09-08 15:43:22 -07:00
archshift
4ed24a0619 loader.cpp: improved file extension checking, made Upper/LowerStr useful
Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location.
2014-09-08 15:41:58 -07:00
bunnei
335082e74e Merge pull request #95 from lioncash/disassembler
core: Make the ARM disassembler use std::string internally
2014-09-08 00:10:13 -04:00
bunnei
85f1b76cd8 Merge pull request #87 from archshift/remove-cruft
Removed redundant headers for std implementations
2014-09-07 22:08:06 -04:00
archshift
498d1a37f1 Removed common/std_xyz, instead using the std header 2014-09-07 14:31:07 -07:00
archshift
1c02c03e32 Dead code removal: video_core.cpp, load_symbol_map.cpp 2014-09-07 12:09:02 -07:00
Lioncash
403c84cdab core: Make the ARM disassembler use std::string internally 2014-09-06 14:45:56 -04:00
bunnei
a130086587 Merge pull request #93 from lioncash/ref
core: Pass string by reference in FetchFromPortName and DeleteService
2014-09-06 14:06:37 -04:00
Lioncash
f68776ce13 ncch: Remove C-style struct typedefs
In C++ you can simply just declare it as is.
2014-09-06 13:38:03 -04:00
Lioncash
26cd696843 ncch: inline declare some variables in LZSS_Decompress 2014-09-06 13:36:49 -04:00
Lioncash
d30747efea core: Pass string by reference in FetchFromPortName and DeleteService 2014-09-06 13:30:27 -04:00
archshift
4795a64fc8 Removed common/atomic, instead using std::atomic 2014-09-02 22:40:02 -07:00
Yuri Kunde Schlesner
c57de3e404 Remove hand-crafted Visual Studio solution. 2014-09-01 18:06:30 -03: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
76372feb19 Merge pull request #84 from bunnei/fix-hw-synchronization
Fix GPU/HW synchronization
2014-08-31 00:53:07 -04:00
bunnei
038a51aac1 Merge pull request #82 from yuriks/addr-types
Introduce VAddr and PAddr typedefs for ARM addresses.
2014-08-30 23:27:46 -04:00
bunnei
aabfcfe6ad GPU: Improve frame synchronization, increases compatibility with both homebrew and retail applications. 2014-08-30 23:24:14 -04:00
bunnei
eb36d3fc90 Core: Refactor core to use only one function for execution.
Core: Cleaned up comment to be more readable.

Citra: Changed loop to be more readable.
2014-08-30 23:23:38 -04:00
bunnei
738b88293c Loader: Added support for loading raw BIN executables.
- Useful for debugging homebrew

Qt: Updated GUI to support loading .bin files.
2014-08-30 23:23:33 -04:00
bunnei
3ade84cb7b Threading: Fix thread starting to execute first instruction correctly. 2014-08-30 23:23:32 -04:00
bunnei
ae93adddd1 srv::Initialize: Return "success" status code. 2014-08-30 23:23:31 -04:00
Yuri Kunde Schlesner
83c3d2bcd1 Introduce VAddr and PAddr typedefs for ARM addresses. 2014-08-31 00:04:11 -03:00
bunnei
6966fdf025 Loader: Added support for loading raw BIN executables.
- Useful for debugging homebrew

Qt: Updated GUI to support loading .bin files.
2014-08-28 17:51:49 -04:00
bunnei
304999dfeb Threading: Fix thread starting to execute first instruction correctly. 2014-08-28 17:51:49 -04:00
bunnei
fb908b9395 srv::Initialize: Return "success" status code. 2014-08-28 17:51:41 -04:00
bunnei
20d169e4a1 VideoCore: Fixes rendering issues on Qt and corrects framebuffer output size. 2014-08-26 17:34:52 -04:00
Tony Wasserka
941762a573 GPU: Fix a compiler warning about redundant semicolons. 2014-08-25 22:03:19 +02:00
Tony Wasserka
26ade98411 Pica/citra-qt: Replace command list view and command list debugging code with something more sophisticated. 2014-08-25 22:03:18 +02:00