Mac Support

From Flashpoint Datahub
Revision as of 21:07, 5 January 2020 by Nosamu (talk | contribs) (Updated info about Catalina, since most things do work still)
Jump to navigation Jump to search

Flashpoint's Mac support is heavily experimental. This page provides information about the current Flashpoint for Mac package.

Please join our Discord and provide your feedback: http://discord.gg/S9uJ794

Latest Package

Download Beta 2019-12-15:

https://bluepload.unstable.life/flashpointinfinityformacbeta2019-12-15.zip

Changelog:

2019-12-15: Added "wmode":"direct" to the default SWFObject parameters. This fixes certain 3D Flash games which previously did not work properly.

2019-12-14: First beta available!

Installation Instructions

  1. Download and unzip the latest package using the link above.
  2. Double-click StartFlashpoint.command to open Flashpoint.

Installing Java

To add support for Java games, you'll need to install the Java Development Kit. Follow the steps below:

  1. Download JDK version 8u212 from here: https://github.com/frekele/oracle-java/releases/download/8u212-b10/jdk-8u212-macosx-x64.dmg
  2. Open the DMG file and run the installer. Follow the on-screen instructions to install the JDK.

Installing Wine

Running games in Wine is not yet supported, but we hope to add support for this in a future build. If you'd like to contribute to our efforts, you can download an installer here.

MacOS Catalina

Because Flashpoint's applications are from an "unidentified developer," if you're using Catalina, you'll need to approve each application before it can run. Open your system preferences, click "Security & Privacy", then allow each of the following applications to run: StartFlashpoint.command, Flashpoint Launcher, swfbbox, and SeaMonkey.

Because Adobe Director Projectors are 32-bit applications, SPR for Mac will not work on MacOS Catalina. This means that Flashpoint for Mac does not support Shockwave games on Catalina.

Technologies

Currently, only Flashpoint Infinity is available for Mac. However, as explained here, both PHP and Apache are included with MacOS. This means it should be fairly simple to create a Flashpoint Ultimate package for MacOS as well. Let us know in our Discord if you can help!

No equivalent to the Flashpoint Redirector currently exists for MacOS. MacOS also does not provide any native way to set per-application proxy settings. In Flashpoint for Mac, the proxy settings for each supported technology must be set separately. This rules out using the Flash projectors, since they do not have configurable proxy settings. In Flashpoint for Mac, all Flash games run in a browser.

The Flashpoint FAQ contains a list of all web game technologies ("Platforms") supported in the Windows version of Flashpoint. The Mac version currently supports a small subset of these platforms. This is explained in detail below. The list of supported platforms includes an unscientific estimate of the percentage of games supported by our method.

Supported Platforms

  • Flash: Supported using the SeaMonkey web browser, with a Flash plugin included. Games that use a Flash Player version other than 32 are not yet supported.
    • ~95% of games supported.
  • Shockwave: Supported with nosamu's custom SPR for Mac. Because LeechProtectionRemovalHelp is only available for Windows, the majority of Shockwave games will not work properly.
    • ~30% of games supported.
    • Requires a 32-bit compatible OS; Catalina is not supported.
  • HTML5: Supported using the SeaMonkey web browser. WebAssembly support is enabled in Flashpoint's SeaMonkey profile, so it should be compatible with nearly all of the same games as Basilisk.
    • ~99% of games supported.
  • Java Applets: Supported natively using the JDK. Java in the browser is not supported yet.
    • ~99% of games supported.

Unsupported Platforms

  • Unity Web Player: Has not been attempted yet. We would need to track down the Mac builds of all 12 versions of Unity Web Player that we support on Windows. Needless to say, this would be a huge challenge.
  • PopCap Plugin: As far as we know, there is no version of PopCap Plugin for modern Macs.
  • Authorware Web Player: Authorware is incompatible with all Intel Macs.
  • GoBit Plugin: As far as we know, there is no version of GoBit Games Plugin for modern Macs.
  • Silverlight: Silverlight for Mac is available here, but as explained in this StackExchange answer, Microsoft Silverlight for Mac is 32-bit only, even though the Windows version has 64-bit and 32-bit versions. This is a problem because no major browser for MacOS has a 32-bit version, and MacOS Catalina drops support for 32-bit programs entirely. As such, Silverlight is unusable on Mac.
  • 3DVIA Player: As far as we know, there is no version of 3DVIA Player for modern Macs.
  • 3D Groove GX: 3D Groove is incompatible with all Intel Macs.
  • ActiveX: ActiveX is a Windows-only technology.
  • ShiVa3D: The Windows version of the ShiVa3D Player is available in the free ShiVa Web Edition; this is where we obtained it. However, no Mac version of the ShiVa Web Edition is currently available, so we haven't been able to find a Mac version of the ShiVa3D Player. It's possible that we could extract a Mac version of the player from a Mac version of a ShiVa3D game. Or maybe we could obtain the Mac runtime from the Windows version of ShiVa3D Web Edition, since it has the capability of publishing for Mac.

