The VG Resource

Full Version: HELP! ripping ds models sunday vs magazine
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
hi! this is my first post and i want to know how i can dump/rip/export 3d models from the game sunday vs magazine white comics for nintendo ds, mkds can not open the files because are in .bin format, i just want to know how to rip the models, i know how to rip the textures, ninjariper doesn't respont, the same thing with 3d reaper dx , i tried to rip from the emulators desmume and no$gba but nothing happen, just export 3 vertex with out form, i tried with ogle but nothing happen, i think that is for the 2 screens, i know that there is a script to export the geometry from desmume in a 3d format but i don't know how to use the script

anyways, if somebody can help me, will be great! Big Grin and thanks

this is the script but i don't know how works

//texcache.cpp

//only dump this from ogl renderer. for now, softrasterizer creates things in an incompatible pixel format

//#define DEBUG_DUMP_TEXTURE//szfzafa





//gfx3d.h

//szfzafa

extern unsigned char szfzafadumpmodelmark;

void gfx3d_szfzafadumpmodels();



//gfx3d.cpp

unsigned char szfzafadumpmodelmark=0;//szfzafa

static void gfx3d_doFlush()

{

//szfzafa

if(szfzafadumpmodelmark)

gfx3d_szfzafadumpmodels();

//szfzafa

gfx3d.frameCtr++;

……



//szfzafa:dump models!

//-------------savestate



void gfx3d_szfzafadumpmodels()

{

if(gfx3d.vertlist->count>4&&gfx3d.polylist->count>1)

szfzafadumpmodelmark=0;

else

{

printf("szfzafa ripping failed~\n");

return;

}



FILE *file;

if ((file = fopen("c:\\dump\\szfzafa.obj","wb")) == NULL)

return;

//dump the render lists

printf("szfzafa ripping %d verts %d polys~\n",gfx3d.vertlist->count,gfx3d.polylist->count);

for(int i=0;i<gfx3d.vertlist->count;i++)

{

//fprintf(file,"v\t%f\t%f\t%f\t%f\n",gfx3d.vertlist->list[i].x,gfx3d.vertlist->list[i].y,gfx3d.vertlist->list[i].z,gfx3d.vertlist->list[i].w);

fprintf(file,"v\t%f\t%f\t%f\t%f\n",

gfx3d.vertlist->list[i].y*3.0/-32.0,

gfx3d.vertlist->list[i].x/8.0,

gfx3d.vertlist->list[i].z/-2.0,

gfx3d.vertlist->list[i].w);

//fprintf(file,"vt\t%f\t%f\n",gfx3d.vertlist->list[i].u,gfx3d.vertlist->list[i].v);

fprintf(file,"vt\t%f\t%f\n",gfx3d.vertlist->list[i].u,-gfx3d.vertlist->list[i].v);

}



//char szfzafatex[32];

u32 szfzafapa1=gfx3d.polylist->list[0].polyAttr;

u32 szfzafapa2=gfx3d.polylist->list[0].texPalette;

u32 szfzafapa3=gfx3d.polylist->list[0].texParam;

fprintf(file,"g\t%x_%x_%x\n",szfzafapa1,szfzafapa2,szfzafapa3);

//printf("usemtl\t%x\n",szfzafapa);

for(int i=0;i<gfx3d.polylist->count;i++)

{

if(szfzafapa1!=gfx3d.polylist->list[i].polyAttr||

szfzafapa2!=gfx3d.polylist->list[i].texPalette||

szfzafapa3!=gfx3d.polylist->list[i].texParam)

{

szfzafapa1=gfx3d.polylist->list[i].polyAttr;

szfzafapa2=gfx3d.polylist->list[i].texPalette;

szfzafapa3=gfx3d.polylist->list[i].texParam;

fprintf(file,"g\t%x_%x_%x\n",szfzafapa1,szfzafapa2,szfzafapa3);

}

switch(gfx3d.polylist->list[i].type)

{

case 4: fprintf(file,"f\t%d/%d\t%d/%d\t%d/%d\t%d/%d\n",

1+gfx3d.polylist->list[i].vertIndexes[0],1+gfx3d.polylist->list[i].vertIndexes[0],

1+gfx3d.polylist->list[i].vertIndexes[1],1+gfx3d.polylist->list[i].vertIndexes[1],

1+gfx3d.polylist->list[i].vertIndexes[2],1+gfx3d.polylist->list[i].vertIndexes[2],

1+gfx3d.polylist->list[i].vertIndexes[3],1+gfx3d.polylist->list[i].vertIndexes[3]);

break;

case 3: fprintf(file,"f\t%d/%d\t%d/%d\t%d/%d\n",

1+gfx3d.polylist->list[i].vertIndexes[0],1+gfx3d.polylist->list[i].vertIndexes[0],

1+gfx3d.polylist->list[i].vertIndexes[1],1+gfx3d.polylist->list[i].vertIndexes[1],

1+gfx3d.polylist->list[i].vertIndexes[2],1+gfx3d.polylist->list[i].vertIndexes[2]);

break;

default:;

}

}

fclose(file);

}