Skip to content

Latest commit

 

History

History
699 lines (546 loc) · 53 KB

File metadata and controls

699 lines (546 loc) · 53 KB

Changelog

All notable changes to this project will be documented in this file.

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.

brs-desktop-hide-editor

  • 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-engine to 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 BOM on Lexer
    • (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 milliseconds param on roDateTime.toISOString()
    • (brs) Allowed to use global as function parameter name
    • (brs) Add LongInteger (Int64) support to Str() global function
    • Changes on brs-scenegraph package (release v0.1.0):
      • (rsg) Implement thread updates similar to SceneGraph Rendezvous
      • (rsg) Fixed Scenegraph crash handling and stack trace
      • (rsg) Implemented support for debugging Task threads
      • (rsg) Added PosterGrid and improved focus style handling on ArrayGrid based nodes
      • (rsg) Fixed ScrollingLabel to handle horizAlign and actually scroll when needed
      • (rsg) Added InfoPane node
      • (rsg) Fixed the handling of OK key in RowList and ZoomRowList
      • (rsg) Added setNodeFocus method to ArrayGrid to reset itemFocused when getting the focus
      • (rsg) Added sgnodes command to MicroDebugger to list node type statistics
      • (rsg) Added MaskGroup draft and fixed several issues with field assignment
      • (rsg) Fixed component XML parsing of interface to handle attributes as case-insensitive
      • (rsg) Improved parsing of field types: StringArray, Vector2D and Vector2DArray
      • (rsg) Fixed XML parsing to support alias field to be set without type
      • (rsg) Added support for default item component on RowList and item focus callback in ArrayGrid
      • (rsg) Implemented all PanelSet related nodes
      • (rsg) Fixed role fields 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 Video node on startup (after the Splash)
      • (rsg) Improved handling of manifest entries ui_resolutions and uri_resolution_autosub
      • (rsg) Fixed crash when m.top.getScene() is used on init() in a Task thread
      • (rsg) Implemented ancestorBoundingRect() method
      • (rsg) Added support for multiple Node field 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 Node field aliases observer trigger
      • (rsg) Fixed Poster, BusySpinner, Video and TrickPlayBar to properly handle child nodes uri update
      • (rsg) Fixed BusySpinner dimensions calculation
      • (rsg) Fixed circular dependency issue when Node has child with its same id in alias
      • (rsg) Fixed StandardDialog focus and back key press handling
      • (rsg) Fixed observables serialization and handling of InfoFields

Full Changelog: v2.2.0

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.

brs-desktop-animation-demo-01-2026

Release Changes

  • 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-engine to v2.0.4 (with RSG extension), main changes were:
    • (brs) Fixed debugger to restore the context on RunTimeError
    • (brs) Added toBoolean for all numeric components
    • (brs) Fixed CreateObject to properly handle boxed parameters and raise RunTimeError
    • (rsg) Fixed roSGNode creation using boxed String as nodeType
    • (rsg) Fixed focus when initialFocus is not set
    • (rsg) Fixed: ArrayGrid based nodes must reset focused item when content is updated
    • (rsg) Fixed findNode to prioritize search on children
    • (rsg) Implemented Animation and Interpolator nodes
    • (rsg) Changed Node to preserve field name case
    • (rsg) Fixed conflict on roSGScreen scene events handling
    • (cli) Fixed CLI loading SceneGraph components on Windows file system
    • (rsg) Optimized roSGScreen to only render when changes happened

Full Changelog: v2.1.3

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.

Release Changes

  • Upgraded brs-engine to v2.0.4 (with RSG extension), main changes were:
    • (brs) Prevented division by zero on roAudioMetadata
    • (brs) Fixed roFontRegistry to properly check parsed font metrics
    • (rsg) Fixed Poster rendering to match Roku's automatic scaling
    • (rsg) Fixed Overhang default logo scaling
    • (rsg) Fixed item component's events on ArrayGrid based nodes
    • (rsg) Changed Field to allow assign roPath to a String field
    • (rsg) Fixed Task to prevent crash on updated fields with null

Full Changelog: v2.1.2

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.

Release Changes

  • Added support to mount/unmount an External volume (ext1:/) by @lvcabral in #235
  • Prevent duplicate brs-engine version on About dialog on reset by @lvcabral in #236
  • Upgraded brs-engine to 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 return ext1:/ information
    • (rsg) Implemented support for change field in Node
    • (rsg) Changed Task to update existing Node fields to preserve references
    • (rsg) Fixed Node environment hostNode initialization
    • (rsg) Fixed Node.callFunc() to not be case sensitive

Full Changelog: v2.1.1

Release Changes

  • Use Monaco as 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-engine to v2.0.0 (with RSG extension) and other dependencies by @lvcabral in #228
    • Refactored brs-engine to support extensions and moved SceneGraph code to a separate package
      • Introduced an extension system with the BrsExtension interface 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 brs exports
      • Created the new brs-scenegraph package with independent build configuration
    • Added support to field array types: intarray, floatarray, boolarray, stringarray, colorarray and timearray
    • Fixed Field.canAcceptValue to properly validate array values
    • Refactored roSGNode to remove BrsIterable and use SetValue instead of Set
    • Raise type mismatch error when passing Uninitialized value to non-dynamic function parameters
    • Prevented removing system fields and setFields to add fields
    • Added BrsEvent abstract class and BrsCollection interface
    • Prevent media nodes to send messages in task threads
    • Fixed optional chaining with roInvalid when using methods
    • Changed Node.ts to handle all default fields as system fields

Full Changelog

Release Changes

  • Implemented Peer Roku list discovery via SSDP by @lvcabral in #222
  • Bump brs-engine to v2.0.0-alpha.25 by @lvcabral - main changes since last release:
    • Clear the display before showing icon as splash
    • Added support for the not operator in the preprocessor's #if clause evaluation
    • Fixed exception handling for Parser and Preprocessor
    • Added UTF-16 support for StringI and prevented crash with negative string.repeat()
    • Added validation to #if to not allow extra text after the condition token
    • Fixed loading of SG localized terms and added missing es_ES and it_IT files
    • Fixed ZIP based volumes pkg:, common: and ext1: to show the original case on path names
    • Prevented debug error messages in Network.ts
    • Replaced dependency xml2js by xmldoc
    • Added test case for common: volume
    • Refactored API to create a task module

Full Changelog

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.

Release Changes

  • Bump brs-engine to v2.0.0-alpha.22 by @lvcabral - main changes since last release:
    • Upgraded zenFS dependency and removed memory-fs
    • Added common:/certs/ca-bundle.crt file and upgraded zenFS
    • Fixed issue that prevented playback of the first loaded audio
    • Save paths in writeable volumes with original case
    • Changed tmp: and cachefs: to be shared among threads
    • Refactored RoSGNode to use type SGNode and fixed clone() and roUtils.deepCopy()
    • Forced ignore cache for common.zip when new version is available
    • Improved serialization of RoSGNode to transfer among threads
    • Prevent Node child serialization in AA and Array
    • Refactored RoSGNode to be an abstract class and created the new SceneGraph Node class
    • Fixed ContentNode field setting
    • Fixed setting fields with default values in the XML
    • Fixed MicroDebugger to properly handle a line with multiple statements separated by colon :
    • Generate a registry event when loading the registry during startup of the engine
    • Improvements on node thread ownership

Full Changelog

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.

Release Changes

  • 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-engine to v2.0.0-alpha.19 by @lvcabral - main changes since last release:
    • Added support for roSGNode.getScene() in Task threads
    • Added 50 missing supported Nodes to SGNodeType enumerator
    • Fixed return type for roRegex.split() to roList instead of roArray
    • Fixed: stop not working as the last statement

Full Changelog

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.

Release Changes

  • 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-request using node native fetch and crypto by @lvcabral in #204
  • Upgraded terminal to 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 error or crash by @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 Screenshot feature to get full resolution image by @lvcabral in #216
  • Bump brs-engine to v2.0.0-alpha.18 by @lvcabral - main changes since last release:
    • Implemented support for roSGNode.update() recursive child tree creation
    • Added support for Invalid children in roSGNode
    • Implemented support for RowList field rowItemSelected
    • Fixed deserialization of Nodes from Tasks and roSGNode.update()
    • Fixed when Video node field contentIsPlaylist is set after content
    • Refactored RootObjects into a separate module SGRoot to fix Audio and Video reset
    • Fixed Audio and Video to resend and reset the content when contentIsPlaylist changes
    • Several fixes on RowList rendering and behavior
    • Implement LayoutGroup node
    • Implemented ZoomRowList node
    • Fixed Video and Audio handling of changes in content field
    • Added mapping of MaskGroup and TargetGroup to Group before implementation
    • Improved Task handling of Node field changes
    • Fixed more LayoutGroup rendering issues
    • Improved focus feedback rendering in RowList and ZoomRowList
    • Fixed Overhang logo rendering to match Roku behavior
    • Fixes in RowList and refactoring of ZoomRowList
    • Implement missing roSGNode methods
    • Fixed LabelList and MarkupList vertical navigation in floatingFocus mode
    • Added new API method getScreenshot()
    • Updated API documentation to add new getScreenshot() method
    • Prevent crash on Micro Debugger with bpk files
    • Fixed Dialog spacing to the divider in HD resolution

Full Changelog

Release Changes

  • Fixed getSSID to 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

Full Changelog

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

Release Changes

  • 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 keepDisplayOnExit and perfStats options from simulator to display tab on Settings screen by @lvcabral in #196
  • Refactored server event handlers to new events.js helper module by @lvcabral in #197
  • Added option to import and export .brs files in Editor and removed Open Source file from File menu by @lvcabral in #198
  • Bump brs-engine to 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.zip file that holds the common:/ volume in the file system, and mainly this release brings a fix for the m context when using indexed get to retrieve functions. (see full changelog)
    • v1.8.7 - Brings the undocumented signature for InStr() function with only 2 parameters, the roTimespan.totalMicroseconds() method and the Type() 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 having roBoolean to be properly comparable. (see full changelog)
    • v1.8.8 - Added the support for the flags parameter on the ParseJSON() to make the AA returned to be case insensitive, and FormatJSON flag now allows you to disable the escape of non-ASCII characters. There are also, fixes for Left() and Mid() that were not handling negative values properly and Substitute() that now supports the ^0 notation. The chr() and asc() functions were also updated to support extended Unicode. (see full changelog)
    • v1.8.9 - Introduces a few missing methods in roDeviceInfo and a new method to ifStringOps, also several enhancements on Video and Audio handling. The default font was replaced by DejaVuSansCondensed that is used in Roku devices for Draw2D text 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) and brs-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 createPayloadFromFileMap in brs-node library and updated documentation. (see full changelog)
    • v1.9.3 - Fixed issues related to roNDK.start() allowing URL as ChannelId on SDKLaunch and RokuBrowser.brs library 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 manifest option multi_key_events that 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 the manifest parsing 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 NDKStart handling of SDKLauncher. (see full changelog)
    • v1.9.7 - This release fixes issues on the API methods enableStats and improves the handling of the dev app. (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
  • Bump brs-engine to 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

Full Changelog

Release Changes

  • Replaced the Delete button by new code snippet tools button by @lvcabral in #167
  • Added support for ECP launch, input and exit-app endpoints 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-engine to 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 Platform info to the result of roDeviceInfo.getModelDetails() by @lvcabral in #414
    • Allowed m object to be re-assigned in Function scope by @lvcabral in #417
    • Implemented global static object by @lvcabral in #418
    • Add new supported control buttons and ECP command by @lvcabral in #421
    • Fixed CreateObject behavior to match Roku by @lvcabral in #423
    • Implemented roSystemLog and refactored roMessagePort by @lvcabral in #426
    • Implemented roDeviceInfoEvent by @lvcabral in #429
    • Implement roCECStatus component by @lvcabral in #430
    • Add fake server support to roChannelStore by @lvcabral in #431
    • Fixed Int32 constructor handling of overflow to match Roku by @lvcabral in #435
    • Added new roDateTime methods: asSecondsLong and fromSecondsLong by @lvcabral in #437
    • Fixed Int32 and Int64 hex parsing and formatting by @lvcabral in #438
    • Improved sprintf formatting by @lvcabral in #443
    • Improved IfToStr type checking by @lvcabral in #449
    • Fixed roVideoPlayer method getAudioTracks by @lvcabral in #457
    • Added serialNumber to device info object and to response of GetModelDetails()
    • Fixed behavior of End statement to terminate the app
    • Improved and documented MicroDebugger functions
    • Improvements on WAV handling
    • Improved component roURLTransfer by @lvcabral in #461
    • Implemented roHdmiStatus and roHdmiStatusEvent components by @lvcabral in #463
    • Implemented roTextureRequest and roTextureManager by @lvcabral in #465
    • Implemented roSocketAddress by @lvcabral in #460
    • Implemented mocked roStreamSocket component by @lvcabral in #462
    • Implemented mocked roDataGramSocket and extracted common interfaces into ifSocket by @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)

