Shockwave Curation: Difference between revisions

From Flashpoint Datahub
Jump to navigation Jump to search
m (Added link to text version of the YT video)
m (changed the exit immediately script)
(7 intermediate revisions by 2 users not shown)
Line 2: Line 2:
This page contains information and tips on curating Shockwave games.  
This page contains information and tips on curating Shockwave games.  


Please watch [https://youtu.be/QA9fbL4YplM this video] before curating Shockwave games. A text version can be found [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint here]. The video is long, but information packed! Hopefully it isn't too confusing - if you have any questions please ask in #shockwave-chat on the Flashpoint Discord server. The link in the next section of this page has the files in the video. The video is still up to date as of 2019-03-17, though there will likely be changes to how curations work soon.
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-chat on the Flashpoint Discord server. The link in the next section of this page has the files in the video.
 
The SPR arguments explained in the video are also briefly outlined [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint here] for your reference.


== Files ==
== Files ==
Line 8: Line 10:
Here is the download link for the files mentioned in the video.
Here is the download link for the files mentioned in the video.


https://drive.google.com/file/d/1L1EsiER5iwqy2EnXEKO1Hkva_xXONVnq/view?usp=sharing
https://drive.google.com/open?id=1mHgmWcZ7ayLedwFygtVao4AHJlFm-urG


== Examples ==
== Examples ==
Line 17: Line 19:
'''Ezone'''
'''Ezone'''


Application Path: <code>FPSoftware\Shockwave\PJ101\SPR.exe</code>
Application Path: <code>FPSoftware\Shockwave\PJ851\SPR.exe</code>


Launch Command:  
Launch Command:  
Line 37: Line 39:
Launch Command:  
Launch Command:  
  "http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr" --do "member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'"
  "http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr" --do "member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'"
'''Rayamedia'''
Application Path: <code>FPSoftware\Shockwave\PJ1159\SPR.exe</code>
Launch Command:
"http://www.miniclip.com/games/game-name/en/wrapper_rayamedia.dcr" --do "member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'"


== More Tips ==
== More Tips ==
Line 43: Line 53:




If a game opens in SPR but exits immediately, it might be exiting once it reaches the last frame instead looping properly. To fix this problem, add the string below to the end of the launch command. And if that doesn't work, try replacing the word <code>exitFrame</code> with <code>enterFrame</code>.
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.
--do "put 'on exitFrame' into line 1 of LPST" --do "put 'if the frame = the lastFrame then go to frame 1' into line 2 of LPST" --do "put 'end' into line 3 of LPST" --do "_movie.newMember(#script).scriptText = LPST"
--newScriptText "on new me" --newScriptText "set flt to new(timeout(), '_fixLoop', the maxInteger, #timeoutHandler, me)" --newScriptText "set the persistent of flt to 1" --newScriptText "return(me)" --newScriptText "on timeoutHandler me" --newScriptText "on exitFrame me" --newScriptText "if the frame >= the lastFrame then go(1)" --newScriptType #parent --do "global _fl" --do "set _fl to new(script(newScriptMember))"




To make a game close with the X button but not the escape key, add this to the end of the launch command:
To make a game close with the X button but not the escape key, add this to the end of the launch command:
  --do "put 'on closeRequest' into line 1 of CRST" --do "put 'if keyPressed(53) = false then halt()' into line 2 of CRST" --do "put 'pass' into line 3 of CRST" --do "put 'end' into line 4 of CRST" --do "_movie.newMember(#script).scriptText = CRST"
  --newScriptText "on closeRequest" --newScriptText "if keyPressed(53) = 0 then quit"




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:
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:
  --do "set the centerStage = 1"
  --do "set the centerStage to 1"




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:
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:
  --do "set the rect of the window = rect(0, 0, 800, 600)" --do "set the centerStage = 1"
  --do "set the rect of the stage to rect(0, 0, 800, 600)" --do "set the centerStage to 1" --do "set the fixStageSize to 1"


== Debugging ==
== Debugging ==


If you're experiencing a different problem with a game, there are a few ways to figure out how to solve it.
Flashpoint Core also includes a special debug version of SPR, appropriately called ''SPRD''. To use SPRD, just replace <code>SPR.exe</code> with <code>SPRD.exe</code> in a Shockwave game's Application Path.  


Adding the following to the end of an SPR launch command will open the game in a special debugging mode:
SPRD shows more detailed error messages, which can be helpful for debugging games. It also provides a console window. Here's how to use the console:
--do "the debugPlaybackEnabled = 1" --do "put 'on rightMouseUp' into DBST" --do "put '_movie.traceScript = not(_movie.traceScript)' into line 2 of DBST" --do "put 'end' into line 3 of DBST" --do "_movie.newMember(#script).scriptText = DBST"
 
When the game is launched, a console window will open along with it.
* Right-click anywhere within the game window to toggle tracing on or off. When tracing is on, scripting events in the game will be printed to the console.
* Type <code>put variableName</code> to print the value of <code>variableName</code> to the console.
* Type <code>put variableName</code> to print the value of <code>variableName</code> to the console.
* Type any Lingo command to run it inside the game.
* Type any Lingo command to run it inside the game.
Finally, SPRD introduces two exclusive arguments to help you debug games:
* <code>--trace 1</code>: Lingo tracing messages will appear in SPRD's console.
* <code>--traceLogFile "messages.txt"</code>: Lingo tracing messages will be logged to the file <code>messages.txt</code>. You may specify a different filename if you prefer.

Revision as of 06:19, 5 January 2020

This page contains information and tips on curating Shockwave games.

Please watch 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-chat on the Flashpoint Discord server. The link in the next section of this page has the files in the video.

The SPR arguments explained in the video are also briefly outlined here for your reference.

Files

Here is the download link for the files mentioned in the video.

https://drive.google.com/open?id=1mHgmWcZ7ayLedwFygtVao4AHJlFm-urG

Examples

Here are Application Paths/Launch Commands you can copy-paste into Flashpoint Core 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.


Ezone

Application Path: FPSoftware\Shockwave\PJ851\SPR.exe

Launch Command:

"http://www.ezone.com/games/space/wrapper_ezo.dcr" --do "member('gameName').text = 'space.dcr'" --forceTheExitLock 0


Robotduck

Application Path: FPSoftware\Shockwave\PJ101\SPR.exe

Launch Command:

"http://www.miniclip.com/games/bprally/en/game.dcr" --setTheRunMode "Plugin" --setExternalParam "sw1" "code=3952e9a8f4df995e30686249eb94825d4b84ae" --disableGoToNetPage --bugfixShockwave3DBadDriverList


Silent Bay Studios

Application Path: FPSoftware\Shockwave\PJ1159\SPR.exe

Launch Command:

"http://www.miniclip.com/games/game-name/en/wrapper_silentbaystudios.dcr" --do "member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'"


Rayamedia

Application Path: FPSoftware\Shockwave\PJ1159\SPR.exe

Launch Command:

"http://www.miniclip.com/games/game-name/en/wrapper_rayamedia.dcr" --do "member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'"

More Tips

Here are some additional tips for solving problems you may encounter when curating.


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.

--newScriptText "on new me" --newScriptText "set flt to new(timeout(), '_fixLoop', the maxInteger, #timeoutHandler, me)" --newScriptText "set the persistent of flt to 1" --newScriptText "return(me)" --newScriptText "on timeoutHandler me" --newScriptText "on exitFrame me" --newScriptText "if the frame >= the lastFrame then go(1)" --newScriptType #parent --do "global _fl" --do "set _fl to new(script(newScriptMember))"


To make a game close with the X button but not the escape key, add this to the end of the launch command:

--newScriptText "on closeRequest" --newScriptText "if keyPressed(53) = 0 then quit"


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:

--do "set the centerStage to 1"


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:

--do "set the rect of the stage to rect(0, 0, 800, 600)" --do "set the centerStage to 1" --do "set the fixStageSize to 1"

Debugging

Flashpoint Core also includes a special debug version of SPR, appropriately called SPRD. To use SPRD, just replace SPR.exe with SPRD.exe in a Shockwave game's Application Path.

SPRD shows more detailed error messages, which can be helpful for debugging games. It also provides a console window. Here's how to use the console:

  • Type put variableName to print the value of variableName to the console.
  • Type any Lingo command to run it inside the game.

Finally, SPRD introduces two exclusive arguments to help you debug games:

  • --trace 1: Lingo tracing messages will appear in SPRD's console.
  • --traceLogFile "messages.txt": Lingo tracing messages will be logged to the file messages.txt. You may specify a different filename if you prefer.