<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://flashpointarchive.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Coldice2</id>
	<title>Flashpoint Datahub - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://flashpointarchive.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Coldice2"/>
	<link rel="alternate" type="text/html" href="https://flashpointarchive.org/datahub/Special:Contributions/Coldice2"/>
	<updated>2026-10-17T19:47:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Xtras&amp;diff=11407</id>
		<title>Shockwave Xtras</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Xtras&amp;diff=11407"/>
		<updated>2026-06-08T12:28:22Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: dmm_window.x32 added to PJ101&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all of the Shockwave Xtras added to Flashpoint. Each projector and plugin version has its own set of Xtras, listed below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 8.5.1''':&lt;br /&gt;
&lt;br /&gt;
*budapi.x32&lt;br /&gt;
*beatnik.x32&lt;br /&gt;
*DirectMediaXtra.x32&lt;br /&gt;
*DireCtrl.x32&lt;br /&gt;
*DmPack1.x32&lt;br /&gt;
*DmXtremePack.x32&lt;br /&gt;
*Enhancer.x32&lt;br /&gt;
*EnhancerP.x32&lt;br /&gt;
*Groove.x32 &lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*MagicRes120.x32&lt;br /&gt;
*NCPmetagoo.x32&lt;br /&gt;
*PMLite.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
*Shockwave Export Xtra.x32&lt;br /&gt;
*Shockwave Import Xtra.x32&lt;br /&gt;
*Shockwave Transport Xtra.x32&lt;br /&gt;
*Simple Star Mixer.x32&lt;br /&gt;
*ValidateKeyXtra.x32 (hacked)&lt;br /&gt;
*wdeadd.x32&lt;br /&gt;
*wded2opt.x32&lt;br /&gt;
*wdedis.x32&lt;br /&gt;
*wdeopt.x32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 9.0.0''':&lt;br /&gt;
&lt;br /&gt;
*budapi.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*OpenURL.x32&lt;br /&gt;
*propsave.x32&lt;br /&gt;
*WebXtra.x32&lt;br /&gt;
*kewlone2.x32 (hacked)&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 10.1.1''':&lt;br /&gt;
&lt;br /&gt;
*3ddplay.x32&lt;br /&gt;
*asFFT.x32&lt;br /&gt;
*budapi.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
*DIRECTIMAGE.x32&lt;br /&gt;
*DIRECTOS.x32&lt;br /&gt;
*dmm_window.x32&lt;br /&gt;
*DMChangeres.x32&lt;br /&gt;
*DmXtremePack.x32&lt;br /&gt;
*DrawXtra.x32&lt;br /&gt;
*Enhancer.x32&lt;br /&gt;
*FILEXTRA4.x32&lt;br /&gt;
*Font Asset.x32&lt;br /&gt;
*Havok.x32 &lt;br /&gt;
*LeechProtectionRemovalHelp.x32 &lt;br /&gt;
*MagicRes120.x32&lt;br /&gt;
*MoveCursor.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*PMatic.x32&lt;br /&gt;
*propsave.x32&lt;br /&gt;
*RavImageExport.x32&lt;br /&gt;
*ravJoystick.x32&lt;br /&gt;
*skyxtra1.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 11.0.3''':&lt;br /&gt;
*awaDragAndDrop.x32&lt;br /&gt;
*awaFile.x32&lt;br /&gt;
*awaOSUtil.x32&lt;br /&gt;
*awaShockwave.x32&lt;br /&gt;
*baMoveCursor.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 11.5.9''':&lt;br /&gt;
&lt;br /&gt;
*baMoveCursor.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
*Enhancer.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 12''':&lt;br /&gt;
*baMoveCursor.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shockwave 10.4.1''':&lt;br /&gt;
* MoveCursor.x32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shockwave 12.3.5''':&lt;br /&gt;
* baMoveCursor.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
* vList.x32&lt;br /&gt;
* vListAuthor.x32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
*3ddplay.x32 requires d3drm.dll, which was added to the main PJ101 folder.&lt;br /&gt;
*beatnik.x32 requires additional resource files, which were added to &amp;quot;download\BeatnikInc\BeatnikXtra&amp;quot; in the Xtras folder.&lt;br /&gt;
*Shockwave 3D Asset.x32 was hacked to fix the Shockwave 3D Bad Driver List Bug. See this page for more info: https://gaming.stackexchange.com/questions/339173/how-can-i-play-dcr-shockwave-games&lt;br /&gt;
*ValidateKeyXtra.x32 and kewlone2.x32 were hacked to activate locked features in certain Shockwave games.&lt;br /&gt;
&lt;br /&gt;
== Default Xtras ==&lt;br /&gt;
&lt;br /&gt;
Below is a list of the first-party Xtras created by Macromedia and Adobe. Most of these are found in a default Director installation; the rest can be found in Director-related products such as Shockwave Player or the Shockwave Multiuser Server. &lt;br /&gt;
&lt;br /&gt;
The list does not yet include all Xtras from all Director versions. Please add to the list if you find any that are missing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;max-height: 80vh; min-height: 10em; overflow-y: auto&amp;quot;&amp;gt;&lt;br /&gt;
3DAuth.x32&lt;br /&gt;
ActiveX.x32&lt;br /&gt;
Actor Control.x32&lt;br /&gt;
ActXPriv.x32&lt;br /&gt;
Animated GIF Asset.x32&lt;br /&gt;
Animated GIF Options.x32&lt;br /&gt;
AudioFilters.x32&lt;br /&gt;
AudioMixer.x32&lt;br /&gt;
AVI Agent.x32&lt;br /&gt;
BitdReader.x32&lt;br /&gt;
BitmapFilters.x32&lt;br /&gt;
BMP Agent.x32&lt;br /&gt;
CBrowser.x32&lt;br /&gt;
Cursor Asset.x32&lt;br /&gt;
Cursor Options.x32&lt;br /&gt;
DirectSound.x32&lt;br /&gt;
DVD Asset.x32&lt;br /&gt;
DVD Authoring.x32&lt;br /&gt;
Dynamiks.x32&lt;br /&gt;
Dynamiks_320.x32&lt;br /&gt;
F4VAsset.x32&lt;br /&gt;
FileIo.x32&lt;br /&gt;
Fireworks Import.x32&lt;br /&gt;
Flash Agent.x32&lt;br /&gt;
Flash Asset Options.x32&lt;br /&gt;
Flash Asset.x32&lt;br /&gt;
FLVAsset.x32&lt;br /&gt;
Font Asset Dialog.x32&lt;br /&gt;
Font Asset.x32&lt;br /&gt;
Font Xtra.x32&lt;br /&gt;
GIF Agent.x32&lt;br /&gt;
Havok.x32&lt;br /&gt;
Image Translator Helper.x32&lt;br /&gt;
Import Xtra for PowerPoint.x32&lt;br /&gt;
INetURL.x32&lt;br /&gt;
JPEG Agent.x32&lt;br /&gt;
JPEG Export.x32&lt;br /&gt;
LRG Import Export.x32&lt;br /&gt;
LZComprs.x32&lt;br /&gt;
MacPaint Import.x32&lt;br /&gt;
MacroMix.x32&lt;br /&gt;
Mix Services.x32&lt;br /&gt;
MixCollada.x32&lt;br /&gt;
MixSkp.x32&lt;br /&gt;
MP4Asset.x32&lt;br /&gt;
MP4Auth.x32&lt;br /&gt;
MP4Export.x32&lt;br /&gt;
MPEG 3 Import Export.x32&lt;br /&gt;
Mui Dialog.x32&lt;br /&gt;
Multiusr.x32&lt;br /&gt;
NetFile.x32&lt;br /&gt;
NetLingo.x32&lt;br /&gt;
Palette Import.x32&lt;br /&gt;
Photoshop 3.0 Import.x32&lt;br /&gt;
Photoshop CLUT Import.x32&lt;br /&gt;
PICT Agent.x32&lt;br /&gt;
PNG Import Export.x32&lt;br /&gt;
Pshopflt.x32&lt;br /&gt;
QT3Asset.x32&lt;br /&gt;
QT6Asset.x32&lt;br /&gt;
QTAuth.x32&lt;br /&gt;
QTExport.x32&lt;br /&gt;
QuickTime Agent.x32&lt;br /&gt;
RealMedia Asset.x32&lt;br /&gt;
RealMedia Authoring.x32&lt;br /&gt;
Script Agent.x32&lt;br /&gt;
Shockwave 3D Asset.x32&lt;br /&gt;
Shockwave Updater.x32&lt;br /&gt;
Sound Control.x32&lt;br /&gt;
Sound Import Export.x32&lt;br /&gt;
Speech.x32&lt;br /&gt;
Squish.x32&lt;br /&gt;
Sun AU Import Export.x32&lt;br /&gt;
SWA Import Export.x32&lt;br /&gt;
SwaCmpr.x32&lt;br /&gt;
SWACnvrt.x32&lt;br /&gt;
SWADCmpr.x32&lt;br /&gt;
SWAOpt.x32&lt;br /&gt;
SWAStrm.x32&lt;br /&gt;
Targa Import Export.x32&lt;br /&gt;
Text Asset.x32&lt;br /&gt;
TextAuth.x32&lt;br /&gt;
TextXtra.x32&lt;br /&gt;
TIFF Import Export.x32&lt;br /&gt;
UIHelper.x32&lt;br /&gt;
UnzipXtra.x32&lt;br /&gt;
Vector Editor Xtra.x32&lt;br /&gt;
WatcherHelper.x32&lt;br /&gt;
Windows Media Asset.x32&lt;br /&gt;
Windows Media Auth.x32&lt;br /&gt;
XMLParser.x32&lt;br /&gt;
Xresagt.x32&lt;br /&gt;
ZipXtra.x32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[LeechProtectionRemoval|Le]]&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
[[LeechProtectionRemoval|echProtectionRemoval]]&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11361</id>
		<title>Newgrounds Flash API</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11361"/>
		<updated>2026-02-14T17:56:47Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Newgrounds HTTP API Versions =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''Newgrounds''' is a large Flash-based content platform that historically provided multiple HTTP Web API versions to support online game functionality, including scoreboards and medals. Over time, these APIs evolved to accommodate new features and architectural changes.&lt;br /&gt;
&lt;br /&gt;
This article documents the known API versions and their usage within the Flashpoint. &lt;br /&gt;
&lt;br /&gt;
'''TL;DR:'''&lt;br /&gt;
&lt;br /&gt;
* v1 and v2 API endpoints are routed through the legacy router as part of the standard Flashpoint installation.&lt;br /&gt;
&lt;br /&gt;
* v3 requires per-game configuration.&lt;br /&gt;
&lt;br /&gt;
== API Versions ==&lt;br /&gt;
&lt;br /&gt;
=== v1 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Early implementation. Does not updating.&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v2 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Revised version of the API with expanded functionality supporting per game implementation&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway_v2.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v3 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.newgrounds.io/gateway_v3.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' New modernized API. This API is documented on Newgrounds website: https://www.newgrounds.io/help/components&lt;br /&gt;
&lt;br /&gt;
Each game uses a unique '''Application ID''', and the corresponding &amp;lt;code&amp;gt;gateway_v3.php&amp;lt;/code&amp;gt; must be created per game. There is no universal file like v1 or v2&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11360</id>
		<title>Newgrounds Flash API</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11360"/>
		<updated>2026-02-14T17:36:29Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Newgrounds HTTP API Versions =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''Newgrounds''' is a large Flash-based content platform that historically provided multiple HTTP Web API versions to support online game functionality, including scoreboards and medals. Over time, these APIs evolved to accommodate new features and architectural changes.&lt;br /&gt;
&lt;br /&gt;
This article documents the known API versions and their usage within the Flashpoint. &lt;br /&gt;
&lt;br /&gt;
'''TL;DR:'''&lt;br /&gt;
&lt;br /&gt;
* v1 and v2 API endpoints are routed through the legacy router as part of the standard Flashpoint installation.&lt;br /&gt;
&lt;br /&gt;
* v3 requires per-game configuration.&lt;br /&gt;
&lt;br /&gt;
== API Versions ==&lt;br /&gt;
&lt;br /&gt;
=== v1 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Early implementation. Does not updating.&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v2 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Revised version of the API with expanded functionality supporting per game implementation&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway_v2.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v3 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.newgrounds.io/gateway_v3.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' New modernized API&lt;br /&gt;
&lt;br /&gt;
Each game uses a unique '''Application ID''', and the corresponding &amp;lt;code&amp;gt;gateway_v3.php&amp;lt;/code&amp;gt; must be created per game. There is no universal file like v1 or v2&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11359</id>
		<title>Newgrounds Flash API</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11359"/>
		<updated>2026-02-14T17:35:22Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Newgrounds HTTP API Versions =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''Newgrounds''' is a large Flash-based content platform that historically provided multiple HTTP Web API versions to support online game functionality, including scoreboards and medals. Over time, these APIs evolved to accommodate new features and architectural changes.&lt;br /&gt;
&lt;br /&gt;
This article documents the known API versions and their usage within the Flashpoint ecosystem.&lt;br /&gt;
&lt;br /&gt;
== API Versions ==&lt;br /&gt;
&lt;br /&gt;
=== v1 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Early implementation. Does not updating.&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v2 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Revised version of the API with expanded functionality supporting per game implementation&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway_v2.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v3 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.newgrounds.io/gateway_v3.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' New modernized API&lt;br /&gt;
&lt;br /&gt;
Each game uses a unique '''Application ID''', and the corresponding &amp;lt;code&amp;gt;gateway_v3.php&amp;lt;/code&amp;gt; must be created per game. There is no universal file like v1 or v2.&lt;br /&gt;
&lt;br /&gt;
== Implementation Notes ==&lt;br /&gt;
* v1 and v2 endpoints are routed through the legacy router as part of the standard Flashpoint installation.&lt;br /&gt;
* v3 requires per-game setup due to its application-specific authentication model.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11358</id>
		<title>Newgrounds Flash API</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Newgrounds_Flash_API&amp;diff=11358"/>
		<updated>2026-02-14T17:34:46Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;= Newgrounds HTTP API Versions =  == Overview == '''Newgrounds''' is a large Flash-based content platform that historically provided multiple HTTP Web API versions to support online game functionality, including scoreboards and medals. Over time, these APIs evolved to accommodate new features and architectural changes.  This article documents the known API versions and their usage within the Flashpoint ecosystem.  == API Versions ==  === v1 API === * '''Endpoint:''' &amp;lt;cod...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Newgrounds HTTP API Versions =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
'''Newgrounds''' is a large Flash-based content platform that historically provided multiple HTTP Web API versions to support online game functionality, including scoreboards and medals. Over time, these APIs evolved to accommodate new features and architectural changes.&lt;br /&gt;
&lt;br /&gt;
This article documents the known API versions and their usage within the Flashpoint ecosystem.&lt;br /&gt;
&lt;br /&gt;
== API Versions ==&lt;br /&gt;
&lt;br /&gt;
=== v1 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Early implementation. Does not updating.&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v2 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' Revised version of the API with expanded functionality supporting per game implementation&lt;br /&gt;
&lt;br /&gt;
This endpoint is implemented in the legacy router:&lt;br /&gt;
&lt;br /&gt;
* '''Repository Location:'''  &lt;br /&gt;
  &amp;lt;code&amp;gt;Legacy/cgi-bin/www.ngads.com/gateway_v2.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Source:'''  &lt;br /&gt;
  https://gitlab.unstable.life/flashpoint/components/core/legacy-router/-/blob/main/Legacy/cgi-bin/www.ngads.com/gateway_v2.php?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
=== v3 API ===&lt;br /&gt;
* '''Endpoint:''' &amp;lt;code&amp;gt;www.newgrounds.io/gateway_v3.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Protocol:''' HTTP&lt;br /&gt;
* '''Purpose:''' New modernized API&lt;br /&gt;
&lt;br /&gt;
Each game uses a unique '''Application ID''', and the corresponding &amp;lt;code&amp;gt;gateway_v3.php&amp;lt;/code&amp;gt; must be created or configured individually for each title.&lt;br /&gt;
&lt;br /&gt;
== Implementation Notes ==&lt;br /&gt;
* v1 and v2 endpoints are routed through the legacy router as part of the standard Flashpoint installation.&lt;br /&gt;
* v3 requires per-game setup due to its application-specific authentication model.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flash_Curation&amp;diff=11355</id>
		<title>Flash Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flash_Curation&amp;diff=11355"/>
		<updated>2026-02-09T18:08:42Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: reading logs with powershell&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[Flash]]&lt;br /&gt;
&lt;br /&gt;
This page goes over some of the advanced techniques specific to Flash curation. If you know of any advanced tips and tricks for curating Flash games, please add a section to this article!&lt;br /&gt;
&lt;br /&gt;
== Using old Flash versions ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games may be broken in the latest Flash Player version and require an old Flash Player version to work properly. For example, ''Hi Hi Puffy AmiYumi: Dish It Out'' compares only the first digit of the Flash Player version to the version it expects. This means that only Flash Player versions 6 through 9 will work for this game. So Flash Player 9 is used, and the Application Path is &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer9r277_win_sa.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Amiyumi.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Another common problem with Flash games is lagging when moving the mouse cursor. If this problem occurs, the game may need to be run in Flash Player 19 or earlier.&lt;br /&gt;
&lt;br /&gt;
=== Finding the right Flash version ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, it's not so simple to find the right Flash Player version for a game. For example, when ''Shopping Mall Parking'' is played in the latest Flash version, your car will take damage constantly and refuse to move. To find the right Flash version for the game, follow these steps:&lt;br /&gt;
# Install [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler].&lt;br /&gt;
# Right-click the SWF and click &amp;quot;Open with FFDec&amp;quot;.&lt;br /&gt;
# Click the &amp;quot;header&amp;quot; section in the tree view on the left.&lt;br /&gt;
# Translate the SWF version shown in JPEXS to its equivalent Flash Player version.&lt;br /&gt;
#* If the SWF version is below 9, the Flash Player version will be the same as the SWF version.&lt;br /&gt;
#* If the SWF version is 9 or above, use [https://stackoverflow.com/a/10900792 this chart] to find the equivalent Flash Player version.&lt;br /&gt;
# In Flashpoint, open the &amp;lt;code&amp;gt;FPSoftware\Flash&amp;lt;/code&amp;gt; folder. Find the executable for the Flash Player version that the game needs. Copy the name of the executable and use it as the Application Path for the game.&lt;br /&gt;
# Test whether the problem with the game is fixed!&lt;br /&gt;
&lt;br /&gt;
[[File:JPEXSViewHeader.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the example above, the SWF version of ''Shopping Mall Parking'' is 13, and the equivalent Flash Player version is 11.0. Thus, you would try this Application Path: &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer11_9r900_152_win_sa_debug.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== crossdomain.xml ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games may request a file called crossdomain.xml. This file permits access to domains other than the site the SWF is being hosted on. It will often look like the universal crossdomain.xml, found in the Legacy/htdocs directory of previous versions of Flashpoint:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
  &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;master-only&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The universal crossdomain.xml allows an SWF to access any and all domains, but others found on specific websites may only permit access from certain websites, such as Sploder's crossdomain.xml:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM &amp;quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;sploder.com&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;*.sploder.com&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;127.0.0.11&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If a game requests a crossdomain.xml, but it's missing from the web, you can use the universal crossdomain.xml in its place.&lt;br /&gt;
&lt;br /&gt;
== Flashvars ==&lt;br /&gt;
&lt;br /&gt;
Flashvars are additional variables added to an SWF's Launch Command in order to load the game properly. Flashvars are added to the Launch Command by putting a &amp;quot;?&amp;quot; after the filename of the .swf, followed by any variables in the style &amp;lt;code&amp;gt;name=value&amp;lt;/code&amp;gt;, separated with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example, the game ''Spyhounds: Crack This Code!'' has a Launch Command of &amp;lt;code&amp;gt;http://www-tc.pbskids.org/fetch/spyhounds/poodlediamond/swf/code_breaker_3KB.swf?spyday=2&amp;lt;/code&amp;gt;. Note the ? after the .swf file extension, which means the SWF here calls for the flashvars of &amp;lt;code&amp;gt;spyday&amp;lt;/code&amp;gt;, set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. Changing this to another number such as &amp;lt;code&amp;gt;spyday=4&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;spyday=9&amp;lt;/code&amp;gt; is necessary to make the SWF play the other versions of the game.&lt;br /&gt;
&lt;br /&gt;
In addition, flashvars can be part of a game's embed code (see below for more info on embeds). For example, viewing the HTML source code of [https://www.newgrounds.com/portal/view/650656 this Newgrounds game page] reveals the following JavaScript code, which many Newgrounds games have a similar version of:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{ swfobject.embedSWF(&amp;quot;https://uploads.ungrounded.net/650000/650656_gridgame.swf?1419422088&amp;quot;, &amp;quot;swfobject_embed&amp;quot;, &amp;quot;720&amp;quot;, &amp;quot;540&amp;quot;, &amp;quot;9.0.0&amp;quot;, null, {&amp;quot;NewgroundsAPI_PublisherID&amp;quot;:1,&amp;quot;NewgroundsAPI_SandboxID&amp;quot;:&amp;quot;5e057c3239505&amp;quot;,&amp;quot;NewgroundsAPI_SessionID&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;NewgroundsAPI_UserName&amp;quot;:&amp;quot;&amp;amp;lt;deleted&amp;amp;gt;&amp;quot;,&amp;quot;NewgroundsAPI_UserID&amp;quot;:0,&amp;quot;ng_username&amp;quot;:&amp;quot;&amp;amp;lt;deleted&amp;amp;gt;&amp;quot;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
This code will generate the following Flash embed:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;object id=&amp;quot;swfobject_embed&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;https://uploads.ungrounded.net/650000/650656_gridgame.swf?1419422088&amp;quot; style=&amp;quot;visibility: visible;&amp;quot; width=&amp;quot;720&amp;quot; height=&amp;quot;540&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;never&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreeninteractive&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;NewgroundsAPI_PublisherID=1&amp;amp;amp;NewgroundsAPI_SandboxID=5e057ff9668f3&amp;amp;amp;NewgroundsAPI_SessionID=&amp;amp;amp;NewgroundsAPI_UserName=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;amp;amp;NewgroundsAPI_UserID=0&amp;amp;amp;ng_username=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Note this section in particular:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;NewgroundsAPI_PublisherID=1&amp;amp;amp;NewgroundsAPI_SandboxID=5e057ff9668f3&amp;amp;amp;NewgroundsAPI_SessionID=&amp;amp;amp;NewgroundsAPI_UserName=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;amp;amp;NewgroundsAPI_UserID=0&amp;amp;amp;ng_username=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Even the Flashpoint Proxy can't get past this game's sitelock with the SWF alone, meaning these additional flashvars are required. Adding the flashvars in the format as explained above gives us the following Launch Command, which indeed makes the game work:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
http://uploads.ungrounded.net/650000/650656_gridgame.swf?NewgroundsAPI_PublisherID=1&amp;amp;NewgroundsAPI_SandboxID=5de02ce828e08&amp;amp;NewgroundsAPI_SessionID=&amp;amp;NewgroundsAPI_UserName=&amp;amp;lt;deleted&amp;amp;gt;&amp;amp;NewgroundsAPI_UserID=0&amp;amp;ng_username=&amp;amp;lt;deleted&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Plugin Projector ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games check whether they are running in an internet browser and refuse to run if they are not. For example, ''Neon Maze'' displays the below message when run in the standard Flash projector:&lt;br /&gt;
&lt;br /&gt;
[[File:PluginOnly.png]]&lt;br /&gt;
&lt;br /&gt;
For games like this you can use the &amp;quot;plugin&amp;quot; projector, which pretends to be a Flash browser plugin instead of a projector. Just change the Application Path to &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer_32_plugin.exe&amp;lt;/code&amp;gt; and the problem should be fixed! [Editor's Note: The plugin projector is not yet available in Infinity. Remove this note once it is added, please!]&lt;br /&gt;
&lt;br /&gt;
== Using the Debug Flash Player ==&lt;br /&gt;
&lt;br /&gt;
Some games may constantly open blank browser windows, may fail to load without any 404 messages on the Logs tab, or may have buttons that don't do anything when clicked. For example, if you load [https://web.archive.org/web/20231207105427/https://cdn.discordapp.com/attachments/436484633148915723/950964088433963008/Calibration.7z this curation of the game Calibration] into your copy of Flashpoint Infinity, you'll notice that clicking the &amp;quot;Control with Computer&amp;quot; button does nothing and the gameplay will not start. To figure out what the problem is, you can use the debug projector by changing the curation's Application Path to &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer_32_sa_debug.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Continuing with the example above, when clicking the &amp;quot;Control with Computer&amp;quot; button you'll now get an error popup with the following message:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error: Error #2067: The ExternalInterface is not available in this container. ExternalInterface requires Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime.&lt;br /&gt;
	at Error$/throwError()&lt;br /&gt;
	at flash.external::ExternalInterface$/addCallback()&lt;br /&gt;
	at com.robo::Instructions/selectComputer()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you see an error message that mentions ExternalInterface, that is your clue that the game needs to be run in a web browser instead of the Flash projector. See the [[#Using HTML Embed Codes|Using HTML Embed Codes]] for instructions.&lt;br /&gt;
&lt;br /&gt;
=== Using the Debug Plugin ===&lt;br /&gt;
&lt;br /&gt;
In addition to the debug projector, in the future we will also include a debug Flash plugin for Flashpoint Navigator in Flashpoint Infinity. For now you can [https://archive.org/download/flashplayer32.0.0.465_win_debug_npapi_patched/flashplayer32_0r0_465_win_debug_patched.7z download the debug plugin from here]. To use it, extract the 7z file, rename the extracted folder to &amp;lt;code&amp;gt;Flash-Debug&amp;lt;/code&amp;gt;, and place the folder in Flashpoint's &amp;lt;code&amp;gt;FPSoftware\BrowserPlugins&amp;lt;/code&amp;gt; folder. Then open &amp;lt;code&amp;gt;FPSoftware\fpnavigator-portable\FPNavigator.ini&amp;lt;/code&amp;gt; and change the following line:&lt;br /&gt;
 FP_FLASH_PATH=%FP_BROWSER_PLUGINS%\Flash&lt;br /&gt;
To this:&lt;br /&gt;
 FP_FLASH_PATH=%FP_BROWSER_PLUGINS%\Flash-Debug&lt;br /&gt;
Flashpoint Navigator will now load the debug plugin instead of the standard plugin. To undo this, just revert the same line of &amp;lt;code&amp;gt;FPNavigator.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Using the Flashlog - debugging ===&lt;br /&gt;
&lt;br /&gt;
The debug player is also useful for advanced tasks such as reimplementing game servers or recreating missing XML assets, where you need more info about what data the game expects to receive. Often in these cases, the info you need will be contained in a warning message, not an error. To see log/warning messages and more detailed errors, you will need to activate the flashlog by creating an &amp;lt;code&amp;gt;mm.cfg&amp;lt;/code&amp;gt; file in your user folder following the guide below. See also this document if you are stuck https://docs.unity3d.com/450/Documentation/Manual/flash-debugging.html&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create a plain text file called &amp;lt;code&amp;gt;mm.cfg&amp;lt;/code&amp;gt; (''not'' .txt; if you are using Notepad, save as &amp;quot;All Files&amp;quot;, not &amp;quot;Text Documents&amp;quot;) with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ErrorReportingEnable=1&lt;br /&gt;
TraceOutputFileEnable=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Place the file in your &amp;lt;code&amp;gt;%USERPROFILE%&amp;lt;/code&amp;gt; folder. (To open this folder, press Windows-R to open the Run box, then paste in &amp;lt;code&amp;gt;%USERPROFILE%&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
When you run an SWF, a file called &amp;lt;code&amp;gt;flashlog.txt&amp;lt;/code&amp;gt; will appear in this folder: &amp;lt;code&amp;gt;%APPDATA%\Macromedia\Flash Player\Logs&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Open the file to see any errors, warnings and log messages that the SWF generated so far. Messages will be cleared each time you close and reopen the Flash projector (or reload the page in FPNavigator).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read the flash logs using Powershell continuously like so:&amp;lt;pre&amp;gt;&lt;br /&gt;
get-content &amp;quot;$env:APPDATA\Macromedia\Flash Player\Logs\flashlog.txt&amp;quot; -wait&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you need to clear the flash log files you can do it so in Powershell&amp;lt;pre&amp;gt;&lt;br /&gt;
set-content -path &amp;quot;$env:APPDATA\Macromedia\Flash Player\Logs\flashlog.txt&amp;quot; &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Using HTML Embed Codes ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games require browser-only features such as JavaScript. For example, ''Zuma'' (in Flashpoint) constantly opens blank browser windows when loaded in the Flash projector because it is trying to call JavaScript functions. For games like this, you'll need to use FPNavigator instead of one of the Flash projectors. You'll need to embed the game in an HTML. Follow the steps below:&lt;br /&gt;
# Navigate to the webpage containing the game.&lt;br /&gt;
# Right-click the page and click &amp;quot;Inspect Element.&amp;quot; (Don't right-click on the game, right-click somewhere else on the page.)&lt;br /&gt;
# Click the arrow button on the top-left of the Developer Tools window. Then click the Flash game. This should highlight the game's embed code.&lt;br /&gt;
#* If you're using FPNavigator, it may not allow you to select the Flash game. Instead, you'll need to click a nearby element, then move your selection slightly to highlight the actual embed code.&lt;br /&gt;
# Press Ctrl-C to copy the highlighted embed code.&lt;br /&gt;
# Open a text editor such as Notepad and paste the embed code into it.&lt;br /&gt;
# Save the file as an HTML (&amp;quot;all files&amp;quot; on the Notepad dropdown menu).&lt;br /&gt;
# Place the HTML and the SWF it references at their original URLs in the content folder.&lt;br /&gt;
# Change the game's Application Path to &amp;lt;code&amp;gt;FPSoftware\fpnavigator-portable\FPNavigator.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Change the game's Launch Command to a URL matching the path to the HTML inside the content folder. Continue with the curation as normal.&lt;br /&gt;
&lt;br /&gt;
=== Fixing the Embed Code ===&lt;br /&gt;
&lt;br /&gt;
Embedding a Flash game in an HTML can occasionally cause problems with the game that did not previously exist. If a 3D game you are curating suddenly stops working when embedded in an HTML, or strange visual glitches appear in the game, you likely need to fix your embed code. Fortunately, the fix is very simple. &lt;br /&gt;
&lt;br /&gt;
When you are embedding a Flash game in an HTML file, you should nearly always use the &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; wmode parameter. For example, let's say you noticed visual glitches in a game with the following embed code. Changing &amp;lt;code&amp;gt;transparent&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; would fix the problem.&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;900&amp;quot; height=&amp;quot;450&amp;quot; wmode=&amp;quot;transparent&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, if you are curating a 3D Flash game using an HTML embed, you should ''always'' use the &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; wmode, because Stage3D (Flash's 3D engine) only works reliably in this mode. For example, if you had a 3D Flash game with this embed code:&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
You would change it to something like this:&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; wmode=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating New Embed Codes ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, only an SWF is available, and there is no webpage to copy an embed code from. If the SWF does not run correctly in the Flash projector, you will need to create an embed code from scratch. Start with the template embed code below:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;example.swf&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;480&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;always&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreeninteractive&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allownetworking&amp;quot; value=&amp;quot;all&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open the SWF in [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler]. Click the &amp;quot;header&amp;quot; section in the tree view on the left. Next to &amp;quot;Display rect&amp;quot;, you will see the width and height of the SWF indicated in twips and pixels. Ignore twips; pixels are what you are looking for. In the example below, the width of the SWF is 640 pixels and the height is 480 pixels.&lt;br /&gt;
&lt;br /&gt;
[[File:JPEXSViewHeader.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Next, replace the width and height in the template embed code with the SWF width and height that you just found. Finally, replace &amp;lt;code&amp;gt;example.swf&amp;lt;/code&amp;gt; with the filename of your SWF.&lt;br /&gt;
&lt;br /&gt;
You can also add or change additional properties of the embed as desired. [https://web.archive.org/web/20230208173231/https://helpx.adobe.com/flash/kb/flash-object-embed-tag-attributes.html See this page] for a reference of those properties.&lt;br /&gt;
&lt;br /&gt;
Once you have your embed code, complete the curation by following [[#Using HTML Embed Codes|steps 5-9 above]].&lt;br /&gt;
&lt;br /&gt;
== Finding SWZ Assets ==&lt;br /&gt;
&lt;br /&gt;
Some games require Adobe Flex libraries, which are files with a &amp;lt;code&amp;gt;.swz&amp;lt;/code&amp;gt; extension. These are particularly difficult to deal with for several reasons:&lt;br /&gt;
* Sometimes a game may request these assets from &amp;lt;code&amp;gt;fpdownload.adobe.com&amp;lt;/code&amp;gt;, while other times it may request them from the game's own website.&lt;br /&gt;
* By default, Flash Player caches SWZ files on your computer at the following location: &amp;lt;code&amp;gt;%APPDATA%\Adobe\Flash Player\AssetCache\&amp;lt;/code&amp;gt;. '''If Flash Player already has an SWZ file cached, the file will never be requested again, so you may not even know that a game requires SWZ files!'''&lt;br /&gt;
&lt;br /&gt;
To make sure that Flash Player's cache doesn't hide a game's dependency on SWZs, you will need to change your Flash Player settings:&lt;br /&gt;
# Visit the [http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html Flash Player Settings Manager's Global Storage Settings panel] using a Flash-enabled browser such as [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player].&lt;br /&gt;
# Uncheck the box for &amp;quot;Store common Flash components to reduce download times&amp;quot;.&lt;br /&gt;
With the SWZ cache deactivated, you will now see requests for .swz files whenever a game requires them.&lt;br /&gt;
In the future, we plan to set this option automatically in Flashpoint Infinity to alleviate issues with cached SWZ files.&lt;br /&gt;
&lt;br /&gt;
In Flashpoint Infinity, all known SWZ files are already included in the &amp;lt;code&amp;gt;fpdownload.adobe.com&amp;lt;/code&amp;gt; folder inside &amp;lt;code&amp;gt;Legacy\htdocs&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If a game uses a SWZ, always make sure to include it within the game's content folders. Not everyone will have SWZs already in their cache, and titles will fail to work without them.&lt;br /&gt;
&lt;br /&gt;
An example of a game that uses SWZ files is ''Josefina's Fiesta''. If you run the game (after changing the setting mentioned earlier) you should see some requests for SWZ files on Flashpoint Launcher's Logs tab. And you can see more clues that the game requires SWZ files when opening its main SWF file in JPEXS Flash Decompiler:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the tree on the left, expand &amp;quot;others&amp;quot; and click the &amp;quot;Metadata&amp;quot; item. You'll see some XML data, including:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dc:title&amp;gt;Adobe Flex 4 Application&amp;lt;/dc:title&amp;gt;&lt;br /&gt;
&amp;lt;dc:description&amp;gt;http://www.adobe.com/products/flex&amp;lt;/dc:description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both of these lines indicate that the game was made in Adobe Flex, and thus may require Flex libraries (SWZs).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you search the game's ActionScript for &amp;lt;code&amp;gt;.swz&amp;lt;/code&amp;gt; using the &amp;quot;Text Search&amp;quot; dialog, some results will appear. This should include the full SWZ URLs, which you can download manually if you want.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Decrypting MochiCrypt ==&lt;br /&gt;
&lt;br /&gt;
Mochi Media was a game publishing network that allowed developers to conceal their games in an encryption called MochiCrypt. Unfortunately, since Mochi Media is long defunct, some games encrypted using MochiCrypt will no longer work, often displaying nothing but a blank screen. &lt;br /&gt;
As an example, ''Wizard Smash'' is a Ninja Kiwi game encrypted using MochiCrypt that suffers the fate of a blank screen, both on the Ninja Kiwi website and in Flashpoint Infinity. To get the game working in Flashpoint, we'll have to extract the decrypted, playable SWF from memory, using either [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler] or [https://github.com/whc2001/MochiCryptUnpacker MochiCryptUnpacker].&lt;br /&gt;
&lt;br /&gt;
=== Using JPEXS ===&lt;br /&gt;
[[File:JPEXSFlashFilesInMemory.png|thumb|An example list of SWFs found by searching in memory using JPEXS. In this case, the largest SWF isn't actually the decrypted game, but the second-largest works in Flashpoint as a MochiCrypt-free version of the game.]]&lt;br /&gt;
# Install and open JPEXS.&lt;br /&gt;
# Open the game's SWF in Flash Player.&lt;br /&gt;
# Go to the Tools tab and click &amp;quot;Search SWFs in memory&amp;quot;.&lt;br /&gt;
# Search through the list on the left for Flash Player, likely named &amp;lt;code&amp;gt;flashplayer_32_sa.exe&amp;lt;/code&amp;gt;. Use the &amp;quot;Refresh list&amp;quot; button if you need to.&lt;br /&gt;
# Click &amp;quot;Select&amp;quot; to search through Flash Player's memory to find SWFs. You'll see lots of SWFs on the right, but the ones with game content are typically the ones with the larger file sizes.&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; to save a SWF, then run it in Flashpoint Infinity using the original SWF's Launch Command. If it doesn't work, try another SWF found in Flash Player's memory until you find the decrypted, playable SWF.&lt;br /&gt;
&lt;br /&gt;
=== Using MochiCryptUnpacker ===&lt;br /&gt;
&lt;br /&gt;
# Find the [https://github.com/whc2001/MochiCryptUnpacker/releases Releases section] to the right of MochiCryptUnpacker's GitHub page.&lt;br /&gt;
# Click on v1.0, then Release.zip to download the program.&lt;br /&gt;
# Extract the ZIP and open MochiCryptUnpacker.exe.&lt;br /&gt;
# Drag the game's SWF over the MochiCryptUnpacker window. The decrypted SWF will appear in the same folder as the original SWF.&lt;br /&gt;
# Run the decrypted SWF in Flashpoint Infinity using the original SWF's Launch Command.&lt;br /&gt;
&lt;br /&gt;
Regardless of which method you use, once you find the decrypted version of the SWF and ensure that it works properly, you should do two more things: '''change the game's Status to Hacked''' with an explanation in the curation's Notes field that the SWF was decrypted, and '''make sure to include the original, encrypted SWF''' as part of your curation. Afterwards, continue with your curation as usual.&lt;br /&gt;
&lt;br /&gt;
== Site-specific Guides ==&lt;br /&gt;
&lt;br /&gt;
Some Flash game sites pose a particular challenge to curate. This section provides tips on how to curate from those sites.&lt;br /&gt;
&lt;br /&gt;
=== Candystand ===&lt;br /&gt;
&lt;br /&gt;
Candystand.com no longer exists, having been absorbed into Publishers Clearing House in 2016. Additionally, many Candystand Flash games use a special preloader animation called a &amp;quot;stinger&amp;quot; and will refuse to load without it. If you are trying to curate a Candystand game, but it requests a &amp;lt;code&amp;gt;stinger.swf&amp;lt;/code&amp;gt; file and gets stuck on a blank screen, you will need to find the game's original webpage on Candystand via the Wayback Machine. The easiest way to do that is to [http://candyblog.squarespace.com visit the old Candystand blog], which includes the original release announcements for many of the Candystand Flash games. Use the Search bar on the right of the page to search for the game's title. We'll use Fashion Star as an example - [http://candyblog.squarespace.com/candystand-blog/2008/12/18/new-release-fashion-star.html here is the original release announcement from 2008]. The release announcement will include a link to the game - copy that link and paste it into the [http://web.archive.org/ Wayback Machine] to find the archived game page. Choose a capture from around 2010 - later captures tend not to work correctly. &lt;br /&gt;
&lt;br /&gt;
Once you've found a capture of the game's original webpage, you'll need to find the main SWF file's URL (if you don't have it already), as well as the stinger file's URL. The easiest way is to load the page in a Flash-enabled browser such as [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player] and use the Network tab of the browser's Developer Tools. Open the Developer Tools, type &amp;lt;code&amp;gt;swf&amp;lt;/code&amp;gt; into the &amp;quot;filter URLs&amp;quot; box, and look for the main game SWF and one with &amp;quot;stinger&amp;quot; in the name. Download these SWFs and place them in your curation as normal. Continuing the Fashion Star example, if you visit [https://web.archive.org/web/20100127003811/http://www.candystand.com/play/fashion-star this capture] in a Flash-enabled browser, you'll see it load these URLs:&lt;br /&gt;
 https://web.archive.org/web/20100125191002/http://www.candystand.com/games/fashion_star/fashion_star.swf&lt;br /&gt;
 https://web.archive.org/web/20100125183943/http://www.candystand.com/games/stingers_as3/stinger_mouse.swf&lt;br /&gt;
&lt;br /&gt;
If you have trouble loading a Candystand page in a Flash-enabled browser, another option is to right-click the page and click &amp;quot;View Page Source&amp;quot;. Then you can search for &amp;quot;.swf&amp;quot; to find the SWF URLs manually. Note that the page source uses relative URLs, so you will need to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.candystand.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to the beginning of each URL in order to download it.&lt;br /&gt;
&lt;br /&gt;
Now that you have the SWFs downloaded, you'll need to add a bit of code to your launch command to tell the game to load the stinger file. Add &amp;lt;code&amp;gt;?swlist=&amp;lt;/code&amp;gt; to the end of the launch command, followed by the URL of the stinger, minus the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.candystand.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; part. For example, you would add &amp;lt;code&amp;gt;?swlist=/games/stingers_as3/stinger_mouse.swf&amp;lt;/code&amp;gt; to the end of the launch command for Fashion Star. The final launch command would be: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://www.candystand.com/games/fashion_star/fashion_star.swf?swlist=/games/stingers_as3/stinger_mouse.swf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it! Your Candystand game curation should load fine now!&lt;br /&gt;
&lt;br /&gt;
=== Miniclip ===&lt;br /&gt;
&lt;br /&gt;
Some Miniclip games cannot be loaded directly and must instead be loaded via the Miniclip Gameloader. If you have a Miniclip SWF that shows a blank screen and refuses to load, follow the steps below to load it using the Miniclip Gameloader:&lt;br /&gt;
# [http://infinity.unstable.life/Flashpoint/Legacy/htdocs/www.miniclip.com/gameloader.swf Download the Miniclip Gameloader from Flashpoint's servers] (or grab it from Flashpoint Ultimate if you prefer).&lt;br /&gt;
# Place the file inside a &amp;lt;code&amp;gt;www.miniclip.com&amp;lt;/code&amp;gt; folder within your curation.&lt;br /&gt;
# Create a launch command pointing to the game's main SWF. &lt;br /&gt;
#* Here is an example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.miniclip.com/games/game-name/en/gamename.swf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Between &amp;lt;code&amp;gt;www.miniclip.com/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;games/&amp;lt;/code&amp;gt;, insert &amp;lt;code&amp;gt;gameloader.swf?fn=/&amp;lt;/code&amp;gt;. This new launch command will launch the Miniclip Gameloader and tell it to load the main game SWF.&lt;br /&gt;
#* The example launch command from above would now be: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.miniclip.com/gameloader.swf?fn=/games/game-name/en/gamename.swf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
With any luck, the game will now load and play properly!&lt;br /&gt;
&lt;br /&gt;
=== 4399.com ===&lt;br /&gt;
&lt;br /&gt;
4399.com is a Chinese webgame site with many rare and interesting games. But because of China's new &amp;quot;anti-indulgence&amp;quot; gaming regulations, the games have become more difficult to access. You will need a Flash-enabled browser with uBlock Origin installed. We suggest following the steps below:&lt;br /&gt;
# Download and install [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player] if you don't have it yet.&lt;br /&gt;
# Within Basilisk, [https://github.com/gorhill/uBlock-for-firefox-legacy/releases/ visit the uBlock Origin for Firefox Legacy GitHub page].&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;.xpi&amp;lt;/code&amp;gt; link under the &amp;quot;Assets&amp;quot; heading to download and install the add-on. Or if the link does not appear, copy the following link and paste it into Basilisk's address bar: &amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;https://github.com/gorhill/uBlock-for-firefox-legacy/releases/download/firefox-legacy-1.16.4.30/uBlock0_1.16.4.30.firefox-legacy.xpi&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Once the add-on is installed, click its icon in Basilisk's toolbar, then click the &amp;quot;Open the dashboard&amp;quot; icon (the small icon with 3 lines).&lt;br /&gt;
# On the dashboard page, click the &amp;quot;Filter Lists&amp;quot; tab. Scroll down and expand the &amp;quot;Annoyances&amp;quot; category, then check the box next to &amp;quot;uBlock Filters - Annoyances&amp;quot;.&lt;br /&gt;
# Click the &amp;quot;Update Now&amp;quot; button. 4399.com Flash games should play fine now!&lt;br /&gt;
&lt;br /&gt;
=== Spil Games ===&lt;br /&gt;
&lt;br /&gt;
Spil Games is a publisher which owns many webgame sites, the most popular of which are Agame.com, A10.com, and GirlsGoGames.com. Many games published by them use their API, which makes them somewhat tricky to curate. You'll know a game uses it when it fails to load and you have a 404 for &amp;lt;code&amp;gt;http://api.configar.org/crossdomain.xml&amp;lt;/code&amp;gt; in your Logs. Do not use MAD4FP to curate these games, it will not download the required files and may add them to your cache, making curating more difficult. To curate a game that requires the Spil Games API, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# [https://download.unstable.life/upload/wiki/configar-spilcloudpack.zip Download this zip file] of the universal files needed for all games using the API. Add the contents of all three folders into your curation's Content folder.&lt;br /&gt;
# Run the game again and check your Logs. You'll have a 404 for &amp;lt;code&amp;gt;http://api.configar.org/cf/pb/1/settings/0/0/&amp;lt;/code&amp;gt; followed by a long string of letters and numbers. Copy that URL and download it using cURLsDownloader. If it asks you if you want to rename the file, enter 1 to rename it. After adding this file to your curation, run the game again.&lt;br /&gt;
# You will most likely have multiple 404s in the Logs, copy the URLs for any &amp;lt;code&amp;gt;crossdomain.xml&amp;lt;/code&amp;gt; files and &amp;lt;code&amp;gt;.swf&amp;lt;/code&amp;gt; files. Download these using cURLsDownloader and add them to your Content folder. You may need to repeat this step multiple times until they have all been downloaded.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the game may work without all of these files, however they will likely be missing images, logos, or language translations. Since we want the games to be as complete as possible, all of these files need to be added to the curation.&lt;br /&gt;
&lt;br /&gt;
=== DeviantArt ===&lt;br /&gt;
&lt;br /&gt;
DeviantArt is a fairly straight forward site to curate from as all games tend to be single asset with no sitelocks in place or other dependencies, but unless the deviation is directly available for download, the only way to acquire the game files is through the Wayback Machine and knowledge of old URL structures.&lt;br /&gt;
&lt;br /&gt;
==== Identifying Flash Deviations ==== &lt;br /&gt;
&lt;br /&gt;
Due to DeviantArt being primarily an art site, and the fact that after the flash kill switch there is no clear indication of what deviation may have originally been a flash file or not, it is often difficult to find flash deviations in a gallery unless the preview made by the author indicates so. Other ways of identifying flash deviations are:&lt;br /&gt;
* Links to other flash portals like Newgrounds, Kongregate, or a dedicated site for the content, or links to file hosting services like Google Drive or Dropbox. The deviation sometimes only serves to advertise the game on those platforms. Additionally, DeviantArt allows uploading archive files, which could mean that games could be included in those.&lt;br /&gt;
* Tags like &amp;quot;swf&amp;quot;,  &amp;quot;flash&amp;quot;, &amp;quot;game&amp;quot;.&lt;br /&gt;
* Word of mouth from the comments.&lt;br /&gt;
* The &amp;lt;code&amp;gt;originalFile&amp;lt;/code&amp;gt; object which is only accessibly in the page source as part of other JSON data. This object holds information like the file dimensions, size, and the type (extension), but only the file dimensions and file size are displayed normally. This tends to be the best way to determine whether an undownloadble deviation is or is not a swf. Not to be confused with the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; object accessible via the DeviantArt API, which has the metadata for the deviation preview, not the original file.&lt;br /&gt;
: ''Note: There are very rare cases where the author has changed the content of the deviation to another file, in this case &amp;lt;code&amp;gt;originalFile&amp;lt;/code&amp;gt; will reflect that change. This content change was not done retroactively by DeviantArt on the flash kill switch, it must be done manually by the author, which makes it exceedingly unlikely to happen.''&lt;br /&gt;
&lt;br /&gt;
Currently unviable ways to identify flash deviations:&lt;br /&gt;
* DeviantArt categories were a mechanism for authors to categorize deviations in a hierarchy of ranging specificity. One of these categories was &amp;lt;code&amp;gt;flash&amp;lt;/code&amp;gt; and its corresponding categories &amp;lt;code&amp;gt;flash/animations&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flash/interactive&amp;lt;/code&amp;gt;, etc., these are still accessible through the DeviantArt API, but all category information always returns an empty string as of version &amp;lt;code&amp;gt;20240701&amp;lt;/code&amp;gt; despite no mentions of such in the changelog. Using earlier versions of the API does not fix this. It is unknown whether this is a bug or whether they are being phased out.&lt;br /&gt;
&lt;br /&gt;
==== Finding Deviations on the Wayback Machine ====&lt;br /&gt;
&lt;br /&gt;
Modern DeviantArt URLs have the format: &amp;lt;code&amp;gt;www.deviantart.com/artist/art/deviation&amp;lt;/code&amp;gt;. However, the old URL structure before [https://www.deviantart.com/danlev/journal/New-Profile-URLs-751783111 ~2018] was &amp;lt;code&amp;gt;www.artist.deviantart.com/art/deviation&amp;lt;/code&amp;gt;. The old URL structure is far more likely to have Wayback Machine snapshots with working deviations, but there still is a short period after the change to the new URL structure and before flash deviations became unplayable where it is still possible to find working flash deviations.&lt;br /&gt;
: ''Note: While on the Wayback Machine, it is a good idea to check snapshots of the artist's account and gallery for the possibility of deviations which have been deleted. When doing so, beware that DeviantArt likes to include tracking information in links which can throw off Wayback Machine and show that no snapshots are available for the URL. These are appended onto the URL and begin with a question mark &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; as a query string. This information should be deleted in order to receive the accurate snapshots for a page.''&lt;br /&gt;
&lt;br /&gt;
If there are snapshots for a deviation, then there are two possibilities:&lt;br /&gt;
# The swf loads and is directly playable in the browser through ruffle. In this case the swf can easily be downloaded via ruffle, or by inspecting the page source or the network tab inside the browser.&lt;br /&gt;
# Ruffle fails loading the swf or a DeviantArt page displaying an account named &amp;quot;Sandbox&amp;quot; is embedded in the browser in place of it. In this case a different snapshot should be checked because it may have a working link.&lt;br /&gt;
&lt;br /&gt;
If all snapshots fail loading or return the Sandbox account, the link to a working swf can be acquired from the live web with information from the snapshot. '''This trick only works if the account or deviation haven't been deleted'''.&lt;br /&gt;
# Inspect the page source or the network tab for the link to the &amp;lt;code&amp;gt;https://www.deviantart.com/sandbox&amp;lt;/code&amp;gt; which is embedded in the page in place of the main deviation's content. This is usually contained in an &amp;lt;code&amp;gt;iframe&amp;lt;/code&amp;gt; with the class &amp;lt;code&amp;gt;flashtime&amp;lt;/code&amp;gt;. The sandbox link usually follows the format &amp;lt;code&amp;gt;http://sandbox.deviantart.com/?fileheight=&amp;lt;N&amp;gt;&amp;amp;filewidth=&amp;lt;N&amp;gt;&amp;amp;filename=&amp;lt;NAME&amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;&amp;lt;N&amp;gt;&amp;lt;/code&amp;gt; is a number representing the dimensions of the file and &amp;lt;code&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/code&amp;gt; is a seemingly arbitrary string or a modified version of the deviation's &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt;. The string after the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter is a relative URL structure to the swf.&lt;br /&gt;
# Copy the string after the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter (without the equals sign &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;) and decode it if it isn't already with an [https://www.url-encode-decode.com/ online tool]. You will know if the string is not decoded if it contains percent signs &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; followed by two hexadecimal digits, which is how unsafe ASCII characters that are part of the URL get encoded. Once the string is decoded it will resemble a relative URL path. The good qualified filename may look like this &amp;lt;code&amp;gt;fs71:f/2013/272/f/d/fdad4bb4dbb5b168bc015abe5e6c7e10-d67l7zn.swf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fs71:f/2013/272/f/d/my_deviation_by_cooldeviant-d67l7zn.swf&amp;lt;/code&amp;gt;, but the only important part is what comes after the first slash &amp;lt;code&amp;gt;2013/272/f/d/fdad4bb4dbb5b168bc015abe5e6c7e10-d67l7zn.swf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;f/2013/272/f/d/my_deviation_by_cooldeviant-d67l7zn.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Append the string achieved in the last step to &amp;lt;code&amp;gt;https://orig07.deviantart.net/fs71:f/&amp;lt;/code&amp;gt;, go to the achieved URL on the live web and the swf file should get downloaded.&lt;br /&gt;
&lt;br /&gt;
: ''Note: If there are multiple snapshots for a deviation which all fail to load and the method above does not work for a given snapshot, other snapshots should be checked because it has been observed that on rare occasions the sandbox link embedded in the deviation has changed with time, which sometimes leads to the previous links becoming invalid. This is presumed to be because of DeviantArt moving things around on the backend, though there isn't any information to confirm this.''&lt;br /&gt;
&lt;br /&gt;
: ''Note: When checking snapshots of the modern URL structure, it is possible you will come across sandbox links of the format &amp;lt;code&amp;gt;wixmp:f/9dab1276-30ec-4ed6-a098-bfc5b0b35b63/d8dslbo-9d4a777d-d830-4d4a-bcb2-c8b63ed3c8c1.swf&amp;lt;/code&amp;gt;. It is not yet known if or how these can be used to reverse engineer a game. These do not seem to invalidate the old links however, so those should still be checked if they exist.''&lt;br /&gt;
&lt;br /&gt;
The orig links adhere to the following format with the following properties:&lt;br /&gt;
&amp;lt;pre&amp;gt;https://orig&amp;lt;00-15&amp;gt;.deviantart.net/&amp;lt;*&amp;gt;/f/&amp;lt;year&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: ''Note: You may find orig links which use &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;:f&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;/f&amp;lt;/code&amp;gt;. These two formats are interchangeable and will both always work.''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;00-15&amp;gt;&amp;lt;/code&amp;gt; is any character sequence ranging from &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;. Any will work, but the leading zero must be preserved. A singular digit such as &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; will not work, &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; does however work.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;&amp;lt;/code&amp;gt; is any sequence of 4 characters, presumably representing the file server where the deviation is stored. However, any sequence of 4 characters will work, regardless of link, although you will usually only find &amp;lt;code&amp;gt;fs70&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fs71&amp;lt;/code&amp;gt;. You may sometimes find &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;s3orig&amp;lt;/code&amp;gt; in place of this, in which case you can safely replace it with one of the aforementioned strings or with any other 4 character string.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; can take multiple formats which may or may not be mutually exclusive:&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;-d&amp;lt;base36ID&amp;gt;.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: An unknown 32 character UUID which seems to only be acquirable through orig links from Wayback Machine snapshots. There are very rare cases where this has changed between snapshots together with the &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt;, which cause the previous links to become invalid.&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: A persistent 6 character identifier encoded in base36 which has remained constant across time.&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: A slightly modified version of the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; value available in the deviation page source. It includes the aforementioned &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt; id after the last underscore character &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;. The modification required is changing the underscore &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; between the &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt; and the rest of the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; to a hyphen &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;.&lt;br /&gt;
:: '''Note: On some occasions the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; in the filename will heavily differ from the actual &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; available on the deviation's page. It is unknown why this happens and in this case the only way to get the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; is to wildly guess or to have a Wayback snapshot which reveals it.'''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt; is a hexadecimal digit (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;). These two digits always represent the first and respectively the second characters of the aforementioned unknown &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; are numbers representing the year in which the deviation was uploaded and respectively the day of the year in which the deviation was uploaded (e.g. April 20th is the 110th day of the year, meaning the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; would be &amp;lt;code&amp;gt;110&amp;lt;/code&amp;gt;). However, the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; may not always match the actual day of the year in which the deviation released, it may either be off by one or possible more, or it may be seemingly completely random. Regardless, there always seems to be a consistent offset between the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; of deviations made by the same creator, give or take a couple days, meaning that it can be estimated using snapshots of other, unrelated deviations. There are very rare cases where this has changed between snapshots together with the &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;, causing previous links to become invalid.&lt;br /&gt;
&lt;br /&gt;
Knowing that some parts of the orig links are constant or interchangeable, the format can be simpified to:&lt;br /&gt;
&amp;lt;pre&amp;gt;https://orig07.deviantart.net/fs70/f/&amp;lt;year&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brute Forcing Orig Links ====&lt;br /&gt;
&lt;br /&gt;
It has been proven that it is possible to acquire the swf of a deviation which is undownloadable and has no Wayback Machine snapshots by brute forcing the &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;&amp;lt;/code&amp;gt; format of orig links as long as the deviation has not been deleted. The two &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt;s must be brute forced, as without a Wayback Machine snapshot the &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt; can't be acquired and therefore neither can the &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt;s (if there was a snapshot with a valid orig link, there would be no need to brute force it anyway). One difficult part is guessing the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt;, which usually matches the day of the year, give or take a few days, or it may be unrelated to the upload date and require Wayback Machine snapshots of other deviations in order to approximate it. In either case, adjacent days will likely need to be bruteforced as well. Even when brute forcing the days, it is not guaranteed that the deviation's valid orig link will match the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; as shown in the deviation's page source, it may be a variation of it, making it harder if not impossible to guess, or it may use the &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt; format, making it a lost cause, though which format of filename any given deviation uses seems to be completely random and is not known except by trying.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flash_Curation&amp;diff=11354</id>
		<title>Flash Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flash_Curation&amp;diff=11354"/>
		<updated>2026-02-09T18:00:47Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: external link for helping with flash debug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[Flash]]&lt;br /&gt;
