Skip to content

RetroTxt Changes


October 2021

  • Squared 1:1, 8x8 pixel PC fonts now use their -2y variants when available. The 2y variants are 16x16 in size, meaning they're easier to read and look better.
  • 11 new color themes for the Options tab under Settings.
  • Replaced deprecated API function, extension.getURL().
  • Fixed broken elements in options.html.


June 2021

  • Updated PC and MS-DOS fonts to Ultimate Oldschool PC Font Pack v2.2.
  • Support for custom ports in URLs such as http://localhost:8080 or
  • Replaced all the woff fonts with woff2 fonts to offer better file compression. This reduces the overall file size of RetroTxt and system resource usage.
  • The Options Fonts tab Jump to menu now always remains on the tab.
  • Reduced page flicker when switching Options tabs.
  • Fixed broken Apple Lisa fonts.
  • Fixed the local file viewer toggling on non-text file tabs when the file's extension is in uppercase.
  • Fixed certain fonts that use spaces within their names, breaking the loading text files.
  • Fixed broken SAUCE IBM VGA50 font.
  • Improved support and display of multiline SAUCE comments.
  • Improve the positioning of the error alert box.
  • Spelling and typo fixes for both UK and US English.
  • Using Task for the build process.
  • Dropped the use of the convoluted Node.createTextNode() and Node.appendChild() methods.



  • Complete Options redesign, it loads in a tab and is identical across all browsers.
  • Welcome tab features is merged into the Options tab.
  • Refreshed the information header.
  • 200+ PC/MS-DOS system fonts.
  • Numerous new fonts for home computers.
  • Improved the font representation for SAUCE fontname matching.
  • Dropped the context menu functionality and replaced it with Option tab links.
  • Omnibox support, type rt space in the browser address bar to see the list of commands.

October 2020

  • The font choice save is reset.

  • Minimum Chrome requirement v72, minimum Firefox requirement v69.

  • Improved compatibility with Amiga ANSI.

  • Added Unscii fonts fantasy and MCR.

  • Added PR Number 3 (Apple II).
  • Added Apple IIGS Shaston system fonts.
  • Added Apple GEOS Berkelium fonts.
  • Added Pet Me Commodore 64 fonts.
  • Added Tandy TRS-80 and CoCo fonts.
  • Added IBM 3270 font.
  • Added new Workbench ANSI theme.

  • Updated Print Char 21 font (Apple II).

  • Updated Unscii fonts to v2.0.
  • Updated Plex Mono fonts plus new weights.

  • Changed references to web-extension, web extension, WebExtension to Extension, with a capital E.

  • Moved documentation from the barebones Wiki into /docs and

  • Options in Chrome uses a dedicated browser tab.

  • Options in Chrome implements Bulma as a CSS framework for a larger and improved layout.
  • Added content-visibility CSS attribute for Chrome 85+ to help improve large screen rendering, see issue #91.
  • Added showBrowser(), links to the Edge Add-ons page, issue #78.
  • Replaced all Material Design Icon fonts with individual SVG images. This improves icon resize scalability and user accessibility, see issue #92.
  • Fixed eventpage.js invoke(), checks the lastError value, this also fixes issue #93.
  • Fixed the broken toolbar icon swap when Chrome detects a system dark mode theme.
  • Updated dev dependencies and libraries.
  • Moved the programming code and assets of the Extension into /ext.
  • Removed Windows PowerShell source code support, instead Windows users can use WSL.
  • Removed 'API permissions granted' from the Options as it duplicates included browser features.
  • Renamed Storage class to LocalStore to avoid browser API conflicts.
  • Context menus code were difficult to maintain and inconsistent between browsers.
  • Unified pages to use LF instead of CRLF.
  • Added support for ECMA48 SGR20 Fraktur font.


March 2020

  • Added Spleen font support.
  • Added Microsoft Edge browser support.
  • Added Microsoft Edge Addons links.
  • Improved compatibility with Blocktronics Blocky Horror & dsotb packs.
  • Added labels to for() loops.
  • Added hidepassed argument to QUnit test links.
  • Added Chrome and Edge browser version info to welcome.html.
  • isNum() now intentionally points to either to the Number function.
  • Fixed stylesheets not being loaded for BBS coloured text formats.
  • Fixed broken DOM() class unit test.
  • Fixed New width byte sequence 80 console message.
  • Fixed colorpalette() causing errors with non-ANSI art.
  • Fixed missing Unscii credit on the Firefox Options About tab.
  • Fixed 'Font family used for display' title mislabelling some fonts.
  • Reduced the width of the Options menu buttons to better fit with Edge.


