Commit graph

17143 commits

Author SHA1 Message Date
comex
dea88ef5a1 ITYM PowerPC::Write_U{8,16}, not Memory::
PowerPC does exceptions and hardware and stuff, Memory doesn't.

I did not realize until a few minutes ago that there were two versions of these functions.  This is why namespaces suck.  Anyway, these were added by Mullin earlier this year.
2015-04-24 22:41:10 -04:00
comex
132e1068ce Remove checks that disable fastmem if debugging and ENABLE_MEM_CHECK are enabled.
They weren't sufficient and are made redundant by previous commits; they
also (on master) caused breakage due to Jit64::psq_stXX assuming writes
would be fastmem and not clobber a register under certain conditions.

That really needs to be refactored, but for now, this works.
2015-04-24 22:37:54 -04:00
comex
2264e7b087 Use a fake exception to exit early in case of memory breakpoints.
Change TMemCheck::Action to return whether to break rather than calling
PPCDebugInterface::BreakNow, as this simplified the implementation; then
remove said method, as that was its only caller.  One "interface" method
down, many to go...
2015-04-24 22:37:54 -04:00
comex
dd7ab4812b On x86, disabling fastmem isn't enough actually.
Without fastmem, the JIT code still does an inline check for RAM
addresses.  With watchpoints we have to disable that too.  (Hardware
watchpoints would avoid all the slow, but be complicated to implement
and limited in number - I doubt most people debugging games care much if
they run slower.)

With this change and watchpoints enabled, Melee runs at no more than 40%
speed, despite running at full speed without them.  Oh well.  Better
works slowly than doesn't bloody work.

Incidentally, I'm getting an unrelated crash in
PowerPC::HostIsRAMAddress when shutting down a game.  This code sucks.
2015-04-24 22:37:54 -04:00
comex
b84f6a55ab Automatically disable fastmem and enable memcheck when there are any watchpoints.
- Move JitState::memcheck to JitOptions because it's an option.
- Add JitOptions::fastmem; switch JIT code to checking that rather than
  bFastmem directly.
- Add JitBase::UpdateMemoryOptions(), which sets both two JIT options
  (replacing the duplicate lines in Jit64 and JitIL that set memcheck
  from bMMU).
  - (!) The ARM JITs both had some lines that checked js.memcheck
    despite it being uninitialized in their cases.  I've added
    UpdateMemoryOptions to both.  There is a chance this could make
    something slower compared to the old behavior if the uninitialized
    value happened to be nonzero... hdkr should check this.
- UpdateMemoryOptions forces jo.fastmem and jo.memcheck off and on,
  respectively, if there are any watchpoints set.
- Also call that function from ClearCache.
- Have MemChecks call ClearCache when the {first,last} watchpoint is
  {added,removed}.

Enabling jo.memcheck (bah, confusing names) is currently pointless
because hitting a watchpoint does not interrupt the basic block.  That
will change in the next commit.
2015-04-24 22:37:53 -04:00
comex
3499f2c2d0 To make up for it, make pressing enter on the value textbox set the value. 2015-04-24 22:19:21 -04:00
comex
0c18e5886d Remove mnemonics in MemoryWindow.
On OS X, this broke Cmd-V to paste in the text boxes.  Apparently wx
thinks having mnemonics (which are Alt-* on Windows) be Cmd-* on OS X,
even if this disables standard shortcuts, is a good idea.

Lioncash suggested just getting rid of the accelerators on non-menu
controls, so I'm doing that rather than disabling them only on OS X.
2015-04-24 22:06:03 -04:00
comex
37d00cceda Fix wx bullshit which made the watch view assert on my machine.
1) Apparently wxString::Format is type safe, and passing a u32 to it
with the format "%lu" crashes with a meaningless assertion failure.
Sure, it's the wrong type, but the error sure doesn't help...

