Super Smash Bros

From en64 wiki
Jump to navigation Jump to search

Super Smash Bros uses F3DEX ucodes, and vpk0 compression which is a bitwise lzss variant with the addition of huffman encoding and has two file tables.

Region (U)

OS Functions

0x80123870,spSetAttribute
0x80125ef0,spClearAttribute
0x80125f50,spScale
0x80130000,osSendMesg
0x80130150,osStopThread
0x80130210,osRecvMesg
0x80130350,osSetIntMask
0x801303f0,__sinf/fsin/sinf
0x801309b0,__ull_rshift
0x801309dc,__ull_rem
0x80130a18,__ull_div
0x80130a54,__ll_lshift
0x80130a80,__ll_rem
0x80130abc,__ll_div
0x80130b18,__ll_mul
0x80130b48,__ull_divremi
0x80130ba8,__ll_mod
0x80130c44,__ll_rshift
0x80131570,__osDequeueThread
0x801315b0,bzero/_bzero/blkclr/_blkclr
0x80131e20,osCreateThread
0x80132150,osVirtualToPhysical
0x801321d0,osWritebackDCache
0x801325b0,osPiRawReadIo
0x80132670,__osSetSR
0x80132680,__osGetSR
0x801326d0,__osSpRawStartDma
0x80132860,osViBlack
0x801328d0,__osSiRawReadIo
0x801328d0,__osSpRawReadIo
0x80132920,osSpTaskYield
0x80132bb0,osViSetMode
0x80132c20,__osProbeTLB
0x801333b0,osPiRawStartDma
0x80133490,osGetCount
0x801334a0,osSetEventMesg
0x80133510,sqrtf
0x80133540,osContStartQuery
0x801335c4,osContGetQuery
0x80134300,osEPiStartDma
0x801343e0,memcpy
0x8013440c,strlen
0x80134434,strchr
0x80134480,osCreateMesgQueue
0x801344b0,osInvalICache
0x80134530,osInvalDCache
0x801345e0,__osSpDeviceBusy
0x80134610,__osSiDeviceBusy
0x80134640,osJamMesg
0x80134790,osSetThreadPri
0x80134870,osGetThreadPri
0x80134890,osViSwapBuffer
0x801348e0,guMtxXFMF
0x80134980,guMtxCatF
0x80134cd0,osSpTaskYielded
0x80134d50,osGetTime
0x801351e0,__osSetGlobalIntMask
0x80135380,guNormalize
0x80135410,__osSetCompare
0x80135430,bcopy/_bcopy
0x80135740,alCopy
0x801357c0,__osResetGlobalIntMask
0x80135820,__osDisableInt
0x80135840,__osRestoreInt
0x80135ca0,osPiGetCmdQueue
0x80135cd0,__cosf/fcos/cosf
0x80135e40,osSetTime
0x80135e70,osViSetEvent
0x80136140,__osSetFpcCsr
0x801362b0,osMapTLBRdb
0x80136310,osYieldThread
0x80136360,alCents2Ratio
0x80138a40,_Litob
0x80138ce0,__osSpRawWriteIo
0x80138ce0,__osSiRawWriteIo
0x80138d30,osDpSetNextBuffer
0x80138de0,__osDpDeviceBusy
0x80138e10,__osSpSetStatus
0x80138e20,__osSpGetStatus
0x80139160,osWritebackDCacheAll
0x80139190,osStartThread
0x801392e0,osViSetYScale
0x80139340,__d_to_ll
0x8013935c,__f_to_ll
0x80139378,__d_to_ull
0x80139418,__f_to_ull
0x801394b4,__ll_to_d
0x801394cc,__ll_to_f
0x801394e4,__ull_to_d
0x80139518,__ull_to_f
0x80139600,__osAiDeviceBusy
0x80139670,__osSpSetPc
0x8013d4b0,osViModeNtscLan1
0x8013d500,osViModeMpalLan1
0x8013f0e0,__osRcpImTable
0x8013f370,__libm_qnan_f

Select screen stuff

1388A2 current animation in player select

