Commit Graph
85 Commits
Author SHA1 Message Date
comex 1a008b9e62 Fix use of ABI_GetAlignedFrameSize. 2013-09-29 16:36:26 -04:00
comex ccbf2ac21a Match ABI_AlignStack with ABI_RestoreStack properly.
The relevant function is entirely unused, so it shouldn't have any
effect.
2013-09-29 14:59:13 -04:00
comex a2fd52ef4f Move existing Melee AR codes to be for revision 0 and add JMC's for revision 2.
He claims they don't work on that revision either, but from a quick
Google they (most of them?) seem to be intended for it, so keep them in
case they're useful for anyone.
2013-09-28 23:38:40 -04:00
comex 853392b790 Use a separate section for enabled Gecko codes, like AR.
This properly fixes default gecko codes.

It makes perfect sense to have two separate cheat windows and two
separate code paths for the different code formats, right?
2013-09-28 23:38:40 -04:00
comex f57ff0a569 Support a gcm revision-specific game ini for cheats + partially fix gecko codes in default ini.
The local ini is not revision-specific because it would require renaming
everything.  Meh.
2013-09-28 23:38:25 -04:00
comex 1ed06f1dc4 Reset wxTAB_TRAVERSAL.
Fixes issue 3903.
2013-09-28 23:00:56 -04:00
comex bea76ac129 No need to std::move a return value. Thanks Billiard. 2013-09-26 21:15:35 -04:00
comex ecca0045a9 Fix Imm8 check.
(I blame whoever made it take a u8 despite logically being a s8.)
2013-09-25 14:29:17 -04:00
comex 54843ad1e8 Need to reload from XMM0 in this case. 2013-09-25 14:16:20 -04:00
comex ebe4448749 Save only the registers that need to be saved rather than going through ProtectFunction. 2013-09-25 03:15:53 -04:00
comex 2a339c926e Fastmem writes for x86-64. 2013-09-25 03:15:53 -04:00
comex 18abc33306 2x banner images! 2013-09-25 03:06:27 -04:00
comex 0787019cbe Check in 2x versions of Clean*. Thanks, MaJoR1! 2013-09-25 02:06:53 -04:00
comex 693cee36cb Hack up wx to support @2x images in the toolbar. Oh please let's switch to Qt... 2013-09-25 02:03:32 -04:00
comex a38821fc38 Comment out wx change to set WS_POPUP.
Fixes issue 6651, apparently.  We don't use wxGLCanvas, so the line
isn't necessary in the first place.
2013-09-24 22:48:31 -04:00
comex 29dc253fde Improve context structure handling on non-Windows.
Instead of copying data into and out of a fake CONTEXT structure with
only a few entries, use the platform specific structure directly with a
typedef and macros.  This is needed because fastmem writes need to be
able to access any register from BackPatch.  It adds a fair number of
repetitive defines, but it's better than the alternative.
2013-09-24 01:38:27 -04:00
comex 4cdce55615 Don't define _M_IX86 on ARM(!).
Also define _M_* in a common location, and clean up code that these
changes break (including DSPJit files that assume X86 yet are compiled
on ARM for some reason...)
2013-09-24 01:30:41 -04:00
comex a7f2160a0f Remove "educational purposes only" from about message.
Dolphin is obviously not marketed as being for educational purposes
only, and claiming otherwise in the about screen would not have any
legal weight, so don't insult everyone's intelligence.
2013-09-24 01:14:56 -04:00
comex 2f384c75d2 Only include scmrev.h from Version.cpp.
This way less code has to be rebuilt whenever that file gets
regenerated.
2013-09-24 01:14:56 -04:00
comex 146cf56295 Darwin: Don't overwrite the C compiler if the user set one manually. 2013-09-24 01:14:56 -04:00
comex 1bf2c03a99 Fix my stupid attempt to depend on the entire Data/Sys directory.
Instead, if SKIP_POSTPROCESS_BUNDLE is on, just use a symlink, and if
it's off, always run the install.
2013-09-24 01:14:56 -04:00
comex f81df136c2 Add an explicit error message for outdated GCC, and remove some commented out code. 2013-09-23 15:01:38 -04:00
comex 54c3b8d357 Reapply shuffle2's patch.
This is a wx bug:
http://trac.wxwidgets.org/ticket/13933
2013-09-23 02:58:04 -04:00
comex 299421a02a Don't call into wx in static initializers - crashes on Windows. 2013-09-23 02:58:04 -04:00
comex 66ed9a1804 Upgrade WX to r74856, mainly to support @2x. 2013-09-23 02:58:04 -04:00
comex c8c83f7b8a Remove FifoQueue iterator and RemoveThreadsafeEvents.
No point making a whole iterator class for the sake of a function that
doesn't need to exist.
2013-09-22 23:14:42 -04:00
comex e82c9e616d operator= is a function too! std::forward is still appropriate.
Fix the potentially unsafe use of std::move I added to FifoQueue.
2013-09-22 21:15:58 -04:00
comex 80b14e80b5 Fix crash when a player leaves in NetPlay.
The player ID was being written as int and read as PlayerId (u8).
2013-09-22 16:12:16 -04:00
comex 229b35bb6d When hosting, don't try to connect if listening failed.
If another instance of the server is running on the same computer, this
would cause Dolphin to confusingly connect to it.
2013-09-22 16:11:47 -04:00
comex cf4d015b2a Don't disable SO_REUSEADDR on non-Windows, where it is safe. 2013-09-22 16:11:43 -04:00
comex 17e753faf3 Fix FifoQueue's atomicity on ARM.
Theoretically.
2013-09-22 16:08:09 -04:00
comex c3b9f3556f Make CoreTiming's threadsafe events lock-free.
Not sure if this actually helps in practice, but might help in
pathological cases, and almost certainly can't hurt.
2013-09-22 16:08:01 -04:00
comex 7fe440340f Improve Atomic.h:
- For GCC, use intrinsics that will work on ARM.
- Add AtomicExchangeAcquire.
- Make Atomic{Load,LoadAcquire,Store,StoreRelease} work for any suitable type.
2013-09-22 16:07:45 -04:00
comex 6209067daa Fix stack misalignment fix. 2013-09-22 15:48:27 -04:00
comex d334a9bc23 Fix stack misalignment issues.
- Call ABI_AlignStack even on x86-64.

