Difference between revisions of "Splatoon 2"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Created page with "=Versions= The below documents changes for USA-region updates. Any referenced game-specific symbols are from an old version. ==5.5.1== ExeFs: * main: updated * NPDM: usua...")
 
Line 1: Line 1:
 
=Versions=
 
=Versions=
The below documents changes for USA-region updates. Any referenced game-specific symbols are from an old version.
+
The below documents changes for USA-region updates. Any referenced codebin symbols are from an old version.
  
 
==5.5.1==
 
==5.5.1==
Line 11: Line 11:
 
Codebin changes:
 
Codebin changes:
 
* A bunch of funcs had {clamp to max value} added:
 
* A bunch of funcs had {clamp to max value} added:
** This is done with a func which calls a vfunc.
+
** This is done with <code>enl::ContentTransporterCommon<enl::SystemInformation>::readyReceiveStream()</code> and <code>enl::ContentTransporterCommon<enl::SystemRequestInfo>::readyReceiveStream()</code>. These funcs call <code>sead::ReadStream::readMemBlock</code>, with the returned value now being clamped to a max value.
** <nowiki>enl::PiaTransportManager::receiveFromLib()</nowiki>: Now clamps the output size returned by nn::pia::transport::UnreliableProtocol::Receive() against the input size which was passed to Receive(), instead of using it directly.
+
** <nowiki>enl::PiaTransportManager::receiveFromLib()</nowiki>: Now clamps the output size returned by <code>nn::pia::transport::UnreliableProtocol::Receive()</code> against the input size which was passed to Receive(), instead of using it directly.
** Two constructors and the associated dtors now have value clamping.
+
** Two sets of two deconstructors now have value clamping: <code><enl::WriteStream::~WriteStream()></code> and <code><enl::RamWriteStream::~RamWriteStream()></code>.
* <nowiki>enl::TransportManager::updateReceiveBuffer_()</nowiki>:
+
* <code>enl::TransportManager::updateReceiveBuffer_()</code>:
 
** This now properly returns when the loop fails to find an entry, instead of null-deref.
 
** This now properly returns when the loop fails to find an entry, instead of null-deref.
 
** This now checks <code>if(size_from_header>0x442) {return}</code>. Likewise if the ptr loaded from the array-entry is NULL.
 
** This now checks <code>if(size_from_header>0x442) {return}</code>. Likewise if the ptr loaded from the array-entry is NULL.
* <nowiki>enl::Buffer::set()</nowiki>: Added a bounds check, returning on fail before the memcpy.
+
* <code>enl::Buffer::set()</code>: Added a bounds check, returning on fail before the memcpy.
  
 
No SDK versions were changed, and the the .nss module string wasn't changed either (which contains a version).
 
No SDK versions were changed, and the the .nss module string wasn't changed either (which contains a version).

Revision as of 18:04, 15 November 2022

Versions

The below documents changes for USA-region updates. Any referenced codebin symbols are from an old version.

5.5.1

ExeFs:

  • main: updated
  • NPDM: usual update

RomFs: {...}

Codebin changes:

  • A bunch of funcs had {clamp to max value} added:
    • This is done with enl::ContentTransporterCommon<enl::SystemInformation>::readyReceiveStream() and enl::ContentTransporterCommon<enl::SystemRequestInfo>::readyReceiveStream(). These funcs call sead::ReadStream::readMemBlock, with the returned value now being clamped to a max value.
    • enl::PiaTransportManager::receiveFromLib(): Now clamps the output size returned by nn::pia::transport::UnreliableProtocol::Receive() against the input size which was passed to Receive(), instead of using it directly.
    • Two sets of two deconstructors now have value clamping: <enl::WriteStream::~WriteStream()> and <enl::RamWriteStream::~RamWriteStream()>.
  • enl::TransportManager::updateReceiveBuffer_():
    • This now properly returns when the loop fails to find an entry, instead of null-deref.
    • This now checks if(size_from_header>0x442) {return}. Likewise if the ptr loaded from the array-entry is NULL.
  • enl::Buffer::set(): Added a bounds check, returning on fail before the memcpy.

No SDK versions were changed, and the the .nss module string wasn't changed either (which contains a version).