More actions
(Created page with "{{Infobox Switch Homebrews |title=Brew.js |image=brewjsswitch.png |description=Make homebrew apps with JavaScript! |author=XorTroll |lastupdated=2018/07/02 |type=Developments |version=1 |license=Mixed |download=https://dlhb.gamebrew.org/switchhomebrews/brewjsswitch.7z |website=https://gbatemp.net/threads/brew-js-make-homebrew-apps-with-javascript.504327/ |source=https://github.com/XorTroll/Brew.js |donation=https://patreon.com/xortroll }} {{#seo: |title=Switch Homebrew P...") |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox Switch Homebrews | {{Infobox Switch Homebrews | ||
|title=Brew.js | |title=Brew.js | ||
|image= | |image=brewjsnx.png | ||
|description= | |description=C++ high-level JavaScript API for Nintendo 3DS/Switch (WIP). | ||
|author=XorTroll | |author=XorTroll | ||
|lastupdated=2018/07/02 | |lastupdated=2018/07/02 | ||
|type=Developments | |type=Developments | ||
|version=1 | |version=1.0 | ||
|license=Mixed | |license=Mixed | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/ | |download=https://dlhb.gamebrew.org/switchhomebrews/brewjsnx.7z | ||
|website=https://gbatemp.net/threads/brew-js-make-homebrew-apps-with-javascript.504327/ | |website=https://gbatemp.net/threads/brew-js-make-homebrew-apps-with-javascript.504327/ | ||
|source=https://github.com/XorTroll/Brew.js | |source=https://github.com/XorTroll/Brew.js | ||
|donation=https://patreon.com/xortroll | |donation=https://patreon.com/xortroll | ||
}} | }} | ||
{{ | {{obsolete}} | ||
C++ high-level JavaScript API for Nintendo 3DS/Switch. | |||
Current content: | |||
* Brew.js API: C++ libraries to execute JavaScript within any C++ application or program (stable, some not working stuff, modules are WIP). | |||
* Brew.js interpreter: a GUI front-end for executing JavaScript. (still undeveloped). | |||
* Brew.js link: a PC client and Homebrew server to interpretate JavaScript code, like in Node.js CLI. (only Switch, and still very WIP). | |||
Each platform has different exclusive modules (for instance ctr/sf2d for 3DS, nx/pegaswitch for Switch...). | |||
The current state of the project is unreleased. Latest release is 1.0 (outdated). | |||
==User guide== | |||
To use the interpreter: | |||
*Just copy the .nro to your SD card (sdmc:/switch/). | |||
*Brew.js searches for projects at sdmc:/switch/Brew.js. Some examples are included. | |||
==Screenshots== | ==Screenshots== | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/brewjsnx2.png | ||
https://dlhb.gamebrew.org/switchhomebrews/ | |||
https://dlhb.gamebrew.org/switchhomebrews/brewjsnx3.png | |||
https:// | |||
==Media== | |||
'''[Nintendo Switch] Brew.js - Keyboard loading example''' ([https://www.youtube.com/watch?v=6RaagAV_t7c XorTroll]) <br> | |||
<youtube>6RaagAV_t7c</youtube> | |||
==Compatibility== | |||
All the tests have been done with a 5.0.2 Switch. | |||
==Changelog== | ==Changelog== | ||
''' | '''v1.0 2018/07/02''' | ||
* | *UI improved: | ||
**New dark blue theme, all graphics updated. | |||
**Main font changed from Tahoma to Roboto. | |||
**Use ZL and ZR to move between project blocks. | |||
**Use D-pad or joysticks to move between projects. | |||
**Select projects by A button or touching them. | |||
**Use L or R to display help. | |||
**Use + or - to exit to hbmenu. | |||
*Brand, new remade API: (read documentation). | |||
**Modules must be called by require function, Node-style. | |||
**Graphics module gfx replaced by sdl, now using SDL2 rendering. | |||
**System module device replaced by nx. | |||
**Global vars __dirname and __filename added (only if the source is loaded from a file). | |||
**Some Node modules were partially added: fs, os, path, process (more will be added). | |||
**New modules have been added, to port some basic C and C++ elements, which are stdio and stdlib. | |||
**Within sdl module, audio support has been added because SDL2 supports audio: MP3, OGG, FLAC and WAV files can be played. | |||
**More specific API stuff can be checked within the documentation. | |||
*Projects have also been changed: | |||
**Now projects are identified by folders which have a package.json file inside, like Node and NPM do. | |||
**Those JSON files should have this attributes: name (the project's name), version (the project's version), description (the project's description) and main (the entry source file to load, doesn't need to be *.js anymore). | |||
**If the project doesn't have the JSON file, it won't be shown in the interpreter. | |||
*Can I use Brew.js API on my C/C++ homebrew app? Yes! | |||
**Brew.js API's C++ core has been completely remade, so it can now be embedded with other C/C++ projects. | |||
**IMPORTANT: You must have it's JS libraries stored somewhere, so that Brew.js accesses them. In this interpreter's case, they're stored inside RomFS ("romfs:/Lib"). | |||
**Brew.js API searches there by default, so I recommend storing them there. Don't worry about RomFS, when Brew.js API is initialized it automatically enabled RomFS support, and disables it when it's exited. | |||
**Brew.js API doesn't need a documentation, as it's main header ("Brew.js/Brew.js.h") only has 4 functions: Brew::Init(string Path), which initializes Brew.js API with given library path ("romfs:/Lib" by default); Brew::Exit(), which exits Brew.js API's services, Brew::Evaluate(string Source), which evaluates JS source and returns the result as a string; and Brew::EvaluateFile(string Path), which does the same as the previous function but from a source file, adding __dirname and __filename global vars. Enjoy embedding Brew.js API. | |||
*Yay, new examples! | |||
**There are some new examples, as always, but this time there are even more. (audio player, simple notepad...) | |||
**Obviously, all the examples have been updated to be useful with the new API. | |||
'''v0.3 2019/05/28''' | |||
*The UI has been improved, and it doesn't require those attached files from the 0.2 release. | |||
*All the graphic system has been updated, adding lots of features. Too many functions and elements to talk about... Now games can be easily made using Brew.js API. | |||
*Now the result of an execution is not just saved, now it's also displayed in the screen. (it might give some problems due to large results). | |||
*The examples have been updated according to this version's API, and some new examples were added. Wow! A PONG example to see how graphics work! (despite it's very poor). | |||
'''v0.2 2019/05/20''' | |||
*New UI! No more console, now beautiful backgrounds. | |||
*Some new functions and vars added, check the API guide. (README.md file) | |||
*Console printing has been disabled due to problems with graphics. | |||
*Result saving! When a project's execution finishes, it's output is saved to a log file. | |||
**If it gets an error while executing, the project exists and the error's output is saved to the log file. | |||
*Three new examples were added, and the Hello World one was updated according to the new API. | |||
'''v0.1 2019/05/19''' | |||
*You can check the documentation given in the rar file for API info. | |||
*Enjoy scripting. | |||
== External links == | == External links == | ||
* | * GitHub - https://github.com/XorTroll/Brew.js | ||
* Documentation - https://xortroll.github.io/Brew.js/ | |||
* GBAtemp - https://gbatemp.net/threads/brew-js-make-homebrew-apps-with-javascript.504327/ |
Latest revision as of 00:46, 3 Haziran 2023
Brew.js | |
---|---|
General | |
Author | XorTroll |
Type | Developments |
Version | 1.0 |
License | Mixed |
Last Updated | 2018/07/02 |
Links | |
Download | |
Website | |
Source | |
Support Author | |
This application has been obsoleted by one or more applications that serve the same purpose, but are more stable or maintained. |
C++ high-level JavaScript API for Nintendo 3DS/Switch.
Current content:
- Brew.js API: C++ libraries to execute JavaScript within any C++ application or program (stable, some not working stuff, modules are WIP).
- Brew.js interpreter: a GUI front-end for executing JavaScript. (still undeveloped).
- Brew.js link: a PC client and Homebrew server to interpretate JavaScript code, like in Node.js CLI. (only Switch, and still very WIP).
Each platform has different exclusive modules (for instance ctr/sf2d for 3DS, nx/pegaswitch for Switch...).
The current state of the project is unreleased. Latest release is 1.0 (outdated).
User guide
To use the interpreter:
- Just copy the .nro to your SD card (sdmc:/switch/).
- Brew.js searches for projects at sdmc:/switch/Brew.js. Some examples are included.
Screenshots
Media
[Nintendo Switch] Brew.js - Keyboard loading example (XorTroll)
Compatibility
All the tests have been done with a 5.0.2 Switch.
Changelog
v1.0 2018/07/02
- UI improved:
- New dark blue theme, all graphics updated.
- Main font changed from Tahoma to Roboto.
- Use ZL and ZR to move between project blocks.
- Use D-pad or joysticks to move between projects.
- Select projects by A button or touching them.
- Use L or R to display help.
- Use + or - to exit to hbmenu.
- Brand, new remade API: (read documentation).
- Modules must be called by require function, Node-style.
- Graphics module gfx replaced by sdl, now using SDL2 rendering.
- System module device replaced by nx.
- Global vars __dirname and __filename added (only if the source is loaded from a file).
- Some Node modules were partially added: fs, os, path, process (more will be added).
- New modules have been added, to port some basic C and C++ elements, which are stdio and stdlib.
- Within sdl module, audio support has been added because SDL2 supports audio: MP3, OGG, FLAC and WAV files can be played.
- More specific API stuff can be checked within the documentation.
- Projects have also been changed:
- Now projects are identified by folders which have a package.json file inside, like Node and NPM do.
- Those JSON files should have this attributes: name (the project's name), version (the project's version), description (the project's description) and main (the entry source file to load, doesn't need to be *.js anymore).
- If the project doesn't have the JSON file, it won't be shown in the interpreter.
- Can I use Brew.js API on my C/C++ homebrew app? Yes!
- Brew.js API's C++ core has been completely remade, so it can now be embedded with other C/C++ projects.
- IMPORTANT: You must have it's JS libraries stored somewhere, so that Brew.js accesses them. In this interpreter's case, they're stored inside RomFS ("romfs:/Lib").
- Brew.js API searches there by default, so I recommend storing them there. Don't worry about RomFS, when Brew.js API is initialized it automatically enabled RomFS support, and disables it when it's exited.
- Brew.js API doesn't need a documentation, as it's main header ("Brew.js/Brew.js.h") only has 4 functions: Brew::Init(string Path), which initializes Brew.js API with given library path ("romfs:/Lib" by default); Brew::Exit(), which exits Brew.js API's services, Brew::Evaluate(string Source), which evaluates JS source and returns the result as a string; and Brew::EvaluateFile(string Path), which does the same as the previous function but from a source file, adding __dirname and __filename global vars. Enjoy embedding Brew.js API.
- Yay, new examples!
- There are some new examples, as always, but this time there are even more. (audio player, simple notepad...)
- Obviously, all the examples have been updated to be useful with the new API.
v0.3 2019/05/28
- The UI has been improved, and it doesn't require those attached files from the 0.2 release.
- All the graphic system has been updated, adding lots of features. Too many functions and elements to talk about... Now games can be easily made using Brew.js API.
- Now the result of an execution is not just saved, now it's also displayed in the screen. (it might give some problems due to large results).
- The examples have been updated according to this version's API, and some new examples were added. Wow! A PONG example to see how graphics work! (despite it's very poor).
v0.2 2019/05/20
- New UI! No more console, now beautiful backgrounds.
- Some new functions and vars added, check the API guide. (README.md file)
- Console printing has been disabled due to problems with graphics.
- Result saving! When a project's execution finishes, it's output is saved to a log file.
- If it gets an error while executing, the project exists and the error's output is saved to the log file.
- Three new examples were added, and the Hello World one was updated according to the new API.
v0.1 2019/05/19
- You can check the documentation given in the rar file for API info.
- Enjoy scripting.
External links
- GitHub - https://github.com/XorTroll/Brew.js
- Documentation - https://xortroll.github.io/Brew.js/
- GBAtemp - https://gbatemp.net/threads/brew-js-make-homebrew-apps-with-javascript.504327/