Short : Fakes OpenLibrary() to open any version Author : Marcin Orlowski Uploader: Marcin Orlowski Type : util/libs Date : Fri Jan 29 11:29:57 1999 Version : 0.1 INTRODUCTION ----------------- It seems not many OS 3.1 equipped Amiga programmers know, that while OS 3.0 was released, CBM (or whatever) did NOT bump version numbers of all OS components to v39. Due to this bug, if you target you app for OS 3.0 and above, you HAVE TO make sure, your program does NOT require all libraries with version 39. Hopefuly this 'version incompatibility' causes problems under very rare circumstances. As far as I know, you should remember, the following components of OS3.0 are not version 39: - keymap.library (is v37) This 'list' is not complete, but I don't expect it to be much larger. But it's their fault for sure, and it's up to you to work that around. HOW? If you are programmer: MAKE SURE YOU DO NOT DECLARE __oslibversion 39 IF YOU USE ANY OF MENTIONED LIBRARIES. Better lower the limit to 37 and e.g. match exec library against v39 by hand for instance. If you are NOT programmer: keymap.library resides in ROM, so don't look for it in LIBS: drawer. Either hardware (ROM) update, or soft kicked 3.1 can upgrade it. AFFECTED PROGRAMS ------------------ Hopefuly not many. So far I saw two: - Amiga VNC client (VAA) (take a look: http://www.orl.co.uk/vnc/) - very early AWeb 0.x or something (mentioned for statistics only ;-) WHY I CREATED IT? ------------------ Because VVA's author seems to have network problems and my bug reports bounced. And I wanted to launch VNC ASAP. That's the story behing ;-) SO, WHAT DOES IT DO? ---------------------- If you find any program that refuses to launch on your (mostly 3.0) system, and you are sure, it should work, first, check if you got all external files it wants like fonts etc (SnoopDos rules -> take it from Aminet). Then if all files are available, check (SnoopDos again) if the program does not attempt to open any of the above mentioned libraries with inproper, unavailable on your system, version. If you discover it does, launch OpenLibPatch and try again. If that was the only reasonif failed, it should be cured now. I suggest to quit or disable OpenLibPatch as soon as you launch 'bad' program. TECHNICAL? -------------------------------- OpenLibPatch is a commodity driven patch. You can remove, disable and enable it using Exchange - standard system tool. When the patch active (in Exchange - commodity is active), it redirects all OpenLibrary() call to OldOpenLibrary(name), which allows you to open any version of library if it exists. No matter what version you really have. When disabled, it does nothing of course, except calling original OpenLibrary() function with passed arguments NOTE: this may cause your system to crash, if you try to launch OS3.x program on your OS2.0 equipped machine! OpenLibPatch does NOT add any feature to your outdated system, just fools it a bit!. Better upgrade to OS3.x and sleep well ;-) REQUIREMENTS ---------------------- OS 2.x or better (for presence of commodities.library) BUGS? -------------------------------- No check is made while removing the patch. So if anything else (SnoopDos for instance) patched OpenLibrary() too, you should quit it BEFORE you quit OpenLibPatch or Guru may drop you a visit. Yes, I know there is many software managers that helps solving this problem but I don't plan to develop this program any longer - it was quick hack for the needs. LEGAL MUMBO JUMBO -------------------------------- This program is written and copyrighted by Marcin Orlowski . You may use it free of charge, spread, peek, poke, crunch, rename, delete, resource etc - I don't care. If it crash your system or cause any data loss -> it's NOT my fault! Use this software at your own risk. Amen.