{"id":23507691,"url":"https://github.com/timesplinter/sfo4j","last_synced_at":"2025-05-13T00:40:44.465Z","repository":{"id":1372809,"uuid":"1324682","full_name":"TiMESPLiNTER/sfo4j","owner":"TiMESPLiNTER","description":"Read and write SFO files in Java.","archived":false,"fork":false,"pushed_at":"2016-08-25T20:57:54.000Z","size":124,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-16T19:22:51.234Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"sfo4j.timesplinter.ch","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TiMESPLiNTER.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-02-03T16:17:04.000Z","updated_at":"2020-01-16T18:20:49.000Z","dependencies_parsed_at":"2022-07-07T06:33:12.333Z","dependency_job_id":null,"html_url":"https://github.com/TiMESPLiNTER/sfo4j","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiMESPLiNTER%2Fsfo4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiMESPLiNTER%2Fsfo4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiMESPLiNTER%2Fsfo4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiMESPLiNTER%2Fsfo4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TiMESPLiNTER","download_url":"https://codeload.github.com/TiMESPLiNTER/sfo4j/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850841,"owners_count":21973667,"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","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":[],"created_at":"2024-12-25T10:34:08.802Z","updated_at":"2025-05-13T00:40:44.445Z","avatar_url":"https://github.com/TiMESPLiNTER.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"sfo4j\r\n=====\r\nsfo4j is a very easy to use open source library in java for reading sfo-files. You just need to download the jar-package put it in your BuildPath and use it.\r\n\r\nIt's free, it's open source! Modify it, expand it as you like to. Use it in your projects.\r\n\r\nSample\r\n------\r\nHere a small piece of code to show you how to use the library:\r\n\r\n```java\r\nSFOReader sfoReader = new SFOReader(\"C:/Data/PARAM_RAC.SFO\");\r\n\r\nSFOWriter sfoWriter = new SFOWriter(\"C:/Data/PARAM_NEW.SFO\");\r\n\r\nfor(Map.Entry entry : sfoReader.getKeyValueMap().entrySet()){\r\n\tSystem.out.print(entry.getKey() + \" = \");\r\n\tif(entry.getValue().getDataType() == SFODataValue.DATATYPE_STRING) {\r\n\t\tSystem.out.println(entry.getValue().toString());\r\n\t} else if(entry.getValue().getDataType() == SFODataValue.DATATYPE_NUMBER) {\r\n\t\tSystem.out.println(entry.getValue().toInt());\r\n\t} else {\r\n\t\tSystem.out.println(entry.getValue().toBytes());\r\n\t}\r\n}\r\n\r\nSystem.out.println(\"\\n=========\\n\");\r\n\r\nsfoWriter.setKeyValueMap(sfoReader.getKeyValueMap());\r\n\r\nboolean writeProcess = sfoWriter.write();\r\n\r\nif(writeProcess) {\r\n\tSystem.out.println(\"SFO file successfully created\");\r\n} else {\r\n\tSystem.err.println(\"Could not create SFO file\");\r\n}\r\n```\r\n\r\nExample output:\r\n\r\n```\r\nPS3_SYSTEM_VER = 01.9300\r\nAPP_VER = 01.00\r\nPARENTAL_LEVEL = \u0003\r\nLICENSE = Library programs ©Sony Computer Entertainment Inc. Licensed for play on the PLAYSTATION®3 Computer Entertainment System or authorized PLAYSTATION®3 format systems. For full terms and conditions see the user's manual. This product is authorized and produced under license from Sony Computer Entertainment Inc. Use is subject to the copyright laws and the terms and conditions of the user's license.\r\nRESOLUTION = ?\r\nTITLE_ID = BCES00052\r\nCATEGORY = DG\r\nBOOTABLE = \u0001\r\nVERSION = 01.00\r\nSOUND_FORMAT = \u0017\u0001\r\nTITLE_05 = Ratchet \u0026 Clank: Armi di distruzione™\r\nTITLE_03 = Ratchet \u0026 Clank: Armados hasta los dientes™\r\nTITLE = Ratchet \u0026 Clank: Tools of Destruction™\r\nTITLE_02 = Ratchet \u0026 Clank: Opération Destruction™\r\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimesplinter%2Fsfo4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimesplinter%2Fsfo4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimesplinter%2Fsfo4j/lists"}