Full Changelog

Release Changes

  • 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)

Full Changelog

Release Changes

  • 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-engine to 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...catch and throw by @lvcabral in #318
    • Implemented goto statement by @lvcabral in #367
    • Implemented Continue For and Continue While statements by @lvcabral in #332
    • Added: roEVPDigest component by @lvcabral in #301
    • Added: roEVPCipher component by @lvcabral in #303
    • Added: roHMAC component by @lvcabral in #305
    • Added: roDeviceCrypto component by @lvcabral in #309
    • Added: roFunction component and Box() runtime function by @lvcabral in #310
    • Implemented pos() and tab() for print statement by @lvcabral in #339
    • Implemented slice() method in roArray under ifArraySlice
    • Implemented ifArraySizeInfo in roArray by @lvcabral in #316
    • Implemented roImageMetadata component by @lvcabral in #325
    • Implemented roAudioMetadata component by @lvcabral in #326
    • Implemented support for multi-dimensional indexes of roArray and roList by @lvcabral in #331
    • Implemented ObjFun() global function and support for variadic arguments on Callable by @lvcabral in #375
    • Added support for formatJson() undocumented flags 256 and 512 by @lvcabral in #377
    • Implemented Micro Debugger commands: classes, bscs and stats by @lvcabral in #385
    • Improvements to roPath by @lvcabral in #296
    • Changed roUrlEvent and roUniversalControlEvent to be comparable by @lvcabral in #299
    • Updated Firmware Version to 11.5 as continue for/while is now supported by @lvcabral in #357
    • Fixed: ifString.tokenize() behavior to match Roku by @lvcabral in #295
    • Fixed: String comparison 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() and Fix() by @lvcabral in #342
    • Fixed Video seek causing a stack overflow crash by @lvcabral in #349

