Commit Graph

69 Commits

Author SHA1 Message Date
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
JosJuice
2db2672810 Always clear memory when booting
Reading uninitalized memory is non-deterministic. We used to only
clear the memory when using EmulatedBS2_GC or FifoPlayer, but we
now do it during Memory::Init instead so it always gets done.
2016-04-01 21:35:26 +02:00
Lioncash
b36b10fa78 Memmap: Make the MMIO mapping a unique_ptr 2016-02-15 00:02:00 -05:00
Lioncash
f2038b9e90 HW: Remove unnecessary header inclusions 2016-01-13 02:47:32 -05:00
degasus
c3481a576b VideoBackend: Remove simple wrapper functions. 2016-01-12 23:28:26 +01:00
JosJuice
0cb5c4637a Memmap: Replace ValidCopyRange with GetPointerForRange 2015-11-28 09:26:48 +01:00
JosJuice
2e3735b772 Memmap: More error checking for Memset
It now uses the same error checking as CopyFromEmu and CopyToEmu.
2015-11-27 18:28:53 +01:00
JosJuice
2005409229 Do nothing when calling CopyToEmu with a length of 0
Gecko apparently tries to read 0 bytes from the DVD to 0x00000000.
2015-11-17 21:39:46 +01:00
JosJuice
555eb1162f Memmap: Fix a CopyToEmu bug
ValidCopyRange incorrectly returned false and stopped a
CopyToEmu when pressing B+X+Start in some GameCube games
(for instance Metroid Prime) after the DVD thread was implemented
2015-11-16 23:22:49 +01:00
Lioncash
8fdb013d54 General: Toss out PRI macro usage
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
Lioncash
abd3b124be Memmap: Remove pointer casts 2015-08-24 09:07:09 -04:00
degasus
c375111076 Options: merge SCoreStartupParameter into SConfig 2015-06-12 19:07:45 +02:00
Tillmann Karras
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02: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
magumagu
ff6ae8a677 Disable FakeVMem in Wii mode.
I'm assuming nobody thought of this when FakeVMem was turned on by
default; FakeVMem doesn't make any sense in Wii mode.
2015-03-16 17:52:56 -07:00
magumagu
18ada7a0f5 Merge pull request #2033 from magumagu/mmio-fix-addresses
Fix the addresses of MMIO registers.
2015-02-22 10:58:25 -08:00
magumagu
314b241220 Try to fix our memory map to match the GameCube.
This basically just restores the RAM mirroring that existed before PR1856
(address translation).
2015-02-19 15:02:51 -08:00
magumagu
f316265973 Fix the addresses of MMIO registers.
MMIO registers are located at 0x0C000000 and 0x0D000000, not 0xCC000000.
The 0xCC000000 addresses are just an artifact of address translation.
2015-02-15 18:29:37 -08:00
magumagu
f9e8ad39fc Fix typos from PR1856 (address translation). 2015-02-12 12:11:33 -08:00
magumagu
4193350d22 Memmap: add an explanation of Dolphin's memory layout. 2015-02-11 15:22:21 -08:00
magumagu
ac54c6a4e2 Make address translation respect the CPU translation mode.
The PowerPC CPU has bits in MSR (DR and IR) which control whether
addresses are translated. We should respect these instead of mixing
physical addresses and translated addresses into the same address space.

This is mostly mass-renaming calls to memory accesses APIs from places
which expect address translation to use a different version from those
which do not expect address translation.

