• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

[Tool] Master Hand v1.20 (Melee Character File Viewer)

Strong Badam

Super Elite
Administrator
Premium
BRoomer
Joined
Feb 27, 2008
Messages
26,545
Okay, I added the source to the OP. Looks like you can DL it via SVN. Have fun~
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
I hate being the only programmer in the community using a wii for net. >_<
(compy has no tcpip interface)
^ thank you ZeroAccess, I hate you all the more.

in any case, thanx :)
 

DRGN

Technowizard
Moderator
Premium
Joined
Aug 20, 2005
Messages
2,175
Location
Sacramento, CA
Are the damages for all hitboxes integers? This probably seems like a silly question, but it's just that I don't know how these were generated (or how the tool pulls values from them) so I wasn't sure if maybe there could be some rounding or truncation somewhere along the line.

If so, then that means all of the hidden decimals that come up with the game's in-game percent display are due to other formulas or multipliers coming into play. Interesting.
 

♡ⓛⓞⓥⓔ♡

Anti-Illuminati
Joined
Jan 10, 2007
Messages
1,863
"MasterHand has encountered a problem and needs to close. We are sorry for the inconvenience."

I've tried all versions between 1.09-1.20, all crash immediately upon launch. I'm running XP on a virtual machine
 

WindozeNT

Smash Ace
Joined
Sep 24, 2013
Messages
559
Location
Texas
NNID
WindozeNT
3DS FC
1865-1050-3752
"MasterHand has encountered a problem and needs to close. We are sorry for the inconvenience."

I've tried all versions between 1.09-1.20, all crash immediately upon launch. I'm running XP on a virtual machine
Same, on Vista: "MasterHand #PMBR Beta has stopped working". Ran it under a debugger and got this:
0:000>g
ModLoad: 76800000 768bf000 C:\Windows\system32\ADVAPI32.dll
ModLoad: 76a00000 76ac3000 C:\Windows\system32\RPCRT4.dll
ModLoad: 6ce90000 6cef6000 C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll
ModLoad: 76bf0000 76c45000 C:\Windows\system32\SHLWAPI.dll
ModLoad: 769b0000 769fb000 C:\Windows\system32\GDI32.dll
ModLoad: 76910000 769ae000 C:\Windows\system32\USER32.dll
ModLoad: 758b0000 7595a000 C:\Windows\system32\msvcrt.dll
ModLoad: 770a0000 770be000 C:\Windows\system32\IMM32.DLL
ModLoad: 76ad0000 76b97000 C:\Windows\system32\MSCTF.dll
ModLoad: 76ff0000 76ff9000 C:\Windows\system32\LPK.DLL
ModLoad: 76780000 767fd000 C:\Windows\system32\USP10.dll
ModLoad: 745a0000 74734000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6000.16386_none_5d07289e07e1d100\comctl32.dll
ModLoad: 58a90000 58ff6000 C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
ModLoad: 68ee0000 68f7b000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCR80.dll
ModLoad: 75960000 7642e000 C:\Windows\system32\shell32.dll
ModLoad: 76c50000 76d94000 C:\Windows\system32\ole32.dll
ModLoad: 60340000 60348000 C:\Windows\Microsoft.NET\Framework\v2.0.50727\culture.dll
ModLoad: 790c0000 79ba6000 C:\Windows\assembly\NativeImages_v2.0.50727_32\mscorlib\c1bcfaf766aabb221b3a99859e4bdd2c\mscorlib.ni.dll
ModLoad: 73ff0000 7402f000 C:\Windows\system32\uxtheme.dll
ModLoad: 7a440000 7ac0c000 C:\Windows\assembly\NativeImages_v2.0.50727_32\System\1f8b958a1fb41f516e8c32cd955a0f97\System.ni.dll
ModLoad: 56840000 56b64000 C:\Windows\assembly\NativeImages_v2.0.50727_32\WindowsBase\84908fc96a965072fb7257dfa59f193e\WindowsBase.ni.dll
ModLoad: 53840000 543b6000 C:\Windows\assembly\NativeImages_v2.0.50727_32\PresentationCore\135b8a5f27d83373c2d439eb1fdf2dd1\PresentationCore.ni.dll
ModLoad: 54e50000 55c40000 C:\Windows\assembly\NativeImages_v2.0.50727_32\PresentationFramewo#\55abaada3d39068731db3bb588c1c27f\PresentationFramework.ni.dll
ModLoad: 6efa0000 6eff3000 C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorjit.dll
ModLoad: 64890000 6498a000 C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Configuration\7506aace479ef7bab17d1f7b607930ba\System.Configuration.ni.dll
ModLoad: 637a0000 63d02000 C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Xml\a08c264879483e487c81b6fe1d5cdf7a\System.Xml.ni.dll
ModLoad: 74930000 74968000 C:\Windows\system32\rsaenh.dll
(170c.13e4): C++ EH exception - code e06d7363 (first chance)
(170c.13e4): C++ EH exception - code e06d7363 (first chance)
(170c.13e4): CLR exception - code e0434f4d (first chance)
(170c.13e4): C++ EH exception - code e06d7363 (first chance)
(170c.13e4): CLR exception - code e0434f4d (first chance)
(170c.13e4): CLR exception - code e0434f4d (first chance)
(170c.13e4): CLR exception - code e0434f4d (first chance)
(170c.13e4): CLR exception - code e0434f4d (first chance)
(170c.13e4): CLR exception - code e0434f4d (!!! second chance !!!)
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\system32\KERNEL32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll -
eax=0025e15c ebx=003c6520 ecx=00000001 edx=00000000 esi=0025e1e4 edi=e0434f4d
eip=7644b09e esp=0025e15c ebp=0025e1ac iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206
KERNEL32!RaiseException+0x58:
7644b09e c9 leave
0:000> g
WARNING: Continuing a non-continuable exception
(170c.13e4): Break instruction exception - code 80000003 (first chance)
eax=00000001 ebx=00000000 ecx=0025dcec edx=0025dd48 esi=00000000 edi=58bb687e
eip=76ec2ea8 esp=0025dce8 ebp=0025dd54 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
ntdll!DbgBreakPoint:
76ec2ea8 cc int 3
0:000> g
eax=6d1c8b24 ebx=00000000 ecx=00001318 edx=40000062 esi=0025e1e4 edi=80131506
eip=76ee0f34 esp=0025df54 ebp=0025df64 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
ntdll!KiFastSystemCallRet:
76ee0f34 c3 ret
0:000> g
^ No runnable debuggees error in 'g'

