Commit Graph

4161 Commits

Author SHA1 Message Date
Lioncash 44e43fe5c3 Core: Make CPU_POWERDOWN the initial CPU state.
This isn't a correct state for the CPU to begin in when starting the application.

Also CPU_STEPPING as an initial state causes the emulator to crash if you use any of the debugger stepping buttons, since it checks if the CPU is in the CPU_STEPPING state before performing their functions.
2014-07-19 19:43:53 -04:00
Pierre Bourdon 963e1a698c Merge pull request #581 from TotalNerd/memcard-emu
Emulate GameCube memory card speeds
2014-07-20 00:12:47 +02:00
booto 631a361cc8 GCPadEmu: stop sticks wrapping at extreme values 2014-07-19 19:22:05 +08:00
LPFaint99 da99e0448b GCI Folder: no need to force reload sysmenu to get version
causes crash with larger gci folders as we pull the loader out from under the ppc
2014-07-18 20:34:26 -07:00
TotalNerd b2ac65bb21 Revised channel access from EXI_DeviceMemoryCard 2014-07-18 20:06:03 -05:00
Pierre Bourdon 8085b3d264 Merge pull request #638 from lioncash/bound-check
Core: Fix bounds checking within GCMemcard.cpp.
2014-07-18 09:14:27 +02:00
Pierre Bourdon 4db84c5188 Merge pull request #637 from lioncash/unused
Core: Remove unused function Callback_ISOName()
2014-07-18 09:14:06 +02:00
Lioncash 98f352a4e6 Core: Fix warnings in JitRegCache 2014-07-18 02:44:29 -04:00
Tillmann Karras 771a30da36 Jit64: implement frsp 2014-07-17 23:22:41 +02:00
TotalNerd f602372885 Redo timing in DMAWrite/DMARead 2014-07-17 10:57:34 -05:00
TotalNerd 8a0093de23 Emulate GameCube memory card speeds 2014-07-17 10:57:34 -05:00
Scott Mansell 7aff56bef5 Implement the correct method for determining field order.
Based on advice from tueidj we implement this method based on how
TVs actually determin the field order.

Removes spammy messages about "Invalid field order"
2014-07-17 23:56:23 +12:00
Lioncash 7ca8a834c1 Core: Fix bounds checking within GCMemcard.cpp.
Prior to this 127 would be an allowed numeric index. However There is only an addressable range from 0-126.
2014-07-17 01:33:47 -04:00
LPFaint99 19c94de6e0 Gcifolder use correct region for fifologs and homebrew 2014-07-16 21:41:09 -07:00
Lioncash 041445a155 Core: Remove unused function Callback_ISOName() 2014-07-16 20:44:17 -04:00
Pierre Bourdon 8cf21cdcdb Merge pull request #633 from magcius/wip/input-focus-fix
Fix input focus issues
2014-07-17 01:21:31 +02:00
Tony Wasserka 2daa83da48 Merge pull request #372 from Tilka/fctiwzx
Jit64: implement fctiwx/fctiwzx
2014-07-16 17:41:21 +02:00
Jasper St. Pierre 44307c9508 Host: Add a new "UIHasFocus" hook to determine if the UI has focus
We can't use RendererHasFocus for this purpose because of some issues
with exclusive fullscreen, and the new RendererHasFocus implementation
didn't work for non-Render to Main Window cases, since the renderer
window wasn't managed by wx.
2014-07-16 10:27:21 -04:00
Lioncash 6c57457f9f Core: Correct some function casings. 2014-07-15 19:41:50 -04:00
Tillmann Karras 6521929f99 Jit64: implement fctiw/fctiwz 2014-07-15 23:58:09 +02:00
Rachel Bryk ed5169c5eb Fix leaking exi devices. 2014-07-15 16:15:38 -04:00
Lioncash ebd029973a Merge pull request #604 from magcius/wip/emu-cleanup-2
Start cleaning up the input interface
2014-07-15 12:11:17 -04:00
LPFaint99 198d137ca0 GCI Folder fix compatibility with games that relocate the save after first use 2014-07-14 18:52:29 -07:00
shuffle2 3cabacde9d Merge pull request #613 from lioncash/uninitialized
Core: Fix potential uninitialized var usage in WII_IPC_HLE_Device_usb
2014-07-13 14:03:02 -07:00
Lioncash fae0cf3698 Core: Fix potential uninitialized var usage in WII_IPC_HLE_Device_usb
If "if (ReadStoredLinkKey->read_all == 1)" is not true, then
num_keys_read would be used uninitialized.
2014-07-13 15:41:35 -04:00
Lioncash 9d3c0102fc Core: Get rid of an unnecessary struct typedef in Boot.h. 2014-07-13 15:28:50 -04:00
Pierre Bourdon 16582a0459 Merge pull request #543 from RachelBryk/patches
Fix patches not being loaded when running real gc bios.
2014-07-13 06:25:39 +02:00
Tillmann Karras 0ccee6c87b Fix warnings unearthed by #579 2014-07-13 02:16:51 +02:00
Jasper St. Pierre e4eec2002b ControllerEmu: Remove focus-checking code from the rest of ControllerEmu 2014-07-11 14:08:29 -04:00
Jasper St. Pierre 5abc028ace ControllerEmu: Make BackgroundInput a global setting through the virtualization
This will allow us to simplify the checks for background input and push
them further down into the architecture, into the ControllerEmu layer.

