]> git.sesse.net Git - pistorm/blobdiff - config_file/config_file.h
More RTG acceleration, fix everything
[pistorm] / config_file / config_file.h
index e6e766dcad79acd641bc38cb300bdca132ba7ee9..b19d80972f8227c52514cc4d30a7e50a9310d5d4 100644 (file)
@@ -33,6 +33,7 @@ typedef enum {
   CONFITEM_MOUSE,
   CONFITEM_KEYBOARD,
   CONFITEM_PLATFORM,
+  CONFITEM_SETVAR,
   CONFITEM_NUM,
 } config_items;
 
@@ -49,6 +50,7 @@ struct emulator_config {
 
   unsigned char map_type[MAX_NUM_MAPPED_ITEMS];
   long map_offset[MAX_NUM_MAPPED_ITEMS];
+  long map_high[MAX_NUM_MAPPED_ITEMS];
   unsigned int map_size[MAX_NUM_MAPPED_ITEMS];
   unsigned int rom_size[MAX_NUM_MAPPED_ITEMS];
   unsigned char *map_data[MAX_NUM_MAPPED_ITEMS];
@@ -63,10 +65,13 @@ struct emulator_config {
   unsigned char mouse_enabled, keyboard_enabled;
 
   unsigned int loop_cycles;
+  unsigned int mapped_low, mapped_high;
+  unsigned int custom_low, custom_high;
 };
 
 struct platform_config {
   char *subsys;
+  unsigned char id;
 
   int (*custom_read)(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type);
   int (*custom_write)(struct emulator_config *cfg, unsigned int addr, unsigned int val, unsigned char type);
@@ -75,12 +80,16 @@ struct platform_config {
   int (*register_write)(unsigned int addr, unsigned int value, unsigned char type);
 
   int (*platform_initial_setup)(struct emulator_config *cfg);
-  void (*setvar)(char *var, char *val);
+  void (*handle_reset)(struct emulator_config *cfg);
+  void (*shutdown)(struct emulator_config *cfg);
+  void (*setvar)(struct emulator_config *cfg, char *var, char *val);
 };
 
 unsigned int get_m68k_cpu_type(char *name);
 struct emulator_config *load_config_file(char *filename);
 
-int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type, unsigned char mirror);
-int handle_mapped_write(struct emulator_config *cfg, unsigned int addr, unsigned int value, unsigned char type, unsigned char mirror);
+int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, unsigned int *val, unsigned char type);
+int handle_mapped_write(struct emulator_config *cfg, unsigned int addr, unsigned int value, unsigned char type);
 int get_named_mapped_item(struct emulator_config *cfg, char *name);
+int get_mapped_item_by_address(struct emulator_config *cfg, uint32_t address);
+unsigned int get_int(char *str);