Ogre Battle 64 Recompiled Project at 99.05%
Recorded: Sept. 20, 2026, 10:08 p.m.
| Original | Summarized |
GitHub - lfarroco/ogre-battle-64-recomp: Decompilation project for the game "Ogre Battle 64: Person of Lordly Caliber" · GitHub Skip to content Navigation MenuSign inAppearance settingsPlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub Copilot appDirect agents from issue to mergeMCP RegistryIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesCode QualityEnforce quality at mergeAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricingSearch/Sign inSign upAppearance settings You signed in with another tab or window. Reload to refresh your session. Dismiss alert lfarroco ogre-battle-64-recomp Public
Notifications
Fork
Star Code Issues Pull requests Actions Projects Security and quality Insights
Additional navigation options
Code Issues Pull requests Actions Projects Security and quality Insights
mainBranchesTagsGo to fileCodeOpen more actions menuLatest commit History146 Commits146 CommitsFolders and filesNameNameLast commit messageLast commit date.github/workflows.github/workflows appapp asmasm debugdebug docsdocs includeinclude mods/skip-boot-logosmods/skip-boot-logos packagingpackaging toolstools .gitattributes.gitattributes .gitignore.gitignore .gitmodules.gitmodules AGENTS.mdAGENTS.md MakefileMakefile PLAN.mdPLAN.md README.mdREADME.md config-bankA.tomlconfig-bankA.toml config-bankA.yamlconfig-bankA.yaml config-bankAA.tomlconfig-bankAA.toml config-bankAA.yamlconfig-bankAA.yaml config-bankAB.tomlconfig-bankAB.toml config-bankAB.yamlconfig-bankAB.yaml config-bankAC.tomlconfig-bankAC.toml config-bankAC.yamlconfig-bankAC.yaml config-bankAD.tomlconfig-bankAD.toml config-bankAD.yamlconfig-bankAD.yaml config-bankAE.tomlconfig-bankAE.toml config-bankAE.yamlconfig-bankAE.yaml config-bankAF.tomlconfig-bankAF.toml config-bankAF.yamlconfig-bankAF.yaml config-bankAG.tomlconfig-bankAG.toml config-bankAG.yamlconfig-bankAG.yaml config-bankAH.tomlconfig-bankAH.toml config-bankAH.yamlconfig-bankAH.yaml config-bankB.tomlconfig-bankB.toml config-bankB.yamlconfig-bankB.yaml config-bankC.tomlconfig-bankC.toml config-bankC.yamlconfig-bankC.yaml config-bankD.tomlconfig-bankD.toml config-bankD.yamlconfig-bankD.yaml config-bankE.tomlconfig-bankE.toml config-bankE.yamlconfig-bankE.yaml config-bankF.tomlconfig-bankF.toml config-bankF.yamlconfig-bankF.yaml config-bankG.tomlconfig-bankG.toml config-bankG.yamlconfig-bankG.yaml config-bankH.tomlconfig-bankH.toml config-bankH.yamlconfig-bankH.yaml config-bankI.tomlconfig-bankI.toml config-bankI.yamlconfig-bankI.yaml config-bankJ.tomlconfig-bankJ.toml config-bankJ.yamlconfig-bankJ.yaml config-bankK.tomlconfig-bankK.toml config-bankK.yamlconfig-bankK.yaml config-bankL.tomlconfig-bankL.toml config-bankL.yamlconfig-bankL.yaml config-bankM.tomlconfig-bankM.toml config-bankM.yamlconfig-bankM.yaml config-bankN.tomlconfig-bankN.toml config-bankN.yamlconfig-bankN.yaml config-bankO.tomlconfig-bankO.toml config-bankO.yamlconfig-bankO.yaml config-bankP.tomlconfig-bankP.toml config-bankP.yamlconfig-bankP.yaml config-bankQ.tomlconfig-bankQ.toml config-bankQ.yamlconfig-bankQ.yaml config-bankR.tomlconfig-bankR.toml config-bankR.yamlconfig-bankR.yaml config-bankS.tomlconfig-bankS.toml config-bankS.yamlconfig-bankS.yaml config-bankT.tomlconfig-bankT.toml config-bankT.yamlconfig-bankT.yaml config-bankU.tomlconfig-bankU.toml config-bankU.yamlconfig-bankU.yaml config-bankV.tomlconfig-bankV.toml config-bankV.yamlconfig-bankV.yaml config-bankW.tomlconfig-bankW.toml config-bankW.yamlconfig-bankW.yaml config-bankX.tomlconfig-bankX.toml config-bankX.yamlconfig-bankX.yaml config-bankY.tomlconfig-bankY.toml config-bankY.yamlconfig-bankY.yaml config-bankZ.tomlconfig-bankZ.toml config-bankZ.yamlconfig-bankZ.yaml config.tomlconfig.toml config.yamlconfig.yaml extra_syms.txtextra_syms.txt n64modernruntime-n64recomp.patchn64modernruntime-n64recomp.patch n64modernruntime-ob64.patchn64modernruntime-ob64.patch n64recomp-ob64.patchn64recomp-ob64.patch ogrebattle64.dogrebattle64.d ogrebattle64.ldogrebattle64.ld ogrebattle64.yamlogrebattle64.yaml reloc_addrs.txtreloc_addrs.txt relocatable_sections.txtrelocatable_sections.txt rsp-audio.tomlrsp-audio.toml rsp-njpeg.tomlrsp-njpeg.toml rt64-ob64.patchrt64-ob64.patch rt64-plume-ob64.patchrt64-plume-ob64.patch symbol_addrs-bankAA.txtsymbol_addrs-bankAA.txt View all filesRepository files navigationREADMEMore itemsOgre Battle 64: Person of Lordly Caliber (PC port project) Getting started # ROM: put your .z64 dump in assets/, then regenerate the recompiled code Footer © 2026 GitHub, Inc. Footer navigation Terms Privacy Security Status Community Docs Contact Manage cookies Do not share my personal information You can’t perform that action at this time. |
This project focuses on the static recompilation of the N64 game Ogre Battle 64: Person of Lordly Caliber (USA, Rev A) into a native PC executable utilizing the N64Recomp toolchain. The repository is intended for preservation and interoperability research, explicitly stating that it contains no copyrighted game data and requires users to supply their own ROM dumps. The work on this repository was primarily executed using the DeepSeek v4/v4.1 Flash model. Currently, the main code segment, comprising eight hundred seven functions, has been successfully recompiled into C, with the development of the runtime application, which handles rendering, input, and audio, being the subsequent objective. The directory structure organizes the project into various components, including assets (where the ROM dump is placed), assembly code, debug files, configuration files, and necessary patches for operational adjustments. The workflow for setting up the project involves specific steps utilizing external tools. To begin the process, the setup requires installing necessary dependencies such as mips-linux-gnu-binutils and cmake, followed by setting up a Python virtual environment to install the splat64 package. The core of the recompilation tooling is the N64Recomp repository, which must be cloned recursively, and specific patches, such as n64recomp-ob64.patch, are applied to modify the upstream N64Recomp source code. The recompilation process demands careful sequencing, as the recompiled C code from the ROM and the specific banking structures are generated prior to the main compilation. The system relies on a sequence where make regenerate is executed to generate the necessary C code for the banking functions and the main recompilation, which involves splat execution, MIPS linking, processing of thirty-four bank units, and RSP microcode in the correct order. Following this generation, the application itself is built using cmake to compile the application code, and finally, the executable is generated via make dist, which results in a self-contained executable and its associated libraries, with the Static Linkage of SDL2 handled to ensure portability. The process also involves handling external components, specifically the renderer tools, which are implemented as a git submodule. The project requires applying a patch, such as rt64-plume-sdl.patch, to the RT64 submodule, applying it once for systems running older SDL versions, such as Ubuntu 22.04, to ensure compatibility with functions like SDL_GetWindowSizeInPixels. The user is directed to ensure the renderer is updated by recursively updating the git submodule before re-applying patches if interaction with the submodule has occurred. Ultimately, the resulting distribution package is a single executable, which prompts the user to load their custom ROM from a start screen, validating the ROM via hash before launching the game. The project emphasizes that the resulting package contains only the compiled code and does not include game data, requiring the end-user to provide the ROM separately. |