diff --git a/README.md b/README.md index 7e7926a6..7296abb9 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ ## The Repository -This repository was originally a fork from [**brs**](https://github.com/sjbarag/brs) project, a _command line interpreter_ for **BrightScript** language created by [Sean Barag](https://github.com/sjbarag/). This repository extends **brs** by implementing the **Draw 2D API** components (`roScreen`, `roCompositor`, `roRegion`, etc.) and several other **BrightScript** components allowing a full channel execution over an **HTML5 Canvas**, including emulation of the Roku remote control. I will keep sending _pull requests_ to the original project, of fixes and implementations done here, so the _interpreter_ can improve and better support this emulator. +This repository extends [**brs**](https://github.com/sjbarag/brs), a _command line interpreter_ for **BrightScript** language, by implementing the **Draw 2D API** components (`roScreen`, `roCompositor`, `roRegion`, etc.) and several other **BrightScript** components allowing a full channel execution over an **HTML5 Canvas**, including emulation of the Roku remote control. We try to keep both projects synchronized as much as possible, but as there are scope differences not all implementations from **brs** will be merged here and vice-versa. ### So can I use this to watch TV without a Roku? -Nope! Both projects, **BRS** and **BRS-EMU**, currently has no intention of emulating the Roku OS user interface, integrating with the Roku store, or emulating media content playback. Although the **BRS-EMU** project runs channels with user interface, it does only support **2D API** components, mostly for **game development**, see [Current Limitations](docs/limitations.md) page for full details on what is out of scope. +Nope! Neither projects, **brs** or **brs-emu**, currently has any intention of emulating the Roku OS user interface, integrating with the Roku store, or emulating media content playback. Although **brs-emu** project runs channels with user interface, it does only supports the **2D API** components, mostly for **game development**, see [Current Limitations](docs/limitations.md) page for full details on what is out of scope.
@@ -18,7 +18,7 @@ This emulator is bundled as a **[Webpack](https://webpack.js.org/)** Javascript The **BrightScript 2D API Emulator** is a full client-side library, nothing is sent or processed in the server side. In addition to the included sample **web application**, every release also includes a multi-platform **desktop application** (Windows, Linux & macOS) that uses the same library generated by this project. -The desktop app, introduces several aditional features, such as the **full screen** support, **ECP** and **Remote Console** servers to allow integration with 3rd party development tools like the [VSCode BrightScript Extension](https://marketplace.visualstudio.com/items?itemName=celsoaf.brightscript). The app source code is available in another repository, located at https://github.com/lvcabral/brs-emu-app. +The desktop app, introduces several aditional features, such as the **full screen** support, **ECP** (External Control Protocol) and **Remote Console** servers to allow integration with 3rd party development tools like the [VSCode BrightScript Extension](https://marketplace.visualstudio.com/items?itemName=celsoaf.brightscript). The Electron app source code and documentation is available in another repository, located at https://github.com/lvcabral/brs-emu-app. ## Contributing @@ -32,27 +32,7 @@ There are many ways in which you can participate in the project, read documents If you just want to try the emulator, not downloading or installing anything, then go to the demo website at: https://lvcabral.com/brs ### Web Application -As mentioned above, this repo provides a sample web appplication for testing the emulator. The application cannot be run as pure HTML page, because some functionalities used by the emulator have security restrictions on the browser engine, so you will need a web server to run the application. For that you can use `Apache` or `IIS` but there is a simpler option if your have [Python](https://www.python.org/) installed. The steps below consider that option: - -**Note**: The method described below will not work starting from **Chrome** version **92** as the emulator sample app will need to be hosted with [COOP and COEP custom headers](https://developer.chrome.com/blog/enabling-shared-array-buffer/) to allow isolation and enable usage of **ShareArrayBuffer**. More information visit: https://developer.chrome.com/blog/enabling-shared-array-buffer/ - -* Download the `zip` file from the [latest release](https://github.com/lvcabral/brs-emu/releases) -* Unzip the package to a folder. -* Using your OS `terminal` run the commands below inside the `app` directory. -* As a shortcut you can also use two batch files named `server.sh` and `server.bat` available on `app` folder. -* Linux - ``` - $ python -m SimpleHTTPServer 8888 - or - $ sh ./server.sh - ``` -* Windows - ``` - c:\github\brs-emu\app> python -m http.server 8888 - or - c:\github\brs-emu\app> ./server.bat - ``` -* With the webserver running you can now open your Chromium based browser at the page `http://localhost:8888/` +As mentioned above, this repo provides a sample web appplication for testing the emulator, located under the `app` folder. The application cannot be run as pure HTML page, because some functionalities used by the emulator have security restrictions on the browser engine, so you will need a web server to run it. For that you can use `Apache`, `IIS` or any simpler web server, but please note that starting from **Chrome** version **92**, the emulator web app will require to be hosted with [COOP and COEP custom headers](https://developer.chrome.com/blog/enabling-shared-array-buffer/) to allow isolation and enable usage of **ShareArrayBuffer**. More information visit: https://developer.chrome.com/blog/enabling-shared-array-buffer/ ### Desktop Application