Launcher Issues

A number of Flashpoint Launcher issues affect the experience of using Flashpoint Launcher on MacOS. Unfortunately, none of our Launcher developers currently have access to a Mac, so updates for the Mac version of Flashpoint Launcher will not be available in the foreseeable future. We will be unable to release a Mac version of Flashpoint 7.0 until a new version of the Launcher is built for MacOS. If you have access to MacOS and are able to build Flashpoint Launcher, please let us know!

The current issues with the Mac version of Flashpoint Launcher are listed below.

  • Errors are shown in the log when services are missing from the services.json. These services are unnecessary for Flashpoint on Mac, so the errors can be ignored.
  • A "NotValidJSON" error is shown for each loaded localization file. The localizations appear to work anyway.
  • Flashpoint Launcher cannot find its own Version file, even if it is present in the Launcher's folder and app package.
  • The Theme dropdown menu on the Config tab does not work properly. To select a theme, you must manually type the path to the theme's CSS file.
  • A popup appears if the user attempts to start a Windows executable from Flashpoint. This popup tells the user to install Wine, and points them to the Linux Support page, even though the Launcher is running on Mac.
  • If a shell script is specified in execs.json as an alternative to a batch script, the Launcher will attempt to launch the shell script defined for Linux, even if a different shell script is defined for Darwin (MacOS).
  • Platform XMLs created with later Launcher versions fail to load and cause a "No games found" error.
  • When Wine is started from Flashpoint Launcher, it uses >70% CPU for several minutes without ever starting the intended executable. This is despite Wine working fine when started from the terminal. This issue needs to be investigated and solved before Flashpoint can support launching games through Wine.
  • By default, Flashpoint Launcher will attempt to read and modify config.json and preferences.json inside its own app package. Since Mac applications are not allowed to modify their own app packages, this will fail. For this reason, Flashpoint Launcher must be opened with a shell script command StartFlashpoint.command. This script sets the current directory to the Flashpoint Launcher folder so that the Launcher accesses the config.json and preferences.json in the correct location. However, this unusual way of opening the Launcher may be the cause of the previously mentioned Wine bug.

Other Notes

  • Flash games with URLs pointing to filenames with special characters will not work. This is because nosamuEmbedSWF.sh does not properly handle special characters when it converts URLs to paths, so it cannot copy the game's HTML to the correct location in htdocs.
  • Some Shockwave games may not close when you quit them from the menu. If this occurs, click inside the Message Window next to the game. Then type quit and press Enter to close the game.
  • Flashpoint for Mac uses exec mappings to determine what native executable to run based on the specified Windows application path. For example, flashplayer_32_sa.exe is mapped to nosamuEmbedSWF.sh for MacOS. To add more exec mappings, navigate to Flashpoint's Data folder and open execs.json in a text editor. The exec mappings use "darwin" to refer to MacOS.
  • Flashpoint for Mac uses swfbbox to determine the width and height of an SWF file. swfbbox is part of the swftools homebrew package. To install swftools, first install homebrew. Then type brew install swftools in the terminal.
  • Flashpoint for Mac requires that PHP and cURL are enabled on your system. These components should be enabled by default.

Packaging Flashpoint for Mac

Here are some steps to keep in mind when packaging Flashpoint for Mac. This assumes that you are using the current package as a base and modifying it.

  • You can follow these instructions to update Flashpoint's XMLs to the latest version.
  • You can follow these instructions to update Flashpoint Router to the latest version.
  • Use update-spr.sh in the FPSoftware folder to update SPR to the latest version. To get the latest version of SPR for Mac, see SPR for Mac.
  • If you would like to distribute a modified SeaMonkey profile, be sure to clear the cache, cookies, and other data. In SeaMonkey, click Tools -> Clear Private Data.
  • If you would like to add a plugin to SeaMonkey, first install the plugin normally. Then, follow these steps:
    1. Navigate to /Library/Internet Plug-Ins in Finder and copy the files for the plugin you want to add.
    2. Navigate to Flashpoint's FPSoftware folder. Right-click SeaMonkey.app and choose "Show Package Contents."
    3. Inside the app package, navigate to /Contents/Resources/plugins. Paste the plugin files that you copied in Step 1.