add cartridge system

This commit is contained in:
asrael 2025-09-27 11:03:36 -05:00
parent ff698730f1
commit 98ca54e920
25 changed files with 968 additions and 315 deletions

36
src/pxl8_cart.h Normal file
View file

@ -0,0 +1,36 @@
#pragma once
#include "pxl8_types.h"
typedef struct pxl8_cart {
char* base_path;
char* name;
void* archive_data;
size_t archive_size;
bool is_folder;
bool is_mounted;
} pxl8_cart;
#ifdef __cplusplus
extern "C" {
#endif
pxl8_result pxl8_cart_load(pxl8_cart* cart, const char* path);
void pxl8_cart_unload(pxl8_cart* cart);
pxl8_result pxl8_cart_mount(pxl8_cart* cart);
void pxl8_cart_unmount(pxl8_cart* cart);
char* pxl8_cart_resolve_path(const pxl8_cart* cart, const char* relative_path);
bool pxl8_cart_file_exists(const pxl8_cart* cart, const char* path);
pxl8_cart* pxl8_cart_new(void);
void pxl8_cart_destroy(pxl8_cart* cart);
pxl8_result pxl8_cart_pack(const char* folder_path, const char* output_path);
pxl8_cart* pxl8_cart_current(void);
#ifdef __cplusplus
}
#endif