Skip to content

Sebanisu/OpenVIII_CPP_WIP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,314 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenVIII CPP WIP

Image of CI passing or not. contributions welcome GPL v3 License C++ 23 GitHub followers Documentation Status

Credits

Reference

Requires

  • C++ 23
  • GCC 16
    • Currently supported.
  • MSVC
    • Some newer language/library features may still lag behind GCC support.
  • Clang
    • Currently untested. It may already work or may require some changes to the library.
  • lz4
    • Used for remaster archive support.
  • ut
    • Unit testing framework.
  • fmt
    • Formatting library.
  • spdlog
    • Logging library.
  • Tools Library
    • Used for parsing buffers into types.

Prefer


This project started as a port of OpenVIII to modern C++, but gradually became more focused on being a reusable back end library for reading, writing, extracting, and working with FF8 file formats and archives.

The long term goal is still to continue porting functionality from OpenVIII where it makes sense, but most recent development has focused on tooling support and reusable library code instead of rebuilding the engine itself.

The library is intended to stay modular so projects only need to include the pieces they actually use. The primary development targets are Linux and Windows.

This project is currently used by:

There is still a large amount of functionality from OpenVIII that has not been ported into this library yet.

Only things directly related to accessing or manipulating FF8 data should live in this repository. More general purpose code should be moved into separate libraries when possible.

This library is GPL because it references and derives from GPL related projects and research. Not all dependencies need to be GPL licensed.

Some reusable code has already been moved into:

Current Features

Archives / Compression

  • FI
  • FS
  • FL
  • ZZZ
  • FIFLFS
  • LZSS
  • LZ4
  • PAK

Graphics / Image Formats

  • TIM
  • TEX
  • LZS image data
  • PNG export support

Utilities

  • Archive extraction tools
  • Archive search tools
  • Compression utilities
  • Texture conversion utilities
  • Field rendering/debug utilities

Testing

The project currently uses:

Coverage currently includes:

  • FS
  • FI
  • FL
  • LZSS compression
  • LZ4 compression
  • PupuID
  • UniquifyPupu

There are still older test applications that dump results to console. Over time these should move into proper automated unit tests.

The Plan

  • Expand unit test coverage
  • Continue porting OpenVIII functionality where useful
  • Improve cross platform support
  • Improve archive editing support
  • Add configuration support instead of hardcoded paths
  • Continue separating reusable code into standalone libraries
  • Add lightweight rendering validation tools
  • Add more FF8 format support

Supported Formats

  • FI
  • FS
  • FL
  • ZZZ
  • TIM
  • LZS
  • TEX
  • PAK

Notes

This project is still WIP and APIs, formats, and internal structures are subject to change.

About

Archive Reading Library for FFVIII. Gives API to read from ZZZ or FIFLFS archives.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages