What's new

Melee Arcive Viewer (MAV) in development project.

OP
Tcll

Tcll

Complexity == Fun >:3
>:3

hey uh...
for future referance...
I think we're supposed to keep those to a minimum...

you can do that as much as you want on my forum though :)

and also...
what do you guys think I should do??
should I keep this thread here, or should I move it to my forum?? :0
 
OP
Tcll

Tcll

Complexity == Fun >:3
I'm starting over...

but I'm not working with ty files this time...
from now on it'll be pl files

and I guess I'm going into this alone, seeing as no-one is helping me anymore...
shoot... I need to know what to do to get down to the relocation table first...
and then read the values located in the offsets...
and looking at Jahra1n's coding (again), I've found out some stuff...
but still not everything I need to know

but I plan to stay on this project...
unlike the others who've attempted and failed...
and then of course there were the quiet ones who did it, and never released anything :mad:
well, I plan to do it and release it >:)

so to start off...
what is known is...
everything is read by 4 bytes...

the header is 32 bytes:
File Size (everything minus header)
Datablock Size (everything minus header, relocation table, and string data)
Relocation table count
Root count
unk1
unk2
unk3
unk4

all offsets are relative to the header... (offset+32)

primitive flags include:
B8 = points
A8 = lines
B0 = line strip
90 = triangles
98 = triangle strip
A0 = triangle fan
80 = quads
00 = stop reading
 
Last edited:
OP
Tcll

Tcll

Complexity == Fun >:3
it'd be nice if 010 editor worked...

sorry revel...
but I'll probably be removing the 010 dat script from my site :p
seeing as how the crack don't work...
(invalad license)

but well...
I said I didn't know how the relocation table worked...
actually, I do...
but being not so very good at python...
can't think of a way to do it...
 
Last edited:
OP
Tcll

Tcll

Complexity == Fun >:3
I deleted the data methods to rework on them...

EDIT: reposted it...
working on offline copy
 
Last edited:
OP
Tcll

Tcll

Complexity == Fun >:3
just taking notes here...

to get to relocation table:

offset = 0
Datablock Size + header + offset (## + 32 + 0)
read first value (read 4)
go to offset (value + Header (## + 32))

determine offset data (will be figured out)

restart...
add 4 to offset (0 + 4)
Datablock Size + header + offset (## + 32 + 4)
read next value (read 4)
go to offset (value + Header (## + 32))

determine offset data

continue loop until last offset is reached
 
Last edited:
OP
Tcll

Tcll

Complexity == Fun >:3
you know what... uhh...
right now... only hackers can read it...
I'm not too good with words to explain it all...
sry bout that... :p

you may get better results from reading my notes...
my site needs to be cleaned greatly

or even reading back through the thread...
I'd be glad to have another person to help me :)
 
OP
Tcll

Tcll

Complexity == Fun >:3
can anyone help me??
this is the blender importer for player files...
but I've only got it importing verts right now...

this is because I don't want to brute force it like I'm doing in the code below:
Code:
[COLOR=gray]#!BPY[/COLOR]
[COLOR=gray]""" [/COLOR]
[COLOR=gray]Name: 'SSBM (.dat)...'[/COLOR]
[COLOR=gray]Blender: 249[/COLOR]
[COLOR=gray]Group: 'Import'[/COLOR]
[COLOR=gray]Tooltip: 'Import a Melee player or trophy file (.dat)'[/COLOR]
[COLOR=gray]"""[/COLOR]
[COLOR=gray]__author__= ['Tcll'][/COLOR]
[COLOR=gray]__url__ = ("smashbrosfiles.blogspot.com")[/COLOR]
[COLOR=gray]__version__= '0.996'[/COLOR]
[COLOR=gray]__bpydoc__= '''\[/COLOR]
[COLOR=gray]dat Importer[/COLOR]
[COLOR=gray]'''[/COLOR]
[COLOR=gray]# --------------------------------------------------------------------------[/COLOR]
[COLOR=gray]# Importing modules[/COLOR]
[COLOR=gray]import Blender[/COLOR]
[COLOR=plum]i[/COLOR][COLOR=purple]mport[/COLOR] struct [COLOR=purple]as[/COLOR] S
[COLOR=olive]def[/COLOR] HexToDec(v):
 [COLOR=purple]return[/COLOR] float(S.unpack([COLOR=darkred]"<h"[/COLOR], S.pack([COLOR=darkred]"<H"[/COLOR], int((v.encode([COLOR=darkred]'hex'[/COLOR])), [COLOR=blue]16[/COLOR])))[[COLOR=blue]0[/COLOR]])
[COLOR=olive]def[/COLOR] vert(v): 
 [COLOR=purple]return[/COLOR] (HexToDec(v)* [COLOR=blue]0.001[/COLOR])[COLOR=green]#.__str__()[/COLOR]
[COLOR=olive]def[/COLOR] import_dat(path):
[COLOR=gray]Blender.Window.WaitCursor(1)[/COLOR]
[COLOR=gray]name = path.split('\\')[-1].split('/')[-1][/COLOR]
[COLOR=gray]mesh = Blender.NMesh.New( name ) # create a new mesh[/COLOR]
[COLOR=gray]# parse the file[/COLOR]
 file = open(path, [COLOR=darkred]'rb'[/COLOR])
 a = [COLOR=blue]0[/COLOR]
 t = file.read([COLOR=blue]32[/COLOR])
 [COLOR=purple]while[/COLOR](a==[COLOR=blue]0[/COLOR]):
  x, y, z = vert(file.read([COLOR=blue]2[/COLOR])), vert(file.read([COLOR=blue]2[/COLOR])), vert(file.read([COLOR=blue]2[/COLOR]))
 
  [COLOR=purple]if[/COLOR] (x == [COLOR=blue]0.0[/COLOR] [COLOR=purple]and[/COLOR] y == [COLOR=blue]0.0[/COLOR] [COLOR=purple]and[/COLOR] z == [COLOR=blue]0.0[/COLOR]):
   a = [COLOR=blue]1[/COLOR]
  mesh.verts.append(Blender.NMesh.Vert(x, y, z))
 [COLOR=gray]# link the mesh to a new object[/COLOR]
[COLOR=gray]ob = Blender.Object.New('Mesh', name) # Mesh must be spelled just this--it is a specific type[/COLOR]
[COLOR=gray]ob.link(mesh) # tell the object to use the mesh we just made[/COLOR]
[COLOR=gray]scn = Blender.Scene.GetCurrent()[/COLOR]
[COLOR=gray]for o in scn.getChildren():[/COLOR]
[COLOR=gray]o.sel = 0[/COLOR]
[COLOR=gray]scn.link(ob) # link the object to the current scene[/COLOR]
[COLOR=gray]ob.sel= 1[/COLOR]
[COLOR=gray]ob.Layers = scn.Layers[/COLOR]
[COLOR=gray]Blender.Window.WaitCursor(0)[/COLOR]
[COLOR=gray]Blender.Window.RedrawAll()[/COLOR]
[COLOR=gray]Blender.Window.FileSelector(import_dat, 'Import')[/COLOR]

I want to go through the relocation table to find these offsets...
but I'm not sure how to go about doing that...

@ revel8n or Milun
I know you guys are programmers...
how would I determine the data types based on the relocated offsets??

please reply soon...
 
Last edited:

GameWatching

New member
programmers ... 0.0

how can i learn programming ?

i know some GML that's all but i don't i think that's enough to hack a game.
and GML is used only for Game Maker >.>
 
Last edited:
OP
Tcll

Tcll

Complexity == Fun >:3
programmers ... 0.0

how can i learn programming ?

i know some GML that's all but i don't i think that's enough to hack a game.
and GML is used only for Game Maker >.>

O.O Game Maker

Milun's done some work with that...
he even posted his code o_O I think

hold on...
I'll look back and see if I can't retrieve it for ya...
___________________________________________________________

and programming's not hard to learn...
just very time consuming D:

just search google or youtube for tutorials on the language you want to learn...
download your software (microsoft makes you pay for theirs) :mad:
C++ (not friendly at all... but works well)
VB
python (free and easy to work with... but not friendly, and dosn't work too well)
java/js (yea... you can build an html converter if you know how... and it's free)
 

Milun

New member
I edited SSBM Collision D:
galp0153.png


Still dunno how to remove models D:

Hm... could you tell me what hex you changed to get that result. I don't know how to change the floors height, only its width, and it would be EXTREMELY helpful to my MK1 guide to know how you did that.

i only started about one week ago for melee :D

so i have all my time to discover :D

///////////////////////////////////////

All that aside, I'm back.
(i m 15, i didn't learn programming yet >.>)

Don't worry, that's when I first started hacking Melee too.
 
Last edited:

Milun

New member
K, I've been working for a bit, and somehow I managed to make it so when you collide with the left edge, you grab the edge here:

 
OP
Tcll

Tcll

Complexity == Fun >:3
WOW!!!
that's amazing. =]
very nice job.

o_O you use version 3661 for dolphin
I've been using 3089 because no other version works as fast as this for me
(compress the gcm to gcz for best results)

glad to see you back though :)
I hope to actually release something this time...
 
OP
Tcll

Tcll

Complexity == Fun >:3
@ Milun

any help?? <:|

can anyone help me??
this is the blender importer for player files...
but I've only got it importing verts right now...

this is because I don't want to brute force it like I'm doing in the code below:
Code:
[COLOR=gray]#!BPY[/COLOR]
[COLOR=gray]""" [/COLOR]
[COLOR=gray]Name: 'SSBM (.dat)...'[/COLOR]
[COLOR=gray]Blender: 249[/COLOR]
[COLOR=gray]Group: 'Import'[/COLOR]
[COLOR=gray]Tooltip: 'Import a Melee player or trophy file (.dat)'[/COLOR]
[COLOR=gray]"""[/COLOR]
[COLOR=gray]__author__= ['Tcll'][/COLOR]
[COLOR=gray]__url__ = ("smashbrosfiles.blogspot.com")[/COLOR]
[COLOR=gray]__version__= '0.996'[/COLOR]
[COLOR=gray]__bpydoc__= '''\[/COLOR]
[COLOR=gray]dat Importer[/COLOR]
[COLOR=gray]'''[/COLOR]
[COLOR=gray]# --------------------------------------------------------------------------[/COLOR]
[COLOR=gray]# Importing modules[/COLOR]
[COLOR=gray]import Blender[/COLOR]
[COLOR=plum]i[/COLOR][COLOR=purple]mport[/COLOR] struct [COLOR=purple]as[/COLOR] S
[COLOR=olive]def[/COLOR] HexToDec(v):
 [COLOR=purple]return[/COLOR] float(S.unpack([COLOR=darkred]"<h"[/COLOR], S.pack([COLOR=darkred]"<H"[/COLOR], int((v.encode([COLOR=darkred]'hex'[/COLOR])), [COLOR=blue]16[/COLOR])))[[COLOR=blue]0[/COLOR]])
[COLOR=olive]def[/COLOR] vert(v): 
 [COLOR=purple]return[/COLOR] (HexToDec(v)* [COLOR=blue]0.001[/COLOR])[COLOR=green]#.__str__()[/COLOR]
[COLOR=olive]def[/COLOR] import_dat(path):
[COLOR=gray]Blender.Window.WaitCursor(1)[/COLOR]
[COLOR=gray]name = path.split('\\')[-1].split('/')[-1][/COLOR]
[COLOR=gray]mesh = Blender.NMesh.New( name ) # create a new mesh[/COLOR]
[COLOR=gray]# parse the file[/COLOR]
 file = open(path, [COLOR=darkred]'rb'[/COLOR])
 a = [COLOR=blue]0[/COLOR]
 t = file.read([COLOR=blue]32[/COLOR])
 [COLOR=purple]while[/COLOR](a==[COLOR=blue]0[/COLOR]):
  x, y, z = vert(file.read([COLOR=blue]2[/COLOR])), vert(file.read([COLOR=blue]2[/COLOR])), vert(file.read([COLOR=blue]2[/COLOR]))
 
  [COLOR=purple]if[/COLOR] (x == [COLOR=blue]0.0[/COLOR] [COLOR=purple]and[/COLOR] y == [COLOR=blue]0.0[/COLOR] [COLOR=purple]and[/COLOR] z == [COLOR=blue]0.0[/COLOR]):
   a = [COLOR=blue]1[/COLOR]
  mesh.verts.append(Blender.NMesh.Vert(x, y, z))
 [COLOR=gray]# link the mesh to a new object[/COLOR]
[COLOR=gray]ob = Blender.Object.New('Mesh', name) # Mesh must be spelled just this--it is a specific type[/COLOR]
[COLOR=gray]ob.link(mesh) # tell the object to use the mesh we just made[/COLOR]
[COLOR=gray]scn = Blender.Scene.GetCurrent()[/COLOR]
[COLOR=gray]for o in scn.getChildren():[/COLOR]
[COLOR=gray]o.sel = 0[/COLOR]
[COLOR=gray]scn.link(ob) # link the object to the current scene[/COLOR]
[COLOR=gray]ob.sel= 1[/COLOR]
[COLOR=gray]ob.Layers = scn.Layers[/COLOR]
[COLOR=gray]Blender.Window.WaitCursor(0)[/COLOR]
[COLOR=gray]Blender.Window.RedrawAll()[/COLOR]
[COLOR=gray]Blender.Window.FileSelector(import_dat, 'Import')[/COLOR]

I want to go through the relocation table to find these offsets...
but I'm not sure how to go about doing that...

@ revel8n or Milun
I know you guys are programmers...
how would I determine the data types based on the relocated offsets??

please reply soon...
just taking notes here...

to get to relocation table:

offset = 0
Datablock Size + header + offset (## + 32 + 0)
read first value (read 4)
go to offset (value + Header (## + 32))

determine offset data (will be figured out)

restart...
add 4 to offset (0 + 4)
Datablock Size + header + offset (## + 32 + 4)
read next value (read 4)
go to offset (value + Header (## + 32))

determine offset data

continue loop until last offset is reached
 
Last edited:

Top