Commit Graph

29910 Commits

Author SHA1 Message Date
Lioncash 244d083f0e PowerPC: Remove separate macros for paired singles
Previously, PowerPC.h had four macros in it like so:

\#define rPS0(i) (*(double*)(&PowerPC::ppcState.ps[i][0]))
\#define rPS1(i) (*(double*)(&PowerPC::ppcState.ps[i][1]))

\#define riPS0(i) (*(u64*)(&PowerPC::ppcState.ps[i][0]))
\#define riPS1(i) (*(u64*)(&PowerPC::ppcState.ps[i][1]))

Casting between object representations like this is undefined behavior.
Given this is used heavily with the interpreter (that is, the most
accurate, but slowest CPU backend), we don't exactly want to allow
undefined behavior to creep into it.

Instead, this adds a helper struct for operating with the paired singles,
and replaces the four macros with a single macro for accessing the
paired-singles/floating-point registers.

This way, it's left up to the caller to explicitly decide how it wants to interpret
the data (and makes it more obvious where different interpretations of
the same data are occurring at, as there'll be a call to one of the
[x]AsDouble() functions).
2018-12-25 10:35:09 -05:00
JosJuice ca2a2c98f2
Merge pull request #7627 from Techjar/netplay-disable-bt-passthrough
Core/BootManager: Disable bluetooth passthrough when booting NetPlay
2018-12-25 15:48:08 +01:00
JosJuice 08ae6d7706
Merge pull request #7525 from JosJuice/nand-title-region
Accurate region detection for NAND titles
2018-12-25 15:36:00 +01:00
weihuoya 631463348b Android: show setting value as description 2018-12-25 22:14:09 +08:00
weihuoya 184b2edc30 fx texture overlap 2018-12-25 21:24:25 +08:00
Jordan Woyak 0f19c4a40f ControllerInterface: DInput: Update force feedback effects in a thread. This should prevent slowdowns experienced by a handful of users. 2018-12-24 19:40:58 -06:00
MerryMage 0deed2a5af EmuCodeBlock: Fix bug in SetFPRF: Should only consider lower double 2018-12-24 19:02:43 +00:00
JosJuice a0673fbb47
Merge pull request #7619 from zackhow/gcadpt
Android: fix gc adapter init
2018-12-23 21:18:21 +01:00
Markus Wick e7b53540d8
Merge pull request #7634 from MerryMage/downcount-on-exit
Jit64: Check downcount at block exit, not block entry
2018-12-23 19:34:12 +01:00
MerryMage 5236dc31a6 Jit64: Check downcount at block exit, not block entry 2018-12-23 18:03:29 +00:00
Markus Wick 54f37c3bae
Merge pull request #7631 from MerryMage/crXXX-AeqB
Jit_SystemRegisters: Special-case crXXX for CRBA == CRBB
2018-12-23 17:55:09 +01:00
spycrab fc998093cc
Merge pull request #7600 from spycrab/resource_pack
Implement resource packs
2018-12-23 16:04:05 +01:00
Markus Wick 2d0031551e
Merge pull request #7635 from degasus/srawix
JitArm64: Fix RC calculation of srawix.
2018-12-23 00:17:41 +01:00
Jordan Woyak d5df56c677 ControllerInterface: Make CoalesceExpression not set the inactive child's value (rumble) to 0. This caused rumble to not enable when a control expression was both a valid "bareword" and "complex" expression. 2018-12-22 11:17:05 -06:00
Jordan Woyak a8d0afe219 Reduce input mapping detection time to 3 seconds because 5 seconds was ridciculously long and output (rumble) testing time to 2 seconds because 5 seconds was annoyingly long. 2018-12-22 10:58:34 -06:00
degasus 64378c90da JitArm64: Fix RC calculation of srawix.
Seems like it was missed from the early implementation.
2018-12-22 17:31:14 +01:00
Jordan Woyak 3a145aeae4 ResetRumble on emu pause/stop regardless of presence of DInput/Xinput as that's not relevant. All the backends would like to stop rumbling. 2018-12-22 07:31:36 -06:00
zackhow 7b2629717b Android: Add jit debug menu options 2018-12-21 15:06:37 -05:00
zackhow 233b00fb7e ConfigManager: add save/load for Jit debug options 2018-12-21 15:06:37 -05:00
JosJuice 490dffc791
Merge pull request #7633 from ymartel06/ymartel/fix-imgui-compilation-vs2017
update windows 10 sdk from 10.0.15063.0 to 10.0.17134.0 for imgui
2018-12-21 16:59:29 +01:00
Yohann Martel 31bb0327e5 update windows 10 sdk from 10.0.15063.0 to 10.0.17134.0 for imgui 2018-12-21 10:40:58 -05:00
MerryMage 174d2b0230 crXXX: Avoid loading twice when CRBA == CRBB 2018-12-21 11:33:18 +00:00
MerryMage 07c146e7e2 crXXX: Remove unnecessary CRBA == CRBD constraint for crclr and crset 2018-12-21 11:20:06 +00:00
spycrab 71d53c922f Implement resource packs 2018-12-19 11:03:09 +01:00
Techjar cf8b730c61 Core/BootManager: Disable bluetooth passthrough when booting NetPlay
Bluetooth passthrough does not and never will work on NetPlay, so we'll
just force the use of emulated bluetooth when booting in NetPlay.
2018-12-17 18:22:13 -05:00
Jordan Woyak 79eb065cf3 Reduce emulated shaking frequency to 6hz. (something more humanly possible) (was ~13hz) 2018-12-15 10:36:22 -06:00
Jordan Woyak a8a6bdcdd2 Compute emulated classic controller calibration data instead of having hardcoded values. 2018-12-15 10:27:06 -06:00
Jordan Woyak 6848812a31 Produce emulated nunchuk calibration data. 2018-12-15 10:27:06 -06:00
CrystalGamma 2f490e44fb stop using g_jit outside of JitInterface
Replace g_jit in x86-64 ASM routines code by m_jit member reference
2018-12-15 01:58:58 +01:00
zackhow 0c0e045eda Android: fix/ignore L2/R2 buttons
L2/R2 will trigger a key press and an axis event if the trigger is pressed fully down
Was incorrectly ignoring L1/R1 key presses
2018-12-14 15:31:13 -05:00
Tilka 3fa81f39fb
Merge pull request #7621 from lioncash/const
Common/GLContext: Make member functions const qualified where applicable
2018-12-14 18:53:10 +00:00
Lioncash 6d394d03fe Common/GLContext: Make member functions const qualified where applicable
These don't modify object state, so they can be const qualified.
2018-12-14 11:02:26 -05:00
Lioncash 52cae18b01 Interpreter: Handle paired-single HID2.PSE and HID2.LSQE bits
These bits enable or disable paired-single execution based on how
they're set. If PSE isn't set, then all paired-single instructions are
illegal. If PSE is set, but LSQE isn't set, then psq_l, psq_lu, psq_st
and psq_stu are illegal to execute.

