QDB: Quote #310817
About / Browse / Latest / Random / Queue / Prefs / Submit Quote / Search

#310817 (46/54) ↑Funny ↓Awful ⚐Flag
(Foone) did you hear about how my OBJ export system worked? that was the...
software centipede
(Foone) so I ran the target program in a debugger inside a VM, pausing on a
specific breakpoint. I also ran script in the VM that provided HTTP
access to RAM, so you could hit localhost:8080/ADDRESS/LENGTH and
get the contents of memory back
(Sotek) what
(Sotek) what.
(Foone) outside the VM I ran a script which connected to this and made a few
hundred requests and assembled the contents into a tree, which it
then exposed as a JSON endpoint
(Foone) then my opengl app (also running outside the VM, because 3d
acceleration) made a request to the JSON endpoint, loaded those
models and textures, then it would run the render function in a
special mode where instead of drawing each node it stored them to a
global dictionary, then reparsed that dictionary and exported it as an
OBJ file, which I then opened in blender, made manual fixes, exported
back out to STL, ran a script to package the STL + assorted textures,
then I manually uploaded that to shapeways which did further processing
and then they mailed me the completed model
(Foone) fun fact: the OS/2 mailing list CD of 1996 was involved in this
process, but you'll never guess where
(Foone) it was used in setting the breakpoint. see, the program was statically
linked with the 3D library used but I have no debugging symbols. but I
found a copy of the same(ish) library from the OS/2 developers
conference mailing list CD, which is provided in .lib format so I _do_
have symbols
(Foone) so by comparing the disassembly of the functions in the OS/2 .lib and
the EXE, I could identify them in the EXE
(Foone) this let me find where the main render function was called, so I know
at what point to set the breakpoint
(Foone) I also got the headers from it, which gave me the layout of the
structures in memory.
(Foone) I already kinda had those thanks to a carmageddon fansite, though
(Foone) yeah. carmageddon 1 for DOS used the same engine as the app I was targeting
(Foone) and they found an SDK manual for it from somewhere
Comment: This was to 3d print things from 3d movie maker
save page | share

About / Browse / Latest / Random / Queue / Prefs / Submit Quote / Search
14,526 quotes approved; 9,633 fermenting; karma: 191.2917