The new setting isn't actually used yet, though.
2014-07-11 13:38:37 -04:00
Jasper St. Pierre a6dc3c47a9 ControllerEmu: Change the GetState interface to remove range/base
Do the scaling in the code that interprets the results.

This also removes the templatization of things and changes the interface
to always take a double.

This does add a bit more code to the users of GetState, especially when
having to deal with focus management, but this will be cleaned up very
soon, as focus and focus-related options will be centralized inside the
input platforms themselves, rather than spread out across all the input
plugins.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre 68a4979f35 Nunchuk: Stop the dereference dance 2014-07-11 13:32:56 -04:00
Jasper St. Pierre e20a0265de Remove UDPWiimote feature
It substantially complicates the code and doesn't really provide any
functionality. According to the forums, the Android app is out of date
and has been broken for quite a while.

If we want to add this back, I'd write an app that speaks a more native
Wiimote protocol, and we can hook that up to the backend quite easily.
It could even be over our NetPlay protocol!
2014-07-11 13:32:56 -04:00
degasus 7e79806efc remove unused globals
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
degasus 81ed17be53 avoid the extern keyword in .cpp files 2014-07-11 16:10:20 +02:00
degasus 6d3f249dcc mark all local variables as static 2014-07-11 16:10:20 +02:00
degasus 22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
Lioncash 896d7e5685 Change SPADStatus struct name to GCPadStatus
Also get rid of the typedef, since this is unnecessary in C++
2014-07-10 22:02:38 -04:00
Dolphin Bot bc655d1a82 Merge pull request #515 from Armada651/threading
Make the emulation stop asynchronous to prevent deadlocks.
2014-07-10 21:02:47 +02:00
Rachel Bryk 36bc494a0b Fix code style in WII_IPC_HLE_Device_net.h/.cpp. 2014-07-09 05:26:04 -04:00
Jules Blok 4df00ae544 Movie: Do not attempt to record input when the emulation has not started yet.
Fixes a null pointer exception when the user starts the recording during a state transition.
2014-07-08 22:32:35 +02:00
Jules Blok db7e746cb4 Check whether the core is running instead of checking if it is unitialized.
This properly handles the stopping state and more accurately represents the intended check.
2014-07-08 22:30:44 +02:00
Jules Blok 49eade69a3 Core: Return CORE_STOPPING even if hardware is already uninitialized. 2014-07-08 21:21:24 +02:00
Jules Blok 3266394dfb Make the emulation stop asynchronous to prevent deadlocks.
This may expose bugs which relied on the Main Thread to be suspended in the stopping state.
2014-07-08 21:21:23 +02:00
Pierre Bourdon b0b70381f7 Revert "Don't add segfault handler in interpreter mode" 2014-07-07 05:30:06 +02:00
Dolphin Bot 4ec8c3714d Merge pull request #328 from Tilka/enum_cpubackend
Don't add segfault handler in interpreter mode
2014-07-06 19:28:10 +02:00
Dolphin Bot db4e32a124 Merge pull request #547 from lioncash/cleanups
Clean up the DSP disassembler a little.
2014-07-06 19:20:07 +02:00
Tony Wasserka a798548c30 Merge pull request #546 from workhorsy/header_guard_to_pragma_once
Changed lingering header include guards to pragma once.
2014-07-06 14:19:32 +02:00
degasus e72b01caa1 ConfigManager: fix alignment 2014-07-06 11:05:16 +02:00
Dolphin Bot 8da2bc63cf Merge pull request #559 from RachelBryk/gci-folder-state
Merge pull request #559 from RachelBryk/gci-folder-state