2) "A MenuItem ID of Zero does not work under Mac".  Thanks for the
helpful assert message, no thanks for making your construct have random
platform-specific differences for no reason (it's not like menu item IDs
directly correspond to a part of Cocoa's menu API like they do on
Win32).
2015-04-24 22:04:46 -04:00
Lioncash
87bd57e0be Merge pull request #2322 from JosJuice/extract-file-fix
Fix extracting files from Wii discs
2015-04-24 16:32:23 -04:00
JosJuice
2e10a71dcd Fix extracting files from Wii discs
I broke it for individual files but not folders in 4.0-6016.
2015-04-24 22:08:15 +02:00
JosJuice
fe9fdd3244 Fix emulated Wii Remote battery level being low when not configured
All the multiplying and dividing by 100 in controller configs is
messy... An attempted solution to the problem was to not multiply
default_value by 100 in ControllerEmu::ControlGroup::LoadConfig,
but that broke other things instead, so I went with this.
2015-04-24 19:36:08 +02:00
comex
b3aaa46d42 Merge pull request #2088 from Sintendo/diecmp
Emit 'TEST reg, reg' for 'CMP reg, 0' automatically
2015-04-23 16:34:23 -04:00
Dwayne Slater
ae83a1b821 Fix OpenGLES 3.0 on Qualcomm's crappy driver, it can't bitshift sometimes.
[fixed lint issues and grammar ~comex]
2015-04-23 16:33:12 -04:00
comex
e4b5637c3a Merge pull request #2318 from Tilka/wx301
CMake: require wxWidgets 3.0.1 or newer
2015-04-23 15:35:30 -04:00
Tillmann Karras
c4beec7070 CMake: require wxWidgets 3.0.1 or newer
Fixes issue 7206 on outdated systems (e.g. Ubuntu 14.04).
Note: Our version in Externals is somewhere between 3.0.0 and 3.0.1.
2015-04-23 17:50:13 +02:00
JosJuice
235ecfbed7 Return GetNames languages, to avoid hardcoded language lists in callers
This makes the code cleaner and also leads to some user-visible changes:

The wx game properties will no longer let the user
select WAD languages that don't have any names.

The Qt game list will now display names using the languages
set in the configuration instead of always using
English for PAL GC games and Japanese for WADs.

If a WAD doesn't have a name in the user's preferred language,
English is now selected as a fallback before Japanese.
2015-04-23 08:14:39 +02:00
comex
87a63713f4 Merge pull request #2317 from comex/oops
Fix code broken by merge
2015-04-23 02:08:28 -04:00
comex
74c30d1784 Fix code broken by merge 2015-04-23 02:07:45 -04:00
Lioncash
a39985fe08 Merge pull request #2315 from lioncash/code
DolphinWX: Remove superfluous code in FrameTools
2015-04-23 02:05:14 -04:00
comex
ad95454d04 Merge pull request #2223 from phire/imm
Cleanup OpArg, make immediates more explicit.
2015-04-23 01:53:18 -04:00
Lioncash
8fb36228e5 Merge pull request #2311 from JosJuice/fix-wad-crash
Fix WAD crash caused by VolumeHandler removal
2015-04-23 00:23:42 -04:00
Lioncash
819f4d994c DolphinWX: Remove superfluous code in FrameTools 2015-04-22 19:56:50 -04:00
Rachel Bryk
5047cf562a Implement classic controller tas input. 2015-04-22 16:19:13 -04:00
comex
5309ab1172 Merge pull request #2276 from jefflongo/patch-3
Add Global Brawl Netplay Settings
2015-04-22 15:05:16 -04:00
JosJuice
0b44d7c18a Fix Wii software crashing at boot if no disc is inserted
Boot_BS2Emu was trying to read from the inserted disc even when
nothing was inserted, and this happened to not crash (but not
work either) before VolumeHandler was removed. This commit adds
a check that restores the old behavior, so there is no longer a
crash, but the game ID still doesn't get set for WADs. I don't
know if/how it should be set, so this felt like the safest option.
2015-04-22 09:14:41 +02:00
comex
5d61b9d0a4 Merge pull request #2313 from lioncash/unused
GPFifo: Remove unused parameters from Write[x] functions
2015-04-22 00:39:38 -04:00
comex
31ea8d0834 Merge pull request #2310 from lioncash/fsmenu
FrameTools: Use AppendRadioItem for constructing the frameskip menu
2015-04-22 00:39:17 -04:00
Lioncash
56df9b7508 GPFifo: Remove unused parameters from Write[x] functions 2015-04-21 23:01:25 -04:00
comex
06dd0ba3b4 Exit ReadDataFromFifoOnCPU, PushFifoAuxBuffer early if shutting down (GpuRunningState=false)
This was causing a race condition where the "absurdly large aux buffer"
panic alert would be triggered in the last bit of fifo processing on the
CPU thread in deterministic mode (i.e. netplay).  SyncGPU is supposed to
move the auxiliary queue data to the beginning of the containing buffer
so we don't have to deal with wraparound; if GpuRunningState is false,
however, it just returns, because it's set to false by another thread -
thus it doesn't know whether RunGpuLoop is still executing (in which
case it can't just reset the pointers, because it may still be using the
buffer) or not (in which case the condition variable it normally waits
for to avoid the previous problem will never be signaled).  However,
SyncGPU's caller PushFifoAuxBuffer wasn't aware of this, so if the
buffer was filling at just the right time, it'd stay full and that
function would complain that it was about to overflow it.  Similar
problem with ReadDataFromFifoOnCPU afaik.  Fix this by returning early
from those as well; other callers of SyncGPU should be safe.  A
*slightly* cleaner alternative would be giving the CPU thread a way to
tell when RunGpuLoop has actually exited, but whatever, this works.
2015-04-21 22:33:29 -04:00
YL
8ad45607af Add Global Brawl Netplay Settings
Creates an ini for Super Smash Bros. Brawl and adds a gecko code for standardized tournament play (unlock all characters and stages, set to a timed, stock battle, items off, ect.)

