Pular para o conteúdo
Menu
WorkflowSkills, tmux e o ciclo do dia a diaFerramentasai-usagebarCota e horário de reset de 24 provedores de IAghpendingTodo PR e issue aberto numa lista sótclockUm relógio de terminal com widgets de comandoProjetos FrankExperimentos pras minhas próprias coceirasai-memoryMemória de longo prazo pra agentes de códigoai-jailUm sandbox de sistema pra agentes de código com IAAprendaCompetente o Suficiente, o livroAGI, empregos e aprendizado sem medo nem propagandaPor que AGI não importaUma opinião, com fontesOs limites das LLMsO que a IA consegue copiar, e o que não consegueIA e estudantesPor que os fundamentos importam mais do que nuncaBlog e benchmarkO blog e o benchmark de LLMsNewsletterThe M.Akita Chronicles, toda segundaPodcastsConversas longas sobre IA, em vídeoGamesMinha coleção de games como código, no OmarchySetupOmarchy, tmux e o que eu deixei de ladoMe siga
Fora do expediente

Nem tudo é trabalho. Até eu preciso jogar.

E a minha ideia de relaxar é, claro, transformar minha coleção de games num projeto de software. Jogos da Steam, emuladores, ports para PC, decompilações, fan games e pacotes de mods, tudo instalado, configurado e documentado por agentes de IA num único repositório Ansible. Roda dentro de um container, então meu desktop Omarchy nunca vê nenhuma dessas dependências. Por cima fica um launcher que eu escrevi, pra coisa toda parecer um console.

Fun to Drive: o novo Tesla Roadster num jogo de corrida dos anos 80

Um joguinho que eu fiz no vibe coding com agentes de IA. O Tesla Roadster recém-anunciado, com propulsor de ar frio e pulo incluídos, corre numa estrada estilo Outrun na tela de um painel de brinquedo dos anos 80, como o Playmates Fun-to-Drive e o Turbo Video Driver da Tectoy.

Uma partida inteira, com a música do próprio jogo.
  • Escolha uma corrida de dois, seis ou dez minutos e ultrapasse o máximo de carros antes de o tempo acabar. Cada corrida começa na estação do ano e na hora do dia do seu relógio.
  • Junte três cargas de ar frio pra disparar o propulsor, e Jump Kicks pra pular por cima do trânsito, a não ser que você caia em cima dele.
  • O brinquedo reage na mesa: o volante gira, a alavanca de câmbio mexe e o painel inteiro dá um tranco quando você bate.
  • Céu limpo, chuva e neve, paisagens de cada estação, das cerejeiras às árvores peladas do inverno, e cenários da Tóquio neon a Paris. Fique de olho nos eventos raros: um furacão que levanta os carros, uma abdução por OVNI à noite e, se você segurar 88 mph, uma máquina do tempo.
  • Dá pra jogar com teclado, controle com vibração ou toque. Roda no navegador, escrito em Rust com Bevy e compilado pra WebAssembly.

Jogos de corrida antigos, jogáveis de novo

Alguns dos meus jogos de corrida favoritos são abandonware: nenhuma loja vende, e eles não rodam num PC moderno sem uma tarde de gambiarras. Então fiz um launcher pra cada um, com agentes de código e a minha ferramenta de engenharia reversa, o REA. O jogo original fica intacto. O launcher conserta o que envelheceu em volta dele, como gráfico, controle, tela e registro do Windows, e depois acrescenta o que um PC moderno consegue fazer.