Keep device type EXIDEVICE_MEMORYCARDFOLDER for gci folder.
2014-07-06 07:34:55 +02:00
Rachel Bryk 86ccf13c09 End movie play back immediately if g_currentByte > g_totalBytes.
Also uncomment a PanicAlert in the case of g_currentByte > totalSavedBytes, and add comment explaining how it can happen.
2014-07-05 19:48:44 -04:00
Tillmann Karras ad2aaedd8b Don't install segfault handler in interpreter mode 2014-07-05 11:02:41 +02:00
Tillmann Karras 311e9e655a CoreParameter: add enum CPUBackend 2014-07-05 11:02:41 +02:00
Tillmann Karras 20a16beabd enum CPUState: rename CPU_* to STATE_* 2014-07-05 11:01:49 +02:00
Rachel Bryk e02f680861 Keep device type EXIDEVICE_MEMORYCARDFOLDER for gci folder.
This fixes loading save states when type mismatches.
2014-07-05 00:22:42 -04:00
Tillmann Karras 20dc0e7819 Remove unused variables 2014-07-04 03:56:58 +02:00
Lioncash 9c764eff3a Fix a type-conversion warning in Movie.cpp
Fixes a C4800 warning. 'int' : forcing value to bool 'true' or 'false'
(performance warning)
2014-07-03 02:07:29 -04:00
Lioncash ab6434f616 Merge pull request #551 from lioncash/movie
Clean up string handling in Movie.cpp
2014-07-02 22:57:01 -04:00
Lioncash d649027ec8 Clean up string handling in Movie.cpp 2014-07-02 22:45:50 -04:00
Rachel Bryk de3f587b32 Add support for 2 memory cards for movies. 2014-07-02 22:26:29 -04:00
Lioncash af7efaa461 [Core] Clean up the DSP disassembler
- Get rid of deletes.
- Clean out all of the sprintf calls. Now std::string based.
- Fully explicit function names, etc.
2014-07-02 20:19:39 -04:00
Matthew Brennan Jones 124210c50f Changed lingering header include guards to pragma once.
Some headers where using #ifndef to guard being including multiple times. But most were using pragma once. So for consistency I changed them all to use pragma once.
2014-07-01 22:17:33 -07:00
Rachel Bryk 899274445b Fix patches not being loaded when running real gc bios. 2014-06-30 17:28:45 -04:00
Lioncash 8ada47876a Get rid of a few delete[] calls in sdio_slot0.cpp 2014-06-29 22:55:47 -04:00
galop1n 729758f2f9 Fix an invalid foreach loop over an unordered_map with deletion in WiiSockets 2014-06-27 13:02:28 -04:00
Lioncash bd377b9580 Merge pull request #443 from magumagu/loadstore-cleanup
Loadstore cleanup
2014-06-26 21:32:59 -04:00
Lioncash 11d304ae29 Merge pull request #259 from magumagu/dtk-rewrite
DTK rewrite
2014-06-26 20:01:07 -04:00
magumagu ca0203a1cc AudioCommon: restore support for DTK volume setting. 2014-06-26 16:56:57 -07:00
Lioncash ca5340ebde Centralize the logging code into its own folder in Common. 2014-06-25 22:11:42 -04:00
Ryan Houdek a40ae6883a Move CoreTiming::downcount to PowerPC::ppcState.
This isn't technically the correct place to have the downcount variable, but it is similar to what PPSSPP does to gain a bit of extra speed on ARM.
We access this variable quite a bit, with each exit in a block it is subtracted from.
On ARM this required four instructions to load and store the value, while now it only requires two.

This gives an average of 1FPS gain to most games.
Examples:
Crazy Taxi: 54FPS -> 55FPS
Luigi's Mansion: 20FPS -> 21FPS
Wind Waker(Save Screen): 27FPS -> 28FPS

This seems to average a 6mhz to 16mhz CPU core emulation improvement in the few games I've tested.
2014-06-26 01:48:00 +00:00
Lioncash 177658aed6 Merge pull request #513 from lioncash/vs-x64
Remove the 32-bit config platform from the VS solution file
2014-06-25 21:23:45 -04:00
Lioncash 2db50612b9 Merge pull request #510 from RachelBryk/unused
Remove an unused variable.
2014-06-25 12:41:04 -04:00
Tony Wasserka 416a3201ed Merge pull request #480 from Sonicadvance1/PR371-Revert
Revert "PPCAnalyst now detects internal branches better"
2014-06-25 16:02:52 +02:00
Ryan Houdek a99ad2db7c Merge pull request #499 from magumagu/ipchle-disk-channel
ES_LAUNCH fixes for disk channel etc
2014-06-25 04:00:57 -05:00
Lioncash 8b13afbb8e Remove the 32-bit config platform from the VS solution and projects 2014-06-24 22:07:26 -04:00
LPFaint99 c65a6f5fb0 GCI Folder: correctly identify region of sysmenu 2014-06-23 19:58:27 -07:00
LPFaint99 32b2c40490 first implementation of memcard from directory, creates a memory card from USERDIR/GC/<REGION>/Card <A/B>
Savestates include the entire memorycard, but the only saves that should be modified are the ones that are directly modified by the game the others are preserved merely to avoid changing the memory card header during the game as some games (Zelda) refuse to save

