Page 1 of 1

Running Vassal On The Raspberry Pi?

Posted: Fri Jun 12, 2020 1:28 am
by Pi905User
Anyone here playing Vassal on a Raspberry Pi 4? If so how is its performance on this platform? Thanks.

Re: Running Vassal On The Raspberry Pi?

Posted: Fri Jun 12, 2020 2:41 am
by W. H. Heydt
For once, in a way, it won't be necessary to point out that this is for x86. A quick check shows that Vassal is written in Java and is supposed to run on a wide variety of platforms. So, at least in theory, it should run on a Pi and it would be a reasonable expectation that might run decently on a Pi4B.

Re: Running Vassal On The Raspberry Pi?

Posted: Fri Jun 12, 2020 3:22 am
by Pi905User
Yes, Vassal does have a linux version for download & installation and since the Raspberry Pi OS is a linux base I thought it should work. I also believe Raspberry Pi OS comes with Java installed but if not it shouldn't be too difficult to do so.

Re: Running Vassal On The Raspberry Pi?

Posted: Fri Jun 12, 2020 4:05 am
by W. H. Heydt
Pi905User wrote:
Fri Jun 12, 2020 3:22 am
Yes, Vassal does have a linux version for download & installation and since the Raspberry Pi OS is a linux base I thought it should work. I also believe Raspberry Pi OS comes with Java installed but if not it shouldn't be too difficult to do so.
Java aside, just saying that there is a "Linux version" doesn't say much. Even some programs that say they'll run on Linux may still only run on x86 hardware. Because Vassal says it's written in Java, that *shouldn't* be an issue.

Re: Running Vassal On The Raspberry Pi?

Posted: Fri Jun 12, 2020 2:52 pm
by Pi905User
Understood, thanks.

Re: Running Vassal On The Raspberry Pi?

Posted: Mon Jun 15, 2020 1:19 am
by bfready
I downloaded the Linux version and it seems to run fine. Not sure how to play it yet and have not added a VMOD, but I think this should run ok on the RPI4 at least.

Re: Running Vassal On The Raspberry Pi?

Posted: Mon Jun 15, 2020 1:27 am
by bfready
It appears I spoke too soon. It gave an internal error when I tried loading VMOD: Dungeon Command.
I'll try another VMOD and see if it crashes...

Re: Running Vassal On The Raspberry Pi?

Posted: Mon Jun 15, 2020 1:37 am
by bfready
I just tried Dungeon Explorers and it gave the same internal error when I tried loading the VMOD:

Code: Select all

