Mercurial > repos > blastem
view blastem.h @ 1048:05ecef6c73b6
More efficient register usage in 32-bit mode
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 27 Jul 2016 23:08:05 -0700 |
parents | 5fb64487b6e1 |
children | 22e87b739ad6 |
line wrap: on
line source
/* Copyright 2013 Michael Pavone This file is part of BlastEm. BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text. */ #ifndef BLASTEM_H_ #define BLASTEM_H_ #include <stdint.h> #include "m68k_core.h" #include "z80_to_x86.h" #include "ym2612.h" #include "vdp.h" #include "psg.h" #include "io.h" #include "config.h" #include "romdb.h" #include "arena.h" typedef struct genesis_context genesis_context; struct genesis_context { m68k_context *m68k; z80_context *z80; vdp_context *vdp; ym2612_context *ym; psg_context *psg; genesis_context *next_context; uint16_t *cart; uint16_t *lock_on; uint16_t *work_ram; uint8_t *zram; void *extra; arena *arena; char *next_rom; char *save_dir; uint8_t *save_storage; eeprom_map *eeprom_map; uint32_t num_eeprom; uint32_t save_size; uint32_t save_ram_mask; uint32_t master_clock; //Current master clock value uint32_t normal_clock; //Normal master clock (used to restore master clock after turbo mode) uint32_t frame_end; uint32_t max_cycles; uint8_t bank_regs[8]; uint16_t mapper_start_index; uint8_t save_type; io_port ports[3]; uint8_t bus_busy; uint8_t should_exit; uint8_t save_state; uint8_t mouse_mode; uint8_t mouse_captured; eeprom_state eeprom; }; extern genesis_context * genesis; extern int headless; extern int break_on_sync; extern tern_node * config; #define RAM_WORDS 32 * 1024 #define Z80_RAM_BYTES 8 * 1024 #define QUICK_SAVE_SLOT 10 extern uint16_t *cart; extern uint16_t *ram; extern uint8_t z80_ram[Z80_RAM_BYTES]; uint16_t read_dma_value(uint32_t address); uint16_t get_open_bus_value(); m68k_context * sync_components(m68k_context *context, uint32_t address); m68k_context * debugger(m68k_context * context, uint32_t address); void set_speed_percent(genesis_context * context, uint32_t percent); #endif //BLASTEM_H_