Changes

200 bytes added ,  03:17, 6 March 2022
IPC range is *always* reset, not just on older IOS
Line 7: Line 7:  
'''IOS28''' is the first [[IOS]] to be split into multiple modules, each its own [[ELF]] [[ARM Binaries|ARM binary]], rather than all of IOS being part of a single monolithic binary. Its [[:/dev/es|ES]] module includes ioctls that retrieve shared contents, probably for the purpose of quickly loading IOS modules. Modules are also now tagged with $IOSVersion dates, since the build tag can no longer completely summarize the IOS. Older IOSes were later given module-specific $IOSVersion tags as they were updated.
 
'''IOS28''' is the first [[IOS]] to be split into multiple modules, each its own [[ELF]] [[ARM Binaries|ARM binary]], rather than all of IOS being part of a single monolithic binary. Its [[:/dev/es|ES]] module includes ioctls that retrieve shared contents, probably for the purpose of quickly loading IOS modules. Modules are also now tagged with $IOSVersion dates, since the build tag can no longer completely summarize the IOS. Older IOSes were later given module-specific $IOSVersion tags as they were updated.
   −
This IOS also uses a different range of memory, so it must clear memory differently. Because [[IOS22]] and below did not do this, IOS28 also clears it if one of those IOSes is reloaded to.{{ref|https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/IOS/IOS.cpp}}
+
IOS28 and up also use a different IPC range, which it sets when it is loaded. Because [[IOS22]] and below do not set their IPC ranges, instead inheriting them from boot (probably [[boot2]]), IOS28 and above always reset the IPC range to the old one before reloading to a different IOS, which allows the old IOSes to have the old range while also allowing new IOSes to set their own range.{{ref|https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/IOS/IOS.cpp}}
    
This also appears to be the first IOS to support [[:/sys/disc.sys]]; this probably means Metroid Prime 3: Corruption requires special privileges.
 
This also appears to be the first IOS to support [[:/sys/disc.sys]]; this probably means Metroid Prime 3: Corruption requires special privileges.
5,579

edits