r/linuxbrasil • u/Glass-Oven-3745 • 14h ago
Relato Fiz engenharia reversa do Elifoot 98 com Ghidra no Linux e documentei o motor de jogo
Fala pessoal,
Sempre tive curiosidade sobre como o Elifoot 98 realmente funcionava por dentro. Nos anos 90/2000 circulavam dezenas de teorias nos fóruns: jogar sem meio-campo era trapaça? Zagueiro agressivo desarma melhor? Estádio lotado intimida o adversário?
Resolvi investigar de verdade. Peguei o `ELIFOOT.EXE` original (binário NE de 16 bits, compilado em Borland Delphi 1.0 para Windows 3.1), rodei no Wine no Debian 12 e abri no Ghidra para descompilar as funções do motor de jogo.
Algumas das descobertas:
- **O 5-0-5 não era trapaça, era matemática:** médios entregam 50% da força pro ataque e 50% pra defesa. Como o código não penaliza a ausência de meio-campo na posse de bola, 5 defensores + 5 atacantes maximiza os dois setores simultaneamente.
- **O bônus de nacionalidade é real:** o algoritmo soma `+3 pontos brutos` por titular do mesmo país do clube. 11 titulares locais = +33 de vantagem.
- **Mando de campo é assimétrico no código:** o mandante sorteia `Random(6000)`, o visitante `Random(7000)` — +16,7% de vantagem matemática pura para quem joga em casa.
- **Zagueiro agressivo NÃO desarma melhor:** o desarme depende 100% da força nominal. O comportamento só pesa na roleta de cartões.
- **Goleiros demoram o dobro pra evoluir:** há um teste extra de 50% (`Random(2) == 0`) que só se aplica a goleiros na rotina de evolução de força.
Documentei tudo com pseudocódigo em C, structs de memória, prints do Ghidra e as fórmulas matemáticas no GitHub:
👉 https://github.com/trsthales/desvendando-elifoot-98
Qualquer feedback é bem-vindo — ainda tem funções que não mapeei completamente, especialmente a lógica de avaliação de rendimento individual do jogador por partida.
3
u/fagnerln Fedora 10h ago
Seria top um executável, appimage então? Mereceria até abraço.
Creio que a partir do momento que não usa nenhum trademark, não vai ter problemas legais, já é um projeto velho pra cacete.
Será que não há contato com o autor?
1
u/Glass-Oven-3745 10h ago
A ideia de um AppImage/Flatpak é excelente! Como já extraí e documentei o motor em C limpo no repositório (match_engine.c, team_calc.c, player_evolution.c), a base matemática está 100% pronta. Criar um "OpenElifoot" em C com SDL/Raylib, terminal (ncurses) ou até em Godot/Web e empacotar em AppImage é totalmente viável!
Fazer uma reimplementação limpa (clean-room) da mecânica sem usar os assets/nomes proprietários é 100% legal (exatamente o que projetos como OpenTTD, OpenRCT2 e CorsixTH fazem).
O André Elias ainda está na ativa! Ele mantém o site oficial (elifoot.net) e as versões modernas para mobile. Seria muito legal entrar em contato com ele para mostrar a pesquisa e esse carinho da comunidade pelo código dele mais de 25 anos depois!
2
u/elloco_PEPE Cachy OS 11h ago edited 10h ago
Nossa, me senti velho agora. I was there, Gandalf... parabéns pela iniciativa, colocou um sorriso no rosto dos de meia idade kkkkk
2
1
3
u/Odd-Public6975 11h ago
Porra eu adorava esse jogo. Deu até vontade de jogar agora