{"id":21919523,"url":"https://github.com/allogic/nippon","last_synced_at":"2026-03-14T20:11:52.823Z","repository":{"id":65680046,"uuid":"590229225","full_name":"allogic/Nippon","owner":"allogic","description":"Nippon is a collection of tools designed to interact with the okami PC port. This project is in it's very early days and by all means not production ready.","archived":false,"fork":false,"pushed_at":"2025-04-14T17:51:18.000Z","size":29265,"stargazers_count":19,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-19T16:39:53.737Z","etag":null,"topics":["2006","amaterasu","assets","capcom","clover","criware","editor","engineering","hd","map","mod","modding","nippon","okami","pc","playstation","port","ps2","reverse","studio"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/allogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-17T23:34:50.000Z","updated_at":"2025-03-30T11:03:42.000Z","dependencies_parsed_at":"2023-10-17T06:41:48.485Z","dependency_job_id":"85dd1295-6898-4919-89ec-c7a21d7ef6ee","html_url":"https://github.com/allogic/Nippon","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/allogic/Nippon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allogic%2FNippon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allogic%2FNippon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allogic%2FNippon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allogic%2FNippon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/allogic","download_url":"https://codeload.github.com/allogic/Nippon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allogic%2FNippon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006561,"owners_count":26084128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2006","amaterasu","assets","capcom","clover","criware","editor","engineering","hd","map","mod","modding","nippon","okami","pc","playstation","port","ps2","reverse","studio"],"created_at":"2024-11-28T20:08:28.545Z","updated_at":"2025-10-11T07:04:36.206Z","avatar_url":"https://github.com/allogic.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nippon Modding Framework\nNippon is a collection of tools designed to interact with the okami PC port. This project is in it's very early days and by all means not production ready.\n\n\u003cimg src=\"Assets/Editor.png\" width=\"100%\"/\u003e\n\n## Starting The Editor\nOn first start the editor will ask for the okami data directory.\n\nIt should look something along like `C:\\Program Files (x86)\\Steam\\steamapps\\common\\Okami\\data_pc`.\n\n#### Editor Scene Controls\n- `WASD/QE` to move\n- `L-SHIFT` for lightspeed\n- `F` reset position\n\n## Compile The Project\nFirst clone the repository and execute the setup which should create all missing folders and files.\n```\ngit clone --branch main --depth 1 https://github.com/allogic/Nippon\nSetup.ps1\n```\nLaunch the Visual Studio Solution, set the `Editor` as the startup project and build for `Debug` or `Release` bitness `x64`.\nIf you want to launch the editor through Visual Studio change the Debugging Working Directory in the Editor Project to $(TargetPath)\n\n#### Troubleshooting\n - If you got build errors, make sure you have the latest Visual Studio platform toolset v143 installed on your system.\n - If for some reason the editor does not start, make sure the latest graphics card drivers are installed on your system.\n\n## How do I modify archives?\nThere is a standalone archive utility which can be utilized to quickly inspect or change archives. Make sure that you do not inadvertently overwrite existing game files.\n```\nUsage:\n\n ArchiveUtility [Command] [Arguments]\n\nCommands:\n PrintToC         [Archive(Str)]                                     Print the table of content for AKT/BIN/CMP/DAT/DDP/EFF/IDD/PAC/SCP/TBL files\n PrintOfType      [Archive(Str)] [Type(Str)]                         Print all entries of type\n Extract          [Archive(Str)] [Folder(Str)]                       Extract an archive to disk\n Unfold           [Archive(Str)] [Folder(Str)]                       Unfold an archive to disk\n GetByTypeAndName [Archive(Str)] [Type(Str)] [Name(Str)] [File(Str)] Get an archive entry identified by type and name into a file\n SetByTypeAndName [Archive(Str)] [Type(Str)] [Name(Str)] [File(Str)] Set an archive entry identified by type and name from a file\n Version                                                             Print the current version\n Help                                                                Print this help message\n\nExamples:\n PrintToC \"r301.dat\"\n PrintOfType \"r301.dat\" \"DDS\"\n Extract \"r301.dat\" \"r301\"\n Unfold \"r301.dat\" \"r301\"\n GetByTypeAndName \"r301.dat\" \"DDS\" \"hyouzan\" \"hyouzan.DDS\"\n SetByTypeAndName \"r301.dat\" \"DDS\" \"hyouzan\" \"hyouzan.DDS\"\n```\n\n## How do I modify models?\nThere is a standalone model utility which can be utilized to quickly inspect or change models. Have a look at the `Patches` folder to see a view examples.\n```\nUsage:\n\n ModelUtility [Command] [Arguments]\n\nCommands:\n PrintToC                         [Model(Str)]                          Print the table of content for SCR/MD files\n PrintContent                     [Model(Str)]                          Print the content of SCR/MD files\n GenerateConversionRules          [Model(Str)] [Rules(Str)]             Generate conversion rules from an existing SCR/MD model\n ValidateFileAgainstRules         [File(Str)] [Rules(Str)]              Validate a standardized 3D file against conversion rules\n ConvertFileIntoProprietaryFormat [File(Str)] [Rules(Str)] [Model(Str)] Convert a standardized 3D file into the internal proprietary model format\n Version                                                                Print the current version\n Help                                                                   Print this help message\n\nExamples:\n PrintToC \"minka.SCR\"\n PrintContent \"minka.SCR\"\n GenerateConversionRules \"minka.SCR\" \"rules.json\"\n ValidateFileAgainstRules \"monkey.fbx\" \"rules.json\"\n ConvertFileIntoProprietaryFormat \"monkey.fbx\" \"rules.json\" \"monkey.SCR\"\n```\nTo change an existing model, you must first examine its properties. To do this, we first print out the ToC of an SCR/MD file. Next, we need to generate conversion rules that has the same values as we just saw in the ToC. Optionally we can validate our 3D file against the generated rules.\n\nMake sure that your custom model has the same parent-child relationships. Also make sure that your custom model has the same vertex attributes as the source model.\n - VertexOffset \u003c=\u003e Vertex Position Strip\n - TextureMapOffset \u003c=\u003e UV's\n - TextureUvOffset \u003c=\u003e UV's\n - ColorWeightOffset \u003c=\u003e Vertex Colors\n\nFinally, we can start the conversion process!\n\nHere is a full example from the `Patches` folder.\n```\nCopy-Item -Path \"C:\\Program Files (x86)\\Steam\\steamapps\\common\\Okami\\data_pc\\ut\\ut00_orig.dat\" -Destination \".\\ut00.dat\"\n\n.\\ArchiveUtility.exe GetByTypeAndName \".\\ut00.dat\" \"MD\" \"ut00\" \".\\ut00.MD\"\n.\\ModelUtility.exe GenerateConversionRules \".\\ut00.MD\" \".\\Rules.json\"\n.\\ModelUtility.exe ValidateFileAgainstRules \".\\Tree.fbx\" \".\\Rules.json\"\n.\\ModelUtility.exe ConvertFileIntoProprietaryFormat \".\\Tree.fbx\" \".\\Rules.json\" \"Tree.MD\"\n.\\ArchiveUtility.exe SetByTypeAndName \".\\ut00.dat\" \"MD\" \"ut00\" \".\\Tree.MD\"\n\nCopy-Item -Path \".\\ut00.dat\" -Destination \"C:\\Program Files (x86)\\Steam\\steamapps\\common\\Okami\\data_pc\\ut\\ut00.dat\"\n```\n\n## Exporting Assets\nRight click on a random entity that you wish to export and choose `Export as Wavefront` to generate a wavefront object and material file along with all referenced textures. It should be ready to be imported into blender or any other 3D modeling software. Be sure to enable backface culling in your external rendering software to view the objects properly, otherwise only the black hull will be visible for most objects.\n\n\u003cimg src=\"Assets/Oki.jpg\" width=\"33%\"/\u003e\u003cimg src=\"Assets/Crow.jpg\" width=\"33%\"/\u003e\u003cimg src=\"Assets/Rao.jpg\" width=\"33%\"/\u003e\n\n## Issues / Pull Requests\nIf bugs are being found, please don't hesitate to open an issue or pull request!\n\n## Resources\n\n#### Links\n- Wiki https://okami.speedruns.wiki\n- Discord https://discord.gg/fbJdaeb\n\n#### Repositories\n- https://github.com/Shintensu/OkamiHD-Reverse-Engineering\n- https://github.com/whataboutclyde/okami-utils\n\n#### Tools\n- https://github.com/WerWolv/ImHex\n- https://github.com/rizinorg/cutter\n\n#### Old File Extension List\n```\nAFD - unknown purpose but are small and contain no multimedia.\nAFS - if an AFS file is a subfile than it only contains audio, usually a few. Game Extractor can extract these but if you have try after you exact the big one (if some one can optimize the script then this should be displayed as a folder)\nBIN - These are sub archives that Game Extractor can't really extract properly. The format is easy the first 4bytes are the number of files. then the next 4 bytes are all of the file offsets, then there are text extensions (4bytea for all of the files possible extensions include:\nANS - These are blank 16bytes strange\nAKT - Contain Collision Maps and Terrain type Maps (ie is is dirt, water mud ect)\nBMH - Contain mostly floats possibly level terrain related contain the header BMH\nCAM - Unknown purpose contain the header mtb3 (in lowercase)\nCCH - Contain mostly floats probably map related no real header\nDRH - Related or identical to the SCH files, no real header mostly floats\nEFF - are similar or identical to the BIN archives\nFI2 - These contain object placement data\nITS - Contain no floats possibly map related no real header\nLI3 - Contain some floats unknown purpose\nMEH - Are small contain mostly floats have the header MEH\nMOT - Unknown Contain the header mtb3 (in lowercase)\nMSD - which is itself a sub-sub file archive. It contains no header and begins with the relative positions of the files it contains. Maybe it is collision map data, but it does not use floats\nMSA - Contains no header other than the size of the whole file, no floats maybe texture meta data\nMST - really small no header no file size no floats ect\nRNI - These are small, Unknown purpose no real header\nSCH - These contain mostly Floats probably related to map boundary lines-contain no real header\nSCR - These contain the Header scr (in lowercase) these are model archives for level terrain that use 16bytesigned vertexes similar to MD archives that contain character meshes\nSEQ - Probably animation data\nT32 - These are some sort of Tim2 textures but DO NOT contain the text header TIM2\nT3L - same as BIN archive\nTM2 - These are regular Tim2 textures that DO contain the standard TIM2 text header\nTRE - Unknown related to TSC contain no real header\nTS  - Possibly related to camera movement these contain the header TS\nTSC - Unknown releated to TSC contain no real header\nTST - Same as the BIN archive\nBMT - These are small files unknown purpose\nD   - The ones on the demo are archives that only contain 1 of each of the following\nMPD - contain Meta data for the textures no real header\nDAT - similar to BIN archives contain many files and models:\nMD  - Contain the Header scr (in lowercase) + five 00 bytes+ the number of models (4bytes)+ four 00 bytes + The offsets to the models\nMDB - These are the models packages and contain the submeshes+yet another type of Tim2 textures\nDIR - a small text file with the name of the path to the video files\nS   - some type of audio or video adx format??? this file might be the promational video for the full version of okami\nSES - Audio\nSFD - Audio\nTBL - (map.tbl) This looks like a source code map, or at least ALL of the functions in the ELF file (PS2 Excutable file) this could easily be into hacks, but the file might not be included in the full version of the game\nTM2 - (moji8.tm2) a Tim2 texture of the letters used in for menus and character speech.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallogic%2Fnippon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallogic%2Fnippon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallogic%2Fnippon/lists"}