SPR for Mac: Difference between revisions
m (category) |
No edit summary |
||
Line 1: | Line 1: | ||
This page provides information about nosamu's SPR for Mac. | This page provides information about nosamu's SPR for Mac. Because few of SPR's features are supported, it is preferable to run SPR through Wine instead. SPR for Mac is unlikely to receive any updates in the future. | ||
For information about the standard version of SPR, see its [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint GitHub repository]. | For information about the standard version of SPR, see its [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint GitHub repository]. | ||
Revision as of 23:01, 16 May 2022
This page provides information about nosamu's SPR for Mac. Because few of SPR's features are supported, it is preferable to run SPR through Wine instead. SPR for Mac is unlikely to receive any updates in the future.
For information about the standard version of SPR, see its GitHub repository.
Latest Build - 2019-12-13
Download Build: http://bluepload.unstable.life/spr-mac-2019-12-13bin.zip
Download Source: http://bluepload.unstable.life/spr-mac-2019-12-13src.zip
Instructions for Building
- Download and install Adobe Director 11.5.
- Enter a serial number. Ask in the Discord if you're not sure how to obtain one.
- Install the Adobe Director 11.5.9 update.
- Download Valentin's CommandLine Xtra.
- Copy
CommandLine.xtra
into/Applications/Adobe Director 11/Configuration/Xtras
. - In Adobe Director, open the file and click File -> Publish.
Supported LeechProtectionRemovalHelp Functions
setTheMachineType
: Overrides themachineType()
function.setExternalParam
: Generates a Lingo propList of externalParams and overrides theexternalParamCount
,externalParamName
, andexternalParamValue
functions to read from this propList.forceTheExitLock
: Sets theexitLock
Lingo property after going to the first Director movie. This is usually ineffective because it does not "force" the exitLock, and games are still able to set the property.forceTheSafePlayer
: If it receives a value of 1, it sets thesafePlayer
property to True. Because the safePlayer cannot be turned off once it is turned on, this accomplishes the same thing as "forcing" the property. However, unlike LeechProtectionRemovalHelp, this cannot force the safePlayer off.disableGotoNetMovie
: Overrides thegotoNetMovie
function with a function that does nothing.disableGotoNetPage
: Overrides thegotoNetPage
function with a function that does nothing.
Supported Lingo Functions
do
: See SPR's GitHub repository.go
: See SPR's GitHub repository.putScriptText
: Adds a line of scriptText to the script that is inserted into each Director movie.
How SPR for Mac works
SPR for Mac is powered by a Lingo script with a function corresponding to every LeechProtectionRemovalHelp function. Because most SPR functions are impossible to accomplish with pure Lingo, most functions in SPR for Mac's Lingo script do nothing. They exist purely to prevent a script error when an attempt is made to call a LeechProtectionRemovalHelp function.
Any built-in Lingo function can be overridden simply by creating a custom Lingo function with the same name. SPR for Mac can create functions to replace, and thus disable, gotoNetMovie
and gotoNetPage
.
A few Lingo properties that LeechProtectionRemovalHelp can set have corresponding Lingo getter functions. When the value of a property with a getter function is accessed, that getter function is always called. Since any built-in Lingo function can be overridden, any property with a getter function can be overridden with Lingo alone. Many of SPR for Mac's functions take advantage of this.
SPR for Mac inserts a script into the first movie that it goes to. This script includes dummy functions for each LeechProtectionRemovalHelp function to prevent script errors when LeechProtectionRemovalHelp functions are called. The putScriptText
function allows the user to add lines of scriptText to this default script. This allows the user to define or even override Lingo functions inside of a game.
The script that SPR for Mac inserts includes self-replication functionality. This works by overriding the default Lingo go
function. When go
is called, the script will navigate to the next movie using _movie.go
and copy itself into the new movie. However, if the Director movie itself calls _movie.go
instead of go
, this functionality does not work.