- Have ABI_AlignStack respect the difference in current alignment
  between the root JIT function, which has a prolog, and
  ProtectFunction thunks, which do not.  This was causing many games
  to crash on start on OS X.  Since this might otherwise mean changing
  the stack pointer before every call...

- Have one prolog/epilog function rather than two (one of which
  definitely did not do what it was thought to do), and make it
  actually work like a normal one, so that the stack frame shows up
  properly in the debugger.  There should be no performance impact.
2013-09-20 16:46:48 -04:00
comex ae607ea1e9 Fix missing md5thread.detach() 2013-09-18 21:48:23 -04:00
comex 0040e66282 Merge branch 'geckoos-fix'
Fixes issue 6551.
2013-09-13 18:18:51 -04:00
comex e15e30602c Fix HLE_HOOK_START in the interpreter. 2013-09-13 18:18:20 -04:00
comex e62bc44f15 Use d01f1bad for the gameid check in RunCodeHandler rather than the actual ID.
This avoids conflict with the icache hack.  codehandleronly.s does not
actually use the gameid, so it shouldn't matter.
2013-09-13 18:14:56 -04:00
comex e6cd3b3283 Fix placement of HLE::Patch to not get overwritten by HLE::PatchFunctions.
(This applies to the existing HBReload hook, which would be erased in
various circumstances depending on the type of file loaded.)
2013-09-13 15:31:51 -04:00
comex a316e2f182 Hook the Gecko codehandler to invalidate the icache.
The codehandler is broken and does not do this itself.  This is a hack,
but a lot simpler than the alternatives.
2013-09-13 15:31:51 -04:00
comex 354b205dec Return correct value to fix libogc's IOS launch sequence. 2013-09-13 15:31:50 -04:00
comex 1f8237c570 Fake ticket views for missing IOS title. 2013-09-13 15:31:50 -04:00
comex 868ab1918b Reset es_inuse upon Reset. 2013-09-13 15:31:50 -04:00
comex 39a524f47d Returning false from an IPC_HLE method should not produce an INFO_LOG.
It's commonly used to delay replying to a message and is in no way an
error.
2013-09-13 15:31:50 -04:00
comex b9c1af04ad Replace the one use of CompileTimeAssert with static_assert (already used elsewhere). 2013-09-11 20:58:47 -04:00
comex 9ee50a2730 Merge branch '6584'
Fix for XP and lifetime issues on Mac.  Fixes issue 6584.
2013-09-11 20:47:27 -04:00
comex 56686666d6 Fix ES_DECRYPT.
ES_DECRYPT is usually called with the in IV parameter equal to the out
IV parameter.  Dolphin was preemptively zeroing out the out buffer,
causing it to read zeroes for the IV.  (Also be more correct when those
parameters *aren't* equal.)

Dolphin now has the dubious honor of having an exploit (smashstack) work
in it.  It crashes in Project M, though.
2013-09-10 17:09:37 -04:00
comex 4add0f55e0 Fix SDIO HLE writing garbage to memory.
When servicing a write-register request, it wrote the contents to the
register offset plus 0x8d070000, which corresponds to the actual
hardware registers, presumably in case the application wanted to read
them directly rather than with a read-register request.  WriteToHardware
doesn't handle cached writes to registers, so it decided the address was
RAM, applied RAM_MASK, and happily wrote the register contents to
0x81070000, causing random corruption.  Since the PPC does not normally
have access to those registers, there is no reason to be doing this in
the first place.  Use a member to store these values instead.

(Also add a proper DoState.)
2013-09-09 23:57:51 -04:00
comex 06140e8083 Revert "NetPlay: Use the correct pad mappings for rumble"
This reverts commit 92c846de45.

It breaks NetPlay entirely for me.
2013-09-09 02:39:28 -04:00
comex fe0a450ee4 Don't request authentication (aka I should actually test before committing). 2013-09-08 19:32:14 -04:00
comex 22d9331b96 Improve IOdarwin -
Add requestAuthentication, which might help someone who can't sync, and
better error reporting.
2013-09-08 18:15:49 -04:00
comex 8b4f0ef034 IODummy needs it too. 2013-09-07 16:17:00 -04:00
comex b31502893f Fix lifetime issues in IOWakeup. 2013-09-07 16:13:39 -04:00
comex f4586570ac Use SetEvent instead of CancelIoEx for XP compatibility. 2013-09-07 15:43:17 -04:00
comex cd7b97f767 Make JITDISABLE not defeat grep. 2013-09-05 18:38:47 -04:00
comex 2fb0147967 Merge branch 'comex-wiimote-fixes'
Should fix issue 6574.
2013-09-05 06:13:33 -04:00
comex 8992f58720 Fix Wiimote thread wakeup on externally-triggered destroy. 2013-09-04 05:32:32 -04:00
comex dc87b6d431 Fix OS X code.
- Close the connection properly on destruction.

- Work around what seems like an Apple bug.
2013-09-04 05:32:13 -04:00
comex 872e9ce3da Add accidentally omitted code in last commit.
(m_wiimote_thread_run_loop was being used but not set, causing
Wiimote::IOWakeup to crash on OS X; todo rebase this)
2013-09-04 04:39:18 -04:00
comex 02fc68ea5d While we're at it, explicitly wake up the Wiimote thread rather than using a 1s timeout.
This only matters if reads are not constantly being completed by
reports anyway, but seems like a good idea.
2013-09-04 03:25:05 -04:00
comex 906de748bd Refactor thread handling to fix OS X bug.
On OS X, openL2CAPChannelSync registers events on the current
thread's run loop, so Connect needs to be called on a thread that's
going to do CFRunLoopRun; this was causing all Wiimote input to be
ignored.  Easiest way to do that is to use the Wiimote thread, and
have Read call CFRunLoopRun to block on events, bringing OS X's
Wiimote event loop in line with every other platform's.  This also
means that the thread can't be stopped and recreated by Prepare,
so make Prepare notify it instead, which has the side effect of not
making the GUI block on Prepare.  (It would be nice if the GUI also
did not block on searching for devices, because blocking the GUI
is gross, but for now...)
2013-09-04 03:24:00 -04:00
comex 0e949afa57 Remove dubious retain on OS X.
Revert this if the claimed crash actually shows up - or better, figure
out the actual cause.
2013-09-04 01:11:04 -04:00
comex e0214b1a38 Fix syncing wiimotes on OS X.
IOdarwin.mm was assuming that scanning was complete when the run loop
was stopped (which the scan callback does), but somebody else was
stopping the run loop first, causing the scan to be aborted.  Wait until
the scan is actually complete.
2013-09-04 01:04:51 -04:00
comex 1ea8b93667 Fix typo in log message in WII_IOB.cpp. 2013-09-04 00:03:05 -04:00
comex 5b9254a1cd fix android. 2013-09-02 17:30:31 -04:00
comex 50520c7c3d Make fastmem work under a debugger on OS X.
Not only do debuggers catch the expected SIGSEGV by default, I'm not
sure there's a working way to configure either gdb or lldb not to.  This
commit uses an OS X-specific mechanism to add an exception handler that
runs before the default one.
2013-09-02 17:26:32 -04:00
comex 4c3230bcde Remove accessType from BackPatch's signature in favor of getting it from DisassembleMov.
It isn't easily accessible with sigaction or Mach exceptions (well,
requires an additional system call in the latter), and isn't necessary.

