Skip to content
Permalink
Browse files
Merge pull request #6791 from aldelaro5/wii-epoch-fix
Wii: Fix the Wii epoch and make the IPL.CB 0 by default
  • Loading branch information
leoetlino committed May 9, 2018
2 parents 3e60850 + 224a942 commit 1016674
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 9 deletions.
@@ -237,9 +237,7 @@ void CEXIIPL::SetCS(int _iCS)

void CEXIIPL::UpdateRTC()
{
u32 epoch =
(SConfig::GetInstance().bWii || SConfig::GetInstance().m_is_mios) ? WII_EPOCH : GC_EPOCH;
u32 rtc = Common::swap32(GetEmulatedTime(epoch));
u32 rtc = Common::swap32(GetEmulatedTime(GC_EPOCH));
std::memcpy(m_RTC, &rtc, sizeof(u32));
}

@@ -22,11 +22,8 @@ class CEXIIPL : public IEXIDevice
bool IsPresent() const override;
void DoState(PointerWrap& p) override;

static constexpr u32 UNIX_EPOCH = 0; // 1970-01-01 00:00:00
static constexpr u32 GC_EPOCH = 0x386D4380; // 2000-01-01 00:00:00
static constexpr u32 WII_EPOCH = 0x477E5826; // 2008-01-04 16:00:38
// The Wii epoch is suspiciously random, and the Wii was even
// released before it, but apparently it works anyway?
static constexpr u32 UNIX_EPOCH = 0; // 1970-01-01 00:00:00
static constexpr u32 GC_EPOCH = 0x386D4380; // 2000-01-01 00:00:00

static u32 GetEmulatedTime(u32 epoch);
static u64 NetPlay_GetEmulatedTime();
@@ -286,7 +286,7 @@ void SysConf::InsertDefaultEntries()
ipl_pc[2] = 0x14;
AddEntry({Entry::Type::SmallArray, "IPL.PC", std::move(ipl_pc)});

AddEntry({Entry::Type::Long, "IPL.CB", {0x0f, 0x11, 0x14, 0xa6}});
AddEntry({Entry::Type::Long, "IPL.CB", {0x00, 0x00, 0x00, 0x00}});
AddEntry({Entry::Type::Byte, "IPL.AR", {1}});
AddEntry({Entry::Type::Byte, "IPL.SSV", {1}});

0 comments on commit 1016674

Please sign in to comment.