Skip to content

@lvcabral lvcabral released this Oct 5, 2019 · 14 commits to master since this release

Release Notes

This version brings the first release of the desktop application and several fixes and improvements:

  • (app) Desktop app for Windows, Linux and macOS
  • (brs) Fixed issues with inline if statements on Parser sjbarag#252 sjbarag#253 sjbarag#309
  • (brs) Implemented global function GetInterface() #42
  • (brs) Added support for an optional parameter on Main() #44
  • (brs) Added RunUserInterface() as alternative for Main() #44
  • (brs) Added missing method maxSimulStreams() on roAudioResource component #26
  • (web) Reduced the app html to be simple, adding links to documentation on the repository
  • (web) Detect and inform user about unsupported browser #40
  • (doc) Reorganized repository folders and documentation for v0.5.0 #43
  • Merged BRS v0.15.0
    • fix(types): Return true for invalid values on RoAssociativeArray#doesExist (sjbarag#323)
    • fix(types,interp): Automatically convert between Int and Float (sjbarag#291)
    • feat(extension): Add brs.runInScope (sjbarag#326)
    • chore(naming): rename src/mocks/ -> src/extensions/ (sjbarag#325)

You can test the web app of release online at

Desktop Apps

  • v0.5.0 - Initial Release
  • v0.5.1 - Fixes on menu (macOS), full screen mode (macOS) and installation artifacts (all)
  • v0.5.2 - Status bar icons, Linux x64 (amd64) binaries and new debian (.deb) package.


  1. Linux users can also install the application from the Snap Store at:
  2. The source code of the desktop application is at:

Dowload Games to Test

Below a list of tested games that are publicly available with source code, download the zip files and have fun!

Assets 7

@lvcabral lvcabral released this Sep 25, 2019 · 45 commits to master since this release

This release has the following changes:

  • Implemented method IsEmpty() for both roArray and roAssociativeArray sjbarag#316
  • Fixed sjbarag#320 Making sure DoesExist() returns true even when value of the existing item is invalid
  • Implemented mock components roChannelStore and roChannelStoreEvent #39
  • Implemented mock of Roku_Ads() object #25
  • Implemented support for rgba on DrawObject* methods #27
  • Added option to configure device font,
  • Added new font family "Roboto"
  • Added new font family "Asap" that is similar to Roku default
  • Implemented missing methods for RoUniversalControlEvent #37
  • Changed DrawText to get string from value property of BrsString
  • fix(parse): Include surrounding whitespace in Block nodes(sjbarag#257)
  • Finished Collision detection implementation (rectangle and circle)
  • Updated roRegion to handle offset properly based on SetWrap() flag
  • Implemented roScreen methods SetPort(), GetPng() and GetByteArray()
  • Fixed for loop issue that should not process loop when step is on the wrong direction of the start-end parameters sjbarag#310 (sjbarag#311)

The website is updated with this release with new games, and you can also get the package below to run the emulator locally.

Assets 3

@lvcabral lvcabral released this Sep 16, 2019 · 88 commits to master since this release

This releases adds a few font related features as follows:

  • Updated website and added new demo channels
  • Added parameter rgba to roScreen.DrawObject() (only alpha opacity supported) #27
  • Fixed for loop to correctly handle steps sjbarag#315
  • Fixed issue that roCompositor was not clearing the canvas properly
  • Implemented channel close detection
  • Fixed roSprite animation when frame time was configured on roRegion
  • Implemented double buffer support for roScreen and roRegion
  • Added method DrawText() to roRegion
  • Implemented string Tokenize() method
  • Added boxing to the numeric types
  • Merged roBoolean, roDouble, roFloat and roInt implementation #35
  • Made file type identification case-insensistive
  • Added support for .csv extension on zip package
  • Removed roSGNode as RSG is out of scope for the emulator
  • Added support for .gif and .jpeg image extensions
  • Fixed #32 Changed default font loading code to use relative path
  • Fixed #30 Moved the screen clear code to run before the splash

The website is updated with this release and a new game, and you can also get the package below to run the emulator locally.

Assets 3

@lvcabral lvcabral released this Sep 9, 2019 · 118 commits to master since this release

This releases adds a few font related features as follows:

  • Support for loading custom fonts from the channel zip package.
  • Included Open Sans as the default device font.
  • Finished roFontRegistry and roFont implementation by adding font metrics.
  • Updated license information.

Included a new dependency to opentype.js package to parse font files.

The website is updated with this release, and you can also get the package below to run the emulator locally.

Assets 3

@lvcabral lvcabral released this Sep 8, 2019 · 120 commits to master since this release

This is the prototype release of the 2D API emulator, forked from the original BRS project.
The following is the list of components implemented (some partially or just mocked):

  • roAudioPlayer.ts (mock)
  • roAudioResource.ts (mock)
  • roBitmap.ts
  • roByteArray.ts
  • roCompositor.ts
  • roDateTime.ts
  • roDeviceInfo.ts
  • roFileSystem.ts
  • roFont.ts
  • roFontRegistry.ts
  • roList.ts
  • roMessagePort.ts
  • roPath.ts
  • roRegion.ts
  • roRegistry.ts
  • roRegistrySection.ts
  • roScreen.ts
  • roSprite.ts
  • roUniversalControlEvent.ts
  • roXMLElement.ts
  • roXMLList.ts

You can install the zip file below to run the application locally, follow the instructions described on the repository Read-Me file.

Alternatively you can try it from the webpage:

Assets 3
You can’t perform that action at this time.