Commit graph

1634 commits

Author SHA1 Message Date
Subv 2c89d4d5cd Archives: Implemented ExtSaveData and SharedExtSaveData
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
2014-12-29 22:29:55 -05:00
bunnei 3d14eb2853 Merge pull request #367 from bunnei/usat_ssat
dyncom: Implement USAT/SSAT
2014-12-29 22:20:45 -05:00
bunnei 021fb42075 dyncom: Implement USAT/SSAT 2014-12-29 22:15:15 -05:00
bunnei 78bb86293f Merge pull request #253 from purpasmart96/mem_map
MemMap: Removed I/O address's and added more stuff
2014-12-29 21:57:04 -05:00
bunnei c2f41f0404 Merge pull request #362 from bunnei/dyncom-cleanup
dyncom: Various cleanups to match coding style, no functional changes.
2014-12-29 21:53:49 -05:00
bunnei dedbdb2dfb Merge pull request #344 from Yllodra/Qt-Oddities
Allow focus on the Qt render widget
2014-12-29 21:52:38 -05:00
bunnei aa49019afb dyncom: Various cleanups to match coding style, no functional changes. 2014-12-29 21:50:47 -05:00
Tony Wasserka b7e0b16354 Merge pull request #351 from yuriks/optimize
Rasterizer Optimizations
2014-12-30 00:13:48 +01:00
bunnei 2d2aa2c0be Merge pull request #361 from lioncash/moreqops
dyncom/armemu: Implement QADD8/QSUB8.
2014-12-29 14:53:04 -05:00
bunnei a7a486bbef Merge pull request #363 from lioncash/label
dyncom: Fix SMLALXY's instruction labels
2014-12-29 12:13:00 -05:00
Lioncash d08d9f8747 dyncom: Fix SMLALXY's instruction labels
They were erroneously labeled as SMLAL.
2014-12-29 12:04:34 -05:00
Tony Wasserka 13699f05e7 Merge pull request #303 from linkmauve/fs-cleanup
FileSys cleanup
2014-12-29 12:14:59 +01:00
Lioncash e412c0fc46 dyncom: Implement QADD8/QSUB8 2014-12-29 00:54:48 -05:00
Lioncash 7ad400d5a7 armemu: Implement QADD8/QSUB8 2014-12-29 00:49:10 -05:00
bunnei 472ec0d0cf Merge pull request #360 from lioncash/dynuxt
dyncom: Implement UXTB16/UXTAB16
2014-12-28 23:20:30 -05:00
Yuri Kunde Schlesner 8369ee5803 Rasterizer: Pre-divide vertex attributes by W
Execute the division-by-W for perspective-correct interpolation of
values in the clipper, moving them out of the rasterization inner loop.
2014-12-29 02:08:11 -02:00
Yuri Kunde Schlesner fe186d3a59 GPU: Bitwise texture swizzling
Replace the loop-based texture address swizzling code by a bit-twiddling
implementation, providing a very small speed up. Also simplify
addressing code.
2014-12-29 02:08:11 -02:00
Yuri Kunde Schlesner 2012e1420f Rasterizer: Common sub-expression elimination
Move the computation of some values out of loops so that they're not
constantly recalculated even when they don't change.
2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner 7e9bc85cc8 Clipper: Compact buffers on each clipping pass
Use a new buffer management scheme in the clipper that allows using a
bounded minimal amount of buffer space. Even though it copies more data
it is still slightly faster likely due to using less cache.
2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner da04976437 CMake: Require Boost 1.57.0 (fixes Travis OS X) 2014-12-29 02:08:10 -02:00
Yuri Kunde Schlesner a320d1a5b4 Clipper: Avoid dynamic allocations
The triangle clipper was allocating its temporary input, output and work
buffers using a std::vector. Since this is a hot path, it's desirable to
use stack allocation instead.
2014-12-29 02:08:09 -02:00
Yuri Kunde Schlesner d151d797b1 Vertex Shader: Zero OutputVertex to avoid denormals
Unused OutputVertex attributes were being left un-initialized. The
leftover garbage sometimes decoded as floating-point denormalized
values, causing fallbacks to microcode and massive slowdowns in the rest
of the rasterization pipeline even though the results were unused. By
zeroing the structure we ensure these attributes only contain harmless
zeros.
2014-12-29 02:08:09 -02:00
Lioncash 5c198686ce dyncom: Implement UXTB16/UXTAB16 2014-12-28 22:45:04 -05:00
bunnei 487a80f9f7 Merge pull request #347 from bunnei/frameskip
Frameskip
2014-12-28 22:39:17 -05:00
bunnei df728cb4c2 Merge pull request #355 from lioncash/simp
armemu: Simplify some instructions.
2014-12-28 22:20:49 -05:00
bunnei 3b9d181b8e GPU: Implement frameskip and remove forced framebuffer swap hack. 2014-12-28 22:14:05 -05:00
bunnei 5763d40319 Merge pull request #352 from xdec/PR_XDEC_172
Qt: Citra crashes if disassembler pause button is pressed while no game is running. #172
2014-12-28 22:00:47 -05:00
bunnei 9a403d7dfb Merge pull request #359 from lioncash/vfp
vfp: Actually make the code somewhat readable
2014-12-28 21:54:53 -05:00
bunnei 77363d9590 Merge pull request #331 from yuriks/handle-reform
New Handle manager
2014-12-28 21:11:55 -05:00
Lioncash 9c7f2570f7 vfp: Actually make the code somewhat readable 2014-12-28 18:55:01 -05:00
bunnei 4bf803579f Merge pull request #357 from bunnei/dyncom-pkhbt-pkhtb
Implement PKHBT and PKHTB on dyncom, fix on armemu
2014-12-28 16:57:16 -05:00
bunnei bf9b33aa9f dyncom: Implement PKHBT and PKHTB. 2014-12-28 16:50:08 -05:00
bunnei 58cb62fe7b armemu: Fix PKHTB to do an arithmetic shift and correctly decode immediate field. 2014-12-28 16:18:52 -05:00
bunnei 082f5b2311 Merge pull request #356 from lioncash/dynusad
dyncom: Implement USAD8/USADA8
2014-12-28 13:40:22 -05:00
xdec e6162ed91e Qt: we don't need to check if model is valid. 2014-12-28 10:11:51 -08:00
Lioncash 7d322b5c6f dyncom: Implement USAD8/USADA8 2014-12-28 12:40:51 -05:00
Lioncash 6ce2a38ec4 armemu: Simplify SSAT/SSAT16/SXTB/SXTAB 2014-12-28 12:19:31 -05:00
Lioncash 9f5b53f9ff armemu: Simplify REV/REV16/SXTH/SXTAH 2014-12-28 12:13:13 -05:00
bunnei 762f16c4ad Merge pull request #354 from lioncash/usaduflow
armemu: Fix underflows in USAD8/USADA8
2014-12-28 11:57:25 -05:00
Lioncash 914ecfe04f armemu: Simplify USAT16/UXTB/UXTAB 2014-12-28 11:57:14 -05:00
Lioncash 5e16216afb armemu: Simplify REVSH/UXTH/UXTAH 2014-12-28 11:57:09 -05:00
Yuri Kunde Schlesner 7e2903cb74 Kernel: New handle manager
This handle manager more closely mirrors the behaviour of the CTR-OS
one. In addition object ref-counts and support for DuplicateHandle have
been added.

