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 101667424251c1ec59ef138a9a7cb59be2a12185
@@ -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.