Guitar Hero III: Legends of Rock Recompiled
Guitar Hero III: Legends of Rock
OriginXbox 360
TechnologyStatic recompilation (native C/C++)
Available forWindows
View official projectAbout the project
Guitar Hero III: Legends of Rock es un videojuego de música y el tercer título de la serie Guitar Hero. El juego fue publicado por Activision y RedOctane y es el primero de la serie en ser desarrollado por Neversoft, después de que Activision adquiriera a RedOctane y de que MTV Games comprara a Harmonix Music Systems, el anterior estudio desarrollador de la serie.
Official project information
Guitar Hero III: Legends of Rock — Recomp
Recompilação estática de Guitar Hero III: Legends of Rock (Xbox 360) para PC e Android. O código PowerPC do jogo é traduzido para C++ nativo e compilado para x86__64 — não é emulação de CPU.
Feito com rexglue (fork ReXGlue) e com um launcher próprio que instala o jogo a partir do seu disco.

Isto não inclui o jogo
Este repositório é só código. Não traz, não distribui e não substitui Guitar Hero III, que é da Activision e da Neversoft.
Para jogar você precisa do ISO da sua própria cópia, e tem de ser a versão de que o projeto foi recompilado:
| Versão | Guitar Hero III: Legends of Rock (USA), Rev 1 |
| Disco | XGD2 — 660 ficheiros, 3,36 GB |
default.xex | 11 055 104 bytes |
| SHA-256 | 1D67D98FBB0E35AC086D6354F3E49985698C83298226EAFDEC756E2A9E799A14 |
O launcher confere esse hash antes de instalar e recusa qualquer outra versão — um recomp só corre o código do executável de que nasceu, e com dados de outra versão o jogo não arranca.
Como jogar
- Abra o
Guitar Hero 3 Recomp.exe(oulauncher/RODAR.bat, a partir do código). - Confira a linha Instalar em e mude a pasta se quiser — é onde vão os
3,4 GB do jogo, e com eles as pastas
DLCs,MODS, os saves e os registos. O executável recompilado e as DLLs ficam sempre junto do launcher; quando as duas pastas são diferentes, o jogo recebe--game_data_root. - Arraste o seu ISO para a janela, ou clique em Escolher ISO.
- O launcher lê o disco, confere a versão e mostra o que encontrou.
- Instalar, e depois Jogar.
| Sem o jogo instalado | Durante a instalação |
|---|---|
![]() | ![]() |
O launcher é um app Electron e trata de tudo o resto:
| Idioma | liga e desliga a tradução para português do Brasil |
| Vídeo | Direct3D 12 ou Vulkan, tela cheia, VSync, contador de FPS |
| DLCs | liga e desliga cada pacote em game/DLCs |
| Mods | importa, liga e desliga cada mod, e escolhe o executável certo (ver abaixo) |
Para pôr um mod, use Importar… no cartão de Mods e aponte a pasta dele ou o
.zip. O launcher confirma que aquilo é mesmo um mod (tem default.xex ou uma
pasta DATA), põe-no em game/MODS, e diz se ele altera o executável.
Mods que alteram o executável
Um mod como o GH3 Deluxe traz o próprio default.xex. Como um recomp só
corre o código de que nasceu, esse mod precisa de um build recompilado a partir
do XEX dele.
Cada build guarda um source-xex.sha256 a dizer de que executável nasceu. O
launcher soma o default.xex dos mods ativos e lança o build correspondente;
sem mods de código, lança o base. Se houver dois mods de código ativos ao mesmo
tempo, recusa — dois XEX diferentes não se combinam num só jogo.
Tradução PT-BR
tools/traduzir_ptbr.py escreve o texto português por cima do inglês, dentro
do arquivo de scripts do jogo. São 712 frases; o resto fica em inglês.
python tools/traduzir_ptbr.py # instala
python tools/traduzir_ptbr.py --restaurar # volta ao inglês
Só entram as frases que cabem no espaço exato da inglesa, enchidas com
espaços até ao tamanho original. Não é preciosismo: o jogo percorre as entradas
de texto em sequência, lendo cada uma até ao NUL, por isso encurtar uma frase
desalinha tudo o que vem a seguir e o jogo morre em dois segundos. Alongar
também não serve, mesmo corrigindo todos os offsets. Ver
docs/formato-qb.md.
É por isso que os itens do menu principal continuam em inglês: CARREIRA tem
oito letras e CAREER tem seis.
A tradução em si não está aqui — é trabalho de terceiros. O script espera uma
pasta Tradutor_Guitar_Hero_III_Legends_Of_Rock ao lado do projeto.
Compilar
Precisa de: CMake, Clang/LLVM, Ninja e o SDK rexglue.
1-CODEGEN.bat :: traduz o XEX para C++ (gera generated/, ~450 MB)
2-BUILD.bat :: compila
O codegen precisa do default.xex extraído do seu ISO —
tools/extract_xiso.py faz isso. O C++ gerado não vai para o repositório:
é derivado do executável do jogo.
Para o build da variante Deluxe, build-081-dx.bat.
Empacotar o launcher
cd launcher
npm install
npm run empacotar
Sai uma pasta em dist/ com o executável e tudo o que ele precisa: o runtime
do Electron, o jogo recompilado em game/, os builds de variante em bin/, e
as ferramentas da tradução em tools/. Nada de rede nem de electron-builder —
o Electron já está em node_modules e empacotar é copiá-lo e renomear.
Não há instalador separado: a pasta que sai de dist/ é o programa, e
quem instala o jogo é o próprio launcher. Quem a recebe abre o
Guitar Hero 3 Recomp.exe, escolhe ali onde quer o jogo, e aponta o ISO.
O default.xex não vai no pacote, e não faz falta: o do jogo base sai do
seu ISO durante a instalação, e o do GH3 Deluxe vem dentro do próprio mod — a
camada de mods põe-no por cima na altura de correr, que é justamente porque o
mod o traz na raiz da pasta dele.
Android
Corre o mesmo C++ gerado (simde vira NEON no ARM), por isso não há codegen
separado. Estado: jogável, com os vídeos Bink a saírem pretos. Ver
ANDROID.md e build-android.bat.
Estrutura
src/ código do projeto (app, hooks, renderer)
config/ manifests do codegen e listas de funções
tools/ ferramentas Python (extração de ISO, tradução, análise)
extract_xiso.py lê ISOs XDVDFS e extrai ficheiros
traduzir_ptbr.py instala a tradução PT-BR
find_orphans.py acha funções que o codegen não alcançou
brand_boot_screen.py marca o ecrã de arranque
launcher/ o launcher/instalador em Electron
xiso.js leitor XDVDFS em Node, com verificação de versão
mods.js mods e escolha de executável por hash do XEX
android/ projeto Android (fontes; os .so são compilados)
docs/ notas técnicas sobre os formatos do jogo
Estado
Funciona: o jogo corre no PC em Direct3D 12 e Vulkan, com FSR; carreira e quickplay; DLC oficial em STFS; tradução PT-BR; Android jogável.
Por resolver:
- Os alvos dos trastes não aparecem na autoestrada.
- Vídeos Bink pretos no Android.
- Mods que substituem parte de uma pasta ensombram-na inteira: a camada de mods resolve o diretório para o mod e esconde os ficheiros do jogo que ele não traz. Um mod tem de fornecer todos os ficheiros das pastas que toca.
Créditos
- rexglue / ReXGlue SDK — o recompilador e a camada de runtime
- Xenia — de onde vem boa parte do conhecimento sobre o hardware do 360
- Neversoft / Activision — o jogo
Licença do código deste repositório: MIT.