(and get rid of the enum, because it's only used once, and the comments
are more expressive than enum names)
2013-09-02 16:55:22 -04:00
comex 35b8dfbe0c A few more warnings. 2013-09-01 23:33:35 -04:00
comex 2630169229 More warnings: mark/avert truncating conversions from float. 2013-09-01 22:59:35 -04:00
comex 4f5729dd59 MSVC warnings. 2013-09-01 22:59:32 -04:00
comex de0a5fdfbb More trivial warning fixes. 2013-09-01 22:59:18 -04:00
comex c08f06f8c9 Fix IOCTLV_SO_GETADDRINFO.
It tried to cast incoming pointers to native ones.  The values are
required to be null anyway, so it doesn't really matter, but it fixes a
warning at least.
2013-09-01 22:58:40 -04:00
comex 186527544b Fix use of deprecated APIs in IOdarwin.mm. 2013-09-01 22:58:38 -04:00
comex 403744dee8 Fix use of deprecated screen resolution API.
(This is currently pointless, as the code in question is not used on OS
X anyway, but I'd like to see that option come back.  In any case, fixes
the warning)
2013-09-01 22:58:35 -04:00
comex fd7cf5bb71 A bunch of trivial changes to fix clang warnings. 2013-09-01 22:58:33 -04:00
comex 71fde876df A fix to my fix to my fix. Sorry.
(Avoid uninitialized m_pFile when loading WADs.)
2013-09-01 17:15:16 -04:00
comex a6f6695ecd Work around MSVC bug, and make it less likely to happen again. Ew.
MSVC insisted on using a copy assignment where a move was intended and
ought to be used.  This would have been caught, because the class in
question inherits from NonCopyable, which declares a move assignment
operator, which is supposed to delete the implicitly declared copy
assignment operator, but of course MSVC didn't do that either, causing a
class that should have been safe to be unsafe.
2013-09-01 00:04:50 -04:00
comex 5209abeb03 Better error reporting for ES / NANDContentLoader. 2013-08-31 23:49:29 -04:00
comex b187a38433 Fix inability to boot NAND contents caused by 04c41c1d38.
Might be nice to refactor this code to decrease duplication, but for now
just a fix.
2013-08-31 15:06:00 -04:00
comex 11cffddbf7 Fix a trivial bug in b6728c1405. 2013-08-31 01:54:57 -04:00
comex 04c41c1d38 Fix loading DLC using IOCTL_ES_OPENTITLECONTENT & /dev/es state save.
(Intertwined enough that's it's easier to do in one patch.)

