As a BrightScript developer since 2012, I always wanted a way to test my code without the need of a Roku device, in situations like a long flight or a place without any wireless network available. Then in 2016 I decided to learn about the ifDraw2D API in order to develop games for the platform, so I created a few open source remakes of classic games (see links below on Games and Demos). These projects were very challenging and exciting to develop, but brought me some frustration with it, as very few people outside the USA has access to the Roku platform, so a lot of people could only see videos of my games, but never play it.
The development of an emulator for the platform was, to me, a very complex endeavor to start as a side project, so I shelved the idea in my Brain Dump Trello board, until recently, when I learned about the brs open source project, created by Sean Barag, that consists of a command line interpreter for BrightScript.
I could immediatly see, that this project would be the piece that was missing to turn my emulator project a reality!
I forked brs and started sending pull requests to the project, so the interpreter could have the minimum set of components that would make
possible for me to work upon it. In the same weekend I could develop a working proof-of-concept using HTML5
Canvas and after a month of nights and weekends
roXMLElementsis not supported.
roUniversalControlEventto an integer.
if..then..[else]cannot be nested inside another
mobject) is not accessible from a function called inside a method.
roUrlTransferis not implemented.
DrawObject()method partially supported (only alpha opacity).
Modcannot be used as variables (Roku does allow that).
Dimstatement cannot create multi-dimensional arrays.
Invalidfrom a function explicitly declared as
Objectdoesn't work, use
Dynamicor remove type declaration.
Invalidon a function parameter when it explicitly defines the type, generates an error. If
Invalidis possible remove type declaration.
You can also clone the project with Git by running:
$ git clone git://github.com/lvcabral/brs-emu.git