Who rated this post

cancel
Showing results for 
Search instead for 
Did you mean: 
HeikoAnkenbrand
Champion Champion
Champion

Installing Doom in SmartConsole

 

Hello everyone,

I was inspired by the following article sk164752 Installing DOOM on Gaia  and I was considering whether this would also work in the SmartConsole. Since the SmartConsole is web based and uses Javascript, I was hopeful!

For copyright reasons, I do not want to provide a ready SmartConsole Extension here.

To run the game and other DOS games, you can use the javascript DOS box from:
https://js-dos.com

However, you can easily install the game and other games by following the steps below.

Please note this procedure is not supported and not secure.
Under no circumstances should this be done in a production environment.

This is a proof of concept and for fun:

1) Upload the following files to your web server.
     -> https://js-dos.com/cdn/DOOM.png
     -> https://js-dos.com/cdn/js-dos-api.js
     -> https://js-dos.com/cdn/js-dos-v3.js

2) Find the following place in the file „js-dos-api.js“ and remove the crossed out area.
     …
          return new Dosbox.Xhr('https://js-dos.com/cdn/js-dos-v3.js', {
     …

3) Search on Google for the following file and copy it to your web server.
    -> DOOM-@evilution.zip

4) Create the following manifest file on the web server.
    -> doom.json

 

{
  "extension": {
	  "name": "Doom",
	  "version": "1.0",
	  "description": "---",
	  "author": "---",
	  "email": "---",
	  "product-url": "---e",
	  "provider": "---",
	  "license": "GPL",
	  "extension-version-requirements": {
		  "minimum-version": "1.2"
    }
  },
  "locations": [
    {
		"location": "details-pane",
		"relevant-types": ["gateways"],
		"ui-element": {
			"type": "tab",
			"caption": "Doom",
			"tooltip": "Doom Tip.",
			"action": {
				"details-level": "full",
				"method": "get",
				"trigger-id": "gateways-details-pane",
				"url": "doom.htm"
		}
	  }
    }

  ],
	"requested-permissions": {
		"client": ["get-read-only-session", "run-read-only-commands"]
  }
}

 

5) Create the following html file on the web server
    -> doom.htm

 

<!doctype html>
  <html lang="en-us">
    <head>
      <meta charset="utf-8">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <title>DOOM</title>
      <style type="text/css">
        .dosbox-container { width: 640px; height: 400px; }
        .dosbox-container > .dosbox-overlay { background: url(DOOM.png); }
     </style>
   </head>
   <body>
     <div id="dosbox"></div>
      
     <script type="text/javascript" src="js-dos-api.js"></script>
     <script type="text/javascript">
       var dosbox = new Dosbox({
         id: "dosbox",
         onload: function (dosbox) {
           dosbox.run("DOOM-@evilution.zip", "./DOOM/DOOM.EXE");
         },
         onrun: function (dosbox, app) {
           console.log("App '" + app + "' is runned");
         }
       });
     </script>
   </body>
 </html>

 

 

Now you can install the manifest file "doom.json" over the SmartConsole.

Have fun playing Doom.

➜ CCSM Elite, CCME, CCTE
(2)
Who rated this post