DevHook: Screen\Video Capture Module by ADePSP
Version 0.4

 - Video Recorder from the CheatDevice by Edison Carter

Copyright @ ADePSP 2006
All Rights Reserved

email: ADePSP@googlemail.com
website: http://www.cheatsync.net

OVERVIEW
========

This is a module for Devhook that extends the functionality of the existing screenshot
module. Taking and modifying the code for the Video Recorder from the LCS CheatDevice
by Edison Carter I have adapted it into a prx module so it can be used with DevHook.

You are no longer limited to taking animated GIF clips in Liberty City Stories. It can
now be done in any game you like. You can even capture out of game clips such as game
menus, loading animations and even the XMB.

You can record video in normal mode (half the screen size) or advanced mode (full or
quarter screen size) and video files will be saved to the PSP/PHOTO/SVCPlayer folder
where as bmp screenshots will be saved to the PSP/PHOTO folder. It is recommended 
you use normal mode or advanced mode in QUARTER_SIZE for videos as advanced mode 
in FULL_SIZE slows the game down a lot and makes it difficult to play.

The animated GIF files are uncompressed so make sure you have plenty of memory stick
space in order to store them (don't worry, if you run out of space the module will
simply stop working). You can compress the GIF files massivly without 
loosing any quality using the GIFAnimator.exe program provided. It is a very
good idea to do this if you intend to post your clips on forums but they wont work
with the SVC Player.

There is a homebrew player for these uncompressed animated gifs now included called
the SVC Player. You can find it in the MemoryStick option on the PSP XMB menus. The
player can playback all the file sizes supported by the Screen\Video Capture Module
but the files MUST be uncompressed. If you edit any of the files or even just save
them with another program then they will no longer be playable with the SVC Player.

REQUIREMENTS
============

