mirror of
https://github.com/zeldaret/ss
synced 2026-06-20 16:01:13 -04:00
@@ -157,7 +157,7 @@ m/m_heap.cpp:
|
||||
.rodata start:0x804F0570 end:0x804F0580
|
||||
.data start:0x80542990 end:0x80542AA8
|
||||
.sdata start:0x80573FF8 end:0x80574000
|
||||
.sbss start:0x80575C38 end:0x80575C50
|
||||
.sbss start:0x80575C38 end:0x80575C4C
|
||||
.bss start:0x805CB078 end:0x805CB088
|
||||
|
||||
m/m_mtx.cpp:
|
||||
|
||||
+11
-11
@@ -17817,11 +17817,11 @@ copyAttribute__5mHeapFUi = .text:0x802F0F00; // type:function size:0x34
|
||||
setCurrentHeap__5mHeapFPQ23EGG4Heap = .text:0x802F0F40; // type:function size:0x4
|
||||
createExpHeap__5mHeapFUlPQ23EGG4HeapPCcUlUl = .text:0x802F0F50; // type:function size:0x10C
|
||||
adjustExpHeap__5mHeapFPQ23EGG7ExpHeap = .text:0x802F1060; // type:function size:0x68
|
||||
expHeapCost__5mHeapFUlUl = .text:0x802F10D0; // type:function size:0x18
|
||||
expHeapCost__5mHeapFUli = .text:0x802F10D0; // type:function size:0x18
|
||||
createFrmHeap__5mHeapFUlPQ23EGG4HeapPCcUlUl = .text:0x802F10F0; // type:function size:0x10C
|
||||
destroyFrmHeap__5mHeapFPQ23EGG7FrmHeap = .text:0x802F1200; // type:function size:0x1C
|
||||
adjustFrmHeap__5mHeapFPQ23EGG7FrmHeap = .text:0x802F1220; // type:function size:0x68
|
||||
frmHeapCost__5mHeapFUlUl = .text:0x802F1290; // type:function size:0x18
|
||||
frmHeapCost__5mHeapFUli = .text:0x802F1290; // type:function size:0x18
|
||||
setTempHeap__5mHeapFPPQ23EGG4HeapPQ23EGG4Heap = .text:0x802F12B0; // type:function size:0x38
|
||||
restoreTempHeap__5mHeapFPPQ23EGG4Heapi = .text:0x802F12F0; // type:function size:0x58
|
||||
createHeap__5mHeapFUlPQ23EGG4HeapPCc = .text:0x802F1350; // type:function size:0x74
|
||||
@@ -30058,7 +30058,7 @@ lbl_80502E70 = .data:0x80502E70; // type:object size:0x3D8
|
||||
lbl_80503248 = .data:0x80503248; // type:object size:0x30
|
||||
lbl_80503278 = .data:0x80503278; // type:object size:0x9C
|
||||
lbl_80503314 = .data:0x80503314; // type:object size:0x6C
|
||||
__vt__7dBase_c = .data:0x80503380; // type:object size:0x50
|
||||
__vt__7dBase_c = .data:0x80503380; // type:object size:0x4C
|
||||
lbl_805033D0 = .data:0x805033D0; // type:object size:0x10
|
||||
lbl_805033E0 = .data:0x805033E0; // type:object size:0x10
|
||||
lbl_805033F0 = .data:0x805033F0; // type:object size:0x10
|
||||
@@ -35726,12 +35726,12 @@ lbl_80542928 = .data:0x80542928; // type:object size:0x14
|
||||
lbl_8054293C = .data:0x8054293C; // type:object size:0x14
|
||||
lbl_80542950 = .data:0x80542950; // type:object size:0x18
|
||||
lbl_80542968 = .data:0x80542968; // type:object size:0x28
|
||||
lbl_80542990 = .data:0x80542990; // type:object size:0x2C
|
||||
lbl_805429BC = .data:0x805429BC; // type:object size:0x2C
|
||||
lbl_805429E8 = .data:0x805429E8; // type:object size:0x38
|
||||
lbl_80542990 = .data:0x80542990; // type:object size:0x29
|
||||
lbl_805429BC = .data:0x805429BC; // type:object size:0x29
|
||||
lbl_805429E8 = .data:0x805429E8; // type:object size:0x31
|
||||
lbl_80542A20 = .data:0x80542A20; // type:object size:0x30
|
||||
lbl_80542A50 = .data:0x80542A50; // type:object size:0x30
|
||||
lbl_80542A80 = .data:0x80542A80; // type:object size:0x28
|
||||
lbl_80542A50 = .data:0x80542A50; // type:object size:0x2E
|
||||
lbl_80542A80 = .data:0x80542A80; // type:object size:0x22
|
||||
lbl_80542AA8 = .data:0x80542AA8; // type:object size:0x20
|
||||
lbl_80542AC8 = .data:0x80542AC8; // type:object size:0x8
|
||||
lbl_80542AD0 = .data:0x80542AD0; // type:object size:0x10
|
||||
@@ -39021,7 +39021,7 @@ lbl_80573FE4 = .sdata:0x80573FE4; // type:object size:0x4 data:string
|
||||
lbl_80573FE8 = .sdata:0x80573FE8; // type:object size:0x4 data:string
|
||||
lbl_80573FEC = .sdata:0x80573FEC; // type:object size:0x8
|
||||
lbl_80573FF4 = .sdata:0x80573FF4; // type:object size:0x4 data:string
|
||||
g_DefaultGameHeapId__5mHeap = .sdata:0x80573FF8; // type:object size:0x8 data:byte
|
||||
g_DefaultGameHeapId__5mHeap = .sdata:0x80573FF8; // type:object size:0x1 data:byte
|
||||
lbl_80574000 = .sdata:0x80574000; // type:object size:0x8 data:4byte
|
||||
lbl_80574008 = .sdata:0x80574008; // type:object size:0x8
|
||||
lbl_80574010 = .sdata:0x80574010; // type:object size:0x8
|
||||
@@ -40263,7 +40263,7 @@ s_SavedCurrentHeap__5mHeap = .sbss:0x80575C38; // type:object size:0x4 data:4byt
|
||||
g_archiveHeap__5mHeap = .sbss:0x80575C3C; // type:object size:0x4 data:4byte
|
||||
g_commandHeap__5mHeap = .sbss:0x80575C40; // type:object size:0x4 data:4byte
|
||||
g_dylinkHeap__5mHeap = .sbss:0x80575C44; // type:object size:0x4 data:4byte
|
||||
g_assertHeap__5mHeap = .sbss:0x80575C48; // type:object size:0x8 data:4byte
|
||||
g_assertHeap__5mHeap = .sbss:0x80575C48; // type:object size:0x4 data:4byte
|
||||
lbl_80575C50 = .sbss:0x80575C50; // type:object size:0x4 data:4byte
|
||||
lbl_80575C54 = .sbss:0x80575C54; // type:object size:0x4 data:4byte
|
||||
lbl_80575C58 = .sbss:0x80575C58; // type:object size:0x4 data:4byte
|
||||
@@ -47623,7 +47623,7 @@ lbl_8057F3A0 = .sdata2:0x8057F3A0; // type:object size:0x4 data:float
|
||||
lbl_8057F3A4 = .sdata2:0x8057F3A4; // type:object size:0x4 data:float
|
||||
lbl_8057F3A8 = .sdata2:0x8057F3A8; // type:object size:0x4 data:float
|
||||
lbl_8057F3AC = .sdata2:0x8057F3AC; // type:object size:0x4 data:float
|
||||
lbl_8057F3B0 = .sdata2:0x8057F3B0; // type:object size:0x8 data:float
|
||||
lbl_8057F3B0 = .sdata2:0x8057F3B0; // type:object size:0x4 data:float
|
||||
lbl_8057F3B8 = .sdata2:0x8057F3B8; // type:object size:0x4 data:float
|
||||
lbl_8057F3BC = .sdata2:0x8057F3BC; // type:object size:0x4 data:float
|
||||
lbl_8057F3C0 = .sdata2:0x8057F3C0; // type:object size:0x4 data:float
|
||||
|
||||
+1
-1
@@ -289,7 +289,7 @@ config.libs = [
|
||||
Object(NonMatching, "f/f_base.cpp"),
|
||||
Object(NonMatching, "f/f_list.cpp"),
|
||||
Object(NonMatching, "f/f_manager.cpp"),
|
||||
Object(NonMatching, "m/m_heap.cpp"),
|
||||
Object(Matching, "m/m_heap.cpp"),
|
||||
Object(NonMatching, "m/m_mtx.cpp"),
|
||||
# framework (f_name)
|
||||
# d stuff (d_name)
|
||||
|
||||
+2
-2
@@ -19,11 +19,11 @@ namespace mHeap {
|
||||
/* 802f0f40 */ EGG::Heap *setCurrentHeap(EGG::Heap *);
|
||||
/* 802f0f50 */ EGG::ExpHeap *createExpHeap(size_t size, EGG::Heap *parentHeap, char *name, s32 align, u32 unk);
|
||||
/* 802f1060 */ size_t adjustExpHeap(EGG::Heap *heap);
|
||||
/* 802f10d0 */ size_t expHeapCost(size_t start, size_t size);
|
||||
/* 802f10d0 */ size_t expHeapCost(size_t start, s32 size);
|
||||
/* 802f10f0 */ EGG::FrmHeap *createFrmHeap(size_t size, EGG::Heap *parentHeap, char *name, size_t align, size_t attrs);
|
||||
/* 802f1200 */ void destroyFrmHeap(EGG::FrmHeap *heap);
|
||||
/* 802f1220 */ size_t adjustFrmHeap(EGG::FrmHeap *heap);
|
||||
/* 802f1290 */ size_t frmHeapCost(size_t start, size_t size);
|
||||
/* 802f1290 */ size_t frmHeapCost(size_t start, s32 size);
|
||||
/* 802f12b0 */ EGG::Heap **setTempHeap(EGG::Heap **prevHeap, EGG::Heap *tempNewHeap);
|
||||
/* 802f12f0 */ EGG::Heap **restoreTempHeap(EGG::Heap **prevHeap, s32 size);
|
||||
/* 802f1350 */ EGG::ExpHeap *createHeap(size_t size, EGG::Heap *, char *name);
|
||||
|
||||
+17
-13
@@ -74,10 +74,11 @@ size_t adjustExpHeap(EGG::ExpHeap *heap) {
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
size_t expHeapCost(size_t size, size_t align) {
|
||||
// TODO this generates an andc where it should be a nor + and
|
||||
size_t r5 = align - 1;
|
||||
return size + (~r5 & (r5 + 0x84));
|
||||
size_t expHeapCost(size_t size, s32 align) {
|
||||
int a = align - 1;
|
||||
long b = (0x84 + a);
|
||||
|
||||
return size + (~(a) & b);
|
||||
}
|
||||
|
||||
EGG::FrmHeap *createFrmHeap(size_t size, EGG::Heap *parent, const char *name, size_t align, size_t attrs) {
|
||||
@@ -125,9 +126,11 @@ size_t adjustFrmHeap(EGG::FrmHeap *heap) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t frmHeapCost(size_t size, size_t align) {
|
||||
size_t r5 = align - 1;
|
||||
return size + (~r5 & (r5 + 0x7d));
|
||||
size_t frmHeapCost(size_t size, s32 align) {
|
||||
int a = align - 1;
|
||||
long b = (0x7C + a);
|
||||
|
||||
return size + (~(a) & b);
|
||||
}
|
||||
|
||||
EGG::Heap **setTempHeap(EGG::Heap **prevHeap, EGG::Heap *tempNewHeap) {
|
||||
@@ -182,13 +185,14 @@ inline bool isValidHeapId(u32 id) {
|
||||
return id >= 1 && id <= 2;
|
||||
}
|
||||
|
||||
const char *const s_GameHeapNames[4] = {
|
||||
0,
|
||||
"ゲーム用汎用ヒープ1(mHeap::gameHeaps[1])",
|
||||
"ゲーム用汎用ヒープ2(mHeap::gameHeaps[2])",
|
||||
0,
|
||||
};
|
||||
|
||||
EGG::ExpHeap *createGameHeap(int heapId, size_t size, EGG::Heap *parent) {
|
||||
const char *s_GameHeapNames[4] = {
|
||||
0,
|
||||
"ゲーム用汎用ヒープ1(mHeap::gameHeaps[1])",
|
||||
"ゲーム用汎用ヒープ2(mHeap::gameHeaps[2])",
|
||||
0,
|
||||
};
|
||||
if (!isValidHeapId(heapId)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user