Is there a tutorial on how to recompile a 360 game?
There's some hints in the README, but from what I understand (from attempting this), it mostly goes like this:
- Obtain a .xex file by dumping the contents of the title you want somewhere.
- Optionally obtain a title update package (the latest is usually what you want) and unpack the xexp file associated with the .xex file to the same directory you have dumped the xex.
- Point XenonAnalyse at the .xex file, specifying an output location for the switch/jump table.
- Check if the output of XenonAnalyse was non-empty, if it is, you will need to modify the recompiler to know how to handle the provided xex. This might require disassembling the binary to find where useful information is.
- Create a title configuration file containing the path to the main binary and switch/jump table.
- Attempt to run XenonRecomp with the title configuration file and the ppc_context.h file included in XenonUtils.
- Also specify the xexp as the patch if you have one.
- You will be coming back to this step a few times, with a disassembler to find the required fields specified for the other values.
- Hope you don't get an assertion or Segmentation fault or Access violation (from path format being wrong being the most likely reason as of writing).
- Attempt to compile the generated code in the output directory.
- Run the generated binary.
- Observe results.
- The title works.
- The title doesn't go anywhere because of unimplemented instructions. (This should result in a debug trace)
- Something else happened.
There will probably be official instructions for usage and implementation added to this project one day, but I can not comment on that right now.
Yeah, I'm busy with bug reports for Unleashed Recompiled at the moment, I'll eventually write proper instructions for this.
Don't get too excited even if everything works, you still have to setup rendering, etc and re-implement missing 360 kernel functions. The recompiler is not a silver bullet.
There's some hints in the README, but from what I understand (from attempting this), it mostly goes like this:
Attempt to compile the generated code in the output directory.
Run the generated binary.
Observe results.
- The title works.
- The title doesn't go anywhere because of unimplemented instructions. (This should result in a debug trace)
- Something else happened.
There will probably be official instructions for usage and implementation added to this project one day, but I can not comment on that right now.
Thanks. I'm stuck on part 7, 8 in general of your note. Because I have no idea how I should compile the code generated by XenonRecomp (ppc_config.h, ppc_context.h, ppc_func_mapping.cpp, ppc_recomp_shared.h)
XenonRecomp
(ppc_config.h, ppc_context.h, ppc_func_mapping.cpp, ppc_recomp_shared.h)
Compile those with all of the ppc_recomp.*.cpp files. That should be it for step 7?
There's some hints in the README, but from what I understand (from attempting this), it mostly goes like this:
Obtain a .xex file by dumping the contents of the title you want somewhere.
- Optionally obtain a title update package (the latest is usually what you want) and unpack the xexp file associated with the .xex file to the same directory you have dumped the xex.
Point XenonAnalyse at the .xex file, specifying an output location for the switch/jump table.
Check if the output of XenonAnalyse was non-empty, if it is, you will need to modify the recompiler to know how to handle the provided xex. This might require disassembling the binary to find where useful information is.
Create a title configuration file containing the path to the main binary and switch/jump table.
Attempt to run XenonRecomp with the title configuration file and the ppc_context.h file included in XenonUtils.
- Also specify the xexp as the patch if you have one.
- You will be coming back to this step a few times, with a disassembler to find the required fields specified for the other values.
Hope you don't get an assertion or Segmentation fault or Access violation (from path format being wrong being the most likely reason as of writing).
Attempt to compile the generated code in the output directory.
Run the generated binary.
Observe results.
- The title works.
- The title doesn't go anywhere because of unimplemented instructions. (This should result in a debug trace)
- Something else happened.
There will probably be official instructions for usage and implementation added to this project one day, but I can not comment on that right now.
Do you have discord at all?
@yellows111
XenonRecomp
(ppc_config.h, ppc_context.h, ppc_func_mapping.cpp, ppc_recomp_shared.h)Compile those with all of the
ppc_recomp.*.cppfiles. That should be it for step 7?
Hey I'm also confused about what to do here, could you go into more detail or msg me on discord, my user is toastyyy123
i also need a tutorial, please! @eepcheep on discord
XenonRecomp
(ppc_config.h, ppc_context.h, ppc_func_mapping.cpp, ppc_recomp_shared.h)Compile those with all of the
ppc_recomp.*.cppfiles. That should be it for step 7?
Ok, I just don't know what tool should be used in that case for the build. It mentions something about Xenia Build, but I didn't find any information.
is there anyone that can help me im trying to recompile other 360 games and i havent a clue discord username is jonh07evans
Is there like a community discord server because it seems many people have many questions and probably many are repeated and it would be nice if it got documented on a server or somewhere.
and it would be nice if it got documented on a server or somewhere.
If by document you mean "obscure behind a wall", then sure.
The whole point of this project not having a ~~private~~ "community" discussion board is to prevent discussion obfuscation. Hiding information that helps others does not help the community, it makes it weaken.
I've personally dealt with community fragmentation due to people deciding to keep their solutions behind a ironclad fortress. Nobody wants this. Nobody should ever want this.
If you want help, make it public.
Is there like a community discord server
No.
Do you have a personal discord?
Even worse question. No.
Ok, I just don't know what tool should be used in that case for the build.
Most likely clang++.
That being said, if anyone has technical issues, feel free filing them here.
and it would be nice if it got documented on a server or somewhere.
If by document you mean "obscure behind a wall", then sure.
The whole point of this project not having a ~private~ "community" discussion board is to prevent discussion obfuscation. Hiding information that helps others does not help the community, it makes it weaken.
I've personally dealt with community fragmentation due to people deciding to keep their solutions behind a ironclad fortress. Nobody wants this. Nobody should ever want this.
If you want help, make it public.
Is there like a community discord server
No.
Do you have a personal discord?
Even worse question. No.
Ok, I just don't know what tool should be used in that case for the build.
Most likely
clang++.That being said, if anyone has technical issues, feel free filing them here.
I know where you are coming from and I can only agree a public discord may prevents from knowledge being spread or easily findable. I just saw many throw out their discord name and thought maybe something like a discord where people exchange infos there was a thing.
Anyway, could you help me with my issue too if you have time and energy. https://github.com/hedge-dev/XenonRecomp/issues/110 I am kinda lost on where to go next. I have knowledge in programming and little in decompilation(Never did a recomp). But I still feel I have no plan on takling the thing of recomping a xbox360 game or how I can like "train" for something like this.
just waiting for the official usage guide and beating my brains out without it
Yeah, I'm busy with bug reports for Unleashed Recompiled at the moment, I'll eventually write proper instructions for this.
Any more news on a guide for this?
Any more news on a guide for this?
Not yet. I'm taking a break from all of this altogether for a while.
Yeah, I'm busy with bug reports for Unleashed Recompiled at the moment, I'll eventually write proper instructions for this.
Any more news on a guide for this?
I want to create simple guide for this (I'm stuck in stage with border problems) https://github.com/hedge-dev/XenonRecomp/discussions/149
Há algumas dicas no README, mas pelo que entendi (depois de tentar fazer isso), é basicamente assim:
Tente compilar o código gerado no diretório de saída.
Execute o binário gerado.
Observe os resultados.
- O título funciona.
- O título não aparece devido a instruções não implementadas. (Isso deve resultar em um rastreamento de depuração)
- Outra coisa aconteceu.
Provavelmente haverá instruções oficiais de uso e implementação adicionadas a este projeto um dia, mas não posso comentar sobre isso agora.
Obrigado. Estou preso na parte 7 e 8 em geral da sua nota. Porque não tenho ideia de como compilar o código gerado pelo XenonRecomp.
(ppc_config.h, ppc_context.h, ppc_func_mapping.cpp, ppc_recomp_shared.h)
Were you able to recompile any games?