Implement DMA r/w for memcard.
Skips programming buffer for writes

Add a migration feature that auto imports all saves from your default memcard to the new memcard dir if it doesn't exist.

Actually "delete" save files by renaming to s/*.gci/*.gci.deleted/
2014-06-22 18:03:52 -07:00
LPFaint99 404e9ce3ee move memorycard handling to its own class 2014-06-22 17:59:08 -07:00
Pierre Bourdon add090bde6 DSP: Add support for PCAP logging of CPU<->DSP communications 2014-06-22 20:04:46 +02:00
Pierre Bourdon 7889d90633 DSPLLE: Improve initialization by using an options structure instead of individual params 2014-06-22 20:04:46 +02:00
Lioncash 3c51c75b3e Merge pull request #526 from RachelBryk/input-label
Fix an incorrect label in fps display string.
2014-06-22 13:31:31 -04:00
Rachel Bryk addbbf11d7 Allow progressive scan to be set by game ini. 2014-06-22 12:29:16 -04:00
Rachel Bryk 93a215c9e7 Fix an incorrect label in fps display string. 2014-06-22 12:21:11 -04:00
Pierre Bourdon 5dff577339 Merge pull request #500 from lioncash/ini
Use only section-based ini reading.
2014-06-22 17:21:45 +02:00
Lioncash 86d6455391 Merge pull request #505 from RachelBryk/wiimote-state
Save an unsaved wiimote variable to save states.
2014-06-21 19:59:24 -04:00
Lioncash 72050d455d Merge pull request #521 from RisingFog/dtm-update
Removed unused variable, Added tick count check
2014-06-21 19:19:02 -04:00
Fog 76c5fa084b Removed unused variable, added tick count check 2014-06-21 11:43:33 -04:00
Rachel Bryk 3e60979000 Abort loading a save state if emulation isn't running. 2014-06-20 21:22:54 -04:00
magumagu eeb7fc25f4 JIT: Make lmw/stmw use safe load/stores. 2014-06-20 12:54:10 -07:00
magumagu 6c9095ebab JITIL: fix some unsafe loads.
I'm planning on making changes to the memory code, so I don't want this
stuff to get in the way.  The slight performance hit to JITIL isn't really
important at the moment.
2014-06-20 12:53:22 -07:00
magumagu 85724dd78a JIT: Remove dead code. 2014-06-20 12:53:21 -07:00
magumagu 06864e9fee JIT: Clean up float loads and stores.
Less code is good, and this should make future changes to memory handling
easier.
2014-06-20 12:52:39 -07:00
Rachel Bryk 0d60389d03 Save an unsaved wiimote variable to save states. 2014-06-20 09:35:47 -04:00
Tony Wasserka ddce7e9778 Merge pull request #508 from RisingFog/upstream
Add Tick Count to Movie Files
2014-06-20 13:47:05 +02:00
Fog c6e1a19e61 Add Tick Count to Movie Files
Added tick count to .dtm movie files for more accurate time calculations
2014-06-19 12:11:09 -04:00
Tony Wasserka 0e0238eccf Merge pull request #498 from magumagu/remove-daz
Don't set DAZ on x86 in non-IEEE mode.
2014-06-19 16:53:21 +02:00
Tony Wasserka 9f22b2378d Merge pull request #485 from magumagu/packed-fp-reciprocal
Interpreter: return single-precision results for ps_rsqrte.
2014-06-19 16:51:33 +02:00
Tony Wasserka 0b1cb1ee45 Merge pull request #436 from RachelBryk/netplay-kick
Add an option to kick players from netplay.
2014-06-19 14:57:00 +02:00
Tillmann Karras feef0bbd2b JITs: add a macro for easy interpreter fallback 2014-06-19 14:39:01 +02:00
Tillmann Karras f351ec64db Jit64[IL]: remove code leftover from x86-32 2014-06-19 14:32:53 +02:00