Introdução
Módulos
AthenaEnv é um projeto que busca facilitar e, ao mesmo tempo, fornecer um kit completo para que os usuários criem software homebrew para PlayStation 2 usando a linguagem JavaScript. Ele conta com dezenas de métodos integrados, tanto para a criação de jogos quanto de aplicativos.
A principal vantagem de usar o AthenaEnv em vez do PS2SDK puro é, acima de tudo, a praticidade. Você utilizará uma das linguagens mais simples possíveis para desenvolver suas ideias, sem a necessidade de compilação — basta escrever o script e testar, de forma rápida e simples.
Pré-requisitos
Com o AthenaEnv, você precisa de apenas uma forma de programar e uma forma de testar seu código. Ou seja, se quiser, pode até criar seu código diretamente no PS2. Porém, deixarei algumas recomendações abaixo.
PC
- Visual Studio Code (com extensão JavaScript)
- PCSX2 (1.7.0 ou acima) ou PS2Client para testes.
- Habilite HostFS no PCSX2
Android
- QuickEdit
- PS2 com wLE para testes.
Ah, e também preciso mencionar que um pré-requisito essencial para usar o AthenaEnv é saber programar em JavaScript.
PCSX2
Versão Qt
Habilite a saída no console
(antiga) versão WxWidgets
Primeiros Passos
const font = new Font("default");
os.setInterval(() => { // Basicamente cria um loop infinito, similar ao while true (você também pode usá-lo).
Screen.clear(); // Limpa a tela para o próximo quadro.
font.print(0, 0, "Hello World!"); // x, y, texto
Screen.flip(); // Atualiza a tela.
}, 0)
Veja mais exemplos em AthenaEnv samples.
Como executar
O Athena é basicamente um carregador de JavaScript, ou seja, ele carrega arquivos .js. Ele executa o main.js por padrão, mas você pode executar outros arquivos passando o nome como o primeiro argumento ao iniciar o arquivo ELF.
Demo
Se você tentar apenas fazer o download na aba de releases aqui e executá-lo, isso é o que você verá:
Esse é o painel padrão, codificado no arquivo main.js padrão. Ele procura arquivos JavaScript cuja primeira linha contenha a seguinte estrutura:
// {"name": "Nome do app", "author": "Quem fez isso?", "version": "04012023", "icon": "app_icone.png", "file": "meu_app.js"}
// Agora você pode programar livremente abaixo:
Uma vez encontrado, ele aparecerá na lista de aplicativos do painel.
Funcionalidades
Além disso, ele usa uma versão levemente modificada do interpretador QuickJS para a linguagem JavaScript, o que significa que traz quase todos os recursos modernos do JavaScript até agora.
Float32
Este projeto introduz um (antigo) novo tipo de dado para o JavaScript: floats simples. Apesar de serem menos precisos do que os doubles tradicionais em termos de semântica numérica, eles são importantes para o desempenho no PS2, já que o console só processa floats de 32 bits em sua FPU.
Você pode escrever floats simples no AthenaEnv seguindo a sintaxe abaixo:
let test_float = 15.0f; // O sufixo 'f' faz com que o QuickJS o reconheça como um float simples.
ou
let test_float = Math.fround(15.0); // Math.fround retorna floats simples reais no Athena.