Load unit SHP & SEQ data to RAM

From Final Fantasy Hacktics Wiki
Revision as of 13:05, 3 April 2023 by Talcall (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

00088130: 27bdffe8 addiu r29,r29,0xffe8
00088134: afb00010 sw r16,0x0010(r29)
00088138: 3c10800a lui r16,0x800a
0008813c: 26108d78 addiu r16,r16,0x8d78			load func. index (0 - load file, 1 - nulled, 2 - copy file to ram, 3 - finalise and restart)
00088140: afbf0014 sw r31,0x0014(r29)
00088144: 8e030000 lw r3,0x0000(r16)				
00088148: 34020001 ori r2,r0,0x0001
0008814c: 106200e7 beq r3,r2,0x000884ec			Branch if 98d78 = 1 (nulled load phase?)
00088150: 28620002 slti r2,r3,0x0002
00088154: 10400005 beq r2,r0,0x0008816c			Branch if >= 2
00088158: 00000000 nop
0008815c: 1060000a beq r3,r0,0x00088188			Branch if = 0 (loading file)
00088160: 00000000 nop
00088164: 080221fb j 0x000887ec
00088168: 00000000 nop
0008816c: 34020002 ori r2,r0,0x0002
00088170: 106200e7 beq r3,r2,0x00088510			Branch if = 2 (Copying file?)
00088174: 34020003 ori r2,r0,0x0003
00088178: 10620154 beq r3,r2,0x000886cc			Branch if = 3 (set 0?)
0008817c: 00000000 nop
00088180: 080221fb j 0x000887ec
00088184: 00000000 nop

Loading file?

00088188: 3c03800a lui r3,0x800a
0008818c: 8c638d74 lw r3,-0x728c(r3)			load file type index?
00088190: 00000000 nop
00088194: 2c620008 sltiu r2,r3,0x0008
00088198: 10400194 beq r2,r0,0x000887ec		branch if less than 8?
0008819c: 00031080 sll r2,r3,0x02
000881a0: 3c018007 lui r1,0x8007
000881a4: 00220821 addu r1,r1,r2
000881a8: 8c2281a8 lw r2,-0x7e58(r1)			load return addresses based on file type index to be loaded?
000881ac: 00000000 nop
000881b0: 00400008 jr r2
000881b4: 00000000 nop

		Return list:
		0: 800881b8 (SHP)
		1: 80088220 (SEQ)
		2: 80088288 (WEP SHP)
		3: 800882f0 (WEP SEQ)
		4: 80088358 (EFF SHP)
		5: 800883c0 (EFF SEQ)
		6: 80088448 (WEP SPR)
		7: 80088488 (OTHER SPR)

Load SHP:

000881b8: 3c10800a lui r16,0x800a
000881bc: 26108d7c addiu r16,r16,0x8d7c
000881c0: 8e020000 lw r2,0x0000(r16)			Load unique spritesheet No.
000881c4: 00000000 nop
000881c8: 000210c0 sll r2,r2,0x03
000881cc: 3c018009 lui r1,0x8009
000881d0: 00220821 addu r1,r1,r2
000881d4: 8c244c50 lw r4,0x4c50(r1)			Load SHP size
000881d8: 0c011105 jal 0x00044414			Dedicate RAM
000881dc: 00000000 nop
000881e0: 00403021 addu r6,r2,r0
000881e4: 3c01800a lui r1,0x800a
000881e8: ac268d80 sw r6,-0x7280(r1)			Store pointed to loaded file
000881ec: 10c0017f beq r6,r0,0x000887ec
000881f0: 00000000 nop
000881f4: 8e020000 lw r2,0x0000(r16)			load unique spritesheet No.
000881f8: 00000000 nop
000881fc: 000210c0 sll r2,r2,0x03
00088200: 3c018009 lui r1,0x8009
00088204: 00220821 addu r1,r1,r2
00088208: 8c244c4c lw r4,0x4c4c(r1)			Load SHP LBA
0008820c: 3c018009 lui r1,0x8009
00088210: 00220821 addu r1,r1,r2
00088214: 8c254c50 lw r5,0x4c50(r1)			Load SHP size
00088218: 08022108 j 0x00088420
0008821c: 00000000 nop

Load SEQ:

00088220: 3c10800a lui r16,0x800a
00088224: 26108d7c addiu r16,r16,0x8d7c
00088228: 8e020000 lw r2,0x0000(r16)			Load Unique spritesheet No.
0008822c: 00000000 nop
00088230: 000210c0 sll r2,r2,0x03
00088234: 3c018009 lui r1,0x8009
00088238: 00220821 addu r1,r1,r2
0008823c: 8c244c08 lw r4,0x4c08(r1)			load SEQ file size
00088240: 0c011105 jal 0x00044414			Dedicate RAM
00088244: 00000000 nop
00088248: 00403021 addu r6,r2,r0
0008824c: 3c01800a lui r1,0x800a
00088250: ac268d80 sw r6,-0x7280(r1)			Store pointer to loaded file
00088254: 10c00165 beq r6,r0,0x000887ec
00088258: 00000000 nop
0008825c: 8e020000 lw r2,0x0000(r16)			Load Unique spritesheet No.
00088260: 00000000 nop
00088264: 000210c0 sll r2,r2,0x03
00088268: 3c018009 lui r1,0x8009
0008826c: 00220821 addu r1,r1,r2
00088270: 8c244c04 lw r4,0x4c04(r1)			Load SEQ LBA
00088274: 3c018009 lui r1,0x8009
00088278: 00220821 addu r1,r1,r2
0008827c: 8c254c08 lw r5,0x4c08(r1)			Load SEQ size
00088280: 08022108 j 0x00088420
00088284: 00000000 nop

Load weapon SHP

00088288: 3c10800a lui r16,0x800a
0008828c: 26108d7c addiu r16,r16,0x8d7c
00088290: 8e020000 lw r2,0x0000(r16)			Load Unique spritesheet No.
00088294: 00000000 nop
00088298: 000210c0 sll r2,r2,0x03
0008829c: 3c018009 lui r1,0x8009
000882a0: 00220821 addu r1,r1,r2
000882a4: 8c244ca8 lw r4,0x4ca8(r1)			Load spritesheet size
000882a8: 0c011105 jal 0x00044414
000882ac: 00000000 nop
000882b0: 00403021 addu r6,r2,r0
000882b4: 3c01800a lui r1,0x800a
000882b8: ac268d80 sw r6,-0x7280(r1)
000882bc: 10c0014b beq r6,r0,0x000887ec
000882c0: 00000000 nop
000882c4: 8e020000 lw r2,0x0000(r16)
000882c8: 00000000 nop
000882cc: 000210c0 sll r2,r2,0x03
000882d0: 3c018009 lui r1,0x8009
000882d4: 00220821 addu r1,r1,r2
000882d8: 8c244ca4 lw r4,0x4ca4(r1)			Load SHP LBA
000882dc: 3c018009 lui r1,0x8009
000882e0: 00220821 addu r1,r1,r2
000882e4: 8c254ca8 lw r5,0x4ca8(r1)			Load SHP size
000882e8: 08022108 j 0x00088420
000882ec: 00000000 nop

Load Weapon SEQ

000882f0: 3c10800a lui r16,0x800a
000882f4: 26108d7c addiu r16,r16,0x8d7c		Load Unique Spritesheet No.
000882f8: 8e020000 lw r2,0x0000(r16)
000882fc: 00000000 nop
00088300: 000210c0 sll r2,r2,0x03
00088304: 3c018009 lui r1,0x8009
00088308: 00220821 addu r1,r1,r2
0008830c: 8c244c98 lw r4,0x4c98(r1)			Load file size
00088310: 0c011105 jal 0x00044414			Dedicate ram
00088314: 00000000 nop
00088318: 00403021 addu r6,r2,r0
0008831c: 3c01800a lui r1,0x800a
00088320: ac268d80 sw r6,-0x7280(r1)			store pointer for loaded file
00088324: 10c00131 beq r6,r0,0x000887ec
00088328: 00000000 nop
0008832c: 8e020000 lw r2,0x0000(r16)
00088330: 00000000 nop
00088334: 000210c0 sll r2,r2,0x03
00088338: 3c018009 lui r1,0x8009
0008833c: 00220821 addu r1,r1,r2
00088340: 8c244c94 lw r4,0x4c94(r1)			load SEQ LBA
00088344: 3c018009 lui r1,0x8009
00088348: 00220821 addu r1,r1,r2
0008834c: 8c254c98 lw r5,0x4c98(r1)			load SEQ Size
00088350: 08022108 j 0x00088420
00088354: 00000000 nop

Load Weapon Glint SHP

00088358: 3c10800a lui r16,0x800a
0008835c: 26108d7c addiu r16,r16,0x8d7c		Load Unique spritesheet No.
00088360: 8e020000 lw r2,0x0000(r16)
00088364: 00000000 nop
00088368: 000210c0 sll r2,r2,0x03
0008836c: 3c018009 lui r1,0x8009
00088370: 00220821 addu r1,r1,r2
00088374: 8c244cc8 lw r4,0x4cc8(r1)			Load file size
00088378: 0c011105 jal 0x00044414			Dedicate RAM
0008837c: 00000000 nop
00088380: 00403021 addu r6,r2,r0
00088384: 3c01800a lui r1,0x800a
00088388: ac268d80 sw r6,-0x7280(r1)			Store pointer to loaded file
0008838c: 10c00117 beq r6,r0,0x000887ec
00088390: 00000000 nop
00088394: 8e020000 lw r2,0x0000(r16)
00088398: 00000000 nop
0008839c: 000210c0 sll r2,r2,0x03
000883a0: 3c018009 lui r1,0x8009
000883a4: 00220821 addu r1,r1,r2
000883a8: 8c244cc4 lw r4,0x4cc4(r1)			Load SHP LBA
000883ac: 3c018009 lui r1,0x8009
000883b0: 00220821 addu r1,r1,r2
000883b4: 8c254cc8 lw r5,0x4cc8(r1)			Load SHP Size
000883b8: 08022108 j 0x00088420
000883bc: 00000000 nop

Load Weapon Glint SEQ

000883c0: 3c10800a lui r16,0x800a
000883c4: 26108d7c addiu r16,r16,0x8d7c		Load Unique Spritesheet No.
000883c8: 8e020000 lw r2,0x0000(r16)
000883cc: 00000000 nop
000883d0: 000210c0 sll r2,r2,0x03
000883d4: 3c018009 lui r1,0x8009
000883d8: 00220821 addu r1,r1,r2
000883dc: 8c244cb8 lw r4,0x4cb8(r1)			Load file size
000883e0: 0c011105 jal 0x00044414			Dedicate RAM
000883e4: 00000000 nop
000883e8: 00403021 addu r6,r2,r0
000883ec: 3c01800a lui r1,0x800a
000883f0: ac268d80 sw r6,-0x7280(r1)			Store pointer to loaded file
000883f4: 10c000fd beq r6,r0,0x000887ec
000883f8: 00000000 nop
000883fc: 8e020000 lw r2,0x0000(r16)
00088400: 00000000 nop
00088404: 000210c0 sll r2,r2,0x03
00088408: 3c018009 lui r1,0x8009
0008840c: 00220821 addu r1,r1,r2
00088410: 8c244cb4 lw r4,0x4cb4(r1)			Load SEQ LBA
00088414: 3c018009 lui r1,0x8009
00088418: 00220821 addu r1,r1,r2
0008841c: 8c254cb8 lw r5,0x4cb8(r1)			Load SEQ Size

All return:

00088420: 0c0111a5 jal 0x00044694			Load file at r4 with size r5 into r6
00088424: 00000000 nop
00088428: 10400023 beq r2,r0,0x000884b8		branch if successfully loaded file
0008842c: 00000000 nop
00088430: 3c04800a lui r4,0x800a
00088434: 8c848d80 lw r4,-0x7280(r4)			Load pointer
00088438: 0c011273 jal 0x000449cc			mark Ram used to load file as free again
0008843c: 00000000 nop
00088440: 080221fb j 0x000887ec
00088444: 00000000 nop

Load Weapon Spritesheet

00088448: 3c040001 lui r4,0x0001			
0008844c: 0c011105 jal 0x00044414
00088450: 34845000 ori r4,r4,0x5000			File size 0x00015000
00088454: 3c10800a lui r16,0x800a
00088458: 26108d80 addiu r16,r16,0x8d80
0008845c: 104000e3 beq r2,r0,0x000887ec
00088460: ae020000 sw r2,0x0000(r16)			Store pointer to loaded file
00088464: 3404defa ori r4,r0,0xdefa			with LBA pointer defa (WEP.SPR)
00088468: 3c050001 lui r5,0x0001
0008846c: 34a55000 ori r5,r5,0x5000
00088470: 0c0111a5 jal 0x00044694			Load weapon spritesheet into ram
00088474: 00403021 addu r6,r2,r0
00088478: 1040000f beq r2,r0,0x000884b8		branch if successfully loaded data
0008847c: 00000000 nop
00088480: 08022136 j 0x000884d8
00088484: 00000000 nop

Load chicken, frog, crystal, chest sprite sheet

00088488: 0c011105 jal 0x00044414
0008848c: 34048800 ori r4,r0,0x8800			File size 0x8800
00088490: 3c10800a lui r16,0x800a
00088494: 26108d80 addiu r16,r16,0x8d80
00088498: 104000d4 beq r2,r0,0x000887ec
0008849c: ae020000 sw r2,0x0000(r16)			Store ram pointer
000884a0: 3404df24 ori r4,r0,0xdf24			with LBA pointer df24 (OTHER.SPR)
000884a4: 34058800 ori r5,r0,0x8800
000884a8: 0c0111a5 jal 0x00044694			load OTHER.SPR into RAM
000884ac: 00403021 addu r6,r2,r0
000884b0: 14400009 bne r2,r0,0x000884d8		Branch if could not load
000884b4: 00000000 nop

If successfully loaded file:

000884b8: 3c02800a lui r2,0x800a
000884bc: 8c428d78 lw r2,-0x7288(r2)			Load file loading function index thing
000884c0: 00000000 nop
000884c4: 24420001 addiu r2,r2,0x0001			Increment by 1 (progress to copy-paste phase?)
000884c8: 3c01800a lui r1,0x800a
000884cc: ac228d78 sw r2,-0x7288(r1)			Store
000884d0: 080221fb j 0x000887ec			End
000884d4: 00000000 nop

Return again:

000884d8: 8e040000 lw r4,0x0000(r16)			Load pointer to WEP.SPR/OTHER.SPR
000884dc: 0c011273 jal 0x000449cc			Mark clear if failed.
000884e0: 00000000 nop
000884e4: 080221fb j 0x000887ec
000884e8: 00000000 nop

null phase?

000884ec: 0c0111b2 jal 0x000446c8			r2 = *0x8004eaf8
000884f0: 00000000 nop
000884f4: 144000bd bne r2,r0,0x000887ec		Branch if non-zero (failure? load still in progress?)
000884f8: 00000000 nop
000884fc: 8e020000 lw r2,0x0000(r16)			load func. index?
00088500: 00000000 nop
00088504: 24420001 addiu r2,r2,0x0001			next phase
00088508: 080221fb j 0x000887ec
0008850c: ae020000 sw r2,0x0000(r16)

copying data to ram:

00088510: 3c03800a lui r3,0x800a
00088514: 8c638d74 lw r3,-0x728c(r3)			load file-type index
00088518: 00000000 nop
0008851c: 2c620008 sltiu r2,r3,0x0008			Set if legal
00088520: 10400065 beq r2,r0,0x000886b8		branch if not
00088524: 00031080 sll r2,r3,0x02
00088528: 3c018007 lui r1,0x8007
0008852c: 00220821 addu r1,r1,r2
00088530: 8c2281c8 lw r2,-0x7e38(r1)
00088534: 00000000 nop
00088538: 00400008 jr r2
0008853c: 00000000 nop
		Return Table:
		0: 80088540 (SHP)
		1: 80088584 (SEQ)
		2: 800885b8 (WEP SHP)
		3: 800885e8 (WEP SEQ)
		4: 80088618 (EFF SHP)
		5: 80088654 (EFF SEQ)
		6: 80088690 (WEP SPR)
		7: 800886a8 (OTHER SPR)

Copying SHP Data:

00088540: 3c02800a lui r2,0x800a
00088544: 8c428d7c lw r2,-0x7284(r2)		Load unique spritesheet No. (I think this is like a convenience number. SHP ID for unit here?)
00088548: 3c05800a lui r5,0x800a
0008854c: 8ca58d80 lw r5,-0x7280(r5)		Load pointer to loaded SHP file in RAM
00088550: 00022040 sll r4,r2,0x01
00088554: 00822021 addu r4,r4,r2
00088558: 00042080 sll r4,r4,0x02
0008855c: 00822021 addu r4,r4,r2
00088560: 00042100 sll r4,r4,0x04
00088564: 00822021 addu r4,r4,r2
00088568: 000420c0 sll r4,r4,0x03		Spritesheet No. * 688
0008856c: 3c028009 lui r2,0x8009
00088570: 244262f4 addiu r2,r2,0x62f4
00088574: 0c021cef jal 0x000873bc		Copy SHP Data into RAM
00088578: 00822021 addu r4,r4,r2		Copy SHP data into SHP Pointer Data * SHP Table entry
0008857c: 080221ae j 0x000886b8
00088580: 00000000 nop

Copying SEQ Data:

00088584: 3c02800a lui r2,0x800a
00088588: 8c428d7c lw r2,-0x7284(r2)		Load Unique spritesheet No. 
0008858c: 3c05800a lui r5,0x800a
00088590: 8ca58d80 lw r5,-0x7280(r5)		Load pointer to Loaded SEQ file in RAM
00088594: 000221c0 sll r4,r2,0x07
00088598: 00822021 addu r4,r4,r2
0008859c: 000420c0 sll r4,r4,0x03		ID * 408
000885a0: 3c02800c lui r2,0x800c
000885a4: 2442fa30 addiu r2,r2,0xfa30
000885a8: 0c021c7d jal 0x000871f4		Copy SEQ Data into RAM
000885ac: 00822021 addu r4,r4,r2		Copy SEQ data into SEQ Pointer data * SEQ Table entry
000885b0: 080221ae j 0x000886b8
000885b4: 00000000 nop

Copying weapon SHP Data:

000885b8: 3c02800a lui r2,0x800a
000885bc: 8c428d7c lw r2,-0x7284(r2)		Load Unique Spritesheet No.
000885c0: 3c05800a lui r5,0x800a
000885c4: 8ca58d80 lw r5,-0x7280(r5)		Load pointer to loaded SHP File in RAM
000885c8: 00022040 sll r4,r2,0x01
000885cc: 00822021 addu r4,r4,r2
000885d0: 00042100 sll r4,r4,0x04
000885d4: 00822021 addu r4,r4,r2
000885d8: 3c02800c lui r2,0x800c
000885dc: 2442df0c addiu r2,r2,0xdf0c		0x800bdf0c (start of WEP SHP pointer data)
000885e0: 08022191 j 0x00088644
000885e4: 00042180 sll r4,r4,0x06		ID * C40

Copying weapon SEQ Data:

000885e8: 3c02800a lui r2,0x800a
000885ec: 8c428d7c lw r2,-0x7284(r2)		load unique spritesheet No.
000885f0: 3c05800a lui r5,0x800a
000885f4: 8ca58d80 lw r5,-0x7280(r5)		Load pointer to loaded SEQ file in RAM
000885f8: 00022040 sll r4,r2,0x01
000885fc: 00822021 addu r4,r4,r2
00088600: 00042100 sll r4,r4,0x04
00088604: 00822021 addu r4,r4,r2
00088608: 3c02800c lui r2,0x800c
0008860c: 2442e74c addiu r2,r2,0xe74c		0x800be74c (start of WEP SEQ pointer data)
00088610: 080221a0 j 0x00088680
00088614: 00042180 sll r4,r4,0x06		ID * C40

Copying weapon glint SHP data

00088618: 3c02800a lui r2,0x800a
0008861c: 8c428d7c lw r2,-0x7284(r2)		USN
00088620: 3c05800a lui r5,0x800a
00088624: 8ca58d80 lw r5,-0x7280(r5)		loaded SHP ptr
00088628: 00022040 sll r4,r2,0x01
0008862c: 00822021 addu r4,r4,r2
00088630: 00042100 sll r4,r4,0x04
00088634: 00822021 addu r4,r4,r2
00088638: 00042180 sll r4,r4,0x06		
0008863c: 3c02800b lui r2,0x800b
00088640: 2442669c addiu r2,r2,0x669c		0x800b669c (start of EFF SHP Pointer data)
00088644: 0c021d7c jal 0x000875f0		Copy weapon glint SHP Data into RAM		// WEP SHP also branches here
00088648: 00822021 addu r4,r4,r2		UD * C40 + Ptr
0008864c: 080221ae j 0x000886b8
00088650: 00000000 nop

Copying Weapon glint SEQ data

00088654: 3c02800a lui r2,0x800a
00088658: 8c428d7c lw r2,-0x7284(r2)		USN
0008865c: 3c05800a lui r5,0x800a
00088660: 8ca58d80 lw r5,-0x7280(r5)		SEQ file ptr.
00088664: 00022040 sll r4,r2,0x01
00088668: 00822021 addu r4,r4,r2
0008866c: 00042100 sll r4,r4,0x04
00088670: 00822021 addu r4,r4,r2
00088674: 00042180 sll r4,r4,0x06
00088678: 3c02800b lui r2,0x800b
0008867c: 24426edc addiu r2,r2,0x6edc		0x800b6edc (start of eff SEQ pointer data)
00088680: 0c021cbb jal 0x000872ec		Copy weapon glint SEQ Data into RAM		// WEP SEQ also branches here
00088684: 00822021 addu r4,r4,r2		ID * C40 + Ptr.
00088688: 080221ae j 0x000886b8
0008868c: 00000000 nop

Copying weapon spritesheet data:

00088690: 3c04800a lui r4,0x800a
00088694: 8c848d80 lw r4,-0x7280(r4)		load pointer to file in RAM
00088698: 0c021e29 jal 0x000878a4		copies WEP spritesheet data to ram?
0008869c: 00000000 nop
000886a0: 080221ae j 0x000886b8
000886a4: 00000000 nop

Copying chicken, frog, crystal, chest spritesheet data:

000886a8: 3c04800a lui r4,0x800a
000886ac: 8c848d80 lw r4,-0x7280(r4)		pointer to other.spr data in ram
000886b0: 0c021e6e jal 0x000879b8		Copy OTHER.SPR Palette data to RAM
000886b4: 00000000 nop


000886b8: 3c03800a lui r3,0x800a
000886bc: 24638d78 addiu r3,r3,0x8d78
000886c0: 8c620000 lw r2,0x0000(r3)
000886c4: 080221fa j 0x000887e8
000886c8: 24420001 addiu r2,r2,0x0001		Increment counter by 1 (2 -> 3)
000886cc: 3c04800a lui r4,0x800a
000886d0: 8c848d80 lw r4,-0x7280(r4)		Load pointer to file pointer in ram
000886d4: 0c011273 jal 0x000449cc		mark cleared
000886d8: 00000000 nop
000886dc: 3c03800a lui r3,0x800a
000886e0: 8c638d74 lw r3,-0x728c(r3)		load file func. index?
000886e4: 00000000 nop
000886e8: 2c620008 sltiu r2,r3,0x0008
000886ec: 1040003f beq r2,r0,0x000887ec
000886f0: ae000000 sw r0,0x0000(r16)		clear func. index
000886f4: 00031080 sll r2,r3,0x02
000886f8: 3c018007 lui r1,0x8007
000886fc: 00220821 addu r1,r1,r2
00088700: 8c2281e8 lw r2,-0x7e18(r1)
00088704: 00000000 nop
00088708: 00400008 jr r2
0008870c: 00000000 nop
		Return Table:
		0: 80088710 (SHP)
		1: 8008873c (SEQ)
		2: 80088768 (WEP SHP)
		3: 80088768 (WEP SEQ)
		4: 80088794 (EFF SHP)
		5: 80088794 (EFF SEQ)
		6: 800887d0 (WEP SPR)
		7: 800887d0 (OTHER SPR)

Finalise SHP?

00088710: 3c03800a lui r3,0x800a
00088714: 24638d7c addiu r3,r3,0x8d7c		USN
00088718: 8c620000 lw r2,0x0000(r3)
0008871c: 00000000 nop
00088720: 24420001 addiu r2,r2,0x0001		Increment to next unique spritesheet number? (spritesheet type?)
00088724: ac620000 sw r2,0x0000(r3)
00088728: 28420005 slti r2,r2,0x0005		set if less than RUKA
0008872c: 10400020 beq r2,r0,0x000887b0	branch if it aint
00088730: 00000000 nop
00088734: 080221fb j 0x000887ec
00088738: 00000000 nop

Finalise SEQ?

0008873c: 3c03800a lui r3,0x800a
00088740: 24638d7c addiu r3,r3,0x8d7c		USN
00088744: 8c620000 lw r2,0x0000(r3)
00088748: 00000000 nop
0008874c: 24420001 addiu r2,r2,0x0001		Increment?
00088750: ac620000 sw r2,0x0000(r3)
00088754: 28420005 slti r2,r2,0x0005
00088758: 10400015 beq r2,r0,0x000887b0	branch if > than RUKA
0008875c: 00000000 nop
00088760: 080221fb j 0x000887ec
00088764: 00000000 nop

Finalise weapon SHP + SEQ:

00088768: 3c03800a lui r3,0x800a
0008876c: 24638d7c addiu r3,r3,0x8d7c		USN
00088770: 8c620000 lw r2,0x0000(r3)
00088774: 00000000 nop
00088778: 24420001 addiu r2,r2,0x0001		++
0008877c: ac620000 sw r2,0x0000(r3)
00088780: 28420002 slti r2,r2,0x0002		Set while valid WEP (WEP1, WEP2)
00088784: 1040000a beq r2,r0,0x000887b0	branch if done WEP.
00088788: 00000000 nop
0008878c: 080221fb j 0x000887ec
00088790: 00000000 nop

Finalise weapon glint SHP + SEQ:

00088794: 3c03800a lui r3,0x800a
00088798: 24638d7c addiu r3,r3,0x8d7c		USN
0008879c: 8c620000 lw r2,0x0000(r3)
000887a0: 00000000 nop
000887a4: 24420001 addiu r2,r2,0x0001		++
000887a8: 18400010 blez r2,0x000887ec		... what (branch if not done...?)
000887ac: ac620000 sw r2,0x0000(r3)

Return all:

000887b0: 3c02800a lui r2,0x800a
000887b4: 8c428d74 lw r2,-0x728c(r2)		if finalised with all sprites of a type, increment file func. index
000887b8: ac600000 sw r0,0x0000(r3)		set load func. index to 0 (load file)
000887bc: 24420001 addiu r2,r2,0x0001
000887c0: 3c01800a lui r1,0x800a
000887c4: ac228d74 sw r2,-0x728c(r1)
000887c8: 080221fb j 0x000887ec
000887cc: 00000000 nop

finalise weapon and chicken, frog, crystal, chest spritesheets:

000887d0: 3c03800a lui r3,0x800a
000887d4: 24638d74 addiu r3,r3,0x8d74		
000887d8: 8c620000 lw r2,0x0000(r3)
000887dc: 3c01800a lui r1,0x800a
000887e0: ac208d7c sw r0,-0x7284(r1)		reset load func. index
000887e4: 24420001 addiu r2,r2,0x0001
000887e8: ac620000 sw r2,0x0000(r3)		increment file func. index

End:

000887ec: 3c02800a lui r2,0x800a
000887f0: 8c428d74 lw r2,-0x728c(r2)		Return next file func. index
000887f4: 8fbf0014 lw r31,0x0014(r29)
000887f8: 8fb00010 lw r16,0x0010(r29)
000887fc: 27bd0018 addiu r29,r29,0x0018
00088800: 03e00008 jr r31
00088804: 00000000 nop