Você precisa da sua própria cópia de cada jogo. Nenhum launcher traz arquivos do jogo.

  1. Screamer num PC moderno: um carro esportivo vermelho correndo numa rua da cidade, com o contador de voltas e o velocímetro originais.1995

    Trilogia Screamer

    Antes Três jogos de MS-DOS. O Screamer 2 da GOG traz um stub de Glide pra Windows que não funciona no DOS, e com o emulador na velocidade máxima o controle analógico nunca responde.

    • 3dfx Glide de verdade, com a Voodoo emulada desenhando no dobro da resolução
    • Escala com FSR, widescreen Hor+ e distância de desenho maior
    • Controle analógico e música do CD
    • Geração de quadros experimental a 100 fps
  2. Colin McRae Rally de 1998 em widescreen: o Subaru azul numa etapa de cascalho seco.1998

    Colin McRae Rally

    Antes Feito pra Windows 95. Na minha máquina precisava de chaves de registro, modo de compatibilidade do XP, tela presa em 800x600 e uma ponte de teclado pro controle, e mesmo assim rodava em 800x600 e 4:3.

    • 4K, widescreen Hor+ e 60 fps, com a física original a 25 Hz
    • Arte HD redesenhada com IA no HUD, menus, céus, placas e carros
    • Até três vezes a distância de desenho
    • Gatilhos como pedais, e rumble
  3. Colin McRae Rally 3 em widescreen: o Ford Focus numa etapa de floresta.2003

    Colin McRae Rally 3

    Antes Uma imagem lavada, e um executável oficial 1.1 preso à proteção contra cópia do disco.

    • Widescreen do SilentPatch em qualquer proporção, com interface HD em 4K
    • Converte o executável 1.1 no executável sem DRM das reedições
    • Filtragem anisotrópica até 16x e campo de visão ajustável
    • Correção de cor e gama opcional no Linux
  4. Colin McRae Rally 04 em 16:9: um Mitsubishi Lancer Evolution numa etapa empoeirada na encosta.2004

    Colin McRae Rally 04

    Antes O 16:9 não mostra mais cenário, o menu gráfico para em 2048x1536 e trava, e o Alt+F4 não faz nada.

    • 16:9 com a geometria certa, via dgVoodoo
    • Escolhe o monitor em paisagem, e fechar a janela funciona
    • Gatilhos analógicos e controle já configurado
    • Limite de fps e vsync opcionais
  5. Colin McRae Rally 2005 em 16:9: um Subaru azul numa etapa de floresta.2004

    Colin McRae Rally 2005

    Feito a partir do SDK

    Antes Crasha na abertura no Wine, e o instalador da GOG trava lá. As versões em DVD usam StarForce e não são suportadas.

    • Instala direto dos arquivos do instalador da GOG
    • 16:9 com a visão widescreen do próprio jogo
    • DXVK no Linux: uma etapa que rodava a umas 20 fps passa de 1.000
    • Saves numa pasta própria
  6. OutRun 2006 em 4K: um conversível prata numa avenida de cidade litorânea.2006

    OutRun 2006: Coast 2 Coast

    Antes O port de PC precisa de fixes da comunidade e de tirar o DRM de disco, e perdeu os dois primeiros segundos de "Rush a Difficulty".

    • OutRun2006Tweaks instalado pra você, numa versão fixa e testada
    • 4K, filtragem anisotrópica 16x e distância de desenho maior
    • "Rush a Difficulty" completa
    • Texturas HD opcionais, rumble e gatilhos completos
  7. Colin McRae: DiRT: um carro de rali levantando poeira numa estrada de cascalho na floresta.2007

    Colin McRae: DiRT

    Antes Trava ao carregar qualquer corrida num processador com muitas threads, e o fix da comunidade reseta todas as opções gráficas.

    • Correção própria do crash de muitas threads, sem perder as suas configurações
    • Large Address Aware, pro jogo usar mais de 2 GB
    • Hard links em vez de uma segunda cópia de 9 GB
    • Preset Ultra em 4K e XInput nativo
  8. Sega Rally Revo: um Citroën vermelho na frente do pelotão numa pista de lama na selva.2007

    Sega Rally Revo

    Antes Um microstutter permanente, vindo de dois bugs de tempo do patch 4.060, tela preta em PC com duas GPUs e um configurador que falha no Wine.

    • Correção do stutter em clean room: o relógio de corrida fica a menos de 1 ms do tempo real em 99,9% dos quadros
    • 4K, qualidade Ultra, 21:9 e 32:9
    • Limite de 60 ou 120 fps
    • XInput nativo e rumble
  9. DiRT Rally em tela cheia: um Mini vermelho numa estrada de montanha cheia de pedras.2015

    DiRT Rally

    Feito a partir do SDKSó Linux

    Antes O port de Linux da Feral, de 2017, crasha na abertura em Ryzen 5000 ou mais novo, precisa de bibliotecas que o Linux moderno abandonou, e saiu de venda em 2022.

    • Uma pequena biblioteca em Rust corrige o crash sem mexer no jogo
    • Traz as bibliotecas antigas, só pro jogo
    • Pula a janela de pré-jogo da Feral e abre em 4K
    • Controles como os da 8BitDo aparecem na lista do próprio jogo
