Display lists and adress locations for MarioKart64 This might help load linked address C0_LLADDR $17 /* load linked address */ 0x17 command goes like this: 17 Copy uncompressed data from ROM to a RAM segment [4]: RAM segment to copy data to [5,6,7,8]: Start address in ROM of uncompressed data [9,10,11,12]: End address in ROM of uncompressed data Add the offset in the segment, you found and add the start address in ROM to it. ... this doesnt seem to help at all... Midi MML Spec sequence address = 0xBC5F60 Displaylist Calls (RAM Address Segment:Offset) ----------------------------------------- |RSP Command Headers: | |06 00 = G_DL_PUSH = gsSPDisplayList() | |06 01 = G_DL_NOPUSH = gsSPBranchList() | ----------------------------------------- I cant seem to find a way to find ROM addresses. Segment addressing is done at compile-time and is not done by the developer. Example of Source usage: gsSPDisplayList(DrawGreenTeapot); To find ROM storage addresses for Display Lists will require monitoring of where the segment addressed get their data from. I do not have this ability. ROM : Command OEB400: gsSPDisplayList(00:00301F) 128520: ... Large list of calls now moved to bottom of doc... These are all ... 132328: gsSPDisplayList(0D:006940) 132348: gsSPDisplayList(0D:006940) 132368: gsSPDisplayList(0D:006940) 132388: gsSPDisplayList(0D:006940) 1323A8: gsSPDisplayList(0D:006940) 1323C8: gsSPDisplayList(0D:006940) 1323E8: gsSPDisplayList(0D:006940) 132408: gsSPDisplayList(0D:006940) 132428: gsSPDisplayList(0D:006940) 132448: gsSPDisplayList(0D:006940) 132468: gsSPDisplayList(0D:006940) 132488: gsSPDisplayList(0D:006940) 1324A8: gsSPDisplayList(0D:006940) 1324C8: gsSPDisplayList(0D:006940) 1324E8: gsSPDisplayList(0D:006940) 132508: gsSPDisplayList(0D:006940) 132508: gsSPDisplayList(0D:006940) 132528: gsSPDisplayList(0D:006940) 132548: gsSPDisplayList(0D:006940) 132568: gsSPDisplayList(0D:006940) 132588: gsSPDisplayList(0D:006940) 1325A8: gsSPDisplayList(0D:006940) 1325C8: gsSPDisplayList(0D:006940) 1325E8: gsSPDisplayList(0D:006940) 132608: gsSPDisplayList(0D:006940) the same pointers... 132A98: gsSPDisplayList(06:0093F8) 225568: gsSPDisplayList(F0:00F012) 2A9628: gsSPDisplayList(F0:00F012) 4A5508: gsSPDisplayList(00:000000) 6A8860: gsSPDisplayList(00:000000) 6AB858: gsSPDisplayList(00:000000) 6CB228: gsSPDisplayList(7A:000000) 6E0D78: gsSPDisplayList(00:000000) 6EF9B8: gsSPDisplayList(00:000000) 7EF778: gsSPDisplayList(4D:494F30) 800B80: gsSPDisplayList(06:0C0208) 8300B0: gsSPDisplayList(07:009290) 835BD0: gsSPDisplayList(C6:183300) 841520: gsSPDisplayList(07:000548) 84AD08: gsSPDisplayList(1A:C0D603) 84E918: gsSPDisplayList(08:000000) 885960: gsSPDisplayList(07:000708) 88CF60: gsSPDisplayList(06:0001D0) 88D1C0: gsSPDisplayList(06:000150) 88D510: gsSPDisplayList(06:000230) 88DF10: gsSPDisplayList(06:000360) 88E3B0: gsSPDisplayList(06:000328) //new block of data 88EA10: gsSPDisplayList(0D:005398) 88EA18: gsSPDisplayList(06:019518) gsSPClearGeometryMode() 88EA28: gsSPDisplayList(0D:0053B0) 88EA30: gsSPDisplayList(06:019020) gsSPSetGeometryMode() gsSPEndDisplayList() 88EA48: gsSPDisplayList(0D:005398) 88EA50: gsSPDisplayList(06:01A068) gsSPClearGeometryMode() 88EA60: gsSPDisplayList(0D:0053B0) 88EA68: gsSPDisplayList(06:019DF0) gsSPSetGeometryMode() gsSPEndDisplayList() 88EA80: gsSPDisplayList(0D:0053C8) 88EA88: gsSPDisplayList(06:01A5F8) ... 88ECC8: gsSPEndDisplayList() // Last End DList command in ROM 88EE70: gsSPDisplayList(06:000258) 88F060: gsSPDisplayList(06:000158) 88F450: gsSPDisplayList(06:000158) VERTEX LIST LOAD ======== Loads vertices from RAM (Segment:Offset) ----------------------------------------- |RSP Command Headers: | |04 = G_VTX = gsSPVertex() | ----------------------------------------- Example usage: gsSPVertex(myTriangle,3,0); Loads 3 Vertexes from address myTriangle starting from index 0. DisplayList Commands ========== ROM HEX Command 1220A0: E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 0F 0A 40 00 SetRenderMode(RM_OPA_SURF(1) | RM_OPA_SURF(2)) BA 00 14 02 00 30 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_FILL)) F7 00 00 00 00 00 00 00 gsDPSetFillColor(0,0,0,0) // FF 00 00 00 Test setting red buffer to see if it works // ... didnt work... nothing is red... F6 4F C3 BC 00 00 00 00 gsDPFillRectangle(0,0,319,239) //FillRect format: x10.2, y10.2, pad8 x10.2, y10.2 //0100111111 00 = 319 //0011101111 00 = 239 //00000000 //0000000000 00 = 0 //0000000000 00 = 0 E7 00 00 00 00 00 00 00 gsDPPipeSync() BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) B8 00 00 00 00 00 00 00 gsSPEndDisplayList() //This DList clears the FrameBuffer ... or not? 132130: Gfx Spinning_Nintendo_Logo_setup_dl[] = { //Derived Gfx Array Name from Conventions Nintendo use in SDK //This does not actually Draw the Logo. It sets up the RSP/RDP to do so in another dlist E7 00 00 00 00 00 00 00 gsDPPipeSync() //Wait for pipe to finish previous task BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) B9 00 03 1D 00 55 20 48 SetRenderMode((RM_AA_OPA_SURF(1) | RM_AA_OPA_SURF(2)) //Anti-Ailised colour render. No ZBuffer. B6 00 00 00 00 02 02 05 gsSPClearGeometryMode(ZBuffer, Shade, lighting, smooth) //Dissables Zbuffer and vertex shading BA 00 13 01 00 00 00 00 GsetothermodeH(gsDPSetTexturePersp(G_TP_NONE)) //Texture must face screen BB 00 00 01 FF FF FF FF gsSPTexture(ON, 1, 1) //Enable Texture with No special UV Scaling. FA 00 00 00 FF FF FF FF gsDPSetPrimColor(255,255,255,255) FC FF FF FF FF FC F8 7C gsDPSetCombineMode(G_CC_DECALRGB) //Texture Colour Only BA 00 0C 02 00 00 20 00 GsetothermodeH(gsDPSetTextureFilter(G_TF_BILERP)) //Bi-Linear filter texture //10 00 Test setting point sample to see what changes // IT WORKS! Ive Identified that this is the spinning Nintendo logo B9 00 00 02 00 00 00 00 SetAlphaCompare(None) BA 00 0E 02 00 00 00 00 GsetothermodeH(gsDPSetTextureLUT(G_TT_NONE)) //16/32bit texture expected B8 00 00 00 00 00 00 00 gsSPEndDisplayList() } E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 55 20 78 SetRenderMode((c0) | (c1)) FC FF FF FF FF FC F8 7C gsDPSetCombineMode() BA 00 13 01 00 08 00 00 GsetothermodeH(gsDPSetTexturePersp(G_TP_PERSP)) B7 00 00 00 00 00 00 01 gsSPSetGeometryMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B6 00 00 00 00 00 02 04 gsSPClearGeometryMode() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC FF FF FF FF FC F2 79 gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 0F 0A 40 00 SetRenderMode((c0) | (c1)) FC FF FF FF FF FC F2 79 gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC FF FF FF FF FC F2 79 gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC 11 FE 23 FF FF F7 FB gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC 11 96 23 FF 2F FF FF gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC 12 FE 25 FF FF F3 F9 gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() BB 00 00 01 80 00 80 00 gsSPTexture() B7 00 00 00 00 00 02 04 gsSPSetGeometryMode() B6 00 00 00 00 02 00 00 gsSPClearGeometryMode() BA 00 13 01 00 08 00 00 GsetothermodeH() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() BB 00 00 00 80 00 80 00 gsSPTexture() BA 00 13 01 00 00 00 00 GsetothermodeH() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC FF 99 FF FF 32 7F 3F gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC FF 97 FF FF 2E 7F 3F gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7B D8 gsSPVertex(02:007BD8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7B F8 gsSPVertex(02:007BF8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7C 18 gsSPVertex(02:007C18, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7C 38 gsSPVertex(02:007C38, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7C 58 gsSPVertex(02:007C58, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7C 78 gsSPVertex(02:007C78, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7C 98 gsSPVertex(02:007C98, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7B B8 gsSPVertex(02:007BB8, 31, 0) 04 04 08 1F 02 00 7C B8 gsSPVertex(02:007CB8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7C F8 gsSPVertex(02:007CF8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D 18 gsSPVertex(02:007D18, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D 38 gsSPVertex(02:007D38, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D 58 gsSPVertex(02:007D58, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D 78 gsSPVertex(02:007D78, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D 98 gsSPVertex(02:007D98, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D B8 gsSPVertex(02:007DB8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7C D8 gsSPVertex(02:007CD8, 31, 0) 04 04 08 1F 02 00 7D D8 gsSPVertex(02:007DD8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E 18 gsSPVertex(02:007E18, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E 38 gsSPVertex(02:007E38, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E 58 gsSPVertex(02:007E58, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E 78 gsSPVertex(02:007E78, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E 98 gsSPVertex(02:007E98, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E B8 gsSPVertex(02:007EB8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E D8 gsSPVertex(02:007ED8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 04 00 08 1F 02 00 7D F8 gsSPVertex(02:007CF8, 31, 0) 04 04 08 1F 02 00 7E F8 gsSPVertex(02:007EF8, 31, 4) 06 00 00 00 0D 00 69 40 gsSPDisplayList() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 1329f8: E7 00 00 00 00 00 00 00 gsDPPipeSync() BA 00 13 01 00 00 00 00 GsetothermodeH() BA 00 0E 02 00 00 00 00 GsetothermodeH() BA 00 0C 02 00 00 20 00 GsetothermodeH() B9 00 03 1D 0F 0A 40 00 SetRenderMode((c0) | (c1)) B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() BA 00 13 01 00 08 00 00 GsetothermodeH() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() BA 00 14 02 00 30 00 00 GsetothermodeH() B9 00 03 1D 0F 0A 40 00 SetRenderMode((c0) | (c1)) B6 00 00 00 00 02 20 01 gsSPClearGeometryMode() F7 00 00 00 00 01 00 01 gsDPSetFillColor() F6 4F C3 BC 00 00 00 00 gsDPFillRectangle() B7 00 00 00 00 02 20 01 gsSPSetGeometryMode() B9 00 03 1D 00 55 20 78 SetRenderMode((c0) | (c1)) BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) FC FF FF FF FF FE 79 3C gsDPSetCombineMode() B7 00 00 00 00 02 22 04 gsSPSetGeometryMode() E7 00 00 00 00 00 00 00 gsDPPipeSync() 06 00 00 00 06 00 93 F8 B8 00 00 00 00 00 00 00 gsSPEndDisplayList() BA 00 13 01 00 08 00 00 GsetothermodeH() E7 00 00 00 00 00 00 00 gsDPPipeSync() B7 00 00 00 00 02 20 01 gsSPSetGeometryMode() B9 00 03 1D 00 55 20 78 SetRenderMode((c0) | (c1)) BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) FC FF FF FF FF FE 79 3C gsDPSetCombineMode() B7 00 00 00 00 02 22 04 gsSPSetGeometryMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) B9 00 03 1D 00 50 42 40 SetRenderMode((c0) | (c1)) FC FF FF FF FF FD F6 FB gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() BA 00 14 02 00 30 00 00 GsetothermodeH() B9 00 03 1D 0F 0A 40 00 SetRenderMode((c0) | (c1)) FC FF FF FF FF FC F2 79 gsDPSetCombineMode() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() E7 00 00 00 00 00 00 00 gsDPPipeSync() BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) B8 00 00 00 00 00 00 00 gsSPEndDisplayList() 132B50: Found the text MIO0, so its confirmed to be compressed. This is actually a texture library containing position textures and other onscreen Sprites (1st, 2nd place, Bananas etc) Images are 32x64x16 (4096KB) That means that each texture completly fills TMEM so no mip-mapping! Proof of 16bit is that the Bananas are the correct colours throughout. http://fgfc.ddns.net/PerfectGold/MarioKart_Textures.jpg Kart Sprites are also 32x64. Since the colours dont look right, They may not be 16bit. ***** UPDATE: Regarding Karts... I think they may be 64x64x8. 4Bit looks way off. 145470: Kart_Sprite_Toad_180_CI_8Bit http://fgfc.ddns.net/PerfectGold/Kart_8bit.bmp My reasoning is that the tyres are usually black ingame yet have a high number assigned to them (D0). If the karts were Colour Indexed then this high number could be black while 0 is transparent. Either way, the karts are still 4096KB and so completly fill TMEM stopping the use of Mip-Mapping. Having tinkered arounf now for a few hours I think I can safly say they are 8bit CI Sprites using an off-file Colour Pallet. Also... with the revelation that the karts are 64x64 already... there go my texture updates out the window. I suppose I could try for 64x128x4... 7120D0: gsSPEndDisplayList() //Possible end of compressed section? Large list Display List 128520: Lumping all this together as it seems to be one list [128510 : // possible Matrix Calculation 01 02 03 04 05 06 07 00 //Invalid matrix code] BA 00 14 02 00 00 00 00 GsetothermodeH(gsDPSetCycleType(G_CYC_1CYCLE)) BA 00 17 01 00 80 00 00 GsetothermodeH() BA 00 10 01 00 00 00 00 GsetothermodeH() BA 00 0E 02 00 00 00 00 GsetothermodeH() BA 00 11 02 00 00 00 00 GsetothermodeH() BA 00 13 01 00 08 00 00 GsetothermodeH() BA 00 0C 02 00 00 20 00 GsetothermodeH() BA 00 09 03 00 00 0C 00 GsetothermodeH() BA 00 08 01 00 00 00 00 GsetothermodeH() B9 00 00 02 00 00 00 00 SetAlphaCompare(None) BA 00 06 02 00 00 00 C0 GsetothermodeH() BA 00 06 02 00 00 00 00 GsetothermodeH() B9 00 03 1D 0F 0A 40 00 SetRenderMode((c0) | (c1)) FC FF FF FF FF FE 79 3C gsDPSetCombineMode() B6 00 00 00 00 1F 30 00 gsSPClearGeometryMode() B7 00 00 00 00 00 02 04 gsSPSetGeometryMode() BB 00 00 00 00 00 00 00 gsSPTexture() B8 00 00 00 00 00 00 00 gsSPEndDisplayList() FC 12 18 24 FF 33 FF FF gsDPSetCombineMode() B9 00 03 1D 00 55 20 78 SetRenderMode((c0) | (c1)) BB 00 00 01 FF FF FF FF gsSPTexture() 06 00 00 00 gsSPDisplayList(07:0067E8) 06 00 00 00 gsSPDisplayList(07:00AEF8) 06 00 00 00 gsSPDisplayList(07:001438) 06 00 00 00 gsSPDisplayList(07:00A970) 06 00 00 00 gsSPDisplayList(07:000CE0) 06 00 00 00 gsSPDisplayList(07:000E88) 06 00 00 00 gsSPDisplayList(07:00A618) 06 00 00 00 gsSPDisplayList(07:00AC30) 06 00 00 00 gsSPDisplayList(07:003728) 06 00 00 00 gsSPDisplayList(07:0036B8) 06 00 00 00 gsSPDisplayList(07:003628) 06 00 00 00 gsSPDisplayList(07:003540) 06 00 00 00 gsSPDisplayList(07:003DC0) 06 00 00 00 gsSPDisplayList(07:003E50) 06 00 00 00 gsSPDisplayList(07:003F18) 06 00 00 00 gsSPDisplayList(07:0050B0) 06 00 00 00 gsSPDisplayList(07:005138) 06 00 00 00 gsSPDisplayList(07:0055D0) 06 00 00 00 gsSPDisplayList(07:005B50) 06 00 00 00 gsSPDisplayList(07:005C00) 06 00 00 00 gsSPDisplayList(07:005D18) 06 00 00 00 gsSPDisplayList(07:005DC8) 06 00 00 00 gsSPDisplayList(07:005EF8) 06 00 00 00 gsSPDisplayList(07:005740) 06 00 00 00 gsSPDisplayList(07:0057F0) 06 00 00 00 gsSPDisplayList(07:0058E8) 06 00 00 00 gsSPDisplayList(07:001788) 06 00 00 00 gsSPDisplayList(07:001AA0) 06 00 00 00 gsSPDisplayList(07:001A30) 06 00 00 00 gsSPDisplayList(07:0023F8) 06 00 00 00 gsSPDisplayList(07:002478) 06 00 00 00 gsSPDisplayList(07:003790) FC 12 7E 24 FF FF F3 F9 gsDPSetCombineMode() B9 00 03 1D 00 55 30 78 SetRenderMode((c0) | (c1)) 06 00 00 00 gsSPDisplayList(07:0006D0) 06 00 00 00 gsSPDisplayList(07:0004D0) 06 00 00 00 gsSPDisplayList(07:000840) B8 00 00 00 00 00 00 00 gsSPEndDisplayList()