Added wad files detection to the GameListCtrl, some changes to ISOProperties, needs a bit more work ?

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3348 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
sl1nk3.s
2009-06-07 02:54:07 +00:00
parent 7eea69f5c2
commit 8cb67f4729
14 changed files with 347 additions and 29 deletions

View File

@ -25,6 +25,7 @@
#include "VolumeDirectory.h"
#include "VolumeGC.h"
#include "VolumeWiiCrypted.h"
#include "VolumeWad.h"
#include "Hash.h"
@ -35,7 +36,8 @@ enum EDiscType
DISC_TYPE_UNK,
DISC_TYPE_WII,
DISC_TYPE_WII_CONTAINER,
DISC_TYPE_GC
DISC_TYPE_GC,
DISC_TYPE_WAD
};
#ifndef _WIN32
@ -80,6 +82,9 @@ IVolume* CreateVolumeFromFilename(const std::string& _rFilename, u32 _PartitionG
case DISC_TYPE_GC:
return new CVolumeGC(pReader);
case DISC_TYPE_WAD:
return new CVolumeWAD(pReader);
case DISC_TYPE_WII_CONTAINER:
{
u8 region;
@ -123,6 +128,15 @@ bool IsVolumeWiiDisc(const IVolume *_rVolume)
//Gamecube 0xc2339f3d
}
bool IsVolumeWadFile(const IVolume *_rVolume)
{
u32 MagicWord = 0;
_rVolume->Read(0x02, 4, (u8*)&MagicWord);
return (Common::swap32(MagicWord) == 0x00204973);
// That would be 0x00206962 for boot2 wads
}
IVolume* CreateVolumeFromCryptedWiiImage(IBlobReader& _rReader, u32 _PartitionGroup, u32 _VolumeType, u32 _VolumeNum, bool Korean)
{
CBlobBigEndianReader Reader(_rReader);
@ -209,6 +223,16 @@ EDiscType GetDiscType(IBlobReader& _rReader)
}
}
// check for WAD
{
u32 MagicWord = Reader.Read32(0x02);
// That would be 0x206962 for boot2 wads
// Should we add them too ?
if (MagicWord == 0x00204973)
return(DISC_TYPE_WAD);
}
// check for GC
{
u32 MagicWord = Reader.Read32(0x1C);