[XAM] Enable storing IPTV name.
Still needs to be exposed in UI (optional)
This commit is contained in:
@@ -31,6 +31,7 @@ XamState::XamState(Emulator* emulator, KernelState* kernel_state)
|
||||
achievement_manager_ = std::make_unique<AchievementManager>();
|
||||
|
||||
LoadLanguageLocaleFallback();
|
||||
LoadIptvServiceName();
|
||||
|
||||
AppManager::RegisterApps(kernel_state, app_manager_.get());
|
||||
}
|
||||
@@ -60,6 +61,17 @@ void XamState::LoadLanguageLocaleFallback() {
|
||||
}
|
||||
}
|
||||
|
||||
void XamState::LoadIptvServiceName() {
|
||||
constexpr uint32_t address = 0x80D10000;
|
||||
|
||||
if (kernel_state_->memory()
|
||||
->LookupHeap(0x80000000)
|
||||
->AllocFixed(address, 0x78, 0x1000, kMemoryAllocationCommit,
|
||||
kMemoryProtectRead | kMemoryProtectWrite)) {
|
||||
iptv_name_address_ = address;
|
||||
}
|
||||
}
|
||||
|
||||
UserProfile* XamState::GetUserProfile(uint32_t user_index) const {
|
||||
if (user_index >= XUserMaxUserCount && user_index < XUserIndexLatest) {
|
||||
return nullptr;
|
||||
|
||||
@@ -66,6 +66,8 @@ class XamState {
|
||||
return language_fallback_address_[index];
|
||||
}
|
||||
|
||||
uint32_t GetIptvNameAddress() const { return iptv_name_address_; }
|
||||
|
||||
X_DASH_APP_INFO dash_app_info_ = {};
|
||||
uint32_t dash_backstack_nodes_count_ = 0;
|
||||
X_DASH_BACKSTACK_DATA dash_backstack_data_[2] = {};
|
||||
@@ -76,6 +78,7 @@ class XamState {
|
||||
|
||||
private:
|
||||
void LoadLanguageLocaleFallback();
|
||||
void LoadIptvServiceName();
|
||||
|
||||
KernelState* kernel_state_;
|
||||
|
||||
@@ -89,6 +92,7 @@ class XamState {
|
||||
|
||||
// Custom XAM stuff
|
||||
std::array<uint32_t, 0x12> language_fallback_address_{};
|
||||
uint32_t iptv_name_address_{};
|
||||
};
|
||||
|
||||
} // namespace xam
|
||||
|
||||
Reference in New Issue
Block a user