Full Changelog

Release Changes

  • 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 src now)
    • 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-engine to v1.3.1 - some changes were:
    • Added support to volumemute key
    • Implemented support for PowerOff ECP key press
    • Added ifDraw2d method drawTransformedObject()
    • Added to the MicroDebugger support for Function, If, For and While
    • Added quit command to the MicroDebugger
    • Fixed MicroDebugger truncate String variable to max 94 characters
    • Fixed MicroDebugger not exiting properly with exit command
    • Fixed MicroDebugger formatting issues and the handling of linefeed

Full Changelog

Release Changes

  • Added feature to allow parallel deployment of apps on a peer Roku device by @lvcabral in #151
  • Upgraded brs-engine to 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 control to return key strokes pressed on the simulator
    • Changed the priority of the app entry point to runUserInterface() over main()
    • Fixed low resolution on Screen Resize
    • Fixed Video not always pausing on break or pause commands
    • 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 app is 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

Full Changelog

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:

BrightScript Simulator

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.

Release Changes

  • Renamed to "BrightScript Simulator" and updated the icon
  • Upgraded brs-engine to 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 manifest entry
    • 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-titlebar to 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 debugOnCrash on settings
    • Added Developer Password option for decrypting .bpk packages
    • Added support for maxFps new 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
  • 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 toastify to 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

Full Changelog

Release Changes

  • 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

Full Changelog

Release Changes

  • 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-titlebar dependency by @lvcabral in #125

Full Changelog

v0.9.0-app - 28 Jun 2021

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.8.1-app - 07 Jun 2021

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.8.0-app - 11 Mar 2020

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.7.2-app - 02 Dec 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.7.1-app - 21 Nov 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.7.0-app - 17 Nov 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.6.0-app - 24 Oct 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.5.2-app - 09 Oct 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.5.1-app - 07 Oct 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes

v0.5.0-app - 07 Oct 2019

Binaries are published at the engine library repository: https://github.com/lvcabral/brs-engine/releases

Changes