93 Commits

Author SHA1 Message Date
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
BhaaL
8a6d9e1e0b hide the distinction between WAD and File from ES
instead, leave all the management with the NANDContentLoader.

for file data (directly on the NAND), this opens the file on-demand and
returns the requested chunk when asked for it.
for on-the-fly decrypted WAD data, we just keep the decoded buffer in
memory, like we've done before - except that we don't give away any objects
we don't want to.
2016-03-20 13:10:50 +01:00
booto
d9e921cc2c VI: set the JP bit of VI's DTV reg when needed
The "Force NTSC-J" option was broken by 480dbb22f2cfddf7fa989f3a68fbfec075b3a1b4
 (i.e. field-timing). A side effect of this was that it exposed a bug
 where the JP region bit of VI's DTV reg was not automatically set for wads
 from the JP region.
2015-12-31 05:36:29 +08:00
skidau
5fefc1fd79 Merge pull request #3375 from mbc07/IPLfonts
Always load system fonts from IPL dump, if available
2015-12-29 11:21:03 +11:00
Mateus B. Cassiano
7f1fe7a6cb Always load system fonts from IPL dump, if available 2015-12-24 15:57:54 -03:00
Rohit Nirmal
4163ab6a0e Fix building with PCH disabled. 2015-12-23 09:54:33 -06:00
Mathew Maidment
1b69743ba1 Merge pull request #3362 from lioncash/memory
NANDContentLoader/WiiWAD: Get rid of raw delete and new
2015-12-22 06:39:12 -05:00
Rohit Nirmal
aaa89d4f73 Silence -Wshadow and -Wmaybe-uninitialized warnings. 2015-12-21 10:06:07 -06:00
Lioncash
cbeb7034eb Volume: Make GetTMD return a vector 2015-12-19 18:00:44 -05:00
Lioncash
c78c54c546 NANDContentLoader/WiiWAD: Get rid of raw delete and new 2015-12-19 17:37:09 -05:00
JosJuice
c7e747d775 DiscIO: Improve IVolume::Read32 error handling
Callers can now check whether reads fail, either by checking the return
value or by setting the buffer to a known bad value and seeing if it stays
untouched. I've added error checks to FileSystemGCWii and Boot_BS2Emu,
but not to Boot since it doesn't check any of its other reads either.
2015-12-14 09:38:21 +01:00
Matthew Parlane
0e258d4621 Merge pull request #3152 from ShadowsFriend/ipl_checksum
Use CRC32 for IPL checks and update hashes
2015-11-20 14:37:13 +13:00
JosJuice
1202c2ea35 Don't use GetPointer in DVDRead 2015-11-16 23:22:58 +01:00
JosJuice
e3b9e89f5a Move DVDRead from DVDInterface to Boot
It was previously an important part of DVDInterface,
but since its usage there was replaced with DVDThread,
the only remaining uses of it are in Boot and Boot_BS2Emu.
2015-11-16 23:22:53 +01:00
JosJuice
61c8ce2711 Fix GC software crashing at boot if no disc is inserted
Same fix as 0b44d7c, plus a way to skip loading the apploader
just like EmulatedBS2_Wii has been able to do for a long time.
2015-11-01 20:29:48 +01:00
comex
c22d1d68ab Mark which Wii root to use in the NAND path code.
It's used by both the GUI to do things like install WADs and check up on
the system menu, in which case the global root should be used, and by
/dev/es, in which case the local one should.  The latter isn't
*terribly* useful today, since no contents will ever be installed in
temporary roots (although it's still relevant for data directories), but
converting the whole thing makes sense because then it will Just Work
once the entire NAND is synced.

Because it would have been a bit of work to split it up (but I can if
desired), this commit also contains some basic cleanup of
NANDContentLoader:

(1) The useless interface class INANDContentLoader is removed and the
    methods are changed to just return CNANDContentLoader (the only
    implementation);
(2) CNANDContentManager is changed to use unique_ptr and cleaned up a
    bit.
2015-10-16 09:10:39 +02:00
Christian Widmer
5fbf8f561b Use CRC32 for IPL checks and update hashes
This changes the hashing algorithm from Adler32 to CRC32 for it
is more widely used and therefore makes it easier to verify hashes.
For example the Redump database does provide CRC32 hashes, while it
doesn't have Adler32 ones.
Additionally adds new hashes from the bugtracker and the forums and
removes unknown ones.
2015-10-09 14:36:30 +02:00
Lioncash
4fc71e9708 Common: Remove StdMakeUnique.h 2015-09-06 04:09:53 -04:00
Stevoisiak
7248f9b524 Minor spelling corrections 2015-06-29 14:51:21 -04:00
Admiral H. Curtiss
7276d80adc Boot: Decide setting.txt's country settings based on the game's video mode when no valid country code is found rather than defaulting to Europe. 2015-06-19 15:09:21 +02:00
Admiral H. Curtiss
92447fb052 Config: Add a boolean for PAL60, like the Progressive Scan one.
This decouples the Dolphin PAL60 option from the currently set value in the Wii SYSCONF file.
2015-06-13 02:09:19 +02:00
degasus
c375111076 Options: merge SCoreStartupParameter into SConfig 2015-06-12 19:07:45 +02:00
comex
95d682dfd5 Merge pull request #2519 from JosJuice/volume-type-enum
Volume: Return volume type as an enum
2015-06-06 01:23:52 -04:00
Admiral H. Curtiss
a2ca4841e9 Properly set default video mode for PAL Wii games.
See https://github.com/dolphin-emu/dolphin/pull/2520 for a more detailed explanation.
2015-06-05 14:35:48 +02:00
JosJuice
0ed3118141 Volume: Return volume type as an enum
ISOFile and GameFile were using IsWiiDisc() and IsWadFile() to set
an enum value. The volume might as well return an enum directly.

I increased the Qt CACHE_REVISION because m_platform now is saved as u32
instead of int, but increasing the wx CACHE_REVISION is not necessary.
2015-06-04 16:26:36 +02:00
JosJuice
95a2abc1ce Use PanicAlertT instead of PanicAlert when appropriate
I tried to change messages that contained instructions for users,
while avoiding messages that are so technical that most users
wouldn't understand them even if they were in the right language.
2015-06-04 13:25:06 +02:00
comex
0d257b9e88 Don't randomly generate a serial number in deterministic mode. 2015-05-28 19:14:43 -04:00
Ryan Houdek
a4a8162fb5 Merge pull request #2188 from JosJuice/dol-cleanup
DOL loader cleanup with std::vector and safety checks
2015-05-25 23:51:40 -04: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
JosJuice
35c77abbc2 DOL loader cleanup with std::vector and safety checks 2015-05-09 16:49:18 +02:00
Lioncash
76bbd46829 Core: Remove some header inclusions in header files
Replaces them with forward declarations of used types, or removes them entirely if they aren't used at all. This also replaces certain Common headers with less inclusive ones (in terms of definitions they pull in).
2015-05-08 22:38:59 -04:00
JosJuice
f7d20204bb Fix DOL crash caused by VolumeHandler removal
Similar to the WAD crash (0b44d7c) but in another part of the boot code.
2015-04-30 13:29:09 +02: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
Matthew Parlane
571eee8648 Merge pull request #2225 from JosJuice/remove-volumehandler
Get rid of VolumeHandler
2015-04-21 11:18:57 +12:00
Lioncash
b0613bb1c8 General: Apply the const specifier where applicable 2015-04-15 02:04:03 -04:00
JosJuice
4cd00e366c Get rid of VolumeHandler
VolumeHandler is basically just a wrapper around a single IVolume object.
This change moves that object to DVDInterface, moves the Read32
function to IVolume, and gets rid of the rest of VolumeHandler.
2015-04-05 10:09:48 +02:00
Stevoisiak
06cb85991e De-capitalized CountryCode 2015-02-26 16:57:31 -05:00
Lioncash
7408de7e79 Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2
Basic Formatting/Whitespace Cleanup
2015-02-25 18:07:56 -05:00
Stevoisiak
93b16a4a2d Formatting/Whitespace Cleanup
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
skidau
f4e42b394c Merge pull request #2106 from magumagu/elf-translation-registers
Correctly set up MSR and BAT registers for ELF loading.
2015-02-25 12:42:48 +11:00
magumagu
fca5e176b3 Correctly set up MSR and BAT registers for ELF loading. 2015-02-22 20:51:50 -08:00
magumagu
97b7f26d58 Hack around our terrible GC BIOS emulation.
Fixes a crash launching F-Zero GX.
2015-02-21 20:07:54 -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
b1547b9c8b Use unique_ptr for some IVolume instances 2015-01-29 21:33:19 -05:00
Rohit Nirmal
d10b4d9b8b Fix building with PCH disabled. 2015-01-25 11:34:22 -06:00
Scott Mansell
5c34766809 Propagate elf loading failure up.
Also fix mistake in error message.
2015-01-24 16:28:34 +13:00
Scott Mansell
b7d4ff679a IsWiiElf: Optimise inner loop.
Instead of swaping each word of the elf code section(s) looking
for a match to our pattern, we swap the pattern just once (at
compile  time) and test against our swapped pattern.
2015-01-24 15:41:32 +13:00
Scott Mansell
2bf052d8b9 ElfReader: Clean up elf loader code.
* Don't claim to support any features we don't, like relocation
 * Actually zero-out BSS sections, as memory might not be already
   zeroed.
 * Deleted commented out code.
 * Removed GetPointer, updated to more modern interface methods.
 * Updated pointer types style from "u32 *x" to "u32* x"
2015-01-24 15:41:32 +13:00
Scott Mansell
1e5762b163 BootUp: Clean up elf BootUp code.
* The file already exsists, otherwise we wouldn't have gotten
   this far in the boot.
 * We have already checked if it's a Wii or GameCube elf,
   besides, it's too late to change our minds now anyway.
 * On Wii - Don't call EmulatedBS2, it can never succeed as
   it knows nothing about booting elfs. Just call the
   SetupWiiMemory directly if needed.
 * On GameCube - We still call EmulatedBS2_GC, but we stop
   it from running Apploader, which might boot something
   unexpected from the default iso or DVD root folder.
2015-01-24 15:41:28 +13:00