Commit graph

1178 commits

Author SHA1 Message Date
Tony Wasserka
88e9efe4b8 Pica/DebugUtils: Fix two warnings. 2014-12-20 18:06:56 +01:00
Tony Wasserka
6e275778c9 Pica/DebugUtils: Better document LookupTexture. 2014-12-20 18:06:55 +01:00
Tony Wasserka
e4e9710d18 Pica/Rasterizer: Get rid of C-style casts. 2014-12-20 18:06:55 +01:00
Tony Wasserka
d81370682f Pica/DebugUtils: Make a number of variables static.
Makes for cleaner and faster code.
2014-12-20 18:06:55 +01:00
Tony Wasserka
6bd41de276 Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions. 2014-12-20 18:06:55 +01:00
Tony Wasserka
22afb9d830 Pica/VertexShader: Run instruction handlers according to the effective opcode.
This allows for proper emulation of the different CMP/LRP/MAD instructions.
2014-12-20 18:06:55 +01:00
Tony Wasserka
cd163fb59a Pica/VertexShader: Implement MAX instructions. 2014-12-20 18:06:55 +01:00
Tony Wasserka
aff808b2fd Pica: Add support for boolean uniforms. 2014-12-20 18:06:55 +01:00
Tony Wasserka
67618a2c55 Pica/VertexShader: Add support for MOVA, CMP and IFC. 2014-12-20 18:06:55 +01:00
Tony Wasserka
cb1804e0ab Pica/VertexShader: Move code around a bit. 2014-12-20 18:06:55 +01:00
Tony Wasserka
b85524c760 Pica/VertexShader: Some cleanups using std::array. 2014-12-20 18:06:55 +01:00
Tony Wasserka
ce36ad454e Pica/VertexShader: Support negating src2. 2014-12-20 18:06:55 +01:00
Tony Wasserka
cc5746abfe Pica/DebugUtils: Replace duplicated SHBIN structures in favor of nihstro's ones. 2014-12-20 18:06:55 +01:00
Tony Wasserka
8ce1d32460 Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in favor of nihstro's ones. 2014-12-20 18:06:55 +01:00
Tony Wasserka
79c29243ed Pica/DebugUtils: Add an event triggered after loading a vertex. 2014-12-20 18:06:55 +01:00
Tony Wasserka
cd322e328e Pica/PrimitiveAssembly: Implement triangle strips. 2014-12-20 18:06:54 +01:00
Tony Wasserka
346012f29e Pica/CommandProcessor: Add a safety check for invalid (?) GPU configurations. 2014-12-20 18:06:54 +01:00
Tony Wasserka
1e960e9ee2 Pica/CommandProcessor: Fix vertex decoding if multiple memory areas are accessed for different attributes. 2014-12-20 18:06:54 +01:00
Tony Wasserka
1c972ef3b9 Add support for a ridiculous number of texture formats. 2014-12-20 18:06:54 +01:00
Tony Wasserka
40f123b7c0 Pica: Unify ugly address translation hacks. 2014-12-20 18:06:53 +01:00
Tony Wasserka
7e210e0229 Pica: Further improve Tev emulation. 2014-12-20 18:05:53 +01:00
Tony Wasserka
3df88d59b0 Pica: Merge texture lookup logic for DebugUtils and Rasterizer.
This effectively adds support for a lot texture formats in the rasterizer.
2014-12-20 18:05:53 +01:00
Tony Wasserka
0fba1d48a6 Pica: Implement texture wrapping. 2014-12-20 18:05:53 +01:00
Tony Wasserka
c81f1a9ebc Pica/DebugUtils: Add support for RGBA8, RGBA5551, RGBA4 and A8 texture formats. 2014-12-20 18:05:53 +01:00
Tony Wasserka
782592e6d3 citra-qt: Fix invalid memory read upon program startup.
This was caused by the framebuffer display widget not checking whether we are actually in a valid emulation state or not.
2014-12-20 18:05:53 +01:00
Tony Wasserka
fd2539121c Pica: Initial support for multitexturing. 2014-12-20 18:05:53 +01:00
Tony Wasserka
95be6a09b2 BitField: Add an explicit Assign method.
This is useful when doing crazy stuff like inheriting from BitField.
2014-12-20 18:05:53 +01:00
Tony Wasserka
8cd0d9c000 citra-qt: static-constify a map. 2014-12-20 18:05:52 +01:00
bunnei
2b0d7a1d29 Merge pull request #315 from chinhodado/master
Clean up some warnings
2014-12-20 11:59:18 -05:00
Chin
e795692614 Clean up some warnings 2014-12-20 10:03:36 -05:00
Yuri Kunde Schlesner
82528ba7df Common: Add a clone of std::make_unique 2014-12-20 03:45:02 -02:00
Yuri Kunde Schlesner
adee775f44 Kernel: Implement support for current thread pseudo-handle
This boots a few (mostly Nintendo 1st party) games further.
2014-12-20 03:27:47 -02:00
bunnei
f1309e6bf0 Merge pull request #306 from Subv/even_more_savedata
SaveData: Added some documentation to FormatSaveData
2014-12-19 23:20:31 -05:00
Subv
fc73bef692 FS_U: Added the command to the docs of SaveData functions 2014-12-19 22:45:39 -05:00
bunnei
eb394ac0af Merge pull request #309 from chinhodado/patch-1
Properly erase/remove a DebuggerObserver
2014-12-19 16:47:42 -05:00
bunnei
245abb4125 Merge pull request #294 from lioncash/var
armemu: Narrow the scope of some variables in handle_v6_insn
2014-12-19 16:46:56 -05:00
bunnei
dc5d1a9061 Merge pull request #305 from lioncash/paren
armemu: Get rid of bitwise parenthesis warnings
2014-12-19 16:46:36 -05:00
chinhodado
d31c23e958 Properly erase/remove an observer 2014-12-19 14:24:44 -05:00
Lioncash
4b506cec01 armemu: Implement QASX and QSAX 2014-12-19 14:09:18 -05:00
Lioncash
0f3a6a161c armemu: Implement SMLSD 2014-12-19 09:53:54 -05:00
Lioncash
4a646ace1f dyncom: Implement UMAAL 2014-12-19 04:02:14 -05:00
bunnei
017e6a488e Merge pull request #302 from purpasmart96/flushshutup
GSP_GPU: Shut up FlushDataCache
2014-12-18 23:40:10 -05:00
Lioncash
00e8ec4a9e armemu: Implement USAD8 and USADA8 2014-12-18 23:38:57 -05:00
Lioncash
92c53fe522 armemu: Fix SSAT16
The lower-bound would never be negative like it should
2014-12-18 20:35:14 -05:00
Lioncash
b9fc0b4b80 armemu: Clean up naming and formatting for SSAT16 2014-12-18 20:34:22 -05:00
purpasmart96
b2c64eb5ff GSP_GPU: Shut up FlushDataCache 2014-12-18 16:39:55 -08:00
bunnei
765dbabdb6 Merge pull request #308 from Subv/more_savedata
SystemSaveData: Fixed a typo that was segfaulting
2014-12-18 18:05:03 -05:00
Subv
78e0f36857 SystemSaveData: Fixed a typo that was segfaulting 2014-12-18 18:01:47 -05:00
bunnei
24b5e87279 Merge pull request #304 from lioncash/sflags
armemu: Set GE flags properly for SSUB16, SADD16, SSAX, and SASX.
2014-12-18 17:46:10 -05:00
bunnei
4959e3b2c0 Merge pull request #307 from lioncash/usat16
armemu: Fix USAT16.
2014-12-18 17:45:25 -05:00
bunnei
c71f8840e5 Merge pull request #301 from Subv/more_savedata
SaveData: Implemented the SystemSaveData archive.
2014-12-18 17:29:34 -05:00
Subv
f9472eda0a SystemSaveData: Added a TODO to move it to the NAND.
Maybe sometime when we actually implement that
2014-12-18 16:58:42 -05:00
Lioncash
e683f654ce armemu: Fix lower-bounds clamping for USAT16 2014-12-18 16:54:01 -05:00
Subv
77f0cdfaf4 SaveData: Added some documentation to FormatSaveData
We still don't know what the other parameters do, but they appear to be very similar to those of FormatThisUserSaveData.
Most likely FormatThisUserSaveData is just an alias for FormatSaveData with LowPathType Empty
2014-12-18 15:30:28 -05:00
Lioncash
6b632bbe37 armemu: More concise names for USAT16-related variables 2014-12-18 14:25:07 -05:00
Lioncash
eaae0ad502 armemu: Get rid of bitwise parenthesis warnings 2014-12-18 12:07:18 -05:00
Lioncash
4dc8eb40be armemu: Set GE flags correctly for SSUB16, SADD16, SSAX, and SASX. 2014-12-18 11:45:40 -05:00
bunnei
8ac22e7efc Merge pull request #299 from lioncash/join
Combine SSUB16, SADD16, SASX, and SSAX.
2014-12-18 10:04:31 -05:00
Subv
bec527fa24 SaveData: Implemented the SystemSaveData archive.
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
2014-12-17 23:44:32 -05:00
bunnei
797efbde1a Merge pull request #298 from lioncash/flags
armemu: Unset GE flags for UADD8 if results are < 0x100
2014-12-17 22:06:27 -05:00
bunnei
a968adf50e Merge pull request #295 from lioncash/umaal
armemu: Implement UMAAL
2014-12-17 21:44:13 -05:00
Lioncash
85c318078d armemu: Combine SSUB16, SADD16, SASX, and SSAX. 2014-12-17 21:17:54 -05:00
bunnei
075126247f Merge pull request #292 from lioncash/backports
Backport more skyeye fixes from 3dmoo
2014-12-17 20:58:00 -05:00
bunnei
e00e303275 Merge pull request #297 from lioncash/ssub16
armemu: Fix SSUB16
2014-12-17 20:56:37 -05:00
bunnei
7bae450379 Merge pull request #185 from purpasmart96/mem_perm
Kernel: Add missing permissions
2014-12-17 20:56:04 -05:00
Subv
ea9ce0fba7 Filesystem/Archives: Implemented the SaveData archive
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information

