OSDN Git Service

client 0.6.1 release
[unagi/old-svn-converted.git] / client / tag / 0.6.1 / header.h
1 #ifndef _HEADER_H_
2 #define _HEADER_H_
3 #if ANAGO==0
4 #include "flashmemory.h"
5 #endif
6 enum trastype{
7         TRANSTYPE_EMPTY,
8         TRANSTYPE_TOP,
9         TRANSTYPE_BOTTOM,
10         TRANSTYPE_FULL,
11 };
12 enum memory_attribute{
13         MEMORY_ATTR_READ, MEMORY_ATTR_WRITE, MEMORY_ATTR_NOTUSE
14 };
15 struct memory{
16         const char *name;
17         int size, offset;
18         enum memory_attribute attribute;
19         enum trastype transtype;
20         uint8_t *data;
21 };
22 /*
23 ROM image Æâ struct memory ¤Î¥â¡¼¥ÉÊ̤λȤ¤Êý
24 MODE_ROM_DUMP
25         cpu_rom ROM Æɤ߹þ¤ß¥Ð¥Ã¥Õ¥¡, file out
26         ppu_rom ROM Æɤ߹þ¤ß¥Ð¥Ã¥Õ¥¡, file out
27         cpu_ram Ì¤»ÈÍÑ
28 MODE_RAM_READ
29         cpu_rom Ì¤»ÈÍÑ
30         ppu_rom Ì¤»ÈÍÑ
31         cpu_ram RAM Æɤ߹þ¤ß¥Ð¥Ã¥Õ¥¡. file out
32 MODE_RAM_WRITE
33         cpu_rom Ì¤»ÈÍÑ
34         ppu_rom Ì¤»ÈÍÑ
35         cpu_ram RAM ½ñ¤­¹þ¤ß¥Ð¥Ã¥Õ¥¡. . file in
36 MODE_ROM_PROGRAM
37         cpu_rom ROM ½ñ¤­¹þ¤ß¥Ð¥Ã¥Õ¥¡, file in
38         ppu_rom ROM ½ñ¤­¹þ¤ß¥Ð¥Ã¥Õ¥¡, file in
39         cpu_ram Ì¤»ÈÍÑ
40 */
41 enum vram_mirroring{
42         MIRROR_HORIZONAL = 0,
43         MIRROR_VERTICAL,
44         MIRROR_PROGRAMABLE = MIRROR_HORIZONAL
45 };
46 struct romimage{
47         struct memory cpu_rom, ppu_rom, cpu_ram;
48 #if ANAGO==0
49         struct flash_order cpu_flash, ppu_flash;
50 #endif
51         long mappernum;
52         enum vram_mirroring mirror;
53         int backupram;
54 };
55
56 enum{
57         MEMORY_AREA_CPU_RAM, MEMORY_AREA_CPU_ROM, MEMORY_AREA_PPU
58 };
59 #ifdef HEADEROUT
60 void nesheader_set(const struct romimage *r, uint8_t *header);
61 #endif
62 bool nesbuffer_malloc(struct romimage *r, int mode);
63 void nesfile_create(struct romimage *r, const char *romfilename);
64 void nesbuffer_free(struct romimage *r, int mode);
65 void backupram_create(const struct memory *r, const char *ramfilename);
66 int memorysize_check(const long size, int region);
67 bool nesfile_load(const char *errorprefix, const char *file, struct romimage *r);
68 #endif