Como consertei, no meu blog

São experimentais. Testei cada um de ponta a ponta no Linux, com uma RTX 5090 e um controle estilo Xbox. Nenhum foi testado no Windows nativo ainda; se você testar lá, abra uma issue com o SHA-256 do executável e o log.

Depois, a receita virou SDK

Cada launcher começou como cópia do anterior, e cada cópia foi divergindo com os seus próprios bugs. Então fiz o que sempre digo pra fazer: primeiro os apps, depois o framework. O rea-launcher-sdk guarda o que os launchers têm em comum, e foi escrito pra ser dirigido por um agente de código.

A ordem que eu segui

  1. Fazer vários projetos do mesmo tipo, cada um resolvendo o seu problema de verdade.
  2. Comparar todos lado a lado.
  3. Refatorar até todos terem a mesma fundação.
  4. Só então extrair as partes comuns num framework.
9
launchers construídos nele, pra 11 jogos
1.223
testes no SDK e nos launchers, todos passando
95%
de cobertura de linhas no código do próprio SDK, 310 testes
~4
horas pra cada launcher feito a partir do SDK, contra 8 a 18 antes dele

Contados no meu post de 2 de novembro de 2026.

Faça o launcher do seu jogo

Clone o SDK, instale o REA no seu agente e aponte pra pasta do jogo instalado. O agente pesquisa os fixes da comunidade, faz a engenharia reversa e escreve o código. Ele para em quatro pontos de checagem pra você decidir e não publica nada sem a sua aprovação. Funciona com Claude Code, Codex, opencode ou Cursor.

as ferramentas
cd ~/Projectsgit clone https://github.com/akitaonrails/rea-launcher-sdk# REA, the reverse engineering MCPnpx rea-agents setup# Claude Code onlyrea-launcher-sdk/scripts/install-skills

Crie um novo launcher rea para Need for Speed: Porsche Unleashed (PC, 2000) usando o SDK em ~/Projects/rea-launcher-sdk. Leia o AGENTS.md, o docs/STANDARDS.md e o docs/playbooks/new-launcher.md e siga o playbook fase por fase. O jogo está instalado em /mnt/games/NFSPU (só leitura, nunca copie pro repo). Pesquise os fixes da comunidade primeiro e me mostre o que encontrou antes de escrever código. Não faça push nem publique nada sem me perguntar.

Um prompt de exemplo, adaptado do README do SDK.

Retrogaming assistido por IA

Meu launcher de games no Omarchy: uma grade em tela cheia com 52 capas de jogos, incluindo Banjo-Kazooie Recompiled, OutRun, a série Colin McRae Rally, Donkey Kong Country e DOOM 3, com chips de categoria e botões de ordenação no topo.
O launcher no meu desktop: todo jogo, port e emulador numa grade só, não importa no que ele roda por baixo.

O host fica limpo

Emuladores e jogos de Windows puxam bibliotecas 32-bit, builds do Wine, pacotes do AUR e versões de runtime que brigam entre si. Nada disso encosta no meu desktop. Tudo mora num distrobox Arch Linux chamado gaming, Steam incluída, e o host só guarda o que o desktop precisa.

Dois painéis. Sem container: uma torre Host soterrada por um emaranhado de blocos de bibliotecas com avisos vermelhos de Conflitos. Com distrobox: o mesmo Host limpo com um ponto verde e, ao lado, um container laranja gaming com os mesmos blocos em fileiras organizadas e uma receita Ansible com o rótulo Recrie quando quiser.
  • A Steam roda dentro da caixa, com minha biblioteca e os prefixes do Proton num disco próprio
  • O driver da NVIDIA é repassado pro container, e o único caso chato de biblioteca 32-bit é resolvido no launcher, nunca no host
  • A caixa gera os desktop entries; um scriptzinho no host valida e instala, e remove os de apps que já sumiram
  • Os saves são espelhados no meu NAS e restaurados sob demanda, então apagar a caixa não perde nada