Also thanks go out to my roommate @Veegie for letting me use his Wii as
a blasting ground for tests, since mine isn't on hand right now. It only
caught on fire twice and only burned down half of the house through the
process; what a team player.
2018-12-13 22:48:05 -05:00
zackhow 5bc8b7ae7b Android: fix gc adapter init
init write not read
2018-12-13 21:49:46 -05:00
Lioncash c87a2f57b4 Interpreter_SystemRegisters: Handle reserved/read-only bits for HID2 in mtspr 2018-12-13 11:39:40 -05:00
weihuoya 5da0f823c7 most wanted mmu setting 2018-12-11 23:15:33 +08:00
Admiral H. Curtiss fa6782f841 GCMemcard: Required declaration before C++17. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss 36d84c6959 GCMemcard: Slightly nicer definition of UNINITIALIZED_GAMECODE. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss ca2c7679df GCMemcard: Rewrite DEntry_IconFmt() and DEntry_AnimSpeed() to make more sense. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss 2351a60567 GCMemcard: Let GetDEntry() return std::optional<DEntry>. 2018-12-10 20:24:20 +01:00
JosJuice 2dcd058f7d Translation resources sync with Transifex 2018-12-10 18:26:00 +01:00
Admiral H. Curtiss 860e003b0c GCMemcard: Remove needless second definition of DENTRY_SIZE. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 3d77a43e67 GCMemcard: Use std::array for GCMBlock.m_block. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss ceb9cb53c6 GCMemcard: Rename GCMBlock.block to m_block to match naming conventions. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss fc70b60d8b GCMemcard: Access active directory/BAT via methods instead of pointers. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 7ff65db3b2 GCMemcard: As far as I can tell, the directory and BAT blocks aren't really main and backup, but just two blocks that store data are written to alternately. So store them as an std::array of 2 blocks instead of an explicit 'backup' block. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 0aaf24b9cc GCMemcard: Rename GCMemcard variables to match our naming conventions. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 4d4b5442bd GCMemcard: Use std::array and BigEndianValue for BlockAlloc.m_map. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss eb6cc3dbab GCMemcard: Use BigEndianValue for BlockAlloc.m_last_allocated_block. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss d3b61c3ff0 GCMemcard: Use BigEndianValue for BlockAlloc.m_free_blocks. 2018-12-09 22:28:57 +01:00