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.
Here is the download link for the files mentioned in the video.
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.
"http://www.ezone.com/games/space/wrapper_ezo.dcr" --do "member('gameName').text = 'space.dcr'" --forceTheExitLock 0
"http://www.miniclip.com/games/bprally/en/game.dcr" --setTheRunMode "Plugin" --setExternalParam "sw1" "code=3952e9a8f4df995e30686249eb94825d4b84ae" --disableGoToNetPage --bugfixShockwave3DBadDriverList
Silent Bay Studios
"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_rayamedia.dcr" --do "member('gameUrl').text = 'http://www.miniclip.com/games/game-name/en/game_name.dcr'"
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 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
--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"
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"
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"
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"
If a game window resizes when a new Shockwave movie is loaded, you can lock it to a specific resolution using the
fixStageSize property. This is typically needed if a game uses a loader movie and a main movie, and both movies have a different stage size from the resolution that the game is embedded at on a webpage. The following command will set the window resolution to 800 by 600 pixels, then lock it so that loading subsequent movies cannot change the window resolution:
--do "set the rect of the window = rect(0, 0, 800, 600)" --do "set the centerStage = 1" --do "set the fixStageSize = 1"
Flashpoint Core also includes a special debug version of SPR, appropriately called SPRD. To use SPRD, just replace
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:
put variableNameto print the value of
variableNameto 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.