October 2019

  • Created an ANSI tab in the options.
  • Created Default color palette selection option.
  • Added links in the welcome page for extension-app store reviews.
  • Replaced Download API console warnings on startup with logs.


August 2019

  • Improved compatibility with wide, 80+ column ANSI art.
  • Improved compatibility with narrow, -80 column ANSI art.
  • Much improved compatibility with late 1990s, 80 column ANSI art.
  • Added new Display Option "Smear block characters" that applies CSS text-shadowing specifically on CP-437 block characters to reduce line artefacts on Windows operating systems.
  • Added Celerity BBS | color codes support.
  • Added Renegade BBS | color codes support.
  • Added Telegard BBS ` color codes support.
  • Added WVIV BBS |# pipe code support.
  • Added WVIV BBS ♥ heart code support.
  • Added Apple IIgs and Commodore 64 palettes for 4-bit ANSI.
  • Blinking text now works properly on non-black backgrounds.
  • Change minimum Chromium version to 58.
  • Simplified some of the JS source code.
  • Horizontal tab C0 codes in ANSI art now always display the character when DOS control glyphs is enabled.
    • Test case blocktronics_block_n_roll/die-already.ans
  • Improved the accuracy of parsing of iCE color ANSIflags.
  • Changed the ANSI slow blink timing (SGR5) to 500ms and fast blink (SGR6) to 300ms.
  • Default CSS line-height value switched from 100% to normal for better compatibility with alt-fonts.
  • Consolidated iCE Colors and VGA CSS classes to reduce duplication.
  • Fixed issue 71 with the incorrect colour rendering of some RGB values.
  • Fixed ultrawide ANSI art wrapping to the browser tab instead of overflowing with scrollbars.
  • Fixed critical issue where a corrupt SAUCE font value breaks the ANSI render.
    • Test case blocktronics_block_n_roll/nu-ninja_cat.ans
  • Fixed welcome page not displaying Configure RetroTxt and Permissions Request example images.
  • Fixed @[email protected], it now does not automatically assume a PCBoard @-code file.
  • Fixed > < and & characters breaking the end-of-line character count in ANSI text.
  • Fixed RetroTxt unintentionally triggering when the browser plays audio/video media using file:/// URLs.
  • Fixed Firefox Options sample text displaying a white shadow effect in Normal render mode.
  • Renamed /docs/ directory to /md/, most of the documentation is now located at the Wiki.
  • Replaced non-working links with
  • Removed the Smeared text render toggle as it has been replaced with the Smear block characters setting.
  • Removed the Focus mode as the technical debt to maintain was too high.
  • Removed theme and display adjustments from the context menus to simplify the code.


June 2019

  • Added a Focus mode toggle.
  • Added Unscii 8 and Unscii 16 font support.
  • Added Line wrap toggle to the information header when displaying ANSI/ECMA-48 text.
  • Added preferred dark mode support for Chrome/Chromium 67+ browsers.
  • Significantly reduced the tab memory usage after rendering ANSI/ECMA-48 text.
  • Dropped the use of null in all large, internal arrays which should slightly improve performance with the JavaScript V8 engine.
  • Significantly reduced the console spam when undetected ANSI control sequences are found.
  • Refactored scripts\parse_ansi.sys to use ES5 Class expressions so the source code easier to follow.
  • Added support for the following ECMA-48 controls.
    • CHT Cursor Forward Tabulation, it acts as 4 forward space movements.
  • Changed the horizontal behaviour of the ECMA-48 HVP command, it will now wrap to the maximum columns limit and then continue on the new row.
  • Greatly expanded the unit test coverage of parse_ansi.js.
  • Fixed, duplicate downloads are triggering with some binary file types such as woff fonts.
  • Fixed, Save link as accidentally creating a new, empty file:/// tab.
  • Fixed ECMA-48 CUD bug where there were too many rows created.
  • An error is now displayed when trying to load a file:/// with no content.


February 2019

  • Added IBM AIX terminal bright and bold colour support.
  • Improved Allow access to file URLs is disabled notification to be more prominent.
  • Added npm run scripts to the package.json.
    • npm run build
    • npm run firefox
    • npm run lint
    • npm run version
  • Fixed Downloads.listen() causing an endless download loop (issue #56).
  • Fixed hideEntities() not catching <> character combinations that broke ANSI rendering (issue #58).
  • Fixed the Options Apply RetroTxt to any local text files file:/// link pointing to the C: drive on Linux and macOS.


December 2018

  • Re-added the ability to make additions to the Apply RetroTxt to text files hosted on these websites list that was disabled in v3.0.
  • Fixed the Zeus II logo for the welcome screen breaking on Linux.
  • Fixed Homepage URL in the Firefox addon tab.
  • Fixed incorrect links in



  • User interface improvements and bug fixes.
  • Much improved legacy code page detection and support.
  • New progressive permissions for enhanced security.
  • New redesign of the Options menu.
  • New ASCII text theme for your own custom background/foreground colours.

November 2018

  • Rewrote the Code Page 437 normaliser, the character conversions are more accurate.
  • RetroTxt gracefully recovers after the unintentional deletion of storage items.
  • RetroTxt out of the box is locked down with gradual permission privileges requests when features are enabled. Previously RetroTxt always had access to downloads, http/ftp tabs, etc. regardless of whether they were needed or not. However, these are moving to optional_permissions which grant access on an associated Option.
  • Broad http://*/ and https://*/ read permissions are gone in favour of domain-specific access such as* and*. RetroTxt never read more than the first two characters of any HTML tab that is active, but it was not a good look for new users seeing Read and change all your data on the websites that you visit in the add-ons menu.
  • Redesigned the Options menu to better match the new user interface introduced in Chrome v69. This required the disabling of the chrome_style manifest UI option which hasn't been updated since early 2016.
  • Added a privacy policy with API permission requirements.
  • Added Option to use a customised colour set for the text foreground and background.
  • Added IBM's 2017 Plex Mono font.
  • Added Macintosh-Roman, ISO8859-10 code page support.
  • Mouse hovering on the information header font name reveals more descriptive font information.
  • Added Option to toggle blinking text and cursor animations.
  • Added a link to SAUCE header data for some ANSI groups when their group data are matches in the SAUCE metadata.
  • Added new icons for Firefox dark themes.
  • Firefox uses SVG icons.
  • Center align text now previews in the sample text.
  • RetroTxt browser toolbar button now behaves differently to avoid occasional false positives. Instead of disabling itself when an invalid page is detected, the button now shows a ✔ checkmark whenever a compatible tab is active. The compatibility results vary based on the Extension permissions grants.
  • Fixed PCBoard & Wildcat BBS colour inaccuracies in the CSS.
  • Remapped CGA palettes so black is less frequent.
  • Text that lack line breaks now wrap to the browser tab.
  • CSS variables are more frequently in use.
  • Added install type detection that enables a verbose mode when the type is development.
  • Source code uses Prettier for opinionated formatting.
  • Refactored most of the JS to use ES5 Class expressions so the source code easier to follow. It is still a TODO item for parse_ansi.js.
  • Using separate manifest.json and options.html for Firefox and Chrome. The Chrome Extension API hasn't been updated since early 2016 and is now the legacy implementation.
  • Saves the Options last active tab.
  • Expanded the number of unit tests to cover more of the application.
  • Fixed incorrect keyboard keys displayed on alerts with macOS.
  • Fixed Options icons links with underlined artefacts in Chrome.
  • Fixed Options now gracefully handle the removal of localStorage items.
  • Fixed broken Options links when in development install type.

Known issues

  • Currently, you cannot make additions to the Apply RetroTxt to text files hosted on these websites list. The problem is due to new permissions API implementation that requires all sites to be listed in the manifest.json.
  • On Firefox 63 the Options fonts menu sprawls across the screen, this is fixed in version 64.
  • On Firefox Linux the Zeus II logo for the welcome screen is broken.
  • For some distributions with Firefox on Linux the select menus have extra large, unreadable fonts.


March 2018

  • Added Shift JIS support that will toggle the use of the Mona font when encountered.
  • Added an ANSI 80 column wrap checkbox option that lets you disable this feature.
  • Added 2-bit IBM CGA palette 0 (brown/yellow).
  • Welcome.html has been reworked and uses tooltips on links.
  • Improved CSS font-stack for system fonts that should look better on all operating systems.
  • Context menu now uses radio buttons instead of tick glyphs.
  • Console output is now grouped and collapsed by default to reduce message spam.
  • Improved rendering of PCBoard art with alternative fonts.
  • Regenerated internal fonts to the woff2 format to reduce the download and install size of the Extension.
  • Fixed context menu issues.
  • Fixed unsupported ECMA-48 controls reported as unknown.
  • Fixed blinking cursor not positioning correctly on small ANSI documents.
  • Fixed text render methods not applied to ANSI documents.
  • Fixed white background themes that were not showing ECMA-48 bold text due to foreground and backgrounds colours being the same.


September 2017

  • Added Linux and IBM PS/2 context menu themes.
  • Added Browser monospace font (called fixed-width in Chrome).
  • ASCII documents now obey SAUCE fontName value.
  • Redesigned some of the context menus.
  • Added a ▲ hide ▼ show toggle for the header.
  • Added 1x and 2x font size adjust toggle in the header.
  • Welcome page displays a RetroTxt updated banner that can also be turned off.
  • Requires Firefox 55.
  • Links in the header are not selectable to stop accidental selection when clicked.
  • Replaced columns/lines statistics in the header with total pixel width/length.
  • Fixed Blink engine handling of ANSI when it mistakenly sees it as ISO-8859-5 instead of Windows-1252.
  • Fixed broken preview images in welcome.html.
  • Fixed SAUCE font issue where it requests Amiga Plus fonts but uses standard.
  • Fixed Some wider fonts break the ASCII text document layout.
  • Fixed SAUCE font P0T-NOoDLE value not registering.
  • ANSI maximum columns are now uncapped when SAUCE TInfo1 data is corrupted by the browser.
  • Internal optimisations.
    • Replaced XMLHttpRequest() with FetchAPI.
    • Dropped the generation of elements using dom.innerHTML = text (except in parse_ansi.js).
    • Removed all remaining var usage.
    • Replaced many let variables with const objects.
    • Renamed some variables, so they are clearer in their purpose.
    • Removed some unused functions and objects.


August 2017

  • Added 24-bit RGB colour support for ANSI/ECMA-48 text. That gives a choice of over 16 million colours to play with.
  • New fonts, a complete set of Amiga and ATASCII (Atari 8-bit).
  • Complete SAUCE FontName support.
  • Added 2-bit IBM CGA magenta palette.
  • Added Option checkbox, 'ANSI iCE colors'.
  • Fixed some CP437 characters not displaying as intended.
  • Fixed issue where 'DOS control glyphs' changes required two tab refreshes to apply.
  • Any discovered SAUCE configurations are sent to the browser console.
  • Browser tab titles running RetroTxt are marked with [··].


June 2017

  • There are new clickable toggles in the information header for ANSI art.
    • Normal switches the active tab text rendering between Normal, Smeared and Shadowed.
    • IBM switches the ANSI 16 color palette between IBM VGA, Unix xterm and gray scale.
    • On toggles between iCE background colors and blinking text.
  • Added a new Option, Text render, choices are Normal, Smeared, Shadowed.

  • Increased minimum version requirements for both Chrome and Firefox to 51.
  • Added support for CP-1250 and CP-1251 text encodings that are occasionally used by Chrome over the expected CP-1252.
  • Fixed header not displaying when using white background themes.
  • To improve performance <links> to CSS files are disabled instead of removed when toggling between plain text and HTML displays.
  • The shortcut key combination has been switched from ALT+T to ALT+R to stop Firefox conflicts.
  • Fixed ECMA48 SGR2 and SGR3 controls using the wrong CSS properties.


March 2017

  • Performance optimisations to reduce the memory footprint and improve rendering speed.
  • ECMA48/ANSI iCE colors support.
  • Automatic parsing and execution of SAUCE ANSiFlags.
  • Added Atari ST TOS font and theme.
  • Text and font information header now conveys more information and uses CSS position: sticky;.
  • JavaScript refactor to be ESlint compliant.
  • Uses more ES6 features such as arrow functions and for-of loops.

  • Improved error handling and user feedback when the addon or Extension API fails.

  • Improved embedded SAUCE detection.

  • Fixed ECMA48/ANSI bug that dropped the first row of text.

  • Fixed mixed ANSI/ASCII documents issue that didn't parse the ECMA48 control characters.
  • Fixed < > and & characters breaking ANSI display thanks to browser HTML entity conversions.
  • Fixed @[email protected] bug in PCBoard detection.
  • Fixed HVP and CUP execution.


November 2016

  • Detects and converts many ANSI Control Sequence Introduces used by MS-DOS ANSI.SYS to display ANSI art.
  • Detects and converts legacy BBS colour codes for PCBoard and Wildcat!.
  • Apply RetroTxt to any text files hosted on these websites will only run on a user supplied whitelist of website domains. This will stop it from conflicting with secure login sessions used by some websites.
  • Options have been reworked with a refresh to its look including the use of the Google Material Icons.
  • Introduced a new, charcoal coloured icon that should clash less with most browser themes.
  • Context menu now allows you to control the page transcoding, currently CP-487, CP-865, ISO-8959-15, CP-1252 character sets are supported.
  • The about encoding content menu has been removed and replaced by the Transcode None option, that works with UTF-8, UTF-16 and ISO-8959-1 text.
  • Automatic detect & run RetroTxt on text files feature has been renamed to Apply RetroTxt to any text files hosted on these websites.
  • Options, font samples now reset when the user's mouse leaves the font selection form.
  • Display formatting control codes as DOS CP-437 glyphs has been renamed to DOS control glyphs.
  • When checked DOS control glyphs will show a few ASCII control characters in the sample text.
  • Refactored much of the JavaScript source to use ECMAScript 6 specific features.
  • Improved handling of file:/// domains.
  • Uses asynchronous functionality as browser support of synchronous requests may end.
  • Context menus now use checkmarks for active options.
  • Context menus code in eventpages.js has been redesigned so it is now easier to add new themes and Display options.
  • The toolbar button should now be more intuitive by more accurately changing its enabled state and refreshing its tip where appropriate.

Firefox specific fixes

  • Requires Firefox 50+.
  • Options dialogue is better themed to Firefox's style guides. (Unfortunately Firefox on Linux still has some strange input style quirks)
  • Fixed Options not supporting UK locales.
  • Fixed first time run bugs that required RetroTxt to reload for it to work correctly.
  • Fixed RetroTxt trying to run on about: URIs.
  • RetroTxt should be slightly less resource intensive as previously there were some event filters that Firefox was ignoring.


2 July 2016

  • Automatic detect & run RetroTxt on text files feature is now more reliable and intuitive. Its (experimental) tag has been dropped and can now be considered stable.
  • Automatic detect & run RetroTxt... also has a hardcoded blacklist of domains to ignore which previously this feature conflicted with.
  • Added QUnit testing. A Tests link to the results page will show up with Chrome in Options when using a development install.
  • Fixed vertical lines artefacts issue with block fonts with most colour combinations.
  • Firefox specific bugs fixed including incorrect normal line height and weird toolbar button behaviour.
  • Refactored a number of function names to be more descriptive of their purpose.
  • Started the transition of replacing var with let and const.
  • Some functions now return more meaningful errors when missing required parameters.


22 June 2016

  • Now works in Firefox but requires at least Firefox (Gecko) 48.
  • Tested in Opera (Blink) and works great.

Differences between using Firefox and Chrome

  • Chrome uses event pages while Firefox uses the less desirable persistent background pages. Event pages only load when needed so in theory they should be less resource intensive.
  • Firefox and the Gecko engine renders multiple block characters better than the Blink engine used in Chrome. The Blink engine adds light but distracting vertical lines.
  • Firefox's Options UI does not support the unified chrome_style.
  • The toolbar button in Firefox does not support right-click context menus.
  • Context menus in Firefox are not filtered by URL types as it doesn't support the documentUrlPatterns property.
  • When loading RetroTxt both Chrome and Firefox will throw warnings about unrecognised items in the manifest.


21 June 2016

  • Added ability to increase the whitespace between rows of text (line space).
  • Rearranged the Options menu to be more compact.
  • Changed the sample text found in the Options menu.
  • Removed the Options, font selection mouse out event to make the font samples more stable.
  • Added IBM BIOS font (only 2y and 2x were previously included).
  • Created this file.