Note that support for DuplicateHandle is still experimental, since parts
of the kernel still use Handles internally, which will likely cause
troubles if two different handles to the same object are used to e.g.
wait on a synchronization primitive.
2014-12-28 11:52:55 -02:00
Yuri Kunde Schlesner 23f2142009 Kernel: Replace GetStaticHandleType by HANDLE_TYPE constants 2014-12-28 11:52:53 -02:00
Yuri Kunde Schlesner 73fba22c01 Rename ObjectPool to HandleTable 2014-12-28 11:52:52 -02:00
Lioncash 059c65a27a armemu: Fix underflows in USAD8/USADA8
Initially reported by xdec.
2014-12-28 06:09:43 -05:00
xdec 8de09d87ab Fix crash when the disassembler pause button is pressed while no game is running. 2014-12-28 01:56:07 -08:00
bunnei 3422d81f05 Merge pull request #350 from lioncash/qops
Implement the rest of the UQ* ops.
2014-12-27 21:15:13 -05:00
Lioncash af69b0840b dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX. 2014-12-27 17:24:34 -05:00
Lioncash 60523113a9 armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAX 2014-12-27 17:06:19 -05:00
bunnei 28e64806cd Merge pull request #349 from lioncash/uhdync
dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAX
2014-12-27 01:04:18 -05:00