More info here: http://smashboards.com/threads/brawl-gets-an-optimized-netplay-codeset.397646/

Update RSBE01.ini
2015-04-21 15:17:48 -07:00
Markus Wick
4340927b7f Merge pull request #2308 from Stevoisiak/FrameToolsMath
FrameTools: Remove redundant 'i-1'
2015-04-21 16:17:02 +02:00
Lioncash
ebe0222265 FrameTools: Use AppendRadioItem for constructing the frameskip menu
Same thing, less code.
2015-04-20 21:51:30 -04:00
Matthew Parlane
d662fffb8c Merge pull request #2309 from lioncash/header
DiscIO: Add a missing header to Volume.h
2015-04-21 13:29:55 +12:00
Lioncash
f5c72c5b1a DiscIO: Add a missing header to Volume.h 2015-04-20 21:10:31 -04:00
Stevoisiak
c3cf43f064 FrameTools: Remove redundant 'i-1' 2015-04-20 20:24:37 -04:00
Matthew Parlane
571eee8648 Merge pull request #2225 from JosJuice/remove-volumehandler
Get rid of VolumeHandler
2015-04-21 11:18:57 +12:00
Matthew Parlane
a86f2fe2e7 Merge pull request #2199 from skidau/remove-controls-lock
Cleaned up the controller locking mechanism
2015-04-21 11:13:30 +12:00
Matthew Parlane
82bbada352 Merge pull request #2257 from RachelBryk/battery
Add an option for wiimote battery.
2015-04-21 11:12:12 +12:00
Matthew Parlane
f35277f215 Merge pull request #2267 from Stevoisiak/soundStream
(Visual Studio) Categorize SoundStream.h with other SoundStream files
2015-04-21 11:10:49 +12:00
Matthew Parlane
b0db4f53cc Merge pull request #2307 from lioncash/crash
Core: Don't display on-screen messages via DisplayMessage until emulation has begun
2015-04-21 11:08:07 +12:00
Lioncash
d799446faf Core: Don't display on-screen messages via DisplayMessage until emulation has begun 2015-04-20 18:31:40 -04:00
Lioncash
d27b8673f5 Merge pull request #2306 from Stevoisiak/MoveUndoSaveState
FrameTools: Move "Undo Save State" to save state menu
2015-04-19 20:45:41 -04:00
Lioncash
41017742eb Merge pull request #2305 from Stevoisiak/GlobalsSectionComments
Globals.h: Added comments for menu sections
2015-04-19 20:45:20 -04:00
Stevoisiak
83ec7a1e78 FrameTools: Move "Undo Save State" to save state menu 2015-04-19 20:18:11 -04:00
Stevoisiak
8adf8b16bc Globals.h: Added comments for menu sections 2015-04-19 18:51:55 -04:00
Markus Wick
c74ae3d27e Merge pull request #2303 from degasus/master
no-gui: fix help string
2015-04-18 15:48:10 +02:00
degasus
8c209b3bc9 no-gui: fix help string 2015-04-18 15:03:42 +02:00
Lioncash
9eb608c9da Merge pull request #2301 from lioncash/const
General: Apply the const specifier where applicable
2015-04-16 23:13:39 -04:00
Markus Wick
cd0212ab1c Merge pull request #2302 from lioncash/perf
PerfQueryBase: Move common implementation variables into base class
2015-04-16 07:31:31 +02:00
skidau
7063886520 Merge pull request #2289 from lioncash/netplay
DolphinWX: Break the netplay UI controls into separate classes.
2015-04-16 12:35:41 +10:00