mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-25 01:16:18 +02:00
The entity and pending-update pages are twice the game's own size (262,144 slots), down from four times. Every page set the game keeps is that many times its normal size whether a map uses the room or not, and the largest map load seen needs about 150,000 slots. A page is a power of two entries, found by a shift, so the steps are two, four and eight times; there is nothing between. The 434 patch lines are the same instructions as before, each with the number for a page of 0x800 entries. The render-instance pool and the spatial buckets stay at eight times, which still covers the capacity.
162 lines
11 KiB
C++
162 lines
11 KiB
C++
#pragma once
|
|
|
|
#include "entity_pages.h"
|
|
|
|
namespace dingosdk::game::build::v20260929::pending_updates {
|
|
using entity_pages::Kind;
|
|
using entity_pages::Patch;
|
|
using entity_pages::patch;
|
|
|
|
// Transform/property snapshots and their pending updates must support the same
|
|
// slot count. A 150,152-entry load overflowed the retail 131,072-entry queue,
|
|
// treating its allocator pointer and metadata as additional page pointers.
|
|
inline constexpr std::size_t entry_bytes = 24;
|
|
inline constexpr std::size_t page_bytes = entity_pages::page_entries * entry_bytes;
|
|
static_assert(page_bytes == 0xc000);
|
|
|
|
// Keep owner offsets and stack-frame layouts intact. Disable only the two
|
|
// undersized inline pages; the existing lazy allocator/destructor owns every
|
|
// page instead. Include queue sorting, asynchronous/synchronous consumers,
|
|
// rounded iteration bounds and sized deallocation for both property spaces.
|
|
inline constexpr Patch patches[]{
|
|
patch(0x048a7450, Kind::pending_update_pages, "41c7800c04000002000000", "41c7800c04000000000000"),
|
|
patch(0x048a745b, Kind::pending_update_pages, "833db6cf910206", "e9300000009090"),
|
|
patch(0x048a944c, Kind::pending_update_pages, "41b800600000", "41b800c00000"),
|
|
patch(0x048abf3e, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x048abf44, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x048afad8, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048afae2, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x048bdd9b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048bdda9, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
|
|
patch(0x048bddcb, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048bddd2, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x048be423, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048be437, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x048be45b, Kind::pending_update_pages, "c1e70a", "c1e70b"),
|
|
patch(0x048bffb9, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048bffbe, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x048bfff2, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048bfff9, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x048c0012, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048c0017, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x048c04c2, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x048c04c8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x048c0e14, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x048c0e1c, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04eb2fce, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04eb2fd4, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04eb30ae, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04eb30b4, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04eb318e, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04eb3194, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04eef54b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04eef559, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
|
|
patch(0x04eef57b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04eef582, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04eef61b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04eef629, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
|
|
patch(0x04eef64b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04eef652, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04eef6fb, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04eef709, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
|
|
patch(0x04eef72b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04eef732, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef55da, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04ef5601, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef5628, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef566f, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef569d, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef56a5, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef56b4, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04ef574d, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef576f, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef579b, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef5813, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef583c, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef5863, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef58aa, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef58d8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef58e0, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef58ef, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04ef5971, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5978, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef59a4, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef59ab, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef5a72, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5a91, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef5ab8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef5b01, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5b06, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04ef5b4f, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5b6e, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef5b95, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef5bdd, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5be2, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04ef5c1f, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5c26, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04ef5c41, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04ef5c46, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04ef5e59, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04ef5e78, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef5e97, Kind::pending_update_pages, "c1e60a", "c1e60b"),
|
|
patch(0x04ef5feb, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04ef600a, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04ef6029, Kind::pending_update_pages, "c1e60a", "c1e60b"),
|
|
patch(0x04ef61af, Kind::pending_update_pages, "418d8dff030000", "418d8dff070000"),
|
|
patch(0x04ef61b6, Kind::pending_update_pages, "48c1e90a", "48c1e90b"),
|
|
patch(0x04ef61f3, Kind::pending_update_pages, "b800040000", "b800080000"),
|
|
patch(0x04ef628b, Kind::pending_update_pages, "4181c500fcffff", "4181c500f8ffff"),
|
|
patch(0x04ef630d, Kind::pending_update_pages, "41b800600000", "41b800c00000"),
|
|
patch(0x04efbdf3, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04efbe1a, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efbe41, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efbe88, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efbeb6, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efbebe, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efbecd, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04efbf6c, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efbf8e, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efbfba, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efc035, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc062, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efc08e, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efc0e9, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efc117, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efc11f, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc12e, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04efc202, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc221, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efc248, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efc2c2, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc2e1, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efc308, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efc353, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc358, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04efc399, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc3a0, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04efc3bb, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04efc3c0, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04efc5ef, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04efc60e, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efc62d, Kind::pending_update_pages, "c1e60a", "c1e60b"),
|
|
patch(0x04efc78e, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04efc7ad, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
|
|
patch(0x04efc7cc, Kind::pending_update_pages, "c1e60a", "c1e60b"),
|
|
patch(0x04efc96c, Kind::pending_update_pages, "418d8dff030000", "418d8dff070000"),
|
|
patch(0x04efc973, Kind::pending_update_pages, "48c1e90a", "48c1e90b"),
|
|
patch(0x04efc9b3, Kind::pending_update_pages, "b800040000", "b800080000"),
|
|
patch(0x04efca54, Kind::pending_update_pages, "4181c500fcffff", "4181c500f8ffff"),
|
|
patch(0x04efcad9, Kind::pending_update_pages, "41b800600000", "41b800c00000"),
|
|
patch(0x04f095de, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04f095e3, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04f0961e, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04f09625, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04f0963e, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04f09643, Kind::pending_update_pages, "c1e00a", "c1e00b"),
|
|
patch(0x04f09af2, Kind::pending_update_pages, "c1e90a", "c1e90b"),
|
|
patch(0x04f09af8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
patch(0x04f0db17, Kind::pending_update_pages, "c1e80a", "c1e80b"),
|
|
patch(0x04f0db1f, Kind::pending_update_pages, "c1e10a", "c1e10b"),
|
|
};
|
|
} // namespace dingosdk::game::build::v20260929::pending_updates
|