cammy/include/cammy/sram.h

70 lines
1.6 KiB
C
Raw Normal View History

2016-05-07 16:11:34 -05:00
#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 */