Commit Graph

39 Commits

Author SHA1 Message Date
997681b65a Removed the tag check in InvalidateTLBEntry. All four TLB entries are always cleared on each invalidate command.
Initialised the TLB cache to start from a consistent state on reset.
2014-12-05 19:56:45 +11:00
693f413364 Updated C bit on TLB cache hits.
Added TLB state to the save state file.
2014-12-05 14:29:13 +11:00
a4c6cf85e9 TLB: fix backwards exception check 2014-12-03 06:00:23 -08:00
6317721c95 MemmapFunctions: Remove unused effective_address argument 2014-11-02 16:34:17 -08:00
3e47480470 Remove dumb getPointers that actually want the whole memory block.
The whole memory block is accessable globally anyway. Much
cleaner!
2014-10-29 23:51:27 +13:00
f4fa8d0b83 MMU: allow page-table loads/stores if MMU is off
Fixes regressions in some games that apparently required this to work, but
don't really require full MMU emulation (e.g. with exceptions and all).
2014-10-21 05:55:56 -07:00
c048691a57 Merge pull request #1292 from FioraAeterna/enablebats
Make EnableBATs an option instead of disabling it entirely
2014-10-21 02:26:49 -04:00
24e72cd064 Merge pull request #991 from phire/dsi_should_crash
Panic if game does an invalid memory access.
2014-10-21 01:53:08 -04:00
f9d9257c57 Fixed typo in the MEM2 handling. 2014-10-19 21:25:43 +11:00
719326df65 Make EnableBATs an option instead of disabling it entirely 2014-10-17 19:05:01 -07:00
73590b1323 Merge pull request #1266 from skidau/mmu-exram
Corrected the physical memory access to MEM2 via the MMU. Fixes Toy Story 3.
2014-10-17 17:10:51 +11:00
6650f8922d Merge pull request #1283 from FioraAeterna/removebats
MMU: disable BAT resolution
2014-10-14 01:14:14 -04:00
6ac2fcca61 MMU: disable BAT resolution
No known games, not even Wii MMU games like Cars 2 and Toy Story 3, use custom
BATs. This makes BAT resolution a waste of time. BAT handling could be
optimized significantly, but as long as nothing uses it, it's easier to just
disable it.

Should significantly improve performance in MMU-heavy games.
2014-10-13 22:04:03 -07:00
7b44e79356 Changed the FAST_TLB_CACHE to update its state only if the TLB cache is accessed by the game (not by Dolphin). The FAST_TLB_CACHE (written by booto) is faster and accurate to the hardware. Enabled the FAST_TLB_CACHE by default. 2014-10-13 18:00:45 +11:00
69a2d0cb96 Corrected the physical memory access to MEM2 via the MMU. Fixes Toy Story 3. 2014-10-13 16:01:02 +11:00
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
22f087275c MMU: support loads/stores that cross page boundaries
Fixes some strange issues with Rogue Squadron 3 in JIT mode.
2014-09-29 21:19:21 -07:00
71cb09f1ca Merge pull request #1027 from rohit-n/change-include
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
f93aa7087c Kill Core::g_CoreStartupParameter. 2014-09-09 00:24:49 -04:00
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
1963717855 Panic on invalid reads/writes for non-mmu games.
Previously it would fall through to the mmu code path, and raise a dsi
exception, which it would never check for, so it would continue
executing code silently.
2014-09-06 19:16:54 +12:00
96e92d33b7 Don't write to EXRAM if it doesn't exist.
Previously, if a gamecube game wrote to an EXRAM address, dolphin would
segfault.
2014-09-06 19:16:02 +12:00
e5705a9273 Merge pull request #908 from FioraAeterna/fixenhancedbat
MMU: fix enhanced BAT support
2014-09-02 05:46:03 +02:00
eb535be874 Core: Clean up brace placements 2014-08-30 18:06:49 -04:00
08ab2d3110 MMU: fix enhanced BAT support
I don't know what I can test this on, but it was definitely broken before.
Seems to be a few clock cycles faster too due to the refactoring?
2014-08-30 05:47:05 -07:00
38c8a4efb2 MMIO: Cleanup Mapping class by using templates instead of macros. 2014-07-27 19:23:19 +02:00
5767691f4e Get rid of a few C-style struct declarations 2014-07-23 20:36:45 -04:00
7e79806efc remove unused globals
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
81ed17be53 avoid the extern keyword in .cpp files 2014-07-11 16:10:20 +02:00
22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
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
31cfc73a09 Fixes spacing for "for", "while", "switch" and "if"
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
86326de6f6 WriteToHardware: Pass through the whole 0xCC008xxx area to GPFifo instead of only 0xCC008000. 2014-02-23 10:01:47 +01:00
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
96a66ada2e Use a pointer instead of a non-const ref in MMIO::Mapping::Read now that compatibility with the old interface is not required anymore. 2014-02-16 19:22:40 +01:00
92f8d93e96 Remove the old MMIO access "interface". 2014-02-16 19:22:40 +01:00
9fe58d28ba Starting point for the new MMIO interface
Design doc:
    https://docs.google.com/document/d/11qcGCWLne1wYvmtFaSrOKZt_vHxXrcWcZsdWJ-MJnyo/edit

The code is currently not used. Migration plan:
    1. Implement MMIO access via MMIO::Mapping in parallel to the current
       method.
    2. Implement all existing MMIO handlers via the new interface.
    3. Remove the old hwRead/hwReadWii/hwReadIOBridge code.
    4. Implement JIT optimizations for MMIO accesses.
2014-02-16 19:22:39 +01:00
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00