home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -websites- / amidoom / adoom-0.7.readme < prev    next >
Text File  |  1998-02-11  |  18KB  |  480 lines

  1. Short: Amiga port of DOOM v0.7
  2. Author: Peter McGavin  (p.mcgavin@irl.cri.nz)
  3. Type: game/shoot
  4. Uploader: Peter McGavin  (p.mcgavin@irl.cri.nz)
  5.  
  6.  
  7.  
  8.                             ADoom  0.7                     16 Jan 1998
  9.                             ----------
  10.  
  11.  
  12. This archive contains an Amiga port of DOOM, compiled as directly as
  13. possible from ID Software's Linux DOOM source code.
  14.  
  15. On 26th Dec 1997 I learnt that ID Software released the source code of
  16. DOOM and made it available by ftp.  So I immediately downloaded it and
  17. tried compiling it with SAS/C 6.58 for the Amiga.  This archive
  18. represents my results after about 12 evenings and 3 days.  Much of
  19. that time was spent tracking down 1 bug.  I need to go back to my real
  20. job soon...
  21.  
  22. Warning: This version of ADoom is still under development and you
  23. might find some bugs.
  24.  
  25. You can get the original ID Software Linux DOOM source from:
  26.  
  27.    ftp://ftp.cdrom.com/pub/idgames/idstuff/source/doomsrc.zip
  28.  
  29. Source code of ADoom, which includes all my changes, is in a separate
  30. archive on Aminet.
  31.  
  32. ADoom is OS-friendly and multitasks.
  33.  
  34. ADoom puts up an ASL requester for the ScreenMode.
  35.  
  36. Sound effects, ECS support and 68040-optimised C2P are included since
  37. version 0.1.  Version 0.4 adds 68020-optimised blitter-assisted C2P
  38. and double-buffering.  Version 0.5 adds music.  Version 0.6 adds
  39. 68030-optimised blitter-assisted C2P.
  40.  
  41. Low detail mode, which can provide a significant speedup on 68030, is
  42. available and working from ADoom version 0.6.
  43.  
  44. Version 0.7 fixes some serious bugs that caused crashes on 68040+AGA
  45. and 68060 Amigas in version 0.6.
  46.  
  47. You can use a joystick in the 2nd gameport from v0.2.
  48.  
  49. AmiTCP network support was added in v0.2, but so far is rather
  50. unstable and slow, even with a direct ethernet connection between 2
  51. fast Amigas.
  52.  
  53. If disk loading of levels is very slow, try adding more disk buffers
  54. with the AmigaDOS ADDBUFFERS command.  Adding 300 buffers can vastly
  55. increase the level-loading speed.  One person recommended DynamiCache
  56. instead, but I haven't tried that.
  57.  
  58. Thanks to several people who sent me icons for ADoom.  I put them in
  59. the more_icons subdirectory in this archive.
  60.  
  61. There several (different) Amiga DOOM ports at "http://www.pluk.com/"
  62. including one called Amiga Doom by Trance that uses GG environment and
  63. AHI, and another called DoomAttack by Georg Steger which is very fast
  64. on 68030s.  This web site is to be replaced by "http://surf.to/adoom/"
  65. at the end of February.
  66.  
  67.  
  68.  
  69. REQUIREMENTS:
  70. -------------
  71.  
  72. A 68020+ Amiga running at least OS 3.0, with at least about 4 or 5 Mb
  73. of fastmem.
  74.  
  75. Unless you have 68040+, you must have an ECS or AGA Denise chip.
  76. Currently the combination of 68020 or 68030 with OCS doesn't work
  77. because OCS can't do long blits used by the 020/030 C2P routine.
  78.  
  79. A graphics card, CyberGraphics and 68040+ are strongly recommended.
  80.  
  81. ADoom also works with AGA or ECS (EHB) using C2P.
  82.  
  83. --------------------------------------------------------------------
  84. | YOU NEED TO GET A WAD FILE THAT WORKS WITH LINUX DOOM AND PUT IT |
  85. | IN THE SAME DIRECTORY AS ADOOM.                                  |
  86. --------------------------------------------------------------------
  87.  
  88. Otherwise you get the message:  "Error: W_InitFiles: no files found"
  89.  
  90. WAD files typically have names like DOOM1.WAD and DOOM2.WAD.
  91.  
  92. Not all WAD files work.  It seems that some older WAD files are
  93. rejected because they leave out some information that ADoom requires.
  94. I think these same WAD files fail to work in Linux DOOM.
  95.  
  96. DOOM1.WAD from "http://surf.to/adoom/" works fine, as should the
  97. latest shareware WADs from ID Software's WWW site.  I was told that at
  98. least some Macintosh WADs work too, as does the registered DOOM II
  99. WAD.  One person told me that any "Doom2 PWAD" works, whatever that
  100. is.
  101.  
  102. A couple of people said they got the 4th episode of Ultimate DOOM to
  103. work by changing the name of the WAD file to doomu.wad.
  104.  
  105. Many people have asked me which WADs work and which don't, but I'm
  106. afraid the above is about all I know at the moment.
  107.  
  108. I received many conflicting reports about which WADs work, especially
  109. the original registered DOOM WAD seems to work for some people and not
  110. for others.  See the file UserHints.txt for some examples.
  111.  
  112. To play third-party WADs with non-standard names, you must have a
  113. *registered* WAD in the same directory as well.  Then you should start
  114. ADoom with the -file option specifying the third-party WAD, e.g:
  115.  
  116.         ADoom -file Satan666.wad
  117.  
  118. The -file option doesn't work if you only have a shareware WAD.
  119.  
  120. I use a stack size of 150000 bytes, but that's probably overkill.
  121. I don't know what the stack requirements really are yet.  It's
  122. probably less than 4096 bytes (because it worked OK from the icon
  123. when I forgot to set the stacksize).
  124.  
  125. An FPU is neither required nor used (except on 68060).
  126.  
  127. An MMU is neither required nor used.
  128.  
  129.  
  130.  
  131. HELP, I'M SWAMPED WITH E-MAIL:
  132. ------------------------------
  133.  
  134. Thanks for all your e-mails about ADoom.  I enjoy reading them.
  135.  
  136. However please note that I received upwards of 40 messages per day for
  137. several days.  Now I'm back to my full-time job, so I only get time to
  138. work on ADoom and catch up on e-mail on my spare evenings and
  139. weekends.  I apologise in advance if you don't receive a reply.
  140.  
  141.  
  142.  
  143. MUSIC:
  144. ------
  145.  
  146. ADoom supports music based on .MUS-player source code sent to me by
  147. Joseph Fenton of MicroCode Solutions.  Music requires an extra file
  148. not included in the archive because of its size.  You should download
  149. ADoom_Instruments.lha from Aminet and unpack the file MIDI_Instruments
  150. into your ADoom program directory.
  151.  
  152. Music is disabled by default because the MIDI_Instruments file is
  153. distributed separately.  Once you have the MIDI_Instruments file,
  154. enable music with the -music option or MUSIC tooltype.
  155.  
  156. Joe greatly improved the MIDI_Instruments file over the version
  157. supplied with ADoom 0.5.
  158.  
  159. Joe says "You might want to give my brother Michael some credit as
  160. well, he wrote the event handling and the Player Interface code; I did
  161. the PlayNote and interrupt audio engine and instruments".
  162.  
  163. Enabling music adds to the atmosphere, but it also slows the game down
  164. and leaves only 2 channels for sound effects.  Without the music you
  165. get 4 channels for sound effects.
  166.  
  167. From version 0.6 you can disable all sound effects with -nosfx or the
  168. NOSFX icon tooltype.  That leaves audio channels free so you can use
  169. your own music player in the background.
  170.  
  171.  
  172.  
  173. KEYBOARD:
  174. ---------
  175.  
  176. Most keys are mapped the same as on a PC.  However the Amiga doesn't
  177. have F11, F12 and PAUSE keys.  On the Amiga, press '[' for F11, ']'
  178. for F12 and HELP for PAUSE.
  179.  
  180. Many people complained about the keyboard layout, especially CTRL for
  181. FIRE.  It's possible to customise the keymap in .doomrc --- see
  182. UserHints.txt.  In version 0.6 I changed the Right-Amiga key to send
  183. the same code as CTRL (was the same as Right-Alt in 0.5) and I
  184. disabled the Left-Amiga key so screen-flipping doesn't set things off.
  185.  
  186.  
  187.  
  188. MOUSE:
  189. ------
  190.  
  191. Mouse support was added in version 0.3, but it is disabled by default.
  192. That's because it slows the game down.  To enable the mouse, start
  193. ADoom with the -mouse option, or use the MOUSE icon tooltype.
  194.  
  195.  
  196.  
  197. CD32 JOYPAD:
  198. ------------
  199.  
  200. Gabry (ggreco@iol.it) emailed me some CD32 joypad handling code.  It
  201. is disabled by default because it requires lowlevel.library.  If you
  202. want to try it, use the -joypad option or JOYPAD tooltype.
  203.  
  204.  
  205.  
  206. SAVING THE SCREENMODE:
  207. ----------------------
  208.  
  209. If you don't like the ScreenMode requester every time ADoom runs, you
  210. can save your favourite ScreenMode as an icon tooltype.
  211.  
  212. First, watch the output of ADoom when it starts up and note the
  213. DisplayID of the ScreenMode you selected.  It will be something like
  214. $40420000.  Now click the ADoom icon once and select "Information..."
  215. from the Icons menu.  Click on NEW and type in:
  216.  
  217.   SCREENMODE=$40420000
  218.  
  219. replacing $40420000 with the DisplayID you noted.  Delete any other
  220. SCREENMODE tooltypes.  Finally, click SAVE, and start ADoom again.
  221.  
  222.  
  223.  
  224. NETWORKING WITH AMITCP:
  225. -----------------------
  226.  
  227. AmiTCP networking in ADoom is based on the Linux DOOM source code.  It
  228. works between Amigas and Linux PCs using TCP/IP on a fast network.  It
  229. uses TCP/IP on all computers, not IPX.
  230.  
  231. DOOM on PCs normally uses IPX for networking, which is incompatible
  232. with ADoom's TCP/IP.  I don't know whether there is a TCP/IP driver
  233. for DOOM on Windows95, but I heard there is such a thing for MSDOS
  234. (untested with ADoom).  Another person told me that Win95DOOM can use
  235. TCP/IP.
  236.  
  237. Several people reported success over serial lines with SLIP or PPP,
  238. although in most cases it was very slow.  I tested it over ethernet
  239. and AmigaLink.  Even then it seemed rather jerky and slow, and it
  240. failed to start up when I tried crossing a gateway between the 2
  241. networks.
  242.  
  243.  
  244. To start ADoom across 2 computers called fred and bob, say:
  245.  
  246.   1:  Make certain both computers are using identical WAD files;
  247.  
  248.   2:  Make certain you can PING fred from bob and vice versa;
  249.  
  250.   3:  On bob, enter:    "ADoom -net 1 fred"
  251.  
  252.   4:  On fred, enter:   "ADoom -net 2 bob"
  253.  
  254.  
  255. If there are 3 computers, called fred, bob and sue, say:
  256.  
  257.   1:  Make certain all 3 computers are using identical WAD files;
  258.  
  259.   2:  Make certain you can PING between all computers by name;
  260.  
  261.   3:  On bob, enter:    "ADoom -net 1 fred sue"
  262.  
  263.   4:  On fred, enter:   "ADoom -net 2 bob sue"
  264.  
  265.   5:  On sue, enter:    "ADoom -net 3 fred bob"
  266.  
  267.  
  268. It's normal for screens to go blank sometimes during the startup phase.
  269.  
  270. On Linux I used DOOM compiled from the source code available from:
  271.  
  272.    ftp://ftp.cdrom.com/pub/idgames/idstuff/source/doomsrc.zip
  273.  
  274.  
  275. I don't know whether other Linux DOOM implementations are compatible.
  276.  
  277. So far I have tested up to 3 computers.  The code is pretty untested
  278. and your mileage may vary.
  279.  
  280. Several people asked me for NULL-modem support between 2 Amigas, or
  281. parallel cable support.  Well it's already there.  You need to get
  282. Miami or AmiTCP installed at both ends and talking to each other over
  283. SLIP, PPP or PLIP.  Then proceed as above.  However it will likely be
  284. unplayably slow unless you have very fast Amigas.  PLIP is very heavy
  285. on CPU-usage.  It should also work over a serial line to a PC running
  286. Linux DOOM, and maybe even to a PC running Win95Doom, which, I'm told,
  287. supports TCP/IP.
  288.  
  289.  
  290.  
  291. CHUNKY TO PLANAR:
  292. -----------------
  293.  
  294. For native screenmodes on 68040+, ADoom uses a CPU-only C2P routine.
  295. For EHB on 68040+ it also uses a comparison buffer.  I timed it on my
  296. WarpEngine as being faster on average than a routine without a
  297. comparison buffer.  The comparison buffer method is temporary until I
  298. can figure out some sort of list of dirty-bounding-boxes thingy.
  299.  
  300. From version 0.4, ADoom in native Amiga modes (AGA and ECS)
  301. double-buffers.
  302.  
  303. From version 0.4, ADoom uses a blitter-assisted C2P routine on
  304. 68020/30.  The blitter does the latter half of the C2P conversion in
  305. chipmem while the 3D engine renders the next frame to fastmem.  It
  306. also double-buffers --- a necessity for this approach.  On a 50MHz
  307. 68030, C2P CPU-time is 3 times less than in version 0.3.
  308. Unfortunately it looks as if C2P is only a small fraction of total
  309. time anyway, maybe 10..15%.  In version 0.6 I replaced the AGA 68030
  310. C2P that did 2 CPU merges and 2 blitter passes with one based on
  311. Mikael Kalms' routine that does 3 cpu merges and 1 blitter pass.
  312.  
  313. C2P for ECS (EHB) modes takes longer because there is an extra table
  314. lookup for each pixel.  It converts 8-bit -> 6-bit.
  315.  
  316. ADoom renders to fastmem and uses WritePixelArray8() on gfx-cards.
  317.  
  318. Several people asked me to make a version which renders directly to
  319. the CyberGraphX framebuffer, like Trance's AmiDoom and RTGMaster.  I
  320. started doing this, but didn't finish.  To try it with CyberGraphX,
  321. use the -directcgx option or DIRECTCGX icon tooltype, but it will
  322. probably be slower and flicker like hell...  It may also corrupt other
  323. screens if you flip or drag screens.  It needs double buffering to get
  324. rid of the flicker.  I tried to add double-buffering but couldn't get
  325. the interaction with I_ReadScreen() right.
  326.  
  327.  
  328.  
  329. RENDERING:
  330. ----------
  331.  
  332. Version 0.5 uses fast column and span renderers by Aki Laukkanen.  Aki
  333. supplied seperate 68060-optimised routines.  These are selected if you
  334. have a 68060, provided you have SetPatch and 68060.library correctly
  335. installed.
  336.  
  337.  
  338.  
  339. 68060:
  340. ------
  341.  
  342. Several people reported extremely poor performance on their 68060
  343. systems.  If that happens to you, try using the FastExec (whatever
  344. that is) "SSP to FastMem" option.  Several 68060 users told me that
  345. made a huge speed difference.  Shaun Falkenberg (shaunf@box.net.au)
  346. suggests the equivalent option in MCP might be better because it saves
  347. a reboot on cold startup.  OxyPatcher is yet another alternative.
  348.  
  349. ADoom 0.5 uses 68060-specific fixed-point routines which don't use
  350. 64-bit MULS & DIVS on 68060.  You must have SetPatch and 68060.library
  351. correctly installed for these faster routines to be selected.  Version
  352. 0.6 uses the FPU for both fixed-point multiplies and divides on 68060.
  353. Version 0.5 used the FPU for fixed-point divides and 32-bit integer
  354. instructions for fixed-point multiplies on 68060.
  355.  
  356. In version 0.6 I added the -mmu option and MMU icon tooltype to mark
  357. the chunky buffer and chip raster as "imprecise" using the MMU.  I
  358. used Aki Laukkanen's MMU code for this.  This may speed up ADoom on
  359. 68060+MMU systems slightly, by better scheduling memory accesses.
  360.  
  361.  
  362.  
  363. LIMITATIONS:
  364. ------------
  365.  
  366. Play-tested for a few hours on an A3000 + WarpEngine + GVP Spectrum +
  367. Cybergraphics running OS3.1 and Enforcer, on which it seems to run
  368. very smoothly.  Many people reported success with earlier versions of
  369. ADoom.  I think I finally fixed all the crash on exit bugs.
  370.  
  371. Outstanding bugs possibly include problems with -record and -playdemo,
  372. problem using -timedemo without also -forcedemo, teleport problems,
  373. network problems and problems loading the original registered
  374. doom.wad.  However bugs are becoming rarer these days.  Hopefully I
  375. didn't introduce too many new ones in the latest version...
  376.  
  377.  
  378.  
  379. BUGS FIXED:
  380. -----------
  381.  
  382. 0.7
  383.  
  384. In 0.6 I accidently introduced a serious bug into the C2P routine used
  385. for 68040+AGA and 68060+AGA.  Fixed this for version 0.7.
  386.  
  387. In 0.6 I accidently introduced a serious bug in the MMU cleanup
  388. routine when -mmu is used or the MMU icon tooltype is used.  Fixed for
  389. version 0.7.
  390.  
  391. 0.6
  392.  
  393. Fixed bug in low detail mode and re-enabled it, thanks to a note from
  394. Georg Steger <steger@pass.dnet.it>, the author of DoomAttack, and some
  395. assembly code from Aki Laukkanen.
  396.  
  397. The monster-counting bug (also the problem with "Dead Simple") was
  398. caused by SAS/C generating unexpected code for function pointer
  399. comparisons in "if" statements with CODE=NEAR.  See amiga_notes.txt in
  400. the source archive.
  401.  
  402. Version 0.5 had a bug in the DrawSpan() routines which left bright
  403. dots scattered around the floors and ceilings and red stairs at the
  404. start.  Applied patch supplied by Aki Laukkanen.
  405.  
  406. Music tones are now PAL/NTSC sensitive.
  407.  
  408. Fixed the bug which sometimes caused crash on exit when music is
  409. enabled.
  410.  
  411. 0.5
  412.  
  413. The call to BestModeID() in amiga_video.c had an unterminated taglist.
  414. Fixed.
  415.  
  416. Whoops it never worked under OS2.1 after all.  For now I've changed it
  417. so ADoom refuses to start on less than OS3.0.  Currently I think
  418. LoadRGB32() is the only V39 function used.  ADoom 0.4 was also calling
  419. BestModeID() and failing to autoopen lowlevel.library.
  420.  
  421. 0.4
  422.  
  423. Gamma correction tables weren't being used in ECS modes.  Fixed.
  424.  
  425. Set default task priority to -5 because ADoom is unfriendly to other
  426. tasks otherwise.  Added -taskpriority commandline option and
  427. TASKPRIORITY icon tooltype, so you can set whatever priority you like.
  428.  
  429. I think I finally fixed the crash on exit bug.  Two commas were
  430. missing in dstrings.c.  I haven't had a crash for a long time now.
  431.  
  432. 0.3
  433.  
  434. In ADoom versions up to 0.2, setting graphics detail LOW and then
  435. resizing the display resulted in corrupt graphics.  Crashes were
  436. possible.  Indeed, LOW detail didn't work at all.  This appears to be
  437. a bug in the original Linux source.  I can't see how LOW detail is
  438. supposed to work, so for now I've disabled LOW detail in ADoom 0.3.
  439.  
  440. ADoom exclusively allocates the 2nd gameport for the joystick.  It
  441. seems that many people have something in their startup which
  442. exclusively allocates the gameport, in which case ADoom v0.2 refuses
  443. to run.  BlitzBlanker is one such culprit.  ADoom 0.3 runs with the
  444. joystick disabled if it can't exclusively allocate the gameport.
  445.  
  446. Added -forcedemo option in v0.3 to override the version check when
  447. playing demos.  The FORCEDEMO icon tooltype does the same thing.
  448. There is a risk something might go wrong if the versions don't match,
  449. but I haven't observed any problems so far.
  450.  
  451. Early versions of DOOM had a sound pitch change feature.  That is, the
  452. same sound sounds effect could be played at different notes.  I
  453. reproduced this feature in ADoom 0.1 and ADoom 0.2.  However more than
  454. one user told me this feature was removed from recent versions of DOOM
  455. and some effects sound wrong in ADoom.  Therefore I disabled the pitch
  456. change feature in ADoom v0.3.  It is still there and can be enabled
  457. with the -pitchchange option or PITCHCHANGE icon tooltype.
  458.  
  459. 0.2
  460.  
  461. Early versions of ADoom required the HOME environment variable to be
  462. set.  This confused a lot of people.  Since version 0.2, ADoom saves
  463. its prefs file (.doomrc) in the current directory if HOME is not set.
  464.  
  465. Early versions of ADoom crashed if there wasn't enough memory
  466. available.  Since version 0.2, ADoom checks the result of the main (up
  467. to 6 Mb) memory allocation.  There are still a few places where small
  468. memory allocations are not checked.
  469.  
  470.  
  471.  
  472. THANKS:
  473. -------
  474.  
  475. Thanks to John Carmack and ID Software for one of the best games ever!
  476.  
  477.  
  478.  
  479. Peter McGavin.  (p.mcgavin@irl.cri.nz)
  480.