home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma01.dms
/
ma01.adf
/
degrader
/
Degrader.doc
< prev
next >
Wrap
Text File
|
1993-01-04
|
13KB
|
324 lines
Degrader V1.30 © 1991-93 Chris Hames. All rights reserved. (17700 bytes)
-------------------------------------------------------------------------
You upgrade your system and what happens? The idiots who wrote your
favorite program didn't follow the guidelines and it no longer works. This
is where degrader comes in, it will try to degrade your system so that the
old brain dead program will work on your machine. You can also just use it
to boot off floppy drives other than DF0:, force your machine to PAL or
NTSC, turn the audio filter on or off and other things. Please note that
many of Degrader's functions are hacks in that they may not work on future
versions of the Amiga hardware or software. The Early Startup Control
provided in Kickstart 3.0 (just hold down both mouse buttons at reset to
use) will help getting old software to work as well. Use its options where
possible as they are more likely to work.
***************************************************************************
If you don't know what all the technical junk is about but just want to get
a program to work:-
The most common way to get a brain dead program to work is to try this
"Degrader NOFASTMEM NOCACHE PRIVILEGE FLOPPIES 0444 SURVIVERESET NOEDITOP"
Or if you are running Kickstart 3.0 you should try something like
"Degrader NOFASTMEM PRIVILEGE SURVIVERESET NOEDITOP" and then use the Early
Startup Control to disable all disk devices except DF0:, disable CPU caches
and select the ECS or Original chipset.
If you what maximum speed on a machine with a data cache (68030+) and AGA
(A1200/A4000) when the program works fine without Degrader but is NONDOS so
you can't use SetPatch or CPU to turn on the extra features
"Degrader ENLIGHTEN CACHESON SURVIVERESET NOEDITOP"
***************************************************************************
When you run the program from workbench you are presented with various
option buttons which you can toggle on(down & highlighted)/off:-
50Hz
Changes the screen refresh rate to 50Hz (PAL). You can use this to view
the extra lines a PAL machine has that a NTSC machine normally doesn't.
Good for NONDOS disk games and demos that are designed for PAL machines
only Requires ECS Agnus or Alice and a appropriate monitor. Note has
varied effects with a AGA chipset depending on the screen mode. Kickstart
3.0 Early Startup Control has a similar function.
60Hz
Changes the screen refresh rate to 60Hz (NTSC). Requires ECS Agnus or
Alice and a appropriate monitor. Note has varied effects with a AGA
chipset depending on the screen mode. Kickstart 3.0 Early Startup Control
has a similar function.
50HzSystem
Modifies GfxBase to give values that will make some programs think this
machine is PAL. Useful in Kickstart 1.2/1.3. Doesn't seem to work well
with Kickstart 2.0. Kickstart 3.0 Early Startup Control has a similar
function.
60HzSystem
Modifies GfxBase to give values that will make some programs think this
machine is NTSC. Useful in Kickstart 1.2/1.3. Doesn't seem to work well
with Kickstart 2.0. Kickstart 3.0 Early Startup Control has a similar
function.
AudFilterOff
Most Amiga's have a audio filter which can be switched off and the power
light usually dims as well.
AudFilterOn
Most Amiga's have a audio filter which can be switched on and the power
light usually brightens as well.
NoFastMem
What this does depend on whether you selected for the machine to reset. If
reset, it will stop any memory besides chip memory from being added to the
system during reset. If Kickstart 2.0 or later is being used you can still
add memory yourself. So if you wanted to save your Fast ram for a certain
purpose you could use this option then when your machine boots up use
ADDMEM to add the memory and you will have the full amount free. If you
don't select a reset option it will patch the system so no Fast memory will
be allocated by programs.
HalfMegChip
Sets the amount of chip memory your system has to 512K. Some programs
don't like it if you have 1 or 2 meg of chip memory so use this option to
trick the program into thinking you only have 512K of chip memory. If you
don't select a reset option it resorts to some nasty memory list
manipulation.
OneMegChip
Sets the amount of chip memory your system has to 1024K. Some programs
don't like it if you have 2 meg of chip memory so use this option to trick
the program into thinking you only have 1024K of chip memory. If you don't
select a reset option it resorts to some nasty memory list manipulation.
NoMemAt
Allows you to stop a certain memory block from being added to the system
memory list. If you don't select a reset option it just gives that memory
block a priority of -128 so it is not allocated until you run out of other
memory. NOTE: you must turn the Button "ON" as well as enter value.
AddMem
Adds memory to the memory list. Useful if you have a non-autoconfig memory
board and want your memory added at reset time so it is used a lot more
instead of your chip memory. NOTE: you must turn the Button "ON" as well
as enter values.
NoCache
Turns off your Cache & Burst modes of 68020 or higher processors. Some
games do what is called self modifying code and often end up with the
processor executing what is already in the cache instead of what they
intended. Kickstart 3.0 Early Startup Control has a similar function.
Privilege
Changes move SR,<ea> to move CCR,<ea>. MOVE SR,<ea> is privileged on
processors 68010+. If a program gives a 00000008 GURU consistently this
might help. Very few programs read the status register directly, even
fewer get it wrong as well.
TimeWaste
Slows down your machine based on the value you give 65535 to 1. The
smaller the number the slower your machine gets. Won't work with many
programs as they take over or turn off the interrupt I use. NOTE: you
must turn the Button "ON" as well as enter value.
BlockDevice
Stops programs from opening a specified device.
DF0: is -> DF0:
DF1: is -> DF1:
DF2: is -> DF2:
DF3: is -> DF3:
Use these to swap drives around. Set a drive to DF4: to make it
unuseable. Hence it won't take up precious chip memory. Only works with a
reset operation.
CachesOn
Currently the system doesn't turn on the data cache, until SetPatch time
(provided you have one of course (68030+)). This will turn on the
instruction cache and burst as well as the data cache and could get you
extra speed if it is not possible to run SetPatch before the program
normally.
Enlighten
This is only relevant if you have the AGA chipset in your machine (such as
A1200's and A4000's). The extra bandwidth and features aren't normally
turned on until SetPatch is executed. If a NONDOSDISK program is written
correctly enough for it to run with the extra bandwidth and new features
then it could gain a lot of speed in graphics operations with them turned
on. It only works with Kickstart 3.0.
PromoteAll
This only works with Kickstart 2.0 or later. It allows you to make all
programs that call OpenScreen use a specific monitor. You must have a
capable monitor and have it also in your devs/monitors drawer or similar.
NOTE: you must turn the Button "ON" as well as enter value. Here are the
values of some monitor types and uses:-
$11000 Make all opened screens 60Hz.
$91000 Make all opened screens use the NTSC DBL scan modes.
$21000 Make all opened screens 50Hz.
$a1000 Make all opened screens use the PAL DBL scan modes.
$00000 Remove the monitor part from open screens.
You can also do some complex things like force most screens to SUPER72
800*300 mode by giving a value of $81020.
NoView
This is usefull for AGA machines it will create a blank display and get the
system very close to a ECS state. Does not work with reset options.
***************************************************************************
After you have selected the options you want you have a choice of four
buttons at the bottom of the screen. To do it now only, to do it now and
then load and run a bootblock, to survive one reset only, or to survive
resets until the left mouse button is held down and the right mouse button
is not down at reset.
If you do a reset selection your machine will reboot and at reset time your
screen will go dark blue->light blue->dark orange->light orange. Note that
some options require Kickstart specific code but should work with at
least:-
Kickstart 1.2 ROM.
Kickstart 1.3 ROM and A3000 Kickstart 1.3 file.
Kickstart 2.04 ROM and A3000 Kickstart 2.04 file
Kickstart 2.05 ROM (37.300)
Kickstart 3.00 ROM (39.109)
The screen should go green at reset time if Degrader needs to be familiar
with the Kickstart to do one of the selected options, but is not.
***************************************************************************
If you start degrader from a Shell/CLI you can use all the keywords shown
in the window display as described above, except the DF0: stuff. And
there a few more:-
Floppies
This is the Shell/CLI interface to changing floppies. Give it 4 numbers
with values 0-4.
RunBootBlock
Start the NDOS disk in DF0:.
SurviveReset
Reset then do all the goodies.
SurviveResets
Reset then do all the goodies. And still be there to do it next reset.
Keep it up until the user press the left mouse button at reset.
NoEditOp
Don't bring up the window to edit options.
***************************************************************************
Examples of using Degrader from a Shell/CLI:-
"Degrader AUDFILTEROFF"
Bring up option window with audio filter selected.
"Degrader AUDFILTERON NOEDITOP"
Turn the audio filter on. The option window is not used.
"Degrader 60HZ 60HZSYSTEM"
Bring up option window with 60HZ and 60HZSYSTEM selected.
"Degrader ADDMEM $100000 5 10 $400000 SURVIVERESETS NOEDITOP"
Add 1 meg of memory at $400000 at each reset from now on.
"Degrader TIMEWASTE 50 SURVIVERESET NOEDITOP"
Reset with hopefully a lot slower machine.
"Degrader FLOPPIES 0444 SURVIVERESETS NOEDITOP"
Reset and only have DF0: available.
***************************************************************************
Thanks to the people who have helped with testing etc, especially:-
Pekka Heino
Andrew Morison
Michael Chamberlain
***************************************************************************
Common reasons why programs fail on one machine and work on others:-
1. Use processor to do critical timing loops and hence on different speed
machines fail to delay the correct amount. This is often the reason why
custom disk reading routines fail. Turning off your fast memory, caches
and anything else that makes your machine faster than the slowest Amiga
might help.
2. Use self-modifying code. The processor can end up running different
instructions to the the ones just loaded or modified because the cache
still holds the old values. You can turn off your caches.
3. Load into memory at a specific location. One machine might have more
system hardware or a new OS could allocate more memory before the machine
boots up and the program then overwrites memory already being used.
Turning off or disconnecting any extra hardware, and disabling all drives
except for DF0: often helps with this problem.
4. Use the hardware directly and don't write zeros to reserved/undefined
bits. The next machine comes along and those bits now do something that
the program didn't intend. If you have a AGA machine use the early startup
menu to select the ECS or original chipset. Using the NoView option just
before executing the program will often do the trick as well.
***************************************************************************
Please note this program uses the ColdCapture, KickTagPtr and sometimes
patches LVOAddMemList, LVOAllocMem, LVOAvailMem, LVOOpenDevice so good
virus detectors, like mine :-), will give you warnings.
This program may be copied as long as it is accompanied by this doc file
both unaltered & no money is charged (except for a reasonable copying fee
such as what Fred Fish charges). All use of this program is at your own
risk & I assume no responsibility or liability for any problems that occur.
If you want to contact me to give me a porsche or similar,
Chris Hames
Internet: bytey@werple.apana.org.au
bytey@phoenix.apana.org.au
FidoNet: 3:633/353
If the above addresses don't work, get the latest version of one of my
other programs such as DirWork or PC-Task.