Commit Graph

1040 Commits (82528ba7df7bb8b2a6d89c416a66aee5c39f7f66)

Author SHA1 Message Date
bunnei 4cb7a44d4e MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.
- Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU).
2014-12-12 00:15:47 +07:00
bunnei 3a75c8069e Merge pull request #256 from Subv/mutex
Kernel/Mutex: Properly lock the mutex when a thread enters it
2014-12-10 22:52:55 +07:00
Emmanuel Gil Peyrot 5a3b1b5f44 CFG:U: Store country codes as u16 instead of char pointers, and return the correct error in GetCountryCodeID. 2014-12-10 22:33:23 +07:00
bunnei ae3c6e82f7 Merge pull request #243 from bunnei/fix-gsp-synch
Fix gsp synch
2014-12-10 09:20:05 +07:00
archshift 4763fca9f8 Explicitly specify LE strings to iconv, fixes paths in Steel Diver 2014-12-09 22:07:28 +07:00
bunnei f94d8f9603 GSP: Trigger GPU interrupts at more accurate locations. 2014-12-09 19:07:14 +07:00
bunnei e90b37b935 GSP: Updated TriggerCmdReqQueue to return success code. 2014-12-09 19:07:14 +07:00
bunnei 3e1654eaa8 GSP: Updated RegisterInterruptRelayQueue to return expected magic number. 2014-12-09 19:07:14 +07:00
bunnei 170123982d GPU: Fixed bug in command list size decoding. 2014-12-09 19:07:13 +07:00
Yuri Kunde Schlesner 521e1cb7e0 Remove unused NDMA module 2014-12-09 18:27:16 +07:00
Tony Wasserka 8b8131baec More cleanups. 2014-12-09 16:37:34 +07:00
Tony Wasserka 0305435edd Pica: Re-enable command names on MSVC.
The affected code is no longer limited by compiler support on that platform.
2014-12-09 16:37:34 +07:00
Tony Wasserka ac4d7462cb citra-qt: Rename "Stop Tracing" to "Finish Tracing".
This better reflects that no commands are supposed to show up until you hit the button a second time.
2014-12-09 16:37:34 +07:00
Tony Wasserka 79bb403089 More coding style fixes. 2014-12-09 16:37:34 +07:00
Tony Wasserka 0cd27a511e Some code cleanup. 2014-12-09 16:37:34 +07:00
Tony Wasserka 55ce9aca71 citra-qt: Add pica framebuffer widget. 2014-12-09 16:37:34 +07:00
Tony Wasserka 2793619dce citra_qt: Add enhanced texture debugging widgets.
Double-clicking a texture parameter command in the pica command lists will spawn these as a new tab in the pica command list dock area.
2014-12-09 16:37:34 +07:00
Tony Wasserka fd194d95b0 citra-qt: Add texture viewer to Pica command list.
The texture viewer is enabled when selecting a write command to one of the texture config registers.
2014-12-09 16:37:34 +07:00
Tony Wasserka c63a495de6 Add GUI widget for controlling pica breakpoints. 2014-12-09 16:37:34 +07:00
Tony Wasserka 2c71ec7052 Pica/DebugUtils: Add breakpoint functionality. 2014-12-09 16:37:34 +07:00
Tony Wasserka 706f9c5574 citra-qt: Polish the pica tracing widget.
Changed start/stop button to reflect current tracing status.
Properly labeled column headers.
2014-12-09 16:37:34 +07:00
Tony Wasserka bf6b23f4a0 citra-qt: Add a utility spinbox class called CSpinBox.
This class has a few advantages over the regular QSpinBox:
- QSpinBox stores its as signed 32 bit integers, which for instance is unsuitable for representing memory addresses. CSpinBox uses 64 bit integers instead.
- QSpinBox does not provide an easy way to handle number input from bases different than 10.
- QSpinBox is quite inflexible in general and almost any sort of customization requires reimplementing it anyway.
2014-12-09 16:37:34 +07:00
Tony Wasserka 8db65723d2 Build fix for something which shouldn't have compiled successfully to begin with. 2014-12-09 16:37:34 +07:00
Tony Wasserka 27280f178b Fix some headers to include their dependencies properly. 2014-12-09 16:37:34 +07:00
bunnei b7327f807c Merge pull request #217 from archshift/cmd_buff
Log the cmd_buff arguments when citra comes across an unimplemented function
2014-12-08 23:13:07 +07:00
bunnei dd203f7068 Thread: Fixed to wait on address when in arbitration. 2014-12-08 19:44:10 +07:00
bunnei a6bf3fd613 Merge pull request #244 from bunnei/cleanup-memmap
MemMap: Updated memory map to subtract base address instead of mask.
2014-12-08 19:34:54 +07:00
bunnei f1ec1a0d2c Merge pull request #263 from lioncash/sasx
Fix emulation of SASX and SSAX instructions.
2014-12-08 19:17:54 +07:00
bunnei ff560a9428 Merge pull request #259 from ichfly/master
Loader: Add 3DSX support
2014-12-08 19:16:40 +07:00
bunnei 1f4953e1bb Merge pull request #264 from Subv/files
Kernel/File: Fixed file read/write hwtests
2014-12-08 18:05:03 +07:00
bunnei 72ad73519c Merge pull request #260 from archshift/opendir
Make OpenDirectory fail if the directory doesn't exist
2014-12-08 18:03:48 +07:00
Subv 1d1078fd8b Kernel/File: Fixed file read/write hwtests
The 3DS allows the user to read from files opened with the Write access modifier, even if he did not specify the Read access modifier.

Open the files in binary mode so that we can prevent CR/LF problems in Windows, where a line-end is replaced by these two bytes instead of just 0xA, this was causing problems with the GetSize test
2014-12-08 17:45:17 +07:00
Lioncash 905e3b616a armemu: Fix SSAX 2014-12-08 15:47:20 +07:00
ichfly 1aa969741d Loader: Add 3DSX support 2014-12-08 18:06:43 +07:00
Lioncash 62fd564854 armemu: Fix SASX 2014-12-08 01:44:37 +07:00
Lioncash b4256431aa armemu: Fix parenthesis warnings regarding bitwise ops 2014-12-07 23:58:12 +07:00
Tony Wasserka 3d8c6e61be StringUtil: Perform some minimal cleanup. 2014-12-07 23:52:17 +07:00
Tony Wasserka 4d4572c697 Integrate Boost into build system and perform a trivial cleanup in vertex_shader.cpp. 2014-12-07 23:52:17 +07:00
archshift 20d2ed0950 Make OpenDirectory fail if the directory doesn't exist
This is in line with what the hardware itself does.

It does this by splitting the initial directory opening into Directory.Open(), which will return false if a stat fails.
Then, Archive::OpenDirectory will return nullptr, and archive.cpp will return an error code .
2014-12-07 14:47:14 +07:00
Subv bc318c464b Mutex: Remove some forward declarations
Moved Mutex::WaitSynchronization to the end of the file.
2014-12-07 15:57:28 +07:00
Subv 64128aa61a Mutex: Release all held mutexes when a thread exits. 2014-12-07 15:44:21 +07:00
bunnei 2aa2d341d0 Merge pull request #245 from rohit-n/null-nullptr
Change NULLs to nullptrs.
2014-12-07 13:40:04 +07:00
Subv e3c8e4901c Mutex: Properly lock the mutex when a thread enters it
Also resume only the next immediate thread waiting for the mutex when it is released, instead of resuming them all.
2014-12-05 23:40:43 +07:00
bunnei 17fae11fc7 Merge pull request #250 from Subv/cbranch_2
SVC: Implemented GetThreadId.
2014-12-04 22:15:03 +07:00
bunnei 5056329a80 Merge pull request #222 from archshift/renamexyz
Implemented RenameFile and RenameDirectory in FS:USER
2014-12-04 22:07:47 +07:00
bunnei 21d183e1e6 Merge pull request #248 from lioncash/kernel
Misc minor kernel-related changes.
2014-12-04 22:05:20 +07:00
Subv 6fac2bf0ab Threads: Remove a redundant function.
Use the next_thread_id variable directly.
2014-12-04 14:59:56 +07:00
Subv ef1d5cda06 Threads: Implemented a sequential thread id 2014-12-04 08:13:53 +07:00
archshift 139a4d91d9 Updated archive.cpp functions for proper error handling 2014-12-03 22:50:44 +07:00
Subv 029ff9f1fd SVC: Implemented GetThreadId.
For now threads are using their Handle value as their Id, it should not really cause any problems because Handle values are unique in Citra, but it should be changed. I left a ToDo there because this is not correct behavior as per hardware.
2014-12-04 00:25:35 +07:00
bunnei 846dc72a37 Merge pull request #249 from lioncash/enum
mem_map: Make enum for addresses use u32 as the underlying type
2014-12-04 00:01:13 +07:00
bunnei 306b5392ca Merge pull request #247 from lioncash/const
hid_user: Pass by reference with PadButtonPress/PadButtonRelease
2014-12-03 23:56:35 +07:00
Lioncash 3ba32d2b53 mem_map: Make enum for addresses use u32 as the underlying type 2014-12-03 23:36:45 +07:00
bunnei abbc340957 Merge pull request #238 from archshift/dsp
Add stub for ConvertProcessFromDspDram
2014-12-03 23:35:06 +07:00
archshift a404ad5272 Add stub for ConvertProcessFromDspDram
Should theoretically push retail stuff further along
2014-12-03 20:03:57 +07:00
Lioncash 208598dbe2 kernel: Shorten GetCount 2014-12-03 22:52:02 +07:00
Lioncash 9b68d5e074 kernel: Make some functions const 2014-12-03 19:48:34 +07:00
Lioncash 7ff8f0d916 hid_user: Pass by reference with PadButtonPress/PadButtonRelease 2014-12-03 19:33:54 +07:00
purpasmart96 16fc98af64 PTM_U: Added a stub for GetBatteryLevel & GetBatteryChargeState & GetAdapterState 2014-12-03 15:09:59 +07:00
Rohit Nirmal 8a62423970 Change NULLs to nullptrs. 2014-12-03 12:57:57 +07:00
bunnei 63b1453dd8 Merge pull request #236 from rohit-n/sign-compare
Silence a few -Wsign-compare warnings.
2014-12-03 10:04:47 +07:00
bunnei e5b2733801 Merge pull request #231 from purpasmart96/serv_ac_wifi_status
AC_U: Added a stub for GetWifiStatus
2014-12-03 10:00:13 +07:00
bunnei e2e56c7bac Merge pull request #219 from Subv/ptm
PTM_U: Implemented the GetShellState function.
2014-12-03 09:58:52 +07:00
bunnei e3886adc22 MemMap: Updated memory map to subtract base address instead of mask.
- More readable, a little less error prone.

Conflicts:
	src/core/mem_map.h
	src/core/mem_map_funcs.cpp
2014-12-03 01:23:29 +07:00
purpasmart96 32d420330d AC_U: Added a stub for GetWifiStatus 2014-12-02 15:30:42 +07:00
Rohit Nirmal f9b53c3e94 Silence a few -Wsign-compare warnings. 2014-11-30 22:29:23 +07:00
bunnei d5be332d21 Merge pull request #237 from vaguilar/fix-viewport
Fixed viewport error caused by rounding
2014-11-30 23:24:16 +07:00
bunnei 884ecd58ea Merge pull request #224 from bunnei/dsp-service-improvements
Dsp service improvements
2014-11-30 23:21:34 +07:00
bunnei b0a5b3d986 Merge pull request #214 from Subv/master
CFG:U: Implemented the GetCountryCodeID and GetCountryCodeString
2014-11-30 23:19:07 +07:00
bunnei 1827bb1fcc Merge pull request #196 from archshift/settings
Merge Config::ReadXYZs
2014-11-30 23:17:45 +07:00
bunnei 3e286fff7c DSP: Added stubs for several commonly used DSP service functions. 2014-11-30 23:14:57 +07:00
bunnei 45fd3fe5c4 DSP: Fixed typo in port name. 2014-11-30 23:14:48 +07:00
Subv 4cdaac44d3 PTM_U: Implemented the GetShellState function. 2014-11-30 19:50:14 +07:00
vaguilar 95b33ee0a7 Fixed viewport error caused by rounding 2014-11-30 09:53:50 +07:00
bunnei e3d1ffff4b Merge pull request #225 from bunnei/fix-release-mutex
Mutex: Changed behavior to always release mutex for all threads.
2014-11-30 08:47:49 +07:00
bunnei a5afad0937 Merge pull request #226 from bunnei/svc-and-thread-fixes
Svc and thread fixes
2014-11-30 08:41:49 +07:00
bunnei 2ad9ad9297 Merge pull request #228 from linkmauve/glfw-error
GLFW: Add an error callback before calling glfwInit()
2014-11-30 08:41:17 +07:00
bunnei 13005d54aa Merge pull request #235 from yuriks/dyncom-map
dyncom: Use unordered_map rather than the terrible 2-level bb_map
2014-11-30 08:35:03 +07:00
Subv 5753da89e4 CFG:U: Implemented the GetCountryCodeID and GetCountryCodeString. 2014-11-29 21:16:28 +07:00
Emmanuel Gil Peyrot 648743cf66 GLFW: Add an error callback before calling glfwInit()
It will print a message to know what happened in case something went wrong in a GLFW call.

