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/Makefile4
-rw-r--r--games/veloren-weekly/Makefile.crates53
-rw-r--r--games/veloren-weekly/distinfo112
-rw-r--r--games/veloren-weekly/files/patch-unix78
-rw-r--r--games/veloren-weekly/files/patch-wgpu-nvidia6
-rw-r--r--games/warzone2100/Makefile5
-rw-r--r--games/warzone2100/distinfo6
-rw-r--r--games/warzone2100/files/patch-cmake_FindZIP.cmake22
-rw-r--r--games/warzone2100/files/patch-lib_sdl_CMakeLists.txt17
-rw-r--r--games/warzone2100/pkg-plist3
-rw-r--r--games/xonotic/Makefile2
-rw-r--r--games/xtxf/Makefile8
-rw-r--r--games/xtxf/distinfo14
45 files changed, 1381 insertions, 351 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..f5bf0bad85b5 100644
--- a/games/veloren-weekly/Makefile
+++ b/games/veloren-weekly/Makefile
@@ -1,5 +1,5 @@
PORTNAME= veloren
-PORTVERSION= s20251203
+PORTVERSION= s20251217
CATEGORIES= games wayland
PKGNAMESUFFIX= -weekly
@@ -25,7 +25,7 @@ RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-pl
USES= cargo xorg
USE_XORG= xcb
USE_GITLAB= yes
-GL_TAGNAME= v0.17.0-1455-g7e8cec0d08 # git describe --match='v[0-9]*' weekly
+GL_TAGNAME= v0.17.0-1463-g85e45ca0bd # git describe --match='v[0-9]*' weekly
CARGO_ENV= VELOREN_USERDATA_STRATEGY=system SHADERC_LIB_DIR="${LOCALBASE}/lib"
PLIST_FILES= bin/${PORTNAME}-server-cli \
bin/${PORTNAME}-voxygen \
diff --git a/games/veloren-weekly/Makefile.crates b/games/veloren-weekly/Makefile.crates
index 04eeeaf9604b..4662ac612e81 100644
--- a/games/veloren-weekly/Makefile.crates
+++ b/games/veloren-weekly/Makefile.crates
@@ -1,4 +1,4 @@
-CARGO_CRATES= ab_glyph-0.2.31 \
+CARGO_CRATES= ab_glyph-0.2.32 \
ab_glyph_rasterizer-0.1.10 \
addr2line-0.24.2 \
addr2line-0.25.1 \
@@ -27,6 +27,7 @@ CARGO_CRATES= ab_glyph-0.2.31 \
approx-0.4.0 \
approx-0.5.1 \
arbitrary-1.4.2 \
+ arboard-3.6.1 \
arr_macro-0.2.1 \
arr_macro_impl-0.2.1 \
arrayref-0.3.9 \
@@ -62,8 +63,8 @@ CARGO_CRATES= ab_glyph-0.2.31 \
block2-0.5.1 \
block2-0.6.1 \
bumpalo-3.19.0 \
- bytemuck-1.23.2 \
- bytemuck_derive-1.10.1 \
+ bytemuck-1.24.0 \
+ bytemuck_derive-1.10.2 \
byteorder-1.5.0 \
byteorder-lite-0.1.0 \
bytes-1.10.1 \
@@ -190,14 +191,14 @@ CARGO_CRATES= ab_glyph-0.2.31 \
dpi-0.1.2 \
drop_guard-0.3.0 \
dyn-clone-1.0.20 \
- ecolor-0.32.2 \
- egui-0.32.2 \
- egui_plot-0.33.0 \
- egui_wgpu_backend-0.35.0 \
- egui_winit_platform-0.27.0 \
+ ecolor-0.33.2 \
+ egui-0.33.2 \
+ egui-wgpu-0.33.2 \
+ egui-winit-0.33.2 \
+ egui_plot-0.34.0 \
either-1.15.0 \
elapsed-0.1.2 \
- emath-0.32.2 \
+ emath-0.33.2 \
embedded-io-0.4.0 \
embedded-io-0.6.1 \
encode_unicode-1.0.0 \
@@ -209,8 +210,8 @@ CARGO_CRATES= ab_glyph-0.2.31 \
enumset-1.1.10 \
enumset_derive-0.14.0 \
env_home-0.1.0 \
- epaint-0.32.2 \
- epaint_default_fonts-0.32.2 \
+ epaint-0.33.2 \
+ epaint_default_fonts-0.33.2 \
equivalent-1.0.2 \
errno-0.3.14 \
error-chain-0.12.4 \
@@ -223,6 +224,8 @@ CARGO_CRATES= ab_glyph-0.2.31 \
fallible-streaming-iterator-0.1.9 \
fastbloom-0.14.0 \
fastrand-2.3.0 \
+ fax-0.2.6 \
+ fax_derive-0.2.0 \
fd-lock-4.0.4 \
fdeflate-0.3.7 \
filetime-0.2.26 \
@@ -383,7 +386,7 @@ CARGO_CRATES= ab_glyph-0.2.31 \
linux-raw-sys-0.11.0 \
litemap-0.8.0 \
litrs-0.4.2 \
- lock_api-0.4.13 \
+ lock_api-0.4.14 \
log-0.4.28 \
loom-0.7.2 \
lru-0.12.5 \
@@ -414,7 +417,7 @@ CARGO_CRATES= ab_glyph-0.2.31 \
moka-0.12.10 \
moxcms-0.7.5 \
mumble-link-0.2.0 \
- naga-26.0.0 \
+ naga-27.0.3 \
native-dialog-0.9.0 \
ndk-0.9.0 \
ndk-context-0.1.1 \
@@ -496,8 +499,8 @@ CARGO_CRATES= ab_glyph-0.2.31 \
ordered-float-5.0.0 \
owned_ttf_parser-0.25.1 \
parking-2.2.1 \
- parking_lot-0.12.4 \
- parking_lot_core-0.9.11 \
+ parking_lot-0.12.5 \
+ parking_lot_core-0.9.12 \
paste-1.0.15 \
pastey-0.1.1 \
pathdiff-0.2.3 \
@@ -542,6 +545,7 @@ CARGO_CRATES= ab_glyph-0.2.31 \
pulley-interpreter-39.0.0 \
pulley-macros-39.0.0 \
pxfm-0.1.23 \
+ quick-error-2.0.1 \
quick-xml-0.37.5 \
quinn-0.11.9 \
quinn-proto-0.11.13 \
@@ -709,6 +713,7 @@ CARGO_CRATES= ab_glyph-0.2.31 \
thiserror-impl-1.0.69 \
thiserror-impl-2.0.17 \
thread_local-1.1.9 \
+ tiff-0.10.3 \
time-0.3.43 \
time-core-0.1.6 \
time-macros-0.2.24 \
@@ -837,16 +842,18 @@ CARGO_CRATES= ab_glyph-0.2.31 \
wayland-sys-0.31.7 \
web-sys-0.3.78 \
web-time-1.1.0 \
+ webbrowser-1.0.6 \
webpki-root-certs-1.0.2 \
+ weezl-0.1.12 \
wfd-0.1.7 \
- wgpu-26.0.1 \
- wgpu-core-26.0.1 \
- wgpu-core-deps-apple-26.0.0 \
- wgpu-core-deps-emscripten-26.0.0 \
- wgpu-core-deps-windows-linux-android-26.0.0 \
- wgpu-hal-26.0.4 \
- wgpu-profiler-0.24.0 \
- wgpu-types-26.0.0 \
+ wgpu-27.0.1 \
+ wgpu-core-27.0.3 \
+ wgpu-core-deps-apple-27.0.0 \
+ wgpu-core-deps-emscripten-27.0.0 \
+ wgpu-core-deps-windows-linux-android-27.0.0 \
+ wgpu-hal-27.0.4 \
+ wgpu-profiler-0.25.0 \
+ wgpu-types-27.0.1 \
which-7.0.3 \
widestring-1.2.0 \
wiggle-39.0.0 \
diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo
index 4b4aebfc9d96..aefd32c8ab31 100644
--- a/games/veloren-weekly/distinfo
+++ b/games/veloren-weekly/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1764933185
-SHA256 (rust/crates/ab_glyph-0.2.31.crate) = e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d
-SIZE (rust/crates/ab_glyph-0.2.31.crate) = 20909
+TIMESTAMP = 1765992680
+SHA256 (rust/crates/ab_glyph-0.2.32.crate) = 01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2
+SIZE (rust/crates/ab_glyph-0.2.32.crate) = 20967
SHA256 (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618
SIZE (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 11206
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
@@ -57,6 +57,8 @@ SHA256 (rust/crates/approx-0.5.1.crate) = cab112f0a86d568ea0e627cc1d6be74a1e9cd5
SIZE (rust/crates/approx-0.5.1.crate) = 15100
SHA256 (rust/crates/arbitrary-1.4.2.crate) = c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1
SIZE (rust/crates/arbitrary-1.4.2.crate) = 38307
+SHA256 (rust/crates/arboard-3.6.1.crate) = 0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf
+SIZE (rust/crates/arboard-3.6.1.crate) = 54018
SHA256 (rust/crates/arr_macro-0.2.1.crate) = c49336e062fa2ae8aca17a2f99c34d9c1a5d30827e8aff1cb4c294f253afe992
SIZE (rust/crates/arr_macro-0.2.1.crate) = 6504
SHA256 (rust/crates/arr_macro_impl-0.2.1.crate) = 9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e
@@ -127,10 +129,10 @@ SHA256 (rust/crates/block2-0.6.1.crate) = 340d2f0bdb2a43c1d3cd40513185b2bd7def0a
SIZE (rust/crates/block2-0.6.1.crate) = 34311
SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
-SHA256 (rust/crates/bytemuck-1.23.2.crate) = 3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677
-SIZE (rust/crates/bytemuck-1.23.2.crate) = 53021
-SHA256 (rust/crates/bytemuck_derive-1.10.1.crate) = 4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29
-SIZE (rust/crates/bytemuck_derive-1.10.1.crate) = 25122
+SHA256 (rust/crates/bytemuck-1.24.0.crate) = 1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4
+SIZE (rust/crates/bytemuck-1.24.0.crate) = 53243
+SHA256 (rust/crates/bytemuck_derive-1.10.2.crate) = f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff
+SIZE (rust/crates/bytemuck_derive-1.10.2.crate) = 25678
SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495
@@ -383,22 +385,22 @@ SHA256 (rust/crates/drop_guard-0.3.0.crate) = 2c4a817d8b683f6e649aed359aab0c47a8
SIZE (rust/crates/drop_guard-0.3.0.crate) = 4614
SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555
SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134
-SHA256 (rust/crates/ecolor-0.32.2.crate) = ebb57dec02e4cca6d70d02e29865f7e52dbd471383f4c3444dda7ee78d467360
-SIZE (rust/crates/ecolor-0.32.2.crate) = 16361
-SHA256 (rust/crates/egui-0.32.2.crate) = 40df1115b8b0f3d4f1f9134a26287fd3d0e067fc18f879b8c9641aedf3eecef7
-SIZE (rust/crates/egui-0.32.2.crate) = 390290
-SHA256 (rust/crates/egui_plot-0.33.0.crate) = 524318041a8ea90c81c738e8985f8ad9e3f9bed636b03c2ff37b218113ed5121
-SIZE (rust/crates/egui_plot-0.33.0.crate) = 50709
-SHA256 (rust/crates/egui_wgpu_backend-0.35.0.crate) = 00298a0625eba5b3a4f39444766d2590e45fa550446fb07dfefc90e84797f4f3
-SIZE (rust/crates/egui_wgpu_backend-0.35.0.crate) = 22712
-SHA256 (rust/crates/egui_winit_platform-0.27.0.crate) = bf980ab437c001c9172791dbba1c114912cfc557128594c068294d73100387bf
-SIZE (rust/crates/egui_winit_platform-0.27.0.crate) = 26819
+SHA256 (rust/crates/ecolor-0.33.2.crate) = 084980ebede2fb1ad6c4f54285b3e489052ef2b6aa4016e4c19349417adc75c5
+SIZE (rust/crates/ecolor-0.33.2.crate) = 16830
+SHA256 (rust/crates/egui-0.33.2.crate) = b75645894de4ca1695ab3ab7201c7953bb95c1725aafeefa6822dc901ad2a81b
+SIZE (rust/crates/egui-0.33.2.crate) = 396666
+SHA256 (rust/crates/egui-wgpu-0.33.2.crate) = acdaac35a6e0ff458aaa5776b2bda578e38334a9d1258f7795042a70372745b7
+SIZE (rust/crates/egui-wgpu-0.33.2.crate) = 48065
+SHA256 (rust/crates/egui-winit-0.33.2.crate) = 4772ed5f16fa8ec2ba295e58f62b58ee83fcf49e67ec13d2b7ddf4e9a2dea34e
+SIZE (rust/crates/egui-winit-0.33.2.crate) = 45130
+SHA256 (rust/crates/egui_plot-0.34.0.crate) = 33233ffc010fd450381805bbbebecbbb82f077de7712ddc439f0b20effd42db7
+SIZE (rust/crates/egui_plot-0.34.0.crate) = 51061
SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
SIZE (rust/crates/either-1.15.0.crate) = 20114
SHA256 (rust/crates/elapsed-0.1.2.crate) = 6f4e5af126dafd0741c2ad62d47f68b28602550102e5f0dd45c8a97fc8b49c29
SIZE (rust/crates/elapsed-0.1.2.crate) = 2377
-SHA256 (rust/crates/emath-0.32.2.crate) = b5c95b6d5571099bfa0ae9f4fdaef2c239bccb01d55339a082070259dc6f3b05
-SIZE (rust/crates/emath-0.32.2.crate) = 32352
+SHA256 (rust/crates/emath-0.33.2.crate) = 0e561352ae95c22ad179fb56c38d6e6eecd86cf4925cf5c70e738dd01df9b620
+SIZE (rust/crates/emath-0.33.2.crate) = 33652
SHA256 (rust/crates/embedded-io-0.4.0.crate) = ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced
SIZE (rust/crates/embedded-io-0.4.0.crate) = 12901
SHA256 (rust/crates/embedded-io-0.6.1.crate) = edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d
@@ -421,10 +423,10 @@ SHA256 (rust/crates/enumset_derive-0.14.0.crate) = f43e744e4ea338060faee68ed933e
SIZE (rust/crates/enumset_derive-0.14.0.crate) = 17657
SHA256 (rust/crates/env_home-0.1.0.crate) = c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe
SIZE (rust/crates/env_home-0.1.0.crate) = 9006
-SHA256 (rust/crates/epaint-0.32.2.crate) = 695fd7b458f31fe515d6a308f46b2936cae9316dc40c960a7ee31ce3a97866b9
-SIZE (rust/crates/epaint-0.32.2.crate) = 105458
-SHA256 (rust/crates/epaint_default_fonts-0.32.2.crate) = bbc9f86ce3eaf9b7fc7179a578af21a6a5cd2d4fd21965564e82a2d009a7dab0
-SIZE (rust/crates/epaint_default_fonts-0.32.2.crate) = 784117
+SHA256 (rust/crates/epaint-0.33.2.crate) = a909ce8cee63e8350fb0c251ad39277a5b24f19add60787e84a3b3ab3f2bd83a
+SIZE (rust/crates/epaint-0.33.2.crate) = 104358
+SHA256 (rust/crates/epaint_default_fonts-0.33.2.crate) = ad9649446c23368ae138716910e3e28143995691b598fbb9de16b42b0722cbcc
+SIZE (rust/crates/epaint_default_fonts-0.33.2.crate) = 787142
SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
@@ -449,6 +451,10 @@ SHA256 (rust/crates/fastbloom-0.14.0.crate) = 18c1ddb9231d8554c2d6bdf4cfaabf0c59
SIZE (rust/crates/fastbloom-0.14.0.crate) = 23827
SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
+SHA256 (rust/crates/fax-0.2.6.crate) = f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab
+SIZE (rust/crates/fax-0.2.6.crate) = 13279
+SHA256 (rust/crates/fax_derive-0.2.0.crate) = a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d
+SIZE (rust/crates/fax_derive-0.2.0.crate) = 4442
SHA256 (rust/crates/fd-lock-4.0.4.crate) = 0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78
SIZE (rust/crates/fd-lock-4.0.4.crate) = 15522
SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c
@@ -769,8 +775,8 @@ SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0
SIZE (rust/crates/litemap-0.8.0.crate) = 34344
SHA256 (rust/crates/litrs-0.4.2.crate) = f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed
SIZE (rust/crates/litrs-0.4.2.crate) = 43399
-SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765
-SIZE (rust/crates/lock_api-0.4.13.crate) = 28565
+SHA256 (rust/crates/lock_api-0.4.14.crate) = 224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965
+SIZE (rust/crates/lock_api-0.4.14.crate) = 29249
SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
SIZE (rust/crates/log-0.4.28.crate) = 51131
SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca
@@ -831,8 +837,8 @@ SHA256 (rust/crates/moxcms-0.7.5.crate) = ddd32fa8935aeadb8a8a6b6b351e40225570a3
SIZE (rust/crates/moxcms-0.7.5.crate) = 184232
SHA256 (rust/crates/mumble-link-0.2.0.crate) = c7f4c53745d4e7afd0faaf6ee46c0c3114d4b7d0db63bef96917751906453285
SIZE (rust/crates/mumble-link-0.2.0.crate) = 11204
-SHA256 (rust/crates/naga-26.0.0.crate) = 916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c
-SIZE (rust/crates/naga-26.0.0.crate) = 737361
+SHA256 (rust/crates/naga-27.0.3.crate) = 066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8
+SIZE (rust/crates/naga-27.0.3.crate) = 761268
SHA256 (rust/crates/native-dialog-0.9.0.crate) = 8f006431cea71a83e6668378cb5abc2d52af299cbac6dca1780c6eeca90822df
SIZE (rust/crates/native-dialog-0.9.0.crate) = 27203
SHA256 (rust/crates/ndk-0.9.0.crate) = c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4
@@ -995,10 +1001,10 @@ SHA256 (rust/crates/owned_ttf_parser-0.25.1.crate) = 36820e9051aca1014ddc75770aa
SIZE (rust/crates/owned_ttf_parser-0.25.1.crate) = 8989
SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba
SIZE (rust/crates/parking-2.2.1.crate) = 10685
-SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
-SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779
-SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5
-SIZE (rust/crates/parking_lot_core-0.9.11.crate) = 34773
+SHA256 (rust/crates/parking_lot-0.12.5.crate) = 93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a
+SIZE (rust/crates/parking_lot-0.12.5.crate) = 46735
+SHA256 (rust/crates/parking_lot_core-0.9.12.crate) = 2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1
+SIZE (rust/crates/parking_lot_core-0.9.12.crate) = 34110
SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
SIZE (rust/crates/paste-1.0.15.crate) = 18374
SHA256 (rust/crates/pastey-0.1.1.crate) = 35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec
@@ -1087,6 +1093,8 @@ SHA256 (rust/crates/pulley-macros-39.0.0.crate) = 7416ec5b280e7c12c457452d8d1569
SIZE (rust/crates/pulley-macros-39.0.0.crate) = 2352
SHA256 (rust/crates/pxfm-0.1.23.crate) = f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84
SIZE (rust/crates/pxfm-0.1.23.crate) = 1219248
+SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3
+SIZE (rust/crates/quick-error-2.0.1.crate) = 14265
SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb
SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481
SHA256 (rust/crates/quinn-0.11.9.crate) = b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20
@@ -1421,6 +1429,8 @@ SHA256 (rust/crates/thiserror-impl-2.0.17.crate) = 3ff15c8ecd7de3849db632e14d18d
SIZE (rust/crates/thiserror-impl-2.0.17.crate) = 21344
SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
+SHA256 (rust/crates/tiff-0.10.3.crate) = af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f
+SIZE (rust/crates/tiff-0.10.3.crate) = 1444592
SHA256 (rust/crates/time-0.3.43.crate) = 83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031
SIZE (rust/crates/time-0.3.43.crate) = 142912
SHA256 (rust/crates/time-core-0.1.6.crate) = 40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b
@@ -1677,26 +1687,30 @@ SHA256 (rust/crates/web-sys-0.3.78.crate) = 77e4b637749ff0d92b8fad63aa1f7cff3cbe
SIZE (rust/crates/web-sys-0.3.78.crate) = 642410
SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
SIZE (rust/crates/web-time-1.1.0.crate) = 18026
+SHA256 (rust/crates/webbrowser-1.0.6.crate) = 00f1243ef785213e3a32fa0396093424a3a6ea566f9948497e5a2309261a4c97
+SIZE (rust/crates/webbrowser-1.0.6.crate) = 57471
SHA256 (rust/crates/webpki-root-certs-1.0.2.crate) = 4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a
SIZE (rust/crates/webpki-root-certs-1.0.2.crate) = 173652
+SHA256 (rust/crates/weezl-0.1.12.crate) = a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88
+SIZE (rust/crates/weezl-0.1.12.crate) = 46045
SHA256 (rust/crates/wfd-0.1.7.crate) = e713040b67aae5bf1a0ae3e1ebba8cc29ab2b90da9aa1bff6e09031a8a41d7a8
SIZE (rust/crates/wfd-0.1.7.crate) = 8825
-SHA256 (rust/crates/wgpu-26.0.1.crate) = 70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798
-SIZE (rust/crates/wgpu-26.0.1.crate) = 188657
-SHA256 (rust/crates/wgpu-core-26.0.1.crate) = d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9
-SIZE (rust/crates/wgpu-core-26.0.1.crate) = 306801
-SHA256 (rust/crates/wgpu-core-deps-apple-26.0.0.crate) = 18ae5fbde6a4cbebae38358aa73fcd6e0f15c6144b67ef5dc91ded0db125dbdf
-SIZE (rust/crates/wgpu-core-deps-apple-26.0.0.crate) = 7969
-SHA256 (rust/crates/wgpu-core-deps-emscripten-26.0.0.crate) = d7670e390f416006f746b4600fdd9136455e3627f5bd763abf9a65daa216dd2d
-SIZE (rust/crates/wgpu-core-deps-emscripten-26.0.0.crate) = 6820
-SHA256 (rust/crates/wgpu-core-deps-windows-linux-android-26.0.0.crate) = 720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14
-SIZE (rust/crates/wgpu-core-deps-windows-linux-android-26.0.0.crate) = 7778
-SHA256 (rust/crates/wgpu-hal-26.0.4.crate) = 7df2c64ac282a91ad7662c90bc4a77d4a2135bc0b2a2da5a4d4e267afc034b9e
-SIZE (rust/crates/wgpu-hal-26.0.4.crate) = 383672
-SHA256 (rust/crates/wgpu-profiler-0.24.0.crate) = 63e58456885a6e343f2487a65ba0d19f87b8a9d8c9b69086352ade067d52b621
-SIZE (rust/crates/wgpu-profiler-0.24.0.crate) = 53255
-SHA256 (rust/crates/wgpu-types-26.0.0.crate) = eca7a8d8af57c18f57d393601a1fb159ace8b2328f1b6b5f80893f7d672c9ae2
-SIZE (rust/crates/wgpu-types-26.0.0.crate) = 88166
+SHA256 (rust/crates/wgpu-27.0.1.crate) = bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77
+SIZE (rust/crates/wgpu-27.0.1.crate) = 199825
+SHA256 (rust/crates/wgpu-core-27.0.3.crate) = 27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7
+SIZE (rust/crates/wgpu-core-27.0.3.crate) = 327285
+SHA256 (rust/crates/wgpu-core-deps-apple-27.0.0.crate) = 0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233
+SIZE (rust/crates/wgpu-core-deps-apple-27.0.0.crate) = 12020
+SHA256 (rust/crates/wgpu-core-deps-emscripten-27.0.0.crate) = b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5
+SIZE (rust/crates/wgpu-core-deps-emscripten-27.0.0.crate) = 10684
+SHA256 (rust/crates/wgpu-core-deps-windows-linux-android-27.0.0.crate) = 71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3
+SIZE (rust/crates/wgpu-core-deps-windows-linux-android-27.0.0.crate) = 11836
+SHA256 (rust/crates/wgpu-hal-27.0.4.crate) = 5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce
+SIZE (rust/crates/wgpu-hal-27.0.4.crate) = 395168
+SHA256 (rust/crates/wgpu-profiler-0.25.0.crate) = c9f7c28673961ecb946c862b66b6ea1f9b70fca9106d31db6fbb812b7b794abf
+SIZE (rust/crates/wgpu-profiler-0.25.0.crate) = 53413
+SHA256 (rust/crates/wgpu-types-27.0.1.crate) = afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb
+SIZE (rust/crates/wgpu-types-27.0.1.crate) = 98497
SHA256 (rust/crates/which-7.0.3.crate) = 24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762
SIZE (rust/crates/which-7.0.3.crate) = 18872
SHA256 (rust/crates/widestring-1.2.0.crate) = dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d
@@ -1937,5 +1951,5 @@ SHA256 (xMAC94x-portpicker-rs-df6b37872f3586ac3b21d08b56c8ec7cd92fb172_GH0.tar.g
SIZE (xMAC94x-portpicker-rs-df6b37872f3586ac3b21d08b56c8ec7cd92fb172_GH0.tar.gz) = 2210
SHA256 (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 43f0faa196eb33341c8e9952da17876649dd3aade44fd357a3a098eaaeb78e9d
SIZE (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 808402
-SHA256 (veloren-v0.17.0-1455-g7e8cec0d08.tar.bz2) = 9214b9688aa33b38c6b39ffa857888685d911f900405b2dc3ed42565ec182421
-SIZE (veloren-v0.17.0-1455-g7e8cec0d08.tar.bz2) = 347538062
+SHA256 (veloren-v0.17.0-1463-g85e45ca0bd.tar.bz2) = 7b9a86407371cfa630826afa6c95b9bbba349bfa96b11fac57f1f9b3f9ca88e4
+SIZE (veloren-v0.17.0-1463-g85e45ca0bd.tar.bz2) = 347531371
diff --git a/games/veloren-weekly/files/patch-unix b/games/veloren-weekly/files/patch-unix
index 2369920616b9..39f63c68b19c 100644
--- a/games/veloren-weekly/files/patch-unix
+++ b/games/veloren-weekly/files/patch-unix
@@ -1,69 +1,19 @@
Relax Linux checks for the code works on any non-Windows platform.
---- cargo-crates/wgpu-26.0.1/build.rs.orig 2006-07-24 01:21:28 UTC
-+++ cargo-crates/wgpu-26.0.1/build.rs
-@@ -16,7 +16,7 @@ fn main() {
- metal: { all(target_vendor = "apple", feature = "metal") },
- vulkan: { any(
- // The `vulkan` feature enables the Vulkan backend only on "native Vulkan" platforms, i.e. Windows/Linux/Android
-- all(any(windows, target_os = "linux", target_os = "android"), feature = "vulkan"),
-+ all(any(windows, unix), not(target_vendor = "apple"), feature = "vulkan"),
- // On Apple platforms, however, we require the `vulkan-portability` feature
- // to explicitly opt-in to Vulkan since it's meant to be used with MoltenVK.
- all(target_vendor = "apple", feature = "vulkan-portability")
-@@ -24,7 +24,7 @@ fn main() {
- gles: { any(
- // The `gles` feature enables the OpenGL/GLES backend only on "native OpenGL" platforms, i.e. Windows, Linux, Android, and Emscripten.
- // (Note that WebGL is also not included here!)
-- all(any(windows, target_os = "linux", target_os = "android", Emscripten), feature = "gles"),
-+ all(any(windows, unix, Emscripten), not(target_vendor = "apple"), feature = "gles"),
- // On Apple platforms, however, we require the `angle` feature to explicitly opt-in to OpenGL
- // since its meant to be used with ANGLE.
- all(target_vendor = "apple", feature = "angle")
---- cargo-crates/wgpu-core-26.0.1/Cargo.toml.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/wgpu-core-26.0.1/Cargo.toml
-@@ -206,7 +206,7 @@ optional = true
- version = "26.0.0"
- optional = true
-
--[target.'cfg(any(windows, target_os = "linux", target_os = "android"))'.dependencies.wgpu-core-deps-windows-linux-android]
-+[target.'cfg(all(any(windows, unix), not(target_vendor = "apple")))'.dependencies.wgpu-core-deps-windows-linux-android]
- version = "26.0.0"
- optional = true
-
---- cargo-crates/wgpu-core-26.0.1/build.rs.orig 2006-07-24 01:21:28 UTC
-+++ cargo-crates/wgpu-core-26.0.1/build.rs
-@@ -1,6 +1,6 @@ fn main() {
- fn main() {
- cfg_aliases::cfg_aliases! {
-- windows_linux_android: { any(windows, target_os = "linux", target_os = "android") },
-+ windows_linux_android: { all(any(windows, unix), not(target_vendor = "apple")) },
- send_sync: { all(
- feature = "std",
- any(
---- cargo-crates/wgpu-core-deps-windows-linux-android-26.0.0/Cargo.toml.orig 1970-01-01 00:00:01 UTC
-+++ cargo-crates/wgpu-core-deps-windows-linux-android-26.0.0/Cargo.toml
-@@ -38,5 +38,5 @@ vulkan = ["wgpu-hal/vulkan"]
- renderdoc = ["wgpu-hal/renderdoc"]
- vulkan = ["wgpu-hal/vulkan"]
-
--[target.'cfg(any(windows, target_os = "linux", target_os = "android"))'.dependencies.wgpu-hal]
-+[target.'cfg(all(any(windows, unix), not(target_vendor = "apple")))'.dependencies.wgpu-hal]
- version = "26.0.0"
---- cargo-crates/wgpu-hal-26.0.4/src/vulkan/adapter.rs.orig 2006-07-24 01:21:28 UTC
-+++ cargo-crates/wgpu-hal-26.0.4/src/vulkan/adapter.rs
-@@ -1170,7 +1170,7 @@ impl PhysicalDeviceProperties {
- // Prevent very large buffers on mesa and most android devices.
+--- cargo-crates/wgpu-hal-27.0.4/src/vulkan/adapter.rs.orig 2006-07-24 01:21:28 UTC
++++ cargo-crates/wgpu-hal-27.0.4/src/vulkan/adapter.rs
+@@ -1207,7 +1207,7 @@ impl PhysicalDeviceProperties {
+ // don't risk confusing JS by exceeding the range of a double.
let is_nvidia = self.properties.vendor_id == crate::auxil::db::nvidia::VENDOR;
let max_buffer_size =
- if (cfg!(target_os = "linux") || cfg!(target_os = "android")) && !is_nvidia {
+ if (cfg!(all(unix, not(target_vendor = "apple")))) && !is_nvidia {
i32::MAX as u64
} else {
- u64::MAX
---- cargo-crates/wgpu-hal-26.0.4/src/vulkan/instance.rs.orig 2006-07-24 01:21:28 UTC
-+++ cargo-crates/wgpu-hal-26.0.4/src/vulkan/instance.rs
-@@ -986,7 +986,7 @@ impl crate::Instance for super::Instance {
+ 1u64 << 52
+--- cargo-crates/wgpu-hal-27.0.4/src/vulkan/instance.rs.orig 2006-07-24 01:21:28 UTC
++++ cargo-crates/wgpu-hal-27.0.4/src/vulkan/instance.rs
+@@ -988,7 +988,7 @@ impl crate::Instance for super::Instance {
exposed.info.device_type == wgt::DeviceType::DiscreteGpu
&& exposed.info.vendor == db::nvidia::VENDOR
});
@@ -72,11 +22,11 @@ Relax Linux checks for the code works on any non-Windows platform.
for exposed in exposed_adapters.iter_mut() {
if exposed.info.device_type == wgt::DeviceType::IntegratedGpu
&& exposed.info.vendor == db::intel::VENDOR
---- server-cli/src/main.rs.orig 2024-02-14 21:58:23 UTC
+--- server-cli/src/main.rs.orig 2025-12-17 17:31:20 UTC
+++ server-cli/src/main.rs
-@@ -66,14 +66,14 @@ fn main() -> io::Result<()> {
+@@ -74,14 +74,14 @@ fn main() -> io::Result<()> {
// Load settings
- let settings = settings::Settings::load();
+ let settings = settings::Settings::load().ok_or(io::ErrorKind::Other)?;
- #[cfg(any(target_os = "linux", target_os = "macos"))]
+ #[cfg(not(target_os = "windows"))]
@@ -91,7 +41,7 @@ Relax Linux checks for the code works on any non-Windows platform.
if !settings.shutdown_signals.is_empty() {
tracing::warn!(
"Server configuration contains shutdown signals, but your platform does not support \
---- server-cli/src/settings.rs.orig 2024-03-20 22:12:47 UTC
+--- server-cli/src/settings.rs.orig 2025-12-17 17:31:20 UTC
+++ server-cli/src/settings.rs
@@ -15,7 +15,7 @@ impl ShutdownSignal {
}
@@ -111,9 +61,9 @@ Relax Linux checks for the code works on any non-Windows platform.
vec![ShutdownSignal::SIGUSR1]
} else {
Vec::new()
---- voxygen/src/main.rs.orig 2024-02-07 19:13:27 UTC
+--- voxygen/src/main.rs.orig 2025-12-17 17:31:20 UTC
+++ voxygen/src/main.rs
-@@ -51,7 +51,7 @@ fn main() {
+@@ -47,7 +47,7 @@ fn main() {
cli::Commands::ListWgpuBackends => {
#[cfg(target_os = "windows")]
let backends = &["opengl", "dx12", "vulkan"];
diff --git a/games/veloren-weekly/files/patch-wgpu-nvidia b/games/veloren-weekly/files/patch-wgpu-nvidia
index 13e6891aa7da..f757a6fde3e1 100644
--- a/games/veloren-weekly/files/patch-wgpu-nvidia
+++ b/games/veloren-weekly/files/patch-wgpu-nvidia
@@ -1,8 +1,8 @@
https://gitlab.com/veloren/veloren/-/issues/1975
---- cargo-crates/wgpu-26.0.1/src/backend/wgpu_core.rs.orig 2006-07-24 01:21:28 UTC
-+++ cargo-crates/wgpu-26.0.1/src/backend/wgpu_core.rs
-@@ -1802,10 +1802,7 @@ impl dispatch::QueueInterface for CoreQueue {
+--- cargo-crates/wgpu-27.0.1/src/backend/wgpu_core.rs.orig 2006-07-24 01:21:28 UTC
++++ cargo-crates/wgpu-27.0.1/src/backend/wgpu_core.rs
+@@ -1965,10 +1965,7 @@ impl dispatch::QueueInterface for CoreQueue {
&size,
) {
Ok(()) => (),
diff --git a/games/warzone2100/Makefile b/games/warzone2100/Makefile
index 48d51bcfee0a..299d7e137c3e 100644
--- a/games/warzone2100/Makefile
+++ b/games/warzone2100/Makefile
@@ -1,6 +1,5 @@
PORTNAME= warzone2100
-DISTVERSION= 4.6.1
-PORTREVISION= 1
+DISTVERSION= 4.6.2
CATEGORIES= games
MASTER_SITES= https://github.com/Warzone2100/warzone2100/releases/download/${DISTVERSION}/
DISTNAME= ${PORTNAME}_src
@@ -34,7 +33,7 @@ RUN_DEPENDS= ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu
USES= cmake bison compiler:c++11-lib gl openal:al pkgconfig \
sdl sqlite tar:xz
USE_GL= gl
-USE_SDL= sdl2
+USE_SDL= sdl3
CMAKE_ON= WZ_DISABLE_FETCHCONTENT_GIT_CLONE \
CMAKE_DISABLE_FIND_PACKAGE_Asciidoctor \
CMAKE_DISABLE_FIND_PACKAGE_Git \
diff --git a/games/warzone2100/distinfo b/games/warzone2100/distinfo
index 0221650058a9..4febbf23e3cc 100644
--- a/games/warzone2100/distinfo
+++ b/games/warzone2100/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1758122255
-SHA256 (warzone2100-4.6.1/warzone2100_src.tar.xz) = 26ac5538460243f8a149d31264da71caa4d33ef6a8010037eff24e77278ca50b
-SIZE (warzone2100-4.6.1/warzone2100_src.tar.xz) = 492456208
+TIMESTAMP = 1765299530
+SHA256 (warzone2100-4.6.2/warzone2100_src.tar.xz) = 856216dabeaf2e03ae8f7e758c395b27d21889fe8b5fe45f3afce700fde7d71f
+SIZE (warzone2100-4.6.2/warzone2100_src.tar.xz) = 491311612
diff --git a/games/warzone2100/files/patch-cmake_FindZIP.cmake b/games/warzone2100/files/patch-cmake_FindZIP.cmake
deleted file mode 100644
index 62eb09120fae..000000000000
--- a/games/warzone2100/files/patch-cmake_FindZIP.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
---- cmake/FindZIP.cmake.orig 2021-04-18 18:28:41 UTC
-+++ cmake/FindZIP.cmake
-@@ -29,8 +29,8 @@ set(_PF32BIT "ProgramFiles(x86)")
- #
-
- # Search for 7-Zip
--find_program(ZIP_EXECUTABLE NAMES 7z 7za PATHS "$ENV{ProgramFiles}/7-Zip" "$ENV{${_PF32BIT}}/7-Zip" "$ENV{ProgramW6432}/7-Zip")
--if(ZIP_EXECUTABLE MATCHES "7z|7za")
-+find_program(ZIP_EXECUTABLE NAMES 7zz REQUIRED)
-+if(ZIP_EXECUTABLE MATCHES "7zz")
- # Test whether 7-Zip supports the "-bb0" option to disable log output
- execute_process(COMMAND ${ZIP_EXECUTABLE} i -bb0
- RESULT_VARIABLE 7z_bb_result
-@@ -110,7 +110,7 @@ function(COMPRESS_ZIP)
- message( FATAL_ERROR "Unsupported compression level \"${_parsedArguments_COMPRESSION_LEVEL}\" (must be: 0, 1, 3, 5, 7, 9)" )
- endif()
-
-- if(ZIP_EXECUTABLE MATCHES "7z|7za")
-+ if(ZIP_EXECUTABLE MATCHES "7zz")
- set(_zipExecutableOptions a -tzip -mtc=off)
- if(DEFINED _parsedArguments_COMPRESSION_LEVEL)
- # 7z command-line option for compression level (when in ZIP mode) is: "-mx=#"
diff --git a/games/warzone2100/files/patch-lib_sdl_CMakeLists.txt b/games/warzone2100/files/patch-lib_sdl_CMakeLists.txt
deleted file mode 100644
index 6f307e792659..000000000000
--- a/games/warzone2100/files/patch-lib_sdl_CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
---- lib/sdl/CMakeLists.txt.orig 2022-11-02 16:53:49 UTC
-+++ lib/sdl/CMakeLists.txt
-@@ -55,14 +55,6 @@ if(NOT DEFINED WZ_FINDSDL2_NOCONFIG OR NOT WZ_FINDSDL2
- find_package(SDL2 ${SDL2_MIN_VERSION} CONFIG QUIET)
- endif()
- if(SDL2_FOUND)
-- if (TARGET SDL2::SDL2-static)
-- # Check for INTERFACE_INCLUDE_DIRECTORIES to ignore the "aliased" target that vcpkg creates
-- get_target_property(_sdl2_include_dir SDL2::SDL2-static INTERFACE_INCLUDE_DIRECTORIES)
-- test_link_to_sdl_target(SDL2::SDL2-static FALSE LINK_SUCCESS_SDL2_SDL2STATIC_TARGET)
-- if (_sdl2_include_dir AND LINK_SUCCESS_SDL2_SDL2STATIC_TARGET)
-- set(_sdl2_library SDL2::SDL2-static)
-- endif()
-- endif()
- if (NOT _sdl2_library AND TARGET SDL2::SDL2)
- # Check for INTERFACE_INCLUDE_DIRECTORIES to ignore the "aliased" target that vcpkg creates
- get_target_property(_sdl2_include_dir SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
diff --git a/games/warzone2100/pkg-plist b/games/warzone2100/pkg-plist
index 65f0635553e9..1492fd61b1f1 100644
--- a/games/warzone2100/pkg-plist
+++ b/games/warzone2100/pkg-plist
@@ -28,6 +28,7 @@ share/icons/net.wz2100.warzone2100.png
%%NLS%%share/locale/hu/LC_MESSAGES/warzone2100.mo
%%NLS%%share/locale/hu/LC_MESSAGES/warzone2100_guide.mo
%%NLS%%share/locale/id/LC_MESSAGES/warzone2100.mo
+%%NLS%%share/locale/id/LC_MESSAGES/warzone2100_guide.mo
%%NLS%%share/locale/it/LC_MESSAGES/warzone2100.mo
%%NLS%%share/locale/it/LC_MESSAGES/warzone2100_guide.mo
%%NLS%%share/locale/ja_JP/LC_MESSAGES/warzone2100.mo
@@ -49,6 +50,8 @@ share/icons/net.wz2100.warzone2100.png
%%NLS%%share/locale/ru/LC_MESSAGES/warzone2100_guide.mo
%%NLS%%share/locale/sk/LC_MESSAGES/warzone2100.mo
%%NLS%%share/locale/sl/LC_MESSAGES/warzone2100.mo
+%%NLS%%share/locale/sr_CS/LC_MESSAGES/warzone2100.mo
+%%NLS%%share/locale/sr_CS/LC_MESSAGES/warzone2100_guide.mo
%%NLS%%share/locale/tr/LC_MESSAGES/warzone2100.mo
%%NLS%%share/locale/tr/LC_MESSAGES/warzone2100_guide.mo
%%NLS%%share/locale/tt_RU/LC_MESSAGES/warzone2100.mo
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/ \
diff --git a/games/xtxf/Makefile b/games/xtxf/Makefile
index 6d0a03f46c79..a96a308e198f 100644
--- a/games/xtxf/Makefile
+++ b/games/xtxf/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xtxf
-DISTVERSION= 0.11.4
+DISTVERSION= 0.11.5
CATEGORIES= games
MAINTAINER= slowdive@me.com
@@ -9,13 +9,13 @@ WWW= https://github.com/charlesrocket/xtxf
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= zig>=0.14:lang/zig
+BUILD_DEPENDS= zig>=0.15.1:lang/zig
USE_GITHUB= yes
GH_ACCOUNT= charlesrocket
GH_TUPLE= termbox:termbox2:9c9281a:zig_termbox/../.cache/zig/p/N-V-__8AAOfjBAD89_CGaCDSoVLTnCjzs3NRNGCkfL9zNuNo \
- 00JCIV00:cova:4c56696:zig_cova/../.cache/zig/p/cova-0.10.1-AAAAAPqeBAAThnQ-eGLXG9tyPsBRehaw8ySs8nEPwMUy \
- charlesrocket:ghext:0.7.2:zig_ghext/../.cache/zig/p/ghext-0.7.2-dKaQN31QAABGONiBUrG8LuTUWwpEbiXF4syy_NmTdizp
+ 00JCIV00:cova:3fa729c:zig_cova/../.cache/zig/p/cova-0.10.1-_OE4Rw-xBAB9zj1dPhUxLKnar89L5nouEmYY6Q1S23jU \
+ charlesrocket:ghext:0.7.4:zig_ghext/../.cache/zig/p/ghext-0.7.4-dKaQN8JPAAA7IjZbcuelgCivahSMKsFGrvE5LLM3RJyl
BUILD_ARGS= --prefix ${PREFIX} ${WITH_DEBUG:U-Doptimize=ReleaseFast} \
${WITH_PIE:D-Dpie} -Dcpu=${CPUTYPE:Ubaseline} --verbose
diff --git a/games/xtxf/distinfo b/games/xtxf/distinfo
index 41ae6784a843..897edc63bc23 100644
--- a/games/xtxf/distinfo
+++ b/games/xtxf/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1754738873
-SHA256 (charlesrocket-xtxf-0.11.4_GH0.tar.gz) = 4dd2029868c838b3e1e716de05f27bd77af719a1c4c4a38ba0b0f538cab0714f
-SIZE (charlesrocket-xtxf-0.11.4_GH0.tar.gz) = 17267
+TIMESTAMP = 1764628103
+SHA256 (charlesrocket-xtxf-0.11.5_GH0.tar.gz) = cb159878ff2b86ad001f7688ced84a2efa7e6c745b380e254e1937b5c5d05052
+SIZE (charlesrocket-xtxf-0.11.5_GH0.tar.gz) = 17491
SHA256 (termbox-termbox2-9c9281a_GH0.tar.gz) = 4781a10e1f8dedc52ed1c93f1c306ec97acf81654135efd125e779c99bceab77
SIZE (termbox-termbox2-9c9281a_GH0.tar.gz) = 81538
-SHA256 (00JCIV00-cova-4c56696_GH0.tar.gz) = de1bc17b6d68f3beaf440841d7d52199059ab250950a37c00a49af2a0059d1e0
-SIZE (00JCIV00-cova-4c56696_GH0.tar.gz) = 6132977
-SHA256 (charlesrocket-ghext-0.7.2_GH0.tar.gz) = 3a9a6fe581ea4b9c6bf851f11bcd51f872a0ab4416dc9728fffcee6a4debfd17
-SIZE (charlesrocket-ghext-0.7.2_GH0.tar.gz) = 8538
+SHA256 (00JCIV00-cova-3fa729c_GH0.tar.gz) = fc9ce7a5eac22d11f16f0af3fe9430a6b23a6ed1c1b5848644c04d42e873c037
+SIZE (00JCIV00-cova-3fa729c_GH0.tar.gz) = 6529870
+SHA256 (charlesrocket-ghext-0.7.4_GH0.tar.gz) = a5d1c628d411bb42d3533adc76ec0ba16b60fffd0fde062ba1f0c0abe3fe8d75
+SIZE (charlesrocket-ghext-0.7.4_GH0.tar.gz) = 8622