Jump to content

Figure out Paper Mario with me? :D


Twili
 Share

Recommended Posts

icons.png

icons2.png

 

EVERY ONE OF THESE USES ITS OWN UNIQUE PALETTE OF 16 COLORS.

YES, INCLUDING THE BLANK SLOTS. INFO BELOW ON ROM LOCATIONS.

  • These textures are 4bpp CI, most are 32x32 in dimensions, but some are 24x24.

  • The palette, consisting of 16 colors, follows immediately after the color index portion.

  • The devs threw in extra bytes to throw you off, so you can't immediately pick a texture by its "number" (first row being 0x00 - 0x0F, second being 0x10 - 0x1F, etc.)

  • So what you have to do to compensate for these extra bytes is use these notes:


From the wrapped gift (very first texture in the top left) to the bowl of soup (first actual texture of row two), you CAN use the hex numbering scheme like so:

Multiply the texture number by 0x220 and add the product to 0x1CC310. Soup example: 0x11 * 0x220 + 0x1CC310 = 0x1CE730

 

From the bread (immediate right of the soup) to the silver key (first actual texture of row five), you must count in hex starting back at 0x00!

It's not too bad, though, because if you understand hex, you know that the texture immediately below is 0x10, then 0x20 below that, etc.

Due to the aforementioned extra bytes, you multiply by 0x240 this time. The offset you're adding to is also different, 0x1CE970 this time.

Yoshi cookie example: 0x28 * 0x240 + 0x1CE970 = 0x1D4370

 

From the plain gold key (immediate right of silver key) to the red orb, you multiply the texture number, (yes, the gold key is 0x00, it's always relative) by 0x220.

Add to 0x1D5550. Frying Pan example: 0x14 * 0x220 + 0x1D5550 = 0x1D7FD0

 

I think you get how to set up the formula now, so from here on out I'll just list the starting (0x00) and ending texture, the bytes to skip (multiply the texture number) by, and the base offset you add to.

 

Toad Doll (immediate right of red orb) to brown key (immediate right of scarf): 0x220, 0x1D9DB0

Sky blue key (immediate right of brown key) to umbrella (directly below red orb): 0x220, 0x1DAED0

Pink key (immediately right of umbrella) to Third Degree Card (looks like a flag with 3 stars and is surrounded by yellow): 0x220, 0x1DBFF0

Fourth Degree Card (immediate right of Third Degree Card) to green signature (immediate right of casette tape): 0x220, 0x1DD110

Hand bag (immediate right of green signature) to white envelope: 0x220, 0x1DE230

 

Brown envelope (immediate right of white envelope) to blank texture three rows above bottom left corner of the image: 0x240, 0x1DEF10

 

Start of gloved pointer finger frames to star piece counter icon (immediate left of hammer three rows above bottom right corner): 0x140, 0x1F8AD0

IMPORTANT NOTE! These 14 (0x0E) textures are 24x24 in dimensions, fit inside the top left corners of 32x32 spaces in the image.

 

Wooden hammer (three rows above the bottom right corner of the image) to eyes-closed heart: 0x240, 0x1F9C50

Eyes-open heart (immediate right of eyes-closed heart) to open-mouth flower: 0x220, 0x1FAE30

 

Spinning coin frame one (immediate right of mouth-open flower) to spinning coin frame ten): 0x140, 1FB8D0

THESE TEN TEXTURES ARE 24x24, again fit inside 32x32 spaces in the image.

 

Bright glowing star piece (immediate right of final spinning coin) to regular-lit star piece: 0x220, 0x1FC710

 

Last eleven textures in the image: 0x140, 0x1FCD70

THESE ARE 24x24.

 

CLICK HERE TO GET GEDECOMPRESSOR, A ROM TOOL CAPABLE OF EXTRACTING AND DECOMPRESSING THE YAY0 FILES IN PAPER MARIO. CAN'T RECOMPRESS, SADLY.

 

So yeah, the icon/animated textures I displayed for you are all before the compressed parts of the rom. I wrote a converter for them and had to literally rebuild it each time I ran into one of those road blocks that the devs threw in. Maybe this will get people interested. Help documenting stuff welcome.

  • Like 1
Link to comment
Share on other sites

Flotonic got that from what I believe to be an actor table, for the lack of a better descriptor, at 0x5A610. The entries look like:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

E0 00 20 00 00 32 78 F0 00 32 81 10 E0 00 20 00 00 32 64 10 00 32 78 F0

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

E0 00 C1 60 00 32 81 10 00 32 8E A0 E0 00 C0 00 00 32 8E A0 00 32 C1 10

 

...

 

Each entry is 0x18 bytes long, and as you can see, there are null entries; 0x00, 0x02, 0x03, 0x04, and 0x05 in the portion above. There are a total of 0x87 entries in this table.

 

In entry 0x01, and all for that matter, it is unknown what purpose the first four bytes serve, but the next eight are the absolute start and end offsets of the ASM for the actor.

The next four bytes are again unknown. The last eight bytes in an entry are the start and end offsets of the model file that the actor uses.

 

Actors can share the same model file, and for that very reason, I have wrote a program to list which actors use the same model file. Here is the result:

 

Model file 00326410 003278F0 used by 0x01
Model file 00328EA0 0032C110 used by 0x06 0x07 0x17 0x1D 0x27
Model file 0032CEC0 0032DD10 used by 0x08 0x09
Model file 0032EC50 0032EE30 used by 0x0A 0x0B
Model file 0032FB50 0032FE30 used by 0x0C
Model file 00330460 00330910 used by 0x0D
Model file 00330F00 00331940 used by 0x0E
Model file 003326A0 00333EC0 used by 0x0F
Model file 00334C70 00337240 used by 0x10
Model file 00337FC0 00339250 used by 0x11 0x22 0x38 0x3A 0x84
Model file 00339F60 0033B180 used by 0x12
Model file 0033BBD0 0033CDF0 used by 0x13
Model file 0033D610 0033E8C0 used by 0x14 0x2B
Model file 0033F000 0033FE80 used by 0x15
Model file 00340880 003419E0 used by 0x16
Model file 00343040 00343680 used by 0x18 0x21
Model file 00343F70 00344A10 used by 0x19
Model file 003451E0 003454E0 used by 0x1A
Model file 00345B40 0034DD20 used by 0x1B
Model file 0034E770 0034EC80 used by 0x1C
Model file 00350220 00352440 used by 0x1E
Model file 00352CE0 00353300 used by 0x1F
Model file 00353BB0 003547A0 used by 0x20
Model file 00356530 00356980 used by 0x23
Model file 003573A0 003584C0 used by 0x24
Model file 003593B0 00359F20 used by 0x25 0x68
Model file 0035A5E0 0035B9D0 used by 0x26
Model file 0035C550 0035CA80 used by 0x28
Model file 0035D510 0035DA00 used by 0x29
Model file 0035F0E0 003602C0 used by 0x2C
Model file 00360A30 00360F40 used by 0x2D
Model file 00361670 003625C0 used by 0x2E
Model file 00362C50 00363160 used by 0x2F
Model file 003638C0 00364300 used by 0x30
Model file 00364C00 00364F10 used by 0x31
Model file 003659B0 00366030 used by 0x32
Model file 00366D60 0036A8D0 used by 0x33
Model file 0036AEE0 0036D020 used by 0x34
Model file 0036DF90 0036E1D0 used by 0x35
Model file 0036ED60 00372790 used by 0x36
Model file 003733E0 003740B0 used by 0x37
Model file 00375510 00376460 used by 0x39
Model file 00377F80 0037A3F0 used by 0x3B
Model file 0037ADD0 0037C540 used by 0x3C
Model file 0037D180 0037D490 used by 0x3D
Model file 0037D9D0 0037F720 used by 0x3E 0x42
Model file 003803A0 003812C0 used by 0x3F
Model file 00381E00 00385640 used by 0x40
Model file 003863B0 003889D0 used by 0x41
Model file 0038A350 0038ADF0 used by 0x43
Model file 0038BBA0 0038C5F0 used by 0x44
Model file 0038D070 0038DE00 used by 0x45
Model file 0038E990 0038EE60 used by 0x46
Model file 0038F710 0038F900 used by 0x47
Model file 003903D0 00391D30 used by 0x48
Model file 00392440 003928D0 used by 0x49
Model file 003930A0 00394280 used by 0x4A
Model file 00394670 00395BB0 used by 0x4B
Model file 003960F0 003965B0 used by 0x4C
Model file 00397040 003981F0 used by 0x4D
Model file 00398BC0 0039FF20 used by 0x4E
Model file 003A0D60 003A2290 used by 0x4F
Model file 003A2440 003A2990 used by 0x50
Model file 003A33D0 003A37E0 used by 0x51
Model file 003A4320 003A5550 used by 0x52
Model file 003A5BE0 003A70F0 used by 0x53
Model file 003A77A0 003AA920 used by 0x54
Model file 003AB030 003AEE20 used by 0x55
Model file 003AF700 003B2350 used by 0x56
Model file 003B2D90 003B3EB0 used by 0x57
Model file 003B46A0 003B4790 used by 0x58
Model file 003B5340 003B5CF0 used by 0x59
Model file 003B6BF0 003B7160 used by 0x5A
Model file 003B78D0 003B7B80 used by 0x5B
Model file 003B8860 003B8BD0 used by 0x5C
Model file 003B9A70 003BA030 used by 0x5D
Model file 003BAEA0 003BBF60 used by 0x5E
Model file 003BCA90 003BCD60 used by 0x5F
Model file 003BD9A0 003C11D0 used by 0x60
Model file 003C1BA0 003CADF0 used by 0x61
Model file 003CB890 003CC9E0 used by 0x62
Model file 003CD6E0 003CF3A0 used by 0x63
Model file 003CFAF0 003D0500 used by 0x64
Model file 003D11E0 003D1690 used by 0x65
Model file 003D2580 003D2AC0 used by 0x66
Model file 003D3930 003D3E20 used by 0x67
Model file 003D4E90 003D5020 used by 0x69
Model file 003D5F30 003D67C0 used by 0x6B
Model file 003D7040 003D7240 used by 0x6C
Model file 003D7770 003D7A70 used by 0x6D
Model file 003D80C0 003D8720 used by 0x6E
Model file 003D9100 003DB460 used by 0x6F
Model file 003DBF40 003DC310 used by 0x70
Model file 003DCD50 003DE000 used by 0x71
Model file 003DEE60 003E0930 used by 0x72
Model file 003E12D0 003E1690 used by 0x73
Model file 003E1CD0 003E1EE0 used by 0x74
Model file 003E2960 003E43A0 used by 0x75
Model file 003E5350 003E54C0 used by 0x77
Model file 003E5F30 003EB4E0 used by 0x78
Model file 003EBE60 003F83F0 used by 0x79
Model file 003F8CC0 003F9E50 used by 0x7A
Model file 003FA4B0 003FEAE0 used by 0x7B 0x7D
Model file 003FF250 00402640 used by 0x7C
Model file 00403BF0 00404220 used by 0x7E
Model file 00404F40 00406B40 used by 0x7F
Model file 00407080 00409990 used by 0x80
Model file 0040A1C0 0040B3F0 used by 0x81
Model file 0040BBA0 0040C5A0 used by 0x82
Model file 0040D290 00412730 used by 0x83
Model file 00413FA0 00414BA0 used by 0x85
Model file 00415060 00415D90 used by 0x86

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.