From owner-svn-ports-all@FreeBSD.ORG Sun Mar 30 15:47:59 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 958D5390; Sun, 30 Mar 2014 15:47:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7F650C0C; Sun, 30 Mar 2014 15:47:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s2UFlxBH045173; Sun, 30 Mar 2014 15:47:59 GMT (envelope-from dinoex@svn.freebsd.org) Received: (from dinoex@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s2UFlxSE045168; Sun, 30 Mar 2014 15:47:59 GMT (envelope-from dinoex@svn.freebsd.org) Message-Id: <201403301547.s2UFlxSE045168@svn.freebsd.org> From: Dirk Meyer Date: Sun, 30 Mar 2014 15:47:59 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r349639 - head/games/xboing/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Mar 2014 15:47:59 -0000 Author: dinoex Date: Sun Mar 30 15:47:58 2014 New Revision: 349639 URL: http://svnweb.freebsd.org/changeset/ports/349639 QAT: https://qat.redports.org/buildarchive/r349639/ Log: - rename patchfiles Added: head/games/xboing/files/patch-Imakefile - copied unchanged from r349338, head/games/xboing/files/patch-ac head/games/xboing/files/patch-bonus.c - copied unchanged from r349338, head/games/xboing/files/patch-aa head/games/xboing/files/patch-highscore.c - copied unchanged from r349338, head/games/xboing/files/patch-ad Deleted: head/games/xboing/files/patch-aa head/games/xboing/files/patch-ac head/games/xboing/files/patch-ad Copied: head/games/xboing/files/patch-Imakefile (from r349338, head/games/xboing/files/patch-ac) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/xboing/files/patch-Imakefile Sun Mar 30 15:47:58 2014 (r349639, copy of r349338, head/games/xboing/files/patch-ac) @@ -0,0 +1,46 @@ +--- Imakefile.orig Thu Nov 21 19:28:46 1996 ++++ Imakefile Sun Jun 20 18:39:19 1999 +@@ -24,23 +24,28 @@ + XCOMM This is the directory where the highscore, level & sound data will be + XCOMM placed. Default will be the current directory. + +- XBOING_DIR = . ++ XBOING_DIR = ${LOCALBASE}/lib/X11/xboing + + XCOMM These are some defines that must be set. Some may be overwritten in the + XCOMM machine arch section. + +- XPMLIB = -L/usr/X11/lib -lXpm +- XPMINCLUDE = -I/usr/X11/include/X11 ++ XPMLIB = -lXpm ++ XPMINCLUDE = -I${LOCALBASE}/include/X11 + XBOINGINCLUDE = -I./include + LEVEL_INSTALL_DIR = $(XBOING_DIR)/levels + SOUNDS_DIR = $(XBOING_DIR)/sounds + BACKUP_DIR = $(XBOING_DIR)/../backups + HIGH_SCORE_FILE = $(XBOING_DIR)/.xboing.scr ++#ifdef WITHOUT_AUDIO + AUDIO_AVAILABLE = False + AUDIO_SRC = audio/NOaudio.c ++#else ++ AUDIO_AVAILABLE = True ++ AUDIO_SRC = audio/LINUXaudio.c ++#endif + AUDIO_INCLUDE = + AUDIO_LIB = +- CDEBUGFLAGS = -g ++ CDEBUGFLAGS = -O2 -pipe + + XCOMM Uncomment this if you want to use ANY of the AUDIO sound systems + #define COMPILE_IN_AUDIO +@@ -132,8 +137,8 @@ + -DLEVEL_INSTALL_DIR=\"$(LEVEL_INSTALL_DIR)\" \ + -DAUDIO_AVAILABLE=\"$(AUDIO_AVAILABLE)\" \ + -DSOUNDS_DIR=\"$(SOUNDS_DIR)\" \ +- -DREADMEP_FILE=\"$(XBOING_DIR)/docs/problems.doc\" +-XCOMM -DUSE_FLOCK=\"True\" \ ++ -DREADMEP_FILE=\"$(XBOING_DIR)/problems.doc\" \ ++ -DUSE_FLOCK=\"True\" + XCOMM -DNEED_USLEEP=\"True\" \ + XCOMM -DNO_LOCKING=\"True\" + Copied: head/games/xboing/files/patch-bonus.c (from r349338, head/games/xboing/files/patch-aa) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/xboing/files/patch-bonus.c Sun Mar 30 15:47:58 2014 (r349639, copy of r349338, head/games/xboing/files/patch-aa) @@ -0,0 +1,456 @@ +--- bonus.c.orig Thu Nov 20 03:12:56 1997 ++++ bonus.c Thu Nov 20 03:15:32 1997 +@@ -311,7 +311,7 @@ + XFlush(display); + + SetBonusWait(BONUS_SCORE, frame + 5); +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + DEBUG("set bonus mode to BONUS_SCORE.") + } +@@ -326,7 +326,7 @@ + { + DEBUG("in function DoScore() in bonus.c") + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Nice message rewarding you for your efforts */ + strcpy(string, "Congratulations on finishing this level."); +@@ -336,7 +336,7 @@ + + ypos += (35 + GAP); + SetBonusWait(BONUS_BONUS, frame + LINE_DELAY); +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + DEBUG("set bonus mode to BONUS_BONUS.") + } + +@@ -387,7 +387,7 @@ + DrawShadowCentredText(display, window, textFont, + string, ypos, blue, TOTAL_WIDTH); + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Now skip to the next sequence */ + SetBonusWait(BONUS_LEVEL, frame + LINE_DELAY); +@@ -411,7 +411,7 @@ + bonusScore += ComputeScore(SUPER_BONUS_SCORE); + DisplayScore(display, scoreWindow, bonusScore); + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Now skip to the next sequence */ + SetBonusWait(BONUS_LEVEL, frame + LINE_DELAY); +@@ -454,7 +454,7 @@ + ypos += (int) (textFont->ascent + GAP * 1.5); + firstTime = True; + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + } + } + +@@ -468,7 +468,7 @@ + { + int secs, theLevel; + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Get the number of seconds left on the clock */ + secs = GetLevelTimeBonus(); +@@ -533,7 +533,7 @@ + /* Play the sound for the super bonus */ + if (noSound == False) playSoundFile("Doh3", 80); + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Get ready for the next sequence */ + SetBonusWait(BONUS_TIME, frame + LINE_DELAY); +@@ -569,7 +569,7 @@ + SetBonusWait(BONUS_TIME, frame + LINE_DELAY); + ypos += (textFont->ascent + GAP/2); + firstTime = True; +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + } + } + +@@ -583,7 +583,7 @@ + { + int secs = 0; + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Get the number of seconds left on the clock */ + secs = GetLevelTimeBonus(); +@@ -627,7 +627,7 @@ + int myrank = 0; + char str[5]; + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Obtain current ranking for this score */ + myrank = GetHighScoreRanking(score); +@@ -680,7 +680,7 @@ + { + DEBUG("DoEndText in bonus screen.") + +- SetGameSpeed(SLOW_SPEED); ++ SetGameSpeed(MEDIUM_SPEED); + + /* Finishing sentence - so you know what level to do */ + sprintf(string, "Prepare for level %ld", level+1); +--- main.c.orig Thu Nov 20 03:15:34 1997 ++++ main.c Thu Nov 20 03:15:54 1997 +@@ -156,7 +156,7 @@ + + /* Set an entire game speedup or slowdown speed */ + temp = (speed / (long) userDelay); +- userDelay = delay; ++ userDelay = delay/2 + 3; + speed = (long) (temp * userDelay); + speedLevel = 10 - delay; + } +--- misc.c.orig Fri Nov 22 09:28:46 1996 ++++ misc.c Thu Nov 20 03:18:15 1997 +@@ -89,8 +89,8 @@ + #ifdef SYSV + #ifdef __clipper__ + struct timeval tv; +- tv.tv_sec=((usec)/1000); +- tv.tv_usec=(((usec)%1000)*1000); ++ tv.tv_sec=((usec)/1000000); ++ tv.tv_usec=((usec)%1000000); + select(1,NULL,NULL,NULL,&tv); + #else + poll((struct poll *) 0, (size_t) 0, usec / 1000); /* ms resolution */ +@@ -105,6 +105,68 @@ + #endif + + #if NeedFunctionPrototypes ++static int kudelay(unsigned long count) ++#else ++static int kudelay(count) ++unsigned long count; ++#endif ++{ ++ unsigned int bluff = 1; ++ ++ while( count-- != 0 ) /* this can hardly be "optimised out" */ ++ bluff = (bluff ^ ((bluff & 1) * 0x6110)) >> 1; ++ ++ return( bluff ); ++} ++ ++#if NeedFunctionPrototypes ++static void kusleep(unsigned long usec) ++#else ++static void kusleep(usec) ++ unsigned long usec; ++#endif ++{ ++ static float kuliber_time = 0.0; ++ static float kuliber_count = 0.0; ++ static unsigned long kutimerswap = (1000000 / 15); ++ struct timeval st, et; ++ long gap; ++ unsigned long count; ++ ++ if( kuliber_time == 0.0 ) ++ { ++ count = 0x1000; /* calibrate delay loop */ ++ gettimeofday(&st, NULL); ++ ++ while( True ) ++ { ++ kudelay( count ); ++ count = (count << 1); ++ gettimeofday(&et, NULL); ++ gap = (((et.tv_sec - st.tv_sec) * 1000000) + ++ (et.tv_usec - st.tv_usec) ); ++ ++ if( gap > 400*1000 ) ++ break; ++ } ++ ++ kuliber_time = (float)(gap/4); ++ kuliber_count = (float)(((count-1)&~0xFFF)>>2); ++ } ++ ++ if( usec > kutimerswap ) ++ { ++ kutimerswap = (1000000 / 30); ++ usleep( usec ); /* using usleep() for low resolution only */ ++ } ++ else ++ { ++ kutimerswap = (1000000 / 15); ++ kudelay( (unsigned long)(kuliber_count*((float)usec/kuliber_time)) ); ++ } ++} ++ ++#if NeedFunctionPrototypes + void sleepSync(Display *display, unsigned long ms) + #else + void sleepSync(display, ms) +@@ -112,27 +174,85 @@ + unsigned long ms; + #endif + { +- struct timeval st, et; +- long SyncTime; +- static unsigned long accu; ++ static long Expected_time = 0; ++ static long Ref_sec = 0; ++ static long Ref_usec = 0; ++ static long Sleeping_time = 0; ++ static int PLL_filter = 0; ++ struct timeval st; ++ long elapsed; ++ long dodelay; ++ float x; + +- gettimeofday(&st, NULL); + XSync(display, False); +- gettimeofday(&et, NULL); + +- SyncTime = (((et.tv_sec - st.tv_sec) * 1000) + +- ((et.tv_usec - st.tv_usec) / 1000) ); ++ gettimeofday(&st, NULL); ++ ++ if( Ref_sec == 0 ) ++ { ++ Ref_sec = st.tv_sec; /* take the initial reference point */ ++ Ref_usec = st.tv_usec; ++ Sleeping_time = ms * 1000; ++ } ++ ++ elapsed = (st.tv_sec - Ref_sec) * 1000000 + (st.tv_usec - Ref_usec); ++ dodelay = Sleeping_time; ++ ++ if( PLL_filter > 0 && elapsed != 0 ) /* Phase lock loop */ ++ { ++ dodelay = Expected_time + Sleeping_time - elapsed; ++ ++ if( dodelay < 0 ) ++ { ++ dodelay = 0; PLL_filter--; ++ } ++ else ++ if( dodelay > 2*Sleeping_time ) ++ { ++ dodelay = 2*Sleeping_time; PLL_filter--; ++ } ++ else ++ PLL_filter = 3; ++ ++ if( elapsed > 40*Sleeping_time && Expected_time > 40*Sleeping_time ) ++ { ++ elapsed -= 20*Sleeping_time; /* Ref. point shouldn't be far away*/ ++ Expected_time -= 20*Sleeping_time; ++ Ref_usec += 20*Sleeping_time; ++ Ref_sec += Ref_usec/1000000; Ref_usec %= 1000000; ++ } ++ } + +-/* if ((ms) > ((1000 / 60) + SyncTime)) +- usleep(ms - SyncTime); +-*/ +- if ((ms + accu) > ((1000 / 30) + SyncTime)) ++ if( PLL_filter <= 0 && elapsed > 40000 ) /* Frequency lock loop */ + { +- usleep(ms +accu - SyncTime); +- accu = 0; ++ /* feedback filter */ ++ x = 0.5 + 0.5 * (float)Expected_time / (float)elapsed; ++ ++ if( x < 0.966 ) /* Acceleration must be strongly limited */ ++ x = 0.966; ++ ++ if( x > 2.0 ) ++ x = 2.0; ++ ++ Sleeping_time = (long)((float)Sleeping_time * x); ++ ++ if( Sleeping_time < 500 ) ++ Sleeping_time = 500; ++ ++ if( x > 0.99 && x < 1.01 && Sleeping_time > ms*500 ) ++ PLL_filter = -1 - 4*PLL_filter; /* locked - it's time to try PLL */ ++ else ++ PLL_filter = 0; ++ ++ Ref_sec = st.tv_sec; ++ Ref_usec = st.tv_usec; ++ Expected_time = 0; ++ dodelay = Sleeping_time; + } +- else if (ms > SyncTime) +- accu += (ms - SyncTime); ++ ++ kusleep( dodelay ); ++ ++ Expected_time += ms * 1000; + } + + #if NeedFunctionPrototypes +--- presents.c.orig Thu Nov 20 03:18:42 1997 ++++ presents.c Thu Nov 20 03:21:38 1997 +@@ -287,7 +287,7 @@ + } + #endif + +- SetPresentWait(PRESENT_TEXT1, frame + 800); ++ SetPresentWait(PRESENT_TEXT1, frame + 200); + } + + #if NeedFunctionPrototypes +@@ -309,7 +309,7 @@ + RenderShape(display, window, justin, justinM, + x, y, 285, 44, True); + +- SetPresentWait(PRESENT_TEXT2, frame + 300); ++ SetPresentWait(PRESENT_TEXT2, frame + 100); + } + + #if NeedFunctionPrototypes +@@ -331,7 +331,7 @@ + RenderShape(display, window, kibell, kibellM, + x, y, 260, 40, True); + +- SetPresentWait(PRESENT_TEXT3, frame + 500); ++ SetPresentWait(PRESENT_TEXT3, frame + 200); + } + + #if NeedFunctionPrototypes +@@ -355,7 +355,7 @@ + RenderShape(display, window, presents, presentsM, + x, y, 410, 44, True); + +- SetPresentWait(PRESENT_TEXT_CLEAR, frame + 750); ++ SetPresentWait(PRESENT_TEXT_CLEAR, frame + 250); + } + + #if NeedFunctionPrototypes +@@ -375,7 +375,7 @@ + + FadeAwayArea(display, window, x, y, 410, 44); + +- SetPresentWait(PRESENT_LETTERS, frame + 10); ++ SetPresentWait(PRESENT_LETTERS, frame + 5); + } + + /* The distances for the gap inbetwen blocks */ +@@ -404,7 +404,7 @@ + DrawLetter(display, window, i, x, y); + x += 10 + dists[i]; + +- SetPresentWait(PRESENT_LETTERS, frame + 300); ++ SetPresentWait(PRESENT_LETTERS, frame + 100); + } + else + { +@@ -416,7 +416,7 @@ + x += dists[3]; + DrawLetter(display, window, 3, x, y); + +- SetPresentWait(PRESENT_SHINE, frame + 200); ++ SetPresentWait(PRESENT_SHINE, frame + 100); + } + + i++; +@@ -463,7 +463,7 @@ + if (in == 11) + { + XCopyArea(display, store, window, gc, 0, 0, 20, 20, x, y); +- SetPresentWait(PRESENT_SPECIAL_TEXT1, frame + 500); ++ SetPresentWait(PRESENT_SPECIAL_TEXT1, frame + 100); + } + } + } +@@ -499,7 +499,7 @@ + len = strlen(wisdom); + x = ((PLAY_WIDTH + MAIN_WIDTH) / 2) - + (XTextWidth(dataFont, wisdom, len) / 2); +- nextFrame = frame + 10; ++ nextFrame = frame + 5; + first = False; + } + +@@ -508,11 +508,11 @@ + if (noSound == False) playSoundFile("key", 60); + DrawText(display, window, x, y, dataFont, red, wisdom, i); + +- nextFrame = frame + 30; ++ nextFrame = frame + 15; + + i++; + if (i > len) +- SetPresentWait(PRESENT_SPECIAL_TEXT2, frame + 700); ++ SetPresentWait(PRESENT_SPECIAL_TEXT2, frame + 150); + } + } + +@@ -542,7 +542,7 @@ + len = strlen(wisdom2); + x = ((PLAY_WIDTH + MAIN_WIDTH) / 2) - + (XTextWidth(dataFont, wisdom2, len) / 2); +- nextFrame = frame + 10; ++ nextFrame = frame + 5; + first = False; + } + +@@ -551,11 +551,11 @@ + if (noSound == False) playSoundFile("key", 60); + DrawText(display, window, x, y, dataFont, red, wisdom2, i); + +- nextFrame = frame + 30; ++ nextFrame = frame + 15; + + i++; + if (i > len) +- SetPresentWait(PRESENT_SPECIAL_TEXT3, frame + 700); ++ SetPresentWait(PRESENT_SPECIAL_TEXT3, frame + 150); + } + } + +@@ -584,7 +584,7 @@ + len = strlen(wisdom3); + x = ((PLAY_WIDTH + MAIN_WIDTH) / 2) - + (XTextWidth(dataFont, wisdom3, len) / 2); +- nextFrame = frame + 10; ++ nextFrame = frame + 5; + first = False; + } + +@@ -593,11 +593,11 @@ + if (noSound == False) playSoundFile("key", 60); + DrawText(display, window, x, y, dataFont, red, wisdom3, i); + +- nextFrame = frame + 30; ++ nextFrame = frame + 15; + + i++; + if (i > len) +- SetPresentWait(PRESENT_CLEAR, frame + 800); ++ SetPresentWait(PRESENT_CLEAR, frame + 200); + } + } + +@@ -642,7 +642,7 @@ + yb -= 10; + + if (yt > ((PLAY_HEIGHT + MAIN_HEIGHT) / 2)) +- SetPresentWait(PRESENT_FINISH, frame + 20); ++ SetPresentWait(PRESENT_FINISH, frame + 10); + + nextFrame = frame + 20; + } Copied: head/games/xboing/files/patch-highscore.c (from r349338, head/games/xboing/files/patch-ad) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/xboing/files/patch-highscore.c Sun Mar 30 15:47:58 2014 (r349639, copy of r349338, head/games/xboing/files/patch-ad) @@ -0,0 +1,82 @@ +--- highscore.c.orig Thu Nov 20 03:07:35 1997 ++++ highscore.c Thu Nov 20 03:12:23 1997 +@@ -55,6 +55,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -119,7 +120,7 @@ + static void InitialiseHighScores(void); + static void SortHighScores(void); + static void DeleteScore(int i); +-static int LockUnlock(int cmd); ++static int LockUnlock(int cmd, int fd); + #else + static int LockUnlock(); + static void DeleteScore(); +@@ -844,7 +845,7 @@ + + /* Lock the file for me only */ + if (type == GLOBAL) +- id = LockUnlock(LOCK_FILE); ++ id = LockUnlock(LOCK_FILE, -1); + + /* Read in the lastest scores */ + if (ReadHighScoreTable(type) == False) +@@ -875,8 +876,8 @@ + { + /* Don't add as score is smaller */ + if (id != -1) +- id = LockUnlock(UNLOCK_FILE); +- return False; ++ id = LockUnlock(UNLOCK_FILE, id); ++ goto doUnlock; + } + } + } /* for */ +@@ -898,16 +899,17 @@ + + /* Unlock the file now thanks */ + if (id != -1) +- id = LockUnlock(UNLOCK_FILE); ++ id = LockUnlock(UNLOCK_FILE, id); + + /* Yes - it was placed in the highscore */ + return True; + } + } + ++doUnlock: + /* Unlock the file now thanks */ + if (id != -1) +- id = LockUnlock(UNLOCK_FILE); ++ id = LockUnlock(UNLOCK_FILE, id); + + /* Not even a highscore - loser! */ + return False; +@@ -1185,10 +1187,10 @@ + } + + #if NeedFunctionPrototypes +-static int LockUnlock(int cmd) ++static int LockUnlock(int cmd, int fd) + #else + static int LockUnlock(cmd) +- int cmd; ++ int cmd, fd; + #endif + { + static int inter = -1; +@@ -1225,6 +1227,9 @@ + /* Open the highscore file for both read & write */ + if (cmd == LOCK_FILE) + inter = open(filename, O_CREAT | O_RDWR, 0666); ++ else ++ /* use old fd to unlock */ ++ inter = fd; + + #ifndef NO_LOCKING +