The Forum is up for sale: XeNTaX Forum looking for new owner

AO Tennis

Post questions about game models here, or help out others!
Post Reply
fil1969
veteran
Posts: 146
Joined: Fri Sep 17, 2010 7:44 am
Has thanked: 20 times
Been thanked: 21 times

AO Tennis

Post by fil1969 »

Hi, someone can check this models game format please? I've found a tool to extract all
Is "msh", any chance to have an importer? thank you in advance
https://www.mediafire.com/file/u8zjia0e ... 8.msh/file
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4231
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1139 times
Been thanked: 2222 times

Re: AO Tennis

Post by shakotay2 »

using hex2obj (view link in my sig) for creating a point cloud:
.
88-msh.png
Looks promising but that's all. Using more points (31442) doesn't give better results. Face indices (01000000 skipped) don't fit, too.
Maybe another vertex start address to be used?

0x0 500
Vb1
48 99
0xA4 31442
020000
0x0 255
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
User avatar
Bigchillghost
double-veteran
double-veteran
Posts: 1002
Joined: Tue Jul 05, 2016 9:37 am
Has thanked: 31 times
Been thanked: 1171 times

Re: AO Tennis

Post by Bigchillghost »

The structure seems simple:

Code: Select all

long	Signature
long	Cnt1

long	EntryOffset // relative to the offset of this field
long	EntryCnt

long	VertDataOffset // relative to the offset of this field
long	VertDataSize

long	StringEntryOffset // relative to the offset of this field
long	stringNum

long	subMeshEntryOffset // relative to the offset of this field
long	subMeshCnt

long	unknownCnt // 

for i = 0 < EntryCnt // sizeof = 16
	char	AttrName[12]
	word	DataBlockID?
	word	VecSize?
	
for i = 0 < Vcount // sizeof = 48
	float	Position[3]
	word	unknown[2]
	float	Normal[3]
	long	NULL
	float	Tangent[3]
	word	unknown[2]
	
for i = 0 < stringNum // sizeof = 24
	long	stringOffset // relative to the offset of this field
	long	unknown[5]
	
for i = 0 < subMeshCnt // sizeof = 12
	long	stride
	long	subMeshVcount
	long	unknownOffset

for i = 0 < unknownCnt // sizeof = 8
	long	vertIdx
	long	x1
	
for i = 0 < unknownCnt // sizeof = 16
	byte	unknown[16]
	
for i = 0 < stringNum
	string	aString
But I doubt there're any explicit face indices. Probably a different kind of implicit storage.
1st.png
You do not have the required permissions to view the files attached to this post.
May you find peace in this puzzle-solving game. Say it with action: click the Image when you get helped.:)
Post Reply