Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loading game assets direcly from CD/ISO without installing #674

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

bwrsandman
Copy link
Member

@bwrsandman bwrsandman commented Dec 29, 2023

Load game assets from CD using libcdio and from the installshield cabinet files inside using unshield.

The loading speed is not great due to the fact that it's extracting while loading, but it's not horrible.

This change can make it easier for non-windows users (especially restricted sandboxes such as with mobile and web) to run openblack using a single file (drag drop, file dialog).

TODO:

  • Listing map files

Depends on:

Closes #280

src/FileSystem/CdFileSystem.cpp Outdated Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Outdated Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Outdated Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Outdated Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Outdated Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Outdated Show resolved Hide resolved
SPDLOG_LOGGER_CALL(spdlog::get("filesystem"), spdlogLevel, "cdio: {}", message);
}

void unshield_log_handler([[maybe_unused]] void* userdata, int level, const char* file, int line, const char* format, va_list args)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[clang-format] reported by reviewdog 🐶

Suggested change
void unshield_log_handler([[maybe_unused]] void* userdata, int level, const char* file, int line, const char* format, va_list args)
void unshield_log_handler([[maybe_unused]] void* userdata, int level, const char* file, int line, const char* format,
va_list args)

@github-actions github-actions bot added the merge-conflicts PR cannot be merged until it is rebased label Jan 3, 2024
@github-actions github-actions bot removed the merge-conflicts PR cannot be merged until it is rebased label Jan 3, 2024
src/FileSystem/CdFileSystem.cpp Outdated Show resolved Hide resolved
src/FileSystem/CdFileSystem.h Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge-conflicts PR cannot be merged until it is rebased
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support non-extracted data files
2 participants