Commit Graph

2931 Commits

Author SHA1 Message Date
archshift
eac4c016cb arm_dyncom_interpreter: rename operation functions to fit style guide 2016-06-10 18:42:08 -07:00
archshift
5297f5dfc9 arm_dyncom_interpreter: Rename anonymous enum to TransExtData 2016-06-10 18:35:57 -07:00
archshift
2c482722e7 arm_dyncom_interpreter.cpp: #include translation info from inc files 2016-06-10 18:25:30 -07: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
a371744575 arm_dyncom_interpreter: rename operation functions to fit style guide 2016-06-08 21:03:49 -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
shinyquagsire23
c6f87f7e2c gdbstub: E0 should be E00 2016-06-08 14:14:59 -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
wwylele
7d56e88369 Thread: update timeout when rerunning WaitSynch 2016-06-04 09:27:16 +03:00
mailwl
07cc781163 gsp::gpu: Reset g_thread_id in UnregisterInterruptRelayQueue 2016-06-01 09:40:15 +03:00
mailwl
e85b22320a Fix parameter name in EnableNotification 2016-05-31 10:06:00 +03:00
mailwl
eea08f281d Fix mistakes, add output header codes 2016-05-31 10:06:00 +03:00
mailwl
eb231cb19d remove ugly function 2016-05-31 10:06:00 +03:00
mailwl
dc338ccecf srv: Update according 3dbrew 2016-05-31 10:06:00 +03:00
wwylele
81d3462a19 Switch context on the same thread if necessary 2016-05-30 07:34:53 +03:00
bunnei
ab4b27f0f5 Merge pull request #1692 from Subv/rm_getpointer2
Memory: Remove most usages of GetPointer
2016-05-29 21:57:07 -04:00
bunnei
1104913a8f Merge pull request #1756 from wwylele/config-cleanup
Config block: clean up
2016-05-28 20:42:17 -04:00
Subv
0aef634a54 Memory: Handle RasterizerCachedMemory and RasterizerCachedSpecial page types in the memory block manipulation functions. 2016-05-28 13:52:50 -05:00
Subv
660499ac01 Memory: Make ReadBlock and WriteBlock accept void pointers. 2016-05-28 13:52:49 -05:00
Subv
99695d03d2 SOC_U: Remove usage of GetPointer 2016-05-28 13:52:49 -05:00
MerryMage
59b268de35 SSL_C: Remove use of Memory::GetPointer 2016-05-28 13:52:48 -05:00
MerryMage
5f33d2cf07 GSP_GPU: Remove use of Memory::GetPointer 2016-05-28 13:52:47 -05:00
MerryMage
31d49e0109 Memory: CopyBlock 2016-05-28 13:44:49 -05:00
MerryMage
e936f5952c DSP_DSP: Remove use of Memory::GetPointer 2016-05-28 13:44:49 -05:00
MerryMage
896e5009ae FS/Archive: Remove use of Memory::GetPointer 2016-05-28 13:44:44 -05:00
Mat M
031a9c57bb Merge pull request #1568 from JayFoxRox/fix-printf
Fix ftoi and disable VFPv3
2016-05-26 19:03:00 -04:00
bunnei
859c36c269 Merge pull request #1810 from JayFoxRox/fix-float-exceptions
Fix float exceptions
2016-05-26 18:28:00 -04:00
Mat M
ade0889519 Merge pull request #1855 from MerryMage/memory-headers-20160526
Memory: Added necessary headers and removed unnecessary header
2016-05-26 14:19:31 -04:00
MerryMage
80abe6eb08 Memory: Added necessary headers and removed unnecessary header 2016-05-26 18:55:37 +01:00
bunnei
f50a32bfce Merge pull request #1817 from linkmauve/smdh-stuff
Improve SMDH support in loaders and frontends
2016-05-25 16:40:36 -04:00
bunnei
c106f71beb New3DS: Minor style cleanup to #1520. 2016-05-24 17:24:11 -04:00
bunnei
2e5e7d9be0 Merge pull request #1520 from JamePeng/checknew3ds
Implement CheckNew3DS and CheckNew3DSApp
2016-05-24 17:19:26 -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
MerryMage
64068583fb CFG: Remove use of Memory::GetPointer 2016-05-21 11:14:13 -05:00
MerryMage
fddd243b17 APT: Remove use of Memory::GetPointer 2016-05-21 11:14:12 -05:00
MerryMage
1ebaaf9bb1 Kernel/Thread: Remove use of Memory::GetPointer 2016-05-21 11:14:11 -05:00
MerryMage
aa84cab4e9 Applets/swkdb: Remove use of Memory::GetPointer 2016-05-21 11:14:10 -05:00
MerryMage
ca17df5757 Memory: ZeroBlock 2016-05-21 11:14:09 -05:00
MerryMage
2be17a0c6e FileSys/Path: Replace Memory::GetPointer with Memory::ReadBlock 2016-05-21 11:14:03 -05:00
MerryMage
3873b36db3 Memory: ReadBlock/WriteBlock 2016-05-21 11:12:36 -05:00
MerryMage
c084fc824c Memory: IsValidVirtualAddress/IsValidPhysicalAddress 2016-05-21 11:12:35 -05:00
Emmanuel Gil Peyrot
314ce5e505 CitraQt: Simplify the game list loader code 2016-05-21 17:09:59 +01:00
Emmanuel Gil Peyrot
9a35d1fb4a Loader: Add a GetFileType method to get the type of a loaded file 2016-05-21 17:09:59 +01:00
Emmanuel Gil Peyrot
8fc9c03126 Loader, Frontends: Refactor loader creation and game loading
This allows frontends to keep a single loader and use it multiple times
e.g. for code loading and SMDH parsing.
2016-05-21 17:09:56 +01:00
wwylele
86ea7995ad SVC::WaitSynchronizationN: Reschedule at the end 2016-05-21 18:29:38 +03:00
Jannik Vogel
edf30d84cc Remove exceptions parameter from normaliseround VFP functions 2016-05-18 16:28:13 +02:00
Jannik Vogel
693cca8f1f Fix exception propagation for VFP single precision 2016-05-18 15:24:42 +02:00
Jannik Vogel
7dde13f875 Fix exception propagation for VFP double precision 2016-05-18 15:24:42 +02:00
Jannik Vogel
3a45eacb16 Fix read-after-write in SMUAD, SMLAD, SMUSD, SMLSD 2016-05-18 14:03:02 +02: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
bunnei
a39144050b Merge pull request #1800 from JayFoxRox/set-fpscr
Set fpscr for new threads
2016-05-17 21:24:57 -04:00
Jannik Vogel
af37dd0d52 Set fpscr for new threads 2016-05-17 08:59:52 +02:00
Jannik Vogel
501d0bc5ed Fix ftoi behaviour 2016-05-16 15:00:45 +02:00
Jannik Vogel
6fe0cb671d Respect fpscr in ftoiz 2016-05-16 15:00:45 +02:00
Jannik Vogel
1643786c04 Disable VFP3 instructions 2016-05-16 15:00:45 +02:00
Maribel
5c8beca792 DSP_DSP: Remove GetHeadphoneStatus logspam (#1799) 2016-05-15 20:43:01 -04:00
wwylele
6cccdcacd2 fixup! fixup! Refactor input system 2016-05-15 19:35:06 +03:00
wwylele
416faa20d1 implement circle pad modifier 2016-05-15 13:24:22 +03:00
wwylele
03631f9b8f Refactor input subsystem 2016-05-15 13:24:22 +03:00
Subv
64da2bf0cd Memory: Fixed a regression caused by #1695 and #1689.
Reserve enough space in the vector that holds the linear heap memory to prevent relocations of the backing memory when growing too much.

Closes #1790
2016-05-14 11:24:19 -05:00
bunnei
18b517e236 Merge pull request #1689 from Subv/shmem
Kernel: Implemented shared memory.
2016-05-13 15:33:44 -04:00
bunnei
0d8bd3ba36 Merge pull request #1695 from Subv/tls_alloc
Kernel/Threads: Dynamically allocate the TLS region for threads.
2016-05-12 21:51:35 -04:00
Subv
ac2de12ed8 HLE/Applets: Give each applet its own block of heap memory, and use that when creating the framebuffer shared memory block. 2016-05-12 20:01:59 -05:00
Subv
d261984f54 Kernel: Account for automatically-allocated shared memories in the amount of used linear heap memory. 2016-05-12 20:01:59 -05: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
Subv
5679d066b5 Kernel/SharedMemory: Log an error when Map fails. 2016-05-12 20:01:27 -05:00
Subv
0fb6d2a247 Kernel: Implemented shared memory permissions. 2016-05-12 20:01:26 -05:00
Subv
9005cda664 APT: Implement relocating the shared font to its true address. 2016-05-12 20:01:20 -05:00
Subv
f72bd57212 Kernel/Memory: Remove the Shared Memory region from the legacy memory map. 2016-05-12 20:00:33 -05:00
Subv
1bd0cf542f Kernel/SharedMemory: Properly implemented shared memory support.
Applications can request the kernel to allocate a piece of the linear heap for them when creating a shared memory object.
Shared memory areas are now properly mapped into the target processes when calling svcMapMemoryBlock.

Removed the APT Shared Font hack as it is no longer needed.
2016-05-12 20:00:32 -05:00
Subv
42a50da76b Kernel/SVC: Fixed the register order for svcCreateMemoryBlock.
R0 is used as the last parameter instead of R4.
2016-05-12 20:00:29 -05:00
Lioncash
0a52e1f587 gdbstub: Silence missing prototype warnings 2016-05-10 09:17:07 -04:00
Lioncash
0f941d0245 dyncom: Reset the context into user mode correctly
The other mode was system mode.
2016-05-09 16:30:55 -04:00
bunnei
282a2ad539 Merge pull request #1766 from Subv/log_cpu
Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1)
2016-05-08 15:03:08 -04:00
bunnei
6abc6003f5 Merge pull request #1718 from alex-laties/fixup-type-conversions
fixup simple type conversions where possible
2016-05-07 17:24:16 -04:00
bunnei
8e9b33a34a Merge pull request #1761 from Subv/applets_fb
HLE/Applets: Use the correct size for the framebuffer SharedMemory
2016-05-07 17:21:48 -04:00
Alexander Laties
0a31e373f1 fixup simple type conversions where possible 2016-05-07 11:41:55 -04:00
Subv
5b7f86708c Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).
We do not currently implement any cores other than the AppCore (Core 0).
2016-05-07 10:23:03 -05:00
Subv
d192fb066d Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.
Each thread gets a 0x200-byte area from the 0x1000-sized page, when all 8 thread slots in a single page are used up, the kernel allocates a new page to hold another 8 entries.

This is consistent with what the real kernel does.
2016-05-07 10:18:47 -05:00
Subv
6970b7d3d5 HLE/Applets: Use the correct size for the framebuffer SharedMemory in the swkbd and MiiSelector applets. 2016-05-07 10:01:40 -05:00
wwylele
d2182568ad fix:return proper error 2016-05-06 21:42:13 +03:00
bunnei
75cbfeee58 Merge pull request #1762 from bunnei/global
hle: Get rid of direct global access to g_reschedule
2016-05-05 21:45:57 -04:00
bunnei
4cb2995c61 HLE: Rename RescheduleIsPending to IsReschedulePending. 2016-05-05 21:34:10 -04:00
bunnei
55946cdc11 Merge pull request #1700 from wwylele/gamelist-icon
Qt: display game icon and title in the game list
2016-05-05 18:35:24 -04:00
mailwl
e311398a22 Layout Mii parameters input/output, and return success as result of applet work 2016-05-05 22:31:33 +03:00
wwylele
5d5dd66d92 add icon & title to game list 2016-05-04 13:02:49 +03:00
wwylele
9b66e0dc8b clean up config block 2016-05-03 19:27:47 +03:00
bunnei
a6e76c0903 Merge pull request #1732 from wwylele/config00170000
add config block 0x00170000; remove duplicated content
2016-05-02 19:04:20 -04:00
wwylele
7e1b76d406 remove duplicated function declaration 2016-05-01 07:44:55 +03:00
Emmanuel Gil Peyrot
691a42fe98 VideoCore: Run include-what-you-use and fix most includes. 2016-04-30 17:02:41 +01:00
Emmanuel Gil Peyrot
387d935a54 LCD: Remove unneeded #undef with no matching #define. 2016-04-30 13:58:26 +01:00
bunnei
c1f0044a4b Merge pull request #1729 from MerryMage/null-sink
Audio Config: Implement null sink and implement sink configuration
2016-04-30 03:49:11 -04:00
MerryMage
4e971f44a2 Audio: Add sink selection to configuration files 2016-04-30 07:41:02 +01:00
bunnei
594bd182b4 Merge pull request #1650 from JamePeng/update-the-ndm-code
Update the stub code of NDM service!
2016-04-30 00:38:15 -04:00
bunnei
15d21c0dc5 Merge pull request #1647 from mailwl/acu-closeasync
ac:u: stub CloseAsync; align memory size in svc:GetProcessInfo(type=2)
2016-04-30 00:11:08 -04:00
bunnei
eb2d6e4015 Merge pull request #1699 from mailwl/gpu-rights
gsp::Gpu: implement AcquireRight, ReleaseRight functions
2016-04-29 20:50:08 -04:00
wwylele
84ade0713c add config block 0x00170000 2016-04-29 13:31:29 +03:00
Yuri Kunde Schlesner
e3a8292495 Common: Remove section measurement from profiler (#1731)
This has been entirely superseded by MicroProfile. The rest of the code
can go when a simpler frametime/FPS meter is added to the GUI.
2016-04-29 00:07:10 -07:00
bunnei
1ecee38468 Merge pull request #1708 from MerryMage/dsp_dsp
DSP Service: Cleanup
2016-04-27 11:34:38 -04:00
MerryMage
c379b22117 DSP_DSP: Fix log format strings and arguments 2016-04-27 06:35:12 +01:00
MerryMage
2929b67c5f DSP_DSP: Add return IPC headers 2016-04-27 06:35:08 +01:00
MerryMage
ff6db69c60 DSP_DSP: Updated interrupt implementation 2016-04-27 06:35:06 +01:00
bunnei
12f72a6597 y2r_u: Cleanup some formatting. 2016-04-26 21:50:56 -04:00
bunnei
61992170ac Merge pull request #1447 from JamePeng/update-y2r-service
Update the code of service y2r!
2016-04-26 19:29:57 -04:00
Sam Spilsbury
e16541e47c am: title_id is long long uint 2016-04-24 23:40:41 +08:00
MerryMage
913f7ee524 DSP_DSP: Remove unused variable 2016-04-24 09:01:53 +01:00
mailwl
67c657bf80 return checks if event and memory created 2016-04-23 16:17:03 +03:00
Sam Spilsbury
60f2587eac ncch: Use correct format specifier (for long long uint) 2016-04-23 11:54:02 +08:00
Sam Spilsbury
040b7386a9 fs: Fix what appears to be a typo (filename_size / file_size) 2016-04-23 11:54:02 +08:00
Sam Spilsbury
41ec40e9aa gdbstub: Don't check if unsigned int is > 0 2016-04-23 11:54:02 +08:00
mailwl
efdff9ad3e gsp::Gpu: implement AcquireRight, ReleaseRight functions 2016-04-22 21:15:25 +03:00
tfarley
22f3a7e94c HWRasterizer: Texture forwarding 2016-04-21 17:27:56 -04:00
tfarley
e46d086189 Config: Add scaled resolution option 2016-04-21 17:27:48 -04:00
mailwl
bd8cc69893 ac:u: stub CloseAsync; check memory size aling in svc:GetProcessInfo(type=2) 2016-04-21 10:34:45 +03:00
JamePeng
14602287f7 Update the stub code of NDM service! 2016-04-21 02:25:58 +08:00
JamePeng
854912ca5d Update the code of service y2r! 2016-04-20 18:38:01 +08:00
JamePeng
7129611e65 Implement CheckNew3DS and CheckNew3DSApp
Append an item[is_new3ds] to config file[System] group

Implement APT::SetNSStateField,it will update the unknown NS_state_field
2016-04-20 18:12:05 +08:00
bunnei
32dfd4b4fe Merge pull request #1612 from ObsidianX/get-set-sockopt
SOC:U GetSockOpt/SetSockOpt
2016-04-18 20:45:19 -04:00
Lioncash
1cc183703a core: Clean out some unnecessary header includes 2016-04-16 00:08:49 -04:00
bunnei
2b422fbcc5 Merge pull request #1667 from wwylele/ncch-loader-fix
loader: only decompress code section
2016-04-15 17:13:34 -04:00
JamePeng
8d5a6110f7 Y2R: num_tiles should be allowed when its value is 128 (#1669) 2016-04-14 21:36:07 -07:00
wwylele
727d508e02 ncch:only decompress .code section 2016-04-14 18:33:42 +03:00
bunnei
38f4c9cce9 Merge pull request #1613 from mailwl/anp
Set Kernel config "Hardware Inited" to 1 (true)
2016-04-11 16:26:47 -04:00
Jannik Vogel
f2c8619704 CitraQt: Apply config at startup 2016-04-11 15:18:00 +02:00
mailwl
df0a81621f Set Kernel config "Unknown Value" to 0x1 2016-04-11 13:47:52 +03:00
mailwl
2efc1c9348 Fix BLX LR opcode interpretation 2016-04-09 19:11:02 +03:00
bunnei
a4c5d8fd50 Merge pull request #1644 from polaris-/gdb-fixes
Adopted WinterMute's gdbstub changes
2016-04-08 16:03:40 -04:00
JamePeng
9045c57d6f update the code of AM service! (#1623) 2016-04-08 15:44:00 -04:00
mailwl
61ec5fa776 cecd:u: stub GetCecStateAbbreviated (#1648) 2016-04-08 15:39:52 -04:00
mailwl
4630209c4c Update cpsr (T)humb bit while creating thread 2016-04-08 18:41:09 +03:00
bunnei
f531d4b810 Merge pull request #1577 from JamePeng/update-apta-func
Append the missing function name"GetAppletInfo", "SetAppCpuTimeLimit" and "GetAppCpuTimeLimit" to APT:A
2016-04-06 21:07:08 -04:00
mailwl
06a4369f75 Fix thumb ADR instruction alignment 2016-04-06 19:46:58 +03:00
polaris-
44d746fc92 Adopted WinterMute's gdbstub changes
This fixes the comments left on the PR (whitespace, SO_REUSEADDR,
comment changes).
2016-04-06 07:01:00 -04:00
JamePeng
857bf9cd09 append SetAppCpuTimeLimit and GetAppCpuTimeLimit to APT:A 2016-04-06 14:24:09 +08:00
bunnei
dccadce074 Merge pull request #1435 from mailwl/frd_u
frd:u: Initial stub some functions
2016-04-05 23:04:35 -04:00
Mathew Maidment
aa6380e5bc Merge pull request #1643 from MerryMage/make_unique
Common: Remove Common::make_unique, use std::make_unique
2016-04-05 20:10:11 -04:00
MerryMage
a06dcfeb61 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
JamePeng
af9a8258b9 implement APT::GetStartupArgument 2016-04-05 02:04:58 +08:00
JamePeng
ef47d855ce Append the missing function name"GetAppletInfo" to APT:A 2016-04-05 01:57:18 +08:00
bunnei
6d24c73ea9 Merge pull request #1616 from exhalatio/dlp_dummy
Dummy implementation dlp:SRVR Service.
2016-04-03 10:10:58 -04:00
exhalatio
bbdfbe44e6 Dummy implementation dlp:SRVR Service. 2016-04-03 06:05:20 +09:00
bunnei
e5e3b97db2 Merge pull request #1619 from mailwl/cecd
cecd:u: stub GetCecInfoEventHandle, GetChangeStateEventHandle
2016-04-02 01:43:35 -04:00
Ryan Loebs
58ee548ed8 Rework sockopt translation to match the error translation code already in place 2016-04-01 22:19:21 -07:00
bunnei
9d7028bcfb Merge pull request #1390 from purpasmart96/citra_gsp_error_codes
GSP: Return proper error codes for register writes
2016-04-01 10:50:36 -04:00
Mathew Maidment
80c16961ae Merge pull request #1618 from MerryMage/one-step
Prevent cache overflow when single stepping
2016-03-31 11:00:42 -04:00
bunnei
67c982be1b Merge pull request #1419 from mailwl/branch-gsp
Add gsp functions: SetAxiConfigQoSMode, UnregisterInterruptRelayQueue
2016-03-31 08:52:38 -04:00
mailwl
cb8e85a37d cecd:u: stub GetCecInfoEventHandle, GetChangeStateEventHandle 2016-03-31 14:59:10 +03:00
mailwl
f7619a9a19 Add gsp functions: SetAxiConfigQoSMode, UnregisterInterruptRelayQueue 2016-03-31 10:40:25 +03:00
purpasmart96
abe5c6efec GSP: Return proper error codes for register writes 2016-03-30 18:31:49 -07:00
Ryan Loebs
2faafff1b9 Code style 2016-03-30 13:51:34 -07:00
MerryMage
cbba0bec7c DynCom: Optimize single stepping 2016-03-30 18:57:59 +01:00
Ryan Loebs
b1f89408dd Added GetSockOptName
Filter out and translate invalid sockopt names.
2016-03-30 00:25:19 -07:00
Ryan Loebs
0a7d53692a Derp: win32: typedef int socklen_t; 2016-03-29 14:48:25 -07:00
Ryan Loebs
64815a8b16 But of course, Windows uses 'int' while Linux uses 'socklen_t' 2016-03-29 14:33:32 -07:00
Ryan Loebs
b8422b24bd Compiling on Windows now 2016-03-29 14:24:03 -07:00
Ryan Loebs
aa5bb3b997 Formatting... 2016-03-29 04:45:17 -07:00
Ryan Loebs
65883d9327 Addressing PR comments 2016-03-29 04:42:58 -07:00
Ryan Loebs
91dbebbcc5 SOC Updates
-Implement GetSockOpt / SetSockOpt
-Fix bug in RecvFrom where sending from localhost
 does not fill in src_addr/src_addr_len on Linux
2016-03-28 23:34:34 -07:00
Ryan Loebs
1ce8cb148c Add common methods to all cfg:* ports 2016-03-28 23:32:25 -07:00
mailwl
81d988b022 frd:u: Initial stub some functions 2016-03-27 10:08:04 +03:00
wwylele
aeb29a1a60 use reference instead of pointer 2016-03-26 10:50:02 +03:00
bunnei
39da819b55 Merge pull request #1549 from wwylele/acc_gyro
hid: implement accelerometer and gyroscope back-end
2016-03-25 21:07:21 -04:00
wwylele
1d2070d0d3 implement GyroscopeCalibrateParam 2016-03-25 12:22:02 +03:00
wwylele
db151efd0a implement accel and gyro backend 2016-03-22 18:35:03 +02:00
bunnei
85edb851b0 Merge pull request #1560 from lioncash/savedata
archive_extsavedata: Fix member initialization order
2016-03-22 11:56:47 -04:00
bunnei
e16899783d Merge pull request #1563 from lioncash/lolfiq
armstate: Correct FIQ register banking
2016-03-22 08:38:48 -04:00
Lioncash
d53c9cde1a armstate: Correct FIQ register banking
FIQ has seven banked registers (R8 to R14), not two.
2016-03-21 18:56:27 -04:00
bunnei
446d7c7e55 Merge pull request #1559 from lioncash/vec
soc_u: Get rid of explicit delete and new
2016-03-21 11:19:18 -04:00
Lioncash
04f8d39a96 session: Make helper functions constexpr 2016-03-21 04:07:03 -04:00
Lioncash
c99f47d8f0 loader: Make MakeMagic constexpr 2016-03-21 03:28:22 -04:00
Lioncash
6b7ebb3f82 hle: Get rid of global access to g_reschedule
This shouldn't be directly exposed if there's already a partial API that operates on it.
We can just provide the rest of that API.
2016-03-21 02:57:12 -04:00
Lioncash
f6ad3e42f0 archive_extsavedata: Fix member initialization order
shared appears in the initializer list before mount_point
2016-03-21 02:09:12 -04:00
Lioncash
9ea3d55243 soc_u: Get rid of explicit delete and new 2016-03-21 01:22:44 -04:00
bunnei
b83e95727f Merge pull request #1302 from Subv/save_fix
HLE/FS: Fixed many corner cases in our file handling
2016-03-20 16:11:49 -04:00
Subv
f707026ac5 HLE/FS: Change the error code returned when an ExtSaveData archive is not found.
This allows Fire Emblem to boot again.
2016-03-20 14:52:50 -05:00
Subv
3aa42627a3 HLE/FS: Corrected some style concerns. 2016-03-20 14:52:26 -05:00
Subv
95380d8950 HLE/FS: Fixed creating the config savefile when it doesn't exist.
This fixes a regression.
2016-03-20 14:30:03 -05:00
Subv
d26c6b3212 HLE/FS: Implemented GetFormatInfo
Format information is currently only implemented for the ExtSaveData, SharedExtSaveData and SaveData archives, the information is stored in a file alongside the root folder of the archive.
2016-03-20 14:30:01 -05:00
Subv
9b2d643451 HLE/FS: Don't return an error when deleting the ExtSaveData if it does not exist. 2016-03-20 14:28:24 -05:00
Subv
95b34f8081 HLE/FS: Return the proper error codes when opening files. 2016-03-20 14:28:22 -05:00
Subv
802ef6d099 HLE/FS: Fixed the OpenDirectory error code 2016-03-20 14:28:19 -05:00
Subv
96f0e32f83 HLE/FS: Return the proper error codes on file Read/Write operations.
These operations are limited by the open flags specified while opening the file.
2016-03-20 14:28:17 -05:00
Subv
09b0564c75 HLE/FS: Corrected the error codes for DeleteFile 2016-03-20 14:28:14 -05:00
Subv
b350f192bb HLE/FS: Corrected the error codes for CreateFile 2016-03-20 14:28:10 -05:00
Subv
381a5c053f HLE/FS: FS::CreateFile takes an u64 for the file size. 2016-03-20 14:28:08 -05:00
LittleWhite
89a43b8447 Fix missing header 2016-03-20 14:35:51 +01:00
bunnei
06b70d170e Merge pull request #1505 from pippo2931/fef
GetArchiveResource stub
2016-03-18 00:32:53 -04:00
Lioncash
c928b04eee core/video_core: Make NumIds functions constexpr 2016-03-17 00:29:47 -04:00
Lioncash
39baad9926 core/video_core: Don't cast away const in subscript operators
Not to say these subscript operators aren't totally ugly as is.
2016-03-17 00:27:15 -04: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
wwylele
ab67f0ffa3 hid: fix pad update 2016-03-13 11:19:17 +02:00
Lioncash
856a1d0386 svc: Move ResetType enum to the kernel event header 2016-03-12 21:47:41 -05:00
Lioncash
31797a242f svc: Remove unused ArbitrationType enum
An equivalent enum already exists within address_arbiter.h
2016-03-12 15:09:13 -05:00
Lioncash
12e92f17de svc: Make ResetType an enum class 2016-03-12 15:06:31 -05:00
pippo2931
8186f1271b Fix header 2016-03-12 11:05:48 -08:00
pippo2931
31abe54c99 GetArchiveResource stub 2016-03-12 11:01:12 -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
bunnei
afb5140b53 Merge pull request #1500 from lioncash/nullptr
gsp_gpu: Change 0 literal to nullptr
2016-03-12 10:15:02 -05:00
Lioncash
fba547b924 gsp_gpu: Change 0 literal to nullptr 2016-03-11 22:59:48 -05:00
Lioncash
d7dd6c8bd1 hle: Update service function tables 2016-03-11 22:23:51 -05:00
LittleWhite
e649f5d98d Fix missing return 2016-03-09 22:20:08 +01:00
bunnei
4a2d1571bc Merge pull request #1474 from lioncash/renderer
renderer_base: Minor changes
2016-03-09 10:57:38 -05:00
bunnei
8530a2d7df Merge pull request #1344 from LittleWhite-tb/error-output
Output errors in GUI
2016-03-08 23:12:04 -05:00
Lioncash
bf76afc68d renderer_base: Don't directly expose the rasterizer unique_ptr
There's no reason to allow direct access to the unique_ptr instance. Only
its contained pointer.
2016-03-08 21:31:44 -05:00
LittleWhite
4be68dddfb Improve error report from Init() functions
Add error popup when citra initialization failed
2016-03-08 22:05:25 +01:00
MerryMage
004991d79e DSP: Implement Pipe 2
Pipe 2 is a DSP pipe that is used to initialize both the DSP hardware (the
application signals to the DSP to initialize) and the application (the DSP
provides the memory location of structures in the shared memory region).
2016-03-06 21:25:44 +00:00
Yuri Kunde Schlesner
6aa90e13f9 Memory: Do correct Phys->Virt address translation for non-APP linheap 2016-03-05 22:09:59 -08:00
Mathew Maidment
8ee230fe1c Merge pull request #1455 from yuriks/ResultVal-union
core: Use unrestricted union to hold storage of ResultVal value
2016-03-05 23:29:14 -05:00
MerryMage
5b0fe77140 DSP: Print hash of firmware to console 2016-03-06 00:11:17 +00:00
Yuri Kunde Schlesner
6dd05e610a core: Use unrestricted union to hold storage of ResultVal value 2016-03-05 00:13:20 -08:00
Yuri Kunde Schlesner
b967a581a1 Loader/NCCH: Log the program ID during loading
This is useful for all sorts of things, but mainly to identify save
folders more easily.
2016-03-04 23:53:10 -08:00
bunnei
987d85a33b Merge pull request #1429 from mailwl/branch-acu
ac:u IsConnected implemented
2016-03-05 02:10:25 -05:00
bunnei
878562c291 Merge pull request #1389 from yuriks/stub-cam
Stub CAM:U service
2016-03-04 10:11:09 -05:00
mailwl
d6be7ff683 ac:u: Stub IsConnected 2016-03-04 15:59:02 +03:00
LittleWhite
7ad669a911 Display errors in GUI when loading ROM failed 2016-03-03 22:52:29 +01:00
bunnei
ea0ca17215 Merge pull request #1434 from Kloen/legend
Add THREADPROCESSORID_ALL on SVC::CreateThread
2016-03-02 09:09:09 -05:00
bunnei
cddb9bd2aa Merge pull request #1297 from Subv/saves
DiskDirectory: Initialize the directory member with valid info.
2016-03-01 17:16:05 -05:00
Kloen
1149e66820 ThreadProcessorId_All on SVC::CreateThread 2016-03-01 12:03:32 +01:00
Yuri Kunde Schlesner
1912c4691b Service/CFG: Fix potential endianess issue 2016-02-29 23:56:02 -08:00
Yuri Kunde Schlesner
228d8ac14a Service/CFG: Add block 0x000A0000 (username) to default config file 2016-02-29 23:55:48 -08:00
Yuri Kunde Schlesner
338a0f01f2 Service/CAM: Add doxycomments to all service functions 2016-02-29 22:53:36 -08:00
mailwl
2e13b7f3ca Initial implementation ir:user 2016-02-26 18:39:28 +03:00
MerryMage
8b00954ec7 AudioCore: Skeleton Implementation
This commit:
* Adds a new subproject, audio_core.
* Defines structures that exist in DSP shared memory.
* Hooks up various other parts of the emulator into audio core.

This sets the foundation for a later HLE DSP implementation.
2016-02-21 13:13:52 +00:00
Yuri Kunde Schlesner
fc6fa0f088 Service/CAM: Dummy implementation of some functions
Thanks to @mailwl for the initial version of the stubs.
2016-02-13 01:16:08 -08:00
MerryMage
6c71858c5c BitField: Make trivially copyable and remove assignment operator 2016-02-12 19:51:16 +00:00
Lioncash
0937bed8d8 services: Get rid of unnecessary includes 2016-02-02 01:40:23 -05:00
Lioncash
5e5bb0c32e services: Update function tables 2016-02-01 21:49:44 -05:00
bunnei
cd0b31fd73 Merge pull request #1377 from MerryMage/mmio
Memory: Implemented MMIO
2016-01-30 19:03:33 -05:00
MerryMage
2b93313348 Memory: Implement MMIO 2016-01-30 18:41:04 +00:00
Lioncash
a89e32b157 elf: Don't cast away const 2016-01-25 02:36:57 -05:00
Lioncash
3ed5ecd67a archive_backend: Remove unnecessary const from return types
This doesn't return by reference so const isn't really necessary
2016-01-25 00:14:53 -05:00
rob turner
d29578d467 ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode name 2016-01-19 18:42:16 +01:00
Subv
922b31ebbd DiskDirectory: Initialize the directory member with valid info. 2016-01-16 09:30:29 -05:00
bunnei
190b1bbf1f Merge pull request #1327 from Subv/unmap_memblock
HLE/SVC: Implement UnmapMemoryBlock.
2016-01-14 22:27:36 -05:00
Subv
d90d5a0ee6 HLE/SVC: Implement UnmapMemoryBlock.
This implementation will need to be (almost completely) changed when we implement multiprocess support.
2016-01-14 11:29:19 -05:00
bunnei
848effe9c3 Merge pull request #1283 from Subv/soc_fixup
HLE/Sockets: Fixed the buffer offset in recvfrom.
2016-01-05 13:52:25 -05:00
bunnei
085c8f2987 Merge pull request #1310 from lioncash/services
services: Update some function tables
2015-12-30 21:30:07 -05:00
Lioncash
532dc797c9 arm_dyncom_dec: Fix decoding of VMLS
Previously, all VMLS variants would misdecode as CDP
(which isn't necessarily wrong in itself, however
VMLS has it's own label of execution)
2015-12-30 14:23:07 -05:00
Lioncash
744f4af3ab services: Update some function tables 2015-12-30 11:29:21 -05:00
bunnei
4bc961d5fd Merge pull request #1306 from Subv/sync
HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered
2015-12-29 22:36:29 -05:00
Subv
6cccc36505 HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered.
Closes #1139
2015-12-29 20:35:25 -05:00
Lioncash
cee8df6ff0 core: Use unique_ptr for holding the interpreter instances 2015-12-29 18:03:08 -05:00
bunnei
73740d74ed Merge pull request #1300 from Subv/arbitrateaddress
SVC: Fixed ArbitrateAddress to behave as it does on hardware.
2015-12-28 22:23:51 -05:00
Lioncash
fddfe946c8 dyncom: Handle modifying the APSR via an MRC instruction 2015-12-28 07:52:04 -05:00
Subv
29032ce9b6 SVC: Fixed ArbitrateAddress to behave as it does on hardware.
This was verified with hwtests that i plan to upload later on.
2015-12-27 18:44:42 -05:00
Lioncash
270cbb0119 svc: Remove superfluous printf argument 2015-12-25 14:21:45 -05:00
Subv
282f2c8042 HLE/Sockets: Fixed the buffer offset in recvfrom.
Closes #1277
2015-12-24 09:19:27 -05:00
Lioncash
d09b7a3c12 dyncom: Remove PC dispatch from several instructions
These instructions aren't capable of using the PC as a destination
2015-12-20 21:19:02 -05:00
Lioncash
5a531d7ec2 dyncom: Handle unprivileged load/store variants correctly
LDRT/LDRBT/STRBT/STRT should simulate the load or store
as if the host CPU is in user mode.

STRT is also allowed to use the PC as an operand
2015-12-19 19:05:50 -05:00
Lioncash
84afaaa10c svc: Fix compilation with LOG_TRACE enabled 2015-12-12 18:14:36 -05:00
Yuri Kunde Schlesner
31764c48fb Merge pull request #1272 from yuriks/merge-rasterizer
VideoCore: Unify interface to OpenGL and SW rasterizers
2015-12-07 20:21:06 -08:00
Yuri Kunde Schlesner
195fedccf0 VideoCore: Unify interface to OpenGL and SW rasterizers
This removes explicit checks sprinkled all over the codebase to instead
just have the SW rasterizer expose an implementation with no-ops for
most operations.
2015-12-07 20:20:38 -08:00
Yuri Kunde Schlesner
03835d04f4 VideoCore: Rename HWRasterizer methods to be less confusing 2015-12-06 19:08:37 -08:00
Lioncash
56e22e6aac dyncom: Remove static keyword from header functions 2015-12-06 15:14:51 -05:00
Lioncash
1ea0702eaa arm_interface: Make GetNumInstructions const 2015-12-06 15:07:59 -05:00
Lioncash
de9a625c7e arm_interface: directly initialize class members 2015-12-06 15:07:00 -05:00
Lioncash
d03e7f08ff dyncom: const correctness changes 2015-12-06 15:03:06 -05:00
bunnei
87df493b5b Merge pull request #1252 from Subv/cam
Services/Cam: Added new log type and camera enums from 3dbrew.
2015-12-03 22:01:45 -05:00
Yuri Kunde Schlesner
84a22cb594 Kernel: Implement svcGetSystemInfo
This makes smealum/ctrulib@b96dd51d33 work
with Citra.
2015-11-30 19:49:44 -08:00
Lioncash
5e2b66d2a4 armstate: Zero out the registers on creation
std::array isn't always guaranteed to explicitly zero out it's contents
without an initializer list.
2015-11-29 15:16:34 -05:00
Subv
1d02eb0587 Core/ARM11: Correct the size of the VFP register array in the ThreadContext structure.
The VFP registers are 64 bits each, and there are 32 of them.
2015-11-29 13:06:45 -05:00
bunnei
e906165229 Merge pull request #1225 from lioncash/clean
csnd_snd: Get rid of type punning
2015-11-28 23:32:05 -05:00
bunnei
c642dc459b Merge pull request #1248 from polaris-/add-ssl-stubs
Add stub functions for Initialize and GenerateRandomData in ssl:C
2015-11-24 16:15:21 -05:00
Subv
434ae89a6a Services/Cam: Added new log type and camera enums from 3dbrew.
Followup to #1102
Original author @mailwl
2015-11-23 17:17:28 -05:00
polaris-
4179e91baf Add stub functions for Initialize and GenerateRandomData in ssl:C 2015-11-22 16:54:51 -05:00
bunnei
78b0d9c8b0 Merge pull request #1246 from polaris-/patch-1
Fix read and write register blocks in gdbstub
2015-11-22 13:38:50 -05:00
polaris-
912e53323d Add Initialize and GenerateRandomData stubs 2015-11-22 09:27:46 -05:00
polaris-
2732ec758d Fix read and write register blocks in gdbstub
Previously, the padding wasn't correctly accounted for which caused the gdbstub to read and write everything after R15 (starting with the dummy FPA registers) incorrectly, which caused CPSR to not be handled correctly. Everything appears to be working as expected with this change.
2015-11-22 07:48:26 -05:00
bunnei
43bb29edc5 Merge pull request #1122 from polaris-/gdbstub
gdbstub implementation
2015-11-11 23:21:31 -05:00
polaris-
bcea959910 Fix bug with reading addresses and lengths 2015-11-03 21:50:53 -05:00
polaris-
b6422038b5 Change headers 2015-10-29 06:17:29 -04:00
Lioncash
a1bd909294 csnd_snd: Get rid of type punning 2015-10-28 16:10:21 -04:00
bunnei
7c12ee9ecc Merge pull request #1165 from esoteric-programmer/master
Added CSND_ExecuteType0Commands stub.
2015-10-28 15:19:13 -04:00
Matthias Ernst
3d89e0a94c Added CSND stub. 2015-10-28 19:04:01 +01:00
bunnei
af26b7a0bc Merge pull request #1208 from archshift/free-bytes
Implement FS_User::GetFreeBytes
2015-10-28 11:30:25 -04:00
archshift
5dfd2dba70 Implement FS_User::GetFreeBytes 2015-10-27 23:33:59 -07:00
Filiph Sandström
a06a32c05d Fix copy paste 2015-10-24 13:17:04 +02:00
Filiph Sandström
0c84d59a27 Fix wrong branch 2015-10-23 23:58:54 +02:00
Filiph Sandström
844b9970b4 Add GetTotalStepCount Stub 2015-10-23 23:52:13 +02:00
Filiph Sandström
f61c9da7d3 Update ptm.h 2015-10-23 23:50:51 +02:00
polaris-
a7eb6a4045 Add some headers so TravisCI will hopefully work 2015-10-22 00:31:49 -04:00
polaris-
45ed9e7e5e Use CHAR_BIT instead of 8 2015-10-22 00:19:44 -04:00
polaris-
a5ab8accc2 Handle changes pointed out in comments on PR 2015-10-22 00:11:25 -04:00
polaris-
d1f73c424f Add a register variable to loops 2015-10-21 07:45:35 -04:00
polaris-
d7e346239b Update register read loops to go with last commit 2015-10-21 07:40:30 -04:00
polaris-
8a0d848646 Pad responses to gdb for VFP registers 2015-10-21 07:19:03 -04:00
polaris-
53aa55fcaa Try to add support for VFP registers 2015-10-21 07:14:43 -04:00
polaris-
9f66580d7e Fix buffer overflow comments 2015-10-21 06:49:49 -04:00
bunnei
c717d1551d Merge pull request #1199 from Gareth422/encryption-check
Loader: Implement NCCH encryption check
2015-10-20 10:17:31 -04:00
polaris-
2b7316a379 Remove unnecessary new lines, changed Deinit to Shutdown 2015-10-11 20:07:58 -04:00
Gareth Poole
721475420d Loader: Change NCCH header types to be explicitly little-endian 2015-10-10 22:35:22 -04:00
Gareth Poole
2706394384 Loader: Implement encryption check 2015-10-10 22:34:17 -04:00
bunnei
04325e5980 Merge pull request #1194 from linkmauve/no-newline
Remove newlines in LOG_* calls
2015-10-10 14:42:17 -04:00
Emmanuel Gil Peyrot
14af5919ba CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.
The LOG_* function itself already appends one.
2015-10-09 22:14:56 +01:00
Gareth Poole
be217bca70 Fixed spelling errors 2015-10-09 17:09:52 -04:00
Rohit Nirmal
32391cffdd Silence -Wsign-compare warnings. 2015-10-06 22:16:15 -05:00
polaris-
42928659e8 Use BreakpointAddress struct instead of passing address directly 2015-10-04 11:22:31 -04:00
polaris-
31dee93e84 Implement gdbstub 2015-10-04 11:16:59 -04:00
bunnei
11a64acf23 Merge pull request #1095 from archshift/game-list
Initial implementation of a game list
2015-10-01 23:35:19 -04:00
archshift
bba12520c4 Expose loader helper functions for identifying files. 2015-09-30 21:04:47 -07:00
bunnei
bcaafb826e Merge pull request #1177 from linkmauve/fix-msvc-todo
Use a constexpr function for country initialization in service/cfg
2015-09-30 11:06:47 -04:00
Lioncash
a97d9613a7 ivfc_archive: Fix a printf specifier 2015-09-30 08:19:42 -04:00
Emmanuel Gil Peyrot
57722fb192 Service/CFG: Use a constexpr function for country initialization
This fixes a TODO left over from when we supported MSVC 2013.
2015-09-30 04:02:48 +01:00
Martin Lindhe
bafb7afba2 fix some xcode 7.0 warnings 2015-09-29 23:11:09 +02:00
bunnei
09f43c0975 Merge pull request #1160 from lioncash/clang
Silence some clang warnings
2015-09-21 21:29:55 -04:00
Cruel
d60a9be5c6 Implement 3dsx RomFS 2015-09-21 13:03:18 -04:00
Lioncash
751fbfdcc3 general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
Yuri Kunde Schlesner
bbf92a54e5 Service/CFG: Add default entry for block 0x000A0001 (birthday) 2015-09-14 17:39:52 -03:00
Yuri Kunde Schlesner
13a8e39813 Service/CFG: Correct flags in 2 default blocks
Verified against a 9.2.0-20 config save
2015-09-14 17:39:51 -03:00
Yuri Kunde Schlesner
d91f1c0624 Service/CFG: Add additional blocks to default save data
These blocks are required by various games to boot.
2015-09-14 17:39:50 -03:00
Yuri Kunde Schlesner
6c89d4ca26 Fix narrowing conversion warning 2015-09-14 17:39:50 -03:00
Yuri Kunde Schlesner
1fe72dcc04 Service/CFG: Move several private types from the header to the cpp 2015-09-14 17:39:49 -03:00
Yuri Kunde Schlesner
ac4f7b0fde Service/CFG: Clean up default block creation 2015-09-14 17:39:48 -03:00
Yuri Kunde Schlesner
1ed7f3e028 GSP: Implement command 0x05, used for flushing caches
May fix additional texture caching issues. (Though mostly in homebrew, I
haven't seen any commercial software use this to flush anything but
command lists.)
2015-09-14 16:19:05 -03:00
Lioncash
07bfe0abbb general: Replace 0 literals with nullptr where applicable 2015-09-11 23:11:01 -04:00
Lioncash
60b3fc01a2 General: Replace NULL and '0' usages with nullptr where applicable 2015-09-11 14:59:49 -04:00
Yuri Kunde Schlesner
abc34ddb88 Merge pull request #1130 from lioncash/block
memory: Get rid of pointer casts
2015-09-10 18:05:24 -03:00
Lioncash
d3efa637b4 General: Fix up doxygen comments 2015-09-10 11:20:21 -04:00
Yuri Kunde Schlesner
248b2993e8 Merge pull request #1131 from lioncash/uninit
y2r: Give local variables an initial value
2015-09-10 01:21:58 -03:00
Lioncash
9cf1cfe3fd memory: Get rid of pointer casts 2015-09-10 00:09:55 -04:00
Lioncash
d7bfda3e26 disk_archive: Remove unimplemented constructor declarations 2015-09-09 23:49:03 -04:00
Lioncash
f87093686e y2r: Give local variables an initial value
Keeps compilers/static analyzers quiet.
2015-09-09 23:38:55 -04:00
archshift
9e8383e296 DynCom: Converted all 0xE condition code checks to ConditionCode::AL 2015-09-05 22:24:42 -07:00
bunnei
bc59aaccb1 Merge pull request #1101 from archshift/camu-service-names
Add cam:u service function names to its function table
2015-09-03 07:53:18 -04:00
archshift
e0c10019a9 Add cam:u service function names to its function table 2015-09-03 01:56:59 -07:00
bunnei
5e3536f66f Merge pull request #1072 from yuriks/GetSystemTick-advance-time
SVC: Advance time when calling GetSystemTick to escape busy-wait loops
2015-09-01 08:21:29 -04:00
bunnei
5906d8b01c Merge pull request #1085 from Subv/fs_stat
Services/FS: Correctly tell the guest app whether a file was correctly opened or not
2015-08-30 11:44:39 -04:00
Yuri Kunde Schlesner
18c1c39d5e SVC: Advance time when calling GetSystemTick to escape busy-wait loops
Cubic Ninja waited for the frame to end by spinning on a loop calling
GetSystemTick while doing nothing else. Since GetSystemTick doesn't
cause a reschedule (which advances time), this meant that very little
emulated time would pass inside that loop, causing the game to spend
most of the frame burning away CPU.
2015-08-30 00:07:02 -03:00
Subv
ce6a65cec9 Services/FS: Correctly tell the guest app whether a file was correctly opened or not.
Closes #1067
2015-08-28 22:01:03 -05:00
Yuri Kunde Schlesner
0ee3e2c25e Kernel: Fix wrong linear heap base on titles using newer kernels
Typo which sneaked in through review on #1025
2015-08-27 23:52:40 -03:00
Yuri Kunde Schlesner
12390eb155 Kernel: Fix assertion failure when ControlMemory is called with size=0 2015-08-26 21:29:05 -03:00
Yuri Kunde Schlesner
687d973980 Core: Improve APT Shared Font hack
Should fix invalid read loops in some games
2015-08-26 21:28:58 -03:00
Lioncash
dc1b024b80 dyncom: Simplify some comparisons in CondPassed 2015-08-26 00:10:23 -04:00
Lioncash
01dd833ffa dyncom: Change return type of CondPassed to bool 2015-08-25 23:59:01 -04:00
Yuri Kunde Schlesner
0fcabd2b11 Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
2015-08-24 22:16:28 -03:00
Yuri Kunde Schlesner
78735e2ada Fix broken boot introduced by last-minute change in #1025 2015-08-22 18:12:23 -03:00
Yuri Kunde Schlesner
3efb205a68 Merge pull request #1025 from yuriks/heap-management
Kernel: Correct(er) handling of Heap and Linear Heap allocations
2015-08-22 14:01:57 -07:00
Yuri Kunde Schlesner
a9fc659809 Merge pull request #996 from yuriks/texture-copy
GPU: Implement TextureCopy-mode display transfers
2015-08-18 20:52:40 -07:00
Yuri Kunde Schlesner
0aa443a871 Merge pull request #1033 from bbarenblat/master
Handle `FileType::CIA` in `switch` statements
2015-08-15 22:40:29 -07:00
Yuri Kunde Schlesner
9ae5a09655 GPU: Implement TextureCopy-mode display transfers
Fixes glitchy garbage in Fire Emblem 3D scenes.
2015-08-16 01:52:51 -03:00
bunnei
5989a6ac57 Merge pull request #1032 from lioncash/swap
vfp: use std::swap where applicable
2015-08-16 00:20:35 -04:00
Yuri Kunde Schlesner
840b85690b Kernel: Remove unused legacy heap MapBlock_* functions 2015-08-16 01:03:49 -03:00
Yuri Kunde Schlesner
38bfbe1b2b APT: Adjust shared font hack so it works with the new linear heap code 2015-08-16 01:03:48 -03:00
Yuri Kunde Schlesner
14eca982f4 Kernel: Implement svcGetProcessInfo in a basic way
This also adds some basic memory usage accounting. These two types are
used by Super Smash Bros. during startup.
2015-08-16 01:03:48 -03:00
Yuri Kunde Schlesner
74d4bc0af1 Kernel: Add more infrastructure to support different memory layouts
This adds some structures necessary to support multiple memory regions
in the future. It also adds support for different system memory types
and the new linear heap mapping at 0x30000000.
2015-08-16 01:03:47 -03:00
Yuri Kunde Schlesner
c39b52f974 HLE: Remove empty ConfigMem and SharedPage Shutdown functions 2015-08-16 01:03:47 -03: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
Yuri Kunde Schlesner
e2c7954be5 Memory: Move address type conversion routines to memory.cpp/h
These helpers aren't really part of the kernel, and mem_map.cpp/h is
going to be moved there next.
2015-08-16 01:03:46 -03:00
Yuri Kunde Schlesner
a12a30c9e0 Process: Store kernel compatibility version during loading 2015-08-16 01:03:45 -03:00
Yuri Kunde Schlesner
cdeeecf080 Kernel: Properly implement ControlMemory FREE and COMMIT 2015-08-16 01:03:45 -03:00
Yuri Kunde Schlesner
ccab02c723 Memory: Move PAGE_MASK and PAGE_BITS to memory.h 2015-08-16 01:03:44 -03:00
Yuri Kunde Schlesner
306408d174 VMManager: Introduce names for used ResultCodes 2015-08-16 01:03:44 -03:00
Yuri Kunde Schlesner
b9a9ad9742 VMManager: Make LogLayout log level configurable as a parameter 2015-08-16 01:03:43 -03:00
Yuri Kunde Schlesner
785407d06f VMManager: Change block offsets to size_t 2015-08-16 01:03:43 -03:00
Lioncash
46b0277cbf vfp: use std::swap where applicable 2015-08-15 19:08:51 -04:00
bunnei
094ae6fadb Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.
- Config: Add an option for selecting to use shader JIT or interpreter.
- Qt: Add a menu option for enabling/disabling the shader JIT.
2015-08-15 18:01:07 -04:00
Benjamin Barenblat
c0a87bc89f
Properly indicate that CIA support is not implemented yet
Make `Loader::LoadFile` return an `ErrorNotImplemented` if you call
it on a CIA file.
2015-08-15 16:05:38 -04:00
Benjamin Barenblat
cd8be1846b
Give CIA file type a name
Make `GetFileTypeString` return ‘CIA’ for CIA (CTR Importable
Archive) files.
2015-08-15 15:45:27 -04:00
bunnei
cebf245504 Merge pull request #1027 from lioncash/debugger
debugger: Add the ability to view VFP register contents
2015-08-13 18:13:25 -04:00
Emmanuel Gil Peyrot
5115d0177e ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types. 2015-08-11 22:38:44 +01:00
aroulin
38c87733d9 arm_disasm: ARMv6 mul/div and abs media instructions
SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD,
SMMLA, SMMUL, SMMLS
USAD8, USADA8
2015-08-11 12:48:28 +02:00
aroulin
4a1db13072 arm_disasm: ARMv6 parallel add/sub media instructions
{S, U, Q, UQ, SH, UH}{ADD16, ASX, SAX, SUB16, ADD8, SUB8}
2015-08-11 12:48:23 +02:00
aroulin
0be8e1bfb6 arm_disasm: ARMv6 reversal media instructions
REV, REV16, REVSH
Only their ARM encoding, Thumb encoding is still missing.
2015-08-09 13:52:51 +02:00
aroulin
e4ff244288 arm_disasm: ARMv6 saturation media instructions
SSAT, SSAT16, USAT, USAT16
2015-08-09 01:31:10 +02:00
aroulin
47657a1817 arm_disasm: ARMv6 packing and sign-extend media instructions
PKH, SEL
SXTAB, SXTAB16, SXTB, SXTB16, SXTH, SXTAH
UXTAB, UXTAB16, UXTB, UXTB16, UXTH, UXTAH
2015-08-09 01:31:03 +02:00
Lioncash
f48a89af8b Merge pull request #1026 from lioncash/disasm
arm_disasm: Remove unnecessary code
2015-08-07 07:29:27 -04:00
Lioncash
3b457a5876 arm_interface: Implement interface for retrieving VFP registers 2015-08-06 21:24:25 -04:00
Lioncash
59d5358068 arm_disasm: Remove unnecessary code
This part of disassembly only determines the opcode, there's no need for offset calculation here.
2015-08-06 19:55:41 -04:00
aroulin
3425cfe54a Disassembler: ARMv6K REX instructions 2015-08-06 15:50:54 +02:00
aroulin
5d81a2fd48 Disassembler: ARMv6K hint instructions 2015-08-06 15:25:08 +02:00
bunnei
ce65925bc3 Merge pull request #1008 from lioncash/pc
dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM
2015-07-30 10:44:50 -04:00
bunnei
a5f77c9886 Merge pull request #1014 from lioncash/unused-warn
core: Eliminate some unused variable warnings
2015-07-29 16:47:44 -04:00
Yuri Kunde Schlesner
ea1b04f5da Merge pull request #1013 from lioncash/unused
dyncom: Remove an unused variable
2015-07-29 09:59:37 -07:00
Lioncash
75631b2a9f core: Eliminate some unused variable warnings 2015-07-29 12:34:18 -04:00
Lioncash
46663d657f dyncom: Remove an unused variable
This was used prior to InterpreterTranslate existing.
2015-07-29 12:21:16 -04:00
Lioncash
12a9e8502c core: Fix missing prototype warnings 2015-07-29 12:12:39 -04:00
Yuri Kunde Schlesner
8165de065b Merge pull request #1009 from lioncash/table
am_net: Update function table data
2015-07-29 08:40:19 -07:00
Lioncash
6b25e93119 am_net: Add missing function to the function table 2015-07-29 11:37:55 -04:00
Lioncash
bed3618480 am_net: Add correct function name to the function table 2015-07-29 11:37:09 -04:00
bunnei
e5606d9d6e Merge pull request #982 from Subv/home
Service/APT: Return proper parameters in GetLockHandle.
2015-07-29 11:12:17 -04:00
Lioncash
2e420aba3c dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM 2015-07-29 10:57:47 -04:00
Lioncash
2182adff9e dyncom: Handle left-operand PC correctly for data-processing ops
This is considered deprecated in the ARM manual (using PC as an operand),
however, this is still able to be executed on the MPCore (which I'm quite
sure would be rare to begin with).
2015-07-28 20:14:08 -04:00
bunnei
4ccc171db4 Merge pull request #899 from zawata/Winsock-Deprecation
SOC:U : Fix WinSock function deprecation
2015-07-28 16:44:29 -04:00
bunnei
fe15cf0019 Merge pull request #1003 from lioncash/armcruft
dyncom: Minor cleanups.
2015-07-28 09:58:42 -04:00
Tony Wasserka
62adb4ee7b Merge pull request #873 from jroweboy/input_array
Move input values into an array.
2015-07-28 13:17:12 +02:00
Lioncash
9be4ef3879 dyncom: Remove an unnecessary typedef 2015-07-28 03:41:25 -04:00
Lioncash
89540ea761 dyncom: Use enum class for instruction decoding results 2015-07-28 02:27:57 -04:00
James Rowe
1bc7829ee9 Move input values into an array 2015-07-27 21:41:21 -06:00
Lioncash
7e4fb4db19 dyncom: Remove code duplication regarding thumb instructions 2015-07-27 22:22:00 -04:00
Lioncash
a507ea23c1 dyncom: Migrate exclusive memory access control into armstate 2015-07-27 22:06:59 -04:00
Lioncash
db4e99c186 dyncom: Remove duplicated typedef and extern
These are already present in arm_dyncom_dec.h.
2015-07-27 22:06:51 -04:00
Lioncash
816b1ca776 dyncom: Use std::array for register arrays 2015-07-26 13:21:04 -04: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
03213f893e dyncom: Remove unnecessary initialization code.
Targeting ARM version variants was only a thing on armemu.

The reset routine also does basically the same thing as NewState.
2015-07-25 22:10:54 -04:00
Lioncash
3257d797e1 dyncom: Remove unnecessary abort-related cruft
Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary.
2015-07-25 22:10:53 -04:00
Lioncash
dfb424b6d1 dyncom: Rename armdefs.h to armstate.h 2015-07-25 22:10:44 -04:00
Lioncash
4bb1a5ca47 dyncom: Get rid of skyeye typedefs 2015-07-25 20:52:10 -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
Yuri Kunde Schlesner
453764aefc Merge pull request #989 from lioncash/extern
armdefs: Remove unnecessary extern keywords
2015-07-25 15:40:23 -07:00
Lioncash
f7ba683dc3 armdefs: Remove unnecessary extern keywords 2015-07-25 18:32:57 -04:00
Lioncash
43d799fd9d loader: Remove unnecessary else usages 2015-07-25 18:10:13 -04:00
Yuri Kunde Schlesner
24d7c05c8d Merge pull request #888 from zawata/Warning-Fixes-2
Core\HLE : Fix Warning
2015-07-25 12:55:34 -07:00
Yuri Kunde Schlesner
9a0f9f12cd Merge pull request #892 from zawata/another-warning-fixes
Yet More Warning Fixes
2015-07-25 12:50:32 -07:00
Subv
599744921d Service/APT: Fixed a regression, PreloadLibraryApplet should also start an applet when called. 2015-07-23 21:32:30 -05:00
Subv
ce31184557 Service/APT: Return proper parameters in GetLockHandle.
Documented some APT functions
This allows applets to boot.
2015-07-23 20:46:11 -05:00
Yuri Kunde Schlesner
a989522384 Merge pull request #983 from yuriks/null-memory-fill
GSP: Don't try to write memory fill registers if start address is 0
2015-07-23 17:31:38 -07:00
Yuri Kunde Schlesner
3b61dd97e0 GSP: Don't try to write memory fill registers if start address is 0
Verified to be what GSP does via REing. Fixes invalid virt->phys
translation error spam in some games.
2015-07-23 21:20:01 -03:00
Subv
6c0ea5f5e8 Qt/GPU Breakpoints: Added three more breakpoint types:
* IncomingDisplayTransfer: Triggered just before a display transfer is performed.
* GSPCommandProcessed: Triggered right after a GSP command is processed.
* BufferSwapped: Triggered when the frames flip
2015-07-23 11:47:34 -05:00
bunnei
4a9e97d67d Merge pull request #962 from Subv/am_app
Services/AM: Stubbed am:app::GetNumContentInfos to return 0 results.
2015-07-21 18:26:31 -04:00
bunnei
d0b45d45b5 Merge pull request #966 from Subv/log
Services/Logging: Log more useful information when some operations fail.
2015-07-21 15:14:35 -04:00
Subv
f5bff67b0b Services/Logging: Log more useful information when some operations fail.
Namely OpenFileDirectly, OpenDirectory and OpenArchive
2015-07-21 13:49:08 -05:00
bunnei
dcc8f1bef2 Merge pull request #957 from Subv/hwtest_crash
Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.
2015-07-21 12:11:48 -04:00
Lioncash
c2689b8c2c dyncom: Pass SVC immediates directly.
Previously it would just re-read the already decoded instruction and extract the immediate value.
2015-07-21 03:56:29 -04:00
Subv
13f93a0188 Services/AM: Stubbed am:app::GetNumContentInfos to return 0 results.
Named the service functions in am:app as per 3dbrew.

This fixes an illegal read loop in Steel Diver
2015-07-21 00:12:13 -05:00
Subv
38a7f1b727 Services/CFG: Added some missing functions to cfg:s 2015-07-20 19:52:07 -05:00
Subv
275aaeef9c Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.
They'll be reset if needed during the next svcWaitSynchronization call (if there's any pending)
2015-07-20 17:15:54 -05:00
bunnei
cd2bb2dc69 Merge pull request #939 from Subv/queryprocmem
Kernel/SVC: Implemented svcQueryProcessMemory
2015-07-20 00:34:41 -04:00
bunnei
863a963911 Merge pull request #951 from Subv/bit5
GPU/DisplayTransfer: Implemented bit 5 in the transfer flags.
2015-07-19 22:42:44 -04:00
bunnei
21a696abde Merge pull request #946 from archshift/update-frdu
Add more frd:u unknown service commands from 3dbrew
2015-07-19 22:39:51 -04:00
zawata
395e63d5aa SOC:U : Update deprecated function gethostbyname() to getaddrinfo() 2015-07-19 19:32:12 -07:00
Subv
63dbff9b1f GPU/DisplayTransfer: Implemented bit 5 in the transfer flags.
It tells the GPU to not swizzle/de-swizzle the input during the transfer.
2015-07-19 21:30:42 -05:00
Lioncash
a2f0a3d019 dyncom: Properly retrieve the PC value in BX if used. 2015-07-19 22:20:14 -04:00
archshift
84a88005e2 Change trace/unimplemented service call logs to use hex
Changes the log to use hex in the parameter list instead of decimal.
2015-07-19 13:34:38 -07:00
archshift
d1e6afaba1 Add more frd:u unknown service commands from 3dbrew 2015-07-19 13:30:20 -07:00
zawata
972dccc3f6 Core : Change variable type
and fix various warnings
2015-07-19 04:12:39 -07:00
zawata
1be1ff23a9 Core : Fix Conversion Warnings 2015-07-19 03:59:47 -07:00
Yuri Kunde Schlesner
13286903e6 Dyncom: Support for a missing ARMv6 Thumb MOV encoding 2015-07-18 03:41:49 -03:00
Subv
83fa3f977d Kernel/SVC: Implemented svcQueryProcessMemory 2015-07-17 14:55:35 -05:00
Yuri Kunde Schlesner
41513cfb0c Merge pull request #938 from Subv/querymem
Kernel/SVC: Implemented svcQueryMemory.
2015-07-17 12:33:26 -07:00
Subv
9e2962081a Kernel/SVC: Implemented svcQueryMemory. 2015-07-17 11:03:56 -05:00
bunnei
32be6a4553 Merge pull request #937 from yuriks/codeset-leak
Ensure all kernel objects are released during shutdown
2015-07-17 11:03:28 -04:00
zawata
f723a498e7 Core\HLE : Fix Warning
"signed/unsigned mismatch"
2015-07-17 00:50:53 -07:00
Yuri Kunde Schlesner
dc39d06950 Ensure all kernel objects are released during shutdown
This commit fixes several kernel object leaks. The most severe of them
was threads not being removed from the private handle table used for
CoreTiming events. This resulted in Threads never being released, which
in turn held references to Process, causing CodeSets to never be freed
when loading other applications.
2015-07-17 02:24:13 -03:00
Lioncash
23dbbb786a arm_dyncom_interpreter: Simplify assignment in SMLAW
Also a side-benefit of not having implementation-defined behavior.
2015-07-16 22:08:12 -04:00
bunnei
946f0ee2f4 Merge pull request #918 from yuriks/romfs
Do not load entire RomFS to memory, read from the file as needed instead (rebased)
2015-07-16 18:08:46 -04:00
archshift
2501f111a6 Merge pull request #904 from aroulin/y2r-narrowing-warning
Y2R: Fix narrowing warning
2015-07-13 22:07:39 -07:00
Yuri Kunde Schlesner
62c2a262b2 Loader: Fix variable type and remove unused variable 2015-07-13 21:10:13 -03:00
Yuri Kunde Schlesner
a1f08788d9 Archive: Correct a few incorrect types in function signatures
Buffer lengths should be size_t, and file offsets should be u64.
2015-07-13 21:10:12 -03:00
Yuri Kunde Schlesner
2d7299a86f Loader: Remove unnecessary pointer indirection to IOFile 2015-07-13 20:00:56 -03:00
condut
c385b7767d FS: Stream RomFS from file instead of loading all of it to memory 2015-07-13 19:57:12 -03:00
Tony Wasserka
29abb11e8f CiTrace: Clean up initialization method. 2015-07-13 22:27:21 +02: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
Tony Wasserka
93d66475d4 GPU: Be robust against nullptr addresses; properly reset busy bits in the trigger registers. 2015-07-13 22:27:20 +02:00
Tony Wasserka
256bdfb579 HW: Fix a stupid issue which led to unknown register reads/writes. 2015-07-13 22:27:20 +02:00
bunnei
b6719ec922 Merge pull request #921 from linkmauve/fix-applet
Fix applet includes using iwyu
2015-07-12 17:25:55 -04:00
Yuri Kunde Schlesner
d4f35fd989 Kernel: Add CodeSet case to Object::IsWaitable 2015-07-12 18:15:16 -03:00
Emmanuel Gil Peyrot
fe909b3b5a Core: Fix applet includes using iwyu. 2015-07-12 22:10:37 +01:00
aroulin
1f125a04c3 Y2R: Fix narrowing warning 2015-07-12 03:49:16 -04:00
bunnei
f4e1d8ea36 Merge pull request #823 from Subv/applets_drawing
Library applet support (swkbd for now)
2015-07-11 23:56:59 -04:00
Subv
725d5eea78 Applets: Reworked how the Applet update event is handled.
Applets are now cleaned up in AppletUpdateEvent after calling their respective Update method.
2015-07-11 22:32:12 -05:00
Yuri Kunde Schlesner
5c5cf2f8e0 Core: Properly configure address space when loading a binary
The code now properly configures the process image to match the loaded
binary segments (code, rodata, data) instead of just blindly allocating
a large chunk of dummy memory.
2015-07-11 23:54:42 -03:00
Yuri Kunde Schlesner
51820691e7 Memory: Fix unmapping of pages 2015-07-11 23:49:53 -03:00
Yuri Kunde Schlesner
34f5f77507 Loader: Clean up 3dsx loader a bit, fixing a potential buffer overrun 2015-07-11 23:49:52 -03:00
Yuri Kunde Schlesner
fdbf410bd7 Loader: Make 3dsx loader logs a bit less confusing 2015-07-11 23:49:52 -03:00
Yuri Kunde Schlesner
d9556912b4 Kernel: Remove unused member from Event 2015-07-11 23:49:51 -03:00
Subv
621ee10eae Applets: Add infrastructure to allow custom drawing and input handling in Applets. 2015-07-11 21:47:23 -05: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
867c28ae03 Merge pull request #876 from linkmauve/include-cleanups
Cleanup includes, mostly in common
2015-07-10 16:36:12 -07:00
aroulin
769407e4fa Loader: Remove log line causing warning 2015-07-08 00:04:21 +02:00
bunnei
0ef3f12c71 Merge pull request #797 from linkmauve/blended-downscaling
Implement blended downscaling for display transfers
2015-07-06 11:35:55 -04:00
bunnei
c19f9945b7 Merge pull request #885 from Subv/ipc_headers
Services/SOC: Added command headers to some of the soc commands.
2015-07-06 11:19:58 -04:00
Lioncash
e3e8ad48c1 vfp: Change return type of VFPInit from unsigned int to void. 2015-06-29 14:51:38 -04:00
Lioncash
32a6379bc8 vfp: Handle accesses to FPINST/FPINST2 system registers
Also has a side-benefit of correcting access to the FPEXC register.
2015-06-29 03:27:26 -04:00
Emmanuel Gil Peyrot
641e78bccf GPU: Implement blended downscaling for display transfers. 2015-06-28 15:11:26 +01:00
Emmanuel Gil Peyrot
8ee814ec27 GPU: Use shifts instead of multiplications to calculate the actual size of the output. 2015-06-28 14:31:13 +01:00
Emmanuel Gil Peyrot
4964a359e1 Core: Cleanup hw includes. 2015-06-28 00:46:39 +01:00
Emmanuel Gil Peyrot
7b746914b9 Core: Cleanup soc:U includes. 2015-06-28 00:36:55 +01:00
Emmanuel Gil Peyrot
f48b28ad27 Core, VideoCore: Replace or fix exit() calls. 2015-06-28 00:36:55 +01:00
Emmanuel Gil Peyrot
e5fcabdd69 Core: Cleanup file_sys includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
aea15f5c73 Core: Cleanup core includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
45c4781544 CitraQt: Cleanup includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
596b7c4f63 Common: Cleanup key_map includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
2d044a67c9 Common: Cleanup memory and misc includes. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot
8cf9eb7f43 Common: Fix FileUtil includes, and everything relying on those. 2015-06-28 00:36:53 +01:00
Emmanuel Gil Peyrot
c345247431 Services: Use the standard _WIN32 define in soc:U instead of our own EMU_PLATFORM. 2015-06-27 14:43:56 +01:00
Subv
bd336cfdce Services/SOC: Added command headers to some of the soc commands. 2015-06-25 12:55:27 -05:00
Yuri Kunde Schlesner
81488d7a6a Add helpers to create IPC command buffer headers and descriptors 2015-06-22 19:24:19 -03: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
bunnei
9850f98339 Merge pull request #855 from purpasmart96/service_rearrangment
Services: Continue separation of services into their own folders
2015-06-21 10:55:02 -04:00
Yuri Kunde Schlesner
29d2b70ea4 Y2R: Re-organize how params are stored. Support SetConversionParams 2015-06-20 19:21:16 -03:00
bunnei
71e8822d23 kernel: Fix svcWaitSynch to always acquire requested wait objects. 2015-06-16 22:34:39 -04:00
Lioncash
f1ff0fbf07 Merge pull request #866 from lioncash/typo
hw: Fix mismatched Write call
2015-06-16 17:04:34 -04:00
Lioncash
bbe4430922 hw: Fix mismatched Write call 2015-06-16 15:49:22 -04:00
Lioncash
71858fc7cc vfp: Handle accesses to the VFP media feature registers
These are able to be accessed in any privilege mode.
2015-06-12 20:21:51 -04:00
Lioncash
e817224f89 vfp: Implement VMOVBCR/VMOVBRC 2015-06-12 02:47:10 -04:00
purpasmart96
7933dbe6a0 Services: Continue separation of services into their own folders 2015-06-11 20:41:59 -07:00
Lioncash
04f204ed00 arm_dyncom_thumb: Fix handling of writeback for thumb LDMIA 2015-06-04 08:42:14 -04:00
Subv
66c1db7288 ExtSavedata: Save the icon passed to CreateExtSaveData to the correct folder.
Organize the ExtSaveData folders as they are stored in the console.
2015-06-01 21:48:19 -05:00
Lioncash
1974da272d Merge pull request #838 from lioncash/thumb
arm_dyncom_thumb: Implement missing instructions.
2015-05-31 22:19:31 -04:00
Lioncash
c00781a908 arm_dyncom_thumb: Fix encoding of BKPT's immediate 2015-05-31 21:51:46 -04:00
Lioncash
85b1dddda1 arm_dyncom_thumb: Implement CPS and SETEND 2015-05-31 21:51:25 -04:00
Lioncash
7caef19c89 arm_dyncom_thumb: Implement SXTH, SXTB, UXTH, and UXTB. 2015-05-31 21:50:57 -04:00
Lioncash
b64dea80ce arm_dyncom_thumb: Implement REV, REV16, and REVSH. 2015-05-31 21:50:18 -04:00
archshift
0414ad20cb Merge pull request #811 from archshift/commonify
Commonify video_core utility headers
2015-05-31 09:55:29 -07:00
bunnei
833936fc64 Merge pull request #832 from yuriks/refresh-rate-option
Remove gpu_refresh_rate configuration option
2015-05-31 04:48:20 -04:00
archshift
76690392bf Move video_core/color.h to common/color.h 2015-05-30 11:17:37 -07:00
Yuri Kunde Schlesner
8a04c65e20 Merge pull request #810 from yuriks/memmap
Kernel: Add VMManager to manage process address spaces
2015-05-29 18:00:17 -07:00
Yuri Kunde Schlesner
d65b42a69a Remove gpu_refresh_rate configuration option
Changing it makes emulation inherently inaccurate. It also had a wrong
default value (30, whereas the real system has a refresh rate of 60 Hz)
which, even if changed, would continue to be used unless people manually
removed it from their config files.
2015-05-29 19:39:26 -03:00
Emmanuel Gil Peyrot
b1503b2020 Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
Lioncash
a3cad6c332 hid: Get rid of undefined behavior
Modifying a variable twice across a sequence point.
2015-05-27 12:20:12 -04:00
Yuri Kunde Schlesner
88365a23e7 Memmap: Remove unused global pointers to memory areas 2015-05-27 03:24:12 -03: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
Yuri Kunde Schlesner
ad883db7a9 Merge pull request #826 from lioncash/tables
arm_dyncom_thumb: Merge STR/LDR table subsets.
2015-05-26 22:05:13 -07:00
Lioncash
0265d950e6 arm_dyncom_thumb: Merge STR/LDR table subsets. 2015-05-26 21:15:29 -04:00
Lioncash
0ff414f561 Merge pull request #825 from lioncash/dync
dyncom: Minor cleanup.
2015-05-26 20:27:48 -04:00
Lioncash
f62ab75c67 arm_dyncom_interpreter: Remove unused variable
Thum decoding directly checks if the thumb bit is set instead of using a temporary.
2015-05-26 17:43:08 -04:00
bunnei
4d93c30c97 Merge pull request #821 from Subv/ImportDisplayCaptureInfo
Service/GSP: Implemented ImportDisplayCaptureInfo.
2015-05-26 01:14:21 -04:00
Subv
fa397494b0 Service/GSP: Implemented ImportDisplayCaptureInfo. 2015-05-25 23:35:14 -05:00
Subv
732839b1f4 Core/SVC: Map the shared memory created in CreateMemoryBlock to the specified address.
This SharedMemory can be passed to service functions (Which should map the memory into their own address space).
2015-05-25 16:17:26 -05:00
Lioncash
8c1ab1c2c4 arm_dyncom_interpreter: Remove unused macro 2015-05-24 19:21:05 -04:00
Lioncash
6278937a28 dyncom: Get rid of armemu.h 2015-05-23 20:51:02 -04:00
Lioncash
ebca3a4902 y2r_u: Remove unused variable in StartConversion 2015-05-23 00:46:22 -04:00
Lioncash
92fd2753c5 dyncom: Remove unused cpu parameter from decode_thumb_instr 2015-05-22 23:42:23 -04:00
Lioncash
097d8282a6 dyncom: remove load_r15 from arm_inst
It's entirely unused. Also allows getting rid of more clunky macros.
2015-05-22 23:38:00 -04:00
Lioncash
8617938441 dyncom: Remove unnecessary parameter for load/store operations 2015-05-22 23:14:22 -04:00
bunnei
41531eeb32 Merge pull request #801 from purpasmart96/hid_stubs
HID: Stub DisableAccelerometer and DisableGyroscopeLow
2015-05-22 20:44:22 -04:00
Lioncash
932aeb333f Merge pull request #802 from bunnei/vfp-trace-log
VFP: Log as trace to get rid of spamming.
2015-05-22 19:44:22 -04:00
bunnei
3a348a90fd VFP: Log as trace to get rid of spamming. 2015-05-22 19:42:44 -04:00
purpasmart96
0c62b7b106 HID: Stub DisableAccelerometer and DisableGyroscopeLow 2015-05-22 15:55:27 -07:00
tfarley
62668688e1 Flush for y2r (moflex) 2015-05-22 15:51:34 -07:00
tfarley
05dc633a8c OpenGL renderer 2015-05-22 15:51:18 -07:00
tfarley
6d995b1ff6 INI hw/sw renderer toggle 2015-05-22 14:37:55 -07:00
Yuri Kunde Schlesner
eca2b71fa8 Merge pull request #798 from yuriks/y2r-bw
Service::Y2R: Support for grayscale decoding of specific formats
2015-05-22 14:06:20 -07:00
Yuri Kunde Schlesner
9108482888 Service::Y2R: Support for grayscale decoding of specific formats
Implements unrotated planar YUV 4:2:0 -> RGB24 conversions in Y2R.
Currently only the Y (luma) channel is used, so the results don't
contain color. This will be added in a later PR at some point.

This is enough to get all currently know Moflex videos to decode. (Some
don't display on-screen due to seemingly unrelated reasons.)

Thanks to @archshift for doing the initial implementation which I
cleaned up and then fixed the 8x8 block mode.
2015-05-22 17:57:21 -03:00
Lioncash
572c91a024 dyncom: Eliminate clang warnings
Gets rid of a whole load of missing brace initialization warnings.
2015-05-21 16:43:21 -04:00
Emmanuel Gil Peyrot
b8f93e6b18 Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback code to prevent it from happening again. 2015-05-21 20:54:49 +02:00
bunnei
25f14e76f1 y2r_u: Stub StartConversion to prevent moflex games from hanging. 2015-05-20 18:05:47 -04:00
bunnei
0b7d2941cf Kernel: Move reschedules from SVCs to actual mechanisms that reschedule. 2015-05-20 18:05:47 -04:00
bunnei
859707642e Merge pull request #766 from purpasmart96/cfg_service_update
CFG: Update the cfg service to be like other integrated services
2015-05-18 10:18:58 -04:00
bunnei
f0365f28c2 Merge pull request #772 from lioncash/warn
core/video_core: Fix a few warnings when compiling on MSVC.
2015-05-18 08:08:49 -04:00
archshift
11057488f9 Implement svcBreak 2015-05-16 22:06:59 -07:00
bunnei
9fb9750411 Merge pull request #781 from archshift/delete
Delete unused hle/coprocessor.cpp
2015-05-16 11:16:29 -04:00
archshift
4b300ba763 Delete unused hle/coprocessor.cpp 2015-05-15 23:24:11 -07:00
purpasmart96
dd9aed9ea9 CFG: Update the cfg service to be like other integrated services 2015-05-15 20:19:29 -07:00
purpasmart96
0fd727f3ad APT/FS: Remove asserts that were causing false positives 2015-05-15 19:25:02 -07:00
Yuri Kunde Schlesner
12f6216741 Merge pull request #774 from lioncash/decodings
dyncom: Add ARMv6K NOP and hint instructions to the interpreter.
2015-05-15 11:36:20 -07:00
bunnei
6abed88092 Merge pull request #770 from lioncash/dyncom_clean
dyncom: Minor cleanup.
2015-05-15 09:44:39 -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
52158c1b8d Memory: Read SharedPage directly from Memory::Read 2015-05-15 00:04:41 -03:00
Yuri Kunde Schlesner
ec514b16a6 Memory: Read ConfigMem directly from Memory::Read 2015-05-15 00:04:39 -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
a251721bf3 Memmap: Remove unused declarations 2015-05-15 00:04:38 -03:00
Lioncash
8cd72428c9 dyncom: Add ARMv6K NOP and hint instructions to the decoding table 2015-05-14 16:25:02 -04:00
Lioncash
699b67d7cf dyncom: Handle some MSR variants individually
This is necessary, as hint instructions will be recognized as MSR, which is pretty bad.
2015-05-14 16:24:51 -04:00
Lioncash
be0119be08 dyncom: Move exclusive load/stores above bbl and swi in the decoding table 2015-05-14 16:24:39 -04:00
Lioncash
1e0255364c dyncom: Remove duplicate enums/prototypes
These are already defined in arm_dyncom_interpreter_dec.cpp.
2015-05-14 14:32:17 -04:00
Lioncash
f4921d0f9d dyncom: Remove unnecessary defines
These can simply be const vars.
2015-05-14 14:32:16 -04:00
Lioncash
0530fd2499 dyncom: Make translation-unit functions and variables static 2015-05-14 14:32:07 -04:00
Lioncash
773b1ef6bf vfp: Get rid of warnings
- Unary minus operator applied to unsigned type.
- Unsafe use of bool.
2015-05-14 13:54:15 -04:00
Lioncash
150e700729 process: Get rid of warnings
Sign mismatches and "forcing value to bool" warnings.
2015-05-14 12:59:14 -04:00
Lioncash
f3c4de4ce4 dyncom: Remove unnecessary typedefs 2015-05-14 11:51:46 -04:00
Lioncash
a48b4ec583 dyncom: Remove unused structs 2015-05-14 11:33:50 -04:00
Lioncash
207087c856 thread: Fix a conditional check in Reschedule 2015-05-14 11:10:04 -04:00
bunnei
e83bc5b7ee dyncom: Removed irrelevant log. 2015-05-14 00:24:38 -04:00
Lioncash
832c130ed1 dyncom: Fix decoding of BKPT's immediate
A shift here is intended since the representation is imm12:imm4
2015-05-13 14:11:03 -04:00
bunnei
7d21b0663b Merge pull request #756 from purpasmart96/ptm_service_changes
PTM: Changed the ptm services  to be like the IR, HID, and APT services.
2015-05-12 23:10:54 -04:00
bunnei
cb2b2071a8 Merge pull request #748 from Subv/tls_max
Core/Memory: Add TLS support for creating up to 300 threads
2015-05-11 23:32:28 -04:00
bunnei
ee8da4c356 Merge pull request #751 from yuriks/idle-thread
Thread: Remove the idle thread
2015-05-11 23:22:47 -04:00
bunnei
6e26d063a5 Merge pull request #757 from Subv/scheduling
Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called
2015-05-11 22:54:00 -04:00
bunnei
6223496a49 Merge pull request #752 from lioncash/flush
vfp: Handle flush-to-zero mode.
2015-05-11 21:43:33 -04:00
bunnei
d22bc68175 Merge pull request #755 from lioncash/mcrr-mrrc
dyncom: Stub MCRR and MRRC
2015-05-11 21:42:45 -04:00
Yuri Kunde Schlesner
4f7a055081 Thread: Remove the idle thread
Instead just use nullptr to represent no thread is active.
2015-05-11 22:39:39 -03:00
Subv
dda94e56dd Core/Memory: Add TLS support for creating up to 300 threads 2015-05-11 20:09:23 -05:00
Yuri Kunde Schlesner
820b97787c Merge pull request #750 from Subv/process_svc
Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread
2015-05-11 17:44:26 -07:00
Subv
dbc1320923 Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called 2015-05-11 19:38:10 -05:00
purpasmart96
53130fffd9 PTM: Changed the way the ptm services are handled to be like the
IR, HID, and APT services.
2015-05-11 17:11:26 -07:00
Subv
25c010dc7d fixup! 2015-05-11 18:23:45 -05:00
Lioncash
dc7ac751f2 dyncom: Stub MCRR and MRRC
There's no other coprocessor outside the VFP (which has its own VMOV variants) in which the MPCore can send/retrieve data from.
Stubbed so citra won't crash and burn on the odd chance someone actually tries to use these.
2015-05-11 18:31:45 -04:00
purpasmart96
046044618d NWM_UDS: Fix a typo in the nwm service port name 2015-05-11 15:18:54 -07:00
Lioncash
ffc51161f3 vfp: Handle flush-to-zero mode. 2015-05-11 15:56:02 -04:00
Subv
41f74a16fd Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread 2015-05-11 09:15:10 -05:00
Yuri Kunde Schlesner
d16c2bd956 Thread: Correctly set main thread initial stack position 2015-05-11 05:08:47 -03:00
archshift
e98fbadf4a Merge pull request #740 from yuriks/gsp-shmem
Fix crashes due to un-initialized GSP shared memory
2015-05-10 18:07:44 -07:00
Subv
115ad8e16a fixup! Set the TLS address in the scheduler 2015-05-10 18:43:59 -05:00
Subv
000876858d Core/Memory: Give every emulated thread it's own TLS area.
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200.
This allows some games like Mario Kart 7 to continue further.
2015-05-10 18:35:37 -05:00
Yuri Kunde Schlesner
fd85367621 fixup! GSP: Small tweaks to shared memory initialization 2015-05-10 20:09:41 -03:00
Yuri Kunde Schlesner
1538a34eda GSP: Small tweaks to shared memory initialization 2015-05-10 20:05:30 -03:00
Yuri Kunde Schlesner
774eea8374 Kernel: Zero-fill shared memory blocks when mapping
This works around crashes related to GSP/HID/etc. shared memory blocks
having garbage values. The proper fix requires proper management of
mapped memory blocks in the process.
2015-05-10 20:05:29 -03:00
Yuri Kunde Schlesner
c96f22490a Kernel: Capture SharedMemory attributes at creation, not when mapping 2015-05-10 19:47:07 -03:00
Yuri Kunde Schlesner
b700b55696 Common: Remove the BIT macro
When the macro was introduced in 326ec51261
it wasn't noticed that it conflicted in name with a heavily used macro
inside of dyncom. This causes some compiler warnings. Since it's only
lightly used, it was opted to simply remove the new macro.
2015-05-09 18:16:46 -03:00
Tony Wasserka
e35e72d0a5 Merge pull request #734 from yuriks/memmap
Small memory map definitions cleanup
2015-05-09 15:57:29 +02:00
Yuri Kunde Schlesner
417c867e14 Loader: Add missing include 2015-05-09 05:05:59 -03:00
Yuri Kunde Schlesner
17a8cae003 Memory: Add GetPhysicalPointer helper function 2015-05-09 04:02:32 -03:00
Yuri Kunde Schlesner
28a9e4c1d5 Memory: Support more regions in the VAddr-PAddr translation functions
Also adds better documentation and removes the one-off reimplementation
of the function in pica.h.
2015-05-09 03:08:11 -03:00
Yuri Kunde Schlesner
e7b6ed7578 Memory: Sort memory region variables by VAddr 2015-05-09 01:31:00 -03:00
Yuri Kunde Schlesner
1c0b87edc2 Memory: Re-organize and rename memory area address constants 2015-05-09 01:29:52 -03:00
Yuri Kunde Schlesner
eb3eb9f75d Loader: Remove .bin file support
It is of very limited practical utility currently, and will soon be
impossible to support due to more accurate memory map emulation.
2015-05-08 23:09:41 -03:00
Yuri Kunde Schlesner
7c50b999fa Kernel: Remove unused g_main_thread variable 2015-05-08 22:12:12 -03:00
Yuri Kunde Schlesner
3cb19c9589 Process: Rename StaticAddressMapping => AddressMapping 2015-05-08 22:12:10 -03:00
Yuri Kunde Schlesner
83ccf85bb2 Process: Add more documentation to the class members 2015-05-08 22:11:49 -03:00
Yuri Kunde Schlesner
2f5904611d Process: Use BitField to store process flags 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner
7eb413155f Loader/NCCH: Fix formatting of braces 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner
2af30d465f Process: Support parsing of exheader kernel caps 2015-05-08 22:11:44 -03:00
Yuri Kunde Schlesner
a5eba2f984 Kernel: Remove g_program_id
This has been obsoleted by the field in Process.
2015-05-08 22:11:03 -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
1622068198 Merge pull request #728 from lioncash/vars
dyncom: Remove an unnecessary variable in the interpreter
2015-05-07 21:09:03 -04:00
Lioncash
ae0c38a333 Remove unnecessary dyncom header files 2015-05-07 20:45:28 -04:00
Lioncash
31dc8b8890 dyncom: Remove an unnecessary variable in the interpreter
All this was doing was needlessly aliasing a variable.
2015-05-07 19:34:04 -04:00
Yuri Kunde Schlesner
3396f352cb Common: Remove mem_arena.cpp/h
It is superfluous for Citra. (It's only really necessary if you're doing
JIT. We were using it but not taking any advantage from it.) This should
make 32-bit builds work again.
2015-05-07 19:01:09 -03:00
Yuri Kunde Schlesner
c956e8a686 Fix printf format warning 2015-05-07 15:45:22 -03:00
Yuri Kunde Schlesner
e1fbac3ca1 Common: Remove common.h 2015-05-07 15:45:22 -03:00
Yuri Kunde Schlesner
c0eaa662d4 Clean-up includes 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner
b89f644cfe FileSys: De-inline Path members 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner
6f89d25f90 FileSys: Clean-up includes, de-inline destructors 2015-05-06 23:45:06 -03:00
Yuri Kunde Schlesner
c916bcf7b5 Move typedefs from kernel.h to more appropriate places 2015-05-06 23:45:05 -03:00
Yuri Kunde Schlesner
ecff2351a1 HLE: Clean up SVC dispatch mechanism 2015-05-06 00:24:39 -03:00
Yuri Kunde Schlesner
0749687b8d Core: Remove some unused functions and types 2015-05-04 00:16:43 -03:00
bunnei
5a855bdb2f CoreTiming: Initialize static variables at bootup. 2015-05-01 18:27:05 -04:00
bunnei
d3c2f9a4a4 HLE: Properly initialize and shutdown remaining modules. 2015-05-01 18:27:05 -04:00
bunnei
bab5abaf46 Dyncom: Move cream cache to ARMul_State. 2015-05-01 18:27:04 -04:00
bunnei
c7dc799e19 Kernel: Properly initialize and shutdown all modules. 2015-05-01 18:27:03 -04:00
bunnei
57aaaf92db HW: Properly initialize and shutdown all modules. 2015-05-01 18:27:02 -04:00
bunnei
e0cb85691a Services: Initialize all state variables at bootup. 2015-05-01 18:27:02 -04:00
bunnei
bbabed8e98 Memory: Properly cleanup & shutdown. 2015-05-01 18:27:01 -04:00
purpasmart96
8716445621 ConfigMem: Remove duplicate retail bit 2015-04-28 16:22:50 -07:00
bunnei
2cc6511039 Merge pull request #692 from purpasmart96/log_improvements
Services/Loader: Use more sensible log formats for certain functions along with more info being logged.
2015-04-28 10:12:50 -04:00
purpasmart96
c3a480160e Services/Loader: Use more sensible log formats for certain functions
along with more info being logged.
2015-04-27 23:07:08 -07:00
Lioncash
1baab50e7c ptm_sysm: Add static specifier to IsLegacyPowerOff 2015-04-24 18:23:20 -04:00
Lioncash
8b2b620a5e dyncom: Remove more unused/unnecessary code
Gets rid of a sizeable amount of stuff in armdefs.
2015-04-20 16:30:34 -04:00
Lioncash
d66a12c6f6 dyncom: Remove unused/unnecessary VFP cruft 2015-04-17 20:46:05 -04:00
bunnei
3ee9f6c5d8 Merge pull request #696 from yuriks/interface-deinline
De-inline functions from Interface, removing them from service.h
2015-04-14 19:14:27 -04:00
Emmanuel Gil Peyrot
2e860bd59c Core_ARM11: Replace debug prints with our own logging functions in vfpsingle. 2015-04-14 21:34:36 +02:00
Emmanuel Gil Peyrot
0d69b2f7bd Kernel: Use the correct format string for u64 hex. 2015-04-14 21:18:31 +02:00
Emmanuel Gil Peyrot
bdcf28e3bc Headers: Add some forgotten overrides, thanks clang! 2015-04-14 21:18:25 +02:00
Yuri Kunde Schlesner
ad3e25b414 De-inline functions from Interface, removing them from service.h
This reduces the time for a full recompile from 65.43s to 59.53s (~9%)
2015-04-14 15:34:28 -03:00
bunnei
db4bd98bac SVC: Assert on unsupported CreateThread processor ID. 2015-04-09 22:55:18 -04:00
bunnei
c077bcefa9 SVC: Update various SVCs to cause a reschedule.
- CreateMutex/ReleaseMutex/ReleaseSemaphore/SetTimer/CancelTimer/ArbitrateAddress
2015-04-09 19:06:42 -04:00
bunnei
9c3419ebcc Kernel: Implemented priority inheritance for mutexes. 2015-04-09 19:06:39 -04:00
bunnei
7b9f428b23 Thread: Implement priority boost for starved threads.
SVC: Return correct error code on invalid CreateThread processor ID.

SVC: Assert when creating a thread with an invalid userland priority.
2015-04-09 19:05:21 -04:00
bunnei
ee3377b67d SVC: Reschedule on svcCreateThread. 2015-04-09 19:04:20 -04:00
bunnei
bdd190363d APT: (Subv) Fix bug where start event was being incorrectly signaled. 2015-04-09 19:04:19 -04:00
bunnei
e08f55b1a7 Kernel: Fixed default thread priority. 2015-04-09 19:04:19 -04:00
Gareth Higgins
25a43cd2ec Initialize base address to 0x0 2015-04-08 20:34:41 -04:00
Tony Wasserka
8af5753da5 Merge pull request #689 from lioncash/format
gpu: Fix a missing format specifier
2015-04-08 15:41:21 +02:00
bunnei
114126b216 Merge pull request #688 from lioncash/unused
dyncom: Remove unnecessary enum and typedef
2015-04-07 23:03:08 -04:00
bunnei
e630fd2a95 Merge pull request #676 from purpasmart96/ir_service_refc
IR: Move The IR services to their own folder and implement "GetHandles"
2015-04-07 23:01:07 -04:00
Lioncash
7da90dee42 gpu: Fix a missing format specifier 2015-04-07 10:38:49 -04:00
Lioncash
a6c9e453b2 dyncom: Remove unnecessary enum and typedef
Also fixes descriptions in the process.
2015-04-07 08:05:41 -04:00
Lioncash
29a4b6c7ed vfp: Make the FPSID values match the MPCore 2015-04-06 16:09:35 -04:00
Lioncash
f9cc6d6484 vfp: Get rid of the VFP_OFFSET macro 2015-04-06 16:09:28 -04:00
bunnei
14dcd98653 Merge pull request #685 from lioncash/cpregs
dyncom: Set the MPCore CP15 register reset values on initialization.
2015-04-06 15:06:07 -04:00
Lioncash
8004d35ea1 core: Migrate 3DS-specific CP15 register setting into Init 2015-04-06 13:01:19 -04:00
Lioncash
c3ffe8f9c3 arm_interface: Support retrieval/storage to CP15 registers 2015-04-06 12:57:49 -04:00
Lioncash
b7b8b67620 Move CP15 enum definitions into their own enum.
Also gets rid of preprocessor mumbo-jumbo
2015-04-06 12:48:35 -04:00
Lioncash
23dd2ca8a6 dyncom: Properly return the value of the user RO thread register 2015-04-06 09:26:04 -04:00
Lioncash
e628ed4810 dyncom: Set CP15 reset values on initialization 2015-04-06 09:16:42 -04:00
Lioncash
bb7dac022e dyncom: Suppress uninitialized variable warnings
The switch cases will always be hit, but this makes compilers stop complaining.
2015-04-05 23:49:06 -04:00
Yuri Kunde Schlesner
34b009cf38 Clean-up mem_map constants and fix framebuffer translation errors 2015-04-05 20:14:33 -03:00
bunnei
64196976b9 Merge pull request #680 from archshift/bg-color
Allow the user to set the background clear color during emulation
2015-04-04 15:14:14 -04:00
purpasmart96
d6c9af600f IR: Move The IR services to their own folder and implement "GetHandles" 2015-04-03 19:36:03 -07:00
bunnei
3fd2cc566b Merge pull request #641 from purpasmart96/service_stubs
Services: Stubs and minor changes
2015-04-03 22:16:50 -04:00
archshift
cae89fb315 Allow the user to set the background clear color during emulation
The background color can be seen at the sides of the bottom screen or when the window is wider than normal.
2015-04-03 15:35:51 -07:00
purpasmart96
198c0ddc72 Services: Stubs and minor changes 2015-04-02 20:05:11 -07:00
Lioncash
490df716f3 dyncom: Move CP15 register writing into its own function.
Also implements writing to the rest of the ARM11 MPCore CP15 register set.
2015-04-02 00:20:52 -04:00
Lioncash
5e5954c63b dyncom: Move CP15 register reading into its own function.
Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
2015-04-02 00:19:11 -04:00
Lioncash
de6eba0288 dyncom: Migrate InAPrivilegedMode to armsupp
It's a generic helper function, so it should be here anyway.
2015-03-26 09:22:02 -04:00
bunnei
c4767f3bb2 Merge pull request #672 from purpasmart96/citra_moar_app_mem
ConfigMem: Set the app memory to be 96MB instead of the default 64MB
2015-03-24 23:22:56 -04:00
bunnei
b3d4a10e29 Merge pull request #674 from lioncash/sys-instrs
dyncom: Implement RFE and SRS.
2015-03-24 23:21:44 -04:00
Lioncash
a80d93685a dyncom: Implement SRS 2015-03-24 12:44:31 -04:00
Lioncash
cde671795c dyncom: Implement RFE 2015-03-24 11:34:48 -04:00
Lioncash
2df10d2284 dyncom: Remove unused/unnecessary macros and macro constants 2015-03-24 09:55:56 -04:00
purpasmart96
e0c72ec871 ConfigMem: Set the app memory to be 96MB instead of the default 64MB 2015-03-23 18:53:22 -07:00
bunnei
03ceb7adf9 Merge pull request #656 from Subv/nz
Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and Del...
2015-03-22 14:58:38 -04:00
Lioncash
f23f2a9a42 armmmu: Remove unnecessary enum values
We don't need to care about XScale or Intel specific ARM stuff.
2015-03-20 19:35:32 -04:00
bunnei
1981aa3d7e Merge pull request #659 from lioncash/setend
Implement SETEND.
2015-03-19 21:37:43 -04:00
Subv
b9612fe919 Service/FS: Document and log some unknown values.
In CreateExtSaveData, DeleteExtSaveData and CreateSystemSaveData
2015-03-19 17:39:00 -05:00
bunnei
580b317821 Merge pull request #650 from Subv/scaling
GPU: Fixed the bit 25 in the display transfer flags.
2015-03-17 19:13:06 -04:00
Lioncash
9fdb311d6e dyncom: Make Load/Store instructions support big endian 2015-03-17 15:13:32 -04:00
bunnei
0bb4b77b78 Merge pull request #655 from purpasmart96/hid_fixes
HID: Proper Signal Interrupts for EnableAccelerometer & EnableGyroscopeLow along  with a stub for GetSoundVolume
2015-03-17 10:19:59 -04:00
purpasmart96
5b1757d6a5 HID: Proper Signal Interrupts for EnableAccelerometer & EnableGyroscopeLow along
with a stub for GetSoundVolume
2015-03-16 18:55:58 -07:00
bunnei
ef0c4aac86 Merge pull request #660 from purpasmart96/ncch_updates
NCCH: Minor updates to the ncch header
2015-03-16 21:21:54 -04:00
Subv
23b401c3ac GPU/DisplayTransfer: Made the scaling bits a single 2bit value
Rephrased some comments.
2015-03-16 17:54:06 -05:00
Lioncash
8cf81643a9 arm_interface: Get rid of GetTicks.
Removes a TODO.
2015-03-16 12:18:37 -04:00
purpasmart96
061c69a6bb NCCH: Minor updates to the ncch header 2015-03-15 14:17:19 -07:00
Lioncash
f280806214 dyncom: Implement SETEND 2015-03-14 23:08:36 -04:00
Subv
fb8f47060b GPU: Implemented the flip_data (bit 0) bit in display transfers. 2015-03-14 15:26:42 -05:00
Subv
1d61cd4460 Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and DeleteSystemSaveData
Also fixed a bug with CreateExtSaveData that made it unable to create ExtSaveData archives in the SDMC directory.
2015-03-14 12:00:01 -05:00
bunnei
ed5b275d21 Merge pull request #642 from bunnei/touchpad
Touchpad support
2015-03-11 21:28:57 -04:00
bunnei
4bbddda377 hid_user: Removed unnecessary includes. 2015-03-11 00:01:03 -04:00
bunnei
e79c27f1e0 HID: Removed unnecessary global variables. 2015-03-11 00:00:39 -04:00
bunnei
85cbccb1d3 HID: Added additional variable comments and some code cleanups. 2015-03-10 23:58:13 -04:00
bunnei
d61b26b79f HID: Complete refactor of pad/touch input to fix threading issues. 2015-03-10 23:58:07 -04:00
bunnei
b56829df02 Merge pull request #629 from archshift/lcdfb
Implement SetLcdForceBlack and add implementation for color filling in the GPU code
2015-03-10 18:08:55 -04:00
bunnei
a1a1a5c6c5 HID: Cleanup how next_touch_index is calculated for Pad and touch. 2015-03-10 18:05:19 -04:00
bunnei
432aa1044c HID: Changed TouchDataEntry valid to a BitField and added some doc strings. 2015-03-10 18:05:19 -04:00
bunnei
e9b9f1842b HID: Added static asserts to check register position in shared memory. 2015-03-10 18:05:19 -04:00
bunnei
1a904ded40 HID: Added functions to emulate the touchpad. 2015-03-10 18:05:17 -04:00
bunnei
3229b048d9 HID: Moved some docstrings to the header. 2015-03-10 18:05:17 -04:00
bunnei
83a66dd701 HID: Refactored shared memory decoding for touchpad support. 2015-03-10 18:05:16 -04:00
Subv
ae0dfcae1d GPU: Fixed the bit 25 in the display transfer flags.
It is used to downscale the input image horizontally and vertically, previously we were only downscaling it vertically so this caused a hard-to-debug memory corruption problem.
2015-03-10 14:18:25 -05:00
Lioncash
e34ba68e1f dyncom: Minor cleanup
Assemblers will exit with an error when trying to assemble instructions with disallowed registers.
2015-03-10 08:13:58 -04:00
archshift
041e99b613 Added LCD registers, and implementation for color filling in OGL code. 2015-03-09 15:51:41 -07:00
Tony Wasserka
511bf30a69 Merge pull request #648 from Subv/fill_bit
GPU: Use the correct position for the finished bit in memory fills
2015-03-09 23:17:11 +01:00
Subv
0abba5874c GPU: Use the correct position for the finished bit in memory fills 2015-03-09 17:15:13 -05:00
Tony Wasserka
e3a697b9f9 Merge pull request #646 from Subv/24bit_fills
GPU: Corrected the 24 bit memory fills component order
2015-03-09 23:12:30 +01:00
bunnei
8a1cc5b805 Merge pull request #589 from kevinhartman/config-errors
Fix errorcodes for bad config block request
2015-03-09 15:44:34 -04:00
Subv
a762f9c176 GPU: Corrected the 24 bit memory fills component order 2015-03-09 09:01:41 -05:00
Lioncash
386dbab5ea dyncom: Fix an indexing bug in STM
Previously it would write the contents of register 13 for the case where the link register (r14) is supposed to be written.
2015-03-08 22:03:11 -04:00
Lioncash
36dab56c31 dyncom: General cleanup of STM 2015-03-08 22:03:06 -04:00
Lioncash
e37425b380 dyncom: Increment addr when accessing LR in LDM 2015-03-08 21:46:57 -04:00
Tony Wasserka
93e32bce72 Merge pull request #538 from yuriks/perf-stat
Add profiling infrastructure and widget
2015-03-07 15:30:40 +01:00
archshift
47010fea31 Implement SetLcdForceBlack, move register enum to hw.h 2015-03-05 19:38:23 -08:00
bunnei
8e4e28aacb Merge pull request #615 from Subv/services
Services: Moved the PTM and APT services to their own folder
2015-03-04 21:27:24 -05: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
bunnei
8fc8c51118 Merge pull request #625 from lioncash/warn
vfp: Get rid of warnings
2015-03-03 19:15:32 -05:00
Lioncash
4b89cf9e43 vfp: Get rid of warnings 2015-03-03 19:13:01 -05:00
bunnei
34c31db14a GPU: Added RGB565/RGB8 framebuffer support and various cleanups.
- Centralizes color format encode/decode functions.
- Fixes endianness issues.
- Implements remaining framebuffer formats in the debugger.
2015-03-03 18:26:03 -05:00
Yuri Kunde Schlesner
44f46254dc Merge pull request #622 from Subv/titles
Services/AM: Stubbed TitleIDListGetTotal and GetTitleIDList.
2015-03-02 10:26:56 -03:00
Subv
9a72fb79fc Services/AM: Stubbed TitleIDListGetTotal and GetTitleIDList.
They will always return 0 titles for every media type for now.
This is needed to boot Home Menu further
2015-03-02 08:12:04 -05:00
bunnei
d175f2b7f3 Merge pull request #623 from Subv/card
Services/FS: Stubbed CardSlotIsInserted to always return false
2015-03-01 22:49:29 -05:00
bunnei
9a47eb117c Merge pull request #618 from lioncash/ref
result: Make comparison operators take references
2015-03-01 22:27:28 -05:00
bunnei
5d0e557689 Merge pull request #621 from Subv/power
Services/PTM: Stubbed PTM_Sysm::IsLegacyPowerOff.
2015-03-01 22:21:08 -05:00
Yuri Kunde Schlesner
cd1fbfcf1b Add profiling infrastructure and widget 2015-03-01 21:47:13 -03:00
Subv
db1a5d4222 Services/FS: Stubbed CardSlotIsInserted to always return false
We won't be emulating this for the foreseeable future and it is needed for Home Menu to boot further
2015-02-28 23:00:46 -05:00
Subv
c36778e602 Services/PTM: Stubbed PTM_Sysm::IsLegacyPowerOff.
This allows the Home Menu to boot further
2015-02-28 19:51:13 -05:00
archshift
c1d29ac202 Merge pull request #616 from archshift/5551
Added RGBA5551 compatibility in the rasterizer
2015-02-28 13:52:47 -08:00
bunnei
d362eb2669 Merge pull request #620 from lioncash/bkpt
arm_disasm: Show conditional code for BKPT instructions.
2015-02-27 22:53:33 -05:00
archshift
7f9ee69a2b Added RGBA5551 compatibility in the rasterizer
This allows Virtual Console games to display properly.
2015-02-27 19:15:08 -08:00
Lioncash
9ed3488925 arm_disasm: Show conditional code for BKPT instructions.
Changed cond_to_str to take a uint32, since unsigned numbers are only ever passed to it, and this can be a source of warnings for some compilers (also indexing an array without bounds checking a signed number is kind of iffy).
2015-02-27 21:59:30 -05:00
Lioncash
1a70782cda arm_disasm: Remove unused variable
Also declared an array as static, as it's only used in this translation unit.
2015-02-27 21:31:36 -05:00
Lioncash
99ff8bbb0c result: Make comparison operators take references
It's unnecessary to make copies for simple comparisons like this.
2015-02-27 21:16:21 -05:00
bunnei
c9ef377afa Merge pull request #599 from Subv/morton
GPU: Implemented bits 3 and 1 from the display transfer flags.
2015-02-26 22:40:27 -05:00
Subv
c564c21668 GPU: Implemented bits 3 and 1 from the display transfer flags.
Bit 3 is used to specify a raw copy, where no processing is done to the data, seems to behave exactly as a DMA.
Bit 1 is used to specify whether to convert from a tiled format to a linear format or viceversa.
2015-02-26 21:17:14 -05:00
Lioncash
8812d2fbdb arm: The CP15 Main ID register is not writeable 2015-02-26 09:28:31 -05:00
Yuri Kunde Schlesner
1b5ee96797 Merge pull request #604 from Subv/arc_ssd
Archives: Properly implemented the SystemSaveData archive.
2015-02-25 22:35:55 -03:00
Subv
9db5c9b6dc Archives: Properly implemented the SystemSaveData archive.
Ported to the new factory pattern we have for archives.
2015-02-25 19:37:10 -05:00
Lioncash
1bb400be1b arm: Remove unnecessary booleans
We don't care about any of these.
2015-02-25 10:55:50 -05:00
Subv
ef66feaeba Services: Implemented Y2R_U::GetTransferEndEvent
Aero Porter was throwing an "Invalid Handle" fatal error without this.
2015-02-24 08:28:36 -05:00
bunnei
3700263f71 Merge pull request #595 from linkmauve/new-3ds-input
Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one.
2015-02-23 21:13:29 -05:00
bunnei
50a0c4f14f Merge pull request #581 from archshift/tfe
Added information reporting from ThrowFatalError
2015-02-23 01:23:15 -05:00
Subv
b1284222f2 GPU: Fixed RGBA8 as output format in a display transfer.
Verified with hwtests
2015-02-22 15:22:14 -05:00
archshift
0420a4d1de Added information reporting from ThrowFatalError
This was RE'd from the errdisp applet.
2015-02-22 12:19:30 -08:00
Emmanuel Gil Peyrot
aa64f69af0 Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one. 2015-02-22 21:09:08 +01:00
bunnei
89a71eb6a4 Merge pull request #471 from archshift/pp3ports3
GPU: Add support for more framebuffer formats in display transfers.
2015-02-22 14:54:56 -05:00
Tony Wasserka
23c6764b2b GPU: Add support for more framebuffer formats in display transfers. 2015-02-22 11:48:02 -08:00
bunnei
dfe807b2cd Merge pull request #596 from kevinhartman/unaligned-cleanup
Clean up unaligned 32-bit memory reads
2015-02-22 12:48:28 -05:00
bunnei
d120757f32 Merge pull request #594 from Subv/display_transfer
GPU: Fixed the RGBA8 input format and RGB8 output format
2015-02-22 12:44:57 -05:00
Kevin Hartman
05c098a9e7 Cleaned up unaligned access. 2015-02-21 17:25:31 -08:00
Subv
fbbfb52a2c GPU: Fixed the RGBA8 input format and RGB8 output format
in Display Transfers, tested with hwtests.
2015-02-21 18:43:53 -05:00
Kevin Hartman
a6fdb8f217 Fix error message for bad config block request. 2015-02-20 21:47:58 -08:00
bunnei
5f9939070e Merge pull request #588 from archshift/somebranch
Sweeping cleanup of Common
2015-02-20 11:41:30 -05:00
archshift
4fb75d220a Misc cleanup of common and related functions 2015-02-19 22:26:25 -08:00
archshift
302f0b32f5 Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h 2015-02-19 22:26:25 -08:00
archshift
5efd149ad5 Remove the useless msg_handler compilation unit that was left over from Dolphin 2015-02-18 22:26:22 -08:00
archshift
3c48697ea3 Convert a few C stdlib asserts to Citra's own asserts 2015-02-18 21:52:36 -08:00
bunnei
ec8f2210e3 Merge pull request #580 from lioncash/emplace
core/video_core: Use in-place construction where possible
2015-02-18 17:36:34 -05:00
Tony Wasserka
0da6a7e234 GPU: Properly implement memory fills. 2015-02-18 14:02:58 +01:00
bunnei
745b42d236 Merge pull request #570 from purpasmart96/config_mem
ConfigMem: Clean up the Config memory to be more like the shared page
2015-02-18 00:12:37 -05:00
bunnei
8e731b129d Merge pull request #582 from lioncash/warnings
vfpinstr: Fix trivial signed/unsigned mismatch warnings
2015-02-17 23:57:54 -05:00
bunnei
60f9cd6a4a Merge pull request #579 from lioncash/bkpt
dyncom: Support conditional BKPT instructions
2015-02-17 23:54:01 -05:00
Lioncash
4f910bb1a1 vfpinstr: Fix trivial signed/unsigned mismatch warnings 2015-02-17 18:53:50 -05:00
Lioncash
5d2366e1e9 core/video_core: Use in-place construction where possible 2015-02-17 17:57:23 -05:00
Lioncash
a7120662e6 dyncom: Support conditional BKPT instructions 2015-02-17 01:37:22 -05:00
purpasmart96
c3c309f33d ConfigMem: Clean up the Config memory to be more like the shared page and moved
the helper macro for padding to common_funcs.h
2015-02-16 15:12:05 -08:00
Subv
cb3d254517 Services: Fixed "Tried to connect to named port err:f".
err:f is a named port, not a service
2015-02-16 15:24:15 -05:00
bunnei
2b2b343ce0 Merge pull request #574 from lioncash/warn
vfpdouble: Use %p for printing pointer addresses.
2015-02-16 09:45:43 -05:00
Lioncash
012d1e32ad dyncom: Actually set the destination register for USAD8/USADA8.
Idiotville: Population: 1 - Inhabitant name: Lioncash
2015-02-16 01:03:01 -05:00
Lioncash
f0c4bd629c vfpdouble: Use %p for printing pointer addresses. 2015-02-15 17:11:02 -05:00
bunnei
20dc07721c Merge pull request #539 from linkmauve/framebuffer-formats
Framebuffer formats
2015-02-15 10:00:48 -05:00
Emmanuel Gil Peyrot
c439b3074d video_core: Implement the remaining framebuffer formats in the OpenGL renderer. 2015-02-15 14:08:12 +00:00
Lioncash
473afa4530 arm: Set the A bit on reset.
This enum value is ORed against in ARMul_Reset (and used to refer to all interrupt bits in the CPSR). So simply updating this is enough.
2015-02-15 00:35:50 -05:00
bunnei
12181c8a64 Merge pull request #529 from Subv/master
Build: Fixed some warnings
2015-02-14 15:50:26 -05:00
Lioncash
0c6434c379 core: Apply static to local functions 2015-02-13 10:48:32 -05:00
Lioncash
a75e1ff6e6 arm: General cleanup
- Remove several typedefs for ARMul_State.
- Remove unused functions
- Remove unused/unnecessary headers
- Removed unused enums, etc.
2015-02-13 09:11:12 -05:00
Lioncash
b7fac494cd dyncom: Switch the app and system cores into the correct mode at initialization 2015-02-12 21:54:28 -05:00
Lioncash
c3211c9c80 dyncom: Clean up the constructor
Some function calls aren't necessary and would be handled by regular initialization routines.
2015-02-12 21:50:51 -05:00
Lioncash
df9e0c0f81 dyncom: Remove warning for SXTAH
This is tested to work correctly.
2015-02-12 20:11:20 -05:00
Lioncash
e3f5c6366c arm: Remove ARMul_EmulateInit
This was only used for armemu, which has since been removed. Removed components related to this as well.
2015-02-12 11:30:28 -05:00
Subv
8e2b248e05 Build: Fixed some warnings 2015-02-12 09:25:35 -05:00
Lioncash
f48b0100a6 armdefs: Remove unnecessary extern C 2015-02-12 08:29:57 -05:00
Kevin Hartman
a56f3f290e Implemented WriteHWRegsWithMask for GSP. 2015-02-11 11:03:17 -08:00
Lioncash
49a22acd02 arm: Remove ARM26 support.
This will never be used. 32-bit is the norm.
2015-02-11 12:23:21 -05:00
bunnei
c51b23b052 Merge pull request #559 from lioncash/clean
arm: Some cleanup. Also fixed the initial ARM mode that is emulated.
2015-02-11 12:02:35 -05:00
Lioncash
c94c41f95a arm: Get rid of some magic constants. Specify proper ARM mode.
Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
2015-02-11 10:49:55 -05:00
Lioncash
93cd199633 arm: Change some more constants into enums 2015-02-11 10:14:20 -05:00
archshift
ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00
bunnei
168eb27aee GSP: Fixed typo in SignalInterrupt 2015-02-10 19:57:48 -05:00
bunnei
76e7d41f88 Merge pull request #552 from bunnei/setbufferswap-fix
GSP SetBufferSwap fix
2015-02-10 19:21:48 -05:00
bunnei
9eae2400c0 GSP: Call SetBufferSwap for each screen on corresponding signal interrupt. 2015-02-10 19:05:56 -05:00
bunnei
ca22ee3239 Merge pull request #526 from purpasmart96/citra_stubs
Services: Stub some functions
2015-02-10 18:39:37 -05:00
bunnei
5b735bdeea Merge pull request #556 from lioncash/clean
arm: Remove TRUE/FALSE defines
2015-02-10 18:28:30 -05:00
bunnei
8f35772bd7 Merge pull request #555 from lioncash/lut
arm_dyncom_thumb: Make lookup tables static
2015-02-10 18:27:47 -05:00
Lioncash
088fab743f arm: Remove TRUE/FALSE defines
- Removed the Debug parameter from ARMul_State since it isn't used.
- Changed ARMul_CoProInit to a void function. It always returned true.
2015-02-10 13:09:41 -05:00
Subv
0d2b6dd656 PTM: Fixed a problem with the gamecoin PTM file. 2015-02-10 13:43:46 -02:00
Subv
1bbf0567b1 Archives: Made the Format function more generic. 2015-02-10 13:43:46 -02:00
Subv
071663e074 Archives: Expose the File and Directory classes to HLE 2015-02-10 13:43:45 -02:00
Subv
ca1a87ef7d ResultVal: Fixed compilation when reassigning a ResultVal. 2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner
3f1a3952d7 FS: Allow multiple instances of the same archive type to be open at once 2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner
4468625080 FS: Get rid of completely useless Archive class 2015-02-10 13:43:43 -02:00
Lioncash
8d2fb3bb2b arm_dyncom_thumb: Make lookup tables static
These don't need to be recreated all the time.
2015-02-10 10:42:09 -05:00
bunnei
67db6aa4ce Merge pull request #553 from lioncash/denorm
vfp: Normalize accumulator for multiply accumulate instructions
2015-02-10 10:09:45 -05:00
Lioncash
3eccc66abf dyncom: Add more regs to MCR/MRC
Adds the registers that were left out of some coprocessor ranges.
2015-02-10 09:34:42 -05:00
Lioncash
a86d5e2752 vfp: Normalize accumulator for multiply accumulate instructions 2015-02-10 08:16:26 -05:00
Kevin Hartman
5fcbfc06eb Scheduler refactor Pt. 1
* Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid
for a thread at any given point in the system.
* Removes dead code from thread.cpp.
* Moves the implementation of resetting a ThreadContext to the corresponding core's implementation.

Other changes:
* Fixed comments in arm interfaces.
* Updated comments in thread.cpp
* Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp.
* Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation.
2015-02-09 21:47:12 -08:00
bunnei
848795f383 Merge pull request #551 from bunnei/mutex-fixes
Mutex/synch fixes
2015-02-09 22:17:20 -05:00
bunnei
1b0bf00cbc Mutex: Locks should be recursive. 2015-02-09 22:06:09 -05:00
bunnei
caa58acc84 WaitSynch: Always reschedule (verified behavior on hw). 2015-02-09 22:05:39 -05:00
Lioncash
53fa04f326 vfpdouble: Fix the FTOUI NaN sign setting
This was fixed for vfpsingle, but not vfpdouble
2015-02-09 17:18:29 -05:00
Lioncash
a734e9fdca Throw more unused/unnecessary VFP code out 2015-02-09 11:54:39 -05:00
Lioncash
ca7babe062 vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuff 2015-02-09 09:53:17 -05:00
Lioncash
d832c48864 vfp_helper: Normalize tabs to spaces 2015-02-09 09:32:56 -05:00
purpasmart96
60ce36f721 Services: Stub some functions 2015-02-07 17:34:59 -08:00
Lioncash
1ecd75ea1a vfp_helper: Remove unnecessary extern C blocks 2015-02-06 14:52:29 -05:00
Lioncash
3e576219c4 vfp: Move FPSID, FPEXC, and FPSCR values over to enums.
Also got rid of duplicate definitions of some of these values.
2015-02-06 14:52:05 -05:00
bunnei
7f900ac68e Merge pull request #537 from lioncash/vfp
vfp: Fix VCVT
2015-02-04 14:58:36 -05:00
bunnei
4d36a6a255 Merge pull request #536 from lioncash/dead
vfp: Throw out unused code
2015-02-04 14:57:00 -05:00
Lioncash
82e8f25fe7 vfp: Fix VCVT
These variants exclusively read from the single precision regs and write to double-precision registers
Fixes issues where converted values would be way off from what they should be due to the results being stored in the wrong registers.
2015-02-04 14:06:10 -05:00
Lioncash
7ecedfb970 vfp: Throw out unused code 2015-02-04 13:11:03 -05:00
Lioncash
3a5a39c6aa dyncom: Remove more unnecessary code 2015-02-03 14:05:53 -05:00
Lioncash
676daef3c7 core: Fix some warnings on OSX 2015-02-03 08:14:42 -05:00
Yuri Kunde Schlesner
88a4a808c6 Kernel: Stop creating useless Handles during object creation
They're finally unnecessary, and will stop cluttering the application's
handle table.
2015-02-02 15:37:09 -02:00
Yuri Kunde Schlesner
52f58e64ef Kernel: Make WaitObjects share ownership of Threads waiting on them
During normal operation, a thread waiting on an WaitObject and the
object hold mutual references to each other for the duration of the
wait.

If a process is forcefully terminated (The CTR kernel has a SVC to do
this, TerminateProcess, though no equivalent exists for threads.) its
threads would also be stopped and destroyed, leaving dangling pointers
in the WaitObjects.

The solution is to simply have the Thread remove itself from WaitObjects
when it is stopped. The vector of Threads in WaitObject has also been
changed to hold SharedPtrs, just in case. (Better to have a reference
cycle than a crash.)
2015-02-02 15:37:08 -02: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
Yuri Kunde Schlesner
4e84df8be3 Mutex: Replace g_mutex_held_locks with a set inside Thread 2015-02-02 15:37:06 -02:00
Yuri Kunde Schlesner
0f69668fc6 HID: Fix crash when pressing a key when the emulator is stopped 2015-02-02 15:37:05 -02:00
Yuri Kunde Schlesner
c4208c1171 SVC: Enable CloseHandle, clean up DuplicateHandle 2015-02-02 15:37:04 -02:00
Yuri Kunde Schlesner
e8330dd162 Kernel: Fix bug in HandleTable::Close 2015-02-02 15:37:04 -02:00
Yuri Kunde Schlesner
5354a479bc Kernel: Remove Object::GetHandle (it's not used anymore :D) 2015-02-02 15:37:04 -02:00
Yuri Kunde Schlesner
869ec46683 Kernel: Introduce unique Object ids for debugging 2015-02-02 15:37:03 -02:00
Yuri Kunde Schlesner
a9b86db3cf Kernel: Use separate Handle tables for CoreTiming userdata
This is to support the removal of GetHandle soon
2015-02-02 15:37:03 -02:00
Yuri Kunde Schlesner
ec9c773251 Kernel: Remove previous scheduled event when a Timer is re-Set 2015-02-02 15:37:02 -02:00
Yuri Kunde Schlesner
8441591659 FS: Remove use of GetHandle 2015-02-02 15:37:01 -02:00
Yuri Kunde Schlesner
664c79ff47 Thread: Modernize two functions that slipped through previous rebases 2015-02-02 15:37:01 -02:00
Yuri Kunde Schlesner
6e11570862 Service: Store function names as const char* instead of std::string
Uses less memory (strings and function table is stored in constant data)
and speeds up start up (no need to allocate and copy strings).
2015-02-02 15:37:00 -02:00
Yuri Kunde Schlesner
a79d21c83e Service: Clean-up Interface 2015-02-02 15:36:59 -02:00
Yuri Kunde Schlesner
8779b31fe6 Make Port/Service registration and querying more HW-accurate 2015-02-02 15:36:59 -02:00
Yuri Kunde Schlesner
5e91fc0d1a Filesys: Move creation of Handles for File/Directory to service handlers 2015-02-02 15:36:58 -02:00
bunnei
c915d0b727 Merge pull request #514 from rohit-n/fix-warnings
Silence a few warnings.
2015-02-01 00:31:06 -05:00
bunnei
c8628f5d56 Merge pull request #525 from lioncash/armwarn
vfp: Get rid of some compile warnings
2015-02-01 00:28:50 -05:00
Lioncash
8c944bd1f0 vfp: Get rid of some compile warnings 2015-01-31 22:14:00 -05:00
Lioncash
3f00dd9117 arm: Clean up ARMul_State
Remove unnecessary/unused struct variables.
2015-01-31 21:55:34 -05:00
Lioncash
f44781fd7b arm: Adios armemu 2015-01-31 20:43:03 -05:00
Tony Wasserka
73a7a379d6 Merge pull request #512 from lioncash/assignment
shared_memory: Fix assignments in SharedMemory::Map
2015-01-31 12:59:00 +01:00
Lioncash
b6cfc48a0b dyncom: clean up arm_dyncom_dec.h 2015-01-30 16:28:52 -05:00
Lioncash
fc1a9e35fb arm: Move headers over to pragma once 2015-01-30 16:17:02 -05:00
Lioncash
83bc1a3120 arm: Get rid of armcpu.h and skyeye_types.h 2015-01-30 16:16:58 -05:00
Lioncash
904194c3e8 arm: Clean out armos.h and armmmu.h 2015-01-30 15:48:57 -05:00
bunnei
88a62b671b Merge pull request #513 from lioncash/cleanup
arm: Cleanup.
2015-01-30 15:30:30 -05:00
Rohit Nirmal
5ebf35db96 Silence a few warnings. 2015-01-30 19:20:34 +00:00
Lioncash
09a66860e2 arm: Throw out a lot of unnecessary code 2015-01-30 13:32:03 -05:00
Lioncash
3dfef1701c armdefs: Move some defines over to enums 2015-01-30 12:43:58 -05:00
Lioncash
96c174aed4 shared_memory: Fix assignments in SharedMemory::Map 2015-01-30 11:37:53 -05:00
Lioncash
0c4685ca12 loader: Add missing printf argument 2015-01-30 11:34:05 -05:00
Lioncash
551264f815 archive: Fix initializer list order for the File class. 2015-01-30 11:30:22 -05:00
Lioncash
0c53cc52bd apt_u: Fix missing printf specifiers 2015-01-30 11:28:09 -05:00
Yuri Kunde Schlesner
d917a9bf77 Kernel: Mark all appropriate kernel objects as "final" 2015-01-30 11:49:46 -02:00
Yuri Kunde Schlesner
58b544db99 SVC: Use CASCADE_RESULT in SVC handlers 2015-01-30 11:49:46 -02:00
Yuri Kunde Schlesner
09ae6e1fa3 Remove result.h InvalidHandle
It was only being used in two places, where it was replaced by a local
constant.
2015-01-30 11:49:45 -02:00
Yuri Kunde Schlesner
44f90340dc SVC: Change return type of handlers to ResultCode 2015-01-30 11:49:44 -02:00
Yuri Kunde Schlesner
d52d859936 Kernel: Convert Event to not use Handles 2015-01-30 11:49:43 -02:00
Yuri Kunde Schlesner
ad80ff1e32 Kernel: Convert Timer to (mostly) not use Handles 2015-01-30 11:47:07 -02:00
Yuri Kunde Schlesner
882b6fed75 Kernel: Convert Mutex to not use Handles 2015-01-30 11:47:06 -02:00
Yuri Kunde Schlesner
38e7122f23 Kernel: Convert AddressArbiter to not use Handles 2015-01-30 11:47:06 -02:00
Yuri Kunde Schlesner
d9b19be1d9 Kernel: Convert Semaphore to not use Handles 2015-01-30 11:47:05 -02:00
Yuri Kunde Schlesner
4bb33dfc30 Kernel: Convert SharedMemory to not use Handles 2015-01-30 11:47:04 -02:00
Yuri Kunde Schlesner
afc416c607 Additions to ResultVal to make it more convenient to use. 2015-01-30 11:47:02 -02:00
Yuri Kunde Schlesner
b5ee4f9df9 Move VAddr/PAddr typedefs to kernel.h 2015-01-30 11:47:01 -02:00
Yuri Kunde Schlesner
9a345de2bd Kernel: Remove useless/duplicated comments; mark functions static 2015-01-30 11:47:01 -02:00
bunnei
206cabc0e4 Merge pull request #412 from purpasmart96/svc_table_cleanup
SVC: Update the SVC function table
2015-01-28 17:36:23 -05:00
Lioncash
7a3e371141 dyncom: Minor cleanup
Narrow scopes for the instruction variables. Remove unnecessary parentheses.
2015-01-27 08:51:18 -05:00
purpasmart96
62f4365db1 SVC: Update the SVC function table 2015-01-26 20:42:28 -08:00
bunnei
326c451758 Merge pull request #345 from purpasmart96/apt_stubs
APT_U: Stub some functions & misc changes
2015-01-26 23:13:54 -05:00
bunnei
547737f720 Update vfp.cpp
VFP: Changed a debug log to trace.
2015-01-26 21:38:53 -05:00
bunnei
e7dd4d34aa Merge pull request #485 from Subv/more_servs
Services: Stubbed more services.
2015-01-25 22:13:13 -05:00
Subv
2ea60bdc7f Services/HID: Removed some files due to a rebase error 2015-01-24 15:54:24 -05:00
Subv
c2e9990149 Services: Stubbed more services.
Implemented FSUser::CreateExtSaveData
2015-01-24 15:44:40 -05:00
bunnei
cc34462b71 Merge pull request #410 from chinhodado/cleanup
Cleanup: Logging in Core
2015-01-24 00:41:10 -05:00
Lioncash
e09fb7becc vfp: Clean up vertical alignment for instructions 2015-01-23 13:35:08 -05:00
purpasmart96
2dd23b6467 APT_U: Stub some functions & misc changes 2015-01-22 16:03:48 -08:00
archshift
92a75df9b1 cam_u.h: fix indentation
Withholding my profanity towards Xcode.
2015-01-22 12:51:53 -08:00
bunnei
92550013cf Merge pull request #493 from archshift/ptmplay
Stubbed some services
2015-01-22 13:25:19 -05:00
Lioncash
8810dfe1de dyncom: Minor cleanup
Removes some unused macros and cleans up indentation inconsistencies
2015-01-22 09:39:41 -05:00
bunnei
731154f79e WaitSynchronization: Added a result code for invalid result, fixed bug. 2015-01-21 20:49:43 -05:00
bunnei
68ddaaa2f5 Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup. 2015-01-21 20:48:46 -05:00
bunnei
4255f25647 Thread: Use std::find in CheckWait_WaitObject. 2015-01-21 20:48:46 -05:00
bunnei
2f3020a102 Mutex: Cleanup and remove redundant code. 2015-01-21 20:48:36 -05:00
bunnei
f09806aed2 Kernel: Renamed some functions for clarity.
- ReleaseNextThread->WakeupNextThread
- ReleaseAllWaitingThreads->WakeupAllWaitingThreads.
2015-01-21 20:48:30 -05:00
bunnei
15b6a4d9ad Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void. 2015-01-21 20:47:49 -05:00
bunnei
c68eb15695 WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" pure virtual. 2015-01-21 20:47:49 -05:00
bunnei
69c5830ef2 Event: Fix implementation of "non-sticky" events. 2015-01-21 20:47:48 -05:00
bunnei
9e6ec3b6cd Session: Change to a WaitObject. 2015-01-21 20:47:47 -05:00
bunnei
d2759c578e Kernel: Reschedule on SignalEvent and SendSyncRequest, fix some bugs. 2015-01-21 20:47:47 -05:00
bunnei
dde02f79af Mutex: Fix a bug where the thread should not wait if it already has the mutex. 2015-01-21 20:47:46 -05:00
bunnei
9412996c8f Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a WaitObject safely. 2015-01-21 20:47:46 -05:00
bunnei
c06d64528a SVC: Removed a Sleep that made no sense
- Would deadlock the calling thread
- Code would never get hit anyways
2015-01-21 20:47:45 -05:00
bunnei
254e4ebd58 AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense. 2015-01-21 20:47:45 -05:00
bunnei
e5a9f1c644 Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks. 2015-01-21 20:47:38 -05:00
bunnei
6deb1a0119 WaitSynchronizationN: Improved comments 2015-01-21 19:12:51 -05:00
bunnei
6643673f28 WaitSynchronizationN: Refactor to fix several bugs
- Separate wait checking from waiting the current thread
- Resume thread when wait_all=true only if all objects are available at once
- Set output to correct wait object index when there are duplicate handles
2015-01-21 19:11:47 -05:00
bunnei
aa01c57ae9 Kernel: Separate WaitSynchronization into Wait and Acquire methods. 2015-01-21 19:10:24 -05:00
bunnei
627e96fc15 WaitSynchronizationN: Handle case where handles=nullptr. 2015-01-21 19:09:10 -05:00
bunnei
f5c6d367c9 WaitSynchronizationN: Handle case where handle_count is invalid. 2015-01-21 19:09:09 -05:00
bunnei
064be2b86f WaitSynchronizationN: Handle case where handle_count=0. 2015-01-21 19:09:09 -05:00
bunnei
7faf2d8e06 WaitSynchronizationN: Implement return values 2015-01-21 19:09:03 -05:00
bunnei
e4a5d8ad4f Event: Fixed some bugs and cleanup (Subv) 2015-01-21 18:43:50 -05:00
bunnei
1f7a04f05a Thread: Keep track of multiple wait objects. 2015-01-21 18:42:04 -05:00
bunnei
14cbbf4d9b Event: Get rid of permanent_lock hack. 2015-01-21 18:42:04 -05:00
bunnei
5e77e2e1de WaitObject: Added RemoveWaitingThread, fixed a bug, and cleanup. 2015-01-21 18:41:58 -05:00
bunnei
c22bac6398 Kernel: Added WaitObject and changed "waitable" objects inherit from it. 2015-01-21 18:41:00 -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
8571befc64 Merge pull request #498 from lioncash/statics
core_timing: Mark several variables as static
2015-01-20 14:34:07 -05:00
Lioncash
a3f5e5605c core: Fix a few docstrings 2015-01-20 13:52:44 -05:00
Lioncash
bfef0aa07e core_timing: Mark several variables as static
These are only used in this translation unit.
2015-01-20 13:49:10 -05:00
bunnei
cbbe9e1500 Merge pull request #492 from archshift/apt
Expose GetSharedFont and NotifyToWait to APT:A and APT:S respectively
2015-01-20 12:55:53 -05:00
bunnei
205170fa62 Merge pull request #241 from linkmauve/better-loader
Improve the loader a bit
2015-01-20 12:55:28 -05:00
Lioncash
8c6edc680c dyncom: Clarify precedence for ternary statements 2015-01-19 20:35:55 -05:00
bunnei
004b23153b Merge pull request #494 from lioncash/shift
dyncom: Implement missing shifts in ScaledRegisterPostIndexed, etc
2015-01-19 16:42:31 -05:00
Chin
fa8e6272c8 Cleanup: Logging in Core 2015-01-19 16:01:06 -05:00
Lioncash
a873f157d0 dyncom: Implement missing shifts in ScaledRegisterPostIndexed, etc 2015-01-18 18:32:02 -05: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
archshift
4d316cbd8e Expose GetSharedFont and NotifyToWait to APT:A and APT:S respectively 2015-01-18 15:15:14 -08:00
Lioncash
8575010a68 dyncom: Handle the ARM A2 encoding of STRT/LDRT
These were also missing the shifted register case.
2015-01-17 13:53:35 -05:00
Lioncash
0a5d450e94 dyncom: Handle the ARM A2 encoding of LDRBT/STRBT. 2015-01-16 21:05:27 -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
bunnei
2572a62480 APT: Fix typo in setting return code for NotifyToWait 2015-01-15 18:23:53 -05:00
bunnei
350c5a7e32 DSP: Removed useless spam log for SignalInterrupt 2015-01-15 18:20:58 -05:00
bunnei
4b47ed6194 Merge pull request #482 from yuriks/fix-vblank
Correctness fixes for GPU flipping and interrupts
2015-01-15 18:11:03 -05:00
Emmanuel Gil Peyrot
df0d66c7cf Loader: Clean up the ELF AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
84e52a944d Loader: Clean up the 3DSX AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
08aaa33500 Loader: Clean up the NCCH AppLoader. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
2c24e539a2 Loader: Display the type of the file being loaded. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
82ec17db7d Loader: Guess filetype from the magic, or fallback to the extension. 2015-01-15 22:23:08 +01:00
Emmanuel Gil Peyrot
04622a859c Loader: Don’t assume the file hasn’t been read before. 2015-01-15 22:23:07 +01:00
Emmanuel Gil Peyrot
b5237e885d Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
2d63df90a9 Loader: Initialize the default NCCH values in the class declaration, not in the constructor. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
9d3bb8b7c0 Loader: Remove the useless THREEDSXReader class. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
85030c6e6b Loader: Never forget to change is_loaded. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
43e699d849 Loader: Don’t duplicate the docstring into the cpp file. 2015-01-15 21:21:26 +00:00
Emmanuel Gil Peyrot
bc2212106f Loader: Fix indentation, whitespace, and a few other such cosmetic stuff. 2015-01-15 21:21:25 +00:00
bunnei
3ff5a80d46 Merge pull request #481 from Subv/hm_b
APTU: Stubbed NotifyToWait, taken from 3dmoo.
2015-01-14 21:39:49 -05:00
Sebastian Valle
fd1b600e05 APT: Fixed the comment style in some variables 2015-01-14 10:14:22 -05:00
bunnei
394d44cf74 Merge pull request #480 from Subv/arb_2
AddrArbiter: Implement arbitration types 3 and 4.
2015-01-14 10:04:33 -05:00
Yuri Kunde Schlesner
a09f71521e GPU: Fix buffer overrun in Display Transfers
Display transfers with the horizontal downscaling flag were calculating
the wrong output size, causing them to write double the amount of data
intended. It is likely that this was perceived as correct due to a
separate bug in calculating source indices which caused the image to be
padded unless the previous bug was present.

This fixes both issues, correcting flickering issues in 3dscraft,
blargSnes and more (caused by the transfer overwriting the back buffer
which followed) as well as potentially fixing other crashes.
2015-01-14 05:20:14 -02:00
Yuri Kunde Schlesner
7630b31672 GSP: Fix appending of interrupts to the shared memory buffer
The code was previously appending the interrupt to after the end of the
buffer, instead of at the end.
2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner
9e084826b8 GPU: Do periodic VBlank updates using CoreTiming 2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner
e29dd76e12 GPU: Correct wrong default framebuffer address for sub-screen.
It appears this is a mistake, since the sub-screen has no right
framebuffer.
2015-01-14 05:20:13 -02:00
Yuri Kunde Schlesner
5961a2852d GSP: Update framebuffer info on all interrupts
Hardware testing determined that the GSP processes shared memory
framebuffer update info even when no memory transfer or filling GX
commands are used. They are now updated on every interrupt, which isn't
confirmed correct but matches hardware behaviour more closely.

This also reverts the hack introduced in #404. It made a few games
behave better, but I believe it's incorrect and also breaks other games.
2015-01-14 05:20:12 -02:00
Yuri Kunde Schlesner
98e3274935 GPU: Fire GPU interrupts at the correct places.
PDC0 and PDC1 are both VBlank interrupts. PDC0 was being treated as a
HBlank interrupt and fired many more times than it should. They now both
fire together at 60 Hz. This puzzlingly *improves* apparent framerate on
many applications.

A few other interrupts were being fired inside the GSP command
processing instead of on the actual GPU register writes, so they were
moved there, which should cover direct writes tho those registers not
going through the GX command queue.
2015-01-14 05:07:35 -02:00
Subv
728c932dba APTU: Stubbed NotifyToWait, taken from 3dmoo.
Also renamed some handles in the APT:U service to be more descriptive.
Fixed a typo in InquireNotification
2015-01-13 19:18:10 -05:00
Subv
9e2ae289b8 AddrArbiter: Implement arbitration types 3 and 4. 2015-01-13 14:49:26 -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
Lioncash
9288893d29 vfp: Remove dead code 2015-01-12 15:24:57 -05:00
Lioncash
f7770b83d4 dyncom: Fix 32-bit ASR shifts for immediates 2015-01-12 14:15:24 -05:00
Lioncash
e16b35eb53 dyncom: Remove unused flag macros 2015-01-12 12:57:15 -05:00
bunnei
f3a7b66267 Merge pull request #472 from lioncash/overflow
dyncom: Fix some more V-flag setting ops. Plus some cleanup.
2015-01-12 10:35:19 -05:00
Lioncash
2843d1b98b dyncom: Get rid of unnecessary outer-scope variables in InterpreterMainLoop 2015-01-12 01:11:46 -05:00
Lioncash
3ace75a49f dyncom: Fix overflow flag setting for ADD/RSB/RSC/SUB/SBC
Also cleans up CMN, and CMP.
2015-01-12 01:03:58 -05:00
Lioncash
9c2c89b7e1 dyncom: Add a helper function for addition with a carry 2015-01-12 00:44:28 -05:00
darkf
67c644e317 Fix building on MinGW 2015-01-11 20:22:08 -08:00
Lioncash
d2a05bbbc6 dyncom: Fix ADC overflow flag setting 2015-01-11 22:27:09 -05:00
bunnei
b33380ca59 Merge pull request #456 from Subv/waitsync1
SVC: Wake up the thread after the delay in WaitSync1
2015-01-11 18:52:09 -05:00
Lioncash
eabfa5cf43 dyncom: Fix conditional execution of MSR 2015-01-11 18:45:45 -05:00
bunnei
542b0b0057 Merge pull request #466 from Subv/wake
Thread: Prevent waking a thread multiple times.
2015-01-11 13:39:23 -05:00
Subv
b68d51ed30 Thread: Prevent waking a thread multiple times.
If a thread was woken up by something, cancel the wakeup timeout.
2015-01-11 13:18:52 -05:00
Subv
38da198aa1 SVC: Wake up the thread after the delay in WaitSync1 2015-01-11 10:42:59 -05:00
archshift
3b555e2512 Stubbed y2r:u IsBusyConversion
There is no documentation available on this function, but we set the result to false as a stub.
This allows Super Little Acorns to move all the way in game with pp3c.
2015-01-10 22:47:31 -08:00
archshift
95be6ad7ae Added Archive ID to fs:USER debug logs involving opening the archive. 2015-01-10 14:32:11 -08:00
archshift
228843c43e Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance. 2015-01-10 14:32:10 -08:00
Yuri Kunde Schlesner
8ad41775cc Kernel: Start using boost::intrusive_ptr for lifetime management 2015-01-09 19:43:52 -02:00
Yuri Kunde Schlesner
d751de7341 Kernel: Don't re-assign object's handle when duplicating one 2015-01-09 19:43:51 -02:00
bunnei
6ae12424df Merge pull request #444 from yuriks/handle-reform2
Kernel Lifetime Reform Pt. 2
2015-01-09 12:59:35 -05:00
bunnei
86e07124ad Merge pull request #436 from kevinhartman/system-core
Warn if a new thread is intended to be run on the system CPU core
2015-01-09 11:14:35 -05:00
Yuri Kunde Schlesner
78ea76e12f Thread: Fix nullptr access in a logging function 2015-01-09 04:02:28 -02:00
Yuri Kunde Schlesner
7f1557fbbd Thread: Rename thread_queue => thread_list 2015-01-09 04:02:17 -02:00
Yuri Kunde Schlesner
9bf8462b96 Thread: Reduce use of Handles and move some funcs to inside the class. 2015-01-09 04:02:15 -02:00
Yuri Kunde Schlesner
ba72208cd4 Kernel: Move Thread's definition to the header file 2015-01-09 03:51:55 -02:00
Yuri Kunde Schlesner
7b3452c730 Move ThreadContext to core/core.h and deal with the fallout 2015-01-09 03:51:55 -02:00
bunnei
d46f650036 Merge pull request #255 from Subv/cbranch_3
Implemented timers
2015-01-08 22:38:33 -05:00
Subv
40c1439c34 Core: Fixed a crash and removed some unused variables.
ARM_Disasm only has static methods, so there's no need to have an instance of it.
2015-01-08 21:49:41 -05:00
Subv
07044651ef SVC: Implemented the Timer service calls. 2015-01-08 21:22:14 -05:00
Subv
fc842963c8 DynCom: Add a comment to GetTicks. 2015-01-08 19:46:00 -05:00
Subv
620d77b7e3 Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
2015-01-08 19:39:14 -05:00
bunnei
cf1bbe8705 Merge pull request #443 from Subv/sleep_thread
SVC: Fixed SleepThread
2015-01-08 18:45:35 -05:00
Subv
dfc440785a SVC: Fixed SleepThread.
It will now properly wait the specified number of nanoseconds and then wake up the thread.
2015-01-08 18:39:12 -05:00
bunnei
2432f317e4 Merge pull request #446 from lioncash/umaal
dyncom: Fix UMAAL
2015-01-08 11:22:20 -05:00
Lioncash
1cef6e92d5 dyncom: Fix UMAAL
These need to be done as a 64-bit operation.
2015-01-08 11:09:21 -05:00
Subv
60a373a786 Threads: Use a dummy idle thread when no other are ready.
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again.
2015-01-07 20:31:31 -05:00
bunnei
b659cac2dc Merge pull request #404 from bunnei/more-frame-synch-fixes
GPU: Toggle active framebuffer each frame
2015-01-07 18:13:48 -05:00
bunnei
f7a3f45f1e GSP: Toggle active framebuffer each frame 2015-01-07 18:06:00 -05:00
bunnei
e6864a1f41 Merge pull request #431 from yuriks/thread-queue-cleanup
Common: Clean up ThreadQueueList
2015-01-07 17:58:31 -05:00
Kevin Hartman
63be6aaadd Warn if a new thread is intended to be run on the system CPU core until we implement correct scheduling for such a thread. 2015-01-07 14:14:48 -08:00
bunnei
4c583732f2 Merge pull request #442 from lioncash/smul
dyncom: Fix SMULWB/SMULWT
2015-01-07 16:49:30 -05:00
Lioncash
df5e0f9f28 dyncom: Fix SMULWB/SMULWT
Wasn't doing proper sign-extension
2015-01-07 16:41:08 -05:00
Yuri Kunde Schlesner
122c2bb324 Common: Clean up ThreadQueueList
Replace all the C-style complicated buffer management with a std::deque.
In addition to making the code easier to understand it also adds support
for non-POD IdTypes.

Also clean the rest of the code to follow our code style.
2015-01-07 18:38:25 -02:00
bunnei
3eca33c6a4 Merge pull request #425 from Subv/coretiming
Ported the CoreTiming namespace from PPSSPP
2015-01-07 15:30:46 -05:00
Subv
9bf82beb4c CoreTiming: Ported the CoreTiming namespace from PPSSPP
Implemented the required calls to make it work.

CoreTiming: Added a new logging class Core_Timing.
2015-01-07 15:08:35 -05:00
Yuri Kunde Schlesner
a6ad68190f Fix double-free in Service manager during shutdown
Fixes #423.
2015-01-07 17:32:31 -02:00
bunnei
317fe1e528 Merge pull request #438 from lioncash/swp
dyncom: Fix SWPB
2015-01-07 09:53:29 -05:00
bunnei
5ae3a9657d Merge pull request #434 from lioncash/sm
dyncom: Move over SMLALXY
2015-01-07 09:51:06 -05:00
Lioncash
75c211c10f dyncom: Fix SWPB 2015-01-07 09:36:06 -05:00
Lioncash
511e13f3e3 dyncom: Move over SMLALXY 2015-01-07 00:53:56 -05:00
bunnei
088863c921 Merge pull request #376 from Subv/arc_reorder
Archives: Change the folder layout of some archives.
2015-01-06 20:13:56 -05:00
Subv
8fbe5d2dca Archives/Exdata: Don't set concrete_mount_point in the ctor 2015-01-06 16:12:25 -05:00
Subv
32dbb76e00 Archives: Changed the unimplemented archives comment.
It now refers to me as the PoC
2015-01-06 15:34:37 -05:00
Subv
5244ac0e9c Archives: Addressed some comments 2015-01-06 15:02:30 -05:00
bunnei
89bb0ecbd5 Merge pull request #417 from kevinhartman/exclusive-tag-fix
Added exclusive reservation granule from ARMv7 spec to dyncom...
2015-01-06 12:42:10 -05:00
bunnei
9eaef4e04a Merge pull request #413 from purpasmart96/serv_clean
Services: Clean up a few things and add a few function names
2015-01-05 22:48:58 -05:00
Kevin Hartman
8132c01830 Added exclusive reservation granule from ARMv7 spec to dyncom to protect LDR/STREX. 2015-01-05 22:29:51 -05:00
bunnei
9b83f0e158 Merge pull request #272 from rohit-n/sign-compare
Silence some -Wsign-compare warnings.
2015-01-05 22:10:56 -05:00
purpasmart96
379b39e583 Services: Clean up a few things and add a few function names 2015-01-05 16:07:15 -08:00
Subv
123a76c9c8 SaveDataCheck: Fixed a typo 2015-01-05 16:40:36 -05:00
bunnei
6fad32ea98 Merge pull request #422 from lioncash/bxj
dyncom: Partially emulate BXJ
2015-01-05 16:36:29 -05:00
Lioncash
f75def619c dyncom: Partially emulate BXJ
Just in case some game studio let the intern write inline assembly or something.
2015-01-05 15:55:09 -05:00
bunnei
4828d0b7af Merge pull request #416 from bunnei/fake-dsp-interrupt
DSP: Signal (faked) interrupt on every frame.
2015-01-05 15:51:36 -05:00
Lioncash
e08a39a2f4 dyncom: Actually set the Q flag for SMLABB/SMLABT/SMLATB/SMLATT
Easy skyeye todo fix.
2015-01-05 10:41:02 -05:00
bunnei
8b1ec1a82a Merge pull request #418 from lioncash/qd
dyncom: Implement QADD/QSUB/QDADD/QDSUB
2015-01-05 09:59:12 -05:00
Lioncash
d00c22c706 dyncom: Implement QADD/QSUB/QDADD/QDSUB 2015-01-05 09:13:41 -05:00
bunnei
e9650f1c61 DSP: Signal (faked) interrupt on every frame.
- Hack to work around games checking that the DSP event has been signaled by a real DSP interrupt.
2015-01-05 00:25:37 -05:00
bunnei
cc23269ff4 Merge pull request #407 from Subv/arbiter
AddressArbiter: Ported arbitration type 2 from 3dmoo.
2015-01-05 00:05:50 -05:00
bunnei
81e255a411 Merge pull request #415 from Dante38490/master
Loader: Add support for loading NCCH ROMs with the .3DS extension
2015-01-04 23:10:04 -05:00
bunnei
96e6b2aa50 Merge pull request #408 from Subv/mutex
Mutex: Add the calling thread to the waiting list when needed
2015-01-04 22:55:53 -05:00
Dante38490
e674aa31af Fix correct espace 2015-01-05 04:45:09 +01:00
Dante38490
35a085d567 Add support load 3DS room 2015-01-05 04:39:42 +01:00
bunnei
26f31a2dfb Merge pull request #386 from archshift/y2ru
Stub the y2r:u service
2015-01-04 21:40:58 -05:00
Subv
ea80363cc2 Mutex: Add the calling thread to the waiting list when needed
This will happen when the mutex is already owned by another thread. Should fix some issues with games being stuck due to waiting threads not being awoken.
2015-01-04 12:52:34 -05:00
Lioncash
41e1cb12e5 skyeye: Remove duplicate typedefs
citra already has its own typedefs like this.
2015-01-04 12:34:02 -05:00
Subv
90dffe3fc1 Archives: Make SYSTEM_ID and SDCARD_ID strings 2015-01-04 09:10:27 -05:00
Subv
71a063f45c Archives: Changed the way paths are built for the archives.
Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout
2015-01-03 20:46:05 -05:00
Subv
cfd7b219f6 SaveDataCheck: Move the files to nand/title
under /nand/title/high/low/content/00000000.app.romfs
2015-01-03 19:01:46 -05:00
Yuri Kunde Schlesner
930e13cb2c FileSys: Fix crash bug in DiskFile exposed by #400 2015-01-03 18:28:37 -02:00
archshift
48130b1eaa Stub the y2r:u service 2015-01-03 16:42:39 -03:00
Yuri Kunde Schlesner
19b2e739c5 FileSys: Fix a few memory leaks 2015-01-03 17:16:16 -02:00
Subv
0276a75f24 AddressArbiter: Ported arbitration type 2 from 3dmoo.
(Thanks 3dmoo!)
2015-01-03 12:09:11 -05:00
bunnei
edbb47d967 Merge pull request #396 from bunnei/default-dyncom
Core: Change default CPU to dyncom.
2015-01-03 11:59:42 -05:00
bunnei
caa6d431ee Merge pull request #398 from lioncash/sm
dyncom: Implement SMLAW
2015-01-03 11:47:01 -05:00
Lioncash
6adc0a4622 dyncom: Implement SMLAW 2015-01-03 03:13:49 -05:00
bunnei
b11518c272 VFP: Minor cleanup, functionally the same. 2015-01-03 01:22:38 -05:00
bunnei
dd21f986b8 Merge pull request #395 from lioncash/rev
dyncom: Implement REVSH
2015-01-02 22:44:39 -05:00
Lioncash
2f19acf064 dyncom: Implement REVSH
Also joins the REV ops into one common place.
2015-01-02 22:40:43 -05:00
bunnei
853b46c681 Core: Change default CPU to dyncom. 2015-01-02 22:33:53 -05:00
Lioncash
e0e54f55d7 dyncom: Implement SMLALD/SMLSLD 2015-01-02 22:08:26 -05:00
Subv
3bc9f5509b Archives: Change the folder layout of some archives.
This is to better represent the hardware layout, they are still aren't quite accurate, but this better and will help a bit when implementing the other archives like NAND-RO and NAND-RW
2015-01-02 21:55:13 -05:00
bunnei
031237e52c Merge pull request #381 from Subv/savedatacheck
Implemented the SaveDataCheck archive
2015-01-02 21:50:57 -05:00
bunnei
3e230d6c9e Merge pull request #392 from lioncash/sm
dyncom: Implement SMMLA/SMMUL/SMMLS
2015-01-02 21:47:53 -05:00
Lioncash
64161bcb41 dyncom: Implement SMMLA/SMMUL/SMMLS 2015-01-02 21:40:29 -05:00
Subv
22cfa55302 IVFCArchive: Use a critical log to notify of invalid operations. 2015-01-02 21:39:31 -05:00
Subv
0d03fdec71 SaveDataCheck: Remove unneeded constructor from a class 2015-01-02 21:28:46 -05:00
Subv
2f9a2d410d Archives: Added some documentation to IVFCArchive 2015-01-02 21:13:55 -05: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
13efbdc201 SaveDataCheck: Preliminary work in this archive.
This allows Steel Diver to boot further, some files are needed.

This is still not ready and needs a big cleanup, this will possibly be delayed until the way we handle archives is fixed (with factory classes instead of ahead-of-time creation of archives)
2015-01-02 21:13:53 -05:00
bunnei
3d9bf13439 Merge pull request #391 from lioncash/pedantic
archive/elf: Minor misc changes.
2015-01-02 21:04:49 -05:00