2020-06-14 21:34:40,455 [0-main] INFO  VASSAL.launch.StartUp - Starting
2020-06-14 21:34:40,466 [0-main] INFO  VASSAL.launch.StartUp - OS Linux 4.19.97-v7l+
2020-06-14 21:34:40,467 [0-main] INFO  VASSAL.launch.StartUp - Java version 11.0.7
2020-06-14 21:34:40,467 [0-main] INFO  VASSAL.launch.StartUp - VASSAL version 3.2.17
2020-06-14 21:34:41,533 [0-AWT-EventQueue-0] INFO  VASSAL.launch.ModuleManager - Manager
2020-06-14 21:34:53,325 [0-AWT-EventQueue-0] ERROR VASSAL.launch.Editor - Import of /home/pi/usbdrive/RPI4USB3/Games/vassalEngine/VASSAL-3.2.17/vmods/Super_Dungeon_Explore_v2.0.1.vmod failed: unrecognized import type
2020-06-14 21:35:25,470 [0-SwingWorker-pool-28786580-thread-1] INFO  VASSAL.launch.AbstractLaunchAction - Loading module file /home/pi/usbdrive/RPI4USB3/Games/vassalEngine/VASSAL-3.2.17/vmods/Super_Dungeon_Explore_v2.0.1.vmod
2020-06-14 21:35:25,670 [0-SwingWorker-pool-28786580-thread-1] INFO  VASSAL.launch.TilingHandler - No images to tile.
2020-06-14 21:35:25,674 [0-SwingWorker-pool-28786580-thread-1] INFO  VASSAL.launch.AbstractLaunchAction - Loading module Super Dungeon Explore
2020-06-14 21:35:25,682 [0-SwingWorker-pool-28786580-thread-1] INFO  VASSAL.tools.io.ProcessLauncher - launching /usr/lib/jvm/java-11-openjdk-armhf/bin/java -Xms256M -Xmx512M -DVASSAL.id=1 -DVASSAL.port=39633 -Duser.home=/home/pi -Duser.dir=/home/pi/usbdrive/RPI4USB3/Games/vassalEngine/VASSAL-3.2.17 -cp /home/pi/usbdrive/RPI4USB3/Games/vassalEngine/VASSAL-3.2.17/lib/Vengine.jar VASSAL.launch.Player --load -- /home/pi/usbdrive/RPI4USB3/Games/vassalEngine/VASSAL-3.2.17/vmods/Super_Dungeon_Explore_v2.0.1.vmod
2020-06-14 21:35:28,076 [1-main] INFO  VASSAL.launch.StartUp - Starting
2020-06-14 21:35:28,085 [1-main] INFO  VASSAL.launch.StartUp - OS Linux 4.19.97-v7l+
2020-06-14 21:35:28,089 [1-main] INFO  VASSAL.launch.StartUp - Java version 11.0.7
2020-06-14 21:35:28,089 [1-main] INFO  VASSAL.launch.StartUp - VASSAL version 3.2.17
2020-06-14 21:35:28,090 [1-main] INFO  VASSAL.launch.Launcher - Player
2020-06-14 21:35:29,038 [0-ProcessLauncher-2] WARN  VASSAL.tools.logging.LoggedOutputStream - WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by VASSAL.tools.image.ImageIOImageLoader (file:/media/pi/RPI4USB3/Games/vassalEngine/VASSAL-3.2.17/lib/Vengine.jar) to field sun.java2d.cmm.ProfileDeferralMgr.deferring
WARNING: Please consider reporting this to the maintainers of VASSAL.tools.image.ImageIOImageLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2020-06-14 21:35:30,313 [1-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog - 
java.lang.NoClassDefFoundError: org/w3c/dom/ls/DocumentLS
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[na:na]
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[na:na]
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
	at org.apache.xerces.util.ObjectFactory.findProviderClass(Unknown Source) ~[xercesImpl.jar:na]
	at org.apache.xerces.parsers.AbstractDOMParser.setDocumentClassName(Unknown Source) ~[xercesImpl.jar:na]
	at org.apache.xerces.parsers.AbstractDOMParser.reset(Unknown Source) ~[xercesImpl.jar:na]
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[xercesImpl.jar:na]
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) ~[xercesImpl.jar:na]
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ~[xercesImpl.jar:na]
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) ~[na:na]
	at VASSAL.build.Builder.createDocument(Builder.java:160) ~[Vengine.jar:na]
	at VASSAL.launch.BasicModule.build(BasicModule.java:110) ~[Vengine.jar:na]
	at VASSAL.build.GameModule.init(GameModule.java:855) ~[Vengine.jar:na]
	at VASSAL.launch.Player.launch(Player.java:83) ~[Vengine.jar:na]
	at VASSAL.launch.Launcher$1.run(Launcher.java:149) ~[Vengine.jar:na]
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) ~[na:na]
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[na:na]
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) ~[na:na]
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) ~[na:na]
	at java.base/java.security.AccessController.doPrivileged(Native Method) ~[na:na]
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[na:na]
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) ~[na:na]
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[na:na]
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[na:na]
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[na:na]
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[na:na]
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[na:na]
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[na:na]
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ls.DocumentLS
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
	... 43 common frames omitted
The initial program you run is an sh file. So, I'm guessing when it gets to the Java part of it is when it craps out. Maybe I have the wrong version of Java? Not sure, I may try to get this running later on this week. Looks interesting.

Re: Running Vassal On The Raspberry Pi?

Posted: Mon Jun 15, 2020 3:34 am
by bfready
It appears the Java version I have installed, Java version 11.0.7, is not supported by Vassal.
I think you need an older version to be able to run Vassal on the Rpi.

Re: Running Vassal On The Raspberry Pi?

Posted: Fri Sep 25, 2020 12:41 pm
by Jason.sample
I was running VASSAL just fine on Raspberry Pi 3 until yesterday. It just started to act up. Grrr.

Any thoughts?