This commit is contained in:
CreateSource 2023-12-28 00:24:08 -05:00
commit 724bf93a8a
7 changed files with 290 additions and 121 deletions

View file

@ -738,6 +738,107 @@ dolphin/demo/DEMOStats.c:
.sbss start:0x801D4488 end:0x801D44E8 .sbss start:0x801D4488 end:0x801D44E8
.sdata2 start:0x801D63D8 end:0x801D63E8 .sdata2 start:0x801D63D8 end:0x801D63E8
dolphin/pad/Padclamp.c:
.text start:0x800C3CDC end:0x800C3F14
.sdata start:0x801D3910 end:0x801D3918
dolphin/pad/Pad.c:
.text start:0x800C3F14 end:0x800C59DC
.bss start:0x801A61B0 end:0x801A6200
.sdata start:0x801D3918 end:0x801D3938
.sbss start:0x801D44E8 end:0x801D4510
dolphin/ai.c:
.text start:0x800C59DC end:0x800C62B8
.sbss start:0x801D4510 end:0x801D4550
dolphin/ar/ar.c:
.text start:0x800C62B8 end:0x800C6F68
.sbss start:0x801D4550 end:0x801D4570
dolphin/ar/arq.c:
.text start:0x800C6F68 end:0x800C72FC
.sbss start:0x801D4570 end:0x801D4598
dolphin/dsp/dsp.c:
.text start:0x800C72FC end:0x800C7508
.data start:0x8013D748 end:0x8013D780
.sbss start:0x801D4598 end:0x801D45A0
dolphin/dsp/dsp_debug.c:
.text start:0x800C7508 end:0x800C7558
dolphin/dsp/dsp_task.c:
.text start:0x800C7558 end:0x800C7DDC
.data start:0x8013D780 end:0x8013D8C0
.sbss start:0x801D45A0 end:0x801D45B8
dolphin/gx/GXInit.c:
.text start:0x800C7DDC end:0x800C8ECC
.bss start:0x801A6200 end:0x801A6778
.sdata start:0x801D3938 end:0x801D3940
.sbss start:0x801D45B8 end:0x801D45C8
.sdata2 start:0x801D63E8 end:0x801D6408
dolphin/gx/GXFifo.c:
.text start:0x800C8ECC end:0x800C96F4
.sbss start:0x801D45C8 end:0x801D45E8
dolphin/gx/GXAttr.c:
.text start:0x800C96F4 end:0x800CA51C
.data start:0x8013D8C0 end:0x8013D9E0
.sdata start:0x801D3940 end:0x801D3950
dolphin/gx/GXMisc.c:
.text start:0x800CA51C end:0x800CAC40
.sbss start:0x801D45E8 end:0x801D4600
dolphin/gx/GXGeometry.c:
.text start:0x800CAC40 end:0x800CB020
dolphin/gx/GXFrameBuf.c:
.text start:0x800CB020 end:0x800CBBD4
.data start:0x8013D9E0 end:0x8013DB10
.sdata2 start:0x801D6408 end:0x801D6410
dolphin/gx/GXLight.c:
.text start:0x800CBBD4 end:0x800CC5C0
.data start:0x8013DB10 end:0x8013DB30
.sdata2 start:0x801D6410 end:0x801D6460
dolphin/gx/GXTexture.c:
.text start:0x800CC5C0 end:0x800CD618
.data start:0x8013DB30 end:0x8013DD58
.sdata start:0x801D3950 end:0x801D3958
.sdata2 start:0x801D6460 end:0x801D6488
dolphin/gx/GXBump.c:
.text start:0x800CD618 end:0x800CDE94
.sdata2 start:0x801D6488 end:0x801D64A0
dolphin/gx/GXTev.c:
.text start:0x800CDE94 end:0x800CE8CC
.data start:0x8013DD58 end:0x8013DD80
dolphin/gx/GXPixel.c:
.text start:0x800CE8CC end:0x800CF014
.data start:0x8013DD80 end:0x8013DDA0
.sdata2 start:0x801D64A0 end:0x801D64D0
dolphin/gx/GXStubs.c:
.text start:0x800CF014 end:0x800CF018
dolphin/gx/GXDisplayList.c:
.text start:0x800CF018 end:0x800CF224
dolphin/gx/GXTransform.c:
.text start:0x800CF224 end:0x800CF9D8
.sdata2 start:0x801D64D0 end:0x801D64F8
dolphin/gx/GXPerf.c:
.text start:0x800CF9D8 end:0x800D09A4
.data start:0x8013DDA0 end:0x8013DEE8
Runtime.PPCEABI.H/global_destructor_chain.c: Runtime.PPCEABI.H/global_destructor_chain.c:
.text start:0x800E2008 end:0x800E2068 .text start:0x800E2008 end:0x800E2068
.dtors start:0x8011DCE8 end:0x8011DCEC .dtors start:0x8011DCE8 end:0x8011DCEC

