Reservoir Ripper by Reservoir Gods [web]
RESERVOIR RIPPER
----------------
CODED BY MR PINK
(C) 1995 RESERVOIR GODS
** INTERNAL RELEASE - NO SPREADING **
The "Reservoir Ripper" is designed for ripping graphics from Falcon
games and demos for use as screenshots in Maggie.
Its store pictures in a new GRIP (Gods RIPper) format with the
extension .RIP - this contains all picture data, screen dimensions and
all palette data.
Unfortunately this format is not supported by any art package or
viewer yet as I have just invented it. I am currently coding a viewer.
This format is designed for use in the Falcon Maggie shell.
There is now also the option to save in .GOD format. No matter what
resolution you are running from it will convert the screen into a true
colour picture.
To access the ripper you will have to plug a jaguar joypad into Port
A. Run the ripper, install your vectors, run your target program, get
to the place you want and press option!
LOADING
=======
The Reservoir Ripper can be loaded in one of two ways - either the
conventional way by just double clicking on it, or you can drag your
target program onto it. It fully supports the command line, so if you
wish to rip a demo, drag it onto the ripper and this program will be
executed when the vector menu is exited.
Not all programs will load properly this way, and you may get some
problems when quitting. If this happens, exit the ripper first then
load the program from the desktop in the normal way.
On loading you will get some text in the normal TOS font, press any
key to go onto the vector installation menu.
VECTOR INSTALLATION MENU
========================
This is the main control menu for the ripper.
The ripper works by latching itself onto various vectors, and here you
can choose which vectors to take over. The more vectors you use, the
slower the system will be and the greater the likelyhood of a crash.
I will give a quick over-view of the vectors and their functions:
TIMER A
-------
Used for DMA-Sound, tracker players etc.
TIMER B
-------
Used for palette switching, rasters.
TIMER C
-------
Use by TOS to monitor keyboard input - keyclick, key repeat etc.
TIMER D
-------
RS-232 baud rate generator - usually unused. This is a very fast
interrupt (very frequently called) and will slow things down quite a
bit.
VBL
---
Interrupt at the start of every frame. (The one to use if installing a
new Vector Base Register).
VBL QUEUE
---------
When system VBL is installed, routines here are executed.
TRAP #1
-------
File loading operations, screen printing, key inputs, super mode,
executing files, memory allocation.
TRAP #2
-------
For GEM only - AES/VDI calls.
TRAP #13
--------
Key/printer i-o, exception setting, system timer info, drive bitmap,
keyboard shift info, read/write disk sectors.
TRAP #14
--------
Get/set screen, WAITING FOR VBL, random, dsp communication, DMA sound
control, track read/write, exec in super mode, get/set time
IKBD
----
Keyboard Handler (+mouse & joystick)
Occurs on keyboard/mouse/joystick event.
BLITTER DONE
------------
Blitter command complete (usually off)
LINE A
------
Non-fast graphics functions. Mouse sprite on/off.
LINE F
------
some crap routines that no-one ever uses.
HBL
---
Horizontal blank - at low IPL levels only!
ERROR EXCEPTIONS
----------------
Takes over all system crashes - instead of bombing out the ripper will
be called. Bus error, address error, illegal instruction etc.
RS-232 INTERRUPTS
-----------------
All rs-232 exceptions goto the ripper. You can trigger events by
configuring the rs-232 port.
MONO MONITOR
------------
Plug in a mono monitor to trigger this interrupt.
MMU VECTORS
-----------
Memory configuration/addressing errors will trigger this interrupt.
NB - GEMDOS usually restores all these vectors.
TRACE EXCEPTION
---------------
Was going to be the centrepiece of stunning new ripping technique
which dismally failed.
ALT-HELP
--------
Screen dump vector. Press ALTernate + HELP & OPTION.
Only valid if system IKBD handler is active.
FLOPPY/HD INTERRUPT
-------------------
IT IS NOT RECCOMMENDED THAT YOU USE THIS INTERRUPT!!!!
IT COULD LEAD TO DATA LOSS!!! YOU HAVE BEEN WARNED!!!!
If all else fails, not many games/demos take over this!
RESET
-----
Press reset. This is not for ripping purposes, but for diagnostic
purposes. On pressing reset it will jump to the vector installation
screen and the currently installed vectors will be asterisked.
VBR
---
This is the start address for all other exceptions. Just by changing
this and placing the VBL ripper you can get into about 90% of demos!
More details in the next section.
THE VECTOR BASE REGISTER
========================
This is basically the start address of all other vectors. If you
change this you can create your own vector table that jumps to the
original vectors and appears transparent to the current application
you are running. Changing the VBR is the best way to get into
programs.
Putting this on RE-INSTALL mode means other vectors will continuously
reinstall this new VBR (which may cause some problems if the
application changes the VBR as my vectors will jump back to the
original system vectors).
One special function is achieved by putting "MOVE VBR" into RESTORE
mode. As the VBR itself can't restore other vectors, this is simply a
flag to indicate we want to do something more crafty. Switching
RESTORE mode on means the "Reservoir Ripper" will fool programs into
thinking Lucky Of ST's XGRABBER is installed. For example, Inter's
StarWars demo checks if the vector table is changed and will exit if
there has been any tampering here, unless XGRABBER is installed in
which case it will carry on. Some demos may detect for XGRABBER and
quit, so I didn't want this mode permenantly on, but you have the
option to access it if all else fails!
RE-INSTALL
==========
If a vector is on re-install mode, it means that if a game/demo
disables it, it will be re-installed. It will intelligently jump
through the new vector so the program will still run properly.
The best things to put on re-install are the TIMERS, VBL, IKBD and
other MFP interrupts. It is pointless putting such things as TRAPS and
LINE A/LINE F on reinstall as most programs don't take these over.
RESTORE
=======
A vector which is on RESTORE mode does all the housekeeping. That is,
it make sure the program isn't being nasty and de-installing other
vectors.
Vectors on RESTORE mode check all vectors on RE-INSTALL mode and will
RE-INSTALL any vectors that have been changed.
This is an intelligent re-installation that checks for zero, negative
and odd addresses, also check the relevant bits in MFP interrupt masks
to determine whether to reinstall vectors. Because of this
intelligence the routine can be quite time consuming, so don't put too
many vectors on RESTORE mode or the system will grind to a halt.
SAVING FILES
============
You can save files in RIP or GOD (true colour) format.
Non true colour picture saved as GOD files will be converted to true
colour mode. The current screen is used as a buffer for conversion so
ignore any mess in the top lines! (Just pretend it is the pompey
packer or something!)
Converting and Saving GOD files to FLOPPY will take AGES! You have
been warned! (save to Hard Drive or be prepared for a LONG wait!)
GOD PICTURE FORMAT:
Word: "G4" (id)
Word: X pixels
Word: Y pixels
Words: Picture Data
RIP PICTURE FORMAT
Long: "GRIP" (id)
Word: X pixels
Word: Y pixels
Word: Res (0=mono, 1=2 colour, 2=4 colour, 3=256, 4=true colour)
Word: Palette (0=st, 1=falcon)
Words: Palette Data (size dependendent on res/pal type)
Words: Picture Data
RIPPER MENU
===========
On pressing 'OPTION' on your powerpad, the "Reservoir Ripper" will
appear on your screen.
It changes resolution into 640 x 200 2 colour mode. This only takes
16k of memory and this screen memory is part of the ripper so it
doesn't interfere with the game/demo you are ripping.
Screen setting is not via XBIOS, but pokes VIDEL directly.
The main ripper screen gives information about the current resolution
and colour mode the falcon is in. The x and y dimensions of the screen
are displayed, along with the colour mode. All the important VIDEL
registers are displayed including all the horizontal registers,
vertical registers, video clock, video control, sync, line width and
horizontal scroll.
[F1] VIEW SCREEN
Pressing F1 will revert the screen back to its old mode, dimensions,
colour and address allowing you to preview the screen you are about to
save. Pressing F1 again takes you back to the main menu.
Whilst on this screen you can alter the palette type:
Press [F2] To change to an ST palette
Press [F3] To change to a Falcon palette.
My auto palette detector should calculate the palette correctly, but
in case it doesn't you can now change the palette setting on the view
screen, and see the effect.
[F2] VECTOR MENU
Allows you to reconfigure the vectors that are set up and examine
which vectors have been taken over by the current game/demo.
When the ripper is called, it checks which of its vectors are still
active. This are displayed as asterisks in the install line of this
menu. You can re-install any vectors you want, and change the re-
install and restore modes of vectors from here.
[F3] SAVE FILE (GOD)
Save screen in GOD file format.
If the screen mode is true colour, saving will be a quick process.
If non true colour, the picture is converted to true colour, which may
take some time, especially if saving to floppy.
[F4] SAVE SCREEN (RIP)
This saves all the picture and palette information from the current
screen resolution.
TRICKS & TIPS
=============
The best way to use this Ripper is to simply install the "MOVE VBR"
and "VBL". (Press F5 and R). This will get into nearly every falcon
program.
Some demos move the vbr themselves, or detect for its change and exit.
In these cases, don't turn on the "Move VBR" option and instead try a
lot of fiddling!
The best vectors to use are the TIMERS. Timer C and D are rarely
changed by programs. The TRAPs are never usually changed, but are not
accessed every VBL, although some demos/games will use trap #14 to
wait for the vertical blank (e.g. Papa was a bladerunner by EKO).
The IKBD is another good thing to take over, although you will have to
move the mouse/touch the keyboard AND press option to trigger the
ripper.
A useful default configuration would be:
INSTALL REINSTALL RESTORE
TIMER A * *
TIMER B * *
TIMER C * * *
TIMER D * *
VBL * *
VBL QUEUE *
TRAP #1 * *
TRAP #2 * *
TRAP #13 * *
TRAP #14 * *
IKBD * * *
That is having all TIMERS, TRAPS, VBL, VBL QUEUE & IKBD installed.
TIMERS, VBL and IKBD will be re-installed if disabled.
The traps, ikbd and timer c handle the RE-INSTALLING.
BUGS
====
Loads!
The main problem is with TIMER D.
DO NOT put TIMER D on RESTORE mode if lots of vectors are on RESTORE
and REINSTALL mode! It will crash!
You can put every single vector on INSTALL, everything on RE-INSTALL
and all on RESTORE except TIMER D.
You can put timer d on restore mode if not many other vectors are on
restore/re-install mode.
Keyboard handler is shagged after reset.
I have fixed the bugs with the screen handling and it will quite
happily change between screens in a multitude of resolutions on both
RGB and VGA monitors. It isn't so keen on viewing huge resolutions
though (1600 * 600 etc).
SCARY WARNING
=============
This program is not for spreading. If demo coders see which vectors I
am taking over they may trash them to prevent picture ripping.
[ MR PINK : after the storm ]
[ back to the prod ]
