As I have not got access to pSX source code, I have done some plans using my favourite Unix technique,
the LD_PRELOAD trick.
Two of such outcomes of my project are:
TASVideos quality AVI recording
This is my classic "injected encoder" trick.
Example:
http://www.youtube.com/watch?v=sPvrgO_UN80
It requires that the emulator is configured to run in "no frame skipping" mode and "synchronous audio" mode.
Multimedia TASing
Multimedia TASing is the action of recording your entire playing session on the emulator, quicksaves and quickloads and all, and then
postprocessing the video&audio recording such that all your undoes are removed from the recording. With my technique, such postprocessing can be automated.
Such method is not allowed on this site, because videos produced by it are unverifiable: It is impossible to verify whether what happens on the video is the exact product of running the game, or whether the game is hacked, video is edited, or such.
However, the emulator lacking real TASing support, it is a neat feature to produce TAS-like videos.
Here's how it works.
Every time the emulator saves or loads a quicksave, the audio&video recorder takes note of the current recording position, and logs those into an event log file.
Afterwards, by inspecting the log file, one can stitch together the video&audio such that all of the undone actions are removed, and only the final product is shown, just like in a TAS.
Of course, you're still limited to the emulator's available toolset. In the case of pSX, this means you won't have frame advance, for example.
But you do have quicksaves, and due to the recording, the emulator will be running slower than usual, so that helps too.
Good:
* Allows creating TAS-like videos (in fact, they're TASes, just unverifiable) on emulators that do not have TAS support.
Bad:
* Requires a lot of disk space: the whole recording session must be recorded, including those frames which you undo; and a keyframe must be explicitly generated every time a savestate is made, to allow for stitching. Recording is done at very high bitrate encoding, in order to allow making postprocessed AVIs at various quality levels.
* Impossible to validate the resulting video.
Source code
The source code of this project is available at: http://bisqwit.iki.fi/src/pSX-avi-recording-script.zip
Instructions are included inside, in a HOWTO.txt file.
Sorry, this will not work on Windows, for Windows lacks the LD_PRELOAD technique.
It could possibly be done by the means explained
here, but I lack the motivation & expertise to try it out.
Oh, and just to clarify, this particular release only works with pSX. Each different emulator has their own library routines that they call and in different manner, so the intercepter must be customized to take account for the differences.
It is configured such that it records video at constant 320x240 resolution, using the x264 codec. (Obviously, x264 must be installed.) When the emulator produces video at a different resolution, it is automatically scaled using the lanczos filter. (You'll notice it does when the emulator slows down
significantly.)