![]() |
HELP! ripping ds models sunday vs magazine - Printable Version +- The VG Resource (https://www.vg-resource.com) +-- Forum: The Resources (https://www.vg-resource.com/forum-109.html) +--- Forum: The Models Resource (https://www.vg-resource.com/forum-111.html) +---- Forum: Ripping Help (https://www.vg-resource.com/forum-115.html) +---- Thread: HELP! ripping ds models sunday vs magazine (/thread-29734.html) |
HELP! ripping ds models sunday vs magazine - hechoergue - 08-21-2016 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! ![]() 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); } |