Also replace every printf() in the glfw emu-window by ERROR_LOG().
2014-11-29 23:03:04 +07:00
Yuri Kunde Schlesner 4a68e91a62 dyncom: Use unordered_map rather than the terrible 2-level bb_map
Seems (probably just placebo/wishful thinking) to make it slightly
faster. Also reduces memory usage and makes shutdown when debugging from
MSVC fast.
2014-11-29 17:42:39 +07:00
Lioncash 4f28861008 arm_dyncom_interpreter: Get rid of unused var warnings 2014-11-29 14:13:29 +07:00
vaguilar 223e76d51d Fixed formatting and switch statement warnings 2014-11-27 02:59:14 +07:00
bunnei de851ba1a1 Thread: Check that thread is actually in "wait state" when verifying wait. 2014-11-26 15:04:08 +07:00
bunnei f985469901 SVC: Add debug log to ArbitrateAddress. 2014-11-26 15:04:07 +07:00
bunnei e0e7443517 SVC: SleepThread should yield to the next ready thread. 2014-11-26 15:04:07 +07:00
bunnei a449e0e11a Mutex: Changed behavior to always release mutex for all threads. 2014-11-26 14:38:42 +07:00
Emmanuel Gil Peyrot f8c05e53c4 Remove unused includes to common/thread.h 2014-11-25 20:39:25 +07:00
archshift 43a682a106 Log the cmd_buff arguments when citra comes across an unimplemented function 2014-11-24 15:51:48 +07:00
archshift e5ff01c2cd Implemented RenameDirectory in FS:USER 2014-11-24 15:09:12 +07:00
archshift 45afc15aa6 Implemented RenameFile in FS:USER 2014-11-24 15:09:11 +07:00
Yuri Kunde Schlesner 8189593255 Use pointers instead of passing handles around in some functions. 2014-11-24 17:08:37 +07:00
Yuri Kunde Schlesner 22c86824a4 Remove duplicated docs/update them for changed parameters. 2014-11-24 17:08:36 +07: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 +07: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 +07: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 +07:00
archshift 8aeadbd95a Added DeleteFile and DeleteDirectory functions to FS:USER and the archives. 2014-11-23 00:33:43 +07:00
purpasmart96 9821bfcb8e Add more services and some fixes, along with more "override"
in the service's headers
2014-11-20 17:09:57 +07:00
bunnei c0cd0fa78e Merge pull request #211 from linkmauve/master
Remove trailing spaces from the entire project
2014-11-19 15:24:46 +07:00
bunnei 112768f436 Merge pull request #208 from lioncash/statics
Add static to some variables
2014-11-19 09:39:20 +07: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 +07: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 +07:00
Lioncash 7cbecde2ca Add static to some variables 2014-11-18 20:04:00 +07:00
purpasmart96 66431bceda Kernel:Add missing permissions in shared memory & svc 2014-11-18 15:57:25 +07:00
bunnei 40acd63631 Merge pull request #165 from neobrain/viewport-scaling
Stretch emulation output to render window and be display density independent
2014-11-18 18:32:01 +07:00
archshift 06c9712bc7 Merge Config::ReadXYZs 2014-11-18 15:12:49 +07:00
Tony Wasserka 219628d1c8 Merge pull request #207 from lioncash/docs
Fix documentation of parameters
2014-11-18 16:55:58 +07: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 +07: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 +07:00
Lioncash b37f91c617 system: Get rid of an unnecessary enum typedef 2014-11-18 09:00:32 +07:00
Lioncash 548c49dfe9 directory_sdmc: Fix a signed/unsigned mismatch comparison 2014-11-18 08:51:03 +07:00
Lioncash 64cc6cb6cf Fix documentation of parameters 2014-11-18 08:31:24 +07:00
Lioncash 1a8f466217 Remove extraneous semicolons 2014-11-18 08:27:16 +07:00
Tony Wasserka 963c923d59 citra GLFW: Ignore minimal window size hints.
GLFW provides no proper support for this, hence we just allow any window size to be used.
2014-11-18 13:16:02 +07:00
Tony Wasserka 5785f764ab EmuWindow: Add some explicit documentation and set proper minimal client area size. 2014-11-18 13:16:02 +07:00
Tony Wasserka 688a5c033e citra-qt: Small cleanup. 2014-11-18 13:16:02 +07:00
Tony Wasserka 6a6464807a EmuWindow: Add a TODO.
Implementing this function currently is not critical, as we don't perform any configuration changes, yet.

