mirror of
https://github.com/NinjaCheetah/libWiiPy.git
synced 2025-04-26 05:11:02 -04:00
Disable automatically making patched content non-shared
This commit is contained in:
parent
60975dc62d
commit
f81398e854
@ -13,10 +13,17 @@ class IOSPatcher:
|
|||||||
|
|
||||||
Attributes
|
Attributes
|
||||||
----------
|
----------
|
||||||
|
title : Title
|
||||||
|
The loaded Title object to be patched.
|
||||||
|
es_module_index : int
|
||||||
|
The content index that ES resides in and where ES patches are applied.
|
||||||
|
dip_module_index : int
|
||||||
|
The content index that DIP resides in and where DIP patches are applied. -1 if DIP patches are not applied.
|
||||||
"""
|
"""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.title: Title = Title()
|
self.title: Title = Title()
|
||||||
self.es_module_index: int = -1
|
self.es_module_index: int = -1
|
||||||
|
self.dip_module_index: int = -1
|
||||||
|
|
||||||
def load(self, title: Title) -> None:
|
def load(self, title: Title) -> None:
|
||||||
"""
|
"""
|
||||||
@ -138,7 +145,6 @@ class IOSPatcher:
|
|||||||
patch_count += 1
|
patch_count += 1
|
||||||
|
|
||||||
self.title.set_content(target_content, self.es_module_index)
|
self.title.set_content(target_content, self.es_module_index)
|
||||||
self.title.content.content_records[self.es_module_index].content_type = 1 # Sets content to be non-shared
|
|
||||||
|
|
||||||
return patch_count
|
return patch_count
|
||||||
|
|
||||||
@ -169,7 +175,6 @@ class IOSPatcher:
|
|||||||
patch_count += 1
|
patch_count += 1
|
||||||
|
|
||||||
self.title.set_content(target_content, self.es_module_index)
|
self.title.set_content(target_content, self.es_module_index)
|
||||||
self.title.content.content_records[self.es_module_index].content_type = 1 # Sets content to be non-shared
|
|
||||||
|
|
||||||
return patch_count
|
return patch_count
|
||||||
|
|
||||||
@ -199,7 +204,6 @@ class IOSPatcher:
|
|||||||
patch_count += 1
|
patch_count += 1
|
||||||
|
|
||||||
self.title.set_content(target_content, self.es_module_index)
|
self.title.set_content(target_content, self.es_module_index)
|
||||||
self.title.content.content_records[self.es_module_index].content_type = 1 # Sets content to be non-shared
|
|
||||||
|
|
||||||
return patch_count
|
return patch_count
|
||||||
|
|
||||||
@ -218,19 +222,18 @@ class IOSPatcher:
|
|||||||
|
|
||||||
# This patch is applied to the DIP module rather than to ES, so we need to search the contents for the right one
|
# This patch is applied to the DIP module rather than to ES, so we need to search the contents for the right one
|
||||||
# first.
|
# first.
|
||||||
dip_content_index = -1
|
|
||||||
for content in range(len(self.title.content.content_records)):
|
for content in range(len(self.title.content.content_records)):
|
||||||
target_content = self.title.get_content_by_index(self.title.content.content_records[content].index)
|
target_content = self.title.get_content_by_index(self.title.content.content_records[content].index)
|
||||||
dip_offset = target_content.find(b'\x44\x49\x50\x3a') # This is looking for "DIP:"
|
dip_offset = target_content.find(b'\x44\x49\x50\x3a') # This is looking for "DIP:"
|
||||||
if dip_offset != -1:
|
if dip_offset != -1:
|
||||||
dip_content_index = self.title.content.content_records[content].index
|
self.dip_module_index = self.title.content.content_records[content].index
|
||||||
break
|
break
|
||||||
|
|
||||||
# If we get here with no content index, then DIP wasn't found. That probably means that this isn't IOS.
|
# If we get here with no content index, then DIP wasn't found. That probably means that this isn't IOS.
|
||||||
if dip_content_index == -1:
|
if self.dip_module_index == -1:
|
||||||
raise Exception("DIP module could not be found! Please ensure that this is an intact copy of an IOS.")
|
raise Exception("DIP module could not be found! Please ensure that this is an intact copy of an IOS.")
|
||||||
|
|
||||||
target_content = self.title.get_content_by_index(dip_content_index)
|
target_content = self.title.get_content_by_index(self.dip_module_index)
|
||||||
|
|
||||||
patch_count = 0
|
patch_count = 0
|
||||||
patch_sequence = b'\x49\x4c\x23\x90\x68\x0a' # 49 4c 23 90 68 0a
|
patch_sequence = b'\x49\x4c\x23\x90\x68\x0a' # 49 4c 23 90 68 0a
|
||||||
@ -243,7 +246,6 @@ class IOSPatcher:
|
|||||||
target_content = content_data.read()
|
target_content = content_data.read()
|
||||||
patch_count += 1
|
patch_count += 1
|
||||||
|
|
||||||
self.title.set_content(target_content, dip_content_index)
|
self.title.set_content(target_content, self.dip_module_index)
|
||||||
self.title.content.content_records[dip_content_index].content_type = 1 # Sets content to be non-shared
|
|
||||||
|
|
||||||
return patch_count
|
return patch_count
|
||||||
|
Loading…
x
Reference in New Issue
Block a user