This is a brief description of how to install LPmud 3.2(.1) on an Amiga. See also README.Amiga for details. Compiling the driver -------------------- Unpack the driver source into a directory, keeping the subdirectory structure. Copy the files 'machine.h', 'config.h', and 'Makefile' from hosts/amiga to the top directory. Edit the Makefile, defining where the lib and bin is, and selecting your compiler and your type of net communication. Check definitions in config.h, most are probably good as they are. The ones that are important wrt. which mudlibs can be run are COMPAT_MODE, NATIVE_MODE, OLD_PREVIOUS_OBJECT_BEHAVIOUR, OLD_EXPLODE_BEHAVIOUR, INITIALIZATION_BY___INIT You get the most 2.4.5 compatibility if you define all of these but NATIVE_MODE . Likewise, you get the most 3.0 compatibility when you define all but COMPAT_MODE. The most interesting and versatile configuration is not to set any of these ('cross-compat mode'). Do 'dmake'. This leaves you after some time with the executable 'driver' in the directory. Do also 'dmake playmud' if you want the client program for local access. Installing the driver --------------------- Copy the driver executable and a client program (like PlayMud) into your command search path. The driver expects the assign MUDLIB: point to the top directory of the mudlib, and SWAP: to a non-RAM-directory to put it's swap file there. If erq is used, the assign MUDBIN: has to point to the directory with the erq executables. The driver needs at least 50k stack. Make a directory 'mud', which contains a dir named 'src', 'bin' and 'lib'. Move the game driver source (this code) to the src directory. Running the driver ------------------ Given that all assigns and stacksize are set, the driver can be run with 'driver' (see README.3.2 for command options). If you see the message 'Setting up ipc', then you are up and running. Test with 'letnet localhost 8888' (if you're running AmiTCP) or with 'PlayMud' (if you're not running AmiTCP); that is, when you change the port number in config.h , the changed number does apply. When used for actual mud runs, the driver's output should be redirected to a mudlib readable file, e.g. 'driver >>MUDLIB:parse.log'. The '>>' are necessary to make the file both read- and writeable. You might experience 'stack panic's if your mudlib uses large savefiles. Reason is that restore_object() needs lots of local stack for large savefiles. In such cases, truncate the savefile and/or give the driver more stack. Installing the Mudlib --------------------- Mudlibs are available for anonymous ftp, e.g. from ftp.imaginary.com, ftp.cd.chalmers.se or ftp.cs.tu-berlin.de . Most mudlibs are from actual Muds and should be used for evaluation purposes only (Copyright issues can hardly be enforced, but nevertheless are taken seriously - infringements will give the offender a bad stand in the (mud) community). To install a mudlib, simply unpack it. To use it, assign MUDLIB: to it's top directory and start the driver. However, small modifications might need to be done before. If a mudlib is not written for use with Amylaar 3.2.1, modifications have to be made: the include files erq.h and mudlib/sys/#?.h must be copied into the mudlib's include directory, and the master and the simul_efun object must be merged with the corresponding objects in the driver's mudlib/ directory. LPMud 2.4.5 ----------- This very traditional (read: old) mudlib is still popular as it's free and very simple. Amylaar 3.2.1 supports it fully, one just has to copy all the include files as described above, and to replace obj/master.c and obj/simul_efun.c with the corresponding objects from the driver. Compat mode driver required. Nightfall --------- Nightfall was written for Amylaar, thus only the driver include files in a given mudlib release (located in secure/) might need update. Nightfall uses a slightly patched driver which allows logins on multiple ports, but provides compability code on its own. Cross-compat mode plus (e)uids driver required. One Step Beyond --------------- One Step Beyond was written for Amylaar, thus only the driver include files in a given mudlib release (located in sys/driver/) might need update. One Step Beyond uses a slightly patched driver which allows logins on multiple ports, but provides compability code on its own. Cross-compat mode plus (e)uids driver required. Morgengrauen ------------ Morgengrauen was written for Amylaar, thus only the driver include files in a given mudlib release (located in secure/) might need update. Some Mudlib releases come without ACCESS.ALLOW in the top directory, in this case copy that file from mudlib/ACCESS.ALLOW or hosts/amiga/ACCESS.ALLOW. Morgengrauen uses a patched driver which allows logins on multiple ports and offers an additional efun. If necessary, extend it's simul_efun.c with: #if !__EFUN_DEFINED__(query_comm_stat) public int * query_comm_stat() { return ({ 0, 0 }); } #endif // The following only when using a single-ported driver. public varargs int query_mud_port(mixed arg) { if (arg && !intp(arg) && !objectp(arg)) raise_error("* Illegal argument 1 to sefun query_mud_port\n"); if (!arg || !intp(arg) || arg == 1) return efun::query_mud_port(); if (arg == -1) return 1; return 0; } Cross-compat mode plus (e)uids driver required. TubMud ------ TubMud was over the time adapted for Amylaar, thus only the driver include files in a given mudlib release (located in sys/) might need update. Due to its complexity, a stack of at least 200k is necessary. The master object is /kernel/master.c, to be specified on the driver commandline with the -M-option. Using the mudlib on Amiga will result in several errors which cause is still unknown (sorry). Compat mode driver required, start with option -M/Kernel/master.c . Final Advice ------------ One does not need to be a hardcore mudder to install ones own mudlib, but doing so is also not for the squeamish. Persistance and a certain willingness to experiment are very recommended.