View file

@ -2571,9 +2571,9 @@ GXCallDisplayList = .text:0x800CF1B4; // type:function size:0x70
GXProject = .text:0x800CF224; // type:function size:0x174 GXProject = .text:0x800CF224; // type:function size:0x174
GXSetProjection = .text:0x800CF398; // type:function size:0xD4 GXSetProjection = .text:0x800CF398; // type:function size:0xD4
GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78 GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78
WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 scope:local
WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 scope:local
WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 scope:local
GXLoadPosMtxImm = .text:0x800CF570; // type:function size:0x3C GXLoadPosMtxImm = .text:0x800CF570; // type:function size:0x3C
GXLoadNrmMtxImm = .text:0x800CF5AC; // type:function size:0x40 GXLoadNrmMtxImm = .text:0x800CF5AC; // type:function size:0x40
GXSetCurrentMtx = .text:0x800CF5EC; // type:function size:0x3C GXSetCurrentMtx = .text:0x800CF5EC; // type:function size:0x3C
@ -5320,13 +5320,13 @@ GXNtsc480IntDf = .data:0x8013D9E0; // type:object size:0x3C
GXNtsc480Prog = .data:0x8013DA1C; // type:object size:0x3C GXNtsc480Prog = .data:0x8013DA1C; // type:object size:0x3C
GXMpal480IntDf = .data:0x8013DA58; // type:object size:0x3C GXMpal480IntDf = .data:0x8013DA58; // type:object size:0x3C
GXPal528IntDf = .data:0x8013DA94; // type:object size:0x3C GXPal528IntDf = .data:0x8013DA94; // type:object size:0x3C
GXEurgb60Hz480IntDf = .data:0x8013DAD0; // type:object size:0x40 GXEurgb60Hz480IntDf = .data:0x8013DAD0; // type:object size:0x3C
jumptable_8013DB10 = .data:0x8013DB10; // type:object size:0x1C scope:local jumptable_8013DB10 = .data:0x8013DB10; // type:object size:0x1C scope:local
jumptable_8013DB30 = .data:0x8013DB30; // type:object size:0xF4 scope:local jumptable_8013DB30 = .data:0x8013DB30; // type:object size:0xF4 scope:local
jumptable_8013DC24 = .data:0x8013DC24; // type:object size:0xF4 scope:local jumptable_8013DC24 = .data:0x8013DC24; // type:object size:0xF4 scope:local
jumptable_8013DD18 = .data:0x8013DD18; // type:object size:0x3C scope:local jumptable_8013DD18 = .data:0x8013DD18; // type:object size:0x3C scope:local
lbl_8013DD58 = .data:0x8013DD58; // type:object size:0x28 c2r$364 = .data:0x8013DD58; // type:object size:0x24 scope:local
lbl_8013DD80 = .data:0x8013DD80; // type:object size:0x20 p2f$194 = .data:0x8013DD80; // type:object size:0x20 scope:local
jumptable_8013DDA0 = .data:0x8013DDA0; // type:object size:0x5C scope:local jumptable_8013DDA0 = .data:0x8013DDA0; // type:object size:0x5C scope:local
jumptable_8013DDFC = .data:0x8013DDFC; // type:object size:0x90 scope:local jumptable_8013DDFC = .data:0x8013DDFC; // type:object size:0x90 scope:local
jumptable_8013DE8C = .data:0x8013DE8C; // type:object size:0x5C scope:local jumptable_8013DE8C = .data:0x8013DE8C; // type:object size:0x5C scope:local
@ -5564,9 +5564,11 @@ regs = .bss:0x801A6048; // type:object size:0x78 scope:local data:2byte
shdwRegs = .bss:0x801A60C0; // type:object size:0x78 scope:local shdwRegs = .bss:0x801A60C0; // type:object size:0x78 scope:local
HorVer = .bss:0x801A6138; // type:object size:0x58 scope:local data:2byte HorVer = .bss:0x801A6138; // type:object size:0x58 scope:local data:2byte
fontTexObj = .bss:0x801A6190; // type:object size:0x20 scope:local fontTexObj = .bss:0x801A6190; // type:object size:0x20 scope:local
lbl_801A61B0 = .bss:0x801A61B0; // type:object size:0x10 Type = .bss:0x801A61B0; // type:object size:0x10 scope:local
lbl_801A61C0 = .bss:0x801A61C0; // type:object size:0x40 Origin = .bss:0x801A61C0; // type:object size:0x1E scope:local
CmdProbeDevice = .bss:0x801A61F0; // type:object size:0x10 scope:local
gxData = .bss:0x801A6200; // type:object size:0x4F8 scope:local gxData = .bss:0x801A6200; // type:object size:0x4F8 scope:local
FifoObj = .bss:0x801A66F8; // type:object size:0x80
lbl_801A6778 = .bss:0x801A6778; // type:object size:0x520 data:4byte lbl_801A6778 = .bss:0x801A6778; // type:object size:0x520 data:4byte
lbl_801A6C98 = .bss:0x801A6C98; // type:object size:0x220 data:4byte lbl_801A6C98 = .bss:0x801A6C98; // type:object size:0x220 data:4byte
lbl_801A6EB8 = .bss:0x801A6EB8; // type:object size:0x20 lbl_801A6EB8 = .bss:0x801A6EB8; // type:object size:0x20
@ -5898,19 +5900,19 @@ autoInvalidation = .sdata:0x801D38F0; // type:object size:0x4 scope:local data:4
@40 = .sdata:0x801D38FC; // type:object size:0x4 scope:local data:string @40 = .sdata:0x801D38FC; // type:object size:0x4 scope:local data:string
@41 = .sdata:0x801D3900; // type:object size:0x3 scope:local data:string @41 = .sdata:0x801D3900; // type:object size:0x3 scope:local data:string
lbl_801D3908 = .sdata:0x801D3908; // type:object size:0x8 data:string lbl_801D3908 = .sdata:0x801D3908; // type:object size:0x8 data:string
lbl_801D3910 = .sdata:0x801D3910; // type:object size:0x8 data:byte ClampRegion = .sdata:0x801D3910; // type:object size:0x8 scope:local data:byte
lbl_801D3918 = .sdata:0x801D3918; // type:object size:0x4 data:4byte ResettingChan = .sdata:0x801D3918; // type:object size:0x4 scope:local data:4byte
lbl_801D391C = .sdata:0x801D391C; // type:object size:0x4 data:4byte XPatchBits = .sdata:0x801D391C; // type:object size:0x4 scope:local data:4byte
lbl_801D3920 = .sdata:0x801D3920; // type:object size:0x4 data:4byte AnalogMode = .sdata:0x801D3920; // type:object size:0x4 scope:local data:4byte
lbl_801D3924 = .sdata:0x801D3924; // type:object size:0x4 data:4byte Spec = .sdata:0x801D3924; // type:object size:0x4 scope:local data:4byte
lbl_801D3928 = .sdata:0x801D3928; // type:object size:0x4 data:4byte MakeStatus = .sdata:0x801D3928; // type:object size:0x4 scope:local data:4byte
lbl_801D392C = .sdata:0x801D392C; // type:object size:0x4 CmdReadOrigin = .sdata:0x801D392C; // type:object size:0x4 scope:local
lbl_801D3930 = .sdata:0x801D3930; // type:object size:0x8 CmdCalibrate = .sdata:0x801D3930; // type:object size:0x4 scope:local
gx = .sdata:0x801D3938; // type:object size:0x4 scope:global data:4byte gx = .sdata:0x801D3938; // type:object size:0x4 scope:global data:4byte
lbl_801D3940 = .sdata:0x801D3940; // type:object size:0x4 tbl1$215 = .sdata:0x801D3940; // type:object size:0x4 scope:local
lbl_801D3944 = .sdata:0x801D3944; // type:object size:0x4 tbl2$216 = .sdata:0x801D3944; // type:object size:0x4 scope:local
lbl_801D3948 = .sdata:0x801D3948; // type:object size:0x8 tbl3$217 = .sdata:0x801D3948; // type:object size:0x4 scope:local
lbl_801D3950 = .sdata:0x801D3950; // type:object size:0x8 GX2HWFiltConv = .sdata:0x801D3950; // type:object size:0x6
lbl_801D3958 = .sdata:0x801D3958; // type:object size:0x8 lbl_801D3958 = .sdata:0x801D3958; // type:object size:0x8
lbl_801D3960 = .sdata:0x801D3960; // type:object size:0x8 lbl_801D3960 = .sdata:0x801D3960; // type:object size:0x8
lbl_801D3968 = .sdata:0x801D3968; // type:object size:0x8 lbl_801D3968 = .sdata:0x801D3968; // type:object size:0x8
@ -6632,71 +6634,66 @@ viReq = .sbss:0x801D44D8; // type:object size:0x4 scope:local data:4byte
peReq = .sbss:0x801D44DC; // type:object size:0x4 scope:local data:4byte peReq = .sbss:0x801D44DC; // type:object size:0x4 scope:local data:4byte
rfReq = .sbss:0x801D44E0; // type:object size:0x4 scope:local data:4byte rfReq = .sbss:0x801D44E0; // type:object size:0x4 scope:local data:4byte
fiReq = .sbss:0x801D44E4; // type:object size:0x4 scope:local data:4byte fiReq = .sbss:0x801D44E4; // type:object size:0x4 scope:local data:4byte
lbl_801D44E8 = .sbss:0x801D44E8; // type:object size:0x4 data:4byte Initialized = .sbss:0x801D44E8; // type:object size:0x4 scope:local data:4byte
lbl_801D44EC = .sbss:0x801D44EC; // type:object size:0x4 data:4byte EnabledBits = .sbss:0x801D44EC; // type:object size:0x4 scope:local data:4byte
lbl_801D44F0 = .sbss:0x801D44F0; // type:object size:0x4 data:4byte ResettingBits = .sbss:0x801D44F0; // type:object size:0x4 scope:local data:4byte
lbl_801D44F4 = .sbss:0x801D44F4; // type:object size:0x4 data:4byte RecalibrateBits = .sbss:0x801D44F4; // type:object size:0x4 scope:local data:4byte
lbl_801D44F8 = .sbss:0x801D44F8; // type:object size:0x4 data:4byte WaitingBits = .sbss:0x801D44F8; // type:object size:0x4 scope:local data:4byte
lbl_801D44FC = .sbss:0x801D44FC; // type:object size:0x4 data:4byte CheckingBits = .sbss:0x801D44FC; // type:object size:0x4 scope:local data:4byte
lbl_801D4500 = .sbss:0x801D4500; // type:object size:0x4 data:4byte PendingBits = .sbss:0x801D4500; // type:object size:0x4 scope:local data:4byte
lbl_801D4504 = .sbss:0x801D4504; // type:object size:0x4 data:4byte SamplingCallback = .sbss:0x801D4504; // type:object size:0x4 scope:local data:4byte
lbl_801D4508 = .sbss:0x801D4508; // type:object size:0x4 data:4byte recalibrated$397 = .sbss:0x801D4508; // type:object size:0x4 scope:local data:4byte
__PADSpec = .sbss:0x801D450C; // type:object size:0x4 scope:global data:4byte __PADSpec = .sbss:0x801D450C; // type:object size:0x4 scope:global data:4byte
lbl_801D4510 = .sbss:0x801D4510; // type:object size:0x4 data:4byte __AIS_Callback = .sbss:0x801D4510; // type:object size:0x4 scope:local data:4byte
lbl_801D4514 = .sbss:0x801D4514; // type:object size:0x4 data:4byte __AID_Callback = .sbss:0x801D4514; // type:object size:0x4 scope:local data:4byte
lbl_801D4518 = .sbss:0x801D4518; // type:object size:0x4 data:4byte __CallbackStack = .sbss:0x801D4518; // type:object size:0x4 scope:local data:4byte
lbl_801D451C = .sbss:0x801D451C; // type:object size:0x4 data:4byte __OldStack = .sbss:0x801D451C; // type:object size:0x4 scope:local data:4byte
lbl_801D4520 = .sbss:0x801D4520; // type:object size:0x8 data:4byte __AI_init_flag = .sbss:0x801D4520; // type:object size:0x4 scope:local data:4byte
lbl_801D4528 = .sbss:0x801D4528; // type:object size:0x4 data:4byte bound_32KHz = .sbss:0x801D4528; // type:object size:0x8 scope:local align:8 data:4byte
lbl_801D452C = .sbss:0x801D452C; // type:object size:0x4 data:4byte bound_48KHz = .sbss:0x801D4530; // type:object size:0x8 scope:local align:8 data:4byte
lbl_801D4530 = .sbss:0x801D4530; // type:object size:0x4 data:4byte min_wait = .sbss:0x801D4538; // type:object size:0x8 scope:local align:8 data:4byte
lbl_801D4534 = .sbss:0x801D4534; // type:object size:0x4 data:4byte max_wait = .sbss:0x801D4540; // type:object size:0x8 scope:local align:8 data:4byte
lbl_801D4538 = .sbss:0x801D4538; // type:object size:0x4 data:4byte buffer = .sbss:0x801D4548; // type:object size:0x8 scope:local align:8 data:4byte
lbl_801D453C = .sbss:0x801D453C; // type:object size:0x4 data:4byte __AR_Callback = .sbss:0x801D4550; // type:object size:0x4 scope:local data:4byte
lbl_801D4540 = .sbss:0x801D4540; // type:object size:0x4 data:4byte __AR_Size = .sbss:0x801D4554; // type:object size:0x4 scope:local data:4byte
lbl_801D4544 = .sbss:0x801D4544; // type:object size:0x4 data:4byte __AR_InternalSize = .sbss:0x801D4558; // type:object size:0x4 scope:local data:4byte
lbl_801D4548 = .sbss:0x801D4548; // type:object size:0x4 data:4byte __AR_ExpansionSize = .sbss:0x801D455C; // type:object size:0x4 scope:local data:4byte
lbl_801D454C = .sbss:0x801D454C; // type:object size:0x4 data:4byte __AR_StackPointer = .sbss:0x801D4560; // type:object size:0x4 scope:local data:4byte
lbl_801D4550 = .sbss:0x801D4550; // type:object size:0x4 data:4byte __AR_FreeBlocks = .sbss:0x801D4564; // type:object size:0x4 scope:local data:4byte
lbl_801D4554 = .sbss:0x801D4554; // type:object size:0x4 data:4byte __AR_BlockLength = .sbss:0x801D4568; // type:object size:0x4 scope:local data:4byte
lbl_801D4558 = .sbss:0x801D4558; // type:object size:0x4 data:4byte __AR_init_flag = .sbss:0x801D456C; // type:object size:0x4 scope:local data:4byte
lbl_801D455C = .sbss:0x801D455C; // type:object size:0x4 data:4byte __ARQRequestQueueHi = .sbss:0x801D4570; // type:object size:0x4 scope:local data:4byte
lbl_801D4560 = .sbss:0x801D4560; // type:object size:0x4 data:4byte __ARQRequestTailHi = .sbss:0x801D4574; // type:object size:0x4 scope:local data:4byte
lbl_801D4564 = .sbss:0x801D4564; // type:object size:0x4 data:4byte __ARQRequestQueueLo = .sbss:0x801D4578; // type:object size:0x4 scope:local data:4byte
lbl_801D4568 = .sbss:0x801D4568; // type:object size:0x4 data:4byte __ARQRequestTailLo = .sbss:0x801D457C; // type:object size:0x4 scope:local data:4byte
lbl_801D456C = .sbss:0x801D456C; // type:object size:0x4 data:4byte __ARQRequestPendingHi = .sbss:0x801D4580; // type:object size:0x4 scope:local data:4byte
lbl_801D4570 = .sbss:0x801D4570; // type:object size:0x4 data:4byte __ARQRequestPendingLo = .sbss:0x801D4584; // type:object size:0x4 scope:local data:4byte
lbl_801D4574 = .sbss:0x801D4574; // type:object size:0x4 data:4byte __ARQCallbackHi = .sbss:0x801D4588; // type:object size:0x4 scope:local data:4byte
lbl_801D4578 = .sbss:0x801D4578; // type:object size:0x4 data:4byte __ARQCallbackLo = .sbss:0x801D458C; // type:object size:0x4 scope:local data:4byte
lbl_801D457C = .sbss:0x801D457C; // type:object size:0x4 data:4byte __ARQChunkSize = .sbss:0x801D4590; // type:object size:0x4 scope:local data:4byte
lbl_801D4580 = .sbss:0x801D4580; // type:object size:0x4 data:4byte __ARQ_init_flag = .sbss:0x801D4594; // type:object size:0x4 scope:local data:4byte
lbl_801D4584 = .sbss:0x801D4584; // type:object size:0x4 data:4byte __DSP_init_flag = .sbss:0x801D4598; // type:object size:0x8 scope:local data:4byte
lbl_801D4588 = .sbss:0x801D4588; // type:object size:0x4 data:4byte __DSP_rude_task_pending = .sbss:0x801D45A0; // type:object size:0x4 data:4byte
lbl_801D458C = .sbss:0x801D458C; // type:object size:0x4 data:4byte __DSP_rude_task = .sbss:0x801D45A4; // type:object size:0x4 data:4byte
lbl_801D4590 = .sbss:0x801D4590; // type:object size:0x4 data:4byte __DSP_tmp_task = .sbss:0x801D45A8; // type:object size:0x4 data:4byte
lbl_801D4594 = .sbss:0x801D4594; // type:object size:0x4 data:4byte __DSP_last_task = .sbss:0x801D45AC; // type:object size:0x4 data:4byte
lbl_801D4598 = .sbss:0x801D4598; // type:object size:0x8 data:4byte __DSP_first_task = .sbss:0x801D45B0; // type:object size:0x4 data:4byte
lbl_801D45A0 = .sbss:0x801D45A0; // type:object size:0x4 data:4byte __DSP_curr_task = .sbss:0x801D45B4; // type:object size:0x4 data:4byte
lbl_801D45A4 = .sbss:0x801D45A4; // type:object size:0x4 data:4byte
lbl_801D45A8 = .sbss:0x801D45A8; // type:object size:0x4 data:4byte
lbl_801D45AC = .sbss:0x801D45AC; // type:object size:0x4 data:4byte
lbl_801D45B0 = .sbss:0x801D45B0; // type:object size:0x4 data:4byte
lbl_801D45B4 = .sbss:0x801D45B4; // type:object size:0x4 data:4byte
__piReg = .sbss:0x801D45B8; // type:object size:0x4 scope:global data:4byte __piReg = .sbss:0x801D45B8; // type:object size:0x4 scope:global data:4byte
__cpReg = .sbss:0x801D45BC; // type:object size:0x4 scope:global data:4byte __cpReg = .sbss:0x801D45BC; // type:object size:0x4 scope:global data:4byte
__peReg = .sbss:0x801D45C0; // type:object size:0x4 scope:global data:4byte __peReg = .sbss:0x801D45C0; // type:object size:0x4 scope:global data:4byte
__memReg = .sbss:0x801D45C4; // type:object size:0x4 scope:global data:4byte __memReg = .sbss:0x801D45C4; // type:object size:0x4 scope:global data:4byte
lbl_801D45C8 = .sbss:0x801D45C8; // type:object size:0x4 data:4byte CPUFifo = .sbss:0x801D45C8; // type:object size:0x4 scope:local data:4byte
lbl_801D45CC = .sbss:0x801D45CC; // type:object size:0x4 data:4byte GPFifo = .sbss:0x801D45CC; // type:object size:0x4 scope:local data:4byte
lbl_801D45D0 = .sbss:0x801D45D0; // type:object size:0x4 data:4byte __GXCurrentThread = .sbss:0x801D45D0; // type:object size:0x4 scope:local data:4byte
lbl_801D45D4 = .sbss:0x801D45D4; // type:object size:0x1 data:byte CPGPLinked = .sbss:0x801D45D4; // type:object size:0x1 scope:local data:byte
lbl_801D45D8 = .sbss:0x801D45D8; // type:object size:0x4 data:4byte GXOverflowSuspendInProgress = .sbss:0x801D45D8; // type:object size:0x4 scope:local data:4byte
lbl_801D45DC = .sbss:0x801D45DC; // type:object size:0x4 data:4byte BreakPointCB = .sbss:0x801D45DC; // type:object size:0x4 scope:local data:4byte
lbl_801D45E0 = .sbss:0x801D45E0; // type:object size:0x8 data:4byte __GXOverflowCount = .sbss:0x801D45E0; // type:object size:0x4 scope:local data:4byte
lbl_801D45E8 = .sbss:0x801D45E8; // type:object size:0x4 data:4byte TokenCB = .sbss:0x801D45E8; // type:object size:0x4 scope:local data:4byte
lbl_801D45EC = .sbss:0x801D45EC; // type:object size:0x4 data:4byte DrawDoneCB = .sbss:0x801D45EC; // type:object size:0x4 scope:local data:4byte
lbl_801D45F0 = .sbss:0x801D45F0; // type:object size:0x1 data:byte DrawDone = .sbss:0x801D45F0; // type:object size:0x1 scope:local data:byte
lbl_801D45F4 = .sbss:0x801D45F4; // type:object size:0xC FinishQueue = .sbss:0x801D45F4; // type:object size:0x8 scope:local
lbl_801D4600 = .sbss:0x801D4600; // type:object size:0x8 data:4byte lbl_801D4600 = .sbss:0x801D4600; // type:object size:0x8 data:4byte
lbl_801D4608 = .sbss:0x801D4608; // type:object size:0x4 data:4byte lbl_801D4608 = .sbss:0x801D4608; // type:object size:0x4 data:4byte
lbl_801D460C = .sbss:0x801D460C; // type:object size:0x4 data:4byte lbl_801D460C = .sbss:0x801D460C; // type:object size:0x4 data:4byte

