69 lines
1.6 KiB
C
69 lines
1.6 KiB
C
#ifndef _CAMMY_SRAM_H
|
|
#define _CAMMY_SRAM_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#define CAMMY_SRAM_SCRATCH_SIZE 4604
|
|
#define CAMMY_SRAM_SCRATCH_2_SIZE 4
|
|
#define CAMMY_SRAM_TILE_SIZE 16
|
|
#define CAMMY_SRAM_PHOTO_SIZE 3584
|
|
#define CAMMY_SRAM_THUMB_SIZE 256
|
|
|
|
#define CAMMY_SRAM_PHOTO_TILES_WIDTH 16
|
|
#define CAMMY_SRAM_PHOTO_TILES_HEIGHT 14
|
|
|
|
#define CAMMY_SRAM_THUMB_TILES_WIDTH 4
|
|
#define CAMMY_SRAM_THUMB_TILES_HEIGHT 4
|
|
|
|
#define CAMMY_SRAM_INFO_SIZE 256
|
|
|
|
#define CAMMY_SRAM_FRAME_COUNT 30
|
|
|
|
#pragma pack(1)
|
|
#pragma pack(push)
|
|
|
|
typedef struct _cammy_sram_tile {
|
|
uint8_t data[CAMMY_SRAM_TILE_SIZE];
|
|
} cammy_sram_tile;
|
|
|
|
typedef struct _cammy_sram_thumb {
|
|
cammy_sram_tile rows[CAMMY_SRAM_THUMB_TILES_HEIGHT]
|
|
[CAMMY_SRAM_THUMB_TILES_WIDTH];
|
|
} cammy_sram_thumb;
|
|
|
|
typedef struct _cammy_sram_photo {
|
|
cammy_sram_tile rows[CAMMY_SRAM_PHOTO_TILES_HEIGHT]
|
|
[CAMMY_SRAM_PHOTO_TILES_WIDTH];
|
|
} cammy_sram_photo;
|
|
|
|
typedef struct _cammy_sram_frame {
|
|
cammy_sram_photo photo;
|
|
cammy_sram_thumb thumb;
|
|
uint8_t info[CAMMY_SRAM_INFO_SIZE];
|
|
} cammy_sram_frame;
|
|
|
|
typedef struct _cammy_sram_data {
|
|
uint8_t scratch[CAMMY_SRAM_SCRATCH_SIZE];
|
|
cammy_sram_photo gameface;
|
|
uint8_t scratch_2[CAMMY_SRAM_SCRATCH_2_SIZE];
|
|
|
|
cammy_sram_frame frames[CAMMY_SRAM_FRAME_COUNT];
|
|
} cammy_sram_data;
|
|
|
|
typedef struct _cammy_sram {
|
|
int fd;
|
|
|
|
cammy_sram_data *data;
|
|
|
|
size_t size,
|
|
page_size,
|
|
mapped_size;
|
|
} cammy_sram;
|
|
|
|
#pragma pack(pop)
|
|
|
|
cammy_sram *cammy_sram_open(const char *file);
|
|
|
|
void cammy_sram_close(cammy_sram *sram);
|
|
|
|
#endif /* _CAMMY_SRAM_H */
|