summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
Diffstat (limited to 'games')
-rw-r--r--games/0ad/Makefile2
-rw-r--r--games/DDNet/Makefile2
-rw-r--r--games/alienarena/Makefile2
-rw-r--r--games/anki/Makefile2
-rw-r--r--games/crashtest/Makefile2
-rw-r--r--games/genact/Makefile2
-rw-r--r--games/gillo/Makefile2
-rw-r--r--games/gnome-robots/Makefile2
-rw-r--r--games/hivetui/Makefile2
-rw-r--r--games/irrlamb/Makefile2
-rw-r--r--games/jaggedalliance2/Makefile2
-rw-r--r--games/jin/Makefile5
-rw-r--r--games/jin/files/patch-audio76
-rw-r--r--games/jin/files/patch-browser81
-rw-r--r--games/jin/files/patch-new-awt38
-rw-r--r--games/jin/files/patch-warnings985
-rw-r--r--games/jumpy/Makefile2
-rw-r--r--games/punchy/Makefile2
-rw-r--r--games/retroarch/Makefile9
-rw-r--r--games/retroarch/distinfo6
-rw-r--r--games/retroarch/files/patch-audio_common_alsa.c10
-rw-r--r--games/retroarch/files/patch-audio_drivers_alsa.c11
-rw-r--r--games/retroarch/files/patch-audio_drivers_alsathread.c11
-rw-r--r--games/retroarch/files/patch-audio_drivers_pipewire.c20
-rw-r--r--games/retroarch/files/patch-fix-ffmpeg897
-rw-r--r--games/retroarch/files/patch-qb_config.libs.sh6
-rw-r--r--games/rpg-cli/Makefile2
-rw-r--r--games/sgt-puzzles/Makefile4
-rw-r--r--games/sgt-puzzles/distinfo6
-rw-r--r--games/stormbaancoureur/Makefile2
-rw-r--r--games/sulis/Makefile2
-rw-r--r--games/tetrigo/Makefile5
-rw-r--r--games/veloren-weekly/Makefile1
-rw-r--r--games/xonotic/Makefile2
34 files changed, 1251 insertions, 154 deletions
diff --git a/games/0ad/Makefile b/games/0ad/Makefile
index a1b4860809df..e53d2322c9c3 100644
--- a/games/0ad/Makefile
+++ b/games/0ad/Makefile
@@ -1,6 +1,6 @@
PORTNAME= 0ad
DISTVERSION= 0.27.1
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= games
MASTER_SITES= https://releases.wildfiregames.com/
DISTFILES= ${PORTNAME}-${DISTVERSION}-unix-build.tar.xz \
diff --git a/games/DDNet/Makefile b/games/DDNet/Makefile
index 6935b7855d0a..27a81b9b4c2c 100644
--- a/games/DDNet/Makefile
+++ b/games/DDNet/Makefile
@@ -1,6 +1,6 @@
PORTNAME= DDNet
PORTVERSION= 19.5
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= games
MASTER_SITES= https://ddnet.tw/downloads/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
diff --git a/games/alienarena/Makefile b/games/alienarena/Makefile
index 09408e37b424..6714ceb36d1b 100644
--- a/games/alienarena/Makefile
+++ b/games/alienarena/Makefile
@@ -1,6 +1,6 @@
PORTNAME= alienarena
DISTVERSION= 7.71.6
-PORTREVISION= 1
+PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= games
diff --git a/games/anki/Makefile b/games/anki/Makefile
index 984628e12db1..60f6721a6b7c 100644
--- a/games/anki/Makefile
+++ b/games/anki/Makefile
@@ -1,6 +1,6 @@
PORTNAME= anki
DISTVERSION= 25.09.2
-PORTREVISION= 2
+PORTREVISION= 3
# Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes
CATEGORIES= games education python
MASTER_SITES= LOCAL/kai/:yarncache
diff --git a/games/crashtest/Makefile b/games/crashtest/Makefile
index e5577708b93d..9a75cf269140 100644
--- a/games/crashtest/Makefile
+++ b/games/crashtest/Makefile
@@ -1,6 +1,6 @@
PORTNAME= crashtest
PORTVERSION= 1.1
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= games education
MASTER_SITES= http://www.stolk.org/crashtest/
diff --git a/games/genact/Makefile b/games/genact/Makefile
index e6c2d72daeca..3ae61474e32f 100644
--- a/games/genact/Makefile
+++ b/games/genact/Makefile
@@ -1,7 +1,7 @@
PORTNAME= genact
DISTVERSIONPREFIX= v
DISTVERSION= 1.4.2
-PORTREVISION= 16
+PORTREVISION= 17
CATEGORIES= games
MAINTAINER= eduardo@FreeBSD.org
diff --git a/games/gillo/Makefile b/games/gillo/Makefile
index 892cb0875e4c..84bee8054cdc 100644
--- a/games/gillo/Makefile
+++ b/games/gillo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gillo
DISTVERSION= 1.0beta1
-PORTREVISION= 12
+PORTREVISION= 13
CATEGORIES= games
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/1.0beta1
DISTNAME= ${PORTNAME}-${DISTVERSION}-src
diff --git a/games/gnome-robots/Makefile b/games/gnome-robots/Makefile
index c31faf81eca6..25ad01e9a452 100644
--- a/games/gnome-robots/Makefile
+++ b/games/gnome-robots/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gnome-robots
DISTVERSION= 41.2
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= games gnome
DIST_SUBDIR= gnome
diff --git a/games/hivetui/Makefile b/games/hivetui/Makefile
index 360d944bdb9b..f734f869d89a 100644
--- a/games/hivetui/Makefile
+++ b/games/hivetui/Makefile
@@ -1,7 +1,7 @@
PORTNAME= hivetui
DISTVERSIONPREFIX= v
DISTVERSION= 0.1.1
-PORTREVISION= 10
+PORTREVISION= 11
CATEGORIES= games
MAINTAINER= fuz@FreeBSD.org
diff --git a/games/irrlamb/Makefile b/games/irrlamb/Makefile
index a943c2daf153..490c167f4bdb 100644
--- a/games/irrlamb/Makefile
+++ b/games/irrlamb/Makefile
@@ -1,7 +1,7 @@
PORTNAME= irrlamb
DISTVERSIONPREFIX= v
DISTVERSION= 1.0.6
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= games
DIST_SUBDIR= ${PORTNAME}
diff --git a/games/jaggedalliance2/Makefile b/games/jaggedalliance2/Makefile
index e468b82c2a96..f41f93ff465b 100644
--- a/games/jaggedalliance2/Makefile
+++ b/games/jaggedalliance2/Makefile
@@ -1,7 +1,7 @@
PORTNAME= ja2
DISTVERSIONPREFIX= v
DISTVERSION= 0.21.0
-PORTREVISION= 17
+PORTREVISION= 18
CATEGORIES= games
MAINTAINER= timp87@gmail.com
diff --git a/games/jin/Makefile b/games/jin/Makefile
index e11f27cba17a..b2f83995b00d 100644
--- a/games/jin/Makefile
+++ b/games/jin/Makefile
@@ -1,6 +1,6 @@
PORTNAME= jin
PORTVERSION= 2.14.1
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= games java
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
DISTNAME= ${PORTNAME}-${PORTVERSION}-source
@@ -27,6 +27,9 @@ DATADIR= ${JAVASHAREDIR}/${PORTNAME}
EXTRACT_AFTER_ARGS= --exclude 'bsh*.jar' \
--exclude os-specific/unix/jin \
+ --exclude os-specific/macosx \
+ --exclude SunAudioPlayer.java \
+ --exclude *Applet*.java \
--exclude jgoodies-windows.jar
JINJAR= ${PORTNAME}.jar
diff --git a/games/jin/files/patch-audio b/games/jin/files/patch-audio
new file mode 100644
index 000000000000..74b806e1094d
--- /dev/null
+++ b/games/jin/files/patch-audio
@@ -0,0 +1,76 @@
+Try harder to find an audio format suitable for the bundled
+collection of 8kHz sounds... Still likely to fail on modern
+hardware, which expects much higher sampling rates...
+
+ -mi (December 2025)
+
+--- src/free/util/audio/GenericJavaxSampledAudioPlayer.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/util/audio/GenericJavaxSampledAudioPlayer.java 2025-12-15 18:39:40.763246000 -0500
+@@ -38,4 +38,5 @@
+ public void run(){
+ SourceDataLine dataLine = null;
++ DataLine.Info info = null;
+ while (true){
+ try{
+@@ -43,10 +44,12 @@
+ byte [] data = audioClip.getData();
+ AudioFormat format = getFormatForPlaying(data);
++ System.err.println("Trying autio format: " + format);
+ data = convertAudioData(data, format);
+
+ if (dataLine == null){
+- DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
++ info = new DataLine.Info(SourceDataLine.class, format);
+ dataLine = (SourceDataLine)AudioSystem.getLine(info);
+ }
++ System.err.println("Trying autio with: " + info);
+
+ if (!dataLine.isOpen())
+--- src/free/util/audio/JavaxSampledAudioPlayer.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/util/audio/JavaxSampledAudioPlayer.java 2025-12-15 18:54:51.876119000 -0500
+@@ -95,19 +95,28 @@
+ protected static AudioFormat getFormatForPlaying(byte [] audioData)
+ throws UnsupportedAudioFileException, IOException{
+- AudioFormat format = AudioSystem.getAudioFileFormat(
+- new ByteArrayInputStream(audioData)).getFormat();
++ ByteArrayInputStream bais = new ByteArrayInputStream(audioData);
++ AudioFormat format = AudioSystem.getAudioFileFormat(bais).getFormat();
++ DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
+
+- // At present, ALAW and ULAW encodings must be converted
+- // to PCM_SIGNED before it can be played
+- if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED)
+- return new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
+- format.getSampleRate(), format.getSampleSizeInBits() * 2,
+- format.getChannels(), format.getFrameSize() * 2,
+- format.getFrameRate(), true);
+- else
++ if (AudioSystem.isLineSupported(info)) {
++ System.err.println("Audio format ``" + format + "'' can be used straight");
+ return format;
+- }
++ }
++ System.err.println("Audio format ``" + format + "'' can not be used straight");
+
++ AudioFormat[] possibleFormats = AudioSystem.getTargetFormats(
++ AudioFormat.Encoding.PCM_SIGNED, format);
+
++ for (AudioFormat newFormat : possibleFormats) {
++ info = new DataLine.Info(SourceDataLine.class, newFormat);
++ if (AudioSystem.isLineSupported(info)) {
++ System.err.println("Will try audio format " + newFormat + " instead of " + format);
++ return newFormat;
++ }
++ System.err.println("Format ``" + newFormat + "'' cannot be used");
++ }
++ throw new UnsupportedAudioFileException("No suitable audio format among " +
++ possibleFormats.length + " possibilities");
++ }
+
+ /**
+@@ -128,3 +137,3 @@
+ }
+
+-}
+\ No newline at end of file
++}
diff --git a/games/jin/files/patch-browser b/games/jin/files/patch-browser
new file mode 100644
index 000000000000..9c9f447f9344
--- /dev/null
+++ b/games/jin/files/patch-browser
@@ -0,0 +1,81 @@
+Use java.awt.Desktop instead of trying (and failing) to invoke
+some kind of browser ourselves.
+
+ -mi
+
+--- src/free/util/BrowserControl.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/util/BrowserControl.java 2025-12-15 21:39:55.153096000 -0500
+@@ -31,4 +31,6 @@
+ import java.io.InputStream;
+ import java.io.InterruptedIOException;
++import java.awt.Desktop;
++import java.net.URI;
+ import java.net.URL;
+ import java.util.Properties;
+@@ -81,63 +82,8 @@
+ if (appletContext != null){ // Running in an applet.
+ appletContext.showDocument(new URL(url), "_blank");
++ } else {
++ Desktop.getDesktop().browse(new URI(url));
+ }
+- else if (PlatformUtils.isWindows()){
+- if (url.endsWith(".html")||url.endsWith(".htm")){
+-
+- // url-encode the last character because windows refuses to display URLs
+- // ending with ".html" or ".htm", but works fine
+- // for ".htm%6c" or ".ht%6d"
+- int lastChar = url.charAt(url.length() -1);
+- url = url.substring(0, url.length() - 1) + "%" + Integer.toHexString(lastChar);
+- }
+- String cmd = "rundll32 url.dll,FileProtocolHandler "+url;
+- Runtime.getRuntime().exec(cmd);
+- }
+- else if (PlatformUtils.isMacOSX()){
+- String [] commandLine = new String[]{"open", url};
+- Runtime.getRuntime().exec(commandLine);
+- }
+- else if (PlatformUtils.isMacOS()){
+- String [] commandLine = new String[]{"netscape", url};
+- Runtime.getRuntime().exec(commandLine);
+- }
+- else{
+- synchronized(BrowserControl.class){
+- if (environment == null){
+- environment = new Properties();
+- try{
+- Process env = Runtime.getRuntime().exec("env");
+- InputStream in = env.getInputStream();
+- try{
+- environment.load(in);
+- } finally{
+- in.close();
+- }
+- } catch (IOException e){e.printStackTrace();}
+- }
+- }
+-
+- String browsers = environment.getProperty("BROWSER");
+- if ((browsers == null) || ("".equals(browsers))){
+- return tryMozilla(url);
+- }
+-
+- StringTokenizer tokenizer = new StringTokenizer(browsers, ":");
+- if (!tokenizer.hasMoreTokens())
+- return false;
+-
+- String browser = tokenizer.nextToken();
+- int percentPercentIndex;
+- while ((percentPercentIndex = browser.indexOf("%%")) != -1)
+- browser = browser.substring(0, percentPercentIndex)+"%"+browser.substring(percentPercentIndex+3);
+- int urlIndex = browser.indexOf("%s");
+- String commandline;
+- if (urlIndex != -1)
+- commandline = browser.substring(0, urlIndex)+url+browser.substring(urlIndex+2);
+- else
+- commandline = browser+" "+url;
+- Runtime.getRuntime().exec(commandline);
+- }
+- } catch (IOException e){
++ } catch (Exception e){
+ return false;
+ }
diff --git a/games/jin/files/patch-new-awt b/games/jin/files/patch-new-awt
new file mode 100644
index 000000000000..70183e393c74
--- /dev/null
+++ b/games/jin/files/patch-new-awt
@@ -0,0 +1,38 @@
+getPeer() has been obsolete for a while and is removed in JDK-23...
+
+ -mi
+
+--- src/free/jin/ui/AbstractUiProvider.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/ui/AbstractUiProvider.java 2025-12-15 14:54:53.050790000 -0500
+@@ -266,5 +266,5 @@
+ // Bugfix for Java bug 4464714 - setExtendedState only works once the
+ // the window is realized.
+- if (frame.getPeer() == null)
++ if (!frame.isDisplayable())
+ frame.addNotify();
+
+--- src/free/jin/ui/AbstractPluginUIContainer.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/ui/AbstractPluginUIContainer.java 2025-12-15 14:54:45.330812000 -0500
+@@ -246,5 +246,5 @@
+ // This makes the insets of the frame known, which is important for
+ // determining its real preferred size
+- if ((container instanceof Frame) && (container.getPeer() == null))
++ if (container instanceof Frame && !container.isDisplayable())
+ ((Frame)container).pack();
+
+--- src/free/jin/console/Console.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/console/Console.java 2025-12-15 15:06:29.671569000 -0500
+@@ -686,5 +686,5 @@
+ if (scrollToBottom && didScrollToBottom){
+ // This may be false if the frame containing us (for example), is iconified
+- if (getPeer() != null){
++ if (isDisplayable()) {
+ didScrollToBottom = false;
+ SwingUtilities.invokeLater(new BottomScroller(numAddToOutputCalls));
+@@ -977,5 +977,5 @@
+
+ String fontFamily = (String)prefs.lookup("font-family." + textType, "Monospaced");
+- Integer fontSize = (Integer)prefs.lookup("font-size." + textType, new Integer(14));
++ Integer fontSize = (Integer)prefs.lookup("font-size." + textType, 14);
+ Boolean bold = (Boolean)prefs.lookup("font-bold." + textType, Boolean.FALSE);
+ Boolean italic = (Boolean)prefs.lookup("font-italic." + textType, Boolean.FALSE);
diff --git a/games/jin/files/patch-warnings b/games/jin/files/patch-warnings
new file mode 100644
index 000000000000..fe1cc84e0041
--- /dev/null
+++ b/games/jin/files/patch-warnings
@@ -0,0 +1,985 @@
+Fix most (not all) compiler warnings raised by Java-23.
+
+ -mi
+--- src/free/chess/ImagePiecePainter.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/chess/ImagePiecePainter.java 2025-12-15 15:31:53.748755000 -0500
+@@ -299,5 +299,5 @@
+ return images;
+ else{
+- ImageDataReceiver receiver = (ImageDataReceiver)imageDataReceivers.get(new Integer(imageSize));
++ ImageDataReceiver receiver = (ImageDataReceiver)imageDataReceivers.get(imageSize);
+ if (receiver != null){ // We're already loading the images
+ receiver.addComponentToRepaint(target);
+@@ -318,5 +318,5 @@
+ Map shadedImages = shadedPieceImages[imageSize];
+ receiver = new ImageDataReceiver(asyncImageLoad ? target : null, imageSize, normalImages, shadedImages);
+- imageDataReceivers.put(new Integer(imageSize), receiver);
++ imageDataReceivers.put(imageSize, receiver);
+
+ if (asyncImageLoad){
+@@ -480,5 +480,5 @@
+ }
+
+- imageDataReceivers.remove(new Integer(imageSize));
++ imageDataReceivers.remove(imageSize);
+
+ for (Iterator i = componentsToRepaint.iterator(); i.hasNext();){
+--- src/free/chess/SquareImagesBoardPainter.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/chess/SquareImagesBoardPainter.java 2025-12-15 15:40:08.918160000 -0500
+@@ -250,5 +250,5 @@
+
+ if (def.getProperty("scaleSquares") != null) // Backward compatibility
+- mode = new Boolean(def.getProperty("scaleSquares", "false")).booleanValue() ? SCALE_MODE : SLICE_MODE;
++ mode = Boolean.parseBoolean(def.getProperty("scaleSquares", "false")) ? SCALE_MODE : SLICE_MODE;
+ else{
+ String modeString = def.getProperty("imageUseMode", "slice");
+--- src/free/chessclub/ChessclubConnection.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/chessclub/ChessclubConnection.java 2025-12-15 15:48:03.677166000 -0500
+@@ -661,5 +661,5 @@
+
+ public String getRatingCategoryName(int index){
+- return (String)ratingCategoryNames.get(new Integer(index));
++ return (String)ratingCategoryNames.get(index);
+ }
+
+@@ -676,5 +676,5 @@
+
+ public String getVariantName(int number){
+- return (String)variantNames.get(new Integer(number));
++ return (String)variantNames.get(number);
+ }
+
+@@ -701,10 +701,10 @@
+ int index = datagram.getInteger(0);
+ String name = datagram.getString(1);
+- ratingCategoryNames.put(new Integer(index), name);
++ ratingCategoryNames.put(index, name);
+ }
+ else if (id == Datagram.DG_WILD_KEY){
+ int number = datagram.getInteger(0);
+ String name = datagram.getString(1);
+- variantNames.put(new Integer(number), name);
++ variantNames.put(number, name);
+ }
+ else if (id == Datagram.DG_SET2){
+--- src/free/util/Struct.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/util/Struct.java 2025-12-15 15:49:35.081597000 -0500
+@@ -91,5 +91,5 @@
+
+ protected final void setIntegerProperty(String propertyName, int propertyValue){
+- setProperty(propertyName, new Integer(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+@@ -102,5 +102,5 @@
+
+ protected final void setCharProperty(String propertyName, char propertyValue){
+- setProperty(propertyName, new Character(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+--- src/free/freechess/Ivar.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/freechess/Ivar.java 2025-12-15 15:50:36.482285000 -0500
+@@ -364,7 +364,7 @@
+ this.index = index;
+
+- Object ivar = INDEX_TO_IVAR.put(new Integer(index), this);
++ Object ivar = INDEX_TO_IVAR.put(index, this);
+ if (ivar != null){
+- INDEX_TO_IVAR.put(new Integer(index), ivar);
++ INDEX_TO_IVAR.put(index, ivar);
+ throw new IllegalArgumentException("The index "+index+" is already taken by "+ivar);
+ }
+@@ -405,5 +405,5 @@
+
+ public static Ivar getByIndex(int index){
+- return (Ivar)INDEX_TO_IVAR.get(new Integer(index));
++ return (Ivar)INDEX_TO_IVAR.get(index);
+ }
+
+--- src/free/jin/Preferences.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/Preferences.java 2025-12-15 15:55:56.517227000 -0500
+@@ -221,5 +221,5 @@
+
+ public int getInt(String prefName, int defaultValue){
+- return ((Integer)get(prefName, new Integer(defaultValue))).intValue();
++ return (int)get(prefName, defaultValue);
+ }
+
+@@ -233,5 +233,5 @@
+
+ public int getInt(String prefName){
+- return ((Integer)get(prefName)).intValue();
++ return (int)get(prefName);
+ }
+
+@@ -244,5 +244,5 @@
+
+ public double getDouble(String prefName, double defaultValue){
+- return ((Double)get(prefName, new Double(defaultValue))).doubleValue();
++ return (double)get(prefName, defaultValue);
+ }
+
+@@ -256,5 +256,5 @@
+
+ public double getDouble(String prefName){
+- return ((Double)get(prefName)).doubleValue();
++ return (double)get(prefName);
+ }
+
+@@ -391,5 +391,5 @@
+
+ public void setInt(String prefName, int prefValue){
+- set(prefName, new Integer(prefValue));
++ set(prefName, prefValue);
+ }
+
+@@ -401,5 +401,5 @@
+
+ public void setDouble(String prefName, double prefValue){
+- set(prefName, new Double(prefValue));
++ set(prefName, prefValue);
+ }
+
+@@ -655,7 +655,7 @@
+ return Boolean.valueOf(s.substring("boolean;".length()));
+ else if (s.startsWith("integer;"))
+- return new Integer(s.substring("integer;".length()));
++ return Integer.parseInt(s.substring("integer;".length()));
+ else if (s.startsWith("double;"))
+- return new Double(s.substring("double;".length()));
++ return Double.parseDouble(s.substring("double;".length()));
+ else if (s.startsWith("string;"))
+ return StringParser.parseString(s.substring("string;".length()));
+--- src/free/jin/Game.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/Game.java 2025-12-15 16:00:03.250357000 -0500
+@@ -767,5 +767,5 @@
+ throw new IllegalStateException("Unable to set the result more than once");
+
+- props.setProperty("result", new Integer(result));
++ props.setProperty("result", result);
+ }
+
+--- src/free/util/BeanProperties.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/util/BeanProperties.java 2025-12-15 16:04:51.507724000 -0500
+@@ -222,5 +222,5 @@
+
+ public void setByteProperty(String propertyName, byte propertyValue){
+- setProperty(propertyName, new Byte(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+@@ -262,5 +262,5 @@
+
+ public void setShortProperty(String propertyName, short propertyValue){
+- setProperty(propertyName, new Short(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+@@ -302,5 +302,5 @@
+
+ public void setIntegerProperty(String propertyName, int propertyValue){
+- setProperty(propertyName, new Integer(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+@@ -342,5 +342,5 @@
+
+ public void setLongProperty(String propertyName, int propertyValue){
+- setProperty(propertyName, new Long(propertyValue));
++ setProperty(propertyName, (long)(propertyValue));
+ }
+
+@@ -382,5 +382,5 @@
+
+ public void setFloatProperty(String propertyName, float propertyValue){
+- setProperty(propertyName, new Float(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+@@ -422,5 +422,5 @@
+
+ public void setDoubleProperty(String propertyName, double propertyValue){
+- setProperty(propertyName, new Double(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+@@ -462,5 +462,5 @@
+
+ public void setCharacterProperty(String propertyName, char propertyValue){
+- setProperty(propertyName, new Character(propertyValue));
++ setProperty(propertyName, propertyValue);
+ }
+
+--- src/free/jin/ConnectionManager.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/ConnectionManager.java 2025-12-15 16:06:49.016423000 -0500
+@@ -155,5 +155,5 @@
+
+ // Application parameters
+- boolean isGuest = new Boolean(jin.getParameter("login.guest")).booleanValue();
++ boolean isGuest = Boolean.parseBoolean(jin.getParameter("login.guest"));
+ String username = jin.getParameter("login.username");
+ if (isGuest)
+@@ -210,5 +210,5 @@
+
+ String savePassString = jin.getParameter("login.savepassword");
+- boolean savePassword = new Boolean(savePassString).booleanValue();
++ boolean savePassword = Boolean.parseBoolean(savePassString);
+ if ((savePassString == null) && !connDetails.isGuest())
+ savePassword = connDetails.isSavePassword();
+@@ -232,5 +232,5 @@
+ connDetails = ConnectionDetails.create(server, user, user.getUsername(), password, savePassword, hostname, ports);
+
+- if (!(new Boolean(jin.getParameter("autologin")).booleanValue()))
++ if (!(Boolean.parseBoolean(jin.getParameter("autologin"))))
+ connDetails = new LoginPanel(connDetails).askConnectionDetails();
+
+--- src/free/jin/GameListItem.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/GameListItem.java 2025-12-15 16:08:17.799524000 -0500
+@@ -78,5 +78,5 @@
+ boolean isRated, String variantName, String ratingCategoryName, String eco){
+
+- setProperty("Index", new Integer(index));
++ setProperty("Index", index);
+ setProperty("GameID", gameID);
+ setProperty("DateString", dateString);
+@@ -84,10 +84,10 @@
+ setProperty("WhiteName", whiteName);
+ setProperty("BlackName", blackName);
+- setProperty("WhiteTime", new Integer(whiteTime));
+- setProperty("WhiteInc", new Integer(whiteInc));
+- setProperty("BlackTime", new Integer(blackTime));
+- setProperty("BlackInc", new Integer(blackInc));
+- setProperty("WhiteRating", new Integer(whiteRating));
+- setProperty("BlackRating", new Integer(blackRating));
++ setProperty("WhiteTime", whiteTime);
++ setProperty("WhiteInc", whiteInc);
++ setProperty("BlackTime", blackTime);
++ setProperty("BlackInc", blackInc);
++ setProperty("WhiteRating", whiteRating);
++ setProperty("BlackRating", blackRating);
+ setProperty("IsRated", isRated ? Boolean.TRUE : Boolean.FALSE);
+ setProperty("VariantName", variantName);
+--- src/free/jin/HistoryListItem.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/HistoryListItem.java 2025-12-15 16:09:28.478521000 -0500
+@@ -50,5 +50,5 @@
+
+ setProperty("EndExplanationString", endExplanationString);
+- setProperty("ResultStatus", new Integer(resultStatus));
++ setProperty("ResultStatus", resultStatus);
+ setProperty("Player", player);
+ }
+--- src/free/jin/LibListItem.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/LibListItem.java 2025-12-15 16:22:10.288560000 -0500
+@@ -47,5 +47,5 @@
+
+ setProperty("EndExplanationString", endExplanationString);
+- setProperty("ResultStatus", new Integer(resultStatus));
++ setProperty("ResultStatus", resultStatus);
+ setProperty("Note", note);
+ }
+--- src/free/jin/SearchListItem.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/SearchListItem.java 2025-12-15 16:23:32.007890000 -0500
+@@ -47,5 +47,5 @@
+
+ setProperty("EndExplanationString", endExplanationString);
+- setProperty("ResultStatus", new Integer(resultStatus));
++ setProperty("ResultStatus", resultStatus);
+ }
+
+--- src/free/jin/board/BoardPanel.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/board/BoardPanel.java 2025-12-15 16:28:07.987648000 -0500
+@@ -414,11 +414,6 @@
+ // Fullscreen mode is broken under Java 1.5.0 when used as an Applet, see
+ // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5085648
+- if (!PlatformUtils.isJavaBetterThan("1.4") ||
+- (PlatformUtils.isMacOSX() && !PlatformUtils.isJavaBetterThan("1.4.2")) ||
+- ((System.getSecurityManager() != null) && PlatformUtils.isJavaBetterThan("1.5"))){
+- fullscreenButton.setEnabled(false);
+- fullscreenButton.setToolTipText(I18n.get(BoardPanel.class).getString("fullscreenUnavailableMessage"));
+- }
+- else{
++ /* The checks used deprecated API, always enable full screen now: */
++ {
+ KeyStroke fullscreenKeyStroke =
+ KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
+--- src/free/jin/board/PlayedGameButtonPanel.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/board/PlayedGameButtonPanel.java 2025-12-15 16:30:32.553679000 -0500
+@@ -408,7 +408,7 @@
+ Vector offers = isOppsOffer ? oppTakebacks : userTakebacks;
+ if (isOffered)
+- offers.addElement(new Integer(plyCount));
++ offers.addElement(plyCount);
+ else
+- offers.removeElement(new Integer(plyCount));
++ offers.removeElement(plyCount);
+
+ int newState;
+@@ -644,5 +644,5 @@
+ I18n i18n = I18n.get(PlayedGameButtonPanel.class);
+
+- Object [] plyCountArr = new Object[]{new Integer(plyCount)};
++ Object [] plyCountArr = new Object[]{plyCount};
+
+ String buttonTextPattern = i18n.getFormattedString("multipleTakebackButton.text", plyCountArr);
+--- src/free/jin/board/fics/FreechessBoardManager.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/board/fics/FreechessBoardManager.java 2025-12-15 16:56:15.309837000 -0500
+@@ -74,5 +74,5 @@
+ Integer oldValue = (Integer)evt.getOldValue();
+ Integer newValue = (Integer)evt.getNewValue();
+- Integer premoveValue = new Integer(PREMOVE_MOVE_SENDING_MODE);
++ Integer premoveValue = PREMOVE_MOVE_SENDING_MODE;
+
+ if (!newValue.equals(oldValue) &&
+--- src/free/jin/freechess/JinFreechessConnection.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/freechess/JinFreechessConnection.java 2025-12-15 17:25:51.169363000 -0500
+@@ -232,5 +232,5 @@
+ Class tsSocketClass = Class.forName("free.freechess.timeseal.TimesealingSocket");
+ Constructor tsSocketConstructor = tsSocketClass.getConstructor(new Class[]{String.class, int.class});
+- result = (Socket)tsSocketConstructor.newInstance(new Object[]{hostname, new Integer(port)});
++ result = (Socket)tsSocketConstructor.newInstance(new Object[]{hostname, port});
+ } catch (ClassNotFoundException e){}
+ catch (SecurityException e){}
+@@ -303,5 +303,5 @@
+ protected boolean processSayTell(String username, String titles, int gameNumber, String message){
+ listenerManager.fireChatEvent(new ChatEvent(this, "say", ChatEvent.PERSON_TO_PERSON_CHAT_CATEGORY,
+- username, (titles == null ? "" : titles), -1, message, new Integer(gameNumber)));
++ username, (titles == null ? "" : titles), -1, message, gameNumber));
+
+ return true;
+@@ -333,5 +333,5 @@
+
+ listenerManager.fireChatEvent(new ChatEvent(this, "channel-tell", ChatEvent.ROOM_CHAT_CATEGORY,
+- username, (titles == null ? "" : titles), -1, message, new Integer(channelNumber)));
++ username, (titles == null ? "" : titles), -1, message, channelNumber));
+
+ return true;
+@@ -352,5 +352,5 @@
+
+ listenerManager.fireChatEvent(new ChatEvent(this, "kibitz", ChatEvent.GAME_CHAT_CATEGORY,
+- username, titles, rating, message, new Integer(gameNumber)));
++ username, titles, rating, message, gameNumber));
+
+ return true;
+@@ -370,5 +370,5 @@
+
+ listenerManager.fireChatEvent(new ChatEvent(this, "whisper", ChatEvent.GAME_CHAT_CATEGORY,
+- username, titles, rating, message, new Integer(gameNumber)));
++ username, titles, rating, message, gameNumber));
+
+ return true;
+@@ -398,5 +398,5 @@
+ if (title == null)
+ title = "";
+- Integer tourneyIndex = new Integer(matcher.group(3));
++ int tourneyIndex = Integer.parseInt(matcher.group(3));
+ message = matcher.group(4);
+ evt = new ChatEvent(this, "qtell.tourney", ChatEvent.TOURNEY_CHAT_CATEGORY,
+@@ -667,5 +667,5 @@
+
+ private InternalGameData getGameData(int gameNumber) throws NoSuchGameException{
+- InternalGameData gameData = (InternalGameData)ongoingGamesData.get(new Integer(gameNumber));
++ InternalGameData gameData = (InternalGameData)ongoingGamesData.get(gameNumber);
+ if (gameData == null)
+ throw new NoSuchGameException();
+@@ -687,5 +687,5 @@
+ Enumeration gameNumbers = ongoingGamesData.keys();
+ while (gameNumbers.hasMoreElements()){
+- Integer gameNumber = (Integer)gameNumbers.nextElement();
++ int gameNumber = (int)gameNumbers.nextElement();
+ InternalGameData gameData = (InternalGameData)ongoingGamesData.get(gameNumber);
+ Game game = gameData.game;
+@@ -707,5 +707,5 @@
+ Enumeration gameNumbers = ongoingGamesData.keys();
+ while (gameNumbers.hasMoreElements()){
+- Integer gameNumber = (Integer)gameNumbers.nextElement();
++ int gameNumber = (int)gameNumbers.nextElement();
+ InternalGameData gameData = (InternalGameData)ongoingGamesData.get(gameNumber);
+ Game game = gameData.game;
+@@ -730,5 +730,5 @@
+
+ protected boolean processGameInfo(GameInfoStruct data){
+- unstartedGamesData.put(new Integer(data.getGameNumber()), data);
++ unstartedGamesData.put(data.getGameNumber(), data);
+
+ return true;
+@@ -742,5 +742,5 @@
+
+ protected boolean processStyle12(Style12Struct boardData){
+- Integer gameNumber = new Integer(boardData.getGameNumber());
++ int gameNumber = boardData.getGameNumber();
+ InternalGameData gameData = (InternalGameData)ongoingGamesData.get(gameNumber);
+ GameInfoStruct unstartedGameInfo = (GameInfoStruct)unstartedGamesData.remove(gameNumber);
+@@ -809,5 +809,5 @@
+
+ protected boolean processDeltaBoard(DeltaBoardStruct data){
+- Integer gameNumber = new Integer(data.getGameNumber());
++ int gameNumber = data.getGameNumber();
+ InternalGameData gameData = (InternalGameData)ongoingGamesData.get(gameNumber);
+
+@@ -872,5 +872,5 @@
+ Style12Struct boardData = new Style12Struct(boardLexigraphic, currentPlayer, doublePawnPushFile,
+ canWhiteCastleKingside, canWhiteCastleQueenside, canBlackCastleKingside, canBlackCastleQueenside,
+- pliesSinceIrreversible, gameNumber.intValue(), whiteName, blackName, gameType, isPlayedGame,
++ pliesSinceIrreversible, gameNumber, whiteName, blackName, gameType, isPlayedGame,
+ isMyTurn, initTime, inc, whiteStrength, blackStrength, whiteTime, blackTime, nextMoveNumber,
+ moveVerbose, moveSAN, moveTime, isBoardFlipped, isClockRunning, lag);
+@@ -1103,5 +1103,5 @@
+
+ public boolean isOffered(int offerId, Player player){
+- return offers.containsKey(new Pair(player, new Integer(offerId)));
++ return offers.containsKey(new Pair(player, offerId));
+ }
+
+@@ -1114,5 +1114,5 @@
+
+ public void setOffer(int offerId, Player player, boolean isMade){
+- Pair offer = new Pair(player, new Integer(offerId));
++ Pair offer = new Pair(player, offerId);
+ if (isMade)
+ offers.put(offer, offer);
+@@ -1281,5 +1281,5 @@
+ if (variant == null){
+ warnVariantUnsupported(categoryName);
+- unsupportedGames.addElement(new Integer(gameInfo.getGameNumber()));
++ unsupportedGames.addElement(gameInfo.getGameNumber());
+ return null;
+ }
+@@ -1330,5 +1330,5 @@
+ InternalGameData gameData = new InternalGameData(game);
+
+- ongoingGamesData.put(new Integer(gameInfo.getGameNumber()), gameData);
++ ongoingGamesData.put(gameInfo.getGameNumber(), gameData);
+
+ listenerManager.fireGameEvent(new GameStartEvent(this, game));
+@@ -1479,12 +1479,11 @@
+
+ private void closeGame(int gameNumber, int result){
+- Integer gameID = new Integer(gameNumber);
+
+- if (gameID.intValue() == primaryPlayedGame)
++ if (gameNumber == primaryPlayedGame)
+ primaryPlayedGame = -1;
+- else if (gameID.intValue() == primaryObservedGame)
++ else if (gameNumber == primaryObservedGame)
+ primaryObservedGame = -1;
+
+- InternalGameData gameData = (InternalGameData)ongoingGamesData.remove(gameID);
++ InternalGameData gameData = (InternalGameData)ongoingGamesData.remove(gameNumber);
+ if (gameData != null){
+ Game game = gameData.game;
+@@ -1497,5 +1496,5 @@
+ }
+ else
+- unsupportedGames.removeElement(gameID);
++ unsupportedGames.removeElement(gameNumber);
+ }
+
+@@ -1708,5 +1707,5 @@
+ !seekInfo.isAutomaticAccept(), seekInfo.isFormulaUsed());
+
+- Integer seekIndex = new Integer(seekInfo.getSeekIndex());
++ int seekIndex = seekInfo.getSeekIndex();
+
+ Seek oldSeek = (Seek)seeks.get(seekIndex);
+@@ -1731,5 +1730,5 @@
+ protected boolean processSeeksRemoved(int [] removedSeeks){
+ for (int i = 0; i < removedSeeks.length; i++){
+- Integer seekIndex = new Integer(removedSeeks[i]);
++ int seekIndex = removedSeeks[i];
+ Seek seek = (Seek)seeks.get(seekIndex);
+ if (seek == null) // Happens if the seek is one we didn't fire an event for,
+@@ -1867,7 +1866,7 @@
+ Player player = toUser ? userPlayer.getOpponent() : userPlayer;
+
+- offerIndicesToGameData.put(new Integer(offerIndex), gameData);
+- gameData.indicesToTakebackOffers.put(new Integer(offerIndex),
+- new Pair(player, new Integer(takebackCount)));
++ offerIndicesToGameData.put(offerIndex, gameData);
++ gameData.indicesToTakebackOffers.put(offerIndex,
++ new Pair(player, takebackCount));
+
+ updateTakebackOffer(gameData, player, takebackCount);
+@@ -1933,7 +1932,7 @@
+ Player player = toUser ? userPlayer.getOpponent() : userPlayer;
+
+- offerIndicesToGameData.put(new Integer(offerIndex), gameData);
+- gameData.indicesToOffers.put(new Integer(offerIndex),
+- new Pair(player, new Integer(offerId)));
++ offerIndicesToGameData.put(offerIndex, gameData);
++ gameData.indicesToOffers.put(offerIndex,
++ new Pair(player, offerId));
+
+ updateOffers(gameData, offerId, player, true);
+@@ -1951,17 +1950,17 @@
+
+ InternalGameData gameData =
+- (InternalGameData)offerIndicesToGameData.remove(new Integer(offerIndex));
++ (InternalGameData)offerIndicesToGameData.remove(offerIndex);
+
+ if (gameData != null){
+ // Check regular offers
+- Pair offer = (Pair)gameData.indicesToOffers.remove(new Integer(offerIndex));
++ Pair offer = (Pair)gameData.indicesToOffers.remove(offerIndex);
+ if (offer != null){
+ Player player = (Player)offer.getFirst();
+- int offerId = ((Integer)offer.getSecond()).intValue();
++ int offerId = (int)offer.getSecond();
+ updateOffers(gameData, offerId, player, false);
+ }
+ else{
+ // Check takeback offers
+- offer = (Pair)gameData.indicesToTakebackOffers.remove(new Integer(offerIndex));
++ offer = (Pair)gameData.indicesToTakebackOffers.remove(offerIndex);
+ if (offer != null){
+ Player player = (Player)offer.getFirst();
+--- src/free/jin/chessclub/JinChessclubConnection.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/chessclub/JinChessclubConnection.java 2025-12-15 17:33:24.032823000 -0500
+@@ -269,5 +269,5 @@
+ Class tsSocketClass = Class.forName("free.chessclub.timestamp.TimestampingSocket");
+ Constructor tsSocketConstructor = tsSocketClass.getConstructor(new Class[]{String.class, int.class});
+- result = (Socket)tsSocketConstructor.newInstance(new Object[]{hostname, new Integer(port)});
++ result = (Socket)tsSocketConstructor.newInstance(new Object[]{hostname, port});
+ } catch (ClassNotFoundException e){}
+ catch (SecurityException e){}
+@@ -677,5 +677,5 @@
+
+ ChatEvent evt = new ChatEvent(this, tellTypeString, ChatEvent.ROOM_CHAT_CATEGORY,
+- playerName, title, -1, message, new Integer(channel));
++ playerName, title, -1, message, channel);
+
+ listenerManager.fireChatEvent(evt);
+@@ -702,5 +702,5 @@
+ protected void processChannelQTell(int channel, String name, String titles, String message){
+ ChatEvent evt = new ChatEvent(this, "channel-qtell", ChatEvent.ROOM_CHAT_CATEGORY,
+- name, displayableTitle(titles), -1, message, new Integer(channel));
++ name, displayableTitle(titles), -1, message, channel);
+
+ listenerManager.fireChatEvent(evt);
+@@ -731,5 +731,5 @@
+
+ ChatEvent evt = new ChatEvent(this, tellTypeString, ChatEvent.GAME_CHAT_CATEGORY,
+- playerName, title, -1, message, new Integer(gameNumber));
++ playerName, title, -1, message, gameNumber);
+ listenerManager.fireChatEvent(evt);
+ }
+@@ -813,5 +813,5 @@
+
+ private GameInfo getGameInfo(int gameNumber) throws NoSuchGameException{
+- GameInfo gameInfo = (GameInfo)gameNumbersToGameInfo.get(new Integer(gameNumber));
++ GameInfo gameInfo = (GameInfo)gameNumbersToGameInfo.get(gameNumber);
+ if (gameInfo == null)
+ throw new NoSuchGameException();
+@@ -829,5 +829,5 @@
+
+ private void addGameInfo(int gameNumber, GameInfo gameInfo){
+- gameNumbersToGameInfo.put(new Integer(gameNumber), gameInfo);
++ gameNumbersToGameInfo.put(gameNumber, gameInfo);
+ if (gameInfo.game.getGameType() == Game.MY_GAME)
+ userGamesCount++;
+@@ -843,5 +843,5 @@
+
+ private GameInfo removeGameInfo(int gameNumber){
+- GameInfo gameInfo = (GameInfo)gameNumbersToGameInfo.remove(new Integer(gameNumber));
++ GameInfo gameInfo = (GameInfo)gameNumbersToGameInfo.remove(gameNumber);
+ if ((gameInfo != null) && (gameInfo.game.getGameType() == Game.MY_GAME))
+ userGamesCount--;
+@@ -859,5 +859,5 @@
+
+ private boolean gameExists(int gameNumber){
+- return gameNumbersToGameInfo.containsKey(new Integer(gameNumber));
++ return gameNumbersToGameInfo.containsKey(gameNumber);
+ }
+
+@@ -887,17 +887,17 @@
+ gameProps.put("RatingCategoryString", ratingCategoryString);
+ gameProps.put("IsRated", isRated ? Boolean.TRUE : Boolean.FALSE);
+- gameProps.put("WhiteInitial", new Integer(whiteInitial));
+- gameProps.put("WhiteIncrement", new Integer(whiteIncrement));
+- gameProps.put("BlackInitial", new Integer(blackInitial));
+- gameProps.put("BlackIncrement", new Integer(blackIncrement));
++ gameProps.put("WhiteInitial", whiteInitial);
++ gameProps.put("WhiteIncrement", whiteIncrement);
++ gameProps.put("BlackInitial", blackInitial);
++ gameProps.put("BlackIncrement", blackIncrement);
+ gameProps.put("IsPlayedGame", isPlayedGame ? Boolean.TRUE : Boolean.FALSE);
+- gameProps.put("WhiteRating", new Integer(whiteRating));
+- gameProps.put("BlackRating", new Integer(blackRating));
++ gameProps.put("WhiteRating", whiteRating);
++ gameProps.put("BlackRating", blackRating);
+ gameProps.put("WhiteTitles", displayableTitle(whiteTitles));
+ gameProps.put("BlackTitles", displayableTitle(blackTitles));
+
+- gameProps.put("GameType", new Integer(gameType));
++ gameProps.put("GameType", gameType);
+
+- nonStartedGames.put(new Integer(gameNumber), gameProps);
++ nonStartedGames.put(gameNumber, gameProps);
+ }
+
+@@ -910,5 +910,5 @@
+
+ private boolean existsNonStarted(int gameNumber){
+- return nonStartedGames.containsKey(new Integer(gameNumber));
++ return nonStartedGames.containsKey(gameNumber);
+ }
+
+@@ -921,5 +921,5 @@
+
+ private Object getPropertyForNonStarted(int gameNumber, String propertyName){
+- Hashtable gameProps = (Hashtable)nonStartedGames.get(new Integer(gameNumber));
++ Hashtable gameProps = (Hashtable)nonStartedGames.get(gameNumber);
+ return gameProps.get(propertyName);
+ }
+@@ -933,5 +933,5 @@
+
+ private void putPropertyForNonStarted(int gameNumber, String propertyName, Object propertyValue){
+- Hashtable gameProps = (Hashtable)nonStartedGames.get(new Integer(gameNumber));
++ Hashtable gameProps = (Hashtable)nonStartedGames.get(gameNumber);
+ gameProps.put(propertyName, propertyValue);
+ }
+@@ -950,5 +950,5 @@
+ private Game createGameFromNonStarted(int gameNumber, Position initialPosition){
+
+- Hashtable gameProps = (Hashtable)nonStartedGames.remove(new Integer(gameNumber));
++ Hashtable gameProps = (Hashtable)nonStartedGames.remove(gameNumber);
+
+ String whiteName = (String)gameProps.get("WhiteName");
+@@ -987,5 +987,5 @@
+ return new Game(gameType, initialPosition, 0, whiteName, blackName, whiteInitial,
+ whiteIncrement, blackInitial, blackIncrement, whiteRating, blackRating,
+- new Integer(gameNumber), ratingCategoryString, isRated, isPlayedGame, whiteTitles,
++ gameNumber, ratingCategoryString, isRated, isPlayedGame, whiteTitles,
+ blackTitles, isInitiallyFlipped, userPlayer);
+ }
+@@ -1313,5 +1313,5 @@
+
+ game.setGameType(gameType);
+- game.setId(new Integer(gameNumber));
++ game.setId(gameNumber);
+ game.setWhiteName(whiteName);
+ game.setBlackName(blackName);
+@@ -1447,5 +1447,5 @@
+
+ if (existsNonStarted(gameNumber)) // This way we know it's a non-started game.
+- putPropertyForNonStarted(gameNumber, "GameType", new Integer(newGameType));
++ putPropertyForNonStarted(gameNumber, "GameType", newGameType);
+ else
+ return;
+@@ -2557,5 +2557,5 @@
+
+ public void setOffer(int offerId, Player player, boolean isMade){
+- Pair offer = new Pair(player, new Integer(offerId));
++ Pair offer = new Pair(player, offerId);
+ if (isMade)
+ offers.put(offer, offer);
+@@ -2586,5 +2586,5 @@
+
+ public boolean isOfferred(int offerId, Player player){
+- return offers.containsKey(new Pair(player, new Integer(offerId)));
++ return offers.containsKey(new Pair(player, offerId));
+ }
+
+@@ -2717,5 +2717,5 @@
+ ratingCategoryString, time*60*1000, inc*1000, isRated, player, isRatingLimited, minRating, maxRating, !autoaccept, formula);
+
+- seeks.put(new Integer(index), seek);
++ seeks.put(index, seek);
+
+ listenerManager.fireSeekEvent(new SeekEvent(this, SeekEvent.SEEK_ADDED, seek));
+@@ -2738,5 +2738,5 @@
+
+ protected void processSeekRemoved(int index, int reasonCode){
+- Seek seek = (Seek)seeks.remove(new Integer(index));
++ Seek seek = (Seek)seeks.remove(index);
+
+ if (seek == null)
+@@ -3240,5 +3240,5 @@
+ ChessEvent newEvent = new ChessEvent(id, description, joinCommands.length == 0 ? null : joinCommands,
+ watchCommands.length == 0 ? null : watchCommands, infoCommands.length == 0 ? null : infoCommands, confirmText);
+- ChessEvent existingEvent = (ChessEvent)chessEvents.put(new Integer(id), newEvent);
++ ChessEvent existingEvent = (ChessEvent)chessEvents.put(id, newEvent);
+
+ if (existingEvent != null)
+@@ -3266,5 +3266,5 @@
+
+ protected void processRemoveTourney(int id){
+- ChessEvent evt = (ChessEvent)chessEvents.get(new Integer(id));
++ ChessEvent evt = (ChessEvent)chessEvents.get(id);
+ if (evt == null) // Ignore DG_REMOVE_TOURNEY for events we didn't get a DG_TOURNEY for.
+ return;
+--- src/free/jin/console/ConsoleManager.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/console/ConsoleManager.java 2025-12-15 17:37:06.198515000 -0500
+@@ -588,7 +588,7 @@
+ new Object[]{
+ evt.getListTitle(),
+- new Integer(evt.getFirstIndex()),
+- new Integer(evt.getLastIndex()),
+- new Integer(evt.getItemCount())
++ evt.getFirstIndex(),
++ evt.getLastIndex(),
++ evt.getItemCount()
+ });
+ title = " " + title + " ";
+--- src/free/jin/console/prefs/TextPrefsPanel.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/console/prefs/TextPrefsPanel.java 2025-12-15 17:41:12.060192000 -0500
+@@ -204,5 +204,5 @@
+
+ setProperty(category, "font-family", font.getFamily());
+- setProperty(category, "font-size", new Integer(font.getSize()));
++ setProperty(category, "font-size", font.getSize());
+ setProperty(category, "font-bold", font.isBold() ? Boolean.TRUE : Boolean.FALSE);
+ setProperty(category, "font-italic", font.isItalic() ? Boolean.TRUE : Boolean.FALSE);
+@@ -472,9 +472,9 @@
+ protected Font getCategoryFont(String categoryName){
+ String fontFamily = (String)prefs.lookup("font-family." + categoryName, "Monospaced");
+- int fontSize = ((Integer)prefs.lookup("font-size." + categoryName, new Integer(14))).intValue();
++ int fontSize = (int)prefs.lookup("font-size." + categoryName, 14);
+ int fontStyle = 0;
+- if (((Boolean)prefs.lookup("font-bold." + categoryName, Boolean.FALSE)).booleanValue())
++ if ((boolean)prefs.lookup("font-bold." + categoryName, Boolean.FALSE))
+ fontStyle |= Font.BOLD;
+- if (((Boolean)prefs.lookup("font-italic." + categoryName, Boolean.FALSE)).booleanValue())
++ if ((boolean)prefs.lookup("font-italic." + categoryName, Boolean.FALSE))
+ fontStyle |= Font.ITALIC;
+
+--- src/free/util/swing/FontSelectorPanel.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/util/swing/FontSelectorPanel.java 2025-12-15 17:42:28.943047000 -0500
+@@ -242,5 +242,5 @@
+ Integer [] fontSizesInts = new Integer[fontSizes.length];
+ for (int i = 0; i < fontSizes.length; i++)
+- fontSizesInts[i] = new Integer(fontSizes[i]);
++ fontSizesInts[i] = fontSizes[i];
+ fontSizesList = new JList(fontSizesInts);
+ fontSizesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+@@ -453,5 +453,5 @@
+
+ fontNamesList.setSelectedValue(font.getFamily(), true);
+- fontSizesList.setSelectedValue(new Integer(font.getSize()), true);
++ fontSizesList.setSelectedValue(font.getSize(), true);
+
+ fireStateChanged();
+--- src/free/jin/scripter/Scripter.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/scripter/Scripter.java 2025-12-15 17:53:39.881363000 -0500
+@@ -859,10 +859,10 @@
+ vars.addElement(new Object[]{"whiteName", game.getWhiteName()});
+ vars.addElement(new Object[]{"blackName", game.getBlackName()});
+- vars.addElement(new Object[]{"whiteTime", new Integer(game.getWhiteTime()/(1000*60))});
+- vars.addElement(new Object[]{"whiteInc", new Integer(game.getWhiteInc()/1000)});
+- vars.addElement(new Object[]{"blackTime", new Integer(game.getBlackTime()/(1000*60))});
+- vars.addElement(new Object[]{"blackInc", new Integer(game.getBlackInc()/1000)});
+- vars.addElement(new Object[]{"whiteRating", new Integer(game.getWhiteRating())});
+- vars.addElement(new Object[]{"blackRating", new Integer(game.getBlackRating())});
++ vars.addElement(new Object[]{"whiteTime", (int)(game.getWhiteTime()/(1000*60))});
++ vars.addElement(new Object[]{"whiteInc", (int)(game.getWhiteInc()/1000)});
++ vars.addElement(new Object[]{"blackTime", (int)(game.getBlackTime()/(1000*60))});
++ vars.addElement(new Object[]{"blackInc", (int)(game.getBlackInc()/1000)});
++ vars.addElement(new Object[]{"whiteRating", game.getWhiteRating()});
++ vars.addElement(new Object[]{"blackRating", game.getBlackRating()});
+ vars.addElement(new Object[]{"whiteTitle", game.getWhiteTitles()});
+ vars.addElement(new Object[]{"blackTitle", game.getBlackTitles()});
+@@ -876,10 +876,10 @@
+ vars.addElement(new Object[]{"myName", game.getWhiteName()});
+ vars.addElement(new Object[]{"oppName", game.getBlackName()});
+- vars.addElement(new Object[]{"myTime", new Integer(game.getWhiteTime()/(1000*60))});
+- vars.addElement(new Object[]{"myInc", new Integer(game.getWhiteInc()/1000)});
+- vars.addElement(new Object[]{"oppTime", new Integer(game.getBlackTime()/(1000*60))});
+- vars.addElement(new Object[]{"oppInc", new Integer(game.getBlackInc()/1000)});
+- vars.addElement(new Object[]{"myRating", new Integer(game.getWhiteRating())});
+- vars.addElement(new Object[]{"oppRating", new Integer(game.getBlackRating())});
++ vars.addElement(new Object[]{"myTime", (int)(game.getWhiteTime()/(1000*60))});
++ vars.addElement(new Object[]{"myInc", (int)(game.getWhiteInc()/1000)});
++ vars.addElement(new Object[]{"oppTime", (int)(game.getBlackTime()/(1000*60))});
++ vars.addElement(new Object[]{"oppInc", (int)(game.getBlackInc()/1000)});
++ vars.addElement(new Object[]{"myRating", game.getWhiteRating()});
++ vars.addElement(new Object[]{"oppRating", game.getBlackRating()});
+ vars.addElement(new Object[]{"myTitle", game.getWhiteTitles()});
+ vars.addElement(new Object[]{"oppTitle", game.getBlackTitles()});
+@@ -888,10 +888,10 @@
+ vars.addElement(new Object[]{"oppName", game.getWhiteName()});
+ vars.addElement(new Object[]{"myName", game.getBlackName()});
+- vars.addElement(new Object[]{"oppTime", new Integer(game.getWhiteTime()/(1000*60))});
+- vars.addElement(new Object[]{"oppInc", new Integer(game.getWhiteInc()/1000)});
+- vars.addElement(new Object[]{"myTime", new Integer(game.getBlackTime()/(1000*60))});
+- vars.addElement(new Object[]{"myInc", new Integer(game.getBlackInc()/1000)});
+- vars.addElement(new Object[]{"oppRating", new Integer(game.getWhiteRating())});
+- vars.addElement(new Object[]{"myRating", new Integer(game.getBlackRating())});
++ vars.addElement(new Object[]{"oppTime", (int)(game.getWhiteTime()/(1000*60))});
++ vars.addElement(new Object[]{"oppInc", (int)(game.getWhiteInc()/1000)});
++ vars.addElement(new Object[]{"myTime", (int)(game.getBlackTime()/(1000*60))});
++ vars.addElement(new Object[]{"myInc", (int)(game.getBlackInc()/1000)});
++ vars.addElement(new Object[]{"oppRating", game.getWhiteRating()});
++ vars.addElement(new Object[]{"myRating", game.getBlackRating()});
+ vars.addElement(new Object[]{"oppTitle", game.getWhiteTitles()});
+ vars.addElement(new Object[]{"myTitle", game.getBlackTitles()});
+@@ -937,5 +937,5 @@
+ public void takebackOccurred(TakebackEvent evt){
+ Vector varsVector = createVarsVector(evt);
+- varsVector.addElement(new Object[]{"takebackCount", new Integer(evt.getTakebackCount())});
++ varsVector.addElement(new Object[]{"takebackCount", evt.getTakebackCount()});
+
+ Object [][] vars = new Object[varsVector.size()][];
+@@ -958,5 +958,5 @@
+ Vector varsVector = createVarsVector(evt);
+ varsVector.addElement(new Object[]{"player", evt.getPlayer().toString().toLowerCase()});
+- varsVector.addElement(new Object[]{"time", new Integer(evt.getTime())});
++ varsVector.addElement(new Object[]{"time", evt.getTime()});
+ varsVector.addElement(new Object[]{"isClockRunning", evt.isClockRunning() ? Boolean.TRUE : Boolean.FALSE});
+
+@@ -994,5 +994,5 @@
+ varsVector.addElement(new Object[]{"player", evt.getPlayer().toString().toLowerCase()});
+ if (evt.getOfferId() == OfferEvent.TAKEBACK_OFFER)
+- varsVector.addElement(new Object[]{"takebackCount", new Integer(evt.getTakebackCount())});
++ varsVector.addElement(new Object[]{"takebackCount", evt.getTakebackCount()});
+
+ Object [][] vars = new Object[varsVector.size()][];
+@@ -1056,5 +1056,5 @@
+
+ varsVector.addElement(new Object[]{"game", game});
+- varsVector.addElement(new Object[]{"gameType", new Integer(game.getGameType())});
++ varsVector.addElement(new Object[]{"gameType", game.getGameType()});
+ varsVector.addElement(new Object[]{"initialPosition", game.getInitialPosition()});
+ varsVector.addElement(new Object[]{"variant", game.getVariant()});
+@@ -1062,10 +1062,10 @@
+ varsVector.addElement(new Object[]{"myName", game.getWhiteName()});
+ varsVector.addElement(new Object[]{"oppName", game.getBlackName()});
+- varsVector.addElement(new Object[]{"myTime", new Integer(game.getWhiteTime()/(1000*60))});
+- varsVector.addElement(new Object[]{"myInc", new Integer(game.getWhiteInc()/1000)});
+- varsVector.addElement(new Object[]{"oppTime", new Integer(game.getBlackTime()/(1000*60))});
+- varsVector.addElement(new Object[]{"oppInc", new Integer(game.getBlackInc()/1000)});
+- varsVector.addElement(new Object[]{"myRating", new Integer(game.getWhiteRating())});
+- varsVector.addElement(new Object[]{"oppRating", new Integer(game.getBlackRating())});
++ varsVector.addElement(new Object[]{"myTime", (int)(game.getWhiteTime()/(1000*60))});
++ varsVector.addElement(new Object[]{"myInc", (int)(game.getWhiteInc()/1000)});
++ varsVector.addElement(new Object[]{"oppTime", (int)(game.getBlackTime()/(1000*60))});
++ varsVector.addElement(new Object[]{"oppInc", (int)(game.getBlackInc()/1000)});
++ varsVector.addElement(new Object[]{"myRating", game.getWhiteRating()});
++ varsVector.addElement(new Object[]{"oppRating", game.getBlackRating()});
+ varsVector.addElement(new Object[]{"myTitle", game.getWhiteTitles()});
+ varsVector.addElement(new Object[]{"oppTitle", game.getBlackTitles()});
+@@ -1073,10 +1073,10 @@
+ varsVector.addElement(new Object[]{"whiteName", game.getWhiteName()});
+ varsVector.addElement(new Object[]{"blackName", game.getBlackName()});
+- varsVector.addElement(new Object[]{"whiteTime", new Integer(game.getWhiteTime()/(1000*60))});
+- varsVector.addElement(new Object[]{"whiteInc", new Integer(game.getWhiteInc()/1000)});
+- varsVector.addElement(new Object[]{"blackTime", new Integer(game.getBlackTime()/(1000*60))});
+- varsVector.addElement(new Object[]{"blackInc", new Integer(game.getBlackInc()/1000)});
+- varsVector.addElement(new Object[]{"whiteRating", new Integer(game.getWhiteRating())});
+- varsVector.addElement(new Object[]{"blackRating", new Integer(game.getBlackRating())});
++ varsVector.addElement(new Object[]{"whiteTime", (int)(game.getWhiteTime()/(1000*60))});
++ varsVector.addElement(new Object[]{"whiteInc", (int)(game.getWhiteInc()/1000)});
++ varsVector.addElement(new Object[]{"blackTime", (int)(game.getBlackTime()/(1000*60))});
++ varsVector.addElement(new Object[]{"blackInc", (int)(game.getBlackInc()/1000)});
++ varsVector.addElement(new Object[]{"whiteRating", game.getWhiteRating()});
++ varsVector.addElement(new Object[]{"blackRating", game.getBlackRating()});
+ varsVector.addElement(new Object[]{"whiteTitle", game.getWhiteTitles()});
+ varsVector.addElement(new Object[]{"blackTitle", game.getBlackTitles()});
+@@ -1097,5 +1097,5 @@
+
+ if (Utilities.contains(eventSubtypes, subtypes[2]))
+- varsVector.addElement(new Object[]{"takebackCount", new Integer(3)});
++ varsVector.addElement(new Object[]{"takebackCount", 3});
+
+ if (Utilities.contains(eventSubtypes, subtypes[4]))
+@@ -1104,5 +1104,5 @@
+ if (Utilities.contains(eventSubtypes, subtypes[5])){
+ varsVector.addElement(new Object[]{"player", Player.WHITE_PLAYER.toString().toLowerCase()});
+- varsVector.addElement(new Object[]{"time", new Integer(4*60*1000)});
++ varsVector.addElement(new Object[]{"time", 4*60*1000});
+ varsVector.addElement(new Object[]{"isClockRunning", Boolean.TRUE});
+ }
+@@ -1162,11 +1162,11 @@
+ vars.addElement(new Object[]{"name", seek.getSeekerName()});
+ vars.addElement(new Object[]{"title", seek.getSeekerTitle()});
+- vars.addElement(new Object[]{"rating", new Integer(seek.getSeekerRating())});
++ vars.addElement(new Object[]{"rating", seek.getSeekerRating()});
+ vars.addElement(new Object[]{"isProvisional", seek.isSeekerProvisional() ? Boolean.TRUE : Boolean.FALSE});
+ vars.addElement(new Object[]{"isRegistered", seek.isSeekerRegistered() ? Boolean.TRUE : Boolean.FALSE});
+ vars.addElement(new Object[]{"isComputer", seek.isSeekerComputer() ? Boolean.TRUE : Boolean.FALSE});
+ vars.addElement(new Object[]{"ratingCategory", seek.getRatingCategoryString()});
+- vars.addElement(new Object[]{"time", new Integer(seek.getTime()/(1000*60))});
+- vars.addElement(new Object[]{"inc", new Integer(seek.getInc()/1000)});
++ vars.addElement(new Object[]{"time", (int)(seek.getTime()/(1000*60))});
++ vars.addElement(new Object[]{"inc", (int)(seek.getInc()/1000)});
+ vars.addElement(new Object[]{"isRated", seek.isRated() ? Boolean.TRUE : Boolean.FALSE});
+ String colorString = seek.getSoughtColor() == null ? null :
+@@ -1174,6 +1174,6 @@
+ vars.addElement(new Object[]{"color", colorString});
+ vars.addElement(new Object[]{"ratingLimited", seek.isRatingLimited() ? Boolean.TRUE : Boolean.FALSE});
+- vars.addElement(new Object[]{"minRating", new Integer(seek.getMinRating())});
+- vars.addElement(new Object[]{"maxRating", new Integer(seek.getMaxRating())});
++ vars.addElement(new Object[]{"minRating", seek.getMinRating()});
++ vars.addElement(new Object[]{"maxRating", seek.getMaxRating()});
+ vars.addElement(new Object[]{"isManualAccept", seek.isManualAccept() ? Boolean.TRUE : Boolean.FALSE});
+ vars.addElement(new Object[]{"isFormula", seek.isFormula() ? Boolean.TRUE : Boolean.FALSE});
+@@ -1209,11 +1209,11 @@
+ varsVector.addElement(new Object[]{"name", seek.getSeekerName()});
+ varsVector.addElement(new Object[]{"title", seek.getSeekerTitle()});
+- varsVector.addElement(new Object[]{"rating", new Integer(seek.getSeekerRating())});
++ varsVector.addElement(new Object[]{"rating", seek.getSeekerRating()});
+ varsVector.addElement(new Object[]{"isProvisional", seek.isSeekerProvisional() ? Boolean.TRUE : Boolean.FALSE});
+ varsVector.addElement(new Object[]{"isRegistered", seek.isSeekerRegistered() ? Boolean.TRUE : Boolean.FALSE});
+ varsVector.addElement(new Object[]{"isComputer", seek.isSeekerComputer() ? Boolean.TRUE : Boolean.FALSE});
+ varsVector.addElement(new Object[]{"ratingCategory", seek.getRatingCategoryString()});
+- varsVector.addElement(new Object[]{"time", new Integer(seek.getTime()/(1000*60))});
+- varsVector.addElement(new Object[]{"inc", new Integer(seek.getInc()/1000)});
++ varsVector.addElement(new Object[]{"time", (int)(seek.getTime()/(1000*60))});
++ varsVector.addElement(new Object[]{"inc", (int)(seek.getInc()/1000)});
+ varsVector.addElement(new Object[]{"isRated", seek.isRated() ? Boolean.TRUE : Boolean.FALSE});
+ String colorString = seek.getSoughtColor() == null ? null :
+@@ -1221,6 +1221,6 @@
+ varsVector.addElement(new Object[]{"color", colorString});
+ varsVector.addElement(new Object[]{"ratingLimited", seek.isRatingLimited() ? Boolean.TRUE : Boolean.FALSE});
+- varsVector.addElement(new Object[]{"minRating", new Integer(seek.getMinRating())});
+- varsVector.addElement(new Object[]{"maxRating", new Integer(seek.getMaxRating())});
++ varsVector.addElement(new Object[]{"minRating", seek.getMinRating()});
++ varsVector.addElement(new Object[]{"maxRating", seek.getMaxRating()});
+ varsVector.addElement(new Object[]{"isManualAccept", seek.isManualAccept() ? Boolean.TRUE : Boolean.FALSE});
+ varsVector.addElement(new Object[]{"isFormula", seek.isFormula() ? Boolean.TRUE : Boolean.FALSE});
+--- src/free/jin/scripter/UserInvokedScriptMenuItem.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/jin/scripter/UserInvokedScriptMenuItem.java 2025-12-15 17:56:26.029372000 -0500
+@@ -282,5 +282,5 @@
+ try{
+ if ("Integer".equals(type))
+- value = new Integer(valueString);
++ value = Integer.valueOf(valueString);
+ else if ("String".equals(type))
+ value = valueString;
+@@ -288,5 +288,5 @@
+ value = Boolean.valueOf(valueString);
+ else if ("Real".equals(type))
+- value = new Double(valueString);
++ value = Double.valueOf(valueString);
+ else throw new IllegalStateException("Unknown variable type: "+type);
+ } catch (IllegalArgumentException e){
+--- src/free/jin/scripter/fics/FreechessScripter.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/scripter/fics/FreechessScripter.java 2025-12-15 17:57:39.460399000 -0500
+@@ -127,6 +127,6 @@
+ {"sender", "AlexTheGreat"},
+ {"title", "C"},
+- {"channel", new Integer(107)},
+- {"gameNumber", new Integer(100)}
++ {"channel", 107},
++ {"gameNumber", 100}
+ };
+ }
+--- src/free/jin/scripter/icc/ChessclubScripter.java 2007-03-04 19:55:00.000000000 -0500
++++ src/free/jin/scripter/icc/ChessclubScripter.java 2025-12-15 17:59:01.324012000 -0500
+@@ -130,6 +130,6 @@
+ {"sender", "AlexTheGreat"},
+ {"title", "C"},
+- {"channel", new Integer(107)},
+- {"gameNumber", new Integer(100)}
++ {"channel", 107},
++ {"gameNumber", 100}
+ };
+ }
+--- src/free/util/AWTUtilities.java 2007-03-04 19:54:59.000000000 -0500
++++ src/free/util/AWTUtilities.java 2025-12-15 18:00:52.129375000 -0500
+@@ -160,5 +160,5 @@
+ Class frameClass = Class.forName("java.awt.Frame");
+ Method setExtendedStateMethod = frameClass.getMethod("setExtendedState", new Class[]{int.class});
+- setExtendedStateMethod.invoke(frame, new Object[]{new Integer(state)});
++ setExtendedStateMethod.invoke(frame, new Object[]{state});
+ } catch (ClassNotFoundException e){e.printStackTrace();}
+ catch (NoSuchMethodException e){e.printStackTrace();}
diff --git a/games/jumpy/Makefile b/games/jumpy/Makefile
index 5a8ecb065e33..e90d5a7d2763 100644
--- a/games/jumpy/Makefile
+++ b/games/jumpy/Makefile
@@ -1,7 +1,7 @@
PORTNAME= jumpy
DISTVERSIONPREFIX= v
DISTVERSION= 0.12.2
-PORTREVISION= 10
+PORTREVISION= 11
CATEGORIES= games wayland
MAINTAINER= jbeich@FreeBSD.org
diff --git a/games/punchy/Makefile b/games/punchy/Makefile
index 3ef60bd7294c..1020e85ec5ad 100644
--- a/games/punchy/Makefile
+++ b/games/punchy/Makefile
@@ -1,7 +1,7 @@
PORTNAME= punchy
DISTVERSIONPREFIX= v
DISTVERSION= 0.3.0
-PORTREVISION= 29
+PORTREVISION= 30
CATEGORIES= games wayland
MAINTAINER= jbeich@FreeBSD.org
diff --git a/games/retroarch/Makefile b/games/retroarch/Makefile
index 4b817bddc1e8..e80c12c678b4 100644
--- a/games/retroarch/Makefile
+++ b/games/retroarch/Makefile
@@ -1,7 +1,9 @@
PORTNAME= RetroArch
DISTVERSIONPREFIX= v
-DISTVERSION= 1.21.0
+DISTVERSION= 1.22.2
CATEGORIES= games emulators
+MASTER_SITES= https://github.com/libretro/${PORTNAME}/releases/download/v${DISTVERSION}/
+DISTNAME= ${PORTNAME:tl}-sourceonly-${DISTVERSION}
MAINTAINER= dmenelkir@gmail.com
COMMENT= Cross-platform entertainment system based on libretro API
@@ -20,10 +22,9 @@ LIB_DEPENDS= libass.so:multimedia/libass \
RUN_DEPENDS= retroarch-assets>0:games/retroarch-assets \
libretro-core-info>0:games/libretro-core-info
-USES= compiler:c++11-lib cpe gmake pkgconfig python shebangfix ssl
+USES= compiler:c++11-lib cpe gmake pkgconfig python shebangfix ssl \
+ tar:xz
CPE_VENDOR= libretro
-USE_GITHUB= yes
-GH_ACCOUNT= libretro
SHEBANG_FILES= libretro-common/glsym/glgen.py libretro-common/glsym/rglgen.py \
tools/cg2glsl.py tools/vulkan_loader_generator.py
diff --git a/games/retroarch/distinfo b/games/retroarch/distinfo
index 5e60e57c8902..cf6c75e87c74 100644
--- a/games/retroarch/distinfo
+++ b/games/retroarch/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1751263047
-SHA256 (libretro-RetroArch-v1.21.0_GH0.tar.gz) = 9da17918c10d91d4ebfde9ff402dba0b1ad6660fdbce7656d32f0c0182b3a538
-SIZE (libretro-RetroArch-v1.21.0_GH0.tar.gz) = 70961877
+TIMESTAMP = 1765674121
+SHA256 (retroarch-sourceonly-1.22.2.tar.xz) = 2a8b1713f7f4d2b53bad3e2297e48d78f5666098cf00d583d3e08f3c213f8aa6
+SIZE (retroarch-sourceonly-1.22.2.tar.xz) = 13564476
diff --git a/games/retroarch/files/patch-audio_common_alsa.c b/games/retroarch/files/patch-audio_common_alsa.c
new file mode 100644
index 000000000000..9023664d8b07
--- /dev/null
+++ b/games/retroarch/files/patch-audio_common_alsa.c
@@ -0,0 +1,10 @@
+--- audio/common/alsa.c.orig 2025-11-20 00:17:08 UTC
++++ audio/common/alsa.c
+@@ -17,7 +17,6 @@
+ #include <string/stdstring.h>
+
+ #include <alsa/asoundlib.h>
+-#include <asm-generic/errno.h>
+
+ #include "alsa.h"
+
diff --git a/games/retroarch/files/patch-audio_drivers_alsa.c b/games/retroarch/files/patch-audio_drivers_alsa.c
new file mode 100644
index 000000000000..c6a00faf8447
--- /dev/null
+++ b/games/retroarch/files/patch-audio_drivers_alsa.c
@@ -0,0 +1,11 @@
+--- audio/drivers/alsa.c.orig 2025-11-20 00:17:08 UTC
++++ audio/drivers/alsa.c
+@@ -22,7 +22,7 @@
+
+ #include <alsa/asoundlib.h>
+ #include <alsa/pcm.h>
+-#include <asm-generic/errno.h>
++#include <errno.h>
+
+ #include "../audio_driver.h"
+ #include "../common/alsa.h"
diff --git a/games/retroarch/files/patch-audio_drivers_alsathread.c b/games/retroarch/files/patch-audio_drivers_alsathread.c
new file mode 100644
index 000000000000..1d1cd5487c1a
--- /dev/null
+++ b/games/retroarch/files/patch-audio_drivers_alsathread.c
@@ -0,0 +1,11 @@
+--- audio/drivers/alsathread.c.orig 2025-11-20 00:17:08 UTC
++++ audio/drivers/alsathread.c
+@@ -24,7 +24,7 @@
+ #include <rthreads/rthreads.h>
+ #include <queues/fifo_queue.h>
+ #include <string/stdstring.h>
+-#include <asm-generic/errno.h>
++#include <errno.h>
+
+ #include "../audio_driver.h"
+ #include "../common/alsa.h" /* For some common functions/types */
diff --git a/games/retroarch/files/patch-audio_drivers_pipewire.c b/games/retroarch/files/patch-audio_drivers_pipewire.c
deleted file mode 100644
index dee89af57e77..000000000000
--- a/games/retroarch/files/patch-audio_drivers_pipewire.c
+++ /dev/null
@@ -1,20 +0,0 @@
---- audio/drivers/pipewire.c.orig 2025-05-01 00:17:50 UTC
-+++ audio/drivers/pipewire.c
-@@ -157,7 +157,7 @@ static const struct pw_registry_events registry_events
- .global = registry_event_global,
- };
-
--static void *pipewire_init(const char *device, unsigned rate,
-+static void *_pipewire_init(const char *device, unsigned rate,
- unsigned latency,
- unsigned block_frames,
- unsigned *new_rate)
-@@ -443,7 +443,7 @@ audio_driver_t audio_pipewire = {
- }
-
- audio_driver_t audio_pipewire = {
-- pipewire_init,
-+ _pipewire_init,
- pipewire_write,
- pipewire_stop,
- pipewire_start,
diff --git a/games/retroarch/files/patch-fix-ffmpeg8 b/games/retroarch/files/patch-fix-ffmpeg8
deleted file mode 100644
index 148e4d47957f..000000000000
--- a/games/retroarch/files/patch-fix-ffmpeg8
+++ /dev/null
@@ -1,97 +0,0 @@
-From 21776a2e59f5f5899ff2198c0df25a95b5020012 Mon Sep 17 00:00:00 2001
-From: libretroadmin <reallibretroretroarch@gmail.com>
-Date: Fri, 12 Sep 2025 01:44:51 +0200
-Subject: [PATCH] Attempt to fix ffmpeg 8.0 build errors
-
----
- cores/libretro-ffmpeg/ffmpeg_core.c | 14 ++++++++++++++
- record/drivers/record_ffmpeg.c | 17 +++++++++++++++++
- 2 files changed, 31 insertions(+)
-
-diff --git cores/libretro-ffmpeg/ffmpeg_core.c cores/libretro-ffmpeg/ffmpeg_core.c
-index af1a9c6ac76..90272e8e2e2 100644
---- cores/libretro-ffmpeg/ffmpeg_core.c
-+++ cores/libretro-ffmpeg/ffmpeg_core.c
-@@ -101,6 +101,9 @@ static tpool_t *tpool;
- #define FFMPEG3 ((LIBAVUTIL_VERSION_INT < (56, 6, 100)) || \
- (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100)))
- #endif
-+#ifndef FFMPEG8
-+#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62)
-+#endif
-
- #if ENABLE_HW_ACCEL
- static enum AVHWDeviceType hw_decoder;
-@@ -2093,17 +2096,28 @@ void CORE_PREFIX(retro_unload_game)(void)
-
- for (i = 0; i < MAX_STREAMS; i++)
- {
-+#if FFMPEG8
-+ if (sctx[i])
-+ avcodec_free_context(&sctx[i]);
-+ if (actx[i])
-+ avcodec_free_context(&actx[i]);
-+#else
- if (sctx[i])
- avcodec_close(sctx[i]);
- if (actx[i])
- avcodec_close(actx[i]);
-+#endif
- sctx[i] = NULL;
- actx[i] = NULL;
- }
-
- if (vctx)
- {
-+#if FFMPEG8
-+ avcodec_free_context(&vctx);
-+#else
- avcodec_close(vctx);
-+#endif
- vctx = NULL;
- }
-
-diff --git record/drivers/record_ffmpeg.c record/drivers/record_ffmpeg.c
-index 1c97c66886c..41063495c88 100644
---- record/drivers/record_ffmpeg.c
-+++ record/drivers/record_ffmpeg.c
-@@ -73,6 +73,15 @@ extern "C" {
- #define FFMPEG3 ((LIBAVUTIL_VERSION_INT < (56, 6, 100)) || \
- (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100)))
- #endif
-+
-+#ifndef FFMPEG8
-+#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62)
-+#endif
-+
-+#ifndef AV_INPUT_BUFFER_MIN_SIZE
-+#define AV_INPUT_BUFFER_MIN_SIZE 16384
-+#endif
-+
- #define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100))
-
- struct ff_video_info
-@@ -952,7 +961,11 @@ static void ffmpeg_free(void *data)
-
- if (handle->audio.codec)
- {
-+#if FFMPEG8
-+ avcodec_free_context(&handle->audio.codec);
-+#else
- avcodec_close(handle->audio.codec);
-+#endif
- av_free(handle->audio.codec);
- }
-
-@@ -960,7 +973,11 @@ static void ffmpeg_free(void *data)
-
- if (handle->video.codec)
- {
-+#if FFMPEG8
-+ avcodec_free_context(&handle->video.codec);
-+#else
- avcodec_close(handle->video.codec);
-+#endif
- av_free(handle->video.codec);
- }
-
diff --git a/games/retroarch/files/patch-qb_config.libs.sh b/games/retroarch/files/patch-qb_config.libs.sh
index 732a8e228973..e85f1bae2a1c 100644
--- a/games/retroarch/files/patch-qb_config.libs.sh
+++ b/games/retroarch/files/patch-qb_config.libs.sh
@@ -1,4 +1,4 @@
---- qb/config.libs.sh.orig 2025-05-01 00:17:50 UTC
+--- qb/config.libs.sh.orig 2025-12-09 00:02:20 UTC
+++ qb/config.libs.sh
@@ -269,8 +269,10 @@ check_val '' PULSE -lpulse '' libpulse '' '' false
check_pkgconf ROAR libroar 1.0.12
@@ -8,6 +8,6 @@
check_val '' PIPEWIRE -lpipewire-0.3 '' libpipewire-0.3 '' '' false
check_val '' PIPEWIRE_STABLE -lpipewire-0.3 '' libpipewire-0.3 1.0.0 '' false
+fi
- check_val '' SDL -lSDL SDL sdl 1.2.10 '' false
- check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' false
+ check_val '' SDL -lSDL SDL sdl 1.2.10 '' true
+ check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' true
diff --git a/games/rpg-cli/Makefile b/games/rpg-cli/Makefile
index 955833d78c1c..96c390472b38 100644
--- a/games/rpg-cli/Makefile
+++ b/games/rpg-cli/Makefile
@@ -1,6 +1,6 @@
PORTNAME= rpg-cli
DISTVERSION= 1.0.1
-PORTREVISION= 33
+PORTREVISION= 34
CATEGORIES= games
MAINTAINER= lcook@FreeBSD.org
diff --git a/games/sgt-puzzles/Makefile b/games/sgt-puzzles/Makefile
index 9b659d6a8b4b..5f4be8123649 100644
--- a/games/sgt-puzzles/Makefile
+++ b/games/sgt-puzzles/Makefile
@@ -1,5 +1,5 @@
PORTNAME= puzzles
-PORTVERSION= 20251021
+PORTVERSION= 20251211
CATEGORIES= games
# upstream does not preserve older versions, mirroring is mandatory
MASTER_SITES= https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ \
@@ -20,7 +20,7 @@ USES= cmake gnome magick:build perl5 pkgconfig
USE_PERL5= build
CMAKE_ARGS= -DNAME_PREFIX:STRING=sgt-
-COMMITHASH= 790f585
+COMMITHASH= 5c2f87c
DATADIR= ${PREFIX}/share/sgt-puzzles
PORTDATA= *
diff --git a/games/sgt-puzzles/distinfo b/games/sgt-puzzles/distinfo
index feeec704a498..290b81a84076 100644
--- a/games/sgt-puzzles/distinfo
+++ b/games/sgt-puzzles/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762603709
-SHA256 (puzzles-20251021.790f585.tar.gz) = e0466016cc0fd28aa34b43996e4c931c2b3b74a9b63e050aa6c256b2c400bd0e
-SIZE (puzzles-20251021.790f585.tar.gz) = 2470317
+TIMESTAMP = 1765566391
+SHA256 (puzzles-20251211.5c2f87c.tar.gz) = 40b63a8114ac286b5e938ea9e971a6ebe0f3d83fd0e3845260585ea6a9fa25b8
+SIZE (puzzles-20251211.5c2f87c.tar.gz) = 2476809
diff --git a/games/stormbaancoureur/Makefile b/games/stormbaancoureur/Makefile
index 7f267a7f4feb..3252e85717c7 100644
--- a/games/stormbaancoureur/Makefile
+++ b/games/stormbaancoureur/Makefile
@@ -1,6 +1,6 @@
PORTNAME= stormbaancoureur
PORTVERSION= 2.1.6
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= games
MASTER_SITES= http://www.stolk.org/stormbaancoureur/download/ \
https://mirror.amdmi3.ru/distfiles/
diff --git a/games/sulis/Makefile b/games/sulis/Makefile
index a47645352eb0..3a573b4084e8 100644
--- a/games/sulis/Makefile
+++ b/games/sulis/Makefile
@@ -1,6 +1,6 @@
PORTNAME= sulis
DISTVERSION= 1.0.0
-PORTREVISION= 10
+PORTREVISION= 11
CATEGORIES= games
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
diff --git a/games/tetrigo/Makefile b/games/tetrigo/Makefile
index e87535f6fe37..577c2ff1e720 100644
--- a/games/tetrigo/Makefile
+++ b/games/tetrigo/Makefile
@@ -11,10 +11,7 @@ WWW= https://github.com/Broderick-Westrope/tetrigo
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-USES= go:1.23,modules
-
-DEPRECATED= Uses old go, but try building without USES=go:someversion
-EXPIRATION_DATE=2026-01-01
+USES= go:modules
GO_MODULE= github.com/Broderick-Westrope/tetrigo
GO_TARGET= ./cmd/${PORTNAME}
diff --git a/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile
index 94e6aa79f450..bb4bf3ac2ead 100644
--- a/games/veloren-weekly/Makefile
+++ b/games/veloren-weekly/Makefile
@@ -1,5 +1,6 @@
PORTNAME= veloren
PORTVERSION= s20251203
+PORTREVISION= 1
CATEGORIES= games wayland
PKGNAMESUFFIX= -weekly
diff --git a/games/xonotic/Makefile b/games/xonotic/Makefile
index a9f82795de13..a9b43c9ad35b 100644
--- a/games/xonotic/Makefile
+++ b/games/xonotic/Makefile
@@ -1,6 +1,6 @@
PORTNAME= xonotic
PORTVERSION= 0.8.6
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= games
MASTER_SITES= https://dl.xonotic.org/ \
https://download.evil-ant-colony.org/xonotic/ \