# Ikari Warriors — arcade original Site: https://ikari.autenticar.info ## Jogar 1. Clique em **JOGAR ORIGINAL**. O site carrega a ROM fornecida pelo usuário no MAME 2003-Plus. 2. Aguarde a inicialização do arcade e clique na tela para focar o teclado. 3. Pressione **5** para inserir uma ficha e **1** para iniciar. 4. Use **WASD** para caminhar, **mouse esquerdo** para atirar, **mouse direito** para granadas. Aponte o cursor para o alvo: o soldado gira e dispara naquela direção. O **scroll** continua disponível para giro manual até mover o mouse novamente. O botão **CARREGAR OUTRA ROM** continua disponível. **TROCAR ROM** volta à tela inicial. Pausa, volume, saves e configuração ficam no menu do emulador. CRT é um filtro opcional, desligado por padrão. ## ROM e núcleo O arquivo `roms/ikari.zip` foi fornecido pelo usuário em 12/09/2026. Não foi obtido em um site de terceiros. Os 20 arquivos internos foram comparados por SHA-1 com o driver de Ikari no MAME 2003: todos coincidiram. SHA-256 do ZIP: `9ff1ef57fe5a854cafd388dc7f815c2fda84e177b0ef162ab62018d5134582ec`. O núcleo MAME 2003 do pacote EmulatorJS 4.2.3 falhou na inicialização. MAME 2003-Plus inicializou e foi escolhido como padrão. FinalBurn Neo também chegou à tela de título. Esta é execução do jogo original em emulação, não uma reimplementação do seu código. A inicialização e as telas do jogo foram verificadas no navegador. Também foram testados WASD, tiro e granadas com o mouse, scroll nas duas direções, bloqueio de menus/rolagem e liberação ao sair do jogo ou perder foco. A configuração usa um novo perfil de controles (mouse-v1); saves do perfil antigo não são apagados, mas não são carregados automaticamente pelo novo perfil. A fidelidade integral de áudio, temporização, coop e controle rotativo LS-30 ainda exige comparação com o hardware original. A ROM não equivale a código-fonte editável; melhorias no jogo precisarão de patches ou de uma implementação própria comparada à referência. ## Controles iniciais | Função | Jogador 1 | Jogador 2 | | --- | --- | --- | | Movimento | WASD | IJKL | | Tiro / granada | Mouse esquerdo / direito | G / H | | Ficha | 5 | 6 | | Iniciar | 1 | 2 | | Mirar / girar | Cursor do mouse; scroll ou Q / E para giro manual | U / O | | Alternativa para tiro / granada | F / Espaço | G / H | A mira acompanha a posição do soldado a pé e o deslocamento da câmera, em oito direções. A assistência de mira gira o soldado em direção ao cursor; os botões são independentes dela e disparam imediatamente na direção atual. `aim-state.js` lê a posição e o quadro de animação no núcleo fixado, sem escrever na memória nem modificar a ROM. Essa leitura depende da ROM fornecida e não cobre animações de tanques ou variantes de ROM. Quando a leitura não reconhece o personagem, o tiro pelo mouse continua funcionando na direção atual do canhão/tanque; use scroll ou Q/E para girar. O botão direito entra/sai do veículo, conforme o comando original de granada. Nenhuma leitura de mira, ausente ou desatualizada, pode bloquear os botões. Os controles novos usam o modo de teclado direto do MAME 2003-Plus. A roda envia pulsos para o controle rotativo original; não muda a ROM. Um clique esquerdo envia um pulso curto de tiro. Segurar por mais de 250 ms ativa o disparo automático; soltar interrompe o disparo. O botão direito pode ser mantido pressionado para granadas. A roda e o botão direito não acionam rolagem da página nem menus sobre o campo de batalha. Ao perder o foco, todas as entradas mantidas são soltas. Os controles de teclado desta página são definidos em controls.js; o menu do emulador continua disponível pelo botão de menu para ajustes e controles USB. ## Rodar localmente Execute `INICIAR.cmd` ou `npm start` nesta pasta. Requer Node.js. Abra http://localhost:1986. Se a aba abrir antes do servidor, atualize-a. O EmulatorJS e seus núcleos são baixados da internet; este projeto ainda não é um pacote offline. Configurações e saves podem ser armazenados pelo emulador no navegador. Arquivos escolhidos manualmente são lidos no navegador, sem endpoint de upload. ## Desenvolvimento e publicação - `index.html`, `style.css`, `arcade.css`: interface. - `app.js`, `rom.js`: carregamento e validação inicial. - `player.html`, `player.js`: EmulatorJS isolado em iframe. - `controls.js`: WASD, mira pelo cursor, botões do mouse, giro por scroll e liberação de entradas ao perder foco. - `aim-state.js`: leitura da posição e direção do soldado e conversão do cursor para as oito direções. - `roms/ikari.zip`: ROM fornecida pelo usuário. - `server.mjs`: servidor local, restrito a 127.0.0.1. - `build.mjs`, `wrangler.jsonc`: seleção explícita dos arquivos e publicação no Cloudflare. `npm test` executa os testes do servidor e da validação de arquivos. `npm run deploy` prepara `dist/` e publica no domínio configurado; requer autenticação do Wrangler. Não coloque arquivos manuais em `dist/`. Credenciais não fazem parte do projeto. ## Referências - https://github.com/libretro/mame2003-libretro/blob/master/src/drivers/snk.c - https://emulatorjs.org/docs/options/ - https://docs.libretro.com/library/mame2003_plus/ - https://github.com/EmulatorJS/EmulatorJS/releases/tag/v4.2.3 Projeto não oficial. Ikari Warriors pertence aos seus titulares. A entrega do arquivo pelo usuário não transfere direitos autorais. EmulatorJS e núcleos têm licenças próprias. ## Imagem em monitores de alta resolução IMAGEM MELHORADA ativa o filtro 4xScaleHQ do EmulatorJS; IMAGEM ORIGINAL desliga o filtro. A troca funciona durante a partida e a escolha fica salva no navegador. EXPANDIR utiliza a área disponível da tela, preservando as proporções do arcade. A interface cresce em monitores maiores. O filtro melhora a ampliação dos pixels existentes; não substitui a arte por texturas HD nem aumenta a resolução nativa da ROM. CRT continua opcional.