I'm looking for a PSX emulator (or a 3D plugin for it, or just a method) that would allow me to freely look around a 3D scene when a game is playing.
I know one emulator that allow to do that, Dolphin emulator (Wii) : you just need to enable an option in settings and then press keys to move around. sometimes the game just crashes but some games allow to do it and this is pretty nice cause you can easily see how some stuff are implemented.
In the case of Dolphin, I guess it works by multiplying projection matrix just before rendering the whole stuff. For PSX, I could maybe locate where game buffer swap is done and multiply matrices by myself but it seems a lot of pain, my psx hacking skills are pretty limited, and it will be specific to one game. Any advice ?
Not one for PSX. You'd need a plugin, and your best bet would be to ask around emulator development boards.
You might be able to find a display list dumper in a debugger version that can directly render the whole world in a seperate 3D editor. Overkill to be sure, but if you just want to walk around a scene that might be handy.
There's one for N64 too limitted to Nemu. The plugin simply plays with the projection matricies passed to the RDP, effectively changing the viewport. It only works though with games that don't use heavy selection or occlusion methods, but still handy for some purposes.
This emulator lets you do memory searches.
I guess you could find the memory addresses for the camera using the memory search and then play around with it that way.
It is a better idea to move the in game camera than to try and force the data the game sends to the renderer to behave differently. Games have a history of doing weird things during rendering.
@henke37 : moving in game camera (good for explorating level) will produce totally different result than changing emulator camera setup (good to see how culling/some effects are implemented).
@all : i think i have found a way to do what i want : psx plugin emulator here : http://www.pbernert.com/html/dev.htm is open source so i just need to found were opengl matrices are set before rendering and hack around.