(1) /dev/es did not support state save, which could cause crashes and
    incorrect behavior after loading.

(2) NANDContentLoader tried to read all of a title's contents into
    memory when it was first opened.  Two issues:

- If any contents were missing, it bailed out.  However, with DLC,
  only some of the contents may be downloaded, as determined by the
  permission bits in the ticket.  Instead, return an appropriate error
  when a content is accessed that doesn't exist on the filesystem
  (don't bother checking the permission bits though).

- Everything was loaded into memory - even if it consisted of 3 GB of
  songs, which caused Dolphin to lag out for quite a while (and would
  fail on 32-bit).  Instead, open content on demand.
2013-08-31 01:38:52 -04:00
comex 4d6d4a97e4 Make NonCopyable use rvalue references.
This is required to be able to move objects that inherit from it.
(Note that this patch also #ifs out the class for the externals that
include it yet are compiled in pre-C++11 mode.  It shouldn't matter,
since those externals don't use it.)
2013-08-31 01:38:49 -04:00
comex b6728c1405 Avoid unnecessary bundle copies on OS X:
- Make "copy data into bundle" depend on the files actually being
  changed, rather than being run on every build.

- postprocess_bundle depends on system files and checking the Dolphin
  binary and all that, and would be iffy to try to avoid rerunning;
  but it's only needed to produce a redistributable bundle, so add
  SKIP_POSTPROCESS_BUNDLE to skip it for development.
2013-08-30 17:54:52 -04:00
comex 2de2e774fe Use pthread_setname_np.
This makes SetCurrentThreadName actually work (name shows up in
debugger) on non-Windows.
2013-08-29 16:30:32 -04:00