Idempotente, então posso quebrar à vontade

Cada emulador, config, patch e conjunto de mods é uma role do Ansible. Rodar o playbook de novo não muda nada, então posso experimentar sem medo, resetar as configurações de um emulador só, ou recriar a caixa inteira do zero e ter a mesma máquina de volta.

da pasta ansible/
ansible-playbook site.yml                 # the whole box, from scratchansible-playbook site.yml                 # again: nothing changesansible-playbook reset-configs.yml --tags esde   # reset one frontendansible-playbook backup.yml && ansible-playbook restore.ymlansible-playbook site.yml --tags verify   # post-setup checks
96
notas em docs/, uma por jogo, port ou correção
497
commits desde 11 de abril de 2026

A IA faz a pesquisa, e deixa tudo anotado

Pra cada port, recompilação ou jogo de Windows teimoso, um agente pesquisou as fontes, escreveu a role do Ansible e deixou uma nota dizendo onde baixar, como está configurado e o que não funcionou. Os jogos da Steam têm seu próprio banco de compatibilidade com o Proton, com cada correção local apoiada numa fonte.

Como usar

O jeito mais fácil é deixar um agente fazer. Clone o repositório, abra o Claude Code dentro dele e diga qual container e quais jogos você quer. Os playbooks e as notas foram escritos exatamente pra isso.

clonar e abrir
git clone https://github.com/akitaonrails/distrobox-gamingcd distrobox-gamingclaude

Monte o container gaming com ES-DE, Dolphin e PCSX2. Minhas ROMs e BIOS estão em /caminho/pros/seus/jogos.

O repositório não traz jogos, ROMs, BIOS nem outros binários. Você fornece os seus e diz pro agente onde eles estão.

O que tem na caixa

Emuladores

ES-DE como frontend, mais shadPS4, Dolphin, PCSX2, DuckStation, Flycast, xemu, RPCS3, PPSSPP, Azahar, Eden, Cemu, Supermodel standalone e o RetroArch com seus cores.

Ports, decomps e recomps

Builds nativos como Ship of Harkinian, 2Ship2Harkinian, Starship, SpaghettiKart, Render96ex e Unleashed Recompiled.

Jogos de Windows

Instalações e correções gerenciadas pelo Wine pra jogos como a Metal Gear Master Collection. Os jogos de corrida antigos agora entram pelos meus próprios launchers, mais acima.

Mods, de forma reproduzível

Conjuntos de mods do NexusMods por jogo, instaladores de DLC e patches pra PS3 e Switch, e configurações do RPCS3 por jogo.

Meu próprio launcher, feito pro Omarchy

O omarchy-games-menu é um launcher em tela cheia no estilo da Steam pra Omarchy e Hyprland. Ele lê os desktop entries que o repositório de games exporta, então um jogo novo aparece sozinho, e deixa tudo a um atalho de distância.

Três camadas: uma base Host, um container distrobox laranja chamado gaming com Emuladores e Ports para PC e uma receita Ansible, e no topo uma grade de capas do Launcher.
  • Um CLI em Rust, o ogm, faz a varredura, o catálogo e a persistência; um overlay em QuickShell desenha a grade
  • Capas e metadados do SteamGridDB, e checagem de releases novos no GitHub pra ports e recomps
  • Ordena por mais jogados, nome, data de inclusão ou data de lançamento; é só digitar em qualquer lugar pra filtrar
  • Escala com a configuração de monitor do Hyprland, abre com uma tecla como Super+G, e os jogos abrem em tela cheia num workspace dedicado
terminal
yay -S omarchy-games-menu-binogm scan && ogm refreshgames-menu   # or bind it: bind = SUPER, G, exec, games-menu

Tudo aqui é open source

As ferramentas, as skills e o benchmark são repositórios públicos. Faça um fork e monte a versão que encaixa no seu jeito de trabalhar.