Consulte fazer o Mupen64-360 rodar em um Xbox 360 com placa-mãe Winchester. Aqui está uma explicação gerada pela IA que ajudou a corrigir, juntamente com o link de download dos arquivos XeLL Reloaded e Mupen64-360 corrigidos. Eu mesmo ainda não li a explicação completa, então estou compartilhando-a enquanto a IA a produção.
Este foi basicamente um projeto de codificação de vibração com GPT Codex e Claude, e o resultado pareceu ter sido muito feito. Dito isto, levou muito tempo, dinheiro e perseverança. Também tive que confiar muito no racismo lógico para elaborar o método, decidir o que testar, interpretar os resultados e manter a investigação em andamento. A IA fez grande parte da codificação, mas chegou a um resultado funcional ainda exigiu muitos testes práticos e resolução de problemas.
Também pretendo trabalhar para conservar mais emuladores, até ficar ligado.
The investigation and corrections were carried out with the help of GPT Codex and Claude. Both were used to analyze the source code, interpret logs, identify bugs and develop fixes, query the results were tested directly on the Xbox 360 Winchester.
The problem was not caused by an incompatibility. Wrap the XeLL ELF charger, a USB recovery in libxenon, and the disk mount code used by the Mupen64-360.
In XeLL Reloaded, we first fixed a build order issue in the fork without Alex. The stage2.elf32.gz target removes object files that are still needed for the Stage 1 link, so the build order had to be adjusted. Also restaurants the missing rules file required by the toolset. The change is most important for the elf.ce restaurant elf_run.S before the ELF loader rewrite in May 2020, keeping the libxenon restaurant modern. With this combination, XeLL was finally able to enter the execution to the recompiled Mupen.
Without libxenon, we fixed a null pointer access in qh_end_transfer() that caused the red missing screen with dar=0x3c. We also unblock that USB recovery is resetting port 0 instead of the port where the device is actually connected. In our case, the flash drive was on port 4, not recovery being able to repeatedly reset the wrong port and leave the arming driver present in its retry loop. Both as reset calls have been changed to use the actual device port. Another fix caused ehci_reset_usb_port() to return an error when entering a low-speed port into OHCI, preventing the EHCI code from trying to initialize a port it no longer has. EHCI_TUNE_CERR was also restored from 0 to 3, now this has not been the main cause of the issue.
Mupen64-360 was all rebuilt against the corrected libxenon. This requires locating, compiling, and installing ZLX-Library, libxemit, and ntfs-xenon. Also assets that rebuild and reinstall ZLX depo that an incomplete library caused linker errors involving symbols such as ZLX::Font, ZLX::Browser and ZLX::Console.
The ROM loading freeze ended up having a separate cause. The flash drive was formatted as FAT directly in sector 0, without MBR, a layout commonly called superfloppy. ZLX was selling the 0x55AA subscription and interpreting the FAT boot sector as a participation table. This produces used LBAs, including 0x7265206B, which initially appears to be a USB or SCSI issue. The return effort helped solve the FindPartitions() issue in mount.cpp.
We fixed participation detection so that it checks FAT16 or FAT32 directly in sector 0 before attempting to interpret the sector as an MBR. If a valid FAT file system encounters there, it will be mounted as a participation arriving in sector 0. After this fix, the flash drive was mounted correctly and how ROMs come to load.
There is still a problem when both the flash drive and the external HDD are connected. The TinyEHCI driver detected both devices, but the ZLX was mounted only one USB interface at a time. We added support for mounting environments as interfaces and adjusted the order so that the flash drive remains uda0 and the external HDD becomes udb0. This is important because Mupen looks for your installation at uda0:/mupen64-360/. When the HDD was mounted as uda0, Mupen could no longer find the expected files, which caused problems with the background and ROM loading. With the order corrected, the flash drive continues sending the main device, the HDD is available as additional armament, and a single connected USB device is still mounted as uda0.
The final working version is based on the Mupen64-360 0.992 beta. Version 0.993 beta2 was also investigated, but before video output in Winchester. From what we've observed, it doesn't seem to have many code differences compared to 0.992 beta, so we haven't been performing a full comparison now.
I haven't tested the emulator extensively yet, but so far everything seems to be working perfectly. I tested Castlevania and The Legend of Zelda: Ocarina of Time, and both worked successfully. The XeLL carries the recompiled Mupen64-360 as the ROMs run from the flash drive and the external HDD can remain connected as additional armament.
Thanks for reading!
I updated the download links in my post and added a version with aspect ratio settings in the menu.
I've updated the download again with several audio, stability, and performance fixes:
Este foi basicamente um projeto de codificação de vibração com GPT Codex e Claude, e o resultado pareceu ter sido muito feito. Dito isto, levou muito tempo, dinheiro e perseverança. Também tive que confiar muito no racismo lógico para elaborar o método, decidir o que testar, interpretar os resultados e manter a investigação em andamento. A IA fez grande parte da codificação, mas chegou a um resultado funcional ainda exigiu muitos testes práticos e resolução de problemas.
Também pretendo trabalhar para conservar mais emuladores, até ficar ligado.
The investigation and corrections were carried out with the help of GPT Codex and Claude. Both were used to analyze the source code, interpret logs, identify bugs and develop fixes, query the results were tested directly on the Xbox 360 Winchester.
The problem was not caused by an incompatibility. Wrap the XeLL ELF charger, a USB recovery in libxenon, and the disk mount code used by the Mupen64-360.
In XeLL Reloaded, we first fixed a build order issue in the fork without Alex. The stage2.elf32.gz target removes object files that are still needed for the Stage 1 link, so the build order had to be adjusted. Also restaurants the missing rules file required by the toolset. The change is most important for the elf.ce restaurant elf_run.S before the ELF loader rewrite in May 2020, keeping the libxenon restaurant modern. With this combination, XeLL was finally able to enter the execution to the recompiled Mupen.
Without libxenon, we fixed a null pointer access in qh_end_transfer() that caused the red missing screen with dar=0x3c. We also unblock that USB recovery is resetting port 0 instead of the port where the device is actually connected. In our case, the flash drive was on port 4, not recovery being able to repeatedly reset the wrong port and leave the arming driver present in its retry loop. Both as reset calls have been changed to use the actual device port. Another fix caused ehci_reset_usb_port() to return an error when entering a low-speed port into OHCI, preventing the EHCI code from trying to initialize a port it no longer has. EHCI_TUNE_CERR was also restored from 0 to 3, now this has not been the main cause of the issue.
Mupen64-360 was all rebuilt against the corrected libxenon. This requires locating, compiling, and installing ZLX-Library, libxemit, and ntfs-xenon. Also assets that rebuild and reinstall ZLX depo that an incomplete library caused linker errors involving symbols such as ZLX::Font, ZLX::Browser and ZLX::Console.
The ROM loading freeze ended up having a separate cause. The flash drive was formatted as FAT directly in sector 0, without MBR, a layout commonly called superfloppy. ZLX was selling the 0x55AA subscription and interpreting the FAT boot sector as a participation table. This produces used LBAs, including 0x7265206B, which initially appears to be a USB or SCSI issue. The return effort helped solve the FindPartitions() issue in mount.cpp.
We fixed participation detection so that it checks FAT16 or FAT32 directly in sector 0 before attempting to interpret the sector as an MBR. If a valid FAT file system encounters there, it will be mounted as a participation arriving in sector 0. After this fix, the flash drive was mounted correctly and how ROMs come to load.
There is still a problem when both the flash drive and the external HDD are connected. The TinyEHCI driver detected both devices, but the ZLX was mounted only one USB interface at a time. We added support for mounting environments as interfaces and adjusted the order so that the flash drive remains uda0 and the external HDD becomes udb0. This is important because Mupen looks for your installation at uda0:/mupen64-360/. When the HDD was mounted as uda0, Mupen could no longer find the expected files, which caused problems with the background and ROM loading. With the order corrected, the flash drive continues sending the main device, the HDD is available as additional armament, and a single connected USB device is still mounted as uda0.
The final working version is based on the Mupen64-360 0.992 beta. Version 0.993 beta2 was also investigated, but before video output in Winchester. From what we've observed, it doesn't seem to have many code differences compared to 0.992 beta, so we haven't been performing a full comparison now.
I haven't tested the emulator extensively yet, but so far everything seems to be working perfectly. I tested Castlevania and The Legend of Zelda: Ocarina of Time, and both worked successfully. The XeLL carries the recompiled Mupen64-360 as the ROMs run from the flash drive and the external HDD can remain connected as additional armament.
Thanks for reading!
I updated the download links in my post and added a version with aspect ratio settings in the menu.
I've updated the download again with several audio, stability, and performance fixes:
- Audio: Fixed resampler issues, improved audio queue/cache handling, and implemented a packet-based audio queue with a persistent resampler and DMA aligned to 2048-byte blocks.
- Stability: Fixed texture copying issues and a recompiler heap bug.
- Performance: Added a small CRC optimization and an ABI3/ENVMIXER3 optimization.
- Additional changes: Removed the experimental profiler and increased the audio queue headroom from 16 KiB to 32 KiB.
Attachments
Last edited by fixingthings,







