All notable changes to this project will be documented in this file.
v2.2.0 - Hide Editor and Electron 39 - 11 Feb 2026
This release includes several improvements and bug fixes to the BrightScript Simulator. It upgrades Electron to v39, bringing performance enhancements and security updates. Additionally, it introduces a new feature that allows users to hide or show the editor panel manually, providing a more flexible workspace. The brs-engine dependency is also upgraded to v2.1.0 with RSG extension, which includes various fixes and improvements to the BrightScript language and SceneGraph support.
- Upgraded Electron to v39 by @lvcabral in #241
- Changed the Editor/Console window to allow user to hide/show the editor panel manually by @lvcabral in #242
- Upgraded
brs-engineto v2.1.0 (with RSG extension), main changes were:- (brs) Fixed MicroDebugger stack trace and context (variables)
- (brs) Properly handle crash during debugger session
- (brs) Properly handle files with
UTF-8 BOMonLexer - (brs) Implemented DRM detection in browser environment to populate
roDeviceInfo.getDrmInfoEx() - (brs) Fix video URL handling to correctly process package video files
- (brs) Added support for the
millisecondsparam onroDateTime.toISOString() - (brs) Allowed to use
globalas function parameter name - (brs) Add LongInteger (Int64) support to Str() global function
- Changes on
brs-scenegraphpackage (release v0.1.0):- (rsg) Implement thread updates similar to SceneGraph Rendezvous
- (rsg) Fixed
Scenegraphcrash handling and stack trace - (rsg) Implemented support for debugging Task threads
- (rsg) Added
PosterGridand improved focus style handling onArrayGridbased nodes - (rsg) Fixed
ScrollingLabelto handlehorizAlignand actually scroll when needed - (rsg) Added
InfoPanenode - (rsg) Fixed the handling of
OKkey inRowListandZoomRowList - (rsg) Added
setNodeFocusmethod toArrayGridto resetitemFocusedwhen getting the focus - (rsg) Added
sgnodescommand toMicroDebuggerto list node type statistics - (rsg) Added
MaskGroupdraft and fixed several issues with field assignment - (rsg) Fixed component XML parsing of
interfaceto handle attributes as case-insensitive - (rsg) Improved parsing of field types:
StringArray,Vector2DandVector2DArray - (rsg) Fixed XML parsing to support
aliasfield to be set withouttype - (rsg) Added support for default item component on
RowListand item focus callback inArrayGrid - (rsg) Implemented all
PanelSetrelated nodes - (rsg) Fixed
rolefields to not be case sensitive - (rsg) Implemented the context expansion for the Main thread
- (rsg) Allowed replacing hidden fields when extending
ContentNode - (rsg) Prevent issues with
Videonode on startup (after the Splash) - (rsg) Improved handling of manifest entries
ui_resolutionsanduri_resolution_autosub - (rsg) Fixed crash when
m.top.getScene()is used oninit()in aTaskthread - (rsg) Implemented
ancestorBoundingRect()method - (rsg) Added support for multiple
Nodefield aliases (CSV) - (rsg) Fixed
Node.setValue()signature to prevent field creation on assignment - (rsg) Fixed item component handling to not fail when fields are not defined in XML
- (rsg) Fixed
Nodefield aliases observer trigger - (rsg) Fixed
Poster,BusySpinner,VideoandTrickPlayBarto properly handle child nodesuriupdate - (rsg) Fixed
BusySpinnerdimensions calculation - (rsg) Fixed circular dependency issue when
Nodehas child with its sameidinalias - (rsg) Fixed
StandardDialogfocus andbackkey press handling - (rsg) Fixed observables serialization and handling of
InfoFields
Full Changelog: v2.2.0
v2.1.3 - Animation and Interpolator Nodes - 06 Jan 2026
This release includes several bug fixes and improvements to the BrightScript Simulator. It addresses issues related to custom Settings icons on Windows OS, Roku devices detection on computers with multiple network interfaces, resizing the main window on macOS, and enforces a single application instance. Additionally, it upgrades the brs-engine dependency to v2.0.4 with RSG extension, bringing various fixes and enhancements to the BrightScript language and SceneGraph support including the implementation of Animation and Interpolator nodes.
- Fixed custom Settings icons on Windows OS by @lvcabral in #237
- Improved Roku devices detection on computers with several NICs by @lvcabral in #238
- Fixed resizing main window on MacOS by @lvcabral in #239
- Enforce single application instance by @lvcabral in #240
- Upgraded
brs-engineto v2.0.4 (with RSG extension), main changes were:- (brs) Fixed debugger to restore the context on
RunTimeError - (brs) Added
toBooleanfor all numeric components - (brs) Fixed
CreateObjectto properly handle boxed parameters and raiseRunTimeError - (rsg) Fixed
roSGNodecreation using boxedStringasnodeType - (rsg) Fixed focus when
initialFocusis not set - (rsg) Fixed:
ArrayGridbased nodes must reset focused item whencontentis updated - (rsg) Fixed
findNodeto prioritize search onchildren - (rsg) Implemented
AnimationandInterpolatornodes - (rsg) Changed
Nodeto preserve field name case - (rsg) Fixed conflict on
roSGScreenscene events handling - (cli) Fixed CLI loading SceneGraph components on Windows file system
- (rsg) Optimized
roSGScreento only render when changes happened
- (brs) Fixed debugger to restore the context on
Full Changelog: v2.1.3
v2.1.2 - Bug Fixes on BrightScript Engine - 31 Dec 2025
This release brings several bug fixes to the BrightScript Simulator by upgrading the brs-engine dependency to v2.0.4 with RSG extension v.0.0.4. Key fixes include preventing division by zero errors in roAudioMetadata, correcting font metric checks in roFontRegistry, and addressing rendering issues in Poster and Overhang components. Additionally, it resolves event handling problems in item components of ArrayGrid based nodes, allows assignment of roPath to String fields in Field, and prevents crashes in Task when updating fields with null.
- Upgraded
brs-engineto v2.0.4 (with RSG extension), main changes were:- (brs) Prevented division by zero on
roAudioMetadata - (brs) Fixed
roFontRegistryto properly check parsed font metrics - (rsg) Fixed
Posterrendering to match Roku's automatic scaling - (rsg) Fixed
Overhangdefault logo scaling - (rsg) Fixed item component's events on
ArrayGridbased nodes - (rsg) Changed
Fieldto allow assignroPathto aStringfield - (rsg) Fixed
Taskto prevent crash on updated fields withnull
- (brs) Prevented division by zero on
Full Changelog: v2.1.2
v2.1.1 - External Storage and SG fixes - 24 Dec 2025
This release adds new settings tab to allow mounting and unmounting an external storage volume (ext1:/) in the BrightScript Simulator, allowing apps to access files to this volume as they would on a real Roku device. It also includes several fixes to the SceneGraph implementation, improving stability and compatibility with Roku applications.
- Added support to mount/unmount an External volume (ext1:/) by @lvcabral in #235
- Prevent duplicate
brs-engineversion on About dialog on reset by @lvcabral in #236 - Upgraded
brs-engineto v2.0.3 (with RSG extension), bringing the following changes- (brs) Added support to dynamically mount/unmount
ext1:volume - (brs) Changed
roFileSystem.getVolumeInfo()to properly returnext1:/information - (rsg) Implemented support for
changefield inNode - (rsg) Changed
Taskto update existingNodefields to preserve references - (rsg) Fixed
NodeenvironmenthostNodeinitialization - (rsg) Fixed
Node.callFunc()to not be case sensitive
- (brs) Added support to dynamically mount/unmount
Full Changelog: v2.1.1
v2.1.0 - Deep Linking and Monaco Editor - 05 Dec 2025
- Use
Monacoas code editor by @lvcabral in #223 - Add Deep Linking support by @lvcabral in #225
- Added new buttons to control customization (rew, ff, mute) and improved settings layout by @lvcabral in #226
- Fixed Deep Linking with peer Roku devices by @lvcabral in #227
- Upgraded
brs-engineto v2.0.0 (with RSG extension) and other dependencies by @lvcabral in #228- Refactored
brs-engineto support extensions and moved SceneGraph code to a separate package- Introduced an extension system with the
BrsExtensioninterface and lifecycle hooks - Moved SceneGraph code to the
src/extensions/scenegraph/directory - Several documentation updates to reflect the new extension model, including a new Extensions document
- Refactored test file imports to use top-level
brsexports - Created the new
brs-scenegraphpackage with independent build configuration
- Introduced an extension system with the
- Added support to field array types:
intarray,floatarray,boolarray,stringarray,colorarrayandtimearray - Fixed
Field.canAcceptValueto properly validate array values - Refactored
roSGNodeto removeBrsIterableand useSetValueinstead ofSet - Raise type mismatch error when passing
Uninitializedvalue to non-dynamic function parameters - Prevented removing system fields and
setFieldsto add fields - Added
BrsEventabstract class andBrsCollectioninterface - Prevent media nodes to send messages in task threads
- Fixed optional chaining with
roInvalidwhen using methods - Changed
Node.tsto handle all default fields as system fields
- Refactored
v2.0.5 - Peer Roku SSDP discovery - 15 Nov 2025
- Implemented Peer Roku list discovery via SSDP by @lvcabral in #222
- Bump
brs-engineto v2.0.0-alpha.25 by @lvcabral - main changes since last release:- Clear the display before showing icon as splash
- Added support for the
notoperator in the preprocessor's#ifclause evaluation - Fixed exception handling for Parser and Preprocessor
- Added UTF-16 support for
StringIand prevented crash with negativestring.repeat() - Added validation to
#ifto not allow extra text after the condition token - Fixed loading of SG localized terms and added missing
es_ESandit_ITfiles - Fixed ZIP based volumes
pkg:,common:andext1:to show the original case on path names - Prevented debug error messages in
Network.ts - Replaced dependency
xml2jsbyxmldoc - Added test case for
common:volume - Refactored API to create a
taskmodule
v2.0.4 - Improvements on File System - 12 Nov 2025
This release brings several improvements to the BrightScript Simulator's file system handling. It upgrades the zenFS dependency, enhancing file operations and ensuring better compatibility with Roku applications. Key changes include saving paths in writable volumes with their original case, sharing temporary and cache file systems among threads, and improving the serialization of RoSGNode objects for inter-thread communication. Additionally, this update addresses issues related to audio playback, content loading, and node management within the SceneGraph framework.
- Bump
brs-engineto v2.0.0-alpha.22 by @lvcabral - main changes since last release:- Upgraded
zenFSdependency and removedmemory-fs - Added
common:/certs/ca-bundle.crtfile and upgradedzenFS - Fixed issue that prevented playback of the first loaded audio
- Save paths in writeable volumes with original case
- Changed
tmp:andcachefs:to be shared among threads - Refactored
RoSGNodeto use typeSGNodeand fixedclone()androUtils.deepCopy() - Forced ignore cache for
common.zipwhen new version is available - Improved serialization of
RoSGNodeto transfer among threads - Prevent Node child serialization in AA and Array
- Refactored
RoSGNodeto be an abstract class and created the new SceneGraphNodeclass - Fixed
ContentNodefield setting - Fixed setting fields with default values in the XML
- Fixed
MicroDebuggerto properly handle a line with multiple statements separated by colon: - Generate a
registryevent when loading the registry during startup of the engine - Improvements on node thread ownership
- Upgraded
v2.0.3 - Fixes and improvements - 02 Nov 2025
This release improves several features of the SceneGraph support, including the availability of accessing Scene in Task threads and the prevention of crashes when using valid nodes not yet implemented. It also includes fixes for the App Installer Screenshot integration with VSCode, enhances app crash handling in Home App mode, allows updating the device locale without needing a reset, and improves the Console to properly handle empty lines and wrap long strings.
- Fixed App Installer Screenshot response to VS Code Extension by @lvcabral in #217
- Improved app crash handling in Home App mode by @lvcabral in #218
- Allow update device locale without need of reset by @lvcabral in #219
- Fixed Console to not ignore empty lines and properly wrap long strings by @lvcabral in #220
- Bump
brs-engineto v2.0.0-alpha.19 by @lvcabral - main changes since last release:- Added support for
roSGNode.getScene()inTaskthreads - Added 50 missing supported Nodes to
SGNodeTypeenumerator - Fixed return type for
roRegex.split()toroListinstead ofroArray - Fixed:
stopnot working as the last statement
- Added support for
v2.0.2 - Hotfix for SceneGraph apps - 29 Oct 2025
This release brings several fixes and improvements to the BrightScript Simulator with SceneGraph support. Improves the Screenshot feature and fix several issues, in particular, it addresses issues related to deploying apps to peer Roku devices, ECP command handling, and enhances the overall stability of the simulator when running SceneGraph applications. I also implements a Check for Updates feature to keep users informed about the latest releases.
- Fixed peer Roku app deploy to not install home app by @lvcabral in #202
- Fixed ECP to properly encode literal keys sent to peer Roku by @lvcabral in #203
- Replaced dependency
postman-requestusing node nativefetchandcryptoby @lvcabral in #204 - Upgraded
terminalto v1.1.0 and added theme support to the console by @lvcabral in #205 - Prevent loading a package larger than 5MB by @lvcabral in #206
- Fixed: In MacOS, hiding Display with Settings open would not allow reopen Settings by @lvcabral in #207
- Changed Save as.. option, in Code Editor, to act like Save button if no snippet is selected by @lvcabral in #208
- Improved web installer to act like Roku and allow VSCode to take screenshots by @lvcabral in #209
- Updated installer and utilities page titles to match Roku by @lvcabral in #210
- Added Check for Updates feature by @lvcabral in #211
- Add missing ECP queries and fixed others by @lvcabral in #212
- In home app mode, only display closing app toast with
errororcrashby @lvcabral in #213 - Prevent app installer to be enabled by default in Linux by @lvcabral in #214
- Changed Editor code list to be case insensitive by @lvcabral in #215
- Improved take
Screenshotfeature to get full resolution image by @lvcabral in #216 - Bump
brs-engineto v2.0.0-alpha.18 by @lvcabral - main changes since last release:- Implemented support for
roSGNode.update()recursive child tree creation - Added support for
Invalidchildren inroSGNode - Implemented support for
RowListfieldrowItemSelected - Fixed deserialization of
NodesfromTasksandroSGNode.update() - Fixed when
Videonode fieldcontentIsPlaylistis set aftercontent - Refactored
RootObjectsinto a separate moduleSGRootto fixAudioandVideoreset - Fixed
AudioandVideoto resend and reset thecontentwhencontentIsPlaylistchanges - Several fixes on
RowListrendering and behavior - Implement
LayoutGroupnode - Implemented
ZoomRowListnode - Fixed
VideoandAudiohandling of changes incontentfield - Added mapping of
MaskGroupandTargetGrouptoGroupbefore implementation - Improved
Taskhandling ofNodefield changes - Fixed more
LayoutGrouprendering issues - Improved focus feedback rendering in
RowListandZoomRowList - Fixed
Overhanglogo rendering to match Roku behavior - Fixes in
RowListand refactoring ofZoomRowList - Implement missing
roSGNodemethods - Fixed
LabelListandMarkupListvertical navigation infloatingFocusmode - Added new API method
getScreenshot() - Updated API documentation to add new
getScreenshot()method - Prevent crash on Micro Debugger with
bpkfiles - Fixed
Dialogspacing to the divider in HD resolution
- Implemented support for
v2.0.1 - Fixes on startup and app deployment - 21 Oct 2025
- Fixed
getSSIDto prevent startup error message on Raspberry Pi OS by @lvcabral in #199 - Fixed option to run last loaded app on startup by @lvcabral in #200
- Fixed race condition with VSCode deployment by @lvcabral in #201
v2.0.0 - SceneGraph Support - 20 Oct 2025
This version of the BrightScript Simulator can execute code compatible with language specifications up to Roku OS 15. It also includes experimental SceneGraph support which is currently in alpha stage.
Please be aware of the following:
- SceneGraph components may not render correctly
- Some SceneGraph features are not yet implemented
- Apps may crash or behave unexpectedly
- Check all current limitations for more details
- Bump to v2.0.0 and upgraded Electron to v2.9 @lvcabral in #190
- Added a message dialog to warn users that SceneGraph is in alpha stage by @lvcabral in #191
- Added closed caption style settings and updated the the SG warning dialog by @lvcabral in #194
- Added new ECP device info fields introduced in Roku OS 15 by @lvcabral in #193
- Added BRS bouncing splash video on startup by @lvcabral in #186
- Implemented simulator home screen and improved app list handling by @lvcabral in #196
- Moved
keepDisplayOnExitandperfStatsoptions fromsimulatortodisplaytab on Settings screen by @lvcabral in #196 - Refactored server event handlers to new
events.jshelper module by @lvcabral in #197 - Added option to import and export
.brsfiles in Editor and removed Open Source file from File menu by @lvcabral in #198 - Bump
brs-engineto v2.0.0-alpha.16 @lvcabral - main changes since last release:- v1.8.6 - Changed the internal device assets (fonts, sounds, images and libraries) to be stored in the
common.zipfile that holds thecommon:/volume in the file system, and mainly this release brings a fix for themcontext when using indexed get to retrieve functions. (see full changelog) - v1.8.7 - Brings the undocumented signature for
InStr()function with only 2 parameters, theroTimespan.totalMicroseconds()method and theType()function returning "legacy" types (unless you pass version 3 parameter). Other important fixes to highlight are the support for boxed values as array indexes and havingroBooleanto be properly comparable. (see full changelog) - v1.8.8 - Added the support for the
flagsparameter on theParseJSON()to make the AA returned to be case insensitive, andFormatJSONflag now allows you to disable the escape of non-ASCII characters. There are also, fixes forLeft()andMid()that were not handling negative values properly andSubstitute()that now supports the^0notation. Thechr()andasc()functions were also updated to support extended Unicode. (see full changelog) - v1.8.9 - Introduces a few missing methods in
roDeviceInfoand a new method toifStringOps, also several enhancements on Video and Audio handling. The default font was replaced byDejaVuSansCondensedthat is used in Roku devices forDraw2Dtext rendering. (see full changelog) - v1.9.1 - Reorganized the repository as a monorepo splitting the released artifacts into two separate NPM packages:
brs-engine(for Web applications) andbrs-node(for Node.js and CLI). Also, with this release, the BrightScript language and components are now synchronized with Roku OS 15.0. (see full changelog) - v1.9.2 - Implemented new method
createPayloadFromFileMapinbrs-nodelibrary and updated documentation. (see full changelog) - v1.9.3 - Fixed issues related to
roNDK.start()allowing URL asChannelIdonSDKLaunchandRokuBrowser.brslibrary now parses arrays in options object. (see full changelog) - v1.9.4 - Remapping of the game pad buttons to the Roku remote control, allowing for a better experience using the game pad with Roku apps. It also documents the custom
manifestoptionmulti_key_eventsthat allows apps to receive multiple key events at the same time. (see full changelog) - v1.9.5 - Added new methods in the engine API, improvements to
roAppManager, and themanifestparsing now matches the behavior of Roku devices. (see full changelog) - v1.9.6 - This release brings a couple of fixes for the CORS proxy usage and the
NDKStarthandling ofSDKLauncher. (see full changelog) - v1.9.7 - This release fixes issues on the API methods
enableStatsand improves the handling of thedevapp. (see full changelog) - v2.0.0-alpha.16 - Contains the current state for the experimental SceneGraph framework support, for more details about what is implemented and what is still missing check the current limitations document
- v1.8.6 - Changed the internal device assets (fonts, sounds, images and libraries) to be stored in the
- Bump
brs-engineto v1.8.9 and upgraded other dependencies by @lvcabral in #187 - Bump electron from 25.9.8 to 28.3.2 @dependabot[bot] in #185
- Bump pbkdf2 from 3.1.2 to 3.1.3 @dependabot[bot] in #184
- Bump @babel/runtime-corejs2 from 7.26.0 to 7.26.10 @dependabot[bot] in #183
- Bump tmp from 0.2.3 to 0.2.4 @dependabot[bot] in #188
v1.4.0 - Editor Improvements - 03 Feb 2025
- Replaced the Delete button by new code snippet tools button by @lvcabral in #167
- Added support for ECP
launch,inputandexit-appendpoints by @lvcabral in #170 - Added Peer Roku device menu options by @lvcabral in #172
- Remove locales not supported on Roku by @lvcabral in #173
- Editor: Save single snippet and alert to changes by @lvcabral in #174
- Added editor context menu and improved change control by @lvcabral in #176
- Removed ECP service circular dependencies by @lvcabral in #177
- Removed Installer service circular dependencies by @lvcabral in #178
- Removed Telnet service circular dependencies by @lvcabral in #179
- Close app on peer Roku device when closed on simulator by @lvcabral in #180
- Improved
roDeviceInfo.getConnectionInfo()by getting actual network information by @lvcabral in #181 - Upgraded
brs-engineto v1.8.5 - main changes since last release:- Implemented BrightScript features up to Roku OS 14.0 by @lvcabral in #420
- Several Registry improvements by @lvcabral in #407
- Several App handling/management improvements by @lvcabral in #413
- Added
Platforminfo to the result ofroDeviceInfo.getModelDetails()by @lvcabral in #414 - Allowed
mobject to be re-assigned in Function scope by @lvcabral in #417 - Implemented
globalstatic object by @lvcabral in #418 - Add new supported control buttons and ECP command by @lvcabral in #421
- Fixed
CreateObjectbehavior to match Roku by @lvcabral in #423 - Implemented
roSystemLogand refactoredroMessagePortby @lvcabral in #426 - Implemented
roDeviceInfoEventby @lvcabral in #429 - Implement
roCECStatuscomponent by @lvcabral in #430 - Add fake server support to
roChannelStoreby @lvcabral in #431 - Fixed
Int32constructor handling of overflow to match Roku by @lvcabral in #435 - Added new
roDateTimemethods:asSecondsLongandfromSecondsLongby @lvcabral in #437 - Fixed
Int32andInt64hex parsing and formatting by @lvcabral in #438 - Improved
sprintfformatting by @lvcabral in #443 - Improved
IfToStrtype checking by @lvcabral in #449 - Fixed
roVideoPlayermethodgetAudioTracksby @lvcabral in #457 - Added
serialNumberto device info object and to response ofGetModelDetails() - Fixed behavior of
Endstatement to terminate the app - Improved and documented MicroDebugger functions
- Improvements on WAV handling
- Improved component
roURLTransferby @lvcabral in #461 - Implemented
roHdmiStatusandroHdmiStatusEventcomponents by @lvcabral in #463 - Implemented
roTextureRequestandroTextureManagerby @lvcabral in #465 - Implemented
roSocketAddressby @lvcabral in #460 - Implemented mocked
roStreamSocketcomponent by @lvcabral in #462 - Implemented mocked
roDataGramSocketand extracted common interfaces intoifSocketby @lvcabral in #466
- Fixed: Some menu options were disabled when Settings is opened with app running by @lvcabral in #171
- Bump nanoid from 3.3.7 to 5.0.9 by @dependabot in [#]175](#175)
v1.3.2 - Checkbox to enable/disable Peer Roku - 12 Nov 2024
- Added checkbox to enable/disable peer Roku device by @lvcabral in #164
- Bump elliptic from 6.5.7 to 6.6.0 by @dependabot in #165
- Fixed build on MacOS by @lvcabral in #166
- Changed build to generate MacOS Universal installer (for both Intel and Arm machines)
v1.3.0 - Run App from URL - 13 Oct 2024
- Implemented option to Open from URL by @lvcabral in #163
- New option in File menu that allows to download and run any app package (zip/bpk) or code file (brs)
- The downloaded file is also executed on the peer Roku device (if configured in the settings screen)
- Updated documentation with the new recent features
- Upgraded
brs-engineto v1.7.0 - main changes since last release:- Added a way to add custom features to be checked by
roDeviceInfo.hasFeatures() - Created new document docs/customization.md
- Implemented
try...catchandthrowby @lvcabral in #318 - Implemented
gotostatement by @lvcabral in #367 - Implemented
Continue ForandContinue Whilestatements by @lvcabral in #332 - Added:
roEVPDigestcomponent by @lvcabral in #301 - Added:
roEVPCiphercomponent by @lvcabral in #303 - Added:
roHMACcomponent by @lvcabral in #305 - Added:
roDeviceCryptocomponent by @lvcabral in #309 - Added:
roFunctioncomponent andBox()runtime function by @lvcabral in #310 - Implemented
pos()andtab()forprintstatement by @lvcabral in #339 - Implemented
slice()method inroArrayunderifArraySlice - Implemented
ifArraySizeInfoinroArrayby @lvcabral in #316 - Implemented
roImageMetadatacomponent by @lvcabral in #325 - Implemented
roAudioMetadatacomponent by @lvcabral in #326 - Implemented support for multi-dimensional indexes of
roArrayandroListby @lvcabral in #331 - Implemented
ObjFun()global function and support forvariadicarguments onCallableby @lvcabral in #375 - Added support for
formatJson()undocumented flags 256 and 512 by @lvcabral in #377 - Implemented Micro Debugger commands:
classes,bscsandstatsby @lvcabral in #385 - Improvements to
roPathby @lvcabral in #296 - Changed
roUrlEventandroUniversalControlEventto be comparable by @lvcabral in #299 - Updated Firmware Version to 11.5 as
continue for/whileis now supported by @lvcabral in #357 - Fixed:
ifString.tokenize()behavior to match Roku by @lvcabral in #295 - Fixed:
Stringcomparison and concatenation by @lvcabral in #298 - Allow to use AND/OR between Boolean and Numbers by @lvcabral in #307
- Fixed Boxing on Numbers and Booleans by @lvcabral in #313
- Fixed Boxing for Callable parameters and implemented Coercion properly by @lvcabral in #327
- Fixed Callable signature check by @lvcabral in #340
- Fixed conversion functions to Integer:
Int(),CInt()andFix()by @lvcabral in #342 - Fixed Video seek causing a stack overflow crash by @lvcabral in #349
- Added a way to add custom features to be checked by
v1.2.0 - Editor and Console Window - 02 Mar 2024
- Implemented Code Editor and Console window by @lvcabral in #154
- Added editor and console code based on brs-fiddle
- Removed app folder from git (all files are generated from
srcnow) - Linked code editor to main simulator display
- Removed display and hooked to the app.js
- Added Theme Support, Startup Setting and Command Line switch
- Clear Console also reset Status counters
- Editor improvements and fixes
- Change buttons to be displayed depending on the context
- Fixed Telnet behavior to handle IOC commands
- Added Telnet support for char by char when the client can't switch to line mode
- Several SonarCloud static analysis issues fixed
- Upgraded
brs-engineto v1.3.1 - some changes were:- Added support to
volumemutekey - Implemented support for
PowerOffECP key press - Added
ifDraw2dmethoddrawTransformedObject() - Added to the MicroDebugger support for
Function,If,ForandWhile - Added
quitcommand to the MicroDebugger - Fixed MicroDebugger truncate String variable to max 94 characters
- Fixed MicroDebugger not exiting properly with
exitcommand - Fixed MicroDebugger formatting issues and the handling of linefeed
- Added support to
v1.1.0 - Peer Roku Device - 14 Feb 2024
- Added feature to allow parallel deployment of apps on a peer Roku device by @lvcabral in #151
- Upgraded
brs-engineto v1.2.11- Added detection of Video Codecs
- Added support to HLS streams with multiple audio tracks
- Added support to video inside the app package (.zip/.bpk)
- Added new API event
controlto return key strokes pressed on the simulator - Changed the priority of the app entry point to
runUserInterface()overmain() - Fixed low resolution on Screen Resize
- Fixed Video not always pausing on
breakorpausecommands - Fixed several issues related to remote control simulation
- Fixed several issues related to ifDraw2D rendering
- Fixed #148 - Get correct window reference when opening About Box by @lvcabral in #149
- Fixed #146 - Force focus on simulator window when
appis deployed via ECP by @lvcabral in #150 - Fixed #147 - In SD Display mode, when goes to full screen, the area behind the display is not black
- Fixed #145 - Full screen mode on startup is showing the menu in Windows and Linux by @lvcabral in #152
v1.0.0 - BrightScript Simulator - 20 Jan 2024
After 4 years of Alpha and Beta stages, the project is stable and performant enough to finally be released as version 1.0 and with that, we decided to give it a new name:
The term simulator was chosen instead of the former emulator to better represent the nature and purpose of the project, as there is no intention to fully emulate a Roku device (OS and Hardware), but rather simulate the behavior, as a development tool that allow us to run BrightScript apps in different platforms.
- Renamed to "BrightScript Simulator" and updated the icon
- Upgraded
brs-engineto v1.2.3- Added support for Game Pad controllers
- Added support for
roVideoPlayer - Added configurable limit for BrightScript app framerate
- Added option to switch control behavior based on
manifestentry - Added way to detect the BrightScript app is running on the simulator
- Micro Debugger now can be triggered when a crash happens
- Multiple fixes and improvements on BrightScript language support (see engine changelog)
- Upgraded
custom-electron-titlebarto v4.2.8- Fixed issue with title moving left (Windows and Linux)
- Fixed issue with menu alignment (Windows and Linux)
- Menu updates:
- Reduced Menu options spacing
- Open Dev Tools detached and enabled Edit commands on Mac OS
- Changed Dev Tools shortcut to F12
- Settings screen updates:
- Added new option
debugOnCrashon settings - Added Developer Password option for decrypting
.bpkpackages - Added support for
maxFpsnew display configuration - Added option to pause App when Simulator loses the focus
- Updated Settings TitleBar customization
- Updated Settings screen configuration on Mac OS
- Fixed #143 - Edit commands are now working on Settings Screen in MacOS
- Fixed Linux issue when showing Settings Screen
- Fixed settings.css for Linux
- Added new option
- Remote Access Services updates:
- Updated web Installer to support bpk, improve reliability
- Updated initialization source for ECP and Installer to match Roku
- ECP-2 now generates control events with remote type "RMOB"
- Fixed: Do not disable Web Installer on error
- Closed #38 - Integrated
toastifyto show messages to the user - About Box improvements for Mac OS
- Update dynamically AboutBox and Menu with package.json information
- Fixed TitleBar text alignment on old MacOS
- Removed several bugs and code smells reported by Sonar Cloud
- Added CHANGELOG.md
- Updated documentation
v0.10.31 - Fixed Menu and Theme issues - 22 Aug 2023
- Bump custom-electron-titlebar from 4.2.4 to 4.2.7 by @lvcabral
- Fixed issue #128 (theme switch in macOS)
- Fixed issue with menu hover in Windows and Linux
- Fixed issue with debug console messages
- Bump async from 2.6.3 to 2.6.4 by @dependabot in #126
- Bump ajv from 6.12.0 to 6.12.6 by @dependabot in #127
- Bump glob-parent from 5.1.0 to 5.1.2 by @dependabot in #131
- Bump semver from 5.7.1 to 5.7.2 by @dependabot in #132
- Refactored the app to use the new library brs-emu v0.10.22
- Improved performance, the simulation is multiple times faster than v0.9.x
- App code was simplified with the usage of the new engine API
- Upgrade electron, added settings screen and other improvements by @lvcabral in #123
- Removed borders between the simulator display and the container window
- Changed the application icon
- Added a Settings screen allowing new configurations and customizations
- Added a switchable performance overlay to show rendering performance on the simulator display
- Added support to the Micro Debugger via the telnet service, allowing debug using VSCode extension
- Upgraded to Electron 20 and Webpack 5
- Upgraded multiple dependencies
- Fixed several small bugs
- Fixed SonarCloud bugs and code smells by @lvcabral in #124
- Upgrade
custom-electron-titlebardependency by @lvcabral in #125
v0.9.0-app - 28 Jun 2021
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.8.1-app - 07 Jun 2021
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.8.0-app - 11 Mar 2020
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.7.2-app - 02 Dec 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.7.1-app - 21 Nov 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.7.0-app - 17 Nov 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.6.0-app - 24 Oct 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.5.2-app - 09 Oct 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.5.1-app - 07 Oct 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases
v0.5.0-app - 07 Oct 2019
Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

