Shockwave Curation: Difference between revisions

From Flashpoint Datahub
Jump to navigation Jump to search
(edit Robotduck Launch Command to better method)
(Added blank CCT files tip)
 
(12 intermediate revisions by 6 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. 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.
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.


The SPR arguments explained in the video are also briefly outlined [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint here] for your reference.
'''IMPORTANT:''' Here are some important notes and updates, since the video is slightly out of date and some information is no longer correct.
 
* ''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.
* 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.
* If the game runs too fast on modern devices, use OldCPUSimulator. Link to the video tutorial: https://www.youtube.com/watch?v=WBbQ_afDAE0
* 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.
 
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.


== Files ==
== Files ==
Line 14: Line 21:
== Examples ==
== 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.
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.
 


'''Ezone'''
===Ezone===


Application Path: <code>FPSoftware\Shockwave\PJ851\SPR.exe</code>
Application Path: <code>FPSoftware\Shockwave\PJ851\SPR.exe</code>
Line 24: Line 30:
  "http://www.ezone.com/games/space/wrapper_ezo.dcr" --do "member('gameName').text = 'space.dcr'" --forceTheExitLock 0
  "http://www.ezone.com/games/space/wrapper_ezo.dcr" --do "member('gameName').text = 'space.dcr'" --forceTheExitLock 0


 
===Robotduck===
'''Robotduck'''


Application Path: <code>FPSoftware\Shockwave\PJ101\SPR.exe</code>
Application Path: <code>FPSoftware\Shockwave\PJ101\SPR.exe</code>
Line 32: Line 37:
  "http://www.miniclip.com/games/bprally/en/game.dcr" --setTheRunMode "Plugin" --disableGoToNetPage --do "forget(timeout('securityCheck Timeout'))" --do "go(2)"
  "http://www.miniclip.com/games/bprally/en/game.dcr" --setTheRunMode "Plugin" --disableGoToNetPage --do "forget(timeout('securityCheck Timeout'))" --do "go(2)"


 
===Silent Bay Studios===
'''Silent Bay Studios'''


Application Path: <code>FPSoftware\Shockwave\PJ1159\SPR.exe</code>
Application Path: <code>FPSoftware\Shockwave\PJ1159\SPR.exe</code>
Line 40: Line 44:
  "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===
'''Rayamedia'''


Application Path: <code>FPSoftware\Shockwave\PJ1159\SPR.exe</code>
Application Path: <code>FPSoftware\Shockwave\PJ1159\SPR.exe</code>
Line 50: Line 53:
== More Tips ==
== More Tips ==


Here are some additional tips for solving problems you may encounter when curating.
Here are some additional tips for solving problems you may encounter when curating. If you forget how to use an SPR argument, be sure to consult [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint the SPR Readme]!


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.
If the error message you see in SPRD is "handler not defined", try adding <code>--preload #movie</code> to the end of your Launch Command.
If a game requests a "dummy.cct" or "empty.cct" 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.


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.
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))"
  --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:
  --newScriptText "on closeRequest" --newScriptText "if keyPressed(53) = 0 then quit"
  --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 to 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:
Line 70: Line 75:
== Debugging ==
== Debugging ==


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.  
Flashpoint 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. 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.


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:
SPRD also provides a console window. Here's how to use 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.
Line 79: Line 84:
* <code>--trace 1</code>: Lingo tracing messages will appear in SPRD's console.
* <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.
* <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.
'''See Also''': [[Shockwave Xtras]]
<noinclude>
[[Category:Curation Guides]]
</noinclude>

Latest revision as of 07:04, 12 January 2024

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

IMPORTANT: Here are some important notes and updates, since the video is slightly out of date and some information is no longer correct.

  • 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.
  • 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.
  • If the game runs too fast on modern devices, use OldCPUSimulator. Link to the video tutorial: https://www.youtube.com/watch?v=WBbQ_afDAE0
  • 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.

The SPR arguments explained in the video are also briefly outlined in SPR's README 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 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" --disableGoToNetPage --do "forget(timeout('securityCheck Timeout'))" --do "go(2)"

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 you forget how to use an SPR argument, be sure to consult the SPR Readme!

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 section below for more information about SPRD.

If the error message you see in SPRD is "handler not defined", try adding --preload #movie to the end of your Launch Command.

If a game requests a "dummy.cct" or "empty.cct" file, but the file doesn't exist on the website where the game is hosted, you may use one of these CCT files in its place.

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 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. 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.

SPRD 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.

See Also: Shockwave Xtras