Shockwave Curation
This page contains information and tips on curating Shockwave games.
Please watch this video before curating Shockwave games. A text version can be found 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.
Files
Here is the download link for the files mentioned in the video.
https://drive.google.com/file/d/1L1EsiER5iwqy2EnXEKO1Hkva_xXONVnq/view?usp=sharing
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\PJ101\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'"
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 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 exitFrame
with enterFrame
.
--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"
Debugging
If you're experiencing a different problem with a game, there are a few ways to figure out how to solve it.
Adding the following to the end of an SPR launch command will open the game in a special debugging mode:
--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
put variableName
to print the value ofvariableName
to the console. - Type any Lingo command to run it inside the game.