Got rid of the code duplication in File and Directory

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

FS_U: Use the correct error code when a file wasn't found
2014-12-17 19:21:38 -05:00
Lioncash
41fee1c940 armemu: Unset GE flags for UADD8 if results are < 0x100
Reference manual states these must be set to zero if this case is true.
2014-12-17 17:54:49 -05:00
Lioncash
58dc554733 armemu: Fix SSUB16
Broken from the same reason SADD16 was.

The lo part of the result should only be constructed from the lo halfwords of rm and rn.
The hi part of the result should only be constructed from the hi halfwords of rm and rn.
2014-12-17 15:40:10 -05:00
bunnei
e6f440ea7f Merge pull request #293 from lioncash/sops
armemu: Fix SADD16
2014-12-17 14:54:24 -05:00
bunnei
3e9d4a7917 Merge pull request #287 from lioncash/qaddsub16
armemu: Join QADD16/QSUB16 and fix saturation clamping.
2014-12-17 12:34:52 -05:00
Lioncash
5820dba6b7 armemu: Implement UMAAL 2014-12-17 12:21:21 -05:00
Lioncash
2d91164bb9 armemu: Narrow the scope of some variables in handle_v6_insn
There's no reason to have these in the outer-most scope.
2014-12-17 10:26:20 -05:00
Lioncash
5289a496a7 armemu: Fix SADD16
The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn.
2014-12-17 09:36:25 -05:00
Normmatt
73211dc8fe armemu: Fix PKHTB 2014-12-17 03:26:12 -05:00
Normmatt
8045df14d2 armemu: Implement REVSH 2014-12-17 03:26:01 -05:00
Normmatt
bc81cc9490 armemu: Fix UXTAB/UXTAH 2014-12-17 03:24:25 -05:00
Normmatt
b5dbd6f2a2 armemu: Fix SXTAB 2014-12-17 03:17:44 -05:00
Normmatt
efebd5589a armemu: Fix SXTAH 2014-12-17 03:16:40 -05:00
bunnei
fdb4ef5210 Merge pull request #289 from lioncash/smops
Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well.
2014-12-17 00:08:43 -05:00
bunnei
ec9ac2f51a Merge pull request #290 from lioncash/vsub
armemu: Backport some VFP fixes from 3dmoo.
2014-12-16 23:22:58 -05:00
Normmatt
9c127f4a01 armemu: Fix FTOUI NaN sign. 2014-12-16 05:56:06 -05:00
Normmatt
2ed03c10e0 armemu: Fix FSUBS bug where NaN shouldn't be negated 2014-12-16 05:54:00 -05:00
Lioncash
d5bcddb77c armemu: Fix SMUAD, SMUSD, and SMLAD
Wrong values were being multiplied together.
2014-12-16 03:13:06 -05:00
Lioncash
0f9e3baf39 armemu: Join SMUAD, SMUSD, and SMLAD 2014-12-16 03:11:50 -05:00
Lioncash
4c53799229 armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16. 2014-12-16 00:11:51 -05:00
Lioncash
49817e89d9 armemu: Join QADD16 and QSUB16 together.
The only difference between these ops is one adds and one subtracts. Everything is literally the same.
2014-12-16 00:11:19 -05:00
bunnei
cdfa7157eb Merge pull request #286 from yuriks/msvc-fix
Comment out empty arrays causing compile errors in MSVC
2014-12-15 22:52:35 -05:00
Yuri Kunde Schlesner
082bf803ab Comment out empty arrays causing compile errors in MSVC 2014-12-16 01:37:13 -02:00
bunnei
a8098187aa Merge pull request #285 from lioncash/uxtab16
armemu: Implement UXTAB16
2014-12-15 22:29:12 -05:00
bunnei
cd2a31eaf4 Merge pull request #283 from yuriks/archive-refactor
Archive refactor
2014-12-15 22:15:08 -05:00
Yuri Kunde Schlesner
666f6deb47 Work around libstdc++'s lack of support for std::hash on enums 2014-12-16 01:09:21 -02:00
Yuri Kunde Schlesner
83e6e4ffec FS.Archive: Clean up treatment of archives and their handles
- Refactor FS::Archive internals to make Archive creation and lifetime
  management clearer.