However, the interface is a good starting point for adding this functionality.
2014-11-18 13:16:02 +07:00
Tony Wasserka e02ff0121f MathUtil: Make Rectangle work with unsigned types. 2014-11-18 13:15:59 +07:00
Tony Wasserka c5c6e095f0 OpenGL Renderer: Cleanup viewport extent calculation. 2014-11-18 13:09:01 +07:00
Tony Wasserka 19bb01c223 EmuWindow: Better document the purpose of OnMinimalClientAreaChangeRequest. 2014-11-18 13:09:01 +07:00
Tony Wasserka 182476c96a EmuWindow: Remove window title getters/setters.
The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there.
Providing properly thread-safe window title getters and setters is a mess anyway.
2014-11-18 13:09:01 +07:00
Tony Wasserka ded9c8a826 EmuWindow: Add documentation. 2014-11-18 13:09:01 +07:00
Tony Wasserka 722ce22589 EmuWindow: Add support for specifying minimal client area sizes. 2014-11-18 13:09:01 +07:00
Tony Wasserka bd8f491e4c Fixup EmuWindow interface and implementations thereof. 2014-11-18 13:09:01 +07:00
Kevin Hartman 221a9b023d Viewport scaling and display density independence
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window.
On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
2014-11-18 13:06:05 +07:00
Tony Wasserka c8d933a142 Add a GUI logging channel.
Replace asserts with _dbg_assert_.
2014-11-18 13:03:02 +07: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 +07:00
bunnei 11641b5e79 Archive: Fixed to not destroy archive handle on close. 2014-11-17 22:19:14 +07:00
bunnei bcb0dbf7e1 Archive: Fixed close archive before freeing. 2014-11-17 22:19:14 +07: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 +07:00
bunnei a3107a6b57 FileSys: Updated backend code to use FileSys::Path instead of string for paths. 2014-11-17 21:49:24 +07:00
bunnei c04a04189a FileSys: Added DebugStr method to Path class. 2014-11-17 18:42:37 +07:00
bunnei 4ac4c3caf1 Merge pull request #201 from archshift/boss
Add missing boss:U service
2014-11-17 17:46:18 +07:00
bunnei 77fe4b5c9e Merge pull request #199 from lioncash/prototype
mem_map: Add missing prototype for Write64
2014-11-17 15:21:41 +07:00
archshift e27f169acb Add missing boss:U service, needed according to Nintendo Zone logs. 2014-11-17 07:31:37 +07:00
Lioncash 827e7a1898 emu_window: Fix initializer list order.
Gets rid of a warning on OSX.
2014-11-17 09:27:59 +07:00
Lioncash cfea27a615 mem_map: Add missing prototype for Write64 2014-11-16 22:50:13 +07:00
Tony Wasserka 8717c79fe4 Merge pull request #195 from lioncash/control
vertex_shader: Fix control reaches end of function warning
2014-11-16 22:50:00 +07:00
Lioncash bd76783d91 vertex_shader: Fix control reaches end of function warning 2014-11-16 16:44:14 +07: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 +07:00
bunnei 26622818ae Merge pull request #193 from lioncash/fmt
Fix two format strings.
2014-11-15 01:41:28 +07:00
bunnei 613627205c Merge pull request #194 from lioncash/virt
ARM_Interface: Make destructor virtual
2014-11-15 01:38:51 +07:00
Lioncash e8f4361d76 ARM_Interface: Make destructor virtual
Fixes some warnings on OSX.
2014-11-14 12:10:35 +07:00
Lioncash ac58b76e71 Fix two format strings. 2014-11-14 12:08:26 +07: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 +07:00
archshift 1f7c4ab7f6 Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functions 2014-11-12 19:30:17 +07:00
bunnei a490490336 Merge pull request #188 from bunnei/apt-fixes
APT_U: Various improvements and bug fixes.
2014-11-12 00:06:45 +07:00
bunnei 9fb549cb84 APT_U: Added stub for function AppletUtility. 2014-11-11 23:51:54 +07:00
bunnei 19cfcfe8c0 APT_U: Set a valid parameter buffer size in GlanceParameter.
- Also Clarified GlanceParameter/ReceiveParameter documentation.
2014-11-11 23:51:54 +07:00
bunnei 8eced1b697 APT_U: Release service lock on initialization. 2014-11-11 23:51:54 +07:00