View file

@ -388,6 +388,54 @@ config.libs = [
Object(NonMatching, "dolphin/demo/DEMOStats.c"), Object(NonMatching, "dolphin/demo/DEMOStats.c"),
], ],
), ),
DolphinLib(
"pad",
[
Object(NonMatching, "dolphin/pad/Padclamp.c"),
Object(NonMatching, "dolphin/pad/Pad.c"),
],
),
DolphinLib(
"ai",
[
Object(NonMatching, "dolphin/ai.c"),
],
),
DolphinLib(
"ar",
[
Object(NonMatching, "dolphin/ar/ar.c"),
Object(NonMatching, "dolphin/ar/arq.c"),
],
),
DolphinLib(
"dsp",
[
Object(NonMatching, "dolphin/dsp/dsp.c"),
Object(NonMatching, "dolphin/dsp/dsp_debug.c"),
Object(NonMatching, "dolphin/dsp/dsp_task.c"),
],
),
DolphinLib(
"gx",
[
Object(NonMatching, "dolphin/gx/GXInit.c"),
Object(NonMatching, "dolphin/gx/GXFifo.c"),
Object(NonMatching, "dolphin/gx/GXAttr.c"),
Object(NonMatching, "dolphin/gx/GXMisc.c"),
Object(NonMatching, "dolphin/gx/GXGeometry.c"),
Object(NonMatching, "dolphin/gx/GXFrameBuf.c"),
Object(NonMatching, "dolphin/gx/GXLight.c"),
Object(NonMatching, "dolphin/gx/GXTexture.c"),
Object(NonMatching, "dolphin/gx/GXBump.c"),
Object(NonMatching, "dolphin/gx/GXTev.c"),
Object(NonMatching, "dolphin/gx/GXPixel.c"),
Object(NonMatching, "dolphin/gx/GXStubs.c"),
Object(NonMatching, "dolphin/gx/GXDisplayList.c"),
Object(NonMatching, "dolphin/gx/GXTransform.c"),
Object(NonMatching, "dolphin/gx/GXPerf.c"),
],
),
{ {
"lib": "Runtime.PPCEABI.H", "lib": "Runtime.PPCEABI.H",
"mw_version": config.linker_version, "mw_version": config.linker_version,

View file

@ -8,9 +8,13 @@ extern "C" {
#endif #endif
typedef void (*GXDrawDoneCallback)(void); typedef void (*GXDrawDoneCallback)(void);
typedef void (*GXDrawSyncCallback)(u16 token);
GXFifoObj* GXInit(void* base, u32 size); GXFifoObj* GXInit(void* base, u32 size);
GXDrawDoneCallback GXSetDrawDoneCallback(GXDrawDoneCallback cb); GXDrawDoneCallback GXSetDrawDoneCallback(GXDrawDoneCallback cb);
void GXSetDrawSync(u16 token);
GXDrawSyncCallback GXSetDrawSyncCallback(GXDrawSyncCallback callback);
void GXDrawDone(void); void GXDrawDone(void);
void GXSetDrawDone(void); void GXSetDrawDone(void);
void GXFlush(void); void GXFlush(void);

View file

@ -2,12 +2,31 @@
#define _DOLPHIN_GXPERF #define _DOLPHIN_GXPERF
#include <dolphin/types.h> #include <dolphin/types.h>
#include <dolphin/gx/GXEnum.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void GXReadXfRasMetric(u32* xf_wait_in, u32* xf_wait_out, u32* ras_busy, u32* clocks); extern void GXSetGPMetric(GXPerf0 perf0, GXPerf1 perf1);
extern void GXClearGPMetric();
extern void GXReadXfRasMetric(u32* xfWaitIn, u32* xfWaitOut, u32* rasBusy, u32* clocks);
// Unused/inlined in P2.
extern void GXReadGPMetric(u32* count0, u32* count1);
extern u32 GXReadGP0Metric();
extern u32 GXReadGP1Metric();
extern void GXReadMemMetric(u32* cpReq, u32* tcReq, u32* cpuReadReq, u32* cpuWriteReq, u32* dspReq, u32* ioReq, u32* viReq, u32* peReq,
u32* rfReq, u32* fiReq);
extern void GXClearMemMetric();
extern void GXReadPixMetric(u32* topIn, u32* topOut, u32* bottomIn, u32* bottomOut, u32* clearIn, u32* copyClocks);
extern void GXClearPixMetric();
extern void GXSetVCacheMetric(GXVCachePerf attr);
extern void GXReadVCacheMetric(u32* check, u32* miss, u32* stall);
extern void GXClearVCacheMetric();
extern void GXInitXfRasMetric();
extern u32 GXReadClksPerVtx();
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -90,6 +90,23 @@ typedef struct OSCalendarTime {
OSTime OSCalendarTimeToTicks(OSCalendarTime* td); OSTime OSCalendarTimeToTicks(OSCalendarTime* td);
void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* td); void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* td);
typedef struct OSStopwatch {
char* name;
OSTime total;
u32 hits;
OSTime min;
OSTime max;
OSTime last;
BOOL running;
} OSStopwatch;
void OSInitStopwatch(OSStopwatch* sw, char* name);
void OSStartStopwatch(OSStopwatch* sw);
void OSStopStopwatch(OSStopwatch* sw);
OSTime OSCheckStopwatch(OSStopwatch* sw);
void OSResetStopwatch(OSStopwatch* sw);
void OSDumpStopwatch(OSStopwatch* sw);
#define OS_CONSOLE_MASK 0xf0000000 #define OS_CONSOLE_MASK 0xf0000000
#define OS_CONSOLE_RETAIL 0x00000000 #define OS_CONSOLE_RETAIL 0x00000000
#define OS_CONSOLE_DEVELOPMENT 0x10000000 #define OS_CONSOLE_DEVELOPMENT 0x10000000

View file

@ -8,54 +8,37 @@ typedef struct {
/* 0x04 */ char unk04[4]; /* 0x04 */ char unk04[4];
/* 0x08 */ s64 unk08; /* 0x08 */ s64 unk08;
/* 0x10 */ s64 unk10; /* 0x10 */ s64 unk10;
/* 0x18 */ s32 unk18; /* 0x18 */ OSStopwatch unk18;
/* 0x1C */ char unk1C[0x34];
/* 0x50 */ s16 unk50; /* 0x50 */ s16 unk50;
/* 0x52 */ char unk52[6]; /* 0x52 */ char unk52[6];
} UnknownPerfStruct; // Size 0x58 } UnknownPerfStruct; // Size 0x58
static void DSCallbackFunc(u16 arg0); static void DSCallbackFunc(u16 arg0);
void OSInitStopwatch(void*, char*); static OSStopwatch Ssw;
void OSStartStopwatch(void*);
u64 OSCheckStopwatch(void*);
void OSResetStopwatch(void*);
void OSStopStopwatch(void*);
void GXSetDrawSync(s32);
void GXSetDrawSyncCallback(void*);
void GXReadGPMetric(s32*, s32*);
void GXReadMemMetric(s32*, s32*, s32*, s32*, s32*, s32*, s32*, s32*, s32*, s32*);
void GXReadPixMetric(s32*, s32*, s32*, s32*, s32*, s32*);
void GXReadVCacheMetric(s32*, s32*, s32*);
void GXClearGPMetric(void);
void GXClearMemMetric(void);
void GXClearPixMetric(void);
void GXClearVCacheMetric(void);
static u8 Ssw[56];
static UnknownPerfStruct perf[10]; static UnknownPerfStruct perf[10];
static s32 met0; static u32 met0;
static s32 met1; static u32 met1;
static s32 vcheck; static u32 vcheck;
static s32 vmiss; static u32 vmiss;
static s32 vstall; static u32 vstall;
static s32 cp_req; static u32 cp_req;
static s32 tc_req; static u32 tc_req;
static s32 cpu_rd_req; static u32 cpu_rd_req;
static s32 cpu_wr_req; static u32 cpu_wr_req;
static s32 dsp_req; static u32 dsp_req;
static s32 io_req; static u32 io_req;
static s32 vi_req; static u32 vi_req;
static s32 pe_req; static u32 pe_req;
static s32 rf_req; static u32 rf_req;
static s32 fi_req; static u32 fi_req;
static s32 top_pixels_in; static u32 top_pixels_in;
static s32 top_pixels_out; static u32 top_pixels_out;
static s32 bot_pixels_in; static u32 bot_pixels_in;
static s32 bot_pixels_out; static u32 bot_pixels_out;
static s32 clr_pixels_in; static u32 clr_pixels_in;
static s32 total_copy_clks; static u32 total_copy_clks;
static s16 tokenEndF; static s16 tokenEndF;
static u8 metf; static u8 metf;