Did you edit the gliConfig.ini? because you have to, you have to set it to log one frame, set the button combination to log, and set it to log images.
Code:
//////////////////////////////////////////////////////////////
//
// GLI - openGL Intercept Configuration file
//
//////////////////////////////////////////////////////////////
//
// (Note: all options are case sensetitive)
//
//////////////////////////////////////////////////////////////
//ProfileName = "Basic Logging";
//ProfileDescription = "Does Basic Logging";
//////////////////////////////////////////////////////////////
//
// Log Options:
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enable function call logging
//
// LogFlush - If true, will flush the logger after each OpenGL call is made.
// This is useful to catch a OpenGL call that crashes the
// application. This only applies to text file logging.
//
// LogPath - Path to store the logged files. If not specified, files
// will be stored relative to the GLI OpenGL dll.
//
// LogFileName - The name of the file to log to (without extension)
//
// AdditionalRenderCalls - Names of additional OpenGL functions that are to be treated as render calls.
// (extra frame and state info can be dumped at render calls)
//
// LogMaxNumFrames - The maximum number of frames that will be logged.
// This is useful for retrieving startup information from a
// application or limiting the file size on apps that make
// a lot of OpenGL calls (Note: This also affects per-frame logging)
//
// LogFormat - The format of the log. If equal to "XML" (without quotes)
// will log in the XML format. Else, the plain text format is used.
//
// XMLFormat::XSLFile - When the log format is XML, this option specifies the XSL file
// to be used (if any). A XSL file usually formats the XML into a
// readable HTML format.
//
// XMLFormat::BaseDir - The base (or source) directory where the XSL file can be found.
//
//////////////////////////////////////////////////////////////
FunctionLog
{
LogEnabled = True;
LogFlush = False;
//LogPath = "c:\temp\";
LogFileName = "gliInterceptLog"
//AdditionalRenderCalls = ("glClear");
//LogMaxNumFrames = 200;
//LogFormat = XML;
XMLFormat
{
XSLFile = gliIntercept_DHTML2.xsl;
BaseDir = "C:\Program Files (x86)\GLIntercept_1_2_0\XSL";
}
}
//////////////////////////////////////////////////////////////
//
// LogPerFrame Options:
//
//////////////////////////////////////////////////////////////
//
// Enabled - Enable logging per frame. If this is true, instead of
// logging all OpenGL calls, the below frame start keys will
// enable the loggers at the start of a frame. The loggers
// will be disabled when the keys are pressed again and the next
// frame is reached (see OneFrameOnly for other options).
//
// Output of logging is saved to a directory called
// Frame_XXXX where XXXX is the frame number that logging
// started.
//
// FrameStartKeys - The keys used to enable/disable logging. Valid values can be any
// combination of 0-9,a-z,f1-f12,ctrl,shift,tab,lwin,rwin,
// print,up,down,left,right,add,sub,insert,delete etc.
//
// OneFrameOnly - If enabled, will only log only one frame per key-press.
// Loggers will be disabled at the end of the next frame.
//
//////////////////////////////////////////////////////////////
LogPerFrame
{
Enabled = True;
FrameStartKeys = (ctrl,shift,f);
OneFrameOnly = True;
}
//////////////////////////////////////////////////////////////
//
// Input Files:
//
//////////////////////////////////////////////////////////////
//
// GLFunctionDefines - The file to retrieve the OpenGL function defines from.
// (The text header files that contain the parameters of OpenGL functions to be logged)
//
// GLSystemLib - The full path to the "real" OpenGL system library. This will be assigned automatically
// so usually does not have to be defined.
//
//////////////////////////////////////////////////////////////
InputFiles
{
GLFunctionDefines = "C:\Program Files (x86)\GLIntercept_1_2_0\GLFunctions\gliIncludes.h"
//GLSystemLib = "c:\windows\system32\opengl32.dll"
}
//////////////////////////////////////////////////////////////
//
// Error Checking:
//
//////////////////////////////////////////////////////////////
//
// GLErrorChecking - A OpenGL glGetError() is made after all appropiate OpenGL calls.
// If an error is detected, the error code is logged to the current text/XML log next
// to the function that caused the error.
// (OpenGL Error context is still saved so application invoked glGetError() calls are safe)
//
// ThreadChecking - While GLIntercept is not currently thread-safe, (ie. So you cannot have multiple render
// contexts active at the same time) enabling this option will perform basic thread checking.
// (Will currently check OpenGL calls to see if they are made on the thread with the
// active render context)
//
// BreakOnError - (used with above) Issue programmer debug breakpoint on an error.
// Note that glIntercept alters the stack, so to get a valid call stack when debugging
// you will need to step through some assembly (F10 on VC6) until the stack is restored.
//
// LogOnError - (used with above) Log all OpenGL errors to the GLIntercept error log (gliLog.txt).
//
// ExtendedErrorLog - (used with above) Report all available data about the function the produced the error.
// (ie. Full resolved parameters that were passed to the function are reported.)
// (Enabling this option will cause a severe slowdown even when no errors are produced. Only
// enable when debugging specific errors)
//
// DebuggerErrorLog - Mirror the contents of the error log (gliLog.txt) file to the debuggers' window.
//
//////////////////////////////////////////////////////////////
ErrorChecking
{
GLErrorChecking = False;
ThreadChecking = False;
BreakOnError = False;
LogOnError = False;
ExtendedErrorLog = False;
DebuggerErrorLog = False;
}
//////////////////////////////////////////////////////////////
//
// Image logging:
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the image logger. OpenGL textures are saved to the directory
// "Images" under the main log path. Only the texture types specified in
// SaveGLTypes are saved.
//
// RenderCallStateLog - If enabled, each render call issued will list the currently bound
// textures for all texture stages. (works with text and XML logging)
//
// SaveFormats - The image formats to save the textures in. Current valid formats are
// PNG,JPG and TGA. Note that more than one format can be specified.
// (ie. (PNG,TGA) will save all textures twice, once in PNG format, once
// in TGA format)
//
// Note on image formats:
// TGA - Is pixel precise and is the fastest save format but is also the biggest.
// TGA's are also not supported by web browsers (if you use XML with XSL to view the logs).
// PNG - Is pixel precise and is slower to save but is smaller than TGA.
// PNG's are brower compatable.
// JPG - Is a format that does not save alpha and saves colors in a lossy format.
// It is the smallest format and is slower to save than TGA's.
// JPG's are brower compatable.
//
// FlipXAxis - The saving of textures is upside-down by default. Using this option will
// flip the image before saving.
//
// TileCubeMaps - Cube map textures are saved as six individual images. Enabling this option enables
// the six image to be tiled together (flattened cube shaped) and saved as one image.
//
// SaveGLTypes - The types of OpenGL textures to save. Valid options are 1D,2D,3D and CUBE.
// Note: NVRect textures use the 2D option.
//
// SavePbufferTex - This option enables/disables the saving of textures that are bound from a p-buffer.
// Note: P-Buffer textures are saved each time a p-buffer is bound to the texture.
// (ie. no checks are performed to see if the p-buffer has changed)
//
// ImageIcon->Enabled - This enables saving a icon version of all images saved. (useful in XML browser viewing)
//
// ImageIcon->SaveFormat - The format of the save icon images (TGA,PNG or JPG)
//
// ImageIcon->Size - The size of the icons to save
//
//////////////////////////////////////////////////////////////
ImageLog
{
LogEnabled = True;
RenderCallStateLog = Flase;
SaveFormats = PNG;
FlipXAxis = False;
TileCubeMaps= True;
SaveGLTypes = (1D,2D,3D,CUBE);
SavePbufferTex = True;
ImageIcon
{
Enabled=False;
SaveFormat = JPG;
Size = 40;
}
}
//////////////////////////////////////////////////////////////
//
// Shader logging
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the shader logger. OpenGL shaders/programs are saved to the directory
// "Shaders" under the main log path. Supported types included ARB/NV vertex/fragment
// programs and vertex/fragment GLSL shaders/programs. ATI specific vertex/fragment
// shaders are not supported.
//
// RenderCallStateLog - If enabled, each render call issued will list the currently bound
// shaders (vertex and fragment). (works with text and XML logging)
//
// AttachLogState - If enabled, attitional information such as compile/link state and additional
// driver information may be attached to each shader/program.
// (Currently only GLSL support). Note that enabling this option may force
// shaders to complete compiling immediately.
//
// ValidatePreRender - If the above AttachLogState is enabled, this option will perform a validation of
// the shader before each render and append it to the log. Enabling this option will
// cause the shader to be re-saved at each render call.
// (GLSL only feature via glValidateProgram)
//
// UniformLogPreRender - If the above AttachLogState is enabled, this option will dump all uniforms that
// are active in the shader before each render. Enabling this option will
// cause the shader to be re-saved at each render call. (GLSL only feature)
//
//////////////////////////////////////////////////////////////
ShaderLog
{
LogEnabled = False;
RenderCallStateLog = False;
AttachLogState = False;
ValidatePreRender = False;
UniformLogPreRender = False;
//Future formatting options
}
//////////////////////////////////////////////////////////////
//
// Display List logging
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the display list logger. OpenGL display lists are saved to the directory
// "DisplayLists" under the main log path. If a program has a lot of big glBegin/glEnd
// sections in display lists, (ie 1000's of glVertex calls) the application may seem
// un-responsive on startup as all these calls are processed on the list creation.
//
//////////////////////////////////////////////////////////////
DisplayListLog
{
LogEnabled = False;
}
//////////////////////////////////////////////////////////////
//
// Frame(Buffer) logging
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the frame(buffer) logger. When enabled, each render call can
// save the pre/post/diff frame buffer (color or depth) to view the changes
// that the render call made. Frame buffer saves are written to a directory
// "Frames" under the main log path.
//
// SaveFormat - The image format to save the frame buffer in. Current options are TGA,PNG, and JPG.
// (see ImageLog::SaveFormats for a decription of the formats)
//
// FrameIcon->Enabled - This enables saving a icon version of all images saved. (useful in XML browser viewing)
//
// FrameIcon->SaveFormat - The format of the save icon images (TGA,PNG or JPG)
//
// FrameIcon->Size - The size of the icons to save
//
// FrameMovie->Enabled - This enables a movie of the "post" and "diff" frame buffers to be saved. If multiple, buffers
// are saved, they are tiled together. (This is useful to quicky inspect how a frame is composed)
// The resulting movie is called FrameMovie.avi in the frame buffer directory.
//
// FrameMovie->Size - The width height of the saved frame buffers. (ie. (640,480)) The resulting movie will be
// larger if multiple buffers are saved at once as they are tiled together.
//
// FrameMovie->FrameRate - The frame rate of the saved movie.
//
// FrameMovie->Compression - The list of compression codecs used to save the movie (usually 4 letters).
// The first valid codec is used. Special codecs are:
// "menu" - will display a menu for the user to select a codec.
// "none" - will use no compression.
//
// ColorBufferLog - The color frame buffer save options. Options can include any combination of
// (pre,post,diff).
// pre - The frame's color buffer is saved before the render call
//
// post - The frame's color buffer is saved after the render call
//
// diff - The difference between the pre and post buffer saves is written.
// (green represents pixels with no differnce. If the image is red,
// no image differences were detected)
//
// DepthBufferLog - The depth frame buffer save options. Options are the same as in ColorBufferLog.
// (Note: Depth-buffer saving can be very slow)
//
// StencilBufferLog - The stencil frame buffer save options. Options are the same as in ColorBufferLog.
// (Note: Stencil-buffer saving can be very slow)
//
// StencilColors - When saving the stencil buffer, it can be useful to save the buffer with color codes.
// (ie stencil value 1 = red) This array supplies index color pairs for each stencil
// value up to 255. The indices must be in order and the colors are in the format
// AABBGGRR. If an index is missing, it will take the value of the index as the color.
// (ie. stencil index 128 = (255, 128,128,128) = greyscale values)
//
//////////////////////////////////////////////////////////////
FrameLog
{
LogEnabled = False;
SaveFormat = JPG;
FrameIcon
{
Enabled = False;
SaveFormat = JPG;
Size = 40;
}
FrameMovie
{
Enabled = False;
Size = (640,480);
FrameRate = 15;
Compression = ("mpg4","divx","none");
}
ColorBufferLog = (pre,post,diff);
//DepthBufferLog = (pre,post,diff);
//StencilBufferLog = (pre,post,diff);
StencilColors = (0,0xFF000000, //Black
1,0xFFFF0000, //Blue
2,0xFFFFFF00, //Light Blue
3,0xFF0000FF, //Red
4,0xFF00FFFF, //Yellow
5,0xFFFF00FF, //Purple
6,0xFF80FFFF, //Bright Yellow
7,0xFFFFFFFF); //White (Note green is not used as that is the "diff" color)
}
//////////////////////////////////////////////////////////////
//
// Function time logging
//
//////////////////////////////////////////////////////////////
//
// NOTE: It is important to not mis-use the results of this logger. OpenGL is a very pipelined
// API and you can not optimize your code based on how long is spent in each function call.
// This logger is only intended for advanced users to determine where pipeline stalls "MAY"
// have occured and determine speeds of operations such as glReadPixels etc.
//
// LogEnabled - Enabled the timer log. When enabled, the time taken inside each OpenGL
// function is added to the main log. (if enabled). The logging reports
// in microseconds (millionth of a second). Only take these results as
// approximate figures as GLIntercept will add a small amout of overhead.
// (More overhead may be indicated in the functions wglGetProcAddress,
// all wgl*(context) functions, glBegin,glEnd,glGetError)
//
// If you are using this logger to determine where pipeline stalls occur,
// ensure to disable ALL other loggers (image/shader/frame etc) as these
// loggers may cause pipline stalls. Also disable parameter logging by
// not defining "GLFunctionDefines" and use flat text logging to get the
// fastest logging possible. (and hence the most accurate results)
//
// LogCutoff - The number of microseconds below which the time value is not reported.
//
//////////////////////////////////////////////////////////////
TimerLog
{
LogEnabled = False;
LogCutoff = 20;
}
//////////////////////////////////////////////////////////////
//
// Plugins
//
//////////////////////////////////////////////////////////////
//
// BaseDir - The base directory where the plugins can be found
//
// Plugins - Listing of all plugins to load (and the locations
// to load from) Under each plugin, plugin specific options
// can be specified.
//
//
//////////////////////////////////////////////////////////////
PluginData
{
BaseDir = "C:\Program Files (x86)\GLIntercept_1_2_0\Plugins";
Plugins
{
//
// Name of plugin | Plugin load location
// { Plugin specific options. (See the plugins' config.ini file for options) }
// OpenGLFreeCamera = ("GLFreeCam/GLFreeCam.dll")
// {
// CameraMoveSpeed = 10.0;
// }
}
}
Also, I'm using Pete's opengl 1.77 video driver onepsxe 1.9, I don't remember well but I remember I had trouble getting it up and running originally, so that driver version plus emulator version might do the magic.
Textures will need a bit of assembly, just face whatever texture you want to rip and hit the log combination button once or twice, you might get lucky and get a full texture, but the normal thing is that a single texture is split in a few pieces or across multiple texture pages. Still piecing them together is easy but time consuming.