From 29a6304716b5a0aea3998dbe3397b97f464d8224 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 11 Oct 2020 15:24:19 +1000 Subject: [PATCH] Convert unknown1 segment to C and rename to textureconfig --- Makefile | 9 +- checksums.jap-final.md5 | 1 + checksums.ntsc-1.0.md5 | 1 + checksums.ntsc-beta.md5 | 1 + checksums.ntsc-final.md5 | 1 + checksums.pal-beta.md5 | 1 + checksums.pal-final.md5 | 1 + ld/pd.ld | 8 +- src/game/game_16e810.c | 4 +- src/textureconfig/textureconfig.c | 275 ++++++++++++++++++++++++++++++ tools/extract | 56 +++--- 11 files changed, 318 insertions(+), 40 deletions(-) create mode 100644 src/textureconfig/textureconfig.c diff --git a/Makefile b/Makefile index ae8c8aa92..c7c81eb8a 100644 --- a/Makefile +++ b/Makefile @@ -68,7 +68,7 @@ CFLAGS := -DVERSION=$(VERSION) \ -I src/include \ -mips2 -C_FILES := $(shell find src/boot src/lib src/game src/inflate src/gvars src/mpconfigs src/mpstrings/$(ROMID) src/firingrange src/filenames -name '*.c') +C_FILES := $(shell find src/boot src/lib src/game src/inflate src/gvars src/mpconfigs src/mpstrings/$(ROMID) src/firingrange src/filenames src/textureconfig -name '*.c') O_FILES := $(patsubst src/%.c, $(B_DIR)/%.o, $(C_FILES)) ASSET_AUDIO_FILES := Arecep01M Arecep02M Arecep03M Arecep04M Arecep05M Arecep06M Arlguard1M Arltech01M Arltech02M Arltech03M Arltech04M Arltech05M Arltech06M Ascie2aM Ascie2bM Ascie2cM Ascie2dM Ascie2eM Ascie2fM Ascie2gM Ascie3aM Ascie3bM Ascie3cM Ascie3dM Ascie3eM Ascie3gM Ascien10aM Ascien2_aM Ascien3_aM Ascien4_aM Ascien5_aM Ascien6_aM Ascien7_aM Ascien9_aM AvilgrimM Awepgd01M Awepgd02M Awepgd03M Awepsc01M Awepsc02M Awepsc03M Aa51elv01M Aa51elv02M Aa51elv03M Aa51grd01M Aa51grd02M Aa51grd03M Aa51grd04M Aa51grd05M Aa51grd06M Aa51grd07M Aa51grd08M Aa51grd09M Aa51grd10M Aa51jo1M Aa51jo2M Aa51jo3M Aa51jo4M Aa51jo5M Aa51jo6M Aa51jon01M Aa51jon02M Aa51jon03M Aa51jon04M Aa51jon05M Aa51jon06M Aa51jon07M Aa51jon08M Aa51jon09M Aa51jon10M Aa51jon11M Aa51jon12M Aa51jon14M Aa51jon15M Aa51sci1M Aaf1jo01M Aaf1jo02M Aaf1jo03M Aaf1pr01M Aaf1pr02M Aaf1pr03M Aaf1pr04M Aaf1pr05M Aaf1pr06M Aaf1pr07M Aaf1pr08M Aaf1pr09M Aaf1pr10M Aaf1tr01M Aaf1tr02M Aaf1tr03M Aairbgd01M Aairbgd02M Aairbgd03M Aairbgd04M Aairbgd05M Aairbgd06M Aairbgd07M Aairbgd08M Aairbgd09M Aairbgd10M Aairbgd11M Aairbgd12M Aairbgd13M Aairbgd14M Aairbgd15M Aairbgd16M Aairstw01M Aairstw02M Aairstw03M Aassael01M Aassael02M Aassael03M Aassael04M Aassael05M Aassael06M Absewrk01M Absewrk02M Absewrk03M Absewrk04M Absewrk05M Acetael01M Achdroid1M Achdroid2M Acsec01M Acsec02M Acsec03M Acstan1M Acstan2M Adevr01M Adevr02M Adevr03M Adevr04M Adevr05M Adevr06M Adevr07M Adevr08M Adevr09M Adevr10M Adevr11M Adevr12M Aexec01M Aexec02M Aexec04M Aexec05M Aexec06M Aexec07M Aexec08M Aexec09M Aexec10M Aexec11M Aexec12M Aexec13M Aexec14M Ahelic01M Ahelic02M Ahelic03M Ahologd01M AholohopkM Ainvcar01M Ainvcar02M Ainvcar03M Ainvcar04M Ainvcar05M Ainvcar06M Ainvcar07M Ainvcar08M Ainvcar09M Ainvcar10M Ainvcar11M Ainvcar12M AinvfarrM AinvfemaM AinvfostM AinvgrimM AinvhopkM AinvmaleM Ajoexec01M Ajoexec02M Ajosci01M Ajosci02M Ajosci03M Alabacc1M Alabacc2M Alabacc3M Alabacc4M Alabacc5M Alabacc6M Alabtech1M Alabtech2M Alabtech3M Alabtech5M Alabtech6M Alabtech7M Alabtech8M Alabtech9M Aoffwrk01M Aoffwrk02M Aoffwrk03M Aoffwrk04M Am1_l1_aM Am1_l1_bM Am1_l1_cM Am1_l1_dM Am1_l2_aM Am1_l2_bM Am1_l2_cM Am1_l2_dM Am1_l3_aM Am1_l3_bM Am1_l3_cM Am1_l3_dM Am2_l1_aM Am2_l1_bM Am2_l1_cM Am2_l1_dM Am3_l1_aM Am3_l1_bM Am3_l1_cM Am3_l1_dM Am3_l2_aM Am3_l2_bM Am3_l2_cM Am3_l2_dM Am4_l1_aM Am4_l1_bM Am4_l1_cM Am4_l1_dM Am4_l2_aM Am4_l2_bM Am4_l2_cM Am4_l2_dM Am4_l3_aM Am4_l3_bM Am4_l3_cM Am4_l3_dM Am5_l1_aM Am5_l1_bM Am5_l1_cM Am5_l1_dM Am5_l2_aM Am5_l2_bM Am5_l2_cM Am5_l2_dM Am5_l3_aM Am5_l3_bM Am5_l3_cM Am5_l3_dM Am6_l1_aM Am6_l1_bM Am6_l1_cM Am6_l1_dM Am6_l2_aM Am6_l2_bM Am6_l2_cM Am6_l2_dM Am7_l1_aM Am7_l1_bM Am7_l1_cM Am7_l1_dM Am8_l1_aM Am8_l1_bM Am8_l1_cM Am8_l1_dM Am9_l1_aM Am9_l1_bM Am9_l1_cM Am9_l1_dM Ap1_01_joM Ap1_02_caM Ap1_03_joM Ap1_04_caM Ap1_05_joM Ap1_06_caM Ap1_07_joM Ap1_08_caM Ap2_01_joM Ap2_02_joM Ap2_03_drM Ap2_04_joM Ap2_05_joM Ap2_06_drM Ap2_07_drM Ap3_01_gdM Ap3_02_joM Ap3_03_joM Ap4_01_dvM Ap4_02_joM Ap4_03_dvM Ap4_04_joM Ap4_05_dvM Ap4_06_joM Ap4_07_blM Ap4_08_dvM Ap4_09_dvM Ap5_01_joM Ap5_02_joM Ap5_03_joM Ap6_01_joM Ap6_02_caM Ap6_03_joM Ap6_04_caM Ap6_05_joM Ap6_06_caM Ap7_01_caM Ap7_02_joM Ap7_03_caM Ap7_04_joM Ap8_01_dvM Ap8_02_blM Ap8_03_dvM Ap8_04_blM Ap8_06_blM Ap8_07_trM Ap8_08_dvM Ap8_09_trM Ap8_10_blM Ap9_01_joM Ap9_02_caM Ap9_03_joM Ap10_01_caM Ap10_02_caM Ap10_03_caM Ap10_04_caM Ap10_05_joM Ap10_06_caM Ap10_07_joM Ap10_08_caM Ap10_09_joM Ap11_01_jnM Ap11_02_joM Ap11_03_jnM Ap11_04_joM Ap11_05_jnM Ap11_06_joM Ap11_07_jnM Ap11_08_joM Ap12_01_jnM Ap12_02_joM Ap12_03_jnM Ap12_04_joM Ap12_05_jnM Ap12_06_joM Ap12_07_jnM Ap12_08_joM Ap12_09_jnM Ap12_10_joM Ap13_01_joM Ap13_02_suM Ap13_03_joM Ap13_04_suM Ap13_06_suM Ap14_03_suM Ap14_04_joM Ap14_05_suM Ap14_07_joM Ap15_01_elM Ap15_02_elM Ap15_03_joM Ap15_04_jnM Ap15_05_elM Ap15_06_joM Ap15_07_elM Ap15_08_joM Ap15_09_elM Ap15_10_joM Ap15_11_elM Ap16_01_joM Ap16_02_caM Ap16_04_caM Ap16_05_joM Ap16_06_caM Ap17_01_trM Ap17_02_prM Ap17_03_trM Ap17_04_prM Ap17_05_trM Ap17_06_trM Ap18_01_joM Ap18_02_elM Ap18_03_elM Ap18_04_joM Ap18_05_elM Ap19_01_caM Ap19_02_caM Ap19_03_joM Ap19_04_caM Ap19_05_joM Ap19_06_joM Ap20_01_joM Ap20_02_prM Ap20_03_joM Ap20_04_prM Ap20_05_joM Ap20_06_blM Ap20_07_trM Ap20_08_trM Ap21_01_elM Ap21_02_joM Ap21_03_elM Ap21_04_joM Ap22_01_elM Ap22_02_joM Ap22_03_elM Ap22_04_joM Ap23_01_joM Ap23_02_drM Ap23_03_joM Ap23_04_drM Ap23_05_joM Ap23_06_drM Ap23_07_joM Ap23_08_drM Ap24_01_caM Ap24_02_joM Ap24_03_caM Ap24_04_joM Ap24_05_caM Ap24_06_caM Ap24_07_joM Ap24_08_joM Ap25_01_joM Ap25_02_joM Ap26_01_joM Ap26_02_dvM Ap26_03_joM Ap26_04_dvM Ap26_05_dvM Ap26_06_joM Ap26_07_dvM Ap26_08_dvM Ap27_01_joM Ap27_02_elM Ap27_03_elM Ap27_04_joM Ap27_05_joM Ap27_06_elM Ap28_01_elM Ap28_02_joM Ap28_03_elM Ap28_04_joM Ap28_05_elM Ap28_06_joM Ap29_01_elM Ap29_02_joM Ap29_03_elM Ap29_04_joM Ap29_05_joM Ap29_06_elM Ap29_07_joM Ap29_08_elM Ap29_09_joM Ap29_10_elM Apelelv01M Apelgrd01M Ap29_11_joM Am3l2carrM Aelvcet01M Aelvcet02M Ajorep01M Ajorep02M Ajorep03M Ajorep04M Ajorpld01M Ajorpld02M Ajorpld03M Ajorpld04M Atrjo01M Atrgrim01M Atrgrim02M Atrcarr06M Atrcarr07M Atrcarr08M Atrcarr01M Atrcarr02M Atrcarr03M Atrcarr04M Atrcarr05M Atrcarr12M Abnblde01M Abncass01M Apelelv02M Avault2M Ap29_12_elM Ap14_09_joM Ap19_07_joM Ap19_08_joM Acicarr06M Acicarr11M Acifarr08M Acifarr12M Acifema01M Acifema04M Acifema07M Acifema08M Acifema09M Acifema14M Acifost08M Acifost12M Acigrim05M Acigrim06M Acigrim07M Acigrim08M Acigrim09M Acigrim10M Acihopk09M Acihopk11M Acimale02M Acimale03M Acimale07M Acimale09M Acimale11M Acimale13M Aciroge08M Aciroge12M Atrfost01M Atrfost02M Atrfost03M Atrcarr09M Atrcarr10M Atrcarr11M Acifarr01M Acifarr02M Acifarr03M Acigrim01M Acigrim03M Acigrim04M Acihopk01M Acihopk04M Acihopk06M Aciroge01M Aciroge02M Atrroge01M Acicarr07M Acicarr08M Ajoinst01M Ajoinst02M Ajoinst03M Ajoinst04M Ap25_03_joM Ap29_13_joM Ap29_14_joM Acicarr09M Acicarr10M Ap29_15_joM Ap16_03_joM Acarrbye02M Asaucerexp1M @@ -136,7 +136,6 @@ SEGMENT_O_FILES := \ $(B_DIR)/sfx.tbl.o \ $(B_DIR)/sequences.o \ $(B_DIR)/textures.o \ - $(B_DIR)/unknown1.o \ $(B_DIR)/unknown2.o default: rom @@ -193,7 +192,8 @@ SEGMENT_FILES := \ $(B_DIR)/segments/mpstringsG.bin \ $(B_DIR)/segments/mpstringsF.bin \ $(B_DIR)/segments/mpstringsS.bin \ - $(B_DIR)/segments/mpstringsI.bin + $(B_DIR)/segments/mpstringsI.bin \ + $(B_DIR)/segments/textureconfig.bin test: $(SEGMENT_FILES) $(ASSET_FILES) @md5sum --quiet -c checksums.$(ROMID).md5 @@ -231,9 +231,6 @@ $(B_DIR)/sequences.o: $(E_DIR)/segments/sequences.bin $(B_DIR)/textures.o: $(E_DIR)/segments/textures.bin TOOLCHAIN=$(TOOLCHAIN) ROMID=$(ROMID) tools/mkrawobject $< $@ -$(B_DIR)/unknown1.o: $(E_DIR)/segments/unknown1.bin - TOOLCHAIN=$(TOOLCHAIN) ROMID=$(ROMID) tools/mkrawobject $< $@ - $(B_DIR)/unknown2.o: $(E_DIR)/segments/unknown2.bin TOOLCHAIN=$(TOOLCHAIN) ROMID=$(ROMID) tools/mkrawobject $< $@ diff --git a/checksums.jap-final.md5 b/checksums.jap-final.md5 index 30578ece6..084c1aa38 100644 --- a/checksums.jap-final.md5 +++ b/checksums.jap-final.md5 @@ -2028,3 +2028,4 @@ c47d9377956666bc0e77d6cba3dc68fb build/jap-final/segments/mpconfigs.bin b60f7439adaf8b1e150ab54b590da411 build/jap-final/segments/mpstringsJ.bin 529b54a03375af2ff74eb3367cbac294 build/jap-final/segments/mpstringsP.bin 9e9ad9fdc9b6a3c249a370760fa23b26 build/jap-final/segments/mpstringsS.bin +09fdd15fcbdcdecb096d3818c9f83026 build/jap-final/segments/textureconfig.bin diff --git a/checksums.ntsc-1.0.md5 b/checksums.ntsc-1.0.md5 index 5e9eca862..0e20b2777 100644 --- a/checksums.ntsc-1.0.md5 +++ b/checksums.ntsc-1.0.md5 @@ -2026,3 +2026,4 @@ e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-1.0/segments/mpstringsI.bin 302f7aa0464c781187551fcd3870aec2 build/ntsc-1.0/segments/mpstringsJ.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-1.0/segments/mpstringsP.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-1.0/segments/mpstringsS.bin +09fdd15fcbdcdecb096d3818c9f83026 build/ntsc-1.0/segments/textureconfig.bin diff --git a/checksums.ntsc-beta.md5 b/checksums.ntsc-beta.md5 index a941640ab..c9b73606f 100644 --- a/checksums.ntsc-beta.md5 +++ b/checksums.ntsc-beta.md5 @@ -2025,3 +2025,4 @@ e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-beta/segments/mpstringsI.bin 302f7aa0464c781187551fcd3870aec2 build/ntsc-beta/segments/mpstringsJ.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-beta/segments/mpstringsP.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-beta/segments/mpstringsS.bin +09fdd15fcbdcdecb096d3818c9f83026 build/ntsc-beta/segments/textureconfig.bin diff --git a/checksums.ntsc-final.md5 b/checksums.ntsc-final.md5 index b0ffe66eb..52fc617d6 100644 --- a/checksums.ntsc-final.md5 +++ b/checksums.ntsc-final.md5 @@ -2026,3 +2026,4 @@ e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-final/segments/mpstringsF.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-final/segments/mpstringsG.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-final/segments/mpstringsI.bin e4f45399a4f97e3fd6733f0f6919d28d build/ntsc-final/segments/mpstringsS.bin +09fdd15fcbdcdecb096d3818c9f83026 build/ntsc-final/segments/textureconfig.bin diff --git a/checksums.pal-beta.md5 b/checksums.pal-beta.md5 index 923056751..77c906ad5 100644 --- a/checksums.pal-beta.md5 +++ b/checksums.pal-beta.md5 @@ -2026,3 +2026,4 @@ fed3dc54a3564f477fb7d548ac365514 build/pal-beta/segments/mpstringsI.bin 302f7aa0464c781187551fcd3870aec2 build/pal-beta/segments/mpstringsJ.bin 529b54a03375af2ff74eb3367cbac294 build/pal-beta/segments/mpstringsP.bin d9501d67ead982fdd5cb5ffaf3091201 build/pal-beta/segments/mpstringsS.bin +09fdd15fcbdcdecb096d3818c9f83026 build/pal-beta/segments/textureconfig.bin diff --git a/checksums.pal-final.md5 b/checksums.pal-final.md5 index 868b2abcd..79d9758a2 100644 --- a/checksums.pal-final.md5 +++ b/checksums.pal-final.md5 @@ -2026,3 +2026,4 @@ b83973db626573e024608444e5d74461 build/pal-final/segments/lib.bin 302f7aa0464c781187551fcd3870aec2 build/pal-final/segments/mpstringsJ.bin 529b54a03375af2ff74eb3367cbac294 build/pal-final/segments/mpstringsP.bin 9e9ad9fdc9b6a3c249a370760fa23b26 build/pal-final/segments/mpstringsS.bin +09fdd15fcbdcdecb096d3818c9f83026 build/pal-final/segments/textureconfig.bin diff --git a/ld/pd.ld b/ld/pd.ld index 80cbd3084..f39293365 100644 --- a/ld/pd.ld +++ b/ld/pd.ld @@ -328,18 +328,18 @@ SECTIONS END_SEG(firingrange) /*************************************************************************** - * unknown1 + * textureconfig * ------------------------------------------------------------------------- * ROM range: 0x007eb270 - 0x007ebdc0 * RAM range: N/A * ------------------------------------------------------------------------- */ - BEGIN_SEG(unknown1) + BEGIN_SEG(textureconfig) { - build/ROMID/unknown1.o (.data); + build/ROMID/textureconfig/textureconfig.o (.data); } - END_SEG(unknown1) + END_SEG(textureconfig) /*************************************************************************** * unknown2 diff --git a/src/game/game_16e810.c b/src/game/game_16e810.c index 39da7dbcc..4a2966b71 100644 --- a/src/game/game_16e810.c +++ b/src/game/game_16e810.c @@ -5804,9 +5804,9 @@ glabel func0f1735c0 /* f1735f0: 24050004 */ addiu $a1,$zero,0x4 /* f1735f4: 3c03800b */ lui $v1,%hi(var800ab554) /* f1735f8: 2463b554 */ addiu $v1,$v1,%lo(var800ab554) -/* f1735fc: 3c05007f */ lui $a1,%hi(_unknown1SegmentRomStart) +/* f1735fc: 3c05007f */ lui $a1,%hi(_textureconfigSegmentRomStart) /* f173600: ac620000 */ sw $v0,0x0($v1) -/* f173604: 24a5b270 */ addiu $a1,$a1,%lo(_unknown1SegmentRomStart) +/* f173604: 24a5b270 */ addiu $a1,$a1,%lo(_textureconfigSegmentRomStart) /* f173608: 00402025 */ or $a0,$v0,$zero /* f17360c: 0c003504 */ jal func0000d410 /* f173610: 02203025 */ or $a2,$s1,$zero diff --git a/src/textureconfig/textureconfig.c b/src/textureconfig/textureconfig.c new file mode 100644 index 000000000..aa0004fb4 --- /dev/null +++ b/src/textureconfig/textureconfig.c @@ -0,0 +1,275 @@ +#include + +Gfx gdl000[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2), + gsDPSetTextureLOD(G_TL_TILE), + gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), + gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON), + gsDPSetTextureLUT(G_TT_NONE), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, 0xabcd002a), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1567, 0), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 7, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 6, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 6, G_TX_NOLOD), + gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x00dc, 0x00dc), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +Gfx gdl070[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_2CYCLE), + gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2), + gsDPSetTextureLOD(G_TL_TILE), + gsDPSetCombineMode(G_CC_INTERFERENCE, G_CC_MODULATEIA2), + gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON), + gsDPSetTextureLUT(G_TT_NONE), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0188, 5, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 7, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 6, G_TX_NOLOD), + gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x00dc, 0x00dc), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0x0188, 1, 0, G_TX_NOMIRROR | G_TX_CLAMP, 4, 2, G_TX_NOMIRROR | G_TX_CLAMP, 4, 2), + gsDPSetTileSize(1, 0, 0, 0x00dc, 0x00dc), + gsSPEndDisplayList(), +}; + +Gfx gdl0d8[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsDPSetTextureLOD(G_TL_TILE), + gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), + gsSPTexture(0xffff, 0xffff, 0, G_TX_RENDERTILE, G_ON), + gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, 0xabcd0002), + gsDPLoadSync(), + gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 511, 0), + gsDPPipeSync(), + gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_8b, 4, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD), + gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007c, 0x007c), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +u32 g_ExplosionTextureNums[] = { + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, +}; + +struct textureconfig { + u32 texturenum; + u8 width; + u8 height; + u8 level; + u8 format; + u8 depth; + u8 s; + u8 t; +}; + +struct textureconfig g_TextureConfigs[] = { + { 0x0003, 48, 48, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c27, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0da5, 64, 48, 5, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0003, 48, 48, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0003, 48, 48, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0003, 48, 48, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0004, 32, 32, 5, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0005, 54, 54, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c28, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0854, 48, 48, 5, G_IM_FMT_IA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0855, 48, 48, 5, G_IM_FMT_IA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0856, 48, 48, 5, G_IM_FMT_IA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x08f0, 24, 24, 5, G_IM_FMT_IA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b53, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b53, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b53, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0d74, 32, 24, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0d72, 32, 24, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0006, 16, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0007, 16, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0008, 16, 32, 1, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0859, 16, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x085a, 16, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0009, 16, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x000a, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x000b, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c31, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x000c, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x000d, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c32, 32, 1, 5, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x000e, 54, 54, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x000f, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c33, 128, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c34, 128, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c35, 128, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c36, 128, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c37, 128, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c38, 128, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c39, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c3a, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c3b, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0010, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c3c, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c3d, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c3e, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c3f, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c40, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c41, 16, 16, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c42, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c43, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c45, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c46, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c47, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c48, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c49, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c4a, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c4b, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c4c, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c4d, 64, 64, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c4e, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0011, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0012, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c4f, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c50, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c51, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c52, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c53, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c54, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c55, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c56, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c57, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c58, 32, 32, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c59, 32, 32, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c5a, 32, 32, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c5b, 32, 32, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c5c, 128, 48, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_CLAMP }, + { 0x0c5d, 16, 16, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c5e, 16, 16, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c5f, 16, 16, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c60, 54, 54, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c61, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c62, 32, 32, 5, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c63, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c64, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c65, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c66, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c67, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c68, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c69, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c6c, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c6d, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c6a, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c6b, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c6e, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c6f, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c70, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c71, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c72, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c73, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c74, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c75, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c76, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c77, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c78, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c79, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c7a, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c7b, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c7c, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c7d, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c7e, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c7f, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c80, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c81, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c82, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c83, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c84, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c85, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c86, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c87, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c88, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c89, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c8a, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c8b, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c8c, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c8d, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c8e, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c8f, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0013, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c90, 64, 64, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0014, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0001, 32, 28, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP }, + { 0x0001, 32, 28, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP }, + { 0x0001, 122, 18, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0001, 15, 15, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0001, 20, 20, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c91, 16, 16, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c92, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0015, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0016, 64, 64, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0c93, 16, 16, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0c94, 32, 128, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_WRAP }, + { 0x0017, 16, 16, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0018, 64, 64, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0c95, 32, 32, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0019, 64, 64, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0c96, 64, 64, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x001a, 8, 16, 5, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x001b, 16, 16, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0001, 1, 1, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c97, 16, 16, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x001c, 2, 8, 1, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x001d, 8, 8, 1, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x001c, 2, 8, 1, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x01e5, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c98, 8, 8, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c99, 2, 16, 1, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP }, + { 0x0385, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x063b, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c9a, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x063c, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0385, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0617, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0618, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0619, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x061a, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x061b, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x061c, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x061d, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x061e, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x061f, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0620, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0621, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0622, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0623, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0624, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0625, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0626, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b4f, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b52, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b50, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0b51, 56, 36, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0858, 14, 14, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x084e, 11, 11, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x08f4, 14, 14, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x060a, 32, 32, 5, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c9b, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0112, 64, 64, 5, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c9c, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c9d, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0c9e, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0c9f, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0ca0, 64, 64, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x0ca1, 64, 64, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0ca2, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0a9a, 64, 24, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0ca3, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_MIRROR, G_TX_MIRROR }, + { 0x0b99, 32, 48, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0caf, 32, 32, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP }, + { 0x0da0, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0da1, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0da2, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0da3, 32, 32, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, + { 0x0da4, 4, 4, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP }, + { 0x003c, 64, 64, 1, G_IM_FMT_IA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP }, +}; diff --git a/tools/extract b/tools/extract index 991bd614f..fbb5104e3 100755 --- a/tools/extract +++ b/tools/extract @@ -33,7 +33,7 @@ class Extractor: self.extract_mpstrings() self.extract_rspboot() self.extract_textures() - self.extract_unknown1() + self.extract_textureconfig() self.extract_unknown2() def extract_accessingpak(self): @@ -248,12 +248,12 @@ class Extractor: tablepos += 8 self.write('segments/textures.bin', self.rom[base:tablepos]) - def extract_unknown1(self): - addr = self.val('unknown1') - self.write('segments/unknown1.bin', self.rom[addr:addr+0xb50]) + def extract_textureconfig(self): + addr = self.val('textureconfig') + self.write('segments/textureconfig.bin', self.rom[addr:addr+0xb50]) def extract_unknown2(self): - addr = self.val('unknown1') + 0xb50 + addr = self.val('textureconfig') + 0xb50 self.write('segments/unknown2.bin', self.rom[addr:addr+0x65d0]) # @@ -288,29 +288,29 @@ class Extractor: return self.vals[name][index] vals = { - # ntsc-beta ntsc-1.0 ntsc-final pal-beta pal-final jap-final - 'game': [0x43c40, 0x4fc40, 0x4fc40, 0x4fc40, 0x4fc40, 0x4fc40, ], - 'garbage1': [0x0, 0x2ea22, 0x2ea6c, 0x0, 0x0, 0x0, ], - 'files': [0x29160, 0x28080, 0x28080, 0x29b90, 0x28910, 0x28800, ], - 'data': [0x30850, 0x39850, 0x39850, 0x39850, 0x39850, 0x39850, ], - 'animations': [0x155dc0, 0x1a15c0, 0x1a15c0, 0x18cdc0, 0x18cdc0, 0x190c50, ], - 'garbage2': [0x0, 0x1574a0, 0x157800, 0x0, 0x0, 0x0, ], - 'mpconfigs': [0x785130, 0x7d0a40, 0x7d0a40, 0x7bc240, 0x7bc240, 0x7c00d0, ], - 'firingrange': [0x79e410, 0x7e9d20, 0x7e9d20, 0x7d5520, 0x7d5520, 0x7d93b0, ], - 'unknown1': [0x79f960, 0x7eb270, 0x7eb270, 0x7d6a70, 0x7d6a70, 0x7da900, ], - 'font0': [0x7f2390, 0x7f2390, 0x7f2390, 0x7ddb90, 0x7ddb90, 0x7e1a20, ], - 'font1': [0x7f4930, 0x7f4930, 0x7f4930, 0x7e0130, 0x7e0130, 0x7e3fc0, ], - 'font2': [0x7f7860, 0x7f7860, 0x7f7860, 0x7e3060, 0x7e3060, 0x7e6ef0, ], - 'font3': [0x7f8b20, 0x7f8b20, 0x7f8b20, 0x7e4320, 0x7e4320, 0x7e81b0, ], - 'font4': [0x7f9d30, 0x7f9d30, 0x7f9d30, 0x7e5530, 0x7e5530, 0x7e93b0, ], - 'font5': [0x7fbfb0, 0x7fbfb0, 0x7fbfb0, 0x7e87b0, 0x7e87b0, 0x7ec640, ], - 'font6': [0x7fdd80, 0x7fdd80, 0x7fdd80, 0x7eae20, 0x7eae20, 0x7eecb0, ], - 'font7': [0x8008e0, 0x8008e0, 0x8008e0, 0x7eee70, 0x7eee70, 0x7f2d00, ], - 'font8': [0x803da0, 0x803da0, 0x803da0, 0x7f2330, 0x7f2330, 0x7f61c0, ], - 'font9': [0x806ac0, 0x806ac0, 0x806ac0, 0x7f5050, 0x7f5050, 0x7f8ee0, ], - 'sfxctl': [0x7be940, 0x80a250, 0x80a250, 0x7f87e0, 0x7f87e0, 0x7fc670, ], - 'textures': [0x1d12fe0, 0x1d65f40, 0x1d65f40, 0x1d5bb50, 0x1d5ca20, 0x1d61f90, ], - 'copyright': [0x1fabac0, 0x1ffea20, 0x1ffea20, 0x1ff4630, 0x1ff5500, 0x1ffd6b0, ], + # ntsc-beta ntsc-1.0 ntsc-final pal-beta pal-final jap-final + 'game': [0x43c40, 0x4fc40, 0x4fc40, 0x4fc40, 0x4fc40, 0x4fc40, ], + 'garbage1': [0x0, 0x2ea22, 0x2ea6c, 0x0, 0x0, 0x0, ], + 'files': [0x29160, 0x28080, 0x28080, 0x29b90, 0x28910, 0x28800, ], + 'data': [0x30850, 0x39850, 0x39850, 0x39850, 0x39850, 0x39850, ], + 'animations': [0x155dc0, 0x1a15c0, 0x1a15c0, 0x18cdc0, 0x18cdc0, 0x190c50, ], + 'garbage2': [0x0, 0x1574a0, 0x157800, 0x0, 0x0, 0x0, ], + 'mpconfigs': [0x785130, 0x7d0a40, 0x7d0a40, 0x7bc240, 0x7bc240, 0x7c00d0, ], + 'firingrange': [0x79e410, 0x7e9d20, 0x7e9d20, 0x7d5520, 0x7d5520, 0x7d93b0, ], + 'textureconfig': [0x79f960, 0x7eb270, 0x7eb270, 0x7d6a70, 0x7d6a70, 0x7da900, ], + 'font0': [0x7f2390, 0x7f2390, 0x7f2390, 0x7ddb90, 0x7ddb90, 0x7e1a20, ], + 'font1': [0x7f4930, 0x7f4930, 0x7f4930, 0x7e0130, 0x7e0130, 0x7e3fc0, ], + 'font2': [0x7f7860, 0x7f7860, 0x7f7860, 0x7e3060, 0x7e3060, 0x7e6ef0, ], + 'font3': [0x7f8b20, 0x7f8b20, 0x7f8b20, 0x7e4320, 0x7e4320, 0x7e81b0, ], + 'font4': [0x7f9d30, 0x7f9d30, 0x7f9d30, 0x7e5530, 0x7e5530, 0x7e93b0, ], + 'font5': [0x7fbfb0, 0x7fbfb0, 0x7fbfb0, 0x7e87b0, 0x7e87b0, 0x7ec640, ], + 'font6': [0x7fdd80, 0x7fdd80, 0x7fdd80, 0x7eae20, 0x7eae20, 0x7eecb0, ], + 'font7': [0x8008e0, 0x8008e0, 0x8008e0, 0x7eee70, 0x7eee70, 0x7f2d00, ], + 'font8': [0x803da0, 0x803da0, 0x803da0, 0x7f2330, 0x7f2330, 0x7f61c0, ], + 'font9': [0x806ac0, 0x806ac0, 0x806ac0, 0x7f5050, 0x7f5050, 0x7f8ee0, ], + 'sfxctl': [0x7be940, 0x80a250, 0x80a250, 0x7f87e0, 0x7f87e0, 0x7fc670, ], + 'textures': [0x1d12fe0, 0x1d65f40, 0x1d65f40, 0x1d5bb50, 0x1d5ca20, 0x1d61f90, ], + 'copyright': [0x1fabac0, 0x1ffea20, 0x1ffea20, 0x1ff4630, 0x1ff5500, 0x1ffd6b0, ], } extractor = Extractor()