trunk/src/mess/machine/nes_slot.h
| r20953 | r20954 | |
| 23 | 23 | // construction/destruction |
| 24 | 24 | device_nes_cart_interface(const machine_config &mconfig, device_t &device); |
| 25 | 25 | virtual ~device_nes_cart_interface(); |
| 26 | | |
| 26 | |
| 27 | 27 | // reading and writing |
| 28 | 28 | virtual DECLARE_READ8_MEMBER(read_l) { return 0xff; } |
| 29 | 29 | virtual DECLARE_READ8_MEMBER(read_m) { return 0xff; } |
| r20953 | r20954 | |
| 31 | 31 | virtual DECLARE_WRITE8_MEMBER(write_l) { } |
| 32 | 32 | virtual DECLARE_WRITE8_MEMBER(write_m) { } |
| 33 | 33 | virtual DECLARE_WRITE8_MEMBER(write_h) { } |
| 34 | | |
| 34 | |
| 35 | 35 | virtual void prg_alloc(running_machine &machine, size_t size); |
| 36 | 36 | virtual void prgram_alloc(running_machine &machine, size_t size); |
| 37 | 37 | virtual void vrom_alloc(running_machine &machine, size_t size); |
| r20953 | r20954 | |
| 39 | 39 | virtual void battery_alloc(running_machine &machine, size_t size); |
| 40 | 40 | virtual void mapper_ram_alloc(running_machine &machine, size_t size); |
| 41 | 41 | virtual void mapper_bram_alloc(running_machine &machine, size_t size); |
| 42 | | |
| 42 | |
| 43 | 43 | virtual int get_mirroring() { return m_mirroring; } |
| 44 | 44 | virtual void set_mirroring(int val) { m_mirroring = val; } |
| 45 | 45 | virtual int get_four_screen_vram() { return m_four_screen_vram; } |
| 46 | 46 | virtual void set_four_screen_vram(int val) { m_four_screen_vram = val; } |
| 47 | | |
| 47 | |
| 48 | 48 | virtual UINT8* get_prg_base() { return m_prg; } |
| 49 | 49 | virtual UINT8* get_prgram_base() { return m_prgram; } |
| 50 | 50 | virtual UINT8* get_vrom_base() { return m_vrom; } |
| r20953 | r20954 | |
| 60 | 60 | virtual UINT32 get_battery_size() { return m_battery_size; } |
| 61 | 61 | virtual UINT32 get_mapper_ram_size() { return m_mapper_ram_size; } |
| 62 | 62 | virtual UINT32 get_mapper_bram_size() { return m_mapper_bram_size; } |
| 63 | | |
| 63 | |
| 64 | 64 | //private: |
| 65 | | |
| 65 | |
| 66 | 66 | // internal state |
| 67 | 67 | UINT8 *m_prg; |
| 68 | 68 | UINT8 *m_prgram; |
| r20953 | r20954 | |
| 71 | 71 | UINT8 *m_battery; |
| 72 | 72 | UINT8 *m_mapper_ram; |
| 73 | 73 | UINT8 *m_mapper_bram; |
| 74 | | |
| 74 | |
| 75 | 75 | UINT32 m_prg_size; |
| 76 | 76 | UINT32 m_prgram_size; |
| 77 | 77 | UINT32 m_vrom_size; |
| r20953 | r20954 | |
| 81 | 81 | UINT32 m_mapper_bram_size; |
| 82 | 82 | |
| 83 | 83 | int m_mirroring, m_four_screen_vram; |
| 84 | | bool m_has_battery, m_has_prgram; |
| 84 | bool m_has_battery, m_has_prgram; |
| 85 | 85 | }; |
| 86 | 86 | |
| 87 | 87 | extern void nes_partialhash(hash_collection &dest, const unsigned char *data, unsigned long length, const char *functions); |
| r20953 | r20954 | |
| 98 | 98 | // construction/destruction |
| 99 | 99 | nes_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 100 | 100 | virtual ~nes_cart_slot_device(); |
| 101 | | |
| 101 | |
| 102 | 102 | // device-level overrides |
| 103 | 103 | virtual void device_start(); |
| 104 | 104 | virtual void device_config_complete(); |
| 105 | | |
| 105 | |
| 106 | 106 | // image-level overrides |
| 107 | 107 | virtual bool call_load(); |
| 108 | 108 | virtual void call_unload(); |
| 109 | 109 | virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry); |
| 110 | | |
| 110 | |
| 111 | 111 | virtual iodevice_t image_type() const { return IO_CARTSLOT; } |
| 112 | 112 | virtual bool is_readable() const { return 1; } |
| 113 | 113 | virtual bool is_writeable() const { return 0; } |
| r20953 | r20954 | |
| 119 | 119 | virtual const char *file_extensions() const { return "nes,unf,unif"; } |
| 120 | 120 | virtual const option_guide *create_option_guide() const { return NULL; } |
| 121 | 121 | virtual device_image_partialhash_func get_partial_hash() const { return &nes_partialhash; } |
| 122 | | |
| 122 | |
| 123 | 123 | // slot interface overrides |
| 124 | 124 | virtual const char * get_default_card_software(const machine_config &config, emu_options &options); |
| 125 | | |
| 125 | |
| 126 | 126 | // reading and writing |
| 127 | 127 | virtual DECLARE_READ8_MEMBER(read_l); |
| 128 | 128 | virtual DECLARE_READ8_MEMBER(read_m); |
| r20953 | r20954 | |
| 132 | 132 | virtual DECLARE_WRITE8_MEMBER(write_h); |
| 133 | 133 | |
| 134 | 134 | int get_pcb_id() { return m_pcb_id; }; |
| 135 | | |
| 135 | |
| 136 | 136 | // temporarily here |
| 137 | 137 | int m_chr_open_bus; |
| 138 | 138 | int m_ce_mask; |
| r20953 | r20954 | |
| 141 | 141 | int m_vrc_ls_prg_b; |
| 142 | 142 | int m_vrc_ls_chr; |
| 143 | 143 | int m_crc_hack; |
| 144 | | |
| 144 | |
| 145 | 145 | virtual int get_chr_open_bus() { return m_chr_open_bus; }; |
| 146 | 146 | virtual int get_ce_mask() { return m_ce_mask; }; |
| 147 | 147 | virtual int get_ce_state() { return m_ce_state; }; |
| r20953 | r20954 | |
| 149 | 149 | virtual int get_vrc_ls_prg_b() { return m_vrc_ls_prg_b; }; |
| 150 | 150 | virtual int get_vrc_ls_chr() { return m_vrc_ls_chr; }; |
| 151 | 151 | virtual int get_crc_hack() { return m_crc_hack; }; |
| 152 | | |
| 152 | |
| 153 | 153 | //private: |
| 154 | | |
| 154 | |
| 155 | 155 | device_nes_cart_interface* m_cart; |
| 156 | 156 | int m_pcb_id; |
| 157 | 157 | bool m_must_be_loaded; |
| r20953 | r20954 | |
| 189 | 189 | // construction/destruction |
| 190 | 190 | nes_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 191 | 191 | nes_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock); |
| 192 | | |
| 192 | |
| 193 | 193 | //protected: |
| 194 | 194 | // device-level overrides |
| 195 | 195 | virtual void device_start(); |
| 196 | 196 | virtual void device_config_complete() { m_shortname = "nes_rom"; } |
| 197 | | |
| 197 | |
| 198 | 198 | // nescart_interface overrides |
| 199 | 199 | // virtual DECLARE_READ8_MEMBER(read_l); |
| 200 | 200 | // virtual DECLARE_READ8_MEMBER(read_m); |