- Remove the "Archive as a File" hack.
- Implement 64-bit Archive handles.
2014-12-16 01:08:44 -02:00
Yuri Kunde Schlesner
0931a42af0 Service.FS: Rename FileSys::File to FileBackend 2014-12-16 01:08:43 -02:00
Yuri Kunde Schlesner
d51afab0bc Service.FS: Rename FileSys::Directory to DirectoryBackend 2014-12-16 01:08:43 -02:00
Yuri Kunde Schlesner
82fe821e87 Service.FS: Rename FileSys::Archive to ArchiveBackend 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner
f6153679b0 Service.FS: Do archive registration using IdCode instead of name 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner
ca67bb7945 HLE: Rename namespaces to match move & fix initialization order 2014-12-16 01:08:38 -02:00
Yuri Kunde Schlesner
c72ccfa6db HLE: Move kernel/archive.* to service/fs/ 2014-12-16 01:08:14 -02:00
Lioncash
1c7f77334c armemu: Implement UXTAB16 2014-12-15 20:47:27 -05:00
bunnei
5df176425b Merge pull request #282 from archshift/services
Added stubs for ldr:ro, cecd:u, nim:aoc, and am:app services
2014-12-15 19:28:13 -05:00
bunnei
0fd731ee63 Merge pull request #281 from lioncash/uxtb16
armemu: Fix UXTB16
2014-12-15 18:56:02 -05:00
archshift
89eef9eb6d Added stub for nim:aoc service... 2014-12-15 15:32:42 -08:00
archshift
1356a6b313 Added stub for cecd:u service...
I couldn't find any information about this service...
2014-12-15 15:32:42 -08:00
archshift
6117fad036 Added stub for ldr:ro service... 2014-12-15 15:32:42 -08:00
archshift
6b51683bb1 Added am:app service stub.
Apparently nothing at all is known about this service...
2014-12-15 15:32:41 -08:00
Yuri Kunde Schlesner
06f31e8b47 Clean up CMake library specification
The X11 libraries don't need to be specified when doing dynamic linking
2014-12-15 19:34:17 -02:00
Yuri Kunde Schlesner
e321decf98 Remove SyncRequest from K::Object and create a new K::Session type
This is a first step at fixing the conceptual insanity that is our
handling of service and IPC calls. For now, interfaces still directly
derived from Session because we don't have the infrastructure to do it
properly. (That is, Processes and scheduling them.)
2014-12-15 18:26:17 -02:00
Lioncash
2b0acd36e1 armemu: Fix UXTB16
Rotation bits are 10 and 11, not 9 and 10.
2014-12-14 23:00:31 -05:00
bunnei
1ee740898a Merge pull request #276 from lioncash/decrappify
Clean up armdefs.h a little.
2014-12-14 22:08:14 -05:00
bunnei
17b4d6747a Merge pull request #246 from Subv/cbranch_1
SVC: Implemented Semaphores
2014-12-14 22:03:28 -05:00
bunnei
2cac148ff3 Merge pull request #273 from bunnei/more-skyeye-fixes
ARM: Pull some SkyEye fixes from 3dmoo.
2014-12-14 21:58:05 -05:00
bunnei
d26b7146ce ARM: Pull some SkyEye fixes from 3dmoo. 2014-12-14 21:51:46 -05:00
Lioncash
f6cb8c1927 Clean up armdefs.h 2014-12-14 02:00:42 -05:00
Yuri Kunde Schlesner
ac87c3b0d0 Restore the original console color after logging a message.
Fixes #277
2014-12-14 02:10:41 -02:00
Subv
1051795c32 Kernel/Semaphores: Fixed build 2014-12-13 13:43:01 -05:00
Subv
ea95876431 Kernel/Semaphore: Small style change 2014-12-13 13:40:19 -05:00
Subv
effb181888 Kernel/Semaphores: Invert the available count checking.
Same semantics, idea by @yuriks
2014-12-13 13:40:18 -05:00
Subv
5e25986235 Kernel/Semaphores: Addressed some issues. 2014-12-13 13:40:16 -05:00
Subv
cc81a510e3 Semaphore: Removed an unneeded function 2014-12-13 13:40:15 -05:00
Subv
61434651d8 Semaphores: Addressed some style issues 2014-12-13 13:40:13 -05:00
Subv
abff4a7ee2 Semaphore: Implemented the initial_count parameter. 2014-12-13 13:40:12 -05:00
Subv
49b31badba SVC: Implemented ReleaseSemaphore.
This behavior was tested on hardware, however i'm still not sure what use the "initial_count" parameter has
2014-12-13 13:40:10 -05:00
Subv
82c84883a5 SVC: Implemented svcCreateSemaphore
ToDo: Implement svcReleaseSemaphore
* Some testing against hardware needed
2014-12-13 13:40:09 -05:00
Lioncash
cfc0ee9c60 kernel: Remove unused log arguments 2014-12-13 10:15:58 -05:00
Yuri Kunde Schlesner
4d2a6f8b9b Remove old logging system 2014-12-13 02:08:06 -02:00
Yuri Kunde Schlesner
0e0a007a25 Add configurable per-class log filtering 2014-12-13 02:08:06 -02:00
Yuri Kunde Schlesner
0600e2d8b5 Convert old logging calls to new logging macros 2014-12-13 02:08:02 -02:00
Yuri Kunde Schlesner
6390c66e95 Implement text path trimming for shorter paths. 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner
6b0fb62c47 Re-add coloring to the console logging output. 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner
616d874443 New logging system 2014-12-13 01:59:52 -02:00
Yuri Kunde Schlesner
04b1f2936c Add SCOPE_EXIT macro to conveniently execute cleanup actions 2014-12-13 01:59:51 -02:00
Yuri Kunde Schlesner
eda30c36ee Added missing include in common_funcs.h 2014-12-13 01:59:50 -02:00
Yuri Kunde Schlesner
8a681cdf3d Remove redundant include from common_funcs.h 2014-12-13 01:59:50 -02:00
bunnei
a6791e4fc7 Merge pull request #267 from bunnei/apt-shared-font
APT shared font loading
2014-12-12 22:12:12 -05:00
bunnei
6fe61d3deb APT_U: Added GetSharedFont service function. 2014-12-12 22:06:10 -05:00
Tony Wasserka
33e61ef514 Merge pull request #261 from neobrain/boost
Add Boost as a submodule and add some minor cleanups using Boost.Range
2014-12-12 17:32:57 +01:00
bunnei
988998cca5 DSP: Added stub for ReadPipeIfPossible. 2014-12-12 00:53:51 -05:00
bunnei
5bac72282a Common: Add "sysdata" to GetUserPath and cleanup. 2014-12-12 00:15:47 -05:00
bunnei
4cb7a44d4e MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.
- Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU).
2014-12-12 00:15:47 -05:00
bunnei
3a75c8069e Merge pull request #256 from Subv/mutex
Kernel/Mutex: Properly lock the mutex when a thread enters it
2014-12-10 22:52:55 -05:00
Emmanuel Gil Peyrot
5a3b1b5f44 CFG:U: Store country codes as u16 instead of char pointers, and return the correct error in GetCountryCodeID. 2014-12-10 22:33:23 +00:00
bunnei
ae3c6e82f7 Merge pull request #243 from bunnei/fix-gsp-synch
Fix gsp synch
2014-12-10 09:20:05 -05:00
archshift
4763fca9f8 Explicitly specify LE strings to iconv, fixes paths in Steel Diver 2014-12-09 22:07:28 -08:00
bunnei
f94d8f9603 GSP: Trigger GPU interrupts at more accurate locations. 2014-12-09 19:07:14 -05:00
bunnei
e90b37b935 GSP: Updated TriggerCmdReqQueue to return success code. 2014-12-09 19:07:14 -05:00
bunnei
3e1654eaa8 GSP: Updated RegisterInterruptRelayQueue to return expected magic number. 2014-12-09 19:07:14 -05:00
bunnei
170123982d GPU: Fixed bug in command list size decoding. 2014-12-09 19:07:13 -05:00
Yuri Kunde Schlesner
521e1cb7e0 Remove unused NDMA module 2014-12-09 18:27:16 -02:00
Tony Wasserka
8b8131baec More cleanups. 2014-12-09 16:37:34 +01:00
Tony Wasserka
0305435edd Pica: Re-enable command names on MSVC.
The affected code is no longer limited by compiler support on that platform.
2014-12-09 16:37:34 +01:00