* Firmware 1.5
* Devhook by Booster (available at http://www.cheatsync.net/DevHook.exe)

KNOWN ISSUES
============

* Has been known to sometimes crash if recording when a game is loading. There is
  no danger here it's just annoying. Try to avoid recording when games are
  loading up.

* This is still Beta software so you are advised to backup your dh folder before
  installing in case you run into problems.

* The SVC Player currently only supports uncompressed GIF playback. If you edit
  the files in any way they will become compressed and no longer work with the
  player.

* Playing larger full screen GIF files with the SVC Player slow down (depending on
  memory stick speed) because the buffer size couldn't be large enough given
  the memory available on the PSP.

CHANGE LOG
==========

v0.4

 - Bug fixed to allow users with 4GB mem sticks to use the program

v0.3

 - SVC Player now included to playback GIF Animations on the PSP
 - GIF videos now stored in the /PSP/PHOTO/SVCPlayer folder

v0.2

 - 16bit screen displays now supported (thanks edison)
 - Stop recording button combo more responsive
 - Config file added allowing customizable controls and video settings

CONTROLS
========

 Screen\Video Capture Module
 ===========================

 Music Button = Take ScreenShot / Stop Recording Video
 Right Shoulder Button + Music Button = Start Recording Video
 Right Shoulder Button + Left Shoulder Button + Music Button = Start Recording "Advanced Video Mode"

 SVC Player
 ==========

 D-Pad Left = Previous Video
 D-Pad Right = Next Video
 X = Play GIF Video
 Left Shoulder Button = Previous Skin
 Right Shoulder Button = Next Skin
 Triangle (when playing) = Toggle Full Screen Mode (on/off)
 HOLD Square (when playing) = Pause Video

INSTALLATION
============

If you have Windows simply run the Install.exe file provided and follow the on
screen instructions.

If you have any problems using the Install.exe file or are a non Windows user
you need to do the following,

* Copy capture.prx to the <PSP_DRIVE>:\dh\kd folder

* Copy capture.ini to the <PSP_DRIVE>:\dh\kd folder

* Copy the __SCE__SVCPlayer folder to the <PSP_DRIVE>:\PSP\GAME\__SCE__SVCPlayer

* Copy the %__SCE__SVCPlayer folder to the <PSP_DRIVE>:\PSP\GAME\%__SCE__SVCPlayer

* Edit each of the following files,

  <PSP_DRIVE>:\dh\150\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\150\flash0\kd\pspbtcnf_game.txt
  <PSP_DRIVE>:\dh\150F\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\150F\flash0\kd\pspbtcnf_game.txt
  <PSP_DRIVE>:\dh\200\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\200\flash0\kd\pspbtcnf_game.txt
  <PSP_DRIVE>:\dh\250\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\250\flash0\kd\pspbtcnf_game.txt
  <PSP_DRIVE>:\dh\260\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\260\flash0\kd\pspbtcnf_game.txt
  <PSP_DRIVE>:\dh\271\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\271\flash0\kd\pspbtcnf_game.txt

  If you only want to use this module when emulating 2.6 firmware then you
  only need to edit these files,

  <PSP_DRIVE>:\dh\260\flash0\kd\pspbtcnf.txt
  <PSP_DRIVE>:\dh\260\flash0\kd\pspbtcnf_game.txt

  In each file find the line that contains screenshotbmp.prx. If you find that
  line then replace the whole line with,

  ms0:/dh/kd/capture.prx

  If you can't find a line with screenshotbmp.prx in it then find the line that
  reads,

  ms0:/dh/kd/devhook.prx

  After that add a new line that reads,

  ms0:/dh/kd/capture.prx

SVC PLAYER SKINS
================

You can easily change the way the SVC Player looks by downloading new skins for it
or creating your own. A selection of forum user skins are included. A skin is simply
a 480x272 .png file that you need to place in the following folder on your PSP,

<PSP_DRIVE>:\PSP\GAME\__SCE__SVCPlayer\skins

The skin file can be called whatever you like but must be a PNG file and
end in .png

When the SVC Player is loaded you can change the skin using the Left and Right
Shoulder buttons.

There is a template skin provided with this readme.txt file called template.png.
You can edit the black area but remember that the white box in the middle is
where the GIF thumbnail will appear in the program.

CONFIGURATION
=============

You can customize certain parts of this module to your liking using the capture.ini
file that lives in the <PSP_DRIVE>:\dh\kd folder.

The following settings are available,

 - ScreenShot

   Defines the button combination that tells the capture module to take
   a screenshot.

 - VideoStartNormal

   Defines the button combination that tells the capture module to take
   a normal video capture.

 - VideoStartAdvanced

   Defines the button combination that tells the capture module to take
   an advanced video capture.

 - VideoStop

   Defines the button combination that tells the capture module to stop
   recording.

 - VideoAdvancedMode

   Can be set to QUARTER_SIZE or FULL_SIZE, the latter being the default. This
   is the screen size when capturing a video using the VideoStartAdvanced
   button combination. If you use QUARTER_SIZE then the game will slow
   down a lot less when recording but the video will be recorded a lot
   smaller.

 - Delay

   The number of miliseconds to wait after each frame of video is captured. the
   default is 100. The lower the number the higher quality the recording will
   be but the slower the game will run. Higher numbers reduce quality
   but improve performance. Use with caution!

 - Overwrite

   Determins if existing video or screenshot capture files are overwritten each
   time DevHook is launched. The default is YES. If you specify NO then your
   existing screenshots and video gifs will be preserved but you are more
   likely to run out of mem stick space this way which will stop the capture
   module from working.

For the button combination settings you must define the PSPSDK button constants
that will be used to trigger the action. You may specify more than one
button constant using the + symbol to seprate them.

The default button setup is as follows,

ScreenShot = PSP_CTRL_NOTE
VideoStartNormal = PSP_CTRL_NOTE + PSP_CTRL_RTRIGGER
VideostartAdvanced = PSP_CTRL_NOTE + PSP_CTRL_LTRIGGER + PSP_CTRL_RTRIGGER
VideoStop = PSP_CTRL_NOTE

You can change this using any combination of the following constants,

Select button,
 - PSP_CTRL_SELECT

Start button,
 - PSP_CTRL_START

Up D-Pad button,
 - PSP_CTRL_UP

Right D-Pad button,
 - PSP_CTRL_RIGHT

Down D-Pad button,
 - PSP_CTRL_DOWN

Left D-Pad button,
 - PSP_CTRL_LEFT

Left trigger,
 - PSP_CTRL_LTRIGGER

Right trigger,
 - PSP_CTRL_RTRIGGER

Triangle button,
 - PSP_CTRL_TRIANGLE

Circle button,
 - PSP_CTRL_CIRCLE

Cross button,
 - PSP_CTRL_CROSS

Square button,
 - PSP_CTRL_SQUARE

Home button,
 - PSP_CTRL_HOME

Hold button,
 - PSP_CTRL_HOLD

Music Note button,
 - PSP_CTRL_NOTE

Screen Brightness button,
 - PSP_CTRL_SCREEN

Volume up button,
 - PSP_CTRL_VOLUP

Volume down button,
 - PSP_CTRL_VOLDOWN

Wlan switch up,
 - PSP_CTRL_WLAN_UP

Remote hold position,
 - PSP_CTRL_REMOTE

For example, if you want to press Down on the D-Pad and the Left Trigger to take
a screen shot you would write this,

ScreenShot = PSP_CTRL_LTRIGGER + PSP_CTRL_DOWN


 *********************************************************************************
 *                                                                               *
 * SPECIAL THANKS TO adrahil FROM ps2dev.org FORUMS FOR ALL THE HELP WRITING PRX *
 * FILES, THE BETA TESTERS, SKIN DESIGNERS AND Edison Carter FOR THE             *
 * CheatDevice CODE.                                                             *
 *                                                                               *
 *********************************************************************************


