Things, that had to be changed in pacman-1.0.tar.gz in order to work in Winduhs (these things are already included in the newer versions 1.1 and later): From: Warwick Allison To: avl@logic.at Subject: pacman.exe Date: Tue, 10 Mar 1998 10:44:54 +0100 I changed it to allow 0ms delays with: diff -u -r pacman/pacman.cpp pacman-w/pacman.cpp --- pacman/pacman.cpp Tue Feb 17 16:45:32 1998 +++ pacman-w/pacman.cpp Tue Mar 10 09:59:55 1998 @@ -194,7 +194,7 @@ void Object::changeSpeed(bool fast) { int bd= (fast) ? delay : 5*delay ; - _speed = bd + rand() % bd; + _speed = bd ? bd + rand() % bd : 0; if (fast) { _step++; if (_step>7) _step=7; } else { _step=1; } if (_timerId) { killTimer(_timerId); } _timerId=startTimer(_speed); @@ -261,7 +261,7 @@ if (cptr[2]!=0) {cptr+=2;} else {cptr=qApp->argv()[i+1];i++;} if (!cptr) { cptr=""; } - delay=atoi(cptr); if (delay<1) {usage();exit(1);} + delay=atoi(cptr); if (delay<0) {usage();exit(1);} break; case 'p': if (cptr[2]!=0) {cptr+=2;} And I also did this, although it looks like you had experimented with this also (the >> 0). diff -u -r pacman/pacman.cpp pacman-w/pacman.cpp --- pacman/pacman.cpp Tue Feb 17 16:45:32 1998 +++ pacman-w/pacman.cpp Tue Mar 10 10:39:48 1998 @@ -185,7 +185,7 @@ } QImage qr=ps.convertToImage().convertDepth(32); - uchar *uptr=(uchar*)qr.bits(), *end=uptr + (qr.numBytes() >> 0); + QRgb *uptr=(QRgb*)qr.bits(), *end=uptr + qr.numBytes()/sizeof(QRgb); while (uptr_desktop, QRect(_pos,cs), CopyROP ); if (bNoFlicker) { clearPxmObject(&ps); } bitBlt( &ps, p0, &_d->_r2x2, QRect(rpos,cs), XorROP ); - tpm.fill(black); tbm.fill(color1); + tpm.fill(black); tbm.fill(color0); bitBlt( &tbm, p0, _d->_rotObj[_dir].mask() , tbm.rect(), XorROP); tpm.setMask(tbm); if (useMask) { -- Warwick