&lt;br /&gt;
This page goes over some of the advanced techniques specific to Flash curation. If you know of any advanced tips and tricks for curating Flash games, please add a section to this article!&lt;br /&gt;
&lt;br /&gt;
== Using old Flash versions ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games may be broken in the latest Flash Player version and require an old Flash Player version to work properly. For example, ''Hi Hi Puffy AmiYumi: Dish It Out'' compares only the first digit of the Flash Player version to the version it expects. This means that only Flash Player versions 6 through 9 will work for this game. So Flash Player 9 is used, and the Application Path is &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer9r277_win_sa.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Amiyumi.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Another common problem with Flash games is lagging when moving the mouse cursor. If this problem occurs, the game may need to be run in Flash Player 19 or earlier.&lt;br /&gt;
&lt;br /&gt;
=== Finding the right Flash version ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, it's not so simple to find the right Flash Player version for a game. For example, when ''Shopping Mall Parking'' is played in the latest Flash version, your car will take damage constantly and refuse to move. To find the right Flash version for the game, follow these steps:&lt;br /&gt;
# Install [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler].&lt;br /&gt;
# Right-click the SWF and click &amp;quot;Open with FFDec&amp;quot;.&lt;br /&gt;
# Click the &amp;quot;header&amp;quot; section in the tree view on the left.&lt;br /&gt;
# Translate the SWF version shown in JPEXS to its equivalent Flash Player version.&lt;br /&gt;
#* If the SWF version is below 9, the Flash Player version will be the same as the SWF version.&lt;br /&gt;
#* If the SWF version is 9 or above, use [https://stackoverflow.com/a/10900792 this chart] to find the equivalent Flash Player version.&lt;br /&gt;
# In Flashpoint, open the &amp;lt;code&amp;gt;FPSoftware\Flash&amp;lt;/code&amp;gt; folder. Find the executable for the Flash Player version that the game needs. Copy the name of the executable and use it as the Application Path for the game.&lt;br /&gt;
# Test whether the problem with the game is fixed!&lt;br /&gt;
&lt;br /&gt;
[[File:JPEXSViewHeader.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the example above, the SWF version of ''Shopping Mall Parking'' is 13, and the equivalent Flash Player version is 11.0. Thus, you would try this Application Path: &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer11_9r900_152_win_sa_debug.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== crossdomain.xml ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games may request a file called crossdomain.xml. This file permits access to domains other than the site the SWF is being hosted on. It will often look like the universal crossdomain.xml, found in the Legacy/htdocs directory of previous versions of Flashpoint:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
  &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;master-only&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The universal crossdomain.xml allows an SWF to access any and all domains, but others found on specific websites may only permit access from certain websites, such as Sploder's crossdomain.xml:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM &amp;quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;sploder.com&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;*.sploder.com&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;127.0.0.11&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If a game requests a crossdomain.xml, but it's missing from the web, you can use the universal crossdomain.xml in its place.&lt;br /&gt;
&lt;br /&gt;
== Flashvars ==&lt;br /&gt;
&lt;br /&gt;
Flashvars are additional variables added to an SWF's Launch Command in order to load the game properly. Flashvars are added to the Launch Command by putting a &amp;quot;?&amp;quot; after the filename of the .swf, followed by any variables in the style &amp;lt;code&amp;gt;name=value&amp;lt;/code&amp;gt;, separated with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example, the game ''Spyhounds: Crack This Code!'' has a Launch Command of &amp;lt;code&amp;gt;http://www-tc.pbskids.org/fetch/spyhounds/poodlediamond/swf/code_breaker_3KB.swf?spyday=2&amp;lt;/code&amp;gt;. Note the ? after the .swf file extension, which means the SWF here calls for the flashvars of &amp;lt;code&amp;gt;spyday&amp;lt;/code&amp;gt;, set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. Changing this to another number such as &amp;lt;code&amp;gt;spyday=4&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;spyday=9&amp;lt;/code&amp;gt; is necessary to make the SWF play the other versions of the game.&lt;br /&gt;
&lt;br /&gt;
In addition, flashvars can be part of a game's embed code (see below for more info on embeds). For example, viewing the HTML source code of [https://www.newgrounds.com/portal/view/650656 this Newgrounds game page] reveals the following JavaScript code, which many Newgrounds games have a similar version of:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{ swfobject.embedSWF(&amp;quot;https://uploads.ungrounded.net/650000/650656_gridgame.swf?1419422088&amp;quot;, &amp;quot;swfobject_embed&amp;quot;, &amp;quot;720&amp;quot;, &amp;quot;540&amp;quot;, &amp;quot;9.0.0&amp;quot;, null, {&amp;quot;NewgroundsAPI_PublisherID&amp;quot;:1,&amp;quot;NewgroundsAPI_SandboxID&amp;quot;:&amp;quot;5e057c3239505&amp;quot;,&amp;quot;NewgroundsAPI_SessionID&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;NewgroundsAPI_UserName&amp;quot;:&amp;quot;&amp;amp;lt;deleted&amp;amp;gt;&amp;quot;,&amp;quot;NewgroundsAPI_UserID&amp;quot;:0,&amp;quot;ng_username&amp;quot;:&amp;quot;&amp;amp;lt;deleted&amp;amp;gt;&amp;quot;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
This code will generate the following Flash embed:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;object id=&amp;quot;swfobject_embed&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;https://uploads.ungrounded.net/650000/650656_gridgame.swf?1419422088&amp;quot; style=&amp;quot;visibility: visible;&amp;quot; width=&amp;quot;720&amp;quot; height=&amp;quot;540&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;never&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreeninteractive&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;NewgroundsAPI_PublisherID=1&amp;amp;amp;NewgroundsAPI_SandboxID=5e057ff9668f3&amp;amp;amp;NewgroundsAPI_SessionID=&amp;amp;amp;NewgroundsAPI_UserName=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;amp;amp;NewgroundsAPI_UserID=0&amp;amp;amp;ng_username=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Note this section in particular:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;NewgroundsAPI_PublisherID=1&amp;amp;amp;NewgroundsAPI_SandboxID=5e057ff9668f3&amp;amp;amp;NewgroundsAPI_SessionID=&amp;amp;amp;NewgroundsAPI_UserName=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;amp;amp;NewgroundsAPI_UserID=0&amp;amp;amp;ng_username=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Even the Flashpoint Proxy can't get past this game's sitelock with the SWF alone, meaning these additional flashvars are required. Adding the flashvars in the format as explained above gives us the following Launch Command, which indeed makes the game work:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
http://uploads.ungrounded.net/650000/650656_gridgame.swf?NewgroundsAPI_PublisherID=1&amp;amp;NewgroundsAPI_SandboxID=5de02ce828e08&amp;amp;NewgroundsAPI_SessionID=&amp;amp;NewgroundsAPI_UserName=&amp;amp;lt;deleted&amp;amp;gt;&amp;amp;NewgroundsAPI_UserID=0&amp;amp;ng_username=&amp;amp;lt;deleted&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Plugin Projector ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games check whether they are running in an internet browser and refuse to run if they are not. For example, ''Neon Maze'' displays the below message when run in the standard Flash projector:&lt;br /&gt;
&lt;br /&gt;
[[File:PluginOnly.png]]&lt;br /&gt;
&lt;br /&gt;
For games like this you can use the &amp;quot;plugin&amp;quot; projector, which pretends to be a Flash browser plugin instead of a projector. Just change the Application Path to &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer_32_plugin.exe&amp;lt;/code&amp;gt; and the problem should be fixed! [Editor's Note: The plugin projector is not yet available in Infinity. Remove this note once it is added, please!]&lt;br /&gt;
&lt;br /&gt;
== Using the Debug Flash Player ==&lt;br /&gt;
&lt;br /&gt;
Some games may constantly open blank browser windows, may fail to load without any 404 messages on the Logs tab, or may have buttons that don't do anything when clicked. For example, if you load [https://web.archive.org/web/20231207105427/https://cdn.discordapp.com/attachments/436484633148915723/950964088433963008/Calibration.7z this curation of the game Calibration] into your copy of Flashpoint Infinity, you'll notice that clicking the &amp;quot;Control with Computer&amp;quot; button does nothing and the gameplay will not start. To figure out what the problem is, you can use the debug projector by changing the curation's Application Path to &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer_32_sa_debug.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Continuing with the example above, when clicking the &amp;quot;Control with Computer&amp;quot; button you'll now get an error popup with the following message:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error: Error #2067: The ExternalInterface is not available in this container. ExternalInterface requires Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime.&lt;br /&gt;
	at Error$/throwError()&lt;br /&gt;
	at flash.external::ExternalInterface$/addCallback()&lt;br /&gt;
	at com.robo::Instructions/selectComputer()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you see an error message that mentions ExternalInterface, that is your clue that the game needs to be run in a web browser instead of the Flash projector. See the [[#Using HTML Embed Codes|Using HTML Embed Codes]] for instructions.&lt;br /&gt;
&lt;br /&gt;
=== Using the Debug Plugin ===&lt;br /&gt;
&lt;br /&gt;
In addition to the debug projector, in the future we will also include a debug Flash plugin for Flashpoint Navigator in Flashpoint Infinity. For now you can [https://archive.org/download/flashplayer32.0.0.465_win_debug_npapi_patched/flashplayer32_0r0_465_win_debug_patched.7z download the debug plugin from here]. To use it, extract the 7z file, rename the extracted folder to &amp;lt;code&amp;gt;Flash-Debug&amp;lt;/code&amp;gt;, and place the folder in Flashpoint's &amp;lt;code&amp;gt;FPSoftware\BrowserPlugins&amp;lt;/code&amp;gt; folder. Then open &amp;lt;code&amp;gt;FPSoftware\fpnavigator-portable\FPNavigator.ini&amp;lt;/code&amp;gt; and change the following line:&lt;br /&gt;
 FP_FLASH_PATH=%FP_BROWSER_PLUGINS%\Flash&lt;br /&gt;
To this:&lt;br /&gt;
 FP_FLASH_PATH=%FP_BROWSER_PLUGINS%\Flash-Debug&lt;br /&gt;
Flashpoint Navigator will now load the debug plugin instead of the standard plugin. To undo this, just revert the same line of &amp;lt;code&amp;gt;FPNavigator.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Using the Flashlog - debugging ===&lt;br /&gt;
&lt;br /&gt;
The debug player is also useful for advanced tasks such as reimplementing game servers or recreating missing XML assets, where you need more info about what data the game expects to receive. Often in these cases, the info you need will be contained in a warning message, not an error. To see log/warning messages and more detailed errors, you will need to activate the flashlog by creating an &amp;lt;code&amp;gt;mm.cfg&amp;lt;/code&amp;gt; file in your user folder following the guide below. See also this document if you are stuck https://docs.unity3d.com/450/Documentation/Manual/flash-debugging.html&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create a plain text file called &amp;lt;code&amp;gt;mm.cfg&amp;lt;/code&amp;gt; (''not'' .txt; if you are using Notepad, save as &amp;quot;All Files&amp;quot;, not &amp;quot;Text Documents&amp;quot;) with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ErrorReportingEnable=1&lt;br /&gt;
TraceOutputFileEnable=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Place the file in your &amp;lt;code&amp;gt;%USERPROFILE%&amp;lt;/code&amp;gt; folder. (To open this folder, press Windows-R to open the Run box, then paste in &amp;lt;code&amp;gt;%USERPROFILE%&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
When you run an SWF, a file called &amp;lt;code&amp;gt;flashlog.txt&amp;lt;/code&amp;gt; will appear in this folder: &amp;lt;code&amp;gt;%APPDATA%\Macromedia\Flash Player\Logs&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Open the file to see any errors, warnings and log messages that the SWF generated so far. Messages will be cleared each time you close and reopen the Flash projector (or reload the page in FPNavigator).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using HTML Embed Codes ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games require browser-only features such as JavaScript. For example, ''Zuma'' (in Flashpoint) constantly opens blank browser windows when loaded in the Flash projector because it is trying to call JavaScript functions. For games like this, you'll need to use FPNavigator instead of one of the Flash projectors. You'll need to embed the game in an HTML. Follow the steps below:&lt;br /&gt;
# Navigate to the webpage containing the game.&lt;br /&gt;
# Right-click the page and click &amp;quot;Inspect Element.&amp;quot; (Don't right-click on the game, right-click somewhere else on the page.)&lt;br /&gt;
# Click the arrow button on the top-left of the Developer Tools window. Then click the Flash game. This should highlight the game's embed code.&lt;br /&gt;
#* If you're using FPNavigator, it may not allow you to select the Flash game. Instead, you'll need to click a nearby element, then move your selection slightly to highlight the actual embed code.&lt;br /&gt;
# Press Ctrl-C to copy the highlighted embed code.&lt;br /&gt;
# Open a text editor such as Notepad and paste the embed code into it.&lt;br /&gt;
# Save the file as an HTML (&amp;quot;all files&amp;quot; on the Notepad dropdown menu).&lt;br /&gt;
# Place the HTML and the SWF it references at their original URLs in the content folder.&lt;br /&gt;
# Change the game's Application Path to &amp;lt;code&amp;gt;FPSoftware\fpnavigator-portable\FPNavigator.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Change the game's Launch Command to a URL matching the path to the HTML inside the content folder. Continue with the curation as normal.&lt;br /&gt;
&lt;br /&gt;
=== Fixing the Embed Code ===&lt;br /&gt;
&lt;br /&gt;
Embedding a Flash game in an HTML can occasionally cause problems with the game that did not previously exist. If a 3D game you are curating suddenly stops working when embedded in an HTML, or strange visual glitches appear in the game, you likely need to fix your embed code. Fortunately, the fix is very simple. &lt;br /&gt;
&lt;br /&gt;
When you are embedding a Flash game in an HTML file, you should nearly always use the &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; wmode parameter. For example, let's say you noticed visual glitches in a game with the following embed code. Changing &amp;lt;code&amp;gt;transparent&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; would fix the problem.&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;900&amp;quot; height=&amp;quot;450&amp;quot; wmode=&amp;quot;transparent&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, if you are curating a 3D Flash game using an HTML embed, you should ''always'' use the &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; wmode, because Stage3D (Flash's 3D engine) only works reliably in this mode. For example, if you had a 3D Flash game with this embed code:&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
You would change it to something like this:&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; wmode=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating New Embed Codes ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, only an SWF is available, and there is no webpage to copy an embed code from. If the SWF does not run correctly in the Flash projector, you will need to create an embed code from scratch. Start with the template embed code below:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;example.swf&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;480&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;always&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreeninteractive&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allownetworking&amp;quot; value=&amp;quot;all&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open the SWF in [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler]. Click the &amp;quot;header&amp;quot; section in the tree view on the left. Next to &amp;quot;Display rect&amp;quot;, you will see the width and height of the SWF indicated in twips and pixels. Ignore twips; pixels are what you are looking for. In the example below, the width of the SWF is 640 pixels and the height is 480 pixels.&lt;br /&gt;
&lt;br /&gt;
[[File:JPEXSViewHeader.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Next, replace the width and height in the template embed code with the SWF width and height that you just found. Finally, replace &amp;lt;code&amp;gt;example.swf&amp;lt;/code&amp;gt; with the filename of your SWF.&lt;br /&gt;
&lt;br /&gt;
You can also add or change additional properties of the embed as desired. [https://web.archive.org/web/20230208173231/https://helpx.adobe.com/flash/kb/flash-object-embed-tag-attributes.html See this page] for a reference of those properties.&lt;br /&gt;
&lt;br /&gt;
Once you have your embed code, complete the curation by following [[#Using HTML Embed Codes|steps 5-9 above]].&lt;br /&gt;
&lt;br /&gt;
== Finding SWZ Assets ==&lt;br /&gt;
&lt;br /&gt;
Some games require Adobe Flex libraries, which are files with a &amp;lt;code&amp;gt;.swz&amp;lt;/code&amp;gt; extension. These are particularly difficult to deal with for several reasons:&lt;br /&gt;
* Sometimes a game may request these assets from &amp;lt;code&amp;gt;fpdownload.adobe.com&amp;lt;/code&amp;gt;, while other times it may request them from the game's own website.&lt;br /&gt;
* By default, Flash Player caches SWZ files on your computer at the following location: &amp;lt;code&amp;gt;%APPDATA%\Adobe\Flash Player\AssetCache\&amp;lt;/code&amp;gt;. '''If Flash Player already has an SWZ file cached, the file will never be requested again, so you may not even know that a game requires SWZ files!'''&lt;br /&gt;
&lt;br /&gt;
To make sure that Flash Player's cache doesn't hide a game's dependency on SWZs, you will need to change your Flash Player settings:&lt;br /&gt;
# Visit the [http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html Flash Player Settings Manager's Global Storage Settings panel] using a Flash-enabled browser such as [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player].&lt;br /&gt;
# Uncheck the box for &amp;quot;Store common Flash components to reduce download times&amp;quot;.&lt;br /&gt;
With the SWZ cache deactivated, you will now see requests for .swz files whenever a game requires them.&lt;br /&gt;
In the future, we plan to set this option automatically in Flashpoint Infinity to alleviate issues with cached SWZ files.&lt;br /&gt;
&lt;br /&gt;
In Flashpoint Infinity, all known SWZ files are already included in the &amp;lt;code&amp;gt;fpdownload.adobe.com&amp;lt;/code&amp;gt; folder inside &amp;lt;code&amp;gt;Legacy\htdocs&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If a game uses a SWZ, always make sure to include it within the game's content folders. Not everyone will have SWZs already in their cache, and titles will fail to work without them.&lt;br /&gt;
&lt;br /&gt;
An example of a game that uses SWZ files is ''Josefina's Fiesta''. If you run the game (after changing the setting mentioned earlier) you should see some requests for SWZ files on Flashpoint Launcher's Logs tab. And you can see more clues that the game requires SWZ files when opening its main SWF file in JPEXS Flash Decompiler:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the tree on the left, expand &amp;quot;others&amp;quot; and click the &amp;quot;Metadata&amp;quot; item. You'll see some XML data, including:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dc:title&amp;gt;Adobe Flex 4 Application&amp;lt;/dc:title&amp;gt;&lt;br /&gt;
&amp;lt;dc:description&amp;gt;http://www.adobe.com/products/flex&amp;lt;/dc:description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both of these lines indicate that the game was made in Adobe Flex, and thus may require Flex libraries (SWZs).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you search the game's ActionScript for &amp;lt;code&amp;gt;.swz&amp;lt;/code&amp;gt; using the &amp;quot;Text Search&amp;quot; dialog, some results will appear. This should include the full SWZ URLs, which you can download manually if you want.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Decrypting MochiCrypt ==&lt;br /&gt;
&lt;br /&gt;
Mochi Media was a game publishing network that allowed developers to conceal their games in an encryption called MochiCrypt. Unfortunately, since Mochi Media is long defunct, some games encrypted using MochiCrypt will no longer work, often displaying nothing but a blank screen. &lt;br /&gt;
As an example, ''Wizard Smash'' is a Ninja Kiwi game encrypted using MochiCrypt that suffers the fate of a blank screen, both on the Ninja Kiwi website and in Flashpoint Infinity. To get the game working in Flashpoint, we'll have to extract the decrypted, playable SWF from memory, using either [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler] or [https://github.com/whc2001/MochiCryptUnpacker MochiCryptUnpacker].&lt;br /&gt;
&lt;br /&gt;
=== Using JPEXS ===&lt;br /&gt;
[[File:JPEXSFlashFilesInMemory.png|thumb|An example list of SWFs found by searching in memory using JPEXS. In this case, the largest SWF isn't actually the decrypted game, but the second-largest works in Flashpoint as a MochiCrypt-free version of the game.]]&lt;br /&gt;
# Install and open JPEXS.&lt;br /&gt;
# Open the game's SWF in Flash Player.&lt;br /&gt;
# Go to the Tools tab and click &amp;quot;Search SWFs in memory&amp;quot;.&lt;br /&gt;
# Search through the list on the left for Flash Player, likely named &amp;lt;code&amp;gt;flashplayer_32_sa.exe&amp;lt;/code&amp;gt;. Use the &amp;quot;Refresh list&amp;quot; button if you need to.&lt;br /&gt;
# Click &amp;quot;Select&amp;quot; to search through Flash Player's memory to find SWFs. You'll see lots of SWFs on the right, but the ones with game content are typically the ones with the larger file sizes.&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; to save a SWF, then run it in Flashpoint Infinity using the original SWF's Launch Command. If it doesn't work, try another SWF found in Flash Player's memory until you find the decrypted, playable SWF.&lt;br /&gt;
&lt;br /&gt;
=== Using MochiCryptUnpacker ===&lt;br /&gt;
&lt;br /&gt;
# Find the [https://github.com/whc2001/MochiCryptUnpacker/releases Releases section] to the right of MochiCryptUnpacker's GitHub page.&lt;br /&gt;
# Click on v1.0, then Release.zip to download the program.&lt;br /&gt;
# Extract the ZIP and open MochiCryptUnpacker.exe.&lt;br /&gt;
# Drag the game's SWF over the MochiCryptUnpacker window. The decrypted SWF will appear in the same folder as the original SWF.&lt;br /&gt;
# Run the decrypted SWF in Flashpoint Infinity using the original SWF's Launch Command.&lt;br /&gt;
&lt;br /&gt;
Regardless of which method you use, once you find the decrypted version of the SWF and ensure that it works properly, you should do two more things: '''change the game's Status to Hacked''' with an explanation in the curation's Notes field that the SWF was decrypted, and '''make sure to include the original, encrypted SWF''' as part of your curation. Afterwards, continue with your curation as usual.&lt;br /&gt;
&lt;br /&gt;
== Site-specific Guides ==&lt;br /&gt;
&lt;br /&gt;
Some Flash game sites pose a particular challenge to curate. This section provides tips on how to curate from those sites.&lt;br /&gt;
&lt;br /&gt;
=== Candystand ===&lt;br /&gt;
&lt;br /&gt;
Candystand.com no longer exists, having been absorbed into Publishers Clearing House in 2016. Additionally, many Candystand Flash games use a special preloader animation called a &amp;quot;stinger&amp;quot; and will refuse to load without it. If you are trying to curate a Candystand game, but it requests a &amp;lt;code&amp;gt;stinger.swf&amp;lt;/code&amp;gt; file and gets stuck on a blank screen, you will need to find the game's original webpage on Candystand via the Wayback Machine. The easiest way to do that is to [http://candyblog.squarespace.com visit the old Candystand blog], which includes the original release announcements for many of the Candystand Flash games. Use the Search bar on the right of the page to search for the game's title. We'll use Fashion Star as an example - [http://candyblog.squarespace.com/candystand-blog/2008/12/18/new-release-fashion-star.html here is the original release announcement from 2008]. The release announcement will include a link to the game - copy that link and paste it into the [http://web.archive.org/ Wayback Machine] to find the archived game page. Choose a capture from around 2010 - later captures tend not to work correctly. &lt;br /&gt;
&lt;br /&gt;
Once you've found a capture of the game's original webpage, you'll need to find the main SWF file's URL (if you don't have it already), as well as the stinger file's URL. The easiest way is to load the page in a Flash-enabled browser such as [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player] and use the Network tab of the browser's Developer Tools. Open the Developer Tools, type &amp;lt;code&amp;gt;swf&amp;lt;/code&amp;gt; into the &amp;quot;filter URLs&amp;quot; box, and look for the main game SWF and one with &amp;quot;stinger&amp;quot; in the name. Download these SWFs and place them in your curation as normal. Continuing the Fashion Star example, if you visit [https://web.archive.org/web/20100127003811/http://www.candystand.com/play/fashion-star this capture] in a Flash-enabled browser, you'll see it load these URLs:&lt;br /&gt;
 https://web.archive.org/web/20100125191002/http://www.candystand.com/games/fashion_star/fashion_star.swf&lt;br /&gt;
 https://web.archive.org/web/20100125183943/http://www.candystand.com/games/stingers_as3/stinger_mouse.swf&lt;br /&gt;
&lt;br /&gt;
If you have trouble loading a Candystand page in a Flash-enabled browser, another option is to right-click the page and click &amp;quot;View Page Source&amp;quot;. Then you can search for &amp;quot;.swf&amp;quot; to find the SWF URLs manually. Note that the page source uses relative URLs, so you will need to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.candystand.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to the beginning of each URL in order to download it.&lt;br /&gt;
&lt;br /&gt;
Now that you have the SWFs downloaded, you'll need to add a bit of code to your launch command to tell the game to load the stinger file. Add &amp;lt;code&amp;gt;?swlist=&amp;lt;/code&amp;gt; to the end of the launch command, followed by the URL of the stinger, minus the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.candystand.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; part. For example, you would add &amp;lt;code&amp;gt;?swlist=/games/stingers_as3/stinger_mouse.swf&amp;lt;/code&amp;gt; to the end of the launch command for Fashion Star. The final launch command would be: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://www.candystand.com/games/fashion_star/fashion_star.swf?swlist=/games/stingers_as3/stinger_mouse.swf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it! Your Candystand game curation should load fine now!&lt;br /&gt;
&lt;br /&gt;
=== Miniclip ===&lt;br /&gt;
&lt;br /&gt;
Some Miniclip games cannot be loaded directly and must instead be loaded via the Miniclip Gameloader. If you have a Miniclip SWF that shows a blank screen and refuses to load, follow the steps below to load it using the Miniclip Gameloader:&lt;br /&gt;
# [http://infinity.unstable.life/Flashpoint/Legacy/htdocs/www.miniclip.com/gameloader.swf Download the Miniclip Gameloader from Flashpoint's servers] (or grab it from Flashpoint Ultimate if you prefer).&lt;br /&gt;
# Place the file inside a &amp;lt;code&amp;gt;www.miniclip.com&amp;lt;/code&amp;gt; folder within your curation.&lt;br /&gt;
# Create a launch command pointing to the game's main SWF. &lt;br /&gt;
#* Here is an example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.miniclip.com/games/game-name/en/gamename.swf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Between &amp;lt;code&amp;gt;www.miniclip.com/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;games/&amp;lt;/code&amp;gt;, insert &amp;lt;code&amp;gt;gameloader.swf?fn=/&amp;lt;/code&amp;gt;. This new launch command will launch the Miniclip Gameloader and tell it to load the main game SWF.&lt;br /&gt;
#* The example launch command from above would now be: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.miniclip.com/gameloader.swf?fn=/games/game-name/en/gamename.swf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
With any luck, the game will now load and play properly!&lt;br /&gt;
&lt;br /&gt;
=== 4399.com ===&lt;br /&gt;
&lt;br /&gt;
4399.com is a Chinese webgame site with many rare and interesting games. But because of China's new &amp;quot;anti-indulgence&amp;quot; gaming regulations, the games have become more difficult to access. You will need a Flash-enabled browser with uBlock Origin installed. We suggest following the steps below:&lt;br /&gt;
# Download and install [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player] if you don't have it yet.&lt;br /&gt;
# Within Basilisk, [https://github.com/gorhill/uBlock-for-firefox-legacy/releases/ visit the uBlock Origin for Firefox Legacy GitHub page].&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;.xpi&amp;lt;/code&amp;gt; link under the &amp;quot;Assets&amp;quot; heading to download and install the add-on. Or if the link does not appear, copy the following link and paste it into Basilisk's address bar: &amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;https://github.com/gorhill/uBlock-for-firefox-legacy/releases/download/firefox-legacy-1.16.4.30/uBlock0_1.16.4.30.firefox-legacy.xpi&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Once the add-on is installed, click its icon in Basilisk's toolbar, then click the &amp;quot;Open the dashboard&amp;quot; icon (the small icon with 3 lines).&lt;br /&gt;
# On the dashboard page, click the &amp;quot;Filter Lists&amp;quot; tab. Scroll down and expand the &amp;quot;Annoyances&amp;quot; category, then check the box next to &amp;quot;uBlock Filters - Annoyances&amp;quot;.&lt;br /&gt;
# Click the &amp;quot;Update Now&amp;quot; button. 4399.com Flash games should play fine now!&lt;br /&gt;
&lt;br /&gt;
=== Spil Games ===&lt;br /&gt;
&lt;br /&gt;
Spil Games is a publisher which owns many webgame sites, the most popular of which are Agame.com, A10.com, and GirlsGoGames.com. Many games published by them use their API, which makes them somewhat tricky to curate. You'll know a game uses it when it fails to load and you have a 404 for &amp;lt;code&amp;gt;http://api.configar.org/crossdomain.xml&amp;lt;/code&amp;gt; in your Logs. Do not use MAD4FP to curate these games, it will not download the required files and may add them to your cache, making curating more difficult. To curate a game that requires the Spil Games API, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# [https://download.unstable.life/upload/wiki/configar-spilcloudpack.zip Download this zip file] of the universal files needed for all games using the API. Add the contents of all three folders into your curation's Content folder.&lt;br /&gt;
# Run the game again and check your Logs. You'll have a 404 for &amp;lt;code&amp;gt;http://api.configar.org/cf/pb/1/settings/0/0/&amp;lt;/code&amp;gt; followed by a long string of letters and numbers. Copy that URL and download it using cURLsDownloader. If it asks you if you want to rename the file, enter 1 to rename it. After adding this file to your curation, run the game again.&lt;br /&gt;
# You will most likely have multiple 404s in the Logs, copy the URLs for any &amp;lt;code&amp;gt;crossdomain.xml&amp;lt;/code&amp;gt; files and &amp;lt;code&amp;gt;.swf&amp;lt;/code&amp;gt; files. Download these using cURLsDownloader and add them to your Content folder. You may need to repeat this step multiple times until they have all been downloaded.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the game may work without all of these files, however they will likely be missing images, logos, or language translations. Since we want the games to be as complete as possible, all of these files need to be added to the curation.&lt;br /&gt;
&lt;br /&gt;
=== DeviantArt ===&lt;br /&gt;
&lt;br /&gt;
DeviantArt is a fairly straight forward site to curate from as all games tend to be single asset with no sitelocks in place or other dependencies, but unless the deviation is directly available for download, the only way to acquire the game files is through the Wayback Machine and knowledge of old URL structures.&lt;br /&gt;
&lt;br /&gt;
==== Identifying Flash Deviations ==== &lt;br /&gt;
&lt;br /&gt;
Due to DeviantArt being primarily an art site, and the fact that after the flash kill switch there is no clear indication of what deviation may have originally been a flash file or not, it is often difficult to find flash deviations in a gallery unless the preview made by the author indicates so. Other ways of identifying flash deviations are:&lt;br /&gt;
* Links to other flash portals like Newgrounds, Kongregate, or a dedicated site for the content, or links to file hosting services like Google Drive or Dropbox. The deviation sometimes only serves to advertise the game on those platforms. Additionally, DeviantArt allows uploading archive files, which could mean that games could be included in those.&lt;br /&gt;
* Tags like &amp;quot;swf&amp;quot;,  &amp;quot;flash&amp;quot;, &amp;quot;game&amp;quot;.&lt;br /&gt;
* Word of mouth from the comments.&lt;br /&gt;
* The &amp;lt;code&amp;gt;originalFile&amp;lt;/code&amp;gt; object which is only accessibly in the page source as part of other JSON data. This object holds information like the file dimensions, size, and the type (extension), but only the file dimensions and file size are displayed normally. This tends to be the best way to determine whether an undownloadble deviation is or is not a swf. Not to be confused with the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; object accessible via the DeviantArt API, which has the metadata for the deviation preview, not the original file.&lt;br /&gt;
: ''Note: There are very rare cases where the author has changed the content of the deviation to another file, in this case &amp;lt;code&amp;gt;originalFile&amp;lt;/code&amp;gt; will reflect that change. This content change was not done retroactively by DeviantArt on the flash kill switch, it must be done manually by the author, which makes it exceedingly unlikely to happen.''&lt;br /&gt;
&lt;br /&gt;
Currently unviable ways to identify flash deviations:&lt;br /&gt;
* DeviantArt categories were a mechanism for authors to categorize deviations in a hierarchy of ranging specificity. One of these categories was &amp;lt;code&amp;gt;flash&amp;lt;/code&amp;gt; and its corresponding categories &amp;lt;code&amp;gt;flash/animations&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flash/interactive&amp;lt;/code&amp;gt;, etc., these are still accessible through the DeviantArt API, but all category information always returns an empty string as of version &amp;lt;code&amp;gt;20240701&amp;lt;/code&amp;gt; despite no mentions of such in the changelog. Using earlier versions of the API does not fix this. It is unknown whether this is a bug or whether they are being phased out.&lt;br /&gt;
&lt;br /&gt;
==== Finding Deviations on the Wayback Machine ====&lt;br /&gt;
&lt;br /&gt;
Modern DeviantArt URLs have the format: &amp;lt;code&amp;gt;www.deviantart.com/artist/art/deviation&amp;lt;/code&amp;gt;. However, the old URL structure before [https://www.deviantart.com/danlev/journal/New-Profile-URLs-751783111 ~2018] was &amp;lt;code&amp;gt;www.artist.deviantart.com/art/deviation&amp;lt;/code&amp;gt;. The old URL structure is far more likely to have Wayback Machine snapshots with working deviations, but there still is a short period after the change to the new URL structure and before flash deviations became unplayable where it is still possible to find working flash deviations.&lt;br /&gt;
: ''Note: While on the Wayback Machine, it is a good idea to check snapshots of the artist's account and gallery for the possibility of deviations which have been deleted. When doing so, beware that DeviantArt likes to include tracking information in links which can throw off Wayback Machine and show that no snapshots are available for the URL. These are appended onto the URL and begin with a question mark &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; as a query string. This information should be deleted in order to receive the accurate snapshots for a page.''&lt;br /&gt;
&lt;br /&gt;
If there are snapshots for a deviation, then there are two possibilities:&lt;br /&gt;
# The swf loads and is directly playable in the browser through ruffle. In this case the swf can easily be downloaded via ruffle, or by inspecting the page source or the network tab inside the browser.&lt;br /&gt;
# Ruffle fails loading the swf or a DeviantArt page displaying an account named &amp;quot;Sandbox&amp;quot; is embedded in the browser in place of it. In this case a different snapshot should be checked because it may have a working link.&lt;br /&gt;
&lt;br /&gt;
If all snapshots fail loading or return the Sandbox account, the link to a working swf can be acquired from the live web with information from the snapshot. '''This trick only works if the account or deviation haven't been deleted'''.&lt;br /&gt;
# Inspect the page source or the network tab for the link to the &amp;lt;code&amp;gt;https://www.deviantart.com/sandbox&amp;lt;/code&amp;gt; which is embedded in the page in place of the main deviation's content. This is usually contained in an &amp;lt;code&amp;gt;iframe&amp;lt;/code&amp;gt; with the class &amp;lt;code&amp;gt;flashtime&amp;lt;/code&amp;gt;. The sandbox link usually follows the format &amp;lt;code&amp;gt;http://sandbox.deviantart.com/?fileheight=&amp;lt;N&amp;gt;&amp;amp;filewidth=&amp;lt;N&amp;gt;&amp;amp;filename=&amp;lt;NAME&amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;&amp;lt;N&amp;gt;&amp;lt;/code&amp;gt; is a number representing the dimensions of the file and &amp;lt;code&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/code&amp;gt; is a seemingly arbitrary string or a modified version of the deviation's &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt;. The string after the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter is a relative URL structure to the swf.&lt;br /&gt;
# Copy the string after the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter (without the equals sign &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;) and decode it if it isn't already with an [https://www.url-encode-decode.com/ online tool]. You will know if the string is not decoded if it contains percent signs &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; followed by two hexadecimal digits, which is how unsafe ASCII characters that are part of the URL get encoded. Once the string is decoded it will resemble a relative URL path. The good qualified filename may look like this &amp;lt;code&amp;gt;fs71:f/2013/272/f/d/fdad4bb4dbb5b168bc015abe5e6c7e10-d67l7zn.swf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fs71:f/2013/272/f/d/my_deviation_by_cooldeviant-d67l7zn.swf&amp;lt;/code&amp;gt;, but the only important part is what comes after the first slash &amp;lt;code&amp;gt;2013/272/f/d/fdad4bb4dbb5b168bc015abe5e6c7e10-d67l7zn.swf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;f/2013/272/f/d/my_deviation_by_cooldeviant-d67l7zn.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Append the string achieved in the last step to &amp;lt;code&amp;gt;https://orig07.deviantart.net/fs71:f/&amp;lt;/code&amp;gt;, go to the achieved URL on the live web and the swf file should get downloaded.&lt;br /&gt;
&lt;br /&gt;
: ''Note: If there are multiple snapshots for a deviation which all fail to load and the method above does not work for a given snapshot, other snapshots should be checked because it has been observed that on rare occasions the sandbox link embedded in the deviation has changed with time, which sometimes leads to the previous links becoming invalid. This is presumed to be because of DeviantArt moving things around on the backend, though there isn't any information to confirm this.''&lt;br /&gt;
&lt;br /&gt;
: ''Note: When checking snapshots of the modern URL structure, it is possible you will come across sandbox links of the format &amp;lt;code&amp;gt;wixmp:f/9dab1276-30ec-4ed6-a098-bfc5b0b35b63/d8dslbo-9d4a777d-d830-4d4a-bcb2-c8b63ed3c8c1.swf&amp;lt;/code&amp;gt;. It is not yet known if or how these can be used to reverse engineer a game. These do not seem to invalidate the old links however, so those should still be checked if they exist.''&lt;br /&gt;
&lt;br /&gt;
The orig links adhere to the following format with the following properties:&lt;br /&gt;
&amp;lt;pre&amp;gt;https://orig&amp;lt;00-15&amp;gt;.deviantart.net/&amp;lt;*&amp;gt;/f/&amp;lt;year&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: ''Note: You may find orig links which use &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;:f&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;/f&amp;lt;/code&amp;gt;. These two formats are interchangeable and will both always work.''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;00-15&amp;gt;&amp;lt;/code&amp;gt; is any character sequence ranging from &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;. Any will work, but the leading zero must be preserved. A singular digit such as &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; will not work, &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; does however work.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;&amp;lt;/code&amp;gt; is any sequence of 4 characters, presumably representing the file server where the deviation is stored. However, any sequence of 4 characters will work, regardless of link, although you will usually only find &amp;lt;code&amp;gt;fs70&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fs71&amp;lt;/code&amp;gt;. You may sometimes find &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;s3orig&amp;lt;/code&amp;gt; in place of this, in which case you can safely replace it with one of the aforementioned strings or with any other 4 character string.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; can take multiple formats which may or may not be mutually exclusive:&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;-d&amp;lt;base36ID&amp;gt;.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: An unknown 32 character UUID which seems to only be acquirable through orig links from Wayback Machine snapshots. There are very rare cases where this has changed between snapshots together with the &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt;, which cause the previous links to become invalid.&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: A persistent 6 character identifier encoded in base36 which has remained constant across time.&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: A slightly modified version of the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; value available in the deviation page source. It includes the aforementioned &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt; id after the last underscore character &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;. The modification required is changing the underscore &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; between the &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt; and the rest of the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; to a hyphen &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;.&lt;br /&gt;
:: '''Note: On some occasions the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; in the filename will heavily differ from the actual &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; available on the deviation's page. It is unknown why this happens and in this case the only way to get the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; is to wildly guess or to have a Wayback snapshot which reveals it.'''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt; is a hexadecimal digit (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;). These two digits always represent the first and respectively the second characters of the aforementioned unknown &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; are numbers representing the year in which the deviation was uploaded and respectively the day of the year in which the deviation was uploaded (e.g. April 20th is the 110th day of the year, meaning the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; would be &amp;lt;code&amp;gt;110&amp;lt;/code&amp;gt;). However, the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; may not always match the actual day of the year in which the deviation released, it may either be off by one or possible more, or it may be seemingly completely random. Regardless, there always seems to be a consistent offset between the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; of deviations made by the same creator, give or take a couple days, meaning that it can be estimated using snapshots of other, unrelated deviations. There are very rare cases where this has changed between snapshots together with the &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;, causing previous links to become invalid.&lt;br /&gt;
&lt;br /&gt;
Knowing that some parts of the orig links are constant or interchangeable, the format can be simpified to:&lt;br /&gt;
&amp;lt;pre&amp;gt;https://orig07.deviantart.net/fs70/f/&amp;lt;year&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brute Forcing Orig Links ====&lt;br /&gt;
&lt;br /&gt;
It has been proven that it is possible to acquire the swf of a deviation which is undownloadable and has no Wayback Machine snapshots by brute forcing the &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;&amp;lt;/code&amp;gt; format of orig links as long as the deviation has not been deleted. The two &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt;s must be brute forced, as without a Wayback Machine snapshot the &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt; can't be acquired and therefore neither can the &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt;s (if there was a snapshot with a valid orig link, there would be no need to brute force it anyway). One difficult part is guessing the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt;, which usually matches the day of the year, give or take a few days, or it may be unrelated to the upload date and require Wayback Machine snapshots of other deviations in order to approximate it. In either case, adjacent days will likely need to be bruteforced as well. Even when brute forcing the days, it is not guaranteed that the deviation's valid orig link will match the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; as shown in the deviation's page source, it may be a variation of it, making it harder if not impossible to guess, or it may use the &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt; format, making it a lost cause, though which format of filename any given deviation uses seems to be completely random and is not known except by trying.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flash_Curation&amp;diff=11319</id>
		<title>Flash Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flash_Curation&amp;diff=11319"/>
		<updated>2026-01-19T20:03:52Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[Flash]]&lt;br /&gt;
&lt;br /&gt;
This page goes over some of the advanced techniques specific to Flash curation. If you know of any advanced tips and tricks for curating Flash games, please add a section to this article!&lt;br /&gt;
&lt;br /&gt;
== Using old Flash versions ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games may be broken in the latest Flash Player version and require an old Flash Player version to work properly. For example, ''Hi Hi Puffy AmiYumi: Dish It Out'' compares only the first digit of the Flash Player version to the version it expects. This means that only Flash Player versions 6 through 9 will work for this game. So Flash Player 9 is used, and the Application Path is &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer9r277_win_sa.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Amiyumi.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Another common problem with Flash games is lagging when moving the mouse cursor. If this problem occurs, the game may need to be run in Flash Player 19 or earlier.&lt;br /&gt;
&lt;br /&gt;
=== Finding the right Flash version ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, it's not so simple to find the right Flash Player version for a game. For example, when ''Shopping Mall Parking'' is played in the latest Flash version, your car will take damage constantly and refuse to move. To find the right Flash version for the game, follow these steps:&lt;br /&gt;
# Install [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler].&lt;br /&gt;
# Right-click the SWF and click &amp;quot;Open with FFDec&amp;quot;.&lt;br /&gt;
# Click the &amp;quot;header&amp;quot; section in the tree view on the left.&lt;br /&gt;
# Translate the SWF version shown in JPEXS to its equivalent Flash Player version.&lt;br /&gt;
#* If the SWF version is below 9, the Flash Player version will be the same as the SWF version.&lt;br /&gt;
#* If the SWF version is 9 or above, use [https://stackoverflow.com/a/10900792 this chart] to find the equivalent Flash Player version.&lt;br /&gt;
# In Flashpoint, open the &amp;lt;code&amp;gt;FPSoftware\Flash&amp;lt;/code&amp;gt; folder. Find the executable for the Flash Player version that the game needs. Copy the name of the executable and use it as the Application Path for the game.&lt;br /&gt;
# Test whether the problem with the game is fixed!&lt;br /&gt;
&lt;br /&gt;
[[File:JPEXSViewHeader.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the example above, the SWF version of ''Shopping Mall Parking'' is 13, and the equivalent Flash Player version is 11.0. Thus, you would try this Application Path: &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer11_9r900_152_win_sa_debug.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== crossdomain.xml ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games may request a file called crossdomain.xml. This file permits access to domains other than the site the SWF is being hosted on. It will often look like the universal crossdomain.xml, found in the Legacy/htdocs directory of previous versions of Flashpoint:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
  &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;master-only&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The universal crossdomain.xml allows an SWF to access any and all domains, but others found on specific websites may only permit access from certain websites, such as Sploder's crossdomain.xml:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM &amp;quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;sploder.com&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;*.sploder.com&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;127.0.0.11&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If a game requests a crossdomain.xml, but it's missing from the web, you can use the universal crossdomain.xml in its place.&lt;br /&gt;
&lt;br /&gt;
== Flashvars ==&lt;br /&gt;
&lt;br /&gt;
Flashvars are additional variables added to an SWF's Launch Command in order to load the game properly. Flashvars are added to the Launch Command by putting a &amp;quot;?&amp;quot; after the filename of the .swf, followed by any variables in the style &amp;lt;code&amp;gt;name=value&amp;lt;/code&amp;gt;, separated with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example, the game ''Spyhounds: Crack This Code!'' has a Launch Command of &amp;lt;code&amp;gt;http://www-tc.pbskids.org/fetch/spyhounds/poodlediamond/swf/code_breaker_3KB.swf?spyday=2&amp;lt;/code&amp;gt;. Note the ? after the .swf file extension, which means the SWF here calls for the flashvars of &amp;lt;code&amp;gt;spyday&amp;lt;/code&amp;gt;, set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. Changing this to another number such as &amp;lt;code&amp;gt;spyday=4&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;spyday=9&amp;lt;/code&amp;gt; is necessary to make the SWF play the other versions of the game.&lt;br /&gt;
&lt;br /&gt;
In addition, flashvars can be part of a game's embed code (see below for more info on embeds). For example, viewing the HTML source code of [https://www.newgrounds.com/portal/view/650656 this Newgrounds game page] reveals the following JavaScript code, which many Newgrounds games have a similar version of:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{ swfobject.embedSWF(&amp;quot;https://uploads.ungrounded.net/650000/650656_gridgame.swf?1419422088&amp;quot;, &amp;quot;swfobject_embed&amp;quot;, &amp;quot;720&amp;quot;, &amp;quot;540&amp;quot;, &amp;quot;9.0.0&amp;quot;, null, {&amp;quot;NewgroundsAPI_PublisherID&amp;quot;:1,&amp;quot;NewgroundsAPI_SandboxID&amp;quot;:&amp;quot;5e057c3239505&amp;quot;,&amp;quot;NewgroundsAPI_SessionID&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;NewgroundsAPI_UserName&amp;quot;:&amp;quot;&amp;amp;lt;deleted&amp;amp;gt;&amp;quot;,&amp;quot;NewgroundsAPI_UserID&amp;quot;:0,&amp;quot;ng_username&amp;quot;:&amp;quot;&amp;amp;lt;deleted&amp;amp;gt;&amp;quot;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
This code will generate the following Flash embed:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;object id=&amp;quot;swfobject_embed&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;https://uploads.ungrounded.net/650000/650656_gridgame.swf?1419422088&amp;quot; style=&amp;quot;visibility: visible;&amp;quot; width=&amp;quot;720&amp;quot; height=&amp;quot;540&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;never&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreeninteractive&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;NewgroundsAPI_PublisherID=1&amp;amp;amp;NewgroundsAPI_SandboxID=5e057ff9668f3&amp;amp;amp;NewgroundsAPI_SessionID=&amp;amp;amp;NewgroundsAPI_UserName=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;amp;amp;NewgroundsAPI_UserID=0&amp;amp;amp;ng_username=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Note this section in particular:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;NewgroundsAPI_PublisherID=1&amp;amp;amp;NewgroundsAPI_SandboxID=5e057ff9668f3&amp;amp;amp;NewgroundsAPI_SessionID=&amp;amp;amp;NewgroundsAPI_UserName=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;amp;amp;NewgroundsAPI_UserID=0&amp;amp;amp;ng_username=&amp;amp;amp;lt;deleted&amp;amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Even the Flashpoint Proxy can't get past this game's sitelock with the SWF alone, meaning these additional flashvars are required. Adding the flashvars in the format as explained above gives us the following Launch Command, which indeed makes the game work:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
http://uploads.ungrounded.net/650000/650656_gridgame.swf?NewgroundsAPI_PublisherID=1&amp;amp;NewgroundsAPI_SandboxID=5de02ce828e08&amp;amp;NewgroundsAPI_SessionID=&amp;amp;NewgroundsAPI_UserName=&amp;amp;lt;deleted&amp;amp;gt;&amp;amp;NewgroundsAPI_UserID=0&amp;amp;ng_username=&amp;amp;lt;deleted&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Plugin Projector ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games check whether they are running in an internet browser and refuse to run if they are not. For example, ''Neon Maze'' displays the below message when run in the standard Flash projector:&lt;br /&gt;
&lt;br /&gt;
[[File:PluginOnly.png]]&lt;br /&gt;
&lt;br /&gt;
For games like this you can use the &amp;quot;plugin&amp;quot; projector, which pretends to be a Flash browser plugin instead of a projector. Just change the Application Path to &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer_32_plugin.exe&amp;lt;/code&amp;gt; and the problem should be fixed! [Editor's Note: The plugin projector is not yet available in Infinity. Remove this note once it is added, please!]&lt;br /&gt;
&lt;br /&gt;
== Using the Debug Flash Player ==&lt;br /&gt;
&lt;br /&gt;
Some games may constantly open blank browser windows, may fail to load without any 404 messages on the Logs tab, or may have buttons that don't do anything when clicked. For example, if you load [https://web.archive.org/web/20231207105427/https://cdn.discordapp.com/attachments/436484633148915723/950964088433963008/Calibration.7z this curation of the game Calibration] into your copy of Flashpoint Infinity, you'll notice that clicking the &amp;quot;Control with Computer&amp;quot; button does nothing and the gameplay will not start. To figure out what the problem is, you can use the debug projector by changing the curation's Application Path to &amp;lt;code&amp;gt;FPSoftware\Flash\flashplayer_32_sa_debug.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Continuing with the example above, when clicking the &amp;quot;Control with Computer&amp;quot; button you'll now get an error popup with the following message:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error: Error #2067: The ExternalInterface is not available in this container. ExternalInterface requires Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime.&lt;br /&gt;
	at Error$/throwError()&lt;br /&gt;
	at flash.external::ExternalInterface$/addCallback()&lt;br /&gt;
	at com.robo::Instructions/selectComputer()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you see an error message that mentions ExternalInterface, that is your clue that the game needs to be run in a web browser instead of the Flash projector. See the [[#Using HTML Embed Codes|Using HTML Embed Codes]] for instructions.&lt;br /&gt;
&lt;br /&gt;
=== Using the Debug Plugin ===&lt;br /&gt;
&lt;br /&gt;
In addition to the debug projector, in the future we will also include a debug Flash plugin for Flashpoint Navigator in Flashpoint Infinity. For now you can [https://archive.org/download/flashplayer32.0.0.465_win_debug_npapi_patched/flashplayer32_0r0_465_win_debug_patched.7z download the debug plugin from here]. To use it, extract the 7z file, rename the extracted folder to &amp;lt;code&amp;gt;Flash-Debug&amp;lt;/code&amp;gt;, and place the folder in Flashpoint's &amp;lt;code&amp;gt;FPSoftware\BrowserPlugins&amp;lt;/code&amp;gt; folder. Then open &amp;lt;code&amp;gt;FPSoftware\fpnavigator-portable\FPNavigator.ini&amp;lt;/code&amp;gt; and change the following line:&lt;br /&gt;
 FP_FLASH_PATH=%FP_BROWSER_PLUGINS%\Flash&lt;br /&gt;
To this:&lt;br /&gt;
 FP_FLASH_PATH=%FP_BROWSER_PLUGINS%\Flash-Debug&lt;br /&gt;
Flashpoint Navigator will now load the debug plugin instead of the standard plugin. To undo this, just revert the same line of &amp;lt;code&amp;gt;FPNavigator.ini&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Using the Flashlog ===&lt;br /&gt;
&lt;br /&gt;
The debug player is also useful for advanced tasks such as reimplementing game servers or recreating missing XML assets, where you need more info about what data the game expects to receive. Often in these cases, the info you need will be contained in a warning message, not an error. To see log/warning messages and more detailed errors, you will need to activate the flashlog by creating an &amp;lt;code&amp;gt;mm.cfg&amp;lt;/code&amp;gt; file in your user folder:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Create a plain text file called &amp;lt;code&amp;gt;mm.cfg&amp;lt;/code&amp;gt; (''not'' .txt; if you are using Notepad, save as &amp;quot;All Files&amp;quot;, not &amp;quot;Text Documents&amp;quot;) with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ErrorReportingEnable=1&lt;br /&gt;
TraceOutputFileEnable=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Place the file in your &amp;lt;code&amp;gt;%USERPROFILE%&amp;lt;/code&amp;gt; folder. (To open this folder, press Windows-R to open the Run box, then paste in &amp;lt;code&amp;gt;%USERPROFILE%&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
When you run an SWF, a file called &amp;lt;code&amp;gt;flashlog.txt&amp;lt;/code&amp;gt; will appear in this folder: &amp;lt;code&amp;gt;%APPDATA%\Macromedia\Flash Player\Logs&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Open the file to see any errors, warnings and log messages that the SWF generated so far. Messages will be cleared each time you close and reopen the Flash projector (or reload the page in FPNavigator).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using HTML Embed Codes ==&lt;br /&gt;
&lt;br /&gt;
Some Flash games require browser-only features such as JavaScript. For example, ''Zuma'' (in Flashpoint) constantly opens blank browser windows when loaded in the Flash projector because it is trying to call JavaScript functions. For games like this, you'll need to use FPNavigator instead of one of the Flash projectors. You'll need to embed the game in an HTML. Follow the steps below:&lt;br /&gt;
# Navigate to the webpage containing the game.&lt;br /&gt;
# Right-click the page and click &amp;quot;Inspect Element.&amp;quot; (Don't right-click on the game, right-click somewhere else on the page.)&lt;br /&gt;
# Click the arrow button on the top-left of the Developer Tools window. Then click the Flash game. This should highlight the game's embed code.&lt;br /&gt;
#* If you're using FPNavigator, it may not allow you to select the Flash game. Instead, you'll need to click a nearby element, then move your selection slightly to highlight the actual embed code.&lt;br /&gt;
# Press Ctrl-C to copy the highlighted embed code.&lt;br /&gt;
# Open a text editor such as Notepad and paste the embed code into it.&lt;br /&gt;
# Save the file as an HTML (&amp;quot;all files&amp;quot; on the Notepad dropdown menu).&lt;br /&gt;
# Place the HTML and the SWF it references at their original URLs in the content folder.&lt;br /&gt;
# Change the game's Application Path to &amp;lt;code&amp;gt;FPSoftware\fpnavigator-portable\FPNavigator.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Change the game's Launch Command to a URL matching the path to the HTML inside the content folder. Continue with the curation as normal.&lt;br /&gt;
&lt;br /&gt;
=== Fixing the Embed Code ===&lt;br /&gt;
&lt;br /&gt;
Embedding a Flash game in an HTML can occasionally cause problems with the game that did not previously exist. If a 3D game you are curating suddenly stops working when embedded in an HTML, or strange visual glitches appear in the game, you likely need to fix your embed code. Fortunately, the fix is very simple. &lt;br /&gt;
&lt;br /&gt;
When you are embedding a Flash game in an HTML file, you should nearly always use the &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; wmode parameter. For example, let's say you noticed visual glitches in a game with the following embed code. Changing &amp;lt;code&amp;gt;transparent&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; would fix the problem.&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;900&amp;quot; height=&amp;quot;450&amp;quot; wmode=&amp;quot;transparent&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, if you are curating a 3D Flash game using an HTML embed, you should ''always'' use the &amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; wmode, because Stage3D (Flash's 3D engine) only works reliably in this mode. For example, if you had a 3D Flash game with this embed code:&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
You would change it to something like this:&lt;br /&gt;
 &amp;lt;embed src=&amp;quot;someGame.swf&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot; wmode=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating New Embed Codes ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, only an SWF is available, and there is no webpage to copy an embed code from. If the SWF does not run correctly in the Flash projector, you will need to create an embed code from scratch. Start with the template embed code below:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;object type=&amp;quot;application/x-shockwave-flash&amp;quot; data=&amp;quot;example.swf&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;480&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;always&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allowfullscreeninteractive&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;allownetworking&amp;quot; value=&amp;quot;all&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;direct&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open the SWF in [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler]. Click the &amp;quot;header&amp;quot; section in the tree view on the left. Next to &amp;quot;Display rect&amp;quot;, you will see the width and height of the SWF indicated in twips and pixels. Ignore twips; pixels are what you are looking for. In the example below, the width of the SWF is 640 pixels and the height is 480 pixels.&lt;br /&gt;
&lt;br /&gt;
[[File:JPEXSViewHeader.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Next, replace the width and height in the template embed code with the SWF width and height that you just found. Finally, replace &amp;lt;code&amp;gt;example.swf&amp;lt;/code&amp;gt; with the filename of your SWF.&lt;br /&gt;
&lt;br /&gt;
You can also add or change additional properties of the embed as desired. [https://web.archive.org/web/20230208173231/https://helpx.adobe.com/flash/kb/flash-object-embed-tag-attributes.html See this page] for a reference of those properties.&lt;br /&gt;
&lt;br /&gt;
Once you have your embed code, complete the curation by following [[#Using HTML Embed Codes|steps 5-9 above]].&lt;br /&gt;
&lt;br /&gt;
== Finding SWZ Assets ==&lt;br /&gt;
&lt;br /&gt;
Some games require Adobe Flex libraries, which are files with a &amp;lt;code&amp;gt;.swz&amp;lt;/code&amp;gt; extension. These are particularly difficult to deal with for several reasons:&lt;br /&gt;
* Sometimes a game may request these assets from &amp;lt;code&amp;gt;fpdownload.adobe.com&amp;lt;/code&amp;gt;, while other times it may request them from the game's own website.&lt;br /&gt;
* By default, Flash Player caches SWZ files on your computer at the following location: &amp;lt;code&amp;gt;%APPDATA%\Adobe\Flash Player\AssetCache\&amp;lt;/code&amp;gt;. '''If Flash Player already has an SWZ file cached, the file will never be requested again, so you may not even know that a game requires SWZ files!'''&lt;br /&gt;
&lt;br /&gt;
To make sure that Flash Player's cache doesn't hide a game's dependency on SWZs, you will need to change your Flash Player settings:&lt;br /&gt;
# Visit the [http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html Flash Player Settings Manager's Global Storage Settings panel] using a Flash-enabled browser such as [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player].&lt;br /&gt;
# Uncheck the box for &amp;quot;Store common Flash components to reduce download times&amp;quot;.&lt;br /&gt;
With the SWZ cache deactivated, you will now see requests for .swz files whenever a game requires them.&lt;br /&gt;
In the future, we plan to set this option automatically in Flashpoint Infinity to alleviate issues with cached SWZ files.&lt;br /&gt;
&lt;br /&gt;
In Flashpoint Infinity, all known SWZ files are already included in the &amp;lt;code&amp;gt;fpdownload.adobe.com&amp;lt;/code&amp;gt; folder inside &amp;lt;code&amp;gt;Legacy\htdocs&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If a game uses a SWZ, always make sure to include it within the game's content folders. Not everyone will have SWZs already in their cache, and titles will fail to work without them.&lt;br /&gt;
&lt;br /&gt;
An example of a game that uses SWZ files is ''Josefina's Fiesta''. If you run the game (after changing the setting mentioned earlier) you should see some requests for SWZ files on Flashpoint Launcher's Logs tab. And you can see more clues that the game requires SWZ files when opening its main SWF file in JPEXS Flash Decompiler:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the tree on the left, expand &amp;quot;others&amp;quot; and click the &amp;quot;Metadata&amp;quot; item. You'll see some XML data, including:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dc:title&amp;gt;Adobe Flex 4 Application&amp;lt;/dc:title&amp;gt;&lt;br /&gt;
&amp;lt;dc:description&amp;gt;http://www.adobe.com/products/flex&amp;lt;/dc:description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Both of these lines indicate that the game was made in Adobe Flex, and thus may require Flex libraries (SWZs).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you search the game's ActionScript for &amp;lt;code&amp;gt;.swz&amp;lt;/code&amp;gt; using the &amp;quot;Text Search&amp;quot; dialog, some results will appear. This should include the full SWZ URLs, which you can download manually if you want.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Decrypting MochiCrypt ==&lt;br /&gt;
&lt;br /&gt;
Mochi Media was a game publishing network that allowed developers to conceal their games in an encryption called MochiCrypt. Unfortunately, since Mochi Media is long defunct, some games encrypted using MochiCrypt will no longer work, often displaying nothing but a blank screen. &lt;br /&gt;
As an example, ''Wizard Smash'' is a Ninja Kiwi game encrypted using MochiCrypt that suffers the fate of a blank screen, both on the Ninja Kiwi website and in Flashpoint Infinity. To get the game working in Flashpoint, we'll have to extract the decrypted, playable SWF from memory, using either [https://www.free-decompiler.com/flash/ JPEXS Free Flash Decompiler] or [https://github.com/whc2001/MochiCryptUnpacker MochiCryptUnpacker].&lt;br /&gt;
&lt;br /&gt;
=== Using JPEXS ===&lt;br /&gt;
[[File:JPEXSFlashFilesInMemory.png|thumb|An example list of SWFs found by searching in memory using JPEXS. In this case, the largest SWF isn't actually the decrypted game, but the second-largest works in Flashpoint as a MochiCrypt-free version of the game.]]&lt;br /&gt;
# Install and open JPEXS.&lt;br /&gt;
# Open the game's SWF in Flash Player.&lt;br /&gt;
# Go to the Tools tab and click &amp;quot;Search SWFs in memory&amp;quot;.&lt;br /&gt;
# Search through the list on the left for Flash Player, likely named &amp;lt;code&amp;gt;flashplayer_32_sa.exe&amp;lt;/code&amp;gt;. Use the &amp;quot;Refresh list&amp;quot; button if you need to.&lt;br /&gt;
# Click &amp;quot;Select&amp;quot; to search through Flash Player's memory to find SWFs. You'll see lots of SWFs on the right, but the ones with game content are typically the ones with the larger file sizes.&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; to save a SWF, then run it in Flashpoint Infinity using the original SWF's Launch Command. If it doesn't work, try another SWF found in Flash Player's memory until you find the decrypted, playable SWF.&lt;br /&gt;
&lt;br /&gt;
=== Using MochiCryptUnpacker ===&lt;br /&gt;
&lt;br /&gt;
# Find the [https://github.com/whc2001/MochiCryptUnpacker/releases Releases section] to the right of MochiCryptUnpacker's GitHub page.&lt;br /&gt;
# Click on v1.0, then Release.zip to download the program.&lt;br /&gt;
# Extract the ZIP and open MochiCryptUnpacker.exe.&lt;br /&gt;
# Drag the game's SWF over the MochiCryptUnpacker window. The decrypted SWF will appear in the same folder as the original SWF.&lt;br /&gt;
# Run the decrypted SWF in Flashpoint Infinity using the original SWF's Launch Command.&lt;br /&gt;
&lt;br /&gt;
Regardless of which method you use, once you find the decrypted version of the SWF and ensure that it works properly, you should do two more things: '''change the game's Status to Hacked''' with an explanation in the curation's Notes field that the SWF was decrypted, and '''make sure to include the original, encrypted SWF''' as part of your curation. Afterwards, continue with your curation as usual.&lt;br /&gt;
&lt;br /&gt;
== Site-specific Guides ==&lt;br /&gt;
&lt;br /&gt;
Some Flash game sites pose a particular challenge to curate. This section provides tips on how to curate from those sites.&lt;br /&gt;
&lt;br /&gt;
=== Candystand ===&lt;br /&gt;
&lt;br /&gt;
Candystand.com no longer exists, having been absorbed into Publishers Clearing House in 2016. Additionally, many Candystand Flash games use a special preloader animation called a &amp;quot;stinger&amp;quot; and will refuse to load without it. If you are trying to curate a Candystand game, but it requests a &amp;lt;code&amp;gt;stinger.swf&amp;lt;/code&amp;gt; file and gets stuck on a blank screen, you will need to find the game's original webpage on Candystand via the Wayback Machine. The easiest way to do that is to [http://candyblog.squarespace.com visit the old Candystand blog], which includes the original release announcements for many of the Candystand Flash games. Use the Search bar on the right of the page to search for the game's title. We'll use Fashion Star as an example - [http://candyblog.squarespace.com/candystand-blog/2008/12/18/new-release-fashion-star.html here is the original release announcement from 2008]. The release announcement will include a link to the game - copy that link and paste it into the [http://web.archive.org/ Wayback Machine] to find the archived game page. Choose a capture from around 2010 - later captures tend not to work correctly. &lt;br /&gt;
&lt;br /&gt;
Once you've found a capture of the game's original webpage, you'll need to find the main SWF file's URL (if you don't have it already), as well as the stinger file's URL. The easiest way is to load the page in a Flash-enabled browser such as [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player] and use the Network tab of the browser's Developer Tools. Open the Developer Tools, type &amp;lt;code&amp;gt;swf&amp;lt;/code&amp;gt; into the &amp;quot;filter URLs&amp;quot; box, and look for the main game SWF and one with &amp;quot;stinger&amp;quot; in the name. Download these SWFs and place them in your curation as normal. Continuing the Fashion Star example, if you visit [https://web.archive.org/web/20100127003811/http://www.candystand.com/play/fashion-star this capture] in a Flash-enabled browser, you'll see it load these URLs:&lt;br /&gt;
 https://web.archive.org/web/20100125191002/http://www.candystand.com/games/fashion_star/fashion_star.swf&lt;br /&gt;
 https://web.archive.org/web/20100125183943/http://www.candystand.com/games/stingers_as3/stinger_mouse.swf&lt;br /&gt;
&lt;br /&gt;
If you have trouble loading a Candystand page in a Flash-enabled browser, another option is to right-click the page and click &amp;quot;View Page Source&amp;quot;. Then you can search for &amp;quot;.swf&amp;quot; to find the SWF URLs manually. Note that the page source uses relative URLs, so you will need to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.candystand.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to the beginning of each URL in order to download it.&lt;br /&gt;
&lt;br /&gt;
Now that you have the SWFs downloaded, you'll need to add a bit of code to your launch command to tell the game to load the stinger file. Add &amp;lt;code&amp;gt;?swlist=&amp;lt;/code&amp;gt; to the end of the launch command, followed by the URL of the stinger, minus the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.candystand.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; part. For example, you would add &amp;lt;code&amp;gt;?swlist=/games/stingers_as3/stinger_mouse.swf&amp;lt;/code&amp;gt; to the end of the launch command for Fashion Star. The final launch command would be: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://www.candystand.com/games/fashion_star/fashion_star.swf?swlist=/games/stingers_as3/stinger_mouse.swf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it! Your Candystand game curation should load fine now!&lt;br /&gt;
&lt;br /&gt;
=== Miniclip ===&lt;br /&gt;
&lt;br /&gt;
Some Miniclip games cannot be loaded directly and must instead be loaded via the Miniclip Gameloader. If you have a Miniclip SWF that shows a blank screen and refuses to load, follow the steps below to load it using the Miniclip Gameloader:&lt;br /&gt;
# [http://infinity.unstable.life/Flashpoint/Legacy/htdocs/www.miniclip.com/gameloader.swf Download the Miniclip Gameloader from Flashpoint's servers] (or grab it from Flashpoint Ultimate if you prefer).&lt;br /&gt;
# Place the file inside a &amp;lt;code&amp;gt;www.miniclip.com&amp;lt;/code&amp;gt; folder within your curation.&lt;br /&gt;
# Create a launch command pointing to the game's main SWF. &lt;br /&gt;
#* Here is an example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.miniclip.com/games/game-name/en/gamename.swf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Between &amp;lt;code&amp;gt;www.miniclip.com/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;games/&amp;lt;/code&amp;gt;, insert &amp;lt;code&amp;gt;gameloader.swf?fn=/&amp;lt;/code&amp;gt;. This new launch command will launch the Miniclip Gameloader and tell it to load the main game SWF.&lt;br /&gt;
#* The example launch command from above would now be: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.miniclip.com/gameloader.swf?fn=/games/game-name/en/gamename.swf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
With any luck, the game will now load and play properly!&lt;br /&gt;
&lt;br /&gt;
=== 4399.com ===&lt;br /&gt;
&lt;br /&gt;
4399.com is a Chinese webgame site with many rare and interesting games. But because of China's new &amp;quot;anti-indulgence&amp;quot; gaming regulations, the games have become more difficult to access. You will need a Flash-enabled browser with uBlock Origin installed. We suggest following the steps below:&lt;br /&gt;
# Download and install [https://archive.org/details/basilisk-portable-with-flash Basilisk Portable With Flash Player] if you don't have it yet.&lt;br /&gt;
# Within Basilisk, [https://github.com/gorhill/uBlock-for-firefox-legacy/releases/ visit the uBlock Origin for Firefox Legacy GitHub page].&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;.xpi&amp;lt;/code&amp;gt; link under the &amp;quot;Assets&amp;quot; heading to download and install the add-on. Or if the link does not appear, copy the following link and paste it into Basilisk's address bar: &amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;https://github.com/gorhill/uBlock-for-firefox-legacy/releases/download/firefox-legacy-1.16.4.30/uBlock0_1.16.4.30.firefox-legacy.xpi&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Once the add-on is installed, click its icon in Basilisk's toolbar, then click the &amp;quot;Open the dashboard&amp;quot; icon (the small icon with 3 lines).&lt;br /&gt;
# On the dashboard page, click the &amp;quot;Filter Lists&amp;quot; tab. Scroll down and expand the &amp;quot;Annoyances&amp;quot; category, then check the box next to &amp;quot;uBlock Filters - Annoyances&amp;quot;.&lt;br /&gt;
# Click the &amp;quot;Update Now&amp;quot; button. 4399.com Flash games should play fine now!&lt;br /&gt;
&lt;br /&gt;
=== Spil Games ===&lt;br /&gt;
&lt;br /&gt;
Spil Games is a publisher which owns many webgame sites, the most popular of which are Agame.com, A10.com, and GirlsGoGames.com. Many games published by them use their API, which makes them somewhat tricky to curate. You'll know a game uses it when it fails to load and you have a 404 for &amp;lt;code&amp;gt;http://api.configar.org/crossdomain.xml&amp;lt;/code&amp;gt; in your Logs. Do not use MAD4FP to curate these games, it will not download the required files and may add them to your cache, making curating more difficult. To curate a game that requires the Spil Games API, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# [https://download.unstable.life/upload/wiki/configar-spilcloudpack.zip Download this zip file] of the universal files needed for all games using the API. Add the contents of all three folders into your curation's Content folder.&lt;br /&gt;
# Run the game again and check your Logs. You'll have a 404 for &amp;lt;code&amp;gt;http://api.configar.org/cf/pb/1/settings/0/0/&amp;lt;/code&amp;gt; followed by a long string of letters and numbers. Copy that URL and download it using cURLsDownloader. If it asks you if you want to rename the file, enter 1 to rename it. After adding this file to your curation, run the game again.&lt;br /&gt;
# You will most likely have multiple 404s in the Logs, copy the URLs for any &amp;lt;code&amp;gt;crossdomain.xml&amp;lt;/code&amp;gt; files and &amp;lt;code&amp;gt;.swf&amp;lt;/code&amp;gt; files. Download these using cURLsDownloader and add them to your Content folder. You may need to repeat this step multiple times until they have all been downloaded.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the game may work without all of these files, however they will likely be missing images, logos, or language translations. Since we want the games to be as complete as possible, all of these files need to be added to the curation.&lt;br /&gt;
&lt;br /&gt;
=== DeviantArt ===&lt;br /&gt;
&lt;br /&gt;
DeviantArt is a fairly straight forward site to curate from as all games tend to be single asset with no sitelocks in place or other dependencies, but unless the deviation is directly available for download, the only way to acquire the game files is through the Wayback Machine and knowledge of old URL structures.&lt;br /&gt;
&lt;br /&gt;
==== Identifying Flash Deviations ==== &lt;br /&gt;
&lt;br /&gt;
Due to DeviantArt being primarily an art site, and the fact that after the flash kill switch there is no clear indication of what deviation may have originally been a flash file or not, it is often difficult to find flash deviations in a gallery unless the preview made by the author indicates so. Other ways of identifying flash deviations are:&lt;br /&gt;
* Links to other flash portals like Newgrounds, Kongregate, or a dedicated site for the content, or links to file hosting services like Google Drive or Dropbox. The deviation sometimes only serves to advertise the game on those platforms. Additionally, DeviantArt allows uploading archive files, which could mean that games could be included in those.&lt;br /&gt;
* Tags like &amp;quot;swf&amp;quot;,  &amp;quot;flash&amp;quot;, &amp;quot;game&amp;quot;.&lt;br /&gt;
* Word of mouth from the comments.&lt;br /&gt;
* The &amp;lt;code&amp;gt;originalFile&amp;lt;/code&amp;gt; object which is only accessibly in the page source as part of other JSON data. This object holds information like the file dimensions, size, and the type (extension), but only the file dimensions and file size are displayed normally. This tends to be the best way to determine whether an undownloadble deviation is or is not a swf. Not to be confused with the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; object accessible via the DeviantArt API, which has the metadata for the deviation preview, not the original file.&lt;br /&gt;
: ''Note: There are very rare cases where the author has changed the content of the deviation to another file, in this case &amp;lt;code&amp;gt;originalFile&amp;lt;/code&amp;gt; will reflect that change. This content change was not done retroactively by DeviantArt on the flash kill switch, it must be done manually by the author, which makes it exceedingly unlikely to happen.''&lt;br /&gt;
&lt;br /&gt;
Currently unviable ways to identify flash deviations:&lt;br /&gt;
* DeviantArt categories were a mechanism for authors to categorize deviations in a hierarchy of ranging specificity. One of these categories was &amp;lt;code&amp;gt;flash&amp;lt;/code&amp;gt; and its corresponding categories &amp;lt;code&amp;gt;flash/animations&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flash/interactive&amp;lt;/code&amp;gt;, etc., these are still accessible through the DeviantArt API, but all category information always returns an empty string as of version &amp;lt;code&amp;gt;20240701&amp;lt;/code&amp;gt; despite no mentions of such in the changelog. Using earlier versions of the API does not fix this. It is unknown whether this is a bug or whether they are being phased out.&lt;br /&gt;
&lt;br /&gt;
==== Finding Deviations on the Wayback Machine ====&lt;br /&gt;
&lt;br /&gt;
Modern DeviantArt URLs have the format: &amp;lt;code&amp;gt;www.deviantart.com/artist/art/deviation&amp;lt;/code&amp;gt;. However, the old URL structure before [https://www.deviantart.com/danlev/journal/New-Profile-URLs-751783111 ~2018] was &amp;lt;code&amp;gt;www.artist.deviantart.com/art/deviation&amp;lt;/code&amp;gt;. The old URL structure is far more likely to have Wayback Machine snapshots with working deviations, but there still is a short period after the change to the new URL structure and before flash deviations became unplayable where it is still possible to find working flash deviations.&lt;br /&gt;
: ''Note: While on the Wayback Machine, it is a good idea to check snapshots of the artist's account and gallery for the possibility of deviations which have been deleted. When doing so, beware that DeviantArt likes to include tracking information in links which can throw off Wayback Machine and show that no snapshots are available for the URL. These are appended onto the URL and begin with a question mark &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; as a query string. This information should be deleted in order to receive the accurate snapshots for a page.''&lt;br /&gt;
&lt;br /&gt;
If there are snapshots for a deviation, then there are two possibilities:&lt;br /&gt;
# The swf loads and is directly playable in the browser through ruffle. In this case the swf can easily be downloaded via ruffle, or by inspecting the page source or the network tab inside the browser.&lt;br /&gt;
# Ruffle fails loading the swf or a DeviantArt page displaying an account named &amp;quot;Sandbox&amp;quot; is embedded in the browser in place of it. In this case a different snapshot should be checked because it may have a working link.&lt;br /&gt;
&lt;br /&gt;
If all snapshots fail loading or return the Sandbox account, the link to a working swf can be acquired from the live web with information from the snapshot. '''This trick only works if the account or deviation haven't been deleted'''.&lt;br /&gt;
# Inspect the page source or the network tab for the link to the &amp;lt;code&amp;gt;https://www.deviantart.com/sandbox&amp;lt;/code&amp;gt; which is embedded in the page in place of the main deviation's content. This is usually contained in an &amp;lt;code&amp;gt;iframe&amp;lt;/code&amp;gt; with the class &amp;lt;code&amp;gt;flashtime&amp;lt;/code&amp;gt;. The sandbox link usually follows the format &amp;lt;code&amp;gt;http://sandbox.deviantart.com/?fileheight=&amp;lt;N&amp;gt;&amp;amp;filewidth=&amp;lt;N&amp;gt;&amp;amp;filename=&amp;lt;NAME&amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;&amp;lt;N&amp;gt;&amp;lt;/code&amp;gt; is a number representing the dimensions of the file and &amp;lt;code&amp;gt;&amp;lt;NAME&amp;gt;&amp;lt;/code&amp;gt; is a seemingly arbitrary string or a modified version of the deviation's &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt;. The string after the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter is a relative URL structure to the swf.&lt;br /&gt;
# Copy the string after the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter (without the equals sign &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;) and decode it if it isn't already with an [https://www.url-encode-decode.com/ online tool]. You will know if the string is not decoded if it contains percent signs &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; followed by two hexadecimal digits, which is how unsafe ASCII characters that are part of the URL get encoded. Once the string is decoded it will resemble a relative URL path. The good qualified filename may look like this &amp;lt;code&amp;gt;fs71:f/2013/272/f/d/fdad4bb4dbb5b168bc015abe5e6c7e10-d67l7zn.swf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fs71:f/2013/272/f/d/my_deviation_by_cooldeviant-d67l7zn.swf&amp;lt;/code&amp;gt;, but the only important part is what comes after the first slash &amp;lt;code&amp;gt;2013/272/f/d/fdad4bb4dbb5b168bc015abe5e6c7e10-d67l7zn.swf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;f/2013/272/f/d/my_deviation_by_cooldeviant-d67l7zn.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Append the string achieved in the last step to &amp;lt;code&amp;gt;https://orig07.deviantart.net/fs71:f/&amp;lt;/code&amp;gt;, go to the achieved URL on the live web and the swf file should get downloaded.&lt;br /&gt;
&lt;br /&gt;
: ''Note: If there are multiple snapshots for a deviation which all fail to load and the method above does not work for a given snapshot, other snapshots should be checked because it has been observed that on rare occasions the sandbox link embedded in the deviation has changed with time, which sometimes leads to the previous links becoming invalid. This is presumed to be because of DeviantArt moving things around on the backend, though there isn't any information to confirm this.''&lt;br /&gt;
&lt;br /&gt;
: ''Note: When checking snapshots of the modern URL structure, it is possible you will come across sandbox links of the format &amp;lt;code&amp;gt;wixmp:f/9dab1276-30ec-4ed6-a098-bfc5b0b35b63/d8dslbo-9d4a777d-d830-4d4a-bcb2-c8b63ed3c8c1.swf&amp;lt;/code&amp;gt;. It is not yet known if or how these can be used to reverse engineer a game. These do not seem to invalidate the old links however, so those should still be checked if they exist.''&lt;br /&gt;
&lt;br /&gt;
The orig links adhere to the following format with the following properties:&lt;br /&gt;
&amp;lt;pre&amp;gt;https://orig&amp;lt;00-15&amp;gt;.deviantart.net/&amp;lt;*&amp;gt;/f/&amp;lt;year&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: ''Note: You may find orig links which use &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;:f&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;/f&amp;lt;/code&amp;gt;. These two formats are interchangeable and will both always work.''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;00-15&amp;gt;&amp;lt;/code&amp;gt; is any character sequence ranging from &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;. Any will work, but the leading zero must be preserved. A singular digit such as &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; will not work, &amp;lt;code&amp;gt;07&amp;lt;/code&amp;gt; does however work.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;*&amp;gt;&amp;lt;/code&amp;gt; is any sequence of 4 characters, presumably representing the file server where the deviation is stored. However, any sequence of 4 characters will work, regardless of link, although you will usually only find &amp;lt;code&amp;gt;fs70&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fs71&amp;lt;/code&amp;gt;. You may sometimes find &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;s3orig&amp;lt;/code&amp;gt; in place of this, in which case you can safely replace it with one of the aforementioned strings or with any other 4 character string.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; can take multiple formats which may or may not be mutually exclusive:&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;-d&amp;lt;base36ID&amp;gt;.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;.swf&amp;lt;/code&amp;gt;&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: An unknown 32 character UUID which seems to only be acquirable through orig links from Wayback Machine snapshots. There are very rare cases where this has changed between snapshots together with the &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt;, which cause the previous links to become invalid.&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: A persistent 6 character identifier encoded in base36 which has remained constant across time.&lt;br /&gt;
:; &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:: A slightly modified version of the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; value available in the deviation page source. It includes the aforementioned &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt; id after the last underscore character &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;. The modification required is changing the underscore &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; between the &amp;lt;code&amp;gt;&amp;lt;base36ID&amp;gt;&amp;lt;/code&amp;gt; and the rest of the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; to a hyphen &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;.&lt;br /&gt;
:: '''Note: On some occasions the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; in the filename will heavily differ from the actual &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; available on the deviation's page. It is unknown why this happens and in this case the only way to get the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; is to wildly guess or to have a Wayback snapshot which reveals it.'''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt; is a hexadecimal digit (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;). These two digits always represent the first and respectively the second characters of the aforementioned unknown &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; are numbers representing the year in which the deviation was uploaded and respectively the day of the year in which the deviation was uploaded (e.g. April 20th is the 110th day of the year, meaning the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; would be &amp;lt;code&amp;gt;110&amp;lt;/code&amp;gt;). However, the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; may not always match the actual day of the year in which the deviation released, it may either be off by one or possible more, or it may be seemingly completely random. Regardless, there always seems to be a consistent offset between the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt; of deviations made by the same creator, give or take a couple days, meaning that it can be estimated using snapshots of other, unrelated deviations. There are very rare cases where this has changed between snapshots together with the &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;, causing previous links to become invalid.&lt;br /&gt;
&lt;br /&gt;
Knowing that some parts of the orig links are constant or interchangeable, the format can be simpified to:&lt;br /&gt;
&amp;lt;pre&amp;gt;https://orig07.deviantart.net/fs70/f/&amp;lt;year&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;hexDigit&amp;gt;/&amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brute Forcing Orig Links ====&lt;br /&gt;
&lt;br /&gt;
It has been proven that it is possible to acquire the swf of a deviation which is undownloadable and has no Wayback Machine snapshots by brute forcing the &amp;lt;code&amp;gt;&amp;lt;modifiedPrettyName&amp;gt;&amp;lt;/code&amp;gt; format of orig links as long as the deviation has not been deleted. The two &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt;s must be brute forced, as without a Wayback Machine snapshot the &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt; can't be acquired and therefore neither can the &amp;lt;code&amp;gt;&amp;lt;hexDigit&amp;gt;&amp;lt;/code&amp;gt;s (if there was a snapshot with a valid orig link, there would be no need to brute force it anyway). One difficult part is guessing the &amp;lt;code&amp;gt;&amp;lt;day&amp;gt;&amp;lt;/code&amp;gt;, which usually matches the day of the year, give or take a few days, or it may be unrelated to the upload date and require Wayback Machine snapshots of other deviations in order to approximate it. In either case, adjacent days will likely need to be bruteforced as well. Even when brute forcing the days, it is not guaranteed that the deviation's valid orig link will match the &amp;lt;code&amp;gt;prettyName&amp;lt;/code&amp;gt; as shown in the deviation's page source, it may be a variation of it, making it harder if not impossible to guess, or it may use the &amp;lt;code&amp;gt;&amp;lt;UUID&amp;gt;&amp;lt;/code&amp;gt; format, making it a lost cause, though which format of filename any given deviation uses seems to be completely random and is not known except by trying.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flash&amp;diff=11318</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flash&amp;diff=11318"/>
		<updated>2026-01-19T20:03:16Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;Flash is one of the main technologies and the reason Flashpoint was created in the first place.  === Resources === [https://web.archive.org/web/20210609225053/https://www.adobe.com/content/dam/acom/en/devnet/pdf/swf-file-format-spec.pdf Flash format specification]  [https://web.archive.org/web/20201130032433/https://www.adobe.com/content/dam/acom/en/devnet/pdf/avm2overview.pdf AVM2 Specification]  [https://jindrapetrik.github.io/as3_pcode_instructions.en.html AVM2 Instru...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flash is one of the main technologies and the reason Flashpoint was created in the first place.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
[https://web.archive.org/web/20210609225053/https://www.adobe.com/content/dam/acom/en/devnet/pdf/swf-file-format-spec.pdf Flash format specification]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20201130032433/https://www.adobe.com/content/dam/acom/en/devnet/pdf/avm2overview.pdf AVM2 Specification]&lt;br /&gt;
&lt;br /&gt;
[https://jindrapetrik.github.io/as3_pcode_instructions.en.html AVM2 Instruction Set]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jindrapetrik/jpexs-decompiler JPEXS Decompiler]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[Flash Curation]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Wrapper&amp;diff=11316</id>
		<title>Shockwave Wrapper</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Wrapper&amp;diff=11316"/>
		<updated>2026-01-16T21:47:23Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Shockwave Wrapper is a a ''Shockwave Movie t''o allow for the playback of Shockwave Movies in Projector mode. The way a wrapper works is that the movie executes some kind of code before it loads the intended movie.N&lt;br /&gt;
&lt;br /&gt;
There is no list of what games uses a wrapper or not. But there is an archive of wrapper maintained on this Github repo '''[https://github.com/tomysshadow/Shockwave-Wrappers/tree/master Shockwave-Wrappers.]'''&lt;br /&gt;
&lt;br /&gt;
=== Sample wrapper code ===&lt;br /&gt;
Below is a example of simple wrapper in Lingo-script.&lt;br /&gt;
&lt;br /&gt;
The equivalent launch arguments with SPR would be `--setTheRunMode &amp;quot;Authoro&amp;quot; --forceTheExitLock 0`. Note that `bugfixShockwave3DBadDriverList` is built into SPR and is not needed anymore.&amp;lt;blockquote&amp;gt;on exitFrame me&lt;br /&gt;
&lt;br /&gt;
setTheRunMode(&amp;quot;Author&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
forceTheExitLock(0)&lt;br /&gt;
&lt;br /&gt;
bugfixShockwave3DBadDriverList()&lt;br /&gt;
&lt;br /&gt;
go(1, &amp;quot;age_of_speed.dcr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11315</id>
		<title>Shockwave Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11315"/>
		<updated>2026-01-16T21:34:12Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains information and tips on curating Shockwave games.&lt;br /&gt;
&lt;br /&gt;
Please watch [https://youtu.be/QA9fbL4YplM this video] before curating Shockwave games. The video is long, but information packed! Hopefully it isn't too confusing - if you have any questions please ask in #shockwave on the Flashpoint Discord server. The link in the next section of this page has the files in the video.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Here are some important notes and updates, since the video is slightly out of date and some information is no longer correct.&lt;br /&gt;
&lt;br /&gt;
* ''Never submit a game if it has a Script Error!'' If there is a Script Error dialog there is likely something wrong with your curation. Please ask other Shockwave curators to help you.&lt;br /&gt;
* The structure of Flashpoint has changed since the tutorial video was created. The SPR versions are located at FPSoftware/Shockwave, while game files reside in the same location as the other technologies.&lt;br /&gt;
* If the game runs too fast on modern devices, use OldCPUSimulator. Link to the video tutorial: https://www.youtube.com/watch?v=WBbQ_afDAE0&lt;br /&gt;
* Contrary to what the video says, it is now possible to curate Shockwave games in-browser. This works the same way as Flash in-browser does. Use this as a last resort option if you cannot get a game to work in SPR.&lt;br /&gt;
&lt;br /&gt;
The SPR arguments explained in the video are also briefly outlined in [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint SPR's README] for your reference. See also the internal wiki page [[Shockwave Projector Redirector (SPR)]]&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
Here is the download link for the files mentioned in the video.&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/open?id=1mHgmWcZ7ayLedwFygtVao4AHJlFm-urG&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Here are Application Paths/Launch Commands you can copy-paste into Flashpoint for each of the publishers mentioned in the video - be sure to substitute in your game's name/URL. Robotduck's includes the security code that is required.&lt;br /&gt;
&lt;br /&gt;
===Ezone===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ851\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.ezone.com/games/space/wrapper_ezo.dcr&amp;quot; --do &amp;quot;member('gameName').text = 'space.dcr'&amp;quot; --forceTheExitLock 0&lt;br /&gt;
&lt;br /&gt;
===Robotduck===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ101\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/bprally/en/game.dcr&amp;quot; --setTheRunMode &amp;quot;Plugin&amp;quot; --disableGoToNetPage --do &amp;quot;forget(timeout('securityCheck Timeout'))&amp;quot; --do &amp;quot;go(2)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Silent Bay Studios===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Rayamedia===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_rayamedia.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== More Tips ==&lt;br /&gt;
&lt;br /&gt;
Here are some additional tips for solving problems you may encounter when curating. If you forget how to use an [[Shockwave Projector Redirector (SPR)|SPR]] argument, be sure to consult [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint the SPR Readme]!&lt;br /&gt;
&lt;br /&gt;
If you get a Script Error, the first thing you should do is edit SPR.exe to SPRD.exe in your Application Path to see a more detailed error message. See the [[#Debugging|Debugging]] section below for more information about SPRD.&lt;br /&gt;
&lt;br /&gt;
If the error message you see in SPRD is &amp;quot;handler not defined&amp;quot;, try adding &amp;lt;code&amp;gt;--preload #movie&amp;lt;/code&amp;gt; to the end of your Launch Command.&lt;br /&gt;
&lt;br /&gt;
If a game requests a &amp;quot;dummy.cct&amp;quot; or &amp;quot;empty.cct&amp;quot; file, but the file doesn't exist on the website where the game is hosted, you may use [[Media:Blankccts.zip|one of these CCT files]] in its place.&lt;br /&gt;
&lt;br /&gt;
Some Shockwave files use the .fgd extension. These files can be run directly in the Projector as if they were .dcr files.&lt;br /&gt;
&lt;br /&gt;
If a game opens in SPR but exits immediately, it might be exiting once it reaches the last frame instead of looping properly. To fix this problem, add the string below to the end of the launch command.&lt;br /&gt;
 --newScriptText &amp;quot;on new me&amp;quot; --newScriptText &amp;quot;set flt to new(timeout(), '_fixLoop', the maxInteger, #timeoutHandler, me)&amp;quot; --newScriptText &amp;quot;set the persistent of flt to 1&amp;quot; --newScriptText &amp;quot;return(me)&amp;quot; --newScriptText &amp;quot;on timeoutHandler me&amp;quot; --newScriptText &amp;quot;on exitFrame me&amp;quot; --newScriptText &amp;quot;if the frame &amp;gt;= the lastFrame then go(1)&amp;quot; --newScriptType #parent --do &amp;quot;global _fl&amp;quot; --do &amp;quot;set _fl to new(script(newScriptMember))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To make a game close with the X button but not the escape key, add this to the end of the launch command:&lt;br /&gt;
 --newScriptText &amp;quot;on closeRequest&amp;quot; --newScriptText &amp;quot;if keyPressed(53) = 0 then quit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game moves to a corner of the screen instead of staying in the center, add this to the end of the launch command:&lt;br /&gt;
 --do &amp;quot;set the centerStage to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game window opens at the wrong size, you can combine the previous command with one that sets the window resolution to the size of the original Shockwave embed. For example, this command would be suitable for a game originally embedded at 800x600 pixels:&lt;br /&gt;
 --do &amp;quot;set the rect of the stage to rect(0, 0, 800, 600)&amp;quot; --do &amp;quot;set the centerStage to 1&amp;quot; --do &amp;quot;set the fixStageSize to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wrappers ====&lt;br /&gt;
Games curated before the SPR-era used [[Shockwave Wrapper|Shockwave Wrappers]] to make sure the game loaded properly. This should not be necessary for most part anymore.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Flashpoint also includes a special debug version of SPR, appropriately called ''SPRD''. To use SPRD, just replace &amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt; in a Shockwave game's Application Path. If you get a Script Error when running a game, this is the first thing you should do! SPRD shows more detailed error messages, which can be very helpful for debugging games.&lt;br /&gt;
&lt;br /&gt;
SPRD also provides a console window. Here's how to use the console:&lt;br /&gt;
* Type &amp;lt;code&amp;gt;put variableName&amp;lt;/code&amp;gt; to print the value of &amp;lt;code&amp;gt;variableName&amp;lt;/code&amp;gt; to the console.&lt;br /&gt;
* Type any Lingo command to run it inside the game.&lt;br /&gt;
&lt;br /&gt;
Finally, SPRD introduces two exclusive arguments to help you debug games:&lt;br /&gt;
* &amp;lt;code&amp;gt;--trace 1&amp;lt;/code&amp;gt;: Lingo tracing messages will appear in SPRD's console.&lt;br /&gt;
* &amp;lt;code&amp;gt;--traceLogFile &amp;quot;messages.txt&amp;quot;&amp;lt;/code&amp;gt;: Lingo tracing messages will be logged to the file &amp;lt;code&amp;gt;messages.txt&amp;lt;/code&amp;gt;. You may specify a different filename if you prefer.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]] - list of xtras used in Flashpoint&lt;br /&gt;
&lt;br /&gt;
[[DirectorCastRipper]] - export assets from Shockwave Movie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Wrapper&amp;diff=11314</id>
		<title>Shockwave Wrapper</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Wrapper&amp;diff=11314"/>
		<updated>2026-01-16T21:32:54Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;A Shockwave Wrapper is a a ''Shockwave Movie t''o allow for the playback of Shockwave Movies in Projector mode. The way a wrapper works is that the movie executes some kind of code before it loads the intended movie.  Wrappers were the main way of modifying and running code before Shockwave Projector Redirector (SPR) became a thing.   There is no list of what games uses a wrapper or not. But there is an archive of wrapper maintained on this Github repo '''[https://gi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Shockwave Wrapper is a a ''Shockwave Movie t''o allow for the playback of Shockwave Movies in Projector mode. The way a wrapper works is that the movie executes some kind of code before it loads the intended movie.&lt;br /&gt;
&lt;br /&gt;
Wrappers were the main way of modifying and running code before [[Shockwave Projector Redirector (SPR)]] became a thing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is no list of what games uses a wrapper or not. But there is an archive of wrapper maintained on this Github repo '''[https://github.com/tomysshadow/Shockwave-Wrappers/tree/master Shockwave-Wrappers.]'''&lt;br /&gt;
&lt;br /&gt;
=== Sample code ===&lt;br /&gt;
Below is a example of simple wrapper.&lt;br /&gt;
&lt;br /&gt;
The equivalent launch arguments with SPR would be `--setTheRunMode &amp;quot;Authoro&amp;quot; --forceTheExitLock 0`. Note that `bugfixShockwave3DBadDriverList` is built into SPR and is not needed anymore.&amp;lt;blockquote&amp;gt;on exitFrame me&lt;br /&gt;
&lt;br /&gt;
setTheRunMode(&amp;quot;Author&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
forceTheExitLock(0)&lt;br /&gt;
&lt;br /&gt;
bugfixShockwave3DBadDriverList()&lt;br /&gt;
&lt;br /&gt;
go(1, &amp;quot;age_of_speed.dcr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11313</id>
		<title>Shockwave Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11313"/>
		<updated>2026-01-16T21:28:10Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains information and tips on curating Shockwave games.&lt;br /&gt;
&lt;br /&gt;
Please watch [https://youtu.be/QA9fbL4YplM this video] before curating Shockwave games. The video is long, but information packed! Hopefully it isn't too confusing - if you have any questions please ask in #shockwave on the Flashpoint Discord server. The link in the next section of this page has the files in the video.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Here are some important notes and updates, since the video is slightly out of date and some information is no longer correct.&lt;br /&gt;
&lt;br /&gt;
* ''Never submit a game if it has a Script Error!'' If there is a Script Error dialog there is likely something wrong with your curation. Please ask other Shockwave curators to help you.&lt;br /&gt;
* The structure of Flashpoint has changed since the tutorial video was created. The SPR versions are located at FPSoftware/Shockwave, while game files reside in the same location as the other technologies.&lt;br /&gt;
* If the game runs too fast on modern devices, use OldCPUSimulator. Link to the video tutorial: https://www.youtube.com/watch?v=WBbQ_afDAE0&lt;br /&gt;
* Contrary to what the video says, it is now possible to curate Shockwave games in-browser. This works the same way as Flash in-browser does. Use this as a last resort option if you cannot get a game to work in SPR.&lt;br /&gt;
&lt;br /&gt;
The SPR arguments explained in the video are also briefly outlined in [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint SPR's README] for your reference.&lt;br /&gt;
&lt;br /&gt;
See also [[Shockwave Projector Redirector (SPR)]].&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
Here is the download link for the files mentioned in the video.&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/open?id=1mHgmWcZ7ayLedwFygtVao4AHJlFm-urG&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Here are Application Paths/Launch Commands you can copy-paste into Flashpoint for each of the publishers mentioned in the video - be sure to substitute in your game's name/URL. Robotduck's includes the security code that is required.&lt;br /&gt;
&lt;br /&gt;
===Ezone===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ851\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.ezone.com/games/space/wrapper_ezo.dcr&amp;quot; --do &amp;quot;member('gameName').text = 'space.dcr'&amp;quot; --forceTheExitLock 0&lt;br /&gt;
&lt;br /&gt;
===Robotduck===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ101\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/bprally/en/game.dcr&amp;quot; --setTheRunMode &amp;quot;Plugin&amp;quot; --disableGoToNetPage --do &amp;quot;forget(timeout('securityCheck Timeout'))&amp;quot; --do &amp;quot;go(2)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Silent Bay Studios===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Rayamedia===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_rayamedia.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== More Tips ==&lt;br /&gt;
&lt;br /&gt;
Here are some additional tips for solving problems you may encounter when curating. If you forget how to use an [[Shockwave Projector Redirector (SPR)|SPR]] argument, be sure to consult [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint the SPR Readme]!&lt;br /&gt;
&lt;br /&gt;
If you get a Script Error, the first thing you should do is edit SPR.exe to SPRD.exe in your Application Path to see a more detailed error message. See the [[#Debugging|Debugging]] section below for more information about SPRD.&lt;br /&gt;
&lt;br /&gt;
If the error message you see in SPRD is &amp;quot;handler not defined&amp;quot;, try adding &amp;lt;code&amp;gt;--preload #movie&amp;lt;/code&amp;gt; to the end of your Launch Command.&lt;br /&gt;
&lt;br /&gt;
If a game requests a &amp;quot;dummy.cct&amp;quot; or &amp;quot;empty.cct&amp;quot; file, but the file doesn't exist on the website where the game is hosted, you may use [[Media:Blankccts.zip|one of these CCT files]] in its place.&lt;br /&gt;
&lt;br /&gt;
Some Shockwave files use the .fgd extension. These files can be run directly in the Projector as if they were .dcr files.&lt;br /&gt;
&lt;br /&gt;
If a game opens in SPR but exits immediately, it might be exiting once it reaches the last frame instead of looping properly. To fix this problem, add the string below to the end of the launch command.&lt;br /&gt;
 --newScriptText &amp;quot;on new me&amp;quot; --newScriptText &amp;quot;set flt to new(timeout(), '_fixLoop', the maxInteger, #timeoutHandler, me)&amp;quot; --newScriptText &amp;quot;set the persistent of flt to 1&amp;quot; --newScriptText &amp;quot;return(me)&amp;quot; --newScriptText &amp;quot;on timeoutHandler me&amp;quot; --newScriptText &amp;quot;on exitFrame me&amp;quot; --newScriptText &amp;quot;if the frame &amp;gt;= the lastFrame then go(1)&amp;quot; --newScriptType #parent --do &amp;quot;global _fl&amp;quot; --do &amp;quot;set _fl to new(script(newScriptMember))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To make a game close with the X button but not the escape key, add this to the end of the launch command:&lt;br /&gt;
 --newScriptText &amp;quot;on closeRequest&amp;quot; --newScriptText &amp;quot;if keyPressed(53) = 0 then quit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game moves to a corner of the screen instead of staying in the center, add this to the end of the launch command:&lt;br /&gt;
 --do &amp;quot;set the centerStage to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game window opens at the wrong size, you can combine the previous command with one that sets the window resolution to the size of the original Shockwave embed. For example, this command would be suitable for a game originally embedded at 800x600 pixels:&lt;br /&gt;
 --do &amp;quot;set the rect of the stage to rect(0, 0, 800, 600)&amp;quot; --do &amp;quot;set the centerStage to 1&amp;quot; --do &amp;quot;set the fixStageSize to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Flashpoint also includes a special debug version of SPR, appropriately called ''SPRD''. To use SPRD, just replace &amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt; in a Shockwave game's Application Path. If you get a Script Error when running a game, this is the first thing you should do! SPRD shows more detailed error messages, which can be very helpful for debugging games.&lt;br /&gt;
&lt;br /&gt;
SPRD also provides a console window. Here's how to use the console:&lt;br /&gt;
* Type &amp;lt;code&amp;gt;put variableName&amp;lt;/code&amp;gt; to print the value of &amp;lt;code&amp;gt;variableName&amp;lt;/code&amp;gt; to the console.&lt;br /&gt;
* Type any Lingo command to run it inside the game.&lt;br /&gt;
&lt;br /&gt;
Finally, SPRD introduces two exclusive arguments to help you debug games:&lt;br /&gt;
* &amp;lt;code&amp;gt;--trace 1&amp;lt;/code&amp;gt;: Lingo tracing messages will appear in SPRD's console.&lt;br /&gt;
* &amp;lt;code&amp;gt;--traceLogFile &amp;quot;messages.txt&amp;quot;&amp;lt;/code&amp;gt;: Lingo tracing messages will be logged to the file &amp;lt;code&amp;gt;messages.txt&amp;lt;/code&amp;gt;. You may specify a different filename if you prefer.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]] - list of xtras used in Flashpoint&lt;br /&gt;
&lt;br /&gt;
[[DirectorCastRipper]] - export assets from Shockwave Movie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11311</id>
		<title>Shockwave Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11311"/>
		<updated>2026-01-15T23:26:17Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains information and tips on curating Shockwave games.&lt;br /&gt;
&lt;br /&gt;
Please watch [https://youtu.be/QA9fbL4YplM this video] before curating Shockwave games. The video is long, but information packed! Hopefully it isn't too confusing - if you have any questions please ask in #shockwave on the Flashpoint Discord server. The link in the next section of this page has the files in the video.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Here are some important notes and updates, since the video is slightly out of date and some information is no longer correct.&lt;br /&gt;
&lt;br /&gt;
* ''Never submit a game if it has a Script Error!'' If there is a Script Error dialog there is likely something wrong with your curation. Please ask other Shockwave curators to help you.&lt;br /&gt;
* The structure of Flashpoint has changed since the tutorial video was created. The SPR versions are located at FPSoftware/Shockwave, while game files reside in the same location as the other technologies.&lt;br /&gt;
* If the game runs too fast on modern devices, use OldCPUSimulator. Link to the video tutorial: https://www.youtube.com/watch?v=WBbQ_afDAE0&lt;br /&gt;
* Contrary to what the video says, it is now possible to curate Shockwave games in-browser. This works the same way as Flash in-browser does. Use this as a last resort option if you cannot get a game to work in SPR.&lt;br /&gt;
&lt;br /&gt;
The SPR arguments explained in the video are also briefly outlined in [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint SPR's README] for your reference.&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
Here is the download link for the files mentioned in the video.&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/open?id=1mHgmWcZ7ayLedwFygtVao4AHJlFm-urG&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Here are Application Paths/Launch Commands you can copy-paste into Flashpoint for each of the publishers mentioned in the video - be sure to substitute in your game's name/URL. Robotduck's includes the security code that is required.&lt;br /&gt;
&lt;br /&gt;
===Ezone===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ851\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.ezone.com/games/space/wrapper_ezo.dcr&amp;quot; --do &amp;quot;member('gameName').text = 'space.dcr'&amp;quot; --forceTheExitLock 0&lt;br /&gt;
&lt;br /&gt;
===Robotduck===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ101\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/bprally/en/game.dcr&amp;quot; --setTheRunMode &amp;quot;Plugin&amp;quot; --disableGoToNetPage --do &amp;quot;forget(timeout('securityCheck Timeout'))&amp;quot; --do &amp;quot;go(2)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Silent Bay Studios===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Rayamedia===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_rayamedia.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== More Tips ==&lt;br /&gt;
&lt;br /&gt;
Here are some additional tips for solving problems you may encounter when curating. If you forget how to use an [[Shockwave Projector Redirector (SPR)|SPR]] argument, be sure to consult [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint the SPR Readme]!&lt;br /&gt;
&lt;br /&gt;
If you get a Script Error, the first thing you should do is edit SPR.exe to SPRD.exe in your Application Path to see a more detailed error message. See the [[#Debugging|Debugging]] section below for more information about SPRD.&lt;br /&gt;
&lt;br /&gt;
If the error message you see in SPRD is &amp;quot;handler not defined&amp;quot;, try adding &amp;lt;code&amp;gt;--preload #movie&amp;lt;/code&amp;gt; to the end of your Launch Command.&lt;br /&gt;
&lt;br /&gt;
If a game requests a &amp;quot;dummy.cct&amp;quot; or &amp;quot;empty.cct&amp;quot; file, but the file doesn't exist on the website where the game is hosted, you may use [[Media:Blankccts.zip|one of these CCT files]] in its place.&lt;br /&gt;
&lt;br /&gt;
Some Shockwave files use the .fgd extension. These files can be run directly in the Projector as if they were .dcr files.&lt;br /&gt;
&lt;br /&gt;
If a game opens in SPR but exits immediately, it might be exiting once it reaches the last frame instead of looping properly. To fix this problem, add the string below to the end of the launch command.&lt;br /&gt;
 --newScriptText &amp;quot;on new me&amp;quot; --newScriptText &amp;quot;set flt to new(timeout(), '_fixLoop', the maxInteger, #timeoutHandler, me)&amp;quot; --newScriptText &amp;quot;set the persistent of flt to 1&amp;quot; --newScriptText &amp;quot;return(me)&amp;quot; --newScriptText &amp;quot;on timeoutHandler me&amp;quot; --newScriptText &amp;quot;on exitFrame me&amp;quot; --newScriptText &amp;quot;if the frame &amp;gt;= the lastFrame then go(1)&amp;quot; --newScriptType #parent --do &amp;quot;global _fl&amp;quot; --do &amp;quot;set _fl to new(script(newScriptMember))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To make a game close with the X button but not the escape key, add this to the end of the launch command:&lt;br /&gt;
 --newScriptText &amp;quot;on closeRequest&amp;quot; --newScriptText &amp;quot;if keyPressed(53) = 0 then quit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game moves to a corner of the screen instead of staying in the center, add this to the end of the launch command:&lt;br /&gt;
 --do &amp;quot;set the centerStage to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game window opens at the wrong size, you can combine the previous command with one that sets the window resolution to the size of the original Shockwave embed. For example, this command would be suitable for a game originally embedded at 800x600 pixels:&lt;br /&gt;
 --do &amp;quot;set the rect of the stage to rect(0, 0, 800, 600)&amp;quot; --do &amp;quot;set the centerStage to 1&amp;quot; --do &amp;quot;set the fixStageSize to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Flashpoint also includes a special debug version of SPR, appropriately called ''SPRD''. To use SPRD, just replace &amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt; in a Shockwave game's Application Path. If you get a Script Error when running a game, this is the first thing you should do! SPRD shows more detailed error messages, which can be very helpful for debugging games.&lt;br /&gt;
&lt;br /&gt;
SPRD also provides a console window. Here's how to use the console:&lt;br /&gt;
* Type &amp;lt;code&amp;gt;put variableName&amp;lt;/code&amp;gt; to print the value of &amp;lt;code&amp;gt;variableName&amp;lt;/code&amp;gt; to the console.&lt;br /&gt;
* Type any Lingo command to run it inside the game.&lt;br /&gt;
&lt;br /&gt;
Finally, SPRD introduces two exclusive arguments to help you debug games:&lt;br /&gt;
* &amp;lt;code&amp;gt;--trace 1&amp;lt;/code&amp;gt;: Lingo tracing messages will appear in SPRD's console.&lt;br /&gt;
* &amp;lt;code&amp;gt;--traceLogFile &amp;quot;messages.txt&amp;quot;&amp;lt;/code&amp;gt;: Lingo tracing messages will be logged to the file &amp;lt;code&amp;gt;messages.txt&amp;lt;/code&amp;gt;. You may specify a different filename if you prefer.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]] - list of xtras used in Flashpoint&lt;br /&gt;
&lt;br /&gt;
[[DirectorCastRipper]] - export assets from Shockwave Movie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Director_Cast_Ripper&amp;diff=11310</id>
		<title>Director Cast Ripper</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Director_Cast_Ripper&amp;diff=11310"/>
		<updated>2026-01-15T23:25:09Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;'''[https://github.com/n0samu/DirectorCastRipper DirectorCastRipper]'''is a tool that exports assets and information from Macromedia / Adobe Director movies and casts.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[https://github.com/n0samu/DirectorCastRipper DirectorCastRipper]'''is a tool that exports assets and information from Macromedia / Adobe Director movies and casts.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11309</id>
		<title>LeechProtectionRemovalHelp</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11309"/>
		<updated>2026-01-15T21:37:08Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra LeechProtectionRemovalHelp] is Macromedia Shockwave Director Xtra that allows allows for the archival of Shockwave Movies by setting, forcing, disabling or bugfixing properties which will stay set, forced, disabled or bugfixed even&lt;br /&gt;
after going to other movies. This means we can execute Lingo code for director movies with parameters passed to the Shockwave Projector Redirector (SPR).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=LeechProtectionRemoval&amp;diff=11308</id>
		<title>LeechProtectionRemoval</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=LeechProtectionRemoval&amp;diff=11308"/>
		<updated>2026-01-15T21:36:53Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Coldice2 moved page LeechProtectionRemoval to LeechProtectionRemovalHelp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[LeechProtectionRemovalHelp]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11307</id>
		<title>LeechProtectionRemovalHelp</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11307"/>
		<updated>2026-01-15T21:36:53Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Coldice2 moved page LeechProtectionRemoval to LeechProtectionRemovalHelp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra LeechProtectionRemoval] is Macromedia Shockwave Director Xtra that allows allows for the archival of Shockwave Movies by setting, forcing, disabling or bugfixing properties which will stay set, forced, disabled or bugfixed even&lt;br /&gt;
after going to other movies. This means we can execute Lingo code for director movies with parameters passed to the Shockwave Projector Redirector (SPR).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Projector_Redirector_(SPR)&amp;diff=11306</id>
		<title>Shockwave Projector Redirector (SPR)</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Projector_Redirector_(SPR)&amp;diff=11306"/>
		<updated>2026-01-15T21:36:33Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint Shockwave Projector Redirector (SPR)] allows Shockwave Movies to be played via Flashpoint Redirector.&lt;br /&gt;
&lt;br /&gt;
SPR projects within Flashpoint Software Directory are organized by Director version:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ851&amp;lt;/code&amp;gt;  → Director 8.5&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ9&amp;lt;/code&amp;gt;    → Director MX (9)&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ101&amp;lt;/code&amp;gt;  → Director MX 2004 (10)&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ1103&amp;lt;/code&amp;gt; → Director 11&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ1159&amp;lt;/code&amp;gt; → Director 11.5&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ12&amp;lt;/code&amp;gt;   → Director 1&lt;br /&gt;
&lt;br /&gt;
==Editing SPR==&lt;br /&gt;
All SPR development and edits are done in the PJ101 version, that is the Directory MX 2004 version. It is used because it provides features older versions need.&lt;br /&gt;
&lt;br /&gt;
The other versions are never directly edited. They are copied from the PJ101 version and upgraded / downgraded as necesary&lt;br /&gt;
&lt;br /&gt;
==Build Instructions==&lt;br /&gt;
Readme generated by ChatGPT 5.2 - 15.1.2026. Based on notes from Discord-chat in 2020.&lt;br /&gt;
&lt;br /&gt;
The guide belows describes how to build '''SPR (Shockwave Projector Redirector)''' and its dependency '''LeechProtectionRemovalHelp Xtra''' across all supported Shockwave / Macromedia Director versions.&lt;br /&gt;
&lt;br /&gt;
SPR is only built once with PJ101 (Director 10), then downgraded or upgraded to produce compatible projectors for all supported versions.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
&lt;br /&gt;
====Software====&lt;br /&gt;
You must have the following installed:&lt;br /&gt;
&lt;br /&gt;
*'''Macromedia Director 8.5'''&lt;br /&gt;
*'''Macromedia Director MX''' (also known as '''Director 9''')&lt;br /&gt;
*'''Macromedia Director MX 2004''' (also known as '''Director 10''')&lt;br /&gt;
*'''Macromedia Director 11'''&lt;br /&gt;
*'''Macromedia Director 11.5'''&lt;br /&gt;
*'''Adobe Director 12'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*Director '''11 and 11.5 cannot be installed on the same system'''.&lt;br /&gt;
**Common setup is have two different machines, one with Director 8.5, 9, 10.1.1, 11, 12 and another machine with 11.5. Suggested operating system is Windows XP.&lt;br /&gt;
*All versions must be updated to their '''latest patches'''.&lt;br /&gt;
&lt;br /&gt;
====Required Installed Versions (After Updating)====&lt;br /&gt;
You should end up with the following exact versions:&lt;br /&gt;
&lt;br /&gt;
*Director 8.5.1.102&lt;br /&gt;
*Director 9.0.0.383&lt;br /&gt;
*Director 10.1.1.16&lt;br /&gt;
*Director 11.0.3.466 (Hotfix 3)&lt;br /&gt;
*Director 11.5.9.629&lt;br /&gt;
*Director 12.0.0.111&lt;br /&gt;
&lt;br /&gt;
====Dependency: LeechProtectionRemovalHelp Xtra====&lt;br /&gt;
SPR depends on the '''[[LeechProtectionRemoval|LeechProtectionRemovalHelp]] Xtra'''.&lt;br /&gt;
&lt;br /&gt;
====Download====&lt;br /&gt;
https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*The Xtra is compatible with '''Director 8 through 12'''.&lt;br /&gt;
*The same file can be copied into every Director installation.&lt;br /&gt;
*The file must placed in the `Xtras`-folder inside the Macromedia Director installation directory.&lt;br /&gt;
&lt;br /&gt;
===Building in Director MX 2004 (PJ101)===&lt;br /&gt;
&lt;br /&gt;
====Build SPR.exe====&lt;br /&gt;
&lt;br /&gt;
#Open &amp;lt;code&amp;gt;PJ101/SPR.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;  → Produces &amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Build SPRD.exe (Debug)====&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save As&amp;lt;/code&amp;gt; → save as &amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt; (overwrite)&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish Settings&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Projector tab&lt;br /&gt;
#*Enable '''Display full script error text'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;  → Produces &amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Build SPRS.exe (Fullscreen)====&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save As&amp;lt;/code&amp;gt; → save as &amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt; (overwrite)&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish Settings&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Disable '''Display full script error text'''&lt;br /&gt;
#*Enable '''Full screen'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;  → Produces &amp;lt;code&amp;gt;SPRS.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*SPR automatically detects SPR / SPRD / SPRS mode via &amp;lt;code&amp;gt;applicationName&amp;lt;/code&amp;gt;.&lt;br /&gt;
*No manual code changes are needed for mode selection.&lt;br /&gt;
&lt;br /&gt;
==== Propagating Files to Other Versions ====&lt;br /&gt;
After finishing '''PJ101''':&lt;br /&gt;
&lt;br /&gt;
#Copy the following files into every other &amp;lt;code&amp;gt;PJ*&amp;lt;/code&amp;gt; folder:&lt;br /&gt;
#*&amp;lt;code&amp;gt;SPR.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#*&amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#*&amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#Overwrite existing files.&lt;br /&gt;
#Recommended: set PJ101 files to '''read-only''' to avoid accidental edits.&lt;br /&gt;
&lt;br /&gt;
===Building for Director 8.5 (PJ851)===&lt;br /&gt;
&lt;br /&gt;
====SPR and SPRD====&lt;br /&gt;
For each file (&amp;lt;code&amp;gt;SPR.dir&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
#Open the file in '''Director 8.5'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt; (downgrades the movie)&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Create Projector...&amp;lt;/code&amp;gt;&lt;br /&gt;
#Click '''Options...'''&lt;br /&gt;
#*Use the same settings as previously documented&lt;br /&gt;
#Select the &amp;lt;code&amp;gt;.dir&amp;lt;/code&amp;gt; file and click '''Create'''  → Produces &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SPRS (Fullscreen)====&lt;br /&gt;
&lt;br /&gt;
#Open &amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Create Projector...&amp;lt;/code&amp;gt;&lt;br /&gt;
#Change '''In a Window''' → '''Full Screen'''&lt;br /&gt;
#Create the projector&lt;br /&gt;
&lt;br /&gt;
===Building for Director MX (Director 9, PJ9)===&lt;br /&gt;
Repeat the '''exact same process as Director 8.5''', using '''Director MX (9)''' and the &amp;lt;code&amp;gt;PJ9&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
===Building for Director 11 (PJ1103)===&lt;br /&gt;
&lt;br /&gt;
#Copy PJ1103 files to the system with Director 11&lt;br /&gt;
#Open &amp;lt;code&amp;gt;SPR.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#Accept the '''Upgrade''' prompt&lt;br /&gt;
#*Choose '''Same location as original file'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repeat for:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cleanup:&lt;br /&gt;
&lt;br /&gt;
*Delete the automatically created &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt; folder in &amp;lt;code&amp;gt;PJ1103&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building for Director 11.5 (PJ1159)===&lt;br /&gt;
Same process as Director 11:&lt;br /&gt;
&lt;br /&gt;
#Open each &amp;lt;code&amp;gt;.dir&amp;lt;/code&amp;gt; file&lt;br /&gt;
#Upgrade (same location)&lt;br /&gt;
#&amp;lt;code&amp;gt;Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;Publish&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Delete the &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt; folder afterward.&lt;br /&gt;
&lt;br /&gt;
===Building for Director 12 (PJ12)===&lt;br /&gt;
Repeat the '''exact same process as Director 11.5''', using '''Adobe Director 12'''.&lt;br /&gt;
&lt;br /&gt;
===Final Output===&lt;br /&gt;
After completing all steps, each &amp;lt;code&amp;gt;PJ*&amp;lt;/code&amp;gt; folder will contain:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRS.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each projector is built for its corresponding Director version.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[[Shockwave Curation]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11305</id>
		<title>Shockwave Curation</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Curation&amp;diff=11305"/>
		<updated>2026-01-15T21:31:59Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains information and tips on curating Shockwave games.&lt;br /&gt;
&lt;br /&gt;
Please watch [https://youtu.be/QA9fbL4YplM this video] before curating Shockwave games. The video is long, but information packed! Hopefully it isn't too confusing - if you have any questions please ask in #shockwave on the Flashpoint Discord server. The link in the next section of this page has the files in the video.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Here are some important notes and updates, since the video is slightly out of date and some information is no longer correct.&lt;br /&gt;
&lt;br /&gt;
* ''Never submit a game if it has a Script Error!'' If there is a Script Error dialog there is likely something wrong with your curation. Please ask other Shockwave curators to help you.&lt;br /&gt;
* The structure of Flashpoint has changed since the tutorial video was created. The SPR versions are located at FPSoftware/Shockwave, while game files reside in the same location as the other technologies.&lt;br /&gt;
* If the game runs too fast on modern devices, use OldCPUSimulator. Link to the video tutorial: https://www.youtube.com/watch?v=WBbQ_afDAE0&lt;br /&gt;
* Contrary to what the video says, it is now possible to curate Shockwave games in-browser. This works the same way as Flash in-browser does. Use this as a last resort option if you cannot get a game to work in SPR.&lt;br /&gt;
&lt;br /&gt;
The SPR arguments explained in the video are also briefly outlined in [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint SPR's README] for your reference.&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
Here is the download link for the files mentioned in the video.&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/open?id=1mHgmWcZ7ayLedwFygtVao4AHJlFm-urG&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Here are Application Paths/Launch Commands you can copy-paste into Flashpoint for each of the publishers mentioned in the video - be sure to substitute in your game's name/URL. Robotduck's includes the security code that is required.&lt;br /&gt;
&lt;br /&gt;
===Ezone===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ851\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.ezone.com/games/space/wrapper_ezo.dcr&amp;quot; --do &amp;quot;member('gameName').text = 'space.dcr'&amp;quot; --forceTheExitLock 0&lt;br /&gt;
&lt;br /&gt;
===Robotduck===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ101\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/bprally/en/game.dcr&amp;quot; --setTheRunMode &amp;quot;Plugin&amp;quot; --disableGoToNetPage --do &amp;quot;forget(timeout('securityCheck Timeout'))&amp;quot; --do &amp;quot;go(2)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Silent Bay Studios===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Rayamedia===&lt;br /&gt;
&lt;br /&gt;
Application Path: &amp;lt;code&amp;gt;FPSoftware\Shockwave\PJ1159\SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch Command: &lt;br /&gt;
 &amp;quot;http://www.miniclip.com/games/game-name/en/wrapper_rayamedia.dcr&amp;quot; --do &amp;quot;member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== More Tips ==&lt;br /&gt;
&lt;br /&gt;
Here are some additional tips for solving problems you may encounter when curating. If you forget how to use an [[Shockwave Projector Redirector (SPR)|SPR]] argument, be sure to consult [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint the SPR Readme]!&lt;br /&gt;
&lt;br /&gt;
If you get a Script Error, the first thing you should do is edit SPR.exe to SPRD.exe in your Application Path to see a more detailed error message. See the [[#Debugging|Debugging]] section below for more information about SPRD.&lt;br /&gt;
&lt;br /&gt;
If the error message you see in SPRD is &amp;quot;handler not defined&amp;quot;, try adding &amp;lt;code&amp;gt;--preload #movie&amp;lt;/code&amp;gt; to the end of your Launch Command.&lt;br /&gt;
&lt;br /&gt;
If a game requests a &amp;quot;dummy.cct&amp;quot; or &amp;quot;empty.cct&amp;quot; file, but the file doesn't exist on the website where the game is hosted, you may use [[Media:Blankccts.zip|one of these CCT files]] in its place.&lt;br /&gt;
&lt;br /&gt;
Some Shockwave files use the .fgd extension. These files can be run directly in the Projector as if they were .dcr files.&lt;br /&gt;
&lt;br /&gt;
If a game opens in SPR but exits immediately, it might be exiting once it reaches the last frame instead of looping properly. To fix this problem, add the string below to the end of the launch command.&lt;br /&gt;
 --newScriptText &amp;quot;on new me&amp;quot; --newScriptText &amp;quot;set flt to new(timeout(), '_fixLoop', the maxInteger, #timeoutHandler, me)&amp;quot; --newScriptText &amp;quot;set the persistent of flt to 1&amp;quot; --newScriptText &amp;quot;return(me)&amp;quot; --newScriptText &amp;quot;on timeoutHandler me&amp;quot; --newScriptText &amp;quot;on exitFrame me&amp;quot; --newScriptText &amp;quot;if the frame &amp;gt;= the lastFrame then go(1)&amp;quot; --newScriptType #parent --do &amp;quot;global _fl&amp;quot; --do &amp;quot;set _fl to new(script(newScriptMember))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To make a game close with the X button but not the escape key, add this to the end of the launch command:&lt;br /&gt;
 --newScriptText &amp;quot;on closeRequest&amp;quot; --newScriptText &amp;quot;if keyPressed(53) = 0 then quit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game moves to a corner of the screen instead of staying in the center, add this to the end of the launch command:&lt;br /&gt;
 --do &amp;quot;set the centerStage to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If a game window opens at the wrong size, you can combine the previous command with one that sets the window resolution to the size of the original Shockwave embed. For example, this command would be suitable for a game originally embedded at 800x600 pixels:&lt;br /&gt;
 --do &amp;quot;set the rect of the stage to rect(0, 0, 800, 600)&amp;quot; --do &amp;quot;set the centerStage to 1&amp;quot; --do &amp;quot;set the fixStageSize to 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Flashpoint also includes a special debug version of SPR, appropriately called ''SPRD''. To use SPRD, just replace &amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt; in a Shockwave game's Application Path. If you get a Script Error when running a game, this is the first thing you should do! SPRD shows more detailed error messages, which can be very helpful for debugging games.&lt;br /&gt;
&lt;br /&gt;
SPRD also provides a console window. Here's how to use the console:&lt;br /&gt;
* Type &amp;lt;code&amp;gt;put variableName&amp;lt;/code&amp;gt; to print the value of &amp;lt;code&amp;gt;variableName&amp;lt;/code&amp;gt; to the console.&lt;br /&gt;
* Type any Lingo command to run it inside the game.&lt;br /&gt;
&lt;br /&gt;
Finally, SPRD introduces two exclusive arguments to help you debug games:&lt;br /&gt;
* &amp;lt;code&amp;gt;--trace 1&amp;lt;/code&amp;gt;: Lingo tracing messages will appear in SPRD's console.&lt;br /&gt;
* &amp;lt;code&amp;gt;--traceLogFile &amp;quot;messages.txt&amp;quot;&amp;lt;/code&amp;gt;: Lingo tracing messages will be logged to the file &amp;lt;code&amp;gt;messages.txt&amp;lt;/code&amp;gt;. You may specify a different filename if you prefer.&lt;br /&gt;
&lt;br /&gt;
'''See Also''': [[Shockwave Xtras]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Curation Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Projector_Redirector_(SPR)&amp;diff=11304</id>
		<title>Shockwave Projector Redirector (SPR)</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Projector_Redirector_(SPR)&amp;diff=11304"/>
		<updated>2026-01-15T21:31:30Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;[https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint Shockwave Projector Redirector (SPR)] allows Shockwave Movies to be played via Flashpoint Redirector.  SPR projects within Flashpoint Software Directory are organized by Director version:  *&amp;lt;code&amp;gt;PJ851&amp;lt;/code&amp;gt;  → Director 8.5 *&amp;lt;code&amp;gt;PJ9&amp;lt;/code&amp;gt;    → Director MX (9) *&amp;lt;code&amp;gt;PJ101&amp;lt;/code&amp;gt;  → Director MX 2004 (10) *&amp;lt;code&amp;gt;PJ1103&amp;lt;/code&amp;gt; → Director 11 *&amp;lt;code&amp;gt;PJ1159&amp;lt;/code&amp;gt; → Director 11.5...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint Shockwave Projector Redirector (SPR)] allows Shockwave Movies to be played via Flashpoint Redirector.&lt;br /&gt;
&lt;br /&gt;
SPR projects within Flashpoint Software Directory are organized by Director version:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ851&amp;lt;/code&amp;gt;  → Director 8.5&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ9&amp;lt;/code&amp;gt;    → Director MX (9)&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ101&amp;lt;/code&amp;gt;  → Director MX 2004 (10)&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ1103&amp;lt;/code&amp;gt; → Director 11&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ1159&amp;lt;/code&amp;gt; → Director 11.5&lt;br /&gt;
*&amp;lt;code&amp;gt;PJ12&amp;lt;/code&amp;gt;   → Director 1&lt;br /&gt;
&lt;br /&gt;
==Editing SPR==&lt;br /&gt;
All SPR development and edits are done in the PJ101 version, that is the Directory MX 2004 version. It is used because it provides features older versions need.&lt;br /&gt;
&lt;br /&gt;
The other versions are never directly edited. They are copied from the PJ101 version and upgraded / downgraded as necesary&lt;br /&gt;
&lt;br /&gt;
==Build Instructions==&lt;br /&gt;
Readme generated by ChatGPT 5.2 - 15.1.2026. Based on notes from Discord-chat in 2020.&lt;br /&gt;
&lt;br /&gt;
The guide belows describes how to build '''SPR (Shockwave Projector Redirector)''' and its dependency '''LeechProtectionRemovalHelp Xtra''' across all supported Shockwave / Macromedia Director versions.&lt;br /&gt;
&lt;br /&gt;
SPR is only built once with PJ101 (Director 10), then downgraded or upgraded to produce compatible projectors for all supported versions.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
&lt;br /&gt;
====Software====&lt;br /&gt;
You must have the following installed:&lt;br /&gt;
&lt;br /&gt;
*'''Macromedia Director 8.5'''&lt;br /&gt;
*'''Macromedia Director MX''' (also known as '''Director 9''')&lt;br /&gt;
*'''Macromedia Director MX 2004''' (also known as '''Director 10''')&lt;br /&gt;
*'''Macromedia Director 11'''&lt;br /&gt;
*'''Macromedia Director 11.5'''&lt;br /&gt;
*'''Adobe Director 12'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*Director '''11 and 11.5 cannot be installed on the same system'''.&lt;br /&gt;
**Common setup is have two different machines, one with Director 8.5, 9, 10.1.1, 11, 12 and another machine with 11.5. Suggested operating system is Windows XP.&lt;br /&gt;
*All versions must be updated to their '''latest patches'''.&lt;br /&gt;
&lt;br /&gt;
====Required Installed Versions (After Updating)====&lt;br /&gt;
You should end up with the following exact versions:&lt;br /&gt;
&lt;br /&gt;
*Director 8.5.1.102&lt;br /&gt;
*Director 9.0.0.383&lt;br /&gt;
*Director 10.1.1.16&lt;br /&gt;
*Director 11.0.3.466 (Hotfix 3)&lt;br /&gt;
*Director 11.5.9.629&lt;br /&gt;
*Director 12.0.0.111&lt;br /&gt;
&lt;br /&gt;
====Dependency: LeechProtectionRemovalHelp Xtra====&lt;br /&gt;
SPR depends on the '''LeechProtectionRemovalHelp Xtra'''.&lt;br /&gt;
&lt;br /&gt;
====Download====&lt;br /&gt;
https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*The Xtra is compatible with '''Director 8 through 12'''.&lt;br /&gt;
*The same file can be copied into every Director installation.&lt;br /&gt;
*The file must placed in the `Xtras`-folder inside the Macromedia Director installation directory.&lt;br /&gt;
&lt;br /&gt;
===Building in Director MX 2004 (PJ101)===&lt;br /&gt;
&lt;br /&gt;
====Build SPR.exe====&lt;br /&gt;
&lt;br /&gt;
#Open &amp;lt;code&amp;gt;PJ101/SPR.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;  → Produces &amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Build SPRD.exe (Debug)====&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save As&amp;lt;/code&amp;gt; → save as &amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt; (overwrite)&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish Settings&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Projector tab&lt;br /&gt;
#*Enable '''Display full script error text'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;  → Produces &amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Build SPRS.exe (Fullscreen)====&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save As&amp;lt;/code&amp;gt; → save as &amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt; (overwrite)&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish Settings&amp;lt;/code&amp;gt;&lt;br /&gt;
#*Disable '''Display full script error text'''&lt;br /&gt;
#*Enable '''Full screen'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;  → Produces &amp;lt;code&amp;gt;SPRS.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*SPR automatically detects SPR / SPRD / SPRS mode via &amp;lt;code&amp;gt;applicationName&amp;lt;/code&amp;gt;.&lt;br /&gt;
*No manual code changes are needed for mode selection.&lt;br /&gt;
&lt;br /&gt;
==== Propagating Files to Other Versions ====&lt;br /&gt;
After finishing '''PJ101''':&lt;br /&gt;
&lt;br /&gt;
#Copy the following files into every other &amp;lt;code&amp;gt;PJ*&amp;lt;/code&amp;gt; folder:&lt;br /&gt;
#*&amp;lt;code&amp;gt;SPR.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#*&amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#*&amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#Overwrite existing files.&lt;br /&gt;
#Recommended: set PJ101 files to '''read-only''' to avoid accidental edits.&lt;br /&gt;
&lt;br /&gt;
===Building for Director 8.5 (PJ851)===&lt;br /&gt;
&lt;br /&gt;
====SPR and SPRD====&lt;br /&gt;
For each file (&amp;lt;code&amp;gt;SPR.dir&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
#Open the file in '''Director 8.5'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt; (downgrades the movie)&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Create Projector...&amp;lt;/code&amp;gt;&lt;br /&gt;
#Click '''Options...'''&lt;br /&gt;
#*Use the same settings as previously documented&lt;br /&gt;
#Select the &amp;lt;code&amp;gt;.dir&amp;lt;/code&amp;gt; file and click '''Create'''  → Produces &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SPRS (Fullscreen)====&lt;br /&gt;
&lt;br /&gt;
#Open &amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Create Projector...&amp;lt;/code&amp;gt;&lt;br /&gt;
#Change '''In a Window''' → '''Full Screen'''&lt;br /&gt;
#Create the projector&lt;br /&gt;
&lt;br /&gt;
===Building for Director MX (Director 9, PJ9)===&lt;br /&gt;
Repeat the '''exact same process as Director 8.5''', using '''Director MX (9)''' and the &amp;lt;code&amp;gt;PJ9&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
===Building for Director 11 (PJ1103)===&lt;br /&gt;
&lt;br /&gt;
#Copy PJ1103 files to the system with Director 11&lt;br /&gt;
#Open &amp;lt;code&amp;gt;SPR.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
#Accept the '''Upgrade''' prompt&lt;br /&gt;
#*Choose '''Same location as original file'''&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;File &amp;gt; Publish&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repeat for:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRD.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRS.dir&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cleanup:&lt;br /&gt;
&lt;br /&gt;
*Delete the automatically created &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt; folder in &amp;lt;code&amp;gt;PJ1103&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Building for Director 11.5 (PJ1159)===&lt;br /&gt;
Same process as Director 11:&lt;br /&gt;
&lt;br /&gt;
#Open each &amp;lt;code&amp;gt;.dir&amp;lt;/code&amp;gt; file&lt;br /&gt;
#Upgrade (same location)&lt;br /&gt;
#&amp;lt;code&amp;gt;Save and Compact&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;Publish&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Delete the &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt; folder afterward.&lt;br /&gt;
&lt;br /&gt;
===Building for Director 12 (PJ12)===&lt;br /&gt;
Repeat the '''exact same process as Director 11.5''', using '''Adobe Director 12'''.&lt;br /&gt;
&lt;br /&gt;
===Final Output===&lt;br /&gt;
After completing all steps, each &amp;lt;code&amp;gt;PJ*&amp;lt;/code&amp;gt; folder will contain:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SPR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRD.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SPRS.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each projector is built for its corresponding Director version.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[[Shockwave Curation]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11303</id>
		<title>LeechProtectionRemovalHelp</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11303"/>
		<updated>2026-01-15T21:17:56Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra LeechProtectionRemoval] is Macromedia Shockwave Director Xtra that allows allows for the archival of Shockwave Movies by setting, forcing, disabling or bugfixing properties which will stay set, forced, disabled or bugfixed even&lt;br /&gt;
after going to other movies. This means we can execute Lingo code for director movies with parameters passed to the Shockwave Projector Redirector (SPR).&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Shockwave_Xtras&amp;diff=11302</id>
		<title>Shockwave Xtras</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Shockwave_Xtras&amp;diff=11302"/>
		<updated>2026-01-15T21:16:27Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all of the Shockwave Xtras added to Flashpoint. Each projector and plugin version has its own set of Xtras, listed below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 8.5.1''':&lt;br /&gt;
&lt;br /&gt;
*budapi.x32&lt;br /&gt;
*beatnik.x32&lt;br /&gt;
*DirectMediaXtra.x32&lt;br /&gt;
*DireCtrl.x32&lt;br /&gt;
*DmPack1.x32&lt;br /&gt;
*DmXtremePack.x32&lt;br /&gt;
*Enhancer.x32&lt;br /&gt;
*EnhancerP.x32&lt;br /&gt;
*Groove.x32 &lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*MagicRes120.x32&lt;br /&gt;
*NCPmetagoo.x32&lt;br /&gt;
*PMLite.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
*Shockwave Export Xtra.x32&lt;br /&gt;
*Shockwave Import Xtra.x32&lt;br /&gt;
*Shockwave Transport Xtra.x32&lt;br /&gt;
*Simple Star Mixer.x32&lt;br /&gt;
*ValidateKeyXtra.x32 (hacked)&lt;br /&gt;
*wdeadd.x32&lt;br /&gt;
*wded2opt.x32&lt;br /&gt;
*wdedis.x32&lt;br /&gt;
*wdeopt.x32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 9.0.0''':&lt;br /&gt;
&lt;br /&gt;
*budapi.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*OpenURL.x32&lt;br /&gt;
*propsave.x32&lt;br /&gt;
*WebXtra.x32&lt;br /&gt;
*kewlone2.x32 (hacked)&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 10.1.1''':&lt;br /&gt;
&lt;br /&gt;
*3ddplay.x32&lt;br /&gt;
*asFFT.x32&lt;br /&gt;
*budapi.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
*DIRECTIMAGE.x32&lt;br /&gt;
*DIRECTOS.x32&lt;br /&gt;
*DMChangeres.x32&lt;br /&gt;
*DmXtremePack.x32&lt;br /&gt;
*DrawXtra.x32&lt;br /&gt;
*Enhancer.x32&lt;br /&gt;
*FILEXTRA4.x32&lt;br /&gt;
*Font Asset.x32&lt;br /&gt;
*Havok.x32 &lt;br /&gt;
*LeechProtectionRemovalHelp.x32 &lt;br /&gt;
*MagicRes120.x32&lt;br /&gt;
*MoveCursor.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*PMatic.x32&lt;br /&gt;
*propsave.x32&lt;br /&gt;
*RavImageExport.x32&lt;br /&gt;
*ravJoystick.x32&lt;br /&gt;
*skyxtra1.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 11.0.3''':&lt;br /&gt;
*awaDragAndDrop.x32&lt;br /&gt;
*awaFile.x32&lt;br /&gt;
*awaOSUtil.x32&lt;br /&gt;
*awaShockwave.x32&lt;br /&gt;
*baMoveCursor.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 11.5.9''':&lt;br /&gt;
&lt;br /&gt;
*baMoveCursor.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
*Enhancer.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Projector 12''':&lt;br /&gt;
*baMoveCursor.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
*Havok.x32&lt;br /&gt;
*LeechProtectionRemovalHelp.x32&lt;br /&gt;
*Multiusr.x32&lt;br /&gt;
*Shockwave 3D Asset.x32 (hacked)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shockwave 10.4.1''':&lt;br /&gt;
* MoveCursor.x32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shockwave 12.3.5''':&lt;br /&gt;
* baMoveCursor.x32&lt;br /&gt;
*BudMenu.x32&lt;br /&gt;
* vList.x32&lt;br /&gt;
* vListAuthor.x32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
*3ddplay.x32 requires d3drm.dll, which was added to the main PJ101 folder.&lt;br /&gt;
*beatnik.x32 requires additional resource files, which were added to &amp;quot;download\BeatnikInc\BeatnikXtra&amp;quot; in the Xtras folder.&lt;br /&gt;
*Shockwave 3D Asset.x32 was hacked to fix the Shockwave 3D Bad Driver List Bug. See this page for more info: https://gaming.stackexchange.com/questions/339173/how-can-i-play-dcr-shockwave-games&lt;br /&gt;
*ValidateKeyXtra.x32 and kewlone2.x32 were hacked to activate locked features in certain Shockwave games.&lt;br /&gt;
&lt;br /&gt;
== Default Xtras ==&lt;br /&gt;
&lt;br /&gt;
Below is a list of the first-party Xtras created by Macromedia and Adobe. Most of these are found in a default Director installation; the rest can be found in Director-related products such as Shockwave Player or the Shockwave Multiuser Server. &lt;br /&gt;
&lt;br /&gt;
The list does not yet include all Xtras from all Director versions. Please add to the list if you find any that are missing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;max-height: 80vh; min-height: 10em; overflow-y: auto&amp;quot;&amp;gt;&lt;br /&gt;
3DAuth.x32&lt;br /&gt;
ActiveX.x32&lt;br /&gt;
Actor Control.x32&lt;br /&gt;
ActXPriv.x32&lt;br /&gt;
Animated GIF Asset.x32&lt;br /&gt;
Animated GIF Options.x32&lt;br /&gt;
AudioFilters.x32&lt;br /&gt;
AudioMixer.x32&lt;br /&gt;
AVI Agent.x32&lt;br /&gt;
BitdReader.x32&lt;br /&gt;
BitmapFilters.x32&lt;br /&gt;
BMP Agent.x32&lt;br /&gt;
CBrowser.x32&lt;br /&gt;
Cursor Asset.x32&lt;br /&gt;
Cursor Options.x32&lt;br /&gt;
DirectSound.x32&lt;br /&gt;
DVD Asset.x32&lt;br /&gt;
DVD Authoring.x32&lt;br /&gt;
Dynamiks.x32&lt;br /&gt;
Dynamiks_320.x32&lt;br /&gt;
F4VAsset.x32&lt;br /&gt;
FileIo.x32&lt;br /&gt;
Fireworks Import.x32&lt;br /&gt;
Flash Agent.x32&lt;br /&gt;
Flash Asset Options.x32&lt;br /&gt;
Flash Asset.x32&lt;br /&gt;
FLVAsset.x32&lt;br /&gt;
Font Asset Dialog.x32&lt;br /&gt;
Font Asset.x32&lt;br /&gt;
Font Xtra.x32&lt;br /&gt;
GIF Agent.x32&lt;br /&gt;
Havok.x32&lt;br /&gt;
Image Translator Helper.x32&lt;br /&gt;
Import Xtra for PowerPoint.x32&lt;br /&gt;
INetURL.x32&lt;br /&gt;
JPEG Agent.x32&lt;br /&gt;
JPEG Export.x32&lt;br /&gt;
LRG Import Export.x32&lt;br /&gt;
LZComprs.x32&lt;br /&gt;
MacPaint Import.x32&lt;br /&gt;
MacroMix.x32&lt;br /&gt;
Mix Services.x32&lt;br /&gt;
MixCollada.x32&lt;br /&gt;
MixSkp.x32&lt;br /&gt;
MP4Asset.x32&lt;br /&gt;
MP4Auth.x32&lt;br /&gt;
MP4Export.x32&lt;br /&gt;
MPEG 3 Import Export.x32&lt;br /&gt;
Mui Dialog.x32&lt;br /&gt;
Multiusr.x32&lt;br /&gt;
NetFile.x32&lt;br /&gt;
NetLingo.x32&lt;br /&gt;
Palette Import.x32&lt;br /&gt;
Photoshop 3.0 Import.x32&lt;br /&gt;
Photoshop CLUT Import.x32&lt;br /&gt;
PICT Agent.x32&lt;br /&gt;
PNG Import Export.x32&lt;br /&gt;
Pshopflt.x32&lt;br /&gt;
QT3Asset.x32&lt;br /&gt;
QT6Asset.x32&lt;br /&gt;
QTAuth.x32&lt;br /&gt;
QTExport.x32&lt;br /&gt;
QuickTime Agent.x32&lt;br /&gt;
RealMedia Asset.x32&lt;br /&gt;
RealMedia Authoring.x32&lt;br /&gt;
Script Agent.x32&lt;br /&gt;
Shockwave 3D Asset.x32&lt;br /&gt;
Shockwave Updater.x32&lt;br /&gt;
Sound Control.x32&lt;br /&gt;
Sound Import Export.x32&lt;br /&gt;
Speech.x32&lt;br /&gt;
Squish.x32&lt;br /&gt;
Sun AU Import Export.x32&lt;br /&gt;
SWA Import Export.x32&lt;br /&gt;
SwaCmpr.x32&lt;br /&gt;
SWACnvrt.x32&lt;br /&gt;
SWADCmpr.x32&lt;br /&gt;
SWAOpt.x32&lt;br /&gt;
SWAStrm.x32&lt;br /&gt;
Targa Import Export.x32&lt;br /&gt;
Text Asset.x32&lt;br /&gt;
TextAuth.x32&lt;br /&gt;
TextXtra.x32&lt;br /&gt;
TIFF Import Export.x32&lt;br /&gt;
UIHelper.x32&lt;br /&gt;
UnzipXtra.x32&lt;br /&gt;
Vector Editor Xtra.x32&lt;br /&gt;
WatcherHelper.x32&lt;br /&gt;
Windows Media Asset.x32&lt;br /&gt;
Windows Media Auth.x32&lt;br /&gt;
XMLParser.x32&lt;br /&gt;
Xresagt.x32&lt;br /&gt;
ZipXtra.x32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[LeechProtectionRemoval|Le]]&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
[[LeechProtectionRemoval|echProtectionRemoval]]&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11301</id>
		<title>LeechProtectionRemovalHelp</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11301"/>
		<updated>2026-01-15T21:16:00Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra LeechProtectionRemoval] is Macromedia Shockwave Director Xtra that allows allows for the archival of Shockwave Movies by setting, forcing, disabling or bugfixing properties which will stay set, forced, disabled or bugfixed even&lt;br /&gt;
after going to other movies. This means we can execute Lingo code for director movies with parameters passed to the Shockwave Movie Projector.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Shockwave Xtras]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11300</id>
		<title>LeechProtectionRemovalHelp</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=LeechProtectionRemovalHelp&amp;diff=11300"/>
		<updated>2026-01-15T21:15:17Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;[https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra LeechProtectionRemoval] is Macromedia Shockwave Director Xtra that allows allows for the archival of Shockwave Movies by setting, forcing, disabling or bugfixing properties which will stay set, forced, disabled or bugfixed even after going to other movies. This means we can execute Lingo code for director movies with parameters passed to the Shockwave Movie Projector.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/tomysshadow/LeechProtectionRemovalHelp-Xtra LeechProtectionRemoval] is Macromedia Shockwave Director Xtra that allows allows for the archival of Shockwave Movies by setting, forcing, disabling or bugfixing properties which will stay set, forced, disabled or bugfixed even&lt;br /&gt;
after going to other movies. This means we can execute Lingo code for director movies with parameters passed to the Shockwave Movie Projector.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Extracting_Flash_Games&amp;diff=11299</id>
		<title>Extracting Flash Games</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Extracting_Flash_Games&amp;diff=11299"/>
		<updated>2026-01-15T20:54:31Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as reference for anyone who wants to extract Flash games on their own. Things to know:&lt;br /&gt;
&lt;br /&gt;
* SWF: The compiled Flash movie. Can run in the Flash plugin or projector. Since the end of 2020, Adobe no longer supports Flash Player: see [[Flash EOL]].&lt;br /&gt;
* EXE: Projector executables packaged with an SWF. A convenient way to run Flash games on Windows, but only works for simple games.&lt;br /&gt;
* FLA: The project file of the Flash application. The source file the author used to generate the SWF, can be edited with Flash.&lt;br /&gt;
* ActionScript: Programming language for Flash applications.&lt;br /&gt;
&lt;br /&gt;
==Downloading SWF Files==&lt;br /&gt;
* Use a dedicated browser extension. Some recommendations:&lt;br /&gt;
** [[Game Saver Extension|Game Saver Chrome extension]]&lt;br /&gt;
** [https://chrome.google.com/webstore/detail/flash-video-downloader/aiimdkdngfcipjohbjenkahhlhccpdbc Flash Video Downloader] Chrome extension&lt;br /&gt;
* Use the Developer Tools in either Firefox or Chrome to find the SWFs.&lt;br /&gt;
** Right-click the page and click &amp;quot;View Page Source.&amp;quot; Press Ctrl-F and search for &amp;quot;.swf&amp;quot;&lt;br /&gt;
** Right-click the page and click &amp;quot;Inspect Element.&amp;quot; Click the element picker on the top-left of the developer tools and select the Flash game. This may bring up an embed code which includes a .swf link.&lt;br /&gt;
** Right-click the page and click &amp;quot;Inspect Element.&amp;quot; Click the Network tab and reload the page. Use the search bar to find the SWF files that are loaded. If the game loads additional resources, they should be visible here too.&lt;br /&gt;
* [https://github.com/jindrapetrik/jpexs-decompiler JPEXS Free Flash Decompiler] can extract SWF files already loaded into browser memory. See the [[#SWF Decompiling|Decompiling]] section.&lt;br /&gt;
* A solid method to access the main .swf file for a game, is to save the entire webpage where the game resides using your browser.&lt;br /&gt;
*# Select &amp;quot;File &amp;gt; Save Page As...&amp;quot; then, under the &amp;quot;save as type&amp;quot; section, choose &amp;quot;Web Page, complete&amp;quot;.&lt;br /&gt;
*# Search the newly saved website directory (and sub directories if required), and you should find the game's main .swf loader.&lt;br /&gt;
&lt;br /&gt;
For some websites, a custom solution can be easier:&lt;br /&gt;
* [http://pastebin.com/GX4dMN0G ArmorGamesSwfFinder.py] - Python script for ArmorGames&lt;br /&gt;
* The [https://github.com/FlashpointProject/fpcurator/ fpcurator] and [http://web.archive.org/web/20230815220905/https://cdn.discordapp.com/attachments/441713444694261760/617110942563696650/AutoCurator.zip AutoCurator] tools can automatically download games from many sites.&lt;br /&gt;
&lt;br /&gt;
==SWF Decompiling==&lt;br /&gt;
Many SWF files will run immediately in a projector, but some have sitelocks, require an internet connection, and/or need external files. The latter types of Flash games need Flashpoint's technology. It is also possible to decompile SWFs to modify them or understand how they work.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jindrapetrik/jpexs-decompiler/releases JPEXS Free Flash Decompiler] can:&lt;br /&gt;
* Convert SWF to FLA&lt;br /&gt;
* Decompile ActionScript&lt;br /&gt;
* Extract sound/image/misc assets from the SWF&lt;br /&gt;
&lt;br /&gt;
This isn't always straightforward because of some obfuscation methods used.&lt;br /&gt;
&lt;br /&gt;
Some games rely on compression to extract a fuller SWF, which you can grab from your RAM using JPEXS's &amp;quot;Search SWFs in memory&amp;quot; function, or using the standalone [https://web.archive.org/web/20130614204347/http://www.forceprojectx.com/SWFMemoryDumper.zip SWF Memory Dumper tool].&lt;br /&gt;
&lt;br /&gt;
==SWF Playback==&lt;br /&gt;
Use the official Adobe Flash Player Projector, available [https://web.archive.org/web/20200818023027/https://www.adobe.com/support/flashplayer/debug_downloads.html here]. This is the method that Flashpoint uses, along with the rest of our technology stack.&lt;br /&gt;
&lt;br /&gt;
Some fixes for browsers (TBA):&lt;br /&gt;
* Firefox: Type &amp;lt;code&amp;gt;about:config&amp;lt;/code&amp;gt; and change &amp;lt;code&amp;gt;plugins.http_https_only&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extract SWFs from EXEs==&lt;br /&gt;
Some executables are just Flash projectors bundled with an SWF file. To extract the SWF for use on another operating system or in Flashpoint, you can use [https://web.archive.org/web/20190717135116/http://www.northcode.com/blog/Extract-SWF-files-from-Flash-Executables exe2swf].&lt;br /&gt;
&lt;br /&gt;
JPEXS Flash Decompiler can also be used to extract SWFs from EXEs. Open the FFDEC program, then drag the EXE into the program window. Any SWFs contained in the EXE will appear on the left sidebar. To save the SWF, select it on the sidebar and click the &amp;quot;Save as..&amp;quot; button in the top menu bar.&lt;br /&gt;
&lt;br /&gt;
Another method is to use the [https://gist.githubusercontent.com/einstein95/1fc993764ec65820706d39c55c375f8d/raw/swf.py swf.py script]. [https://www.python.org/ Install Python] if you haven't already, download and extract the ZIP file, and run &amp;lt;code&amp;gt;python swf.py application.exe&amp;lt;/code&amp;gt; in your Command Prompt or Terminal.&lt;br /&gt;
&lt;br /&gt;
And some executables are packaged with VaySoft's &amp;quot;SWF to EXE Converter&amp;quot; which is diferent compared to the official flash projector and is its own player just it required the ActiveX Control to run any app made with it but it is extractable as user &amp;quot;Elfhuo&amp;quot; did some digging and figured out how to extract it. As it states on their site &amp;quot;the output EXE files get the SWF data through memory stream, so your users cannot get it in his/her computer hard disk&amp;quot; so after a bit of digging the most efficent way to get the swf file is with this tool https://web.archive.org/web/20130614204347/http://www.forceprojectx.com/SWFMemoryDumper.zip&lt;br /&gt;
&lt;br /&gt;
==Convert SWFs to EXEs==&lt;br /&gt;
Flash SWF files can be converted to standalone executables. However, this will only work for simpler Flash games that are not sitelocked. We recommend that you add games to Flashpoint instead.&lt;br /&gt;
&lt;br /&gt;
* JPEXS Flash Decompiler can create EXEs from SWFs. Click File -&amp;gt; Save as EXE.&lt;br /&gt;
* Older Macromedia Flash projectors provide the menu option File/Create Projector.&lt;br /&gt;
* The SWF to EXE tool works, but the included projector should be replaced with the newest version: http://swftools.sourceforge.net/swf-to-exe.html&lt;br /&gt;
* [http://web.archive.org/web/20230815220756/https://cdn.discordapp.com/attachments/432708847304704013/597185878443556866/Create_Projector_Windows.swf This SWF can be used to create EXEs]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
Extracting Shockwave Director files: [[Exe2dcr]]&lt;br /&gt;
&lt;br /&gt;
Decompiling Shoocwave [[ProjectorRays]]&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Other Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=ProjectorRays&amp;diff=11298</id>
		<title>ProjectorRays</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=ProjectorRays&amp;diff=11298"/>
		<updated>2026-01-15T20:53:24Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;[https://github.com/ProjectorRays/ProjectorRays ProjectorRays] is a decompiler for Adobe Shockwave and Adobe Director (formerly known as Macromedia Shockwave and Macromedia Director, and not to be confused with Shockwave Flash).  If you have a DCR (published Shockwave movie) or DXR (protected Director movie), ProjectorRays can generate a DIR (editable Director movie).  If you have a CCT (published Shockwave cast) or CXT (protected Director cast), ProjectorRays can genera...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/ProjectorRays/ProjectorRays ProjectorRays] is a decompiler for Adobe Shockwave and Adobe Director (formerly known as Macromedia Shockwave and Macromedia Director, and not to be confused with Shockwave Flash).&lt;br /&gt;
&lt;br /&gt;
If you have a DCR (published Shockwave movie) or DXR (protected Director movie), ProjectorRays can generate a DIR (editable Director movie).&lt;br /&gt;
&lt;br /&gt;
If you have a CCT (published Shockwave cast) or CXT (protected Director cast), ProjectorRays can generate a CST (editable Director cast).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[Exe2dcr|exe2dir]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Extracting_Flash_Games&amp;diff=11297</id>
		<title>Extracting Flash Games</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Extracting_Flash_Games&amp;diff=11297"/>
		<updated>2026-01-15T20:43:13Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as reference for anyone who wants to extract Flash games on their own. Things to know:&lt;br /&gt;
&lt;br /&gt;
* SWF: The compiled Flash movie. Can run in the Flash plugin or projector. Since the end of 2020, Adobe no longer supports Flash Player: see [[Flash EOL]].&lt;br /&gt;
* EXE: Projector executables packaged with an SWF. A convenient way to run Flash games on Windows, but only works for simple games.&lt;br /&gt;
* FLA: The project file of the Flash application. The source file the author used to generate the SWF, can be edited with Flash.&lt;br /&gt;
* ActionScript: Programming language for Flash applications.&lt;br /&gt;
&lt;br /&gt;
==Downloading SWF Files==&lt;br /&gt;
* Use a dedicated browser extension. Some recommendations:&lt;br /&gt;
** [[Game Saver Extension|Game Saver Chrome extension]]&lt;br /&gt;
** [https://chrome.google.com/webstore/detail/flash-video-downloader/aiimdkdngfcipjohbjenkahhlhccpdbc Flash Video Downloader] Chrome extension&lt;br /&gt;
* Use the Developer Tools in either Firefox or Chrome to find the SWFs.&lt;br /&gt;
** Right-click the page and click &amp;quot;View Page Source.&amp;quot; Press Ctrl-F and search for &amp;quot;.swf&amp;quot;&lt;br /&gt;
** Right-click the page and click &amp;quot;Inspect Element.&amp;quot; Click the element picker on the top-left of the developer tools and select the Flash game. This may bring up an embed code which includes a .swf link.&lt;br /&gt;
** Right-click the page and click &amp;quot;Inspect Element.&amp;quot; Click the Network tab and reload the page. Use the search bar to find the SWF files that are loaded. If the game loads additional resources, they should be visible here too.&lt;br /&gt;
* [https://github.com/jindrapetrik/jpexs-decompiler JPEXS Free Flash Decompiler] can extract SWF files already loaded into browser memory. See the [[#SWF Decompiling|Decompiling]] section.&lt;br /&gt;
* A solid method to access the main .swf file for a game, is to save the entire webpage where the game resides using your browser.&lt;br /&gt;
*# Select &amp;quot;File &amp;gt; Save Page As...&amp;quot; then, under the &amp;quot;save as type&amp;quot; section, choose &amp;quot;Web Page, complete&amp;quot;.&lt;br /&gt;
*# Search the newly saved website directory (and sub directories if required), and you should find the game's main .swf loader.&lt;br /&gt;
&lt;br /&gt;
For some websites, a custom solution can be easier:&lt;br /&gt;
* [http://pastebin.com/GX4dMN0G ArmorGamesSwfFinder.py] - Python script for ArmorGames&lt;br /&gt;
* The [https://github.com/FlashpointProject/fpcurator/ fpcurator] and [http://web.archive.org/web/20230815220905/https://cdn.discordapp.com/attachments/441713444694261760/617110942563696650/AutoCurator.zip AutoCurator] tools can automatically download games from many sites.&lt;br /&gt;
&lt;br /&gt;
==SWF Decompiling==&lt;br /&gt;
Many SWF files will run immediately in a projector, but some have sitelocks, require an internet connection, and/or need external files. The latter types of Flash games need Flashpoint's technology. It is also possible to decompile SWFs to modify them or understand how they work.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jindrapetrik/jpexs-decompiler/releases JPEXS Free Flash Decompiler] can:&lt;br /&gt;
* Convert SWF to FLA&lt;br /&gt;
* Decompile ActionScript&lt;br /&gt;
* Extract sound/image/misc assets from the SWF&lt;br /&gt;
&lt;br /&gt;
This isn't always straightforward because of some obfuscation methods used.&lt;br /&gt;
&lt;br /&gt;
Some games rely on compression to extract a fuller SWF, which you can grab from your RAM using JPEXS's &amp;quot;Search SWFs in memory&amp;quot; function, or using the standalone [https://web.archive.org/web/20130614204347/http://www.forceprojectx.com/SWFMemoryDumper.zip SWF Memory Dumper tool].&lt;br /&gt;
&lt;br /&gt;
==SWF Playback==&lt;br /&gt;
Use the official Adobe Flash Player Projector, available [https://web.archive.org/web/20200818023027/https://www.adobe.com/support/flashplayer/debug_downloads.html here]. This is the method that Flashpoint uses, along with the rest of our technology stack.&lt;br /&gt;
&lt;br /&gt;
Some fixes for browsers (TBA):&lt;br /&gt;
* Firefox: Type &amp;lt;code&amp;gt;about:config&amp;lt;/code&amp;gt; and change &amp;lt;code&amp;gt;plugins.http_https_only&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extract SWFs from EXEs==&lt;br /&gt;
Some executables are just Flash projectors bundled with an SWF file. To extract the SWF for use on another operating system or in Flashpoint, you can use [https://web.archive.org/web/20190717135116/http://www.northcode.com/blog/Extract-SWF-files-from-Flash-Executables exe2swf].&lt;br /&gt;
&lt;br /&gt;
JPEXS Flash Decompiler can also be used to extract SWFs from EXEs. Open the FFDEC program, then drag the EXE into the program window. Any SWFs contained in the EXE will appear on the left sidebar. To save the SWF, select it on the sidebar and click the &amp;quot;Save as..&amp;quot; button in the top menu bar.&lt;br /&gt;
&lt;br /&gt;
Another method is to use the [https://gist.githubusercontent.com/einstein95/1fc993764ec65820706d39c55c375f8d/raw/swf.py swf.py script]. [https://www.python.org/ Install Python] if you haven't already, download and extract the ZIP file, and run &amp;lt;code&amp;gt;python swf.py application.exe&amp;lt;/code&amp;gt; in your Command Prompt or Terminal.&lt;br /&gt;
&lt;br /&gt;
And some executables are packaged with VaySoft's &amp;quot;SWF to EXE Converter&amp;quot; which is diferent compared to the official flash projector and is its own player just it required the ActiveX Control to run any app made with it but it is extractable as user &amp;quot;Elfhuo&amp;quot; did some digging and figured out how to extract it. As it states on their site &amp;quot;the output EXE files get the SWF data through memory stream, so your users cannot get it in his/her computer hard disk&amp;quot; so after a bit of digging the most efficent way to get the swf file is with this tool https://web.archive.org/web/20130614204347/http://www.forceprojectx.com/SWFMemoryDumper.zip&lt;br /&gt;
&lt;br /&gt;
==Convert SWFs to EXEs==&lt;br /&gt;
Flash SWF files can be converted to standalone executables. However, this will only work for simpler Flash games that are not sitelocked. We recommend that you add games to Flashpoint instead.&lt;br /&gt;
&lt;br /&gt;
* JPEXS Flash Decompiler can create EXEs from SWFs. Click File -&amp;gt; Save as EXE.&lt;br /&gt;
* Older Macromedia Flash projectors provide the menu option File/Create Projector.&lt;br /&gt;
* The SWF to EXE tool works, but the included projector should be replaced with the newest version: http://swftools.sourceforge.net/swf-to-exe.html&lt;br /&gt;
* [http://web.archive.org/web/20230815220756/https://cdn.discordapp.com/attachments/432708847304704013/597185878443556866/Create_Projector_Windows.swf This SWF can be used to create EXEs]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
Extracting Shockwave Director files: [[Exe2dcr]]&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Other Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Extracting_Flash_Games&amp;diff=11296</id>
		<title>Extracting Flash Games</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Extracting_Flash_Games&amp;diff=11296"/>
		<updated>2026-01-15T20:42:58Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as reference for anyone who wants to extract Flash games on their own. Things to know:&lt;br /&gt;
&lt;br /&gt;
* SWF: The compiled Flash movie. Can run in the Flash plugin or projector. Since the end of 2020, Adobe no longer supports Flash Player: see [[Flash EOL]].&lt;br /&gt;
* EXE: Projector executables packaged with an SWF. A convenient way to run Flash games on Windows, but only works for simple games.&lt;br /&gt;
* FLA: The project file of the Flash application. The source file the author used to generate the SWF, can be edited with Flash.&lt;br /&gt;
* ActionScript: Programming language for Flash applications.&lt;br /&gt;
&lt;br /&gt;
==Downloading SWF Files==&lt;br /&gt;
* Use a dedicated browser extension. Some recommendations:&lt;br /&gt;
** [[Game Saver Extension|Game Saver Chrome extension]]&lt;br /&gt;
** [https://chrome.google.com/webstore/detail/flash-video-downloader/aiimdkdngfcipjohbjenkahhlhccpdbc Flash Video Downloader] Chrome extension&lt;br /&gt;
* Use the Developer Tools in either Firefox or Chrome to find the SWFs.&lt;br /&gt;
** Right-click the page and click &amp;quot;View Page Source.&amp;quot; Press Ctrl-F and search for &amp;quot;.swf&amp;quot;&lt;br /&gt;
** Right-click the page and click &amp;quot;Inspect Element.&amp;quot; Click the element picker on the top-left of the developer tools and select the Flash game. This may bring up an embed code which includes a .swf link.&lt;br /&gt;
** Right-click the page and click &amp;quot;Inspect Element.&amp;quot; Click the Network tab and reload the page. Use the search bar to find the SWF files that are loaded. If the game loads additional resources, they should be visible here too.&lt;br /&gt;
* [https://github.com/jindrapetrik/jpexs-decompiler JPEXS Free Flash Decompiler] can extract SWF files already loaded into browser memory. See the [[#SWF Decompiling|Decompiling]] section.&lt;br /&gt;
* A solid method to access the main .swf file for a game, is to save the entire webpage where the game resides using your browser.&lt;br /&gt;
*# Select &amp;quot;File &amp;gt; Save Page As...&amp;quot; then, under the &amp;quot;save as type&amp;quot; section, choose &amp;quot;Web Page, complete&amp;quot;.&lt;br /&gt;
*# Search the newly saved website directory (and sub directories if required), and you should find the game's main .swf loader.&lt;br /&gt;
&lt;br /&gt;
For some websites, a custom solution can be easier:&lt;br /&gt;
* [http://pastebin.com/GX4dMN0G ArmorGamesSwfFinder.py] - Python script for ArmorGames&lt;br /&gt;
* The [https://github.com/FlashpointProject/fpcurator/ fpcurator] and [http://web.archive.org/web/20230815220905/https://cdn.discordapp.com/attachments/441713444694261760/617110942563696650/AutoCurator.zip AutoCurator] tools can automatically download games from many sites.&lt;br /&gt;
&lt;br /&gt;
==SWF Decompiling==&lt;br /&gt;
Many SWF files will run immediately in a projector, but some have sitelocks, require an internet connection, and/or need external files. The latter types of Flash games need Flashpoint's technology. It is also possible to decompile SWFs to modify them or understand how they work.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jindrapetrik/jpexs-decompiler/releases JPEXS Free Flash Decompiler] can:&lt;br /&gt;
* Convert SWF to FLA&lt;br /&gt;
* Decompile ActionScript&lt;br /&gt;
* Extract sound/image/misc assets from the SWF&lt;br /&gt;
&lt;br /&gt;
This isn't always straightforward because of some obfuscation methods used.&lt;br /&gt;
&lt;br /&gt;
Some games rely on compression to extract a fuller SWF, which you can grab from your RAM using JPEXS's &amp;quot;Search SWFs in memory&amp;quot; function, or using the standalone [https://web.archive.org/web/20130614204347/http://www.forceprojectx.com/SWFMemoryDumper.zip SWF Memory Dumper tool].&lt;br /&gt;
&lt;br /&gt;
==SWF Playback==&lt;br /&gt;
Use the official Adobe Flash Player Projector, available [https://web.archive.org/web/20200818023027/https://www.adobe.com/support/flashplayer/debug_downloads.html here]. This is the method that Flashpoint uses, along with the rest of our technology stack.&lt;br /&gt;
&lt;br /&gt;
Some fixes for browsers (TBA):&lt;br /&gt;
* Firefox: Type &amp;lt;code&amp;gt;about:config&amp;lt;/code&amp;gt; and change &amp;lt;code&amp;gt;plugins.http_https_only&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extract SWFs from EXEs==&lt;br /&gt;
Some executables are just Flash projectors bundled with an SWF file. To extract the SWF for use on another operating system or in Flashpoint, you can use [https://web.archive.org/web/20190717135116/http://www.northcode.com/blog/Extract-SWF-files-from-Flash-Executables exe2swf].&lt;br /&gt;
&lt;br /&gt;
JPEXS Flash Decompiler can also be used to extract SWFs from EXEs. Open the FFDEC program, then drag the EXE into the program window. Any SWFs contained in the EXE will appear on the left sidebar. To save the SWF, select it on the sidebar and click the &amp;quot;Save as..&amp;quot; button in the top menu bar.&lt;br /&gt;
&lt;br /&gt;
Another method is to use the [https://gist.githubusercontent.com/einstein95/1fc993764ec65820706d39c55c375f8d/raw/swf.py swf.py script]. [https://www.python.org/ Install Python] if you haven't already, download and extract the ZIP file, and run &amp;lt;code&amp;gt;python swf.py application.exe&amp;lt;/code&amp;gt; in your Command Prompt or Terminal.&lt;br /&gt;
&lt;br /&gt;
And some executables are packaged with VaySoft's &amp;quot;SWF to EXE Converter&amp;quot; which is diferent compared to the official flash projector and is its own player just it required the ActiveX Control to run any app made with it but it is extractable as user &amp;quot;Elfhuo&amp;quot; did some digging and figured out how to extract it. As it states on their site &amp;quot;the output EXE files get the SWF data through memory stream, so your users cannot get it in his/her computer hard disk&amp;quot; so after a bit of digging the most efficent way to get the swf file is with this tool https://web.archive.org/web/20130614204347/http://www.forceprojectx.com/SWFMemoryDumper.zip&lt;br /&gt;
&lt;br /&gt;
==Convert SWFs to EXEs==&lt;br /&gt;
Flash SWF files can be converted to standalone executables. However, this will only work for simpler Flash games that are not sitelocked. We recommend that you add games to Flashpoint instead.&lt;br /&gt;
&lt;br /&gt;
* JPEXS Flash Decompiler can create EXEs from SWFs. Click File -&amp;gt; Save as EXE.&lt;br /&gt;
* Older Macromedia Flash projectors provide the menu option File/Create Projector.&lt;br /&gt;
* The SWF to EXE tool works, but the included projector should be replaced with the newest version: http://swftools.sourceforge.net/swf-to-exe.html&lt;br /&gt;
* [http://web.archive.org/web/20230815220756/https://cdn.discordapp.com/attachments/432708847304704013/597185878443556866/Create_Projector_Windows.swf This SWF can be used to create EXEs]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
&lt;br /&gt;
Extracting Shockwave Director files: [[Exe2dcr]]&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Other Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Exe2dir&amp;diff=11295</id>
		<title>Exe2dir</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Exe2dir&amp;diff=11295"/>
		<updated>2026-01-15T20:41:59Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Redirected page to Exe2dcr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Exe2dcr]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Exe2dcr&amp;diff=11294</id>
		<title>Exe2dcr</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Exe2dcr&amp;diff=11294"/>
		<updated>2026-01-15T20:41:40Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;Exe2dcr is a term for extracting Shockwave Files (dcr / dir) from Exe-files. [https://github.com/n0samu/director-files-extract director-files-extract] is a tool that can be used&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Exe2dcr is a term for extracting Shockwave Files (dcr / dir) from Exe-files. [https://github.com/n0samu/director-files-extract director-files-extract] is a tool that can be used&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=QA_Sheet_(Smoke_tests)&amp;diff=11289</id>
		<title>QA Sheet (Smoke tests)</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=QA_Sheet_(Smoke_tests)&amp;diff=11289"/>
		<updated>2026-01-04T11:28:03Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: /* Web Browser Compatibility Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page serves to be a comprehensive list of all edge cases that should be tested in order to reasonably ensure that Flashpoint remains functional.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;single-asset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Single Asset =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
| Baby Knight&lt;br /&gt;
| 1d9ff021-2404-9785-bb7d-0fceda67a55d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3D ViaPlayer Plugin&lt;br /&gt;
| The Rollercoaster Experience&lt;br /&gt;
| 38ed6d5d-f718-472f-b90d-d3310fbbb700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Alambik&lt;br /&gt;
| Alambik Intro&lt;br /&gt;
| f58592fe-e288-45a9-a057-16028f032375&lt;br /&gt;
| Ensure that normal &amp;amp;amp; browser mode&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AnimaFlex Plugin&lt;br /&gt;
| Guitar&lt;br /&gt;
| 99a84b5e-040f-44d2-ab62-8cdf83ca7408&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Atmosphere Player&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| Multiasset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware Plugin&lt;br /&gt;
| Simple Anatomy Test&lt;br /&gt;
| 8ce74828-1866-43c1-9275-3c17ed9defec&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster Plugin&lt;br /&gt;
| TrailzLD&lt;br /&gt;
| 8d6c1a85-5394-42e1-8dc5-c3f037140518&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| DeepV Plugin&lt;br /&gt;
| Cruiser&lt;br /&gt;
| b863f11f-6264-4bf5-a591-e0cd3a54e74e&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Eanimator&lt;br /&gt;
| Vanessa Veinski&lt;br /&gt;
| 0038f514-d251-4c38-8b8a-27a523f60014&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| Alien Hominid&lt;br /&gt;
| 08143aa7-f3ae-45b0-a1d4-afa4ac44c845&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash Plugin&lt;br /&gt;
| Fatty Genius Time Travels&lt;br /&gt;
| ea8fe888-bd93-4fb6-a840-1fed1aecab5c&lt;br /&gt;
| Browser mode&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flatland Rover&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit Plugin&lt;br /&gt;
| Burger Shop&lt;br /&gt;
| 25a0bf2c-5b69-46a1-81a2-8e18cff09f21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
| Classic Pack&lt;br /&gt;
| 0fed64c0-d6dc-42e6-bd54-d8ac479ff63e&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
| Left 4k Dead 2&lt;br /&gt;
| 6022f31a-af5a-3de3-8de3-ed32a3461c2c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LiveMath Plugin&lt;br /&gt;
| Animation&lt;br /&gt;
| 5bd06340-6d1a-4b46-88df-76b61a01e729&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap Plugin&lt;br /&gt;
| Bejeweled 2&lt;br /&gt;
| 502dfd93-d9ca-4940-826d-64d020c12803&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pulse&lt;br /&gt;
| Learning Friends&lt;br /&gt;
| 1dace340-2d13-40d3-bf39-fb3e7d562dd2&lt;br /&gt;
| Needs Pulse 5.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
| Tron Defense&lt;br /&gt;
| f3bbed72-7b6b-4af3-b74b-727df31a423b&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave Plugin&lt;br /&gt;
| Drome Duel Canyon Zone&lt;br /&gt;
| 55716f50-6c47-4931-83d3-5690fba7970d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ101&lt;br /&gt;
| Redline Rumble&lt;br /&gt;
| 25d9d738-6215-4eb3-ad24-7ca949b9a650&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ9&lt;br /&gt;
| Toothpick GP&lt;br /&gt;
| 11db4ace-6eb5-4d2a-b5bc-0d16158da150&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ851&lt;br /&gt;
| 4 Wheel Fury&lt;br /&gt;
| 34cf39e3-b21b-4202-a1ab-34d50c4b1aab&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ12&lt;br /&gt;
| Fullmetal Alchemist: Iron &amp;amp;amp; Flame&lt;br /&gt;
| 8f8e408b-296c-4e67-add6-19f67d60ea94&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ1159&lt;br /&gt;
| Celebrity Table Tennis&lt;br /&gt;
| 33f7a051-c716-4948-866e-9589e3eaac48&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ1103&lt;br /&gt;
| Commandos 2 Target Practice&lt;br /&gt;
| 996ac625-2c05-412e-b984-9e97cad3530a&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight Plugin&lt;br /&gt;
| Diver&lt;br /&gt;
| 71d25fd8-8d8d-4f5b-9a2a-fdc34fb7b9f7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SoundPlayback&lt;br /&gt;
| Atomaders&lt;br /&gt;
| 678639c1-c2d2-d8ea-bee8-1ca7ae858951&lt;br /&gt;
| Make sure sound works&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl Plugin&lt;br /&gt;
| Tk Notebook Widget&lt;br /&gt;
| b138acce-3ce9-452d-b558-f07b2ebf6aba&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 2.x&lt;br /&gt;
| Glatorian Arena&lt;br /&gt;
| 91df996b-5197-4238-bbde-73564851f600&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 3.x&lt;br /&gt;
| The Last of the Nyoms&lt;br /&gt;
| fcb472af-7cd9-49df-902a-b85c474dd3a0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 3.x&lt;br /&gt;
| Little Dragon 3D&lt;br /&gt;
| 6edd5248-73c6-41b1-820b-edc38043a0a0&lt;br /&gt;
| Only works with Unity 3D 3.5.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 5.x&lt;br /&gt;
| Ant War&lt;br /&gt;
| ee2b70db-24c3-410e-958b-5803a0bd8538&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML Blaxxun&lt;br /&gt;
| Cybertown Plaza&lt;br /&gt;
| 5d0c448a-3c27-45be-8a79-22fea4381d57&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML CosmoPlayer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML Live3D&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
| 3D Technology Demo&lt;br /&gt;
| d80b958a-3aba-4ee7-9a6e-e0f149f41699&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
| Chess&lt;br /&gt;
| d31be1d3-27d1-45ab-b25e-3b4e9d75cd63&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Xara Plugin&lt;br /&gt;
| Cat&lt;br /&gt;
| 3e8bb806-b269-435e-b583-bd967f19a1bd&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;activex&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== ActiveX ==&lt;br /&gt;
&lt;br /&gt;
ActiveX is plugin based framework&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Plugin&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| abcisland&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| aquacade&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| asianata&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| AstoundLauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| AstroAvenger2Loader&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Atomaders&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| axcontrol&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| axhost&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| BewitchedGameClass&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| cards&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| cinematycoon&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| ddfotg&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| diaperdash&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| dreamweb&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| DressShopHopWeb.1.0.0.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| EmeraldCityConfidental&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| FashionDashWeb.1.0.0.21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| fitness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| gamehouseplayer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| GenimoWebGamesControl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| greatchocolatechaseweb.1.0.0.12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| hiq&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| HLGLauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| JBGamePlayer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Lucky15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| MahjongRoadshow&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| mjolauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| mjolauncher2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| MysteryOfSharkIsland&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| MythicMarbles&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Octree&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| OrbitalLauncher-2.0.15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| parkingdash&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| pixelstormlauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Pulse&lt;br /&gt;
| Pulse Player&lt;br /&gt;
| e3ba3233-10e3-4092-b9e1-d59a12ec1bc0&lt;br /&gt;
| Test file from intel weboutfitter3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| raptisoftgameloader&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Rebol&lt;br /&gt;
| REBtris&lt;br /&gt;
| e03fafa4-6c80-436d-8bf6-ae02aafcab36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| ReflexiveWebGameLoader&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| RubiksCube&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| sandscript&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| SpinTopGamesLauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| SpinTopGamesLauncher2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| SproutLauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| SVR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Sweetopia.1.0.0.22&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| tastyplanet.1.0.0.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| TheTowersofHanoi&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| weddingdash&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| ZenerchiWeb.1.0.0.10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| ZylomExtension&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| ZylomGamesPlayer&lt;br /&gt;
| Mahjong Escape - Ancient Japan&lt;br /&gt;
| de8f3328-830d-42c1-ad66-dcff51de2585&lt;br /&gt;
| Uses gamezip&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;multi-asset&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Multi-Asset =&lt;br /&gt;
&lt;br /&gt;
== External resources only ==&lt;br /&gt;
&lt;br /&gt;
Images/audio, no scripts required &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3DVIA Player&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Atmosphere Player&lt;br /&gt;
| Visioni ed Estasi&lt;br /&gt;
| 7b0c7735-db54-4626-a671-7b80d3f1a5f6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| Treefrog Treasure&lt;br /&gt;
| 4dbded69-8d4a-4cb5-a167-edd6491823b8&lt;br /&gt;
| Has external SWF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash Plugin&lt;br /&gt;
| Attack of the Graske&lt;br /&gt;
| e858a4fb-c440-4874-9646-84eeb603aa49&lt;br /&gt;
| Uses RTMP for streaming audio+video&lt;br /&gt;
| Not currently working in any Flashpoint version.&lt;br /&gt;
|-&lt;br /&gt;
| Flatland Rover&lt;br /&gt;
| Castle Kathmandu&lt;br /&gt;
| a1d25b33-170c-404b-b875-31a7026a5ea9&lt;br /&gt;
| VRML&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
| Eggs With Legs&lt;br /&gt;
| fdfc312a-16a5-4b41-aa9c-20fc19b51fed&lt;br /&gt;
| HTML5 game with IE mode &amp;amp;amp; popup for music&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
| Air Hockey&lt;br /&gt;
| 5a0cee91-0839-4fd0-a4d1-dcfcd2af5b4c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
| A220 Mission 1&lt;br /&gt;
| e9d2d5cf-b2e8-4987-9ba2-66d9ca16bf16&lt;br /&gt;
| Java Applet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Noteworthy&lt;br /&gt;
| Score Samples Using Javascript&lt;br /&gt;
| 8bb85bbd-d191-4fef-ba48-58905a8485dc&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pulse&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave Plugin&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ101&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ851&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ1159&lt;br /&gt;
| On The Run 2&lt;br /&gt;
| 73948bb6-6089-498a-aeb6-72ca65a1b402&lt;br /&gt;
| External sound files&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave PJ1103&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML CosmoPlayer&lt;br /&gt;
| Pellucid&lt;br /&gt;
| 795d77ff-666b-40d0-971c-7e2188696516&lt;br /&gt;
| Uses Cosmo + Java in Netscape&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML CosmoPlayer&lt;br /&gt;
| Chomp&lt;br /&gt;
| 91d08bc0-4599-4182-8915-99098467b6ff&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML Live3D&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requires PHP script ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3DVIA Player&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| Bloons Super Monkey 2&lt;br /&gt;
| 0ea6fb47-3af9-4cbe-981d-ab47f37d5f79&lt;br /&gt;
| Requires a PHP DB&lt;br /&gt;
| You should try to play the game &amp;lt;br&amp;gt; delete data and restart with zero progress&lt;br /&gt;
|-&lt;br /&gt;
| GoBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
| Ask Prunella&lt;br /&gt;
| a2b7e131-3e2b-40b1-a119-dcde137ac418&lt;br /&gt;
| Responds to a POST request&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
| Bubbles&lt;br /&gt;
| 155abaf1-01df-4c39-9c2a-afca22cd3f78&lt;br /&gt;
| Calls PHP for language then spawns Applet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pulse&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave&lt;br /&gt;
| Starburst Waterslide Slalom&lt;br /&gt;
| 143e7424-1ee5-4360-a1a6-0e1b6d054527&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requires database ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3DVIA Player&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| Happy Wheels&lt;br /&gt;
| 2686de77-6b3c-4718-b57b-9ba01a8bf255&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
| Jumphobia&lt;br /&gt;
| a28a2c7a-de18-1614-5bfb-29e2aa71fc74&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pulse&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;sitelocks&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Sitelocks =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Red Ball 2: The King&lt;br /&gt;
| a5bbe0f0-add5-4a13-bc57-7bf6b87de202&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;encrypted&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Encrypted =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Hungry Sumo&lt;br /&gt;
| 7d2bc757-a120-7cfa-7b4d-d14f20d255b4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;required-hacking&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Required hacking =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;popular&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Popular =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Poptropica&lt;br /&gt;
| 83e1b5e7-4282-4bbd-868e-dcfa965e4abf&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Poptropica (AS2)&lt;br /&gt;
| 51240ae7-1fa8-4ee7-8d64-9dbf5019eab8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Big Fat Awesome House Party&lt;br /&gt;
| 0fb0767e-009b-4974-8b7a-74cc3b08e873&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FRIDAY NIGHT FUNKIN'&lt;br /&gt;
| 6bdfe815-3d6b-4b7e-8855-c82cb6f6412d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Super Mario 63&lt;br /&gt;
| 16b04977-f714-4239-b343-b759e16a33af&lt;br /&gt;
| Includes level database&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Super Smash Flash 2&lt;br /&gt;
| ed058412-fa96-4ea5-b2cb-2baff6a24b2a&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Bloons TD 5&lt;br /&gt;
| 07921a2f-26fd-4364-9671-ee0c8d256ec1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Papa's Freezeria&lt;br /&gt;
| 92ba2d91-e041-2bd4-49ea-21758df711ff&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Papa's Scooperia&lt;br /&gt;
| 1e903a30-5c37-15bb-8e5e-6fea5a8103f2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Papa's Donuteria&lt;br /&gt;
| 938f4383-8c92-8e8d-511b-004b5c69999d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;broken-in-infinity&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Broken in Infinity =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;broken-in-fpnavigator&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Broken in FPNavigator =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Poligon Sztuki. - 08. Wystawa&lt;br /&gt;
| 301a7ef7-480f-4617-b723-4bc5378ef674&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Poligon Sztuki. - 09. Wystawa&lt;br /&gt;
| 54548adb-fafd-415d-8710-546099ce122d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Poligon Sztuki. - 10. Wystawa&lt;br /&gt;
| 75580c02-05f5-45c2-ba30-458dc4b9de85&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Poligon Sztuki. - 11. Wystawa&lt;br /&gt;
| bb4facd9-2ba2-4227-8bb6-9e2f078b1be2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Poligon Sztuki. - 12. Wystawa&lt;br /&gt;
| 531b23c1-4b90-4073-9768-71f3fe444504&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;flashvars&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Flashvars =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
|-&lt;br /&gt;
| Tamus Adventure&lt;br /&gt;
| 9a21ad72-db02-45e3-a61a-c87a17789fed&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;in-browser&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= In-browser =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3DVIA Player&lt;br /&gt;
| The Rollercoaster Experience&lt;br /&gt;
| 38ed6d5d-f718-472f-b90d-d3310fbbb700&lt;br /&gt;
| Browser only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| Pillage the Village&lt;br /&gt;
| 825a5ec2-73e2-4bd9-b6e9-9396f6b9ef63&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
| SAB Baseball&lt;br /&gt;
| cb71d0c2-eb56-41bb-ba5b-545edcffce77&lt;br /&gt;
| Has java popup confirmation&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pulse&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight&lt;br /&gt;
| Silverlight Mario&lt;br /&gt;
| 13064a9c-b56f-4146-ad9d-073f20839635&lt;br /&gt;
| Browser only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave&lt;br /&gt;
| Robohunter 2: Spy City&lt;br /&gt;
| 90d37733-e74f-42af-afbd-414552c2c4e0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl&lt;br /&gt;
| Hextris&lt;br /&gt;
| bf625ccc-e8d5-4d43-b43e-49508313ddcd&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
| リビングデッドデイ・サバイバー - 8bitゲーム&lt;br /&gt;
| ead3b375-b065-4ca8-ac1c-9be7231e2532&lt;br /&gt;
| Starts the game with JS-code and loads a json-file&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
| El Gaià, un riu fortificat&lt;br /&gt;
| a2446f15-a228-4f57-9aae-a2d114161047&lt;br /&gt;
| Very special, needs SVR in FPNavigator to work&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
| Chess&lt;br /&gt;
| d31be1d3-27d1-45ab-b25e-3b4e9d75cd63&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;requires-google-fonts&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Requires Google fonts =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;multiple-techs&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Multiple techs =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Test Output From WRL To HTML Frame&lt;br /&gt;
| b818e4f2-9ddb-443c-930e-4056c9b61613&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Urbanoids&lt;br /&gt;
| c6c0692b-35a4-4c16-9e89-96aca4eabe2f&lt;br /&gt;
| Java web game with SIDPlug (Browser plugin)&lt;br /&gt;
| Make sure the music plays. The MOD and SID plugins are only used for that game.&lt;br /&gt;
|-&lt;br /&gt;
| Meteor Attack&lt;br /&gt;
| bc4dd9d2-1992-42aa-ae5e-1a41215bb5ad&lt;br /&gt;
| OldCPUSimulator + SPR PJ12&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;has-pop-up-windows&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Has pop-up windows =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| MOTAS: Mystery of Time and Space&lt;br /&gt;
| 5a02f47c-0f4c-4fb3-bf28-1d26538cdd36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;requires-oldcpusimulator&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Requires OldCPUSimulator =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Air Hockey&lt;br /&gt;
| 5a0cee91-0839-4fd0-a4d1-dcfcd2af5b4c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The Return of the Return of Dr. Sloth&lt;br /&gt;
| badf28b5-b746-46a7-bdf9-431c59498133&lt;br /&gt;
| GameZIP + Shockwave&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;flash-compatibility-tests&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Flash Compatibility Tests =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Plugin&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| abcisland&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| aquacade&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| asianata&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| AstoundLauncher&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| AstroAvenger2Loader&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| Atomaders&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| axcontrol&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| axhost&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| BewitchedGameClass&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
| cards&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;flash-compatibility-tests&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Requires SWZ =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Carmelita On The Case And On Your Lap&lt;br /&gt;
| 758a6939-88ba-41e6-9875-cce4f02b006b&lt;br /&gt;
| http://fpdownload.adobe.com/pub/swz/tlf/1.0.0.595/textLayout_1.0.0.595.swz (7421C71F94DB4F028E7528B2D278F3FE4DC21273.swz)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| So Long And Thanks For All The Muffins&lt;br /&gt;
| 010f41f0-49c1-4897-ad8c-44d3d91eb9b2&lt;br /&gt;
| http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz (8F903698240FE799F61EEDA8595181137B996156.swz)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ActiveX + Flash =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Dream Chronicles 2: The Eternal Maze&lt;br /&gt;
| 4fada757-692b-403e-a264-45c0fcd8eaba&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Dream Chronicles 3: The Chosen Child&lt;br /&gt;
| 6601e5e8-7c6e-4fe5-9c51-f284930886e0&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cinema Tycoon Online&lt;br /&gt;
| 5534d05c-7cfa-be75-bb97-3e7b96f9761e&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;gamezip&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= GameZIP =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;single-asset-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Single asset ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3DVIA Player&lt;br /&gt;
| Maximum Torque 3D&lt;br /&gt;
| 2e65e884-82d3-4b64-b872-5e85079f307c&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Alambik&lt;br /&gt;
| Alambik Intro&lt;br /&gt;
| f58592fe-e288-45a9-a057-16028f032375&lt;br /&gt;
| Animation. Prepend launch command with ‘browser’&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave&lt;br /&gt;
| Street Fighter Online&lt;br /&gt;
| 45adc5be-c77a-733a-91ef-4ff8023c94b9&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;multi-asset-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multi Asset ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D Groove GX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3DVIA Player&lt;br /&gt;
| Khufu Reborn&lt;br /&gt;
| 394207fd-aae7-4767-ac3a-1d3d1b7f5ecb&lt;br /&gt;
| heavy multi-asset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Alambik&lt;br /&gt;
| Super Chicken&lt;br /&gt;
| 8381d814-74ea-4279-9ef9-1a476bda5912&lt;br /&gt;
| Multi asset zip file&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ActiveX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash&lt;br /&gt;
| Pandaf Golf II Advanced&lt;br /&gt;
| 8b57109d-99da-08b1-3673-6b98b3dab80d&lt;br /&gt;
| Uses Flashpoint Navigator&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flatland Rover&lt;br /&gt;
| Castle Kathmandu&lt;br /&gt;
| a1d25b33-170c-404b-b875-31a7026a5ea9-1656828771217&lt;br /&gt;
| VRML&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
| Wild Kratts: Monkey Mayhem!&lt;br /&gt;
| 3a15b1df-ac63-4520-8cac-9f1b314b3f38&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hypercosm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Noteworthy&lt;br /&gt;
| Score Samples Using Javascript&lt;br /&gt;
| 8bb85bbd-d191-4fef-ba48-58905a8485dc-1651369829873&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Pulse&lt;br /&gt;
| Curious and Curiouser&lt;br /&gt;
| 21727b7c-a87d-4dba-a10a-bf4690daa116&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ShiVa&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VRML&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Viscape&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| N/A&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;web-browser-compatibility-test&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Web Browser Compatibility Test =&lt;br /&gt;
&lt;br /&gt;
=== Flashpoint Navigator ===&lt;br /&gt;
These are at most single-asset games that should work without any issues. &lt;br /&gt;
Playlist file: https://flashpointarchive.org/w/images/7/71/Browser_Tests.json (updated 4.1.2026).&lt;br /&gt;
[[File:Browser Tests.json|thumb]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| 3D ViaPlayer Plugin&lt;br /&gt;
| The Rollercoaster Experience&lt;br /&gt;
| 38ed6d5d-f718-472f-b90d-d3310fbbb700&lt;br /&gt;
| localvirtools&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Alice&lt;br /&gt;
|Funny Bunny&lt;br /&gt;
|2aa0a692-46c5-4fa4-8057-8e2800e274f6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AnimaFlex Plugin&lt;br /&gt;
| Guitar&lt;br /&gt;
| 99a84b5e-040f-44d2-ab62-8cdf83ca7408&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Authorware Plugin&lt;br /&gt;
| Simple Anatomy Test&lt;br /&gt;
| 8ce74828-1866-43c1-9275-3c17ed9defec&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Burster Plugin&lt;br /&gt;
| TrailzLD&lt;br /&gt;
| 8d6c1a85-5394-42e1-8dc5-c3f037140518&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CastleEngine&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| DeepV Plugin&lt;br /&gt;
| Cruiser&lt;br /&gt;
| b863f11f-6264-4bf5-a591-e0cd3a54e74e&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|DevalVR&lt;br /&gt;
|Spin control&lt;br /&gt;
|fed8b85e-53f5-4157-beb5-1153d0b6261c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| DFusion&lt;br /&gt;
| Magic Mirror&lt;br /&gt;
| e2c1afcd-5659-4cd1-891f-65a81e314169&lt;br /&gt;
| Need webcam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FireBreath&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Flash Plugin&lt;br /&gt;
| Battle of Britain: Commando&lt;br /&gt;
| 0dc31af8-8b17-4132-8e99-777413b9311b&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| GoBit Plugin&lt;br /&gt;
| Burger Shop&lt;br /&gt;
| 25a0bf2c-5b69-46a1-81a2-8e18cff09f21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HD View&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| iPix&lt;br /&gt;
| New West Coast Office&lt;br /&gt;
| d3b2bc0e-c497-4960-83f3-81ef7a620c28&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTML&lt;br /&gt;
| !!!??!!????!!!&lt;br /&gt;
| 17f661ec-9332-4245-987a-06fc2c0ef1d3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Java&lt;br /&gt;
| SAB Baseball&lt;br /&gt;
| cb71d0c2-eb56-41bb-ba5b-545edcffce77&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LiveMath Plugin&lt;br /&gt;
| Animation&lt;br /&gt;
| 5bd06340-6d1a-4b46-88df-76b61a01e729&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mirage&lt;br /&gt;
|Cropping Tool&lt;br /&gt;
|fc903cbb-fb4a-4b1c-a7f0-3a55157f3332&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NPVR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| o2c&lt;br /&gt;
| o2c WebGL Player&lt;br /&gt;
| 54f600dd-98fb-4973-a547-54be3a57c29a&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PanoramIX&lt;br /&gt;
|Surround Videos&lt;br /&gt;
|60a20cc6-3257-46e5-bdf8-43d37caa90b3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Pixound&lt;br /&gt;
|Pixound Plug-in Commercial Gallery&lt;br /&gt;
|ea7b2ad7-15e7-40b7-b2df-2ad0a6a80993&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PopCap Plugin&lt;br /&gt;
| Bejeweled 2&lt;br /&gt;
| 502dfd93-d9ca-4940-826d-64d020c12803&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|QuickDraw 3D&lt;br /&gt;
|Hi-tech control room&lt;br /&gt;
|1670f4a3-0551-4f48-a743-2e5071d2107c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Shockwave 10 Plugin&lt;br /&gt;
| Drome Duel Canyon Zone&lt;br /&gt;
| 55716f50-6c47-4931-83d3-5690fba7970d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Silverlight Plugin&lt;br /&gt;
| Diver&lt;br /&gt;
| 71d25fd8-8d8d-4f5b-9a2a-fdc34fb7b9f7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Sizzler&lt;br /&gt;
|Bouncing Ball Animation&lt;br /&gt;
|8d7fcac8-492b-4e68-b39b-0daa50b36544&lt;br /&gt;
|Animation&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Squeak&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tcl Plugin&lt;br /&gt;
| Tk Notebook Widget&lt;br /&gt;
| b138acce-3ce9-452d-b558-f07b2ebf6aba&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 2.x&lt;br /&gt;
| Glatorian Arena&lt;br /&gt;
| 91df996b-5197-4238-bbde-73564851f600&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 3.x&lt;br /&gt;
| The Last of the Nyoms&lt;br /&gt;
| fcb472af-7cd9-49df-902a-b85c474dd3a0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 3.x&lt;br /&gt;
| Little Dragon 3D&lt;br /&gt;
| 6edd5248-73c6-41b1-820b-edc38043a0a0&lt;br /&gt;
| Only works with Unity 3D 3.5.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Unity 5.x&lt;br /&gt;
| Ant War&lt;br /&gt;
| ee2b70db-24c3-410e-958b-5803a0bd8538&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Unity Web Player&lt;br /&gt;
|Mahjong Classic&lt;br /&gt;
|def4ff1c-4465-46cb-9367-8983ffe7a07b&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Visual WebMap&lt;br /&gt;
| OFFICE.DGN&lt;br /&gt;
| d4010af0-cb4d-44a9-a5fc-693f556b4109&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize V2&lt;br /&gt;
| Jetpak World&lt;br /&gt;
| b93a59c6-c312-47b3-b368-a0a7423c3e04&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize V3&lt;br /&gt;
| Multimedia Fusion Tutorial&lt;br /&gt;
| 410b855a-72aa-42a3-934b-bd4243fc54de&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Vitalize V4&lt;br /&gt;
| Chess&lt;br /&gt;
| d31be1d3-27d1-45ab-b25e-3b4e9d75cd63&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| WebAnimator&lt;br /&gt;
| Check out a scrolling banner&lt;br /&gt;
| a3dfacde-3ca6-41ac-a829-f46be76c956d&lt;br /&gt;
| Animation&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Xara Plugin&lt;br /&gt;
| Cat&lt;br /&gt;
| 3e8bb806-b269-435e-b583-bd967f19a1bd&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Multi-asset Browser games =====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Flash Plugin&lt;br /&gt;
| Arcane Online Mystery Serial: The Stone Circle&lt;br /&gt;
| cf1b0d9c-9c98-0faf-c785-fae25244fead&lt;br /&gt;
| Browser + Multi-asset&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HTML&lt;br /&gt;
|[SpongeBob] I ♥ Dancing&lt;br /&gt;
|aa370ad4-13f9-4b10-b377-a47ce136302d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Shockwave 12 Plugin&lt;br /&gt;
|Gravity Shift&lt;br /&gt;
|9773e944-d9c1-4bf6-a7a1-5fec42cf809a&lt;br /&gt;
|Browser + Multi-asset. Not working 28.12.25. Tested FP 14 / 12 / 11. No idea why - coldice&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GameServers =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| Unity&lt;br /&gt;
| Cartoon Network Universe: FusionFall&lt;br /&gt;
| 8553278e-0dd4-4461-ac8e-100084e9dbc8&lt;br /&gt;
| Uses [https://github.com/OpenFusionProject/OpenFusion OpenFusion]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= URL Parameters and PHP =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| HTML5&lt;br /&gt;
| Haircut (an interactive-adventure song)&lt;br /&gt;
| eda02d86-32f2-48bb-99d4-218a86619da8&lt;br /&gt;
| YouTube Annotation Game&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Gzip Compression =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Platform&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; | ID&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Comment&lt;br /&gt;
! style=&amp;quot;font-weight:bold;&amp;quot; class=&amp;quot;unsortable&amp;quot; | Tester note&lt;br /&gt;
|-&lt;br /&gt;
| HTML5&lt;br /&gt;
| Boogie Bears&lt;br /&gt;
| fd2d2dd9-65b6-489a-a297-ac96116efd4d&lt;br /&gt;
| Unity WebGL Game&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Other Guides]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=File:Browser_Tests.json&amp;diff=11288</id>
		<title>File:Browser Tests.json</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=File:Browser_Tests.json&amp;diff=11288"/>
		<updated>2026-01-04T11:26:57Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flashpoint Playlist with browser games&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flashpoint_Router&amp;diff=11287</id>
		<title>Flashpoint Router</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flashpoint_Router&amp;diff=11287"/>
		<updated>2026-01-03T18:53:10Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://github.com/FlashpointProject/Flashpoint-Router Flashpoint Router]is PHP script used by the infinity-version to serve the correct requested file, either from Flashpoint Mirror, local directory or a backup archive.&lt;br /&gt;
&lt;br /&gt;
The legacy router is served as server by PHP by starting PHP to listen on 22600.&lt;br /&gt;
[[Category:Technologies]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Apache_Ultimate_Webserver&amp;diff=11286</id>
		<title>Apache Ultimate Webserver</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Apache_Ultimate_Webserver&amp;diff=11286"/>
		<updated>2026-01-03T18:52:52Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Apache Ultimate Webserver is a Apache HTTP process listening on port 22600 serving files from the htdocs-directory.&lt;br /&gt;
&lt;br /&gt;
This is used by the ultimate-version of Flashpoint and when creating curation&lt;br /&gt;
[[Category:Technologies]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flashpoint_Proxy&amp;diff=11285</id>
		<title>Flashpoint Proxy</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flashpoint_Proxy&amp;diff=11285"/>
		<updated>2026-01-03T18:52:12Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/FlashpointProxy Flashpoint Proxy] is a library that can be loaded into applications to change their HTTP proxy settings, without changing the proxy settings of the underlying system. It is compatible with any application that uses the WinINet library. It supports the HTTP and FTP protocols, and blocks the HTTPS protocol. &lt;br /&gt;
&lt;br /&gt;
The Mac equivalent of this is available here '''[https://github.com/FlashpointProject/FlashpointProxyMac FlashpointProxyMac].''' &lt;br /&gt;
&lt;br /&gt;
The Flashpoint Proxy library is written such that as soon as it's loaded, it changes the proxy settings for the process it's loaded in. So all that is needed is to patch the executable or DLL's import table to force it to load the Flashpoint Proxy library; no code modification is required. The instructions for doing so are below.&lt;br /&gt;
&lt;br /&gt;
# [https://forum.xda-developers.com/showthread.php?p=2508061 Download the delcert tool] and drag the executable or DLL you want to modify (e.g. flashplayer.exe) onto it. &lt;br /&gt;
#* This will remove its digital signature, which is helpful because patching a file will invalidate its digital signature. We don't want to leave an invalid digital signature on a file; security software tends to view this with suspicion.&lt;br /&gt;
# [https://ntcore.com/?page_id=388 Download and install CFF Explorer].&lt;br /&gt;
# Right-click flashplayer.exe and click &amp;quot;Open with CFF Explorer..&amp;quot;&lt;br /&gt;
# Go to the Import Adder screen. Click &amp;quot;Add&amp;quot; and select the FlashpointProxy binary file.&lt;br /&gt;
# Select &amp;lt;code&amp;gt;DllMain&amp;lt;/code&amp;gt; and choose &amp;quot;Import By Name.&amp;quot; &lt;br /&gt;
# &amp;lt;code&amp;gt;DllMain&amp;lt;/code&amp;gt; will show up in the right-side column. Click &amp;quot;Rebuild Import Table&amp;quot; (leaving any other settings default). &lt;br /&gt;
# You should see the message &amp;quot;Import table correctly rebuilt.&amp;quot; Click File &amp;gt; Save to finish patching.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' A rare problem can occur when patching an application, which will cause it to display a runtime error and fail to run properly. If this happens, it means that CFF Explorer changed certain permissions that it should not have changed; you need to manually change them back. To do this, first open both the unpatched and patched file in CFF Explorer. Select the Section Headers option in each CFF Explorer window. For each value in the Characteristics column that differs between the two files, copy the value from the ''unpatched'' file to the ''patched'' file. But skip the column's bottom value! That permission value is the one that CFF Explorer should have changed; don't change that one back.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Technologies]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11280</id>
		<title>Game Server</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11280"/>
		<updated>2025-12-28T13:59:12Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/FlashpointGameServer Flashpoint Game Server] is a specialized proxy and web game server written in Go. The server acts as a local proxy that intercepts HTTP/HTTPS requests and serves content from archived game data stored in ZIP files.&lt;br /&gt;
&lt;br /&gt;
All technologies uses the Game Server as a proxy. This means all the web-requests will be forwarded to this server.&lt;br /&gt;
&lt;br /&gt;
=== Technical stuff ===&lt;br /&gt;
The server starts two HTTP listeners bound to 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
* '''22500 -''' the proxy listener for applications&lt;br /&gt;
&lt;br /&gt;
* '''22501 -''' internal HTTP Proxy&lt;br /&gt;
&lt;br /&gt;
==== Request flow ====&lt;br /&gt;
Game requests `&amp;lt;nowiki&amp;gt;http://example.com/path/file.swf`&amp;lt;/nowiki&amp;gt; . Proxy rewrites it to `&amp;lt;nowiki&amp;gt;http://127.0.0.1:22501/content/example.com/path/file.swf`&amp;lt;/nowiki&amp;gt;. Internally traffic on 22501 is forwarded to the [[Zipfs|ZipFS]] server which responds with content from the gamezip-file on disk.&lt;br /&gt;
&lt;br /&gt;
If the ZipFS server is unable to handle the response the traffic is forwarded to [[legacy webserver]] on port 22600.&lt;br /&gt;
[[File:State Machine Web Request.drawio.png|thumb|Flowchart showing the request flow from application through gamezip server.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technologies]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Apache_Ultimate_Webserver&amp;diff=11279</id>
		<title>Apache Ultimate Webserver</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Apache_Ultimate_Webserver&amp;diff=11279"/>
		<updated>2025-12-28T13:29:47Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Apache Ultimate Webserver is a Apache HTTP process listening on port 22600 serving files from the htdocs-directory.&lt;br /&gt;
&lt;br /&gt;
This is used by the ultimate-version of Flashpoint and when creating curation&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Legacy_webserver&amp;diff=11278</id>
		<title>Legacy webserver</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Legacy_webserver&amp;diff=11278"/>
		<updated>2025-12-28T13:28:46Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Removed redirect to Apache Ultimate Webserver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Legacy webserver is listening on port 22600. Depending on the Flashpoint-version it may be either the [[Apache Ultimate Webserver]] or the [[Flashpoint Router]] handling the request to serve the correct file.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Legacy_webserver&amp;diff=11277</id>
		<title>Legacy webserver</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Legacy_webserver&amp;diff=11277"/>
		<updated>2025-12-28T13:26:15Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Redirected page to Apache Ultimate Webserver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Apache Ultimate Webserver]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Apache_Ultimate_Webserver&amp;diff=11276</id>
		<title>Apache Ultimate Webserver</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Apache_Ultimate_Webserver&amp;diff=11276"/>
		<updated>2025-12-28T13:26:06Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;The Apache Ultimate Webserver is a Apache HTTP process listening on port 22600 serving files from the htdocs-directory.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Apache Ultimate Webserver is a Apache HTTP process listening on port 22600 serving files from the htdocs-directory.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flashpoint_Router&amp;diff=11275</id>
		<title>Flashpoint Router</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flashpoint_Router&amp;diff=11275"/>
		<updated>2025-12-28T13:24:39Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://github.com/FlashpointProject/Flashpoint-Router Flashpoint Router]is PHP script used by the infinity-version to serve the correct requested file, either from Flashpoint Mirror, local directory or a backup archive.&lt;br /&gt;
&lt;br /&gt;
The legacy router is served as server by PHP by starting PHP to listen on 22600.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Flashpoint_Router&amp;diff=11274</id>
		<title>Flashpoint Router</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Flashpoint_Router&amp;diff=11274"/>
		<updated>2025-12-28T13:21:43Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;The [https://github.com/FlashpointProject/Flashpoint-Router Flashpoint Router]is PHP script to serve the correct requested file, either from Flashpoint Mirror, local directory or a backup archive.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://github.com/FlashpointProject/Flashpoint-Router Flashpoint Router]is PHP script to serve the correct requested file, either from Flashpoint Mirror, local directory or a backup archive.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Legacy_webserver&amp;diff=11273</id>
		<title>Legacy webserver</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Legacy_webserver&amp;diff=11273"/>
		<updated>2025-12-28T13:17:26Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;The legacy webserver is a Apache HTTP process listening on port 22600 serving files from the htdocs directory.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The legacy webserver is a Apache HTTP process listening on port 22600 serving files from the htdocs directory.&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11272</id>
		<title>Game Server</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11272"/>
		<updated>2025-12-28T13:14:12Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/FlashpointGameServer Flashpoint Game Server] is a specialized proxy and web game server written in Go. The server acts as a local proxy that intercepts HTTP/HTTPS requests and serves content from archived game data stored in ZIP files.&lt;br /&gt;
&lt;br /&gt;
All technologies uses the Game Server as a proxy. This means all the web-requests will be forwarded to this server.&lt;br /&gt;
&lt;br /&gt;
=== Technical stuff ===&lt;br /&gt;
The server starts two HTTP listeners bound to 127.0.0.&lt;br /&gt;
&lt;br /&gt;
* '''22500 -''' the proxy listener for applications&lt;br /&gt;
&lt;br /&gt;
* '''22501 -''' internal HTTP Proxy&lt;br /&gt;
&lt;br /&gt;
==== Request flow ====&lt;br /&gt;
Game requests `&amp;lt;nowiki&amp;gt;http://example.com/path/file.swf`&amp;lt;/nowiki&amp;gt; . Proxy rewrites it to `&amp;lt;nowiki&amp;gt;http://127.0.0.1:22501/content/example.com/path/file.swf`&amp;lt;/nowiki&amp;gt;. Internally traffic on 22501 is forwarded to the [[Zipfs|ZipFS]] server which responds with content from the gamezip-file on disk.&lt;br /&gt;
&lt;br /&gt;
If the ZipFS server is unable to handle the response the traffic is forwarded to [[legacy webserver]] on port 22600.&lt;br /&gt;
[[File:State Machine Web Request.drawio.png|thumb|Flowchart showing the request flow from application through gamezip server.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technologies]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=FlashpointAutoMount&amp;diff=11271</id>
		<title>FlashpointAutoMount</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=FlashpointAutoMount&amp;diff=11271"/>
		<updated>2025-12-28T13:12:17Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Created page with &amp;quot;[https://github.com/FlashpointProject/FlashpointAutoMount/tree/main FlashpointAutoMount]is core extension to tell ZipFS to &amp;quot;mount&amp;quot; the ZIP file. thumb&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/FlashpointAutoMount/tree/main FlashpointAutoMount]is core extension to tell [[Zipfs|ZipFS]] to &amp;quot;mount&amp;quot; the ZIP file.&lt;br /&gt;
[[File:State Machine Game Launch.drawio.png|thumb]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=File:State_Machine_Game_Launch.drawio.png&amp;diff=11270</id>
		<title>File:State Machine Game Launch.drawio.png</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=File:State_Machine_Game_Launch.drawio.png&amp;diff=11270"/>
		<updated>2025-12-28T13:11:14Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diagram describing how flashpointautomount works&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11269</id>
		<title>Game Server</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11269"/>
		<updated>2025-12-28T13:08:33Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: Diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/FlashpointGameServer Flashpoint Game Server] is a specialized proxy and web game server written in Go. The server acts as a local proxy that intercepts HTTP/HTTPS requests and serves content from archived game data stored in ZIP files.&lt;br /&gt;
&lt;br /&gt;
All technologies uses the Game Server as a proxy. This means all the web-requests will be forwarded to this server.&lt;br /&gt;
&lt;br /&gt;
=== Technical stuff ===&lt;br /&gt;
The server starts two HTTP listeners bound to 127.0.0.&lt;br /&gt;
&lt;br /&gt;
* '''22500 -''' the proxy listener for applications&lt;br /&gt;
&lt;br /&gt;
* '''22501 -''' internal HTTP Proxy&lt;br /&gt;
&lt;br /&gt;
==== Request flow ====&lt;br /&gt;
Game requests `&amp;lt;nowiki&amp;gt;http://example.com/path/file.swf`&amp;lt;/nowiki&amp;gt; . Proxy rewrites it to `&amp;lt;nowiki&amp;gt;http://127.0.0.1:22501/content/example.com/path/file.swf`&amp;lt;/nowiki&amp;gt;. Internally traffic on 22501 is forwarded to the [[Zipfs|ZipFS]] server which responds with content from the gamezip-file on disk.&lt;br /&gt;
&lt;br /&gt;
If the ZipFS is unable to handle the response the traffic is forwarded to legacy on port 22600.&lt;br /&gt;
[[File:State Machine Web Request.drawio.png|thumb|Flowchart showing the request flow from application through gamezip server.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technologies]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=File:State_Machine_Web_Request.drawio.png&amp;diff=11268</id>
		<title>File:State Machine Web Request.drawio.png</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=File:State_Machine_Web_Request.drawio.png&amp;diff=11268"/>
		<updated>2025-12-28T13:07:41Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diagram of request flow through game zip server for a http request&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
	<entry>
		<id>https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11267</id>
		<title>Game Server</title>
		<link rel="alternate" type="text/html" href="https://flashpointarchive.org/w/index.php?title=Game_Server&amp;diff=11267"/>
		<updated>2025-12-28T12:19:40Z</updated>

		<summary type="html">&lt;p&gt;Coldice2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/FlashpointProject/FlashpointGameServer Flashpoint Game Server] is a specialized proxy and web game server written in Go. The server acts as a local proxy that intercepts HTTP/HTTPS requests and serves content from archived game data stored in ZIP files.&lt;br /&gt;
&lt;br /&gt;
All technologies uses the Game Server as a proxy. This means all the web-requests will be forwarded to this server.&lt;br /&gt;
&lt;br /&gt;
=== Technical stuff ===&lt;br /&gt;
The server starts two HTTP listeners bound to 127.0.0.&lt;br /&gt;
&lt;br /&gt;
* '''22500 -''' the proxy listener for applications&lt;br /&gt;
&lt;br /&gt;
* '''22501 -''' internal HTTP Proxy&lt;br /&gt;
&lt;br /&gt;
==== Request flow ====&lt;br /&gt;
Game requests `&amp;lt;nowiki&amp;gt;http://example.com/path/file.swf`&amp;lt;/nowiki&amp;gt; . Proxy rewrites it to `&amp;lt;nowiki&amp;gt;http://127.0.0.1:22501/content/example.com/path/file.swf`&amp;lt;/nowiki&amp;gt;. Internally traffic on 22501 is forwarded to the [[Zipfs|ZipFS]] server which responds with content from the gamezip-file on disk.&lt;br /&gt;
&lt;br /&gt;
If the ZipFS is unable to handle the response the traffic is forwarded to legacy on port 22600&lt;br /&gt;
[[Category:Technologies]]&lt;/div&gt;</summary>
		<author><name>Coldice2</name></author>
	</entry>
</feed>