Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!uwvax!daffy!cat53.cs.wisc.edu!pochron From: pochron@cat53.cs.wisc.edu (David Pochron) Newsgroups: comp.sys.amiga.games Subject: Re: Ultima V input quirks Summary: The real deal with Ultima input! Keywords: Ultima Origin DMA systems bad programming! Message-ID: <1991Jan29.194530.200@daffy.cs.wisc.edu> Date: 29 Jan 91 19:45:30 GMT References: <2482@incstar.uucp> Sender: news@daffy.cs.wisc.edu (The News) Organization: U of Wisconsin CS Dept Lines: 29 I have looked at the code (in a 32 hour hacking frenzy, in fact) and the reason the input is so bad is simple - the guy that ported it did not use interrupts! The keyboard and disk routines all busy wait for something to happen. If the screen is being updated while you press a key, say bye-bye to that keystroke! I am thoroughly convinced after looking at the code that not only is the guy not familiar with the Amiga (he doesn't even use the blitter to decode the MFM tracks, or for anything else for that matter, sheesh!) but he isn't even a good programmer, period! The only interrupt he uses is the VBI to time the screen updates and change the image animation pointers. Pitiful, simply pitiful. I did manage to get it working with the 68030, however - there are four countdown loops that need to be changed in the four disk read/write routines, the timing loop for stepping the head has to be increased in three places, and the keyboard routine was fixed, using the code from another user here on the net. Now that it works with the 68030 (doesn't work very fast on a 68000 anymore since the timing loops were all increased - can you say "groooonk, grooonk" of the drive heads?) the game is quite playable and enjoyable. I have progressed rather far into it by now. -- -- David M. Pochron | "Life's a blit, | and then you VBI." pochron@garfield.cs.wisc.edu |