This does very little on its own, but it's the first step to a correct BAT
implementation.
2015-02-11 13:56:22 -08:00
Lioncash
d7c6a7522d Memmap: Fix switch fallthroughs
Fixes a bug where out of range MEM2 accesses would hit the locked cache.
2015-02-04 08:28:52 -05:00
magumagu
9b0bf34d00 Allow locked L1 DMA to write to the EFB.
I wouldn't have guessed that anyone would do this, but apparently people
who write video codecs love doing weird stuff with the locked L1 cache.
2015-01-10 15:08:21 -08:00
magumagu
5bd3123b2a Add missing "break" in Memory::GetPointer. 2015-01-09 22:47:45 -08:00
Fiora
821db9798c Memmap: clean up function argument names.
To be more consistent overall.
2015-01-05 10:46:02 -08:00
Pierre Bourdon
b3bae9eef7 Merge pull request #1473 from phire/cleanHLE
Clean up debug string functions in OS_HLE.
2014-12-26 13:49:59 +01:00
Fiora
e7a49ae5f3 Eliminate some spammy log messages in MMU mode
dcbz: just don't use GetPointer, that can't be right anyways
ppcanalyst: don't print "instruction hex 0" messages in MMU mode, where ISIs
are expected.
2014-12-21 12:41:44 -08:00
Rohit Nirmal
8ec791c4f3 Android: Silence a few warnings. 2014-11-17 19:21:38 +00:00
Jasper St. Pierre
1e93b0db19 MemArena: Rename GrabLowMemSpace to GrabSHMSegment
This code originally tried to map the "low space" for the Gamecube's
memory layout, but since has expanded to mapping all of the easily
mappable memory on the system. Change the name to "GrabSHMSegment" to
indicate that we're looking for a shared memory segment we can map into
our process space.
2014-11-02 16:51:27 -08:00
Jasper St. Pierre
6813473367 MemArena: Remove the low mappings for our pointers
These are effectively unused, since the memmap already maps them in one
place. For 32-bit, they might have some slight advantage, but we already
special-case the regular "high-mem" pointer for 32-bit, so just use the
one we already have...
2014-11-02 16:50:36 -08:00
Jasper St. Pierre
dd0aadac97 MemoryWindow: Use p_pFakeVMEM, not the virtual mirror
They point to the same contents, so there's no reason to use the
mirror. This lets us make all the mirrors static.
2014-11-02 16:34:17 -08:00
Jasper St. Pierre
81939e808f Memmap: Clean up indentation and whitespace a bit 2014-11-02 16:34:17 -08:00
Scott Mansell
52d42bf330 Clean up debug string functions in OS_HLE.
* Use GetString instead of GetPointer.
 * Use C++ strings instead of char* pointer math.
2014-11-02 21:39:37 +13:00
skidau
049afc4315 Merge pull request #1428 from phire/fixPaletteCpy
Fix Invalid Palette Pointer error.
2014-10-29 12:25:57 +11:00
Scott Mansell
d77f361c01 Add range checking to CopyTo/FromEmu so it won't segfault. 2014-10-29 08:53:53 +13:00
Scott Mansell
a6671645d6 Remove commented out EFB arena code. 2014-10-28 23:58:54 +13:00
Scott Mansell
125cd92c3c Update pointer types in memmap.cpp to match dolphin style guide. 2014-10-28 23:54:37 +13:00
Ryan Houdek
a22fcf152d Disable the fake vmem hack on 32bit targets.
This hack is incompatible with these targets due to how much memory space we allocate.
2014-10-21 12:56:28 +00:00
Scott Mansell
d77e01e6c4 IPC_HLE: Replace (const char *)GetPointer(x) with GetString(x)
Removes 20 instances of GetPointer.
2014-10-21 11:10:34 +13:00
comex
f8dfb2ec90 Rename the poorly named {Read,Write}BigEData to Copy{From,To}Emu -
and change argument order to match memcpy.

Oh, and fix a lulzy buffer overflow in IOS emulation while I'm at it.
2014-10-19 19:34:38 -04:00
skidau
8738b1879c Removed the MMU Speed Hack option. The TLBHack is now enabled if the MMU option is disabled. This will help catch cases where a game requires the TLBHack but the option has not been set in the game ini. It also removes the possibility to mistakenly enable both the MMU and TLBHack. 2014-10-11 11:31:16 +11:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Fiora
6f617c4175 JIT64: try enabling dcbz again
This time, check the address carefully beforehand, since apparently some games
do horrible things like running it on non-RAM addresses, or at the very least
virtual addresses.
2014-08-29 12:19:58 -07:00
Lioncash
130f57df91 Core: Simplify Memory::GetString 2014-08-22 01:22:58 -04: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
magumagu
ec9dd80b7f Memmap: get rid of unused junk.
This should make it a bit more clear what interfaces we're actually
exposing for memory access at the moment.
2014-05-25 18:07:09 -07:00
magumagu
0661efea84 Software backend: Delete forked PixelEngine.
Mostly just zapping a bunch of duplicated code; the only interesting thing
going on here is the changes to the performance counter implementation.
2014-03-29 12:07:20 -07:00
Tillmann Karras
d802d39281 clang-modernize -use-nullptr
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00