CRVJA, AMOS in Your Web Browser

Making it acessible, easy and fun to use, how it all started...

Amiga Computers

Amiga, created by commodore at 1985 to be a game console, but redefined to a personal computer.

A breakthrough in that time, with dedicated hardware's for graphics, mouse-based GUI and more RAM.

Creating new possibilities to use creativity, and with that, got popular very quickly.


The Rise

With something completely new, out of the box, gaming companies and even television companies started to see that as a opportunity to make better products with new graphical features.

Turning Amiga a part of all their stories.

Games having 3D, more colors, more content because of extra RAM and storage of Amiga


Television companies using the capabilities of Amiga to use more than one monitor to stream and manage their broadcasting


But it all started to end at 1994...

The company behind Amiga computers when bankrupt, making Amiga a legacy, a legacy that could not be forgotten on how impactful it was.


The Legacy

The upcoming years, many new personal computers with better hardware were developed, making Amiga a thing from the past.

With that, games, magazines, documentation and it's story were beginning to be lost with time.

Some enthusiasts could not let this happen, seeing their childhood and story  with games go away that easy.

Many game companies nowadays started with Amiga, including Rockstar North Studios, creator of Grand Theft Auto series, but in that time they were called DMA, Design Limited.


Community effort for documenting

Thanks to few people that stored and documented all this before was lost, a few emulators were even created to be able to play that games.

But all of them currently need to pay and are very complicated to use.

With that in mind, a new idea started to arise: "What if we could "emulate" that in the browser, giving opportunity to anyone with internet access to try it out the games and even code themselves.


CRVJA concept

That gave spark needed to the creation of CRVJA, a Compiler with Rapid Virtual reading to JavaScript from Amos.

With the ANTLR 4, a powerful tool for parsing, was possible to create the environment needed to be able to map the whole graphical capabilities of the Amos Amiga Command Index.

Creating a complete new custom grammar that could understand the Basic code from Amiga, and send that to a complete custom constructor, and compiler that will build all the equivalent in JavaScript, and run that in a virtual box.

All that including the banks needed for sprites and images, the extensions and much more.


Basic is not that basic

The concept was done, now comes the hard part, the logical thinking.
This section is to show the creation of CRVJA, from scratch, how every issue fixed made it better, and how it was solved.

First of all, how to build the grammar?
Every single letter and word goes through the grammar using ANTLR 4, i will not go in details about ANTLR 4, they have a really good documentation about it.

But the grammar, was and is needed to go into websites that contains the command index of Amos Amiga, go one by one to decide if is needed first.

If is needed, now how this command is used? What does it do? and mostly important, what this command interacts with?

After that, and with a lot of logic, we properly send the instructions of that command being read to the JavaScript side

Now let's to almost a thousand times for all the commands!

The JavaScript constructor

Now the JavaScript side, this is where it gets interesting, because here we need not only to know what we are receiving by the grammar, but what is also the equivalent of doing that in JavaScript

In case we don't have a match in JavaScript, how we are going to "teach" JavaScript to do that? Simple!, just build a entire map for that issue, Basic code in, JavaScript equivalent Out!, then do that for the 300 keys of the keyboard from Amiga Computers to the modern keyboard.

Also, don't forget about the banks!

  • First we need to perfectly follow the documentation and binary/byte order so it can be loaded in a real emulator or Amos Amiga Computer

  • Read them properly

  • Merge them considering the binary/byte order that is in the real Amos Amiga

  • When using the bank creator in CRVJA we need to convert that back to to proper format!

Then, after all that and a few wavelength functions to produce sounds, we can properly render the game, the sprites and even sounds!


How it works

  • It reads the Basic code, and goes to the current grammar to be understanded

  • The tokens found and it's format is sent to the JavaScript Translator

  • The JavaScript Translator matches the equivalent of all the grammar found building a entire html page from scratch.

  • All the html also includes: The key map for the keyboard equivalent, a wavelength function to produce sound in the browser, many methods to read and rewrite banks

  • A decoder was also made to be able to input directly .amos files which is the equivalent of a .rar, .zip nowadays, it includes the code, banks and extensions and headers of the amiga version to run the game and metadata.

  • After building the entire HTML, it's send to a JavaScript method that will execute the generated html page

  • It's created a div to contain this entire new page, outside the CRVJA page

  • It will try to fetch the banks from the loaded ones, if is not found, the game will reload and try again in a loop until the banks are properly loaded

  • When it's all done, it will render and listen to the current code, making it possible to do real time changes in the code and render instantly

  • Also, at the end, it also have a Bank Creator, Editor that will decrypt banks and show the sprites, so it can be edited

  • The Bank Creator will also encrypt back to the proper format of Amos Amiga banks.

The decoder, the bank creator and even the code written is currently 8/20/2025 being integrated to a encoder so it can properly generate a .amos file to just load directly in a real emulator or the real physical Amos Amiga Computer

How it is now

You can checkout the oficial website here with the current release of CRVJA