Short: JOTD Startup for HD Installs & Degrader Type: game/patch Author: jffabre@club-internet.fr (Jean-François Fabre) Uploader: jffabre@club-internet.fr (Jean-François Fabre) JOTD Startup: THE ULTIMATE GAMESTARTER FROM WORKBENCH As you could notice, I created and uploaded many HD-Install & fix programs for non-dos games, but all of them were standalone, and in case of an error in the general loader routines, I had to remake the loader (relink) and upload again. Bert Jahn had developped WHDLoad, which solves this problem because it allows to load small, game-specific loaders and run them using its own degrade/hd/dos code. This technique allows easy updates in case of bugs or new functionnalities. That's what I decided to do myself. JST was born from a 8-hour adaptation of my link library. It's an equivalent to WHDLoad but a bit more powerful, as the system can be called in the slave loader, messages can be printed, a gui can be opened, there are lots of cool functions, and much more. It also allows easier programming of loaders (but WHDLoad is still cool!), and can run normal DOS programs in degraded mode (68060 support). WHY THIS PROGRAM HERE: I uploaded it because it's needed but not included in my new installs and also Keith Krellwitz ones, because he uses my code. This allows to save space in the archives and avoids leaving old versions of JST around if a bug shows up. ***NEW SINCE V0.8***: JOTDStartup can also be used as a DEGRADER for all your old DOS games with the EXECUTE command. As a bonus, CLI-only games will be startable from WB if you specify JST as default tool and the EXECUTE tooltype. I will give up the developpement of run500. Now JST with EXECUTE will replace it in a much better way. JOTD HD Startup is © 1995-1997 Jean-François FABRE JOTDStartup is © 1997 Jean-François FABRE JOTDStartup is SHAREWARE! From V0.3 I decided to ask a fee of US$10, 20DM, 7£ or 50FF to be able to become a registered user. However, I will register whoever I think he or she did something cool for me (already sent disks, money, sports cars, Sandra Bullock clones...). Lots of people are already on the list. If you think I forgot you, contact me. To register, send the money to: Jean-François Fabre 19 Rue Emile Duploye 34500 BEZIERS FRANCE Specify your e-mail or send a blank disk with the money (for non-internet users), and I'll send you the registered version of JST (+the latest installs for the ones who sent a floppy but specify which ones in priority as the whole archive is big) If you think this is too expensive, you can use the "limited" shareware version. It has no limitations compared to older free releases but the new features will be reserved to registered version. However, if I fix a bug, it will be fixed in both registered and shareware version of course. All the future loaders will be compatible with the limited version. I hope you understand JST and all the loaders were hard work for me, that's why I decided it. The money will be shared between me and the loaders programmers using JST (2 for the moment, including me). OPTIONS: You can select the options: - From the CLI by typing the arguments (JST ? for help) - From the WB by activating/disabling the tooltypes Some have effect only on loaders that support them. They will be noted are *OPTIONAL* Some have effect on all loaders. They're noted as *GENERAL* Here's a short description of the options. - OBJNAME="object": lets you specify an object name (icon launch). - NTSC (GENERAL): default for loader is PAL. NTSC changes this to NTSC (really?) - TRAINER (OPTIONAL): activates trainer when there is one. It can be infinite lives, time, etc... - QUIET (GENERAL): displays nothing and opens no window. No error messages, and no author message. Be sure that everything works OK before selecting this one. - NOCACHES/NOCACHE (GENERAL): Sets CACR to 0. All caches are disabled. 68060 supported. - LEAVECACHES (GENERAL): Don't touch the caches. Disabled by NOCACHES - NOFAST (GENERAL): Always allocates extension memory from chip memory. If you got crap sprites, this could help. USeless in the case of 512K mem games. - HDLOAD (GENERAL): to save some memory, you can load from HD instead of caching all the files in RAM. It works for diskfiles and normal files. Useless in games with only 1 diskfile, use LOWMEM instead. - EXECUTE (DOS GAMES): this tooltype will allow you to use JST as a normal degrader like KillAGA, but with 68060 support and more control over the system. If you specify EXECUTE, JST will try to execute the object you passed, degrading the display to PAL (or NTSC if you select NTSC), zeroing the VBR (unless you specify LEAVEVBR), disabling 68060 specific caches (unless you set LEAVECACHES) and setting the sprites to OCS size (required by most games). Of course, loader-specific options like LOWMEM, HDLOAD, NOFAST, SAVEDIR and DELAY will not work. - USERDATA: if the user passes a string to this argument/tooltype an wants to run a program using EXECUTE (degrader features only), then this string hold the arguments of the program. If it's a loader, it can be used to specify some parameters to the loader. Useful for disk rippers to pass track start/end. Max length allowed is 80 characters. - LOWMEM (OPTIONAL): will not cache diskfiles in memory. Read directly from disk. Useful if you've got a A1200/020/NoFast. With normal files, LOWMEM consumes even less memory than HDLOAD. Some loaders may bring up and error message or crash with an exception. In that case they don't support this option yet :) - NOOSSWAP (OPTIONAL): Disables in game HD loads/saves. Depending on the loaders, NOOSSWAP will try to access the floppy when you try to save/load a game, or will do nothing. If you don't select NOOSSWAP, if the game has some data to write, it will do it on your hard drive. It's rather safe (I've been using it for a while now) but you should avoid filesystems or disk caches that perform copyback caching (AFS, possible in Dynamicache). This is not generally harmful, except if you quit by a reset or the game locks. In that case, your hard drive can be unvalidated. - NOQUIT (only in degrader mode (EXECUTE)): some games contain autodetachable code and run in background. If you try to run such a game with a degrader, the degrader will enhance display/caches when the program autodetaches and *crash*. NOQUIT will cause JST to run in degraded mode forever (until you reboot). - DELAY (GENERAL): Waits a little while after every OS swap. This can be useful for low speed media. It allows the drive to stop and leaves time for interrupts to be processed before the system is frozen again (CD32). - SAVEDIR (OPTIONAL): allows the user to specify a directory where the game data like hiscores or savegames will be saved/loaded. Some loaders with HD saves don't support it yet. This function is only available to registered users. - LOADDIR (GENERAL): *not implemented yet*. For registered users only. - DEADLY (GENERAL): "Clean" installs should run with DEADLY on, because it trashes ExecBase and redirects interrupt vectors to an error message, so no ROM code is called if an unexpected interrupt occurs. Leaving Execbase alive can be unreliable and can trigger 81000005 GURUs in the case the loader still uses system routines such as AllocMem() (which is not recommended, but it's up to the programmer. I generally remove all system code in the game). Some options are here for debug and developpement purpose only: - DEBUG (GENERAL): useful only for bug reports. Makes a memory image on exit. Can be FULL or REGS - LEAVEVBR (GENERAL): useful only for debugging purposes, and with a debugger such as Action-Replay, HRTMon or ThrillKill. Don't select it unless you want to debug. - TEST (GENERAL): The loader will not start. Only the options selected will be displayed. - VERBOSE (GENERAL): The loader will display information while initializing (memory, files...) - DEADLY (GENERAL): Your loaders should all run with this one on EXAMPLES from CLI for normal JST objects: JST MagicPocketsHD NOCACHES DELAY NTSC JST HookHD NOFAST HDLOAD SAVEDIR=ram: (registered users only can use SAVEDIR) Examples from CLI for normal DOS executables: JST Dune NOCACHES EXECUTE (the game does not like caches) JST ssboot EXECUTE USERDATA=SWOS (the ssboot executable needs SWOS as an argument) JST AGADemo LEAVEVBR LEAVECACHES NTSC EXECUTE (the demo likes caches and does not care about the VBR relocated in fastmem, but I've got a multiscan WB, and I want to boot in 15KHz with NTSC) Of course if the dos executable sets PAL or opens an intuition screen, display features of JST will be cancelled. START AND END SCRIPTS (Registered version only): With the registered version, you're able to make JST run scripts on startup and when you quit the loader. Useful to disable/enable commodities, ethernet cards, enforcer, etc... Those 2 scripts are not specific to each loader but general. They must be located in S: and be called: jstpre.sh for the pre-JST script jstpost.sh for the post-JST script jstpre.sh will for instance contain: enforcer off handlecx multicx disable This feature is also active (and very useful) with EXECUTE option (degrader mode). You won't have to make a script for every game you install. NOTE: if T: does not exist, the scripts won't be executed (PLEASE keep T: in RAM: or a virtual disk) PROBLEMS: Some error messages can occur before or after the game has started: - Object is not relocatable: the game-specific loader must not address variables in an absolute way (this error is more for programmers) - Invalid Object: someone tried to load non-loader objects or other files. To run a normal DOS program with JST don't forget to set EXECUTE tooltype/argument. - Not enough memory: try to free some memory. Playing with NOFAST and HDLOAD and boot without startup-sequence can help too. - Unsupported version: some games exist in different versions. I try to support some of them, but if the program does not recognize the version, it can display this message (it can crash too!). - Exception: : some illegal instruction was encountered while the game executes. Try NOCACHES and NOFAST to see if it helps. Else report me/patch author the error with accuracy. - Uninitialized level interrupt: remove the DEADLY mode :) - Wrong virtual disk ID: patch error. Contact author. - Diskfile not found, Disk Read Error: in HDLOAD mode, a file is missing. - GetDiskPointer called while in LOWMEM mode: LOWMEM is not possible with this loader. - Not enough memory while you've got plenty: check the priority of your different memory expansion cards, because JST uses MEMF_REVERSE, and maybe that's the cause. Use the VERBOSE option to see what's the problem. If the game simply hangs or resets, check that you don't have some MMU related program running (enforcer, VMM...) or low level patches like Fastexec. My patches are reported to work with softkicked amigas, though. Some versions of the 68060.library can bring up problems too (gfx errors) The game can crash if it finds an exception and there is not enough memory to restore the system and display the exception message. Buy some more mem :-) Some old versions of JST may be able to run a loader while the newest cannot. In that case, please report me the problem urgently. History: see the file 'history.readme' in the JST distribution STILL TO DO: - Prefetch diskfile data in memory to avoid too much os swaps in LOWMEM mode (Registered users only) - Some other secret cool features for registered version :) DISCLAIMER: I'm not responsible for any damage caused directly or indirectly by this piece of software. DISTRIBUTION: The shareware version of JST and my HD work can be distributed freely. However, I'd appreciate that you drop me a line if you include it in a coverdisk or PD collection. If you like (or you dislike) this piece of software, you can e-mail me. The registered version of JST should NOT be distributed. ME: Visit my patch page, where all my HD work is gathered, along with some other quality installers (all for original software), and some other interesting related freeware stuff: http://www.ensica.fr/~jffabre/patches.html And my home page (totally stupid stuff): http://www.ensica.fr/~jffabre/ (english) http://www.ensica.fr/~jffabre/index_fr.html (french) E-mail: jffabre@club-internet.fr (at home, small files only, checked very often) Or: jffabre@ensica.fr (You can send big data files from unsupported versions, etc...) Jeff