"Leave" is an x86 instruction that is supposed to leave the current stack frame (Wikipedia - "Releases the local stack storage created by the previous ENTER instruction."). Looks like either something went wrong trying to leave the stack or there was no stack for it to leave to begin with.
"Int" means to cause a processor interrupt (an interrupt tells the processor that something needs its attention). "INT 3" is injected by a debugger (interrupt number 3) as a breakpoint.
"Ret" returns from a procedure, but I don't know what procedure the debugger or MasterHand is trying to return from (I think it's from the breakpoint interrupt). After this command, the application terminated and the debugger detached itself from the now-terminated process.
I used WinDBG 6.2.9200.16384 x86.
 
Last edited:

Gentlefox

Smash Cadet
Joined
Dec 6, 2013
Messages
47
Having an unusual amount of trouble getting this to run on linux.

Attempting to run it in Mono with the verbosity option set, I get:

converting method System.OutOfMemoryException:.ctor (string)
Method System.OutOfMemoryException:.ctor (string) emitted at 0x406b69e0 to 0x406b6a09 (code length 41) [MasterHand.exe]
converting method (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr) emitted at 0x406b6a20 to 0x406b6abe (code length 158) [MasterHand.exe]
converting method System.SystemException:.ctor (string)
Method System.SystemException:.ctor (string) emitted at 0x406b6ac0 to 0x406b6ae9 (code length 41) [MasterHand.exe]
converting method System.Exception:.ctor (string)
Method System.Exception:.ctor (string) emitted at 0x406b6b00 to 0x406b6b2a (code length 42) [MasterHand.exe]
converting method System.NullReferenceException:.ctor (string)
Method System.NullReferenceException:.ctor (string) emitted at 0x406b6b30 to 0x406b6b59 (code length 41) [MasterHand.exe]
converting method System.StackOverflowException:.ctor (string)
Method System.StackOverflowException:.ctor (string) emitted at 0x406b6b60 to 0x406b6b79 (code length 25) [MasterHand.exe]
converting method System.AppDomain:DoAssemblyResolve (string,bool)
Method System.AppDomain:DoAssemblyResolve (string,bool) emitted at 0x406b6b90 to 0x406b6e5f (code length 719) [MasterHand.exe]
converting method (wrapper runtime-invoke) <Module>:runtime_invoke_object__this___object_sbyte (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) <Module>:runtime_invoke_object__this___object_sbyte (object,intptr,intptr,intptr) emitted at 0x406b6e80 to 0x406b6f36 (code length 182) [MasterHand.exe]
The entry point method could not be loaded
converting method (wrapper runtime-invoke) object:runtime_invoke_virtual_void__this__ (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object:runtime_invoke_virtual_void__this__ (object,intptr,intptr,intptr) emitted at 0x406b6f40 to 0x406b6fd2 (code length 146) [MasterHand.exe]
converting method System.Threading.InternalThread:Finalize ()
Method System.Threading.InternalThread:Finalize () emitted at 0x406b6fe0 to 0x406b701f (code length 63) [MasterHand.exe]
converting method (wrapper managed-to-native) System.Threading.InternalThread:Thread_free_internal (System.Threading.InternalThread,intptr)
Method (wrapper managed-to-native) System.Threading.InternalThread:Thread_free_internal (System.Threading.InternalThread,intptr) emitted at 0x406b7040 to 0x406b70e4 (code length 164) [MasterHand.exe]
converting method System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Finalize ()
Method System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Finalize () emitted at 0x406b70f0 to 0x406b711e (code length 46) [MasterHand.exe]
converting method System.Threading.Thread:.cctor ()
Method System.Threading.Thread:.cctor () emitted at 0x406b7120 to 0x406b7145 (code length 37) [MasterHand.exe]
converting method (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr) emitted at 0x406b7150 to 0x406b71d6 (code length 134) [MasterHand.exe]
converting method (wrapper alloc) object:Alloc (intptr)
Method (wrapper alloc) object:Alloc (intptr) emitted at 0x406b71e0 to 0x406b729d (code length 189) [MasterHand.exe]
converting method (wrapper managed-to-native) object:__icall_wrapper_mono_object_new_specific (intptr)
Method (wrapper managed-to-native) object:__icall_wrapper_mono_object_new_specific (intptr) emitted at 0x406b72a0 to 0x406b7315 (code length 117) [MasterHand.exe]
converting method System.Runtime.Remoting.Contexts.Context:Finalize ()
Method System.Runtime.Remoting.Contexts.Context:Finalize () emitted at 0x406b7320 to 0x406b734e (code length 46) [MasterHand.exe]
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
hate the fact it's written in crummy Java, but at least it's better than C# (.NET)

I'd like to see more python work...
python is so underestimated for being the easiest language to program in... =3=
 

NeilBolima

Smash Rookie
Joined
Mar 13, 2016
Messages
12
I need some help. MasterHand is crashing everytime i try and open up a file. It just stops responding.
I think you are opening the wrong file
Are you opening .dat files. tose work the best for me
 
Last edited:

NeilBolima

Smash Rookie
Joined
Mar 13, 2016
Messages
12
What if you want to find the specific offset for a special move. I am looking for ness' pk Fire offset. So i can change the color in HxD
 

TheSocialZombie

Smash Cadet
Joined
Jun 25, 2017
Messages
49
The Project M Back Room collaborated to develop a Melee character file viewer in order to port knockback/damage/hitbox sizes/hitbox timings/physics directly from Melee. The program is fairly limited in that it can only open moveset files and it can't edit them, however its uses for learning are substantial.

Master Hand v1.20

DAT files

Source

after you get everything downloaded and unzipped, here's a quick tutorial:

Open Master Hand.
File -> Open. Browse to the version & character you want. There are two files in each folder, one of them is the one you want. Then you'll want to head over to the Subactions tab. Scroll through until you find the subaction you want for the attack you want. Specials are tricky and aren't always able to be found. For aerials, look for AttackAir(first letter of direction). For tilts, Attack3(direction. U, S, or D for up side down). Smashes, Attack4(same). For jabs it's just Attack11, Attack12, Attack13, and Attack100 for a loop. Dash attack it's AttackDash. Throws are ThrowF/B/D/U.

for hitboxes there'll usually be an asynchronous timer before them. the frame count for it is when the hitbox is active. same for Allow Interrupt/IASA. the rest should be fairly self-explanatory.

Hit me up on AIM or post here if you need anything else. Oh, and Attributes is the physics tab. :p
What can this do that crazy hand can't?
 
Top Bottom