0x13975c (rom Versus character select table)
0x140a84 (rom single player cselect table)
0x147674 (rom training mode character select table)
08138090 (ram training mode character select table)
0x1501b4 (rom training mode stage select table)
80134644 RAM

Values:
00 Mario
01 Fox
02 DK
03 Samus
04 Luigi
05 Link
06 Yoshi
07 C. Falcon
08 Kirby
09 Pikachu
0A Jigglypuff
0B Ness
0C Master Hand
0D Metal Mario
0E Polygon Mario
10 Polygon DK
13 Polygon Link
14 Polygon Yoshi
15 Polygon Samus
18 Polygon Kirby
1A Giant Donkey Kong


Audio stuff

00640806 (rom) Congo Jungle music modifier

0011B590 (rom) values for character crowd cheers

8009A1F0 - pointer to audio sequence in ram
8009D96C


8005d5a0

00B277B0 in rom - music sequence table

000269E8
5331002F - 2F is the number of sequences

xxxxxxxx yyyyyyyy - for each entry xx = location yy = size

Sequences start with 00000044 beginning of track information

Next 0x12 bytes are pointers to track info? size of each track?

0x40 - tempo



00B4E5C0
00B54C20 in rom - music sequence sound bank
	- pointers seem to be for the game's instruments

00C6B650 in rom - sound effect audio table

Music Values

80099113 00??

000A97F4

00 Dream Land
01 Planet Zebes
02 Mushroom Kingdom
03 Mushroom Kingdom sped up
04 Sector Z
05 Kongo Jungle
06 Peach's Castle
07 Saffron City
08 Yoshi's Island
09 Hyrule Castle
0a character select
0b unused?
0c mario victory
0d samus victory
0e dk victory
0f kirby victory
10 fox victory
11 ness victory
12 yoshi victory
13 c.falcon victory
14 pokemon victory
15 link victory
16 after victory
17 versus masterhand
18 masterhand entering
19 final destination
1a bonus stage
1b single player win match
1c single player complete bonus
1d defeated master hand
1e failed bonus
1f continue?
20 game over
21 title
22 how to play
23 a challenger approaches
24 polygon fighting team
25 Metal Mario Stage
26 after beating masterhand
27 credits
28 unlocked character
29 a challenger approaches
2a training
2b character info
2c menu select
2d hammer
2e star


0009D96C

Stage stuff

12C520 stage table?

801574E0

800CD818


800CD83C

800FC2AC get stage

C24 mario's stage

8018E4D0 current stage model (versus mode) 8018F408 current stage model (Break The Targets) 80190C98 current stage model (training mode) 80134D28 current stage model (training mode level select)

Stage file numbers

006A Peach's Castle
006D Sector Z
006C Congo Jungle
0069 Planet Zebes
0071 Hyrule Castle
006F Yoshi's Island
0068 Dream Land
0070 Saffron City
006B Mushroom Kingdom
0065 Beta Stage 1
0066 Beta Stage 2
0073 How to Play Stage
0076 Yoshi's Island Single Player
0075 Metal Mario's Stage
0074 Fighting Polygon Team Stage
0095 Race to The Finish
0072 Master Hand Stage
007C Mario Break The Targets
007D Fox Break The Targets
007E Donkey Kong Break The Targets
007F Samus Break The Targets
0080 Luigi Break The Targets
0081 Link Break The Targets
0082 Yoshi Break The Targets
0083 Captain Falcon Break The Targets
0084 Kirby Break The Targets
0085 Pikachu Break The Targets
0086 Jiggly Puff Break The Targets
0087 Ness Break The Targets
0089 Mario Board The Platforms
008A Fox Board The Platforms
008B Donkey Kong Board The Platforms
008C Samus Board The Platforms
008D Luigi Board The Platforms
008E Link Board The Platforms
008F Yoshi Board The Platforms
0090 Captain Falcon Board The Platforms
0091 Kirby Board The Platforms
0092 Pikachu Board The Platforms
0093 Jiggly Puff Board The Platforms
0094 Ness Board The Platforms

Smasher model stuff

1385A3 player 1 character modifier training
13bad0 player 1 character modifier versus
00222B94 ram to load models
0027555C

801303E8 where models get loaded in ram

800F2C04 null branch to display hitboxes

22FC20 mario's object training mode
2315B0 mario's head in RAM


00147380 asm load player models in training mode ROM
80138428 RAM

Character panel

22D100

0x92610 character panel ram locations (difference of 0x84800 between ram and rom)

0x93010 80117810 Mario
0x94EF4 801196F4 Fox
0x9648C 8011AC8C DK
0x98478 8011CC78 Samus
0x998A0 8011E0A0 Luigi
0x9AD20 8011F520 Link
0x9C1D0 801209D0 Yoshi
0x9D698 80121E98 C. Falcon
0x9EE80 80123680 Kirby
0xA04E4 80124CE4 Pikachu
0xA197C 8012617C Jigglypuff
0xA2EA0 801276A0 Ness
0xA447C 80128C7C Master Hand
0x93A20 80118220 Metal Mario
0x94430 80118C30 Polygon mario
0x959B4 8011A1B4 Polygon Fox
0x96F6C 8011B76C Polygon DK
0x98E98 8011D698 Polygon Samus
0x9A2B0 8011EAB0 Polygon Luigi
0x9B790 8011FF90 Polygon Link
0x9CC10 80121410 Polygon Yoshi
0x9E118 80122918 Polygon C. Falcon
0x9FA7C 8012427C Polygon Kirby
0xA0F2C 8012572C Polygon Pikachu
0xA23CC 80126BCC Polygon Jigglypuff
0xA3970 80128170 Polygon Ness
0x97A4C 8011C24C Giant Donkey Kong

Animation stuff

80190F62 current animation training mode peach castle
80274BC0

11F32A Link's side A animation

11F2EC Link's A animation

11DeC0 luigi taunt

11FD5C Polygon Link's A animation


80116E80 mario moveset animations in ram
80390EA0 Mario winning animations? 0x108480 in rom

xxxxxxxx yyyyyyyy zzzzzzzz

xx = animation
yy = action
zz = ????


00109020 (rom)Link animation values
80391A00
80043270 current animation in character select

80129f44


Misc

001AC870 table with compressed files

810A4938 FFFF unlock everything

0x1AC870 file table
001B2C6C files start

800CDB98
116bD0 some files

Character Values

00 Mario
01 Fox
02 DK
03 Samus
04 Luigi
05 Link
06 Yoshi
07 C. Falcon
08 Kirby
09 Pikachu
0A Jigglypuff
0B Ness
0C Master Hand
0D Metal Mario
0E Polygon Mario
10 Polygon DK
13 Polygon Link
14 Polygon Yoshi
15 Polygon Samus
18 Polygon Kirby
1A Giant Donkey Kong

Region (J)

Unsorted notes

800A2A90 00XX
03 System Debug
04 Battle Debug



484 kirby
485 link
486 luigi
487 mario


0x13A5E0 (rom Versus character select table)

0x92570 character panel ram locations (difference of 0x82470 between ram and rom)

0x92F70 801153E0 Mario
0x94E54 801172C4 Fox

001153E0

8022AB10
8022AF38
8022B090

801364D8
801ACAF0
801AD348

80114A74
80115390
802EBEA0 attack data?

802ED514 Fireball
802ED534 Graphics effect?
802ED53A Graphic effect near hand
802ED54B Fireball sound effect

commands
080000xx timer
98xxyy00 graphical effect



001ACAF0 file table
001B2DC0 File Start

800D4E64 asm code to load file table
000529F4 ROM


2D5108


on the these commands
xxyyyyyy

xx = A3 register

SRL A3,A3,0x1A




list of commands1

08 (02) delay
0C (03) Deal Damage
38 (0E) Play sound effect
44 (11) Play sound effect
4C (13) Play Sound effect
54 (15) Spawn Projectile?
98 (26) Graphic effect?
A0 (28) Load Dlist?
BC (2F)
C4 (31)
CC (33)


commands2 


SLL t7,29,0xB

xxyyyyyy

00 set distance? 

0C set damage? uses 3 words?


0Cxxxyyy aaaabbbb ccccdddd

yy = damage
aa = size of hitbox
bb = angle?
dd = distance


802F1B48 mario a neutral in ram




800E0C0C Store damage dealt

800DD1C0 grab damage command

shift left 0x13
Shift Right 0x18
DAMAGE!!


For characters files

xxxxxxxx yyyyyyyy zzzzzzzz

xx = animation
yy = offset in action file
zz = unknown


44C = Jump
80285E00 Link's action File in RAM
802F1000

802F2CF0

1AFE08 standing animation  0x68E710 3390

3954


8014EBE8 Button check for bow?


8012F374 person currently paused


80111CA0 button check for pause


800A0EA4 debug stuff
800A1060

800A2A90 current screen
800A238C screen asm


800F0824 null branch to enable hitboxes

A6EA0 Table to B Attacks
A5668 Mario's stuff
A56A4 mario's B attack
80127B14


800E5314 asm load attack



800E52A0


8018E3F7 current weapon held training mode

800DF76C breakpoint to find weapon holding

Character attacks

80153B74 add DF for B move (add FF24)


800E5314 asm load attack


8018643C asm character table for each B-air move
801864A8 asm character table for Up-B-Air move
80186514 asm character table for Down-B-Air move
801865eC asm character table for each B move
80186660 asm character table for Up-B move
801866D0 asm character table for Down-B move







80129310
000A6EA0 Table to B Attacks

A5668 Mario's stuff
A56A4 mario's B attack
8013B5E4

800E4D40 ASM to load which jump/attack/action (A1 + FF24)




0x00 
0x04 
0x08
0x0C
0x10



801449B4 use item function



8011D0F0 link's panel RAM

18e590 some of link's files





80277Aa4 button presses
80004000 20000020

Animation stuff

0018E7F2 current animation training mode hyrule castle
00130C6A current animation battle debug
0027795F animation frames?


Link

269 
442 Standing
44C Jump Forward
44D Jump Backward
44E Double Jump Forward
44F Double Jump Backward
450 falling
453 Crouching
48B Taunt
4AE A Combo 1
4AF A Combo 2
4B0 A Combo 3
4B2 A Multi Stabs
4B5 A Side tilt
4B6 A Up tilt
4B7 A Down Tilt - 27 frames
4B8 A Side Smash
4B9 A Up Smash
4BA A Down Smash
4BB A in Air
4BC A forward in air
4BD A back in air
4BE A up in air
4BF A Down in Air
4C1 Grabbing sword out of ground
4C5 Intro Facing Right
4C6 Intro Facing Left
4C7 Up-B on ground
4C8 Up-B on ground finish
4C9 Up-B in Air
4CA B on Ground
4CB Retrieving Boomerang
4CC B in Air
4CD Retrieving Boomerang in Air
4CE Down B on Ground
4CF Down B in Air


0068DA60
00840820

Format

SRL V0, A0, 0xB




aaaabbbb xxxxyyyy zzzzpppp qqqqrrrr
sssstttt uuuuvvvv wwwwwwww

xx = x rotation of bone
yy = y rotation of bone
zz = z rotation of bone
pp = x rotation first keyframe
qq = y rotation first keyframe
rr = z rotation first keyframe
ss = x rotation second keyframe
tt = y rotation second keyframe
uu = z rotation second keyframe






8012DCC4 asm for individual animation command?
000AB854



Format (bit-wise):

aaaa aaaa aaab bbbb cccc cccc cccc cccc

aa = command
bb = variable?
cc = value

==Stage stuff==
<pre>000A7C80 training stage stage files
8012A0F0 RAM


0018E1F9 current stage training mode
800A2CC9 current stage battle royale mode


8018E520 current files training mode


800CB8C4



800CBB34 load level file

800CBB5C


800F9ECC

8012A0F0

80002C0C 80043320

800CBB34 80043C10
800CBB5C 80043C10
800CB638 80043b70
800CB684 80043b70




00132A80 stage files training mode select screen




8013293B current selection for stage

8013200C get level model intraining mode screen?


80043C00 training mode level select table


80130604
80130634
801306D8 stage size asm? 80043B78
8013031C
80130340
801304B4
801304EC
8013200C