Previous 199869 Revisions Next

r21777 Sunday 10th March, 2013 at 09:43:17 UTC by Fabio Priuli
(MESS) misc slot cleanups. nw.
[src/mess/machine]gb_mbc.c gb_mbc.h gb_rom.c gb_rom.h gb_slot.c gb_slot.h md_eeprom.c md_eeprom.h md_jcart.c md_jcart.h md_rom.c md_rom.h md_slot.c md_slot.h md_stm95.c md_stm95.h sns_bsx.c sns_bsx.h sns_rom.c sns_rom.h sns_rom21.c sns_rom21.h sns_sdd1.c sns_sdd1.h sns_sfx.c sns_sfx.h sns_slot.h sns_spc7110.c sns_spc7110.h

trunk/src/mess/machine/md_slot.c
r21776r21777
141141}
142142
143143//-------------------------------------------------
144//
145//
144// get_padded_size
146145//-------------------------------------------------
147146
148147UINT32 device_md_cart_interface::get_padded_size(UINT32 size)
trunk/src/mess/machine/md_slot.h
r21776r21777
109109   virtual UINT32 get_rom_size() { return m_rom_size; };
110110   virtual UINT32 get_nvram_size() { return m_nvram_size; };
111111
112   virtual void rom_map_setup(UINT32 size);
113   virtual UINT32 get_padded_size(UINT32 size);
112   void rom_map_setup(UINT32 size);
113   UINT32 get_padded_size(UINT32 size);
114114
115115   int m_nvram_start, m_nvram_end;
116116   int m_nvram_active, m_nvram_readonly;
r21776r21777
121121   int m_nvram_handlers_installed;
122122
123123   // internal state
124   UINT16      *m_rom;
125   UINT16      *m_nvram;
124   UINT16 *m_rom;
125   UINT16 *m_nvram;
126126   UINT32 m_rom_size;
127127   UINT32 m_nvram_size;
128128
r21776r21777
151151   virtual void call_unload();
152152   virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry);
153153
154   virtual int load_list();
155   virtual int load_nonlist();
156   virtual int get_cart_type(UINT8 *ROM, UINT32 len);
157
158
159   virtual void setup_custom_mappers();
160   virtual void setup_nvram();
161
162154   virtual iodevice_t image_type() const { return IO_CARTSLOT; }
163155   virtual bool is_readable()  const { return 1; }
164156   virtual bool is_writeable() const { return 0; }
r21776r21777
169161
170162   // slot interface overrides
171163   virtual const char * get_default_card_software(const machine_config &config, emu_options &options);
172
164   
165   int load_list();
166   int load_nonlist();
167   int get_cart_type(UINT8 *ROM, UINT32 len);
168   
169   void setup_custom_mappers();
170   void setup_nvram();
171   
173172   // reading and writing
174173   virtual DECLARE_READ16_MEMBER(read);
175174   virtual DECLARE_WRITE16_MEMBER(write);
trunk/src/mess/machine/gb_slot.c
r21776r21777
130130      ram_bank_map[i] = i & mask;
131131}
132132
133
133134//**************************************************************************
134135//  LIVE DEVICE
135136//**************************************************************************
r21776r21777
219220   { GB_MBC_DIGIMON, "rom_digimon" },
220221   { GB_MBC_ROCKMAN8, "rom_rock8" },
221222   { GB_MBC_SM3SP, "rom_sm3sp" },
223   { GB_MBC_UNK01, "rom_unk01" },
224   { GB_MBC_DKONG5, "rom_dkong5" },
222225   { GB_MBC_CAMERA, "rom_camera" }
223226};
224227
trunk/src/mess/machine/gb_slot.h
r21776r21777
3232   GB_MBC_DIGIMON,
3333   GB_MBC_ROCKMAN8,
3434   GB_MBC_SM3SP,
35   GB_MBC_DKONG5,
36   GB_MBC_UNK01,
3537   GB_MBC_MEGADUCK,     /* MEGADUCK style banking                        */
3638   GB_MBC_UNKNOWN       /* Unknown mapper                                */
3739};
r21776r21777
5961   virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
6062   virtual DECLARE_WRITE8_MEMBER(write_ram) {}
6163
62   virtual void rom_alloc(running_machine &machine, UINT32 size);
63   virtual void ram_alloc(running_machine &machine, UINT32 size);
64   virtual UINT8* get_rom_base() { return m_rom; }
65   virtual UINT8* get_ram_base() { return m_ram; }
66   virtual UINT32 get_rom_size() { return m_rom_size; }
67   virtual UINT32 get_ram_size() { return m_ram_size; }
64   void rom_alloc(running_machine &machine, UINT32 size);
65   void ram_alloc(running_machine &machine, UINT32 size);
66   UINT8* get_rom_base() { return m_rom; }
67   UINT8* get_ram_base() { return m_ram; }
68   UINT32 get_rom_size() { return m_rom_size; }
69   UINT32 get_ram_size() { return m_ram_size; }
6870
69   virtual void rom_map_setup(UINT32 size);
70   virtual void ram_map_setup(UINT8 banks);
71   void rom_map_setup(UINT32 size);
72   void ram_map_setup(UINT8 banks);
7173
72   virtual void set_has_timer(bool val) { has_timer = val; }
73   virtual void set_has_rumble(bool val) { has_rumble = val; }
74   virtual void set_has_battery(bool val) { has_battery = val; }
75   virtual bool get_has_battery() { return has_battery; }
74   void set_has_timer(bool val) { has_timer = val; }
75   void set_has_rumble(bool val) { has_rumble = val; }
76   void set_has_battery(bool val) { has_battery = val; }
77   bool get_has_battery() { return has_battery; }
7678
7779   // internal state
78   UINT8      *m_rom;
79   UINT8      *m_ram;
80   UINT8  *m_rom;
81   UINT8  *m_ram;
8082   UINT32 m_rom_size;
8183   UINT32 m_ram_size;
8284
r21776r21777
117119   virtual void call_unload();
118120   virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry);
119121
120   virtual int get_type() { return m_type; }
121   virtual int get_cart_type(UINT8 *ROM, UINT32 len);
122   virtual bool get_mmm01_candidate(UINT8 *ROM, UINT32 len);
122   int get_type() { return m_type; }
123   int get_cart_type(UINT8 *ROM, UINT32 len);
124   bool get_mmm01_candidate(UINT8 *ROM, UINT32 len);
123125
124   virtual void setup_ram(UINT8 banks);
125   virtual void internal_header_logging(UINT8 *ROM, UINT32 len);
126   void setup_ram(UINT8 banks);
127   void internal_header_logging(UINT8 *ROM, UINT32 len);
126128
127129   virtual iodevice_t image_type() const { return IO_CARTSLOT; }
128130   virtual bool is_readable()  const { return 1; }
trunk/src/mess/machine/gb_rom.c
r21776r21777
7878}
7979
8080
81void gb_rom_device::device_start()
81//-------------------------------------------------
82//  shared_start
83//-------------------------------------------------
84
85void gb_rom_device::shared_start()
8286{
83   // these actually never change for base carts, so no need to save them
84   m_latch_bank = 0;
85   m_ram_bank = 0;
87   save_item(NAME(m_latch_bank));
88   save_item(NAME(m_latch_bank2));
89   save_item(NAME(m_ram_bank));
8690}
8791
88void megaduck_rom_device::device_start()
92//-------------------------------------------------
93//  shared_reset
94//-------------------------------------------------
95
96void gb_rom_device::shared_reset()
8997{
98   m_ram_bank = 0;
9099   m_latch_bank = 0;
91100   m_latch_bank2 = 1;
92   save_item(NAME(m_latch_bank));
93   save_item(NAME(m_latch_bank2));
101   
102   has_rumble = FALSE;
103   has_timer = FALSE;
104   has_battery = FALSE;
94105}
95106
107//-------------------------------------------------
108//  mapper specific start/reset
109//-------------------------------------------------
110
96111void gb_rom_tama5_device::device_start()
97112{
98   m_tama5_data = 0;
99   m_tama5_addr= 0;
100   m_tama5_cmd = 0;
101   memset(m_regs, 0xff, sizeof(m_regs));
102   m_rtc_reg = 0xff;
103   m_ram_bank = 0;
113   shared_start();
104114   save_item(NAME(m_tama5_data));
105115   save_item(NAME(m_tama5_addr));
106116   save_item(NAME(m_tama5_cmd));
107117   save_item(NAME(m_regs));
108118   save_item(NAME(m_rtc_reg));
109   save_item(NAME(m_ram_bank));
110119}
111120
112void gb_rom_wisdom_device::device_start()
121void gb_rom_tama5_device::device_reset()
113122{
114   m_latch_bank = 0;
115   m_ram_bank = 0;
116   save_item(NAME(m_latch_bank));
117   save_item(NAME(m_ram_bank));
123   shared_reset();
124   m_tama5_data = 0;
125   m_tama5_addr= 0;
126   m_tama5_cmd = 0;
127   memset(m_regs, 0xff, sizeof(m_regs));
128   m_rtc_reg = 0xff;
118129}
119130
120void gb_rom_yong_device::device_start()
131
132// these are identical to shared ones above, but megaduck cart class is not derived from gb cart class...
133void megaduck_rom_device::device_start()
121134{
122   m_latch_bank = 0;
123   m_latch_bank2 = 1;
124   m_ram_bank = 0;
125135   save_item(NAME(m_latch_bank));
126136   save_item(NAME(m_latch_bank2));
127137   save_item(NAME(m_ram_bank));
128138}
129139
130void gb_rom_atvrac_device::device_start()
140void megaduck_rom_device::device_reset()
131141{
132   m_latch_bank = 0;
133   m_latch_bank2 = 1;
134142   m_ram_bank = 0;
135   save_item(NAME(m_latch_bank));
136   save_item(NAME(m_latch_bank2));
137   save_item(NAME(m_ram_bank));
138}
139
140void gb_rom_lasama_device::device_start()
141{
142143   m_latch_bank = 0;
143144   m_latch_bank2 = 1;
144   m_ram_bank = 0;
145   save_item(NAME(m_latch_bank));
146   save_item(NAME(m_latch_bank2));
147   save_item(NAME(m_ram_bank));
145   
146   has_rumble = FALSE;
147   has_timer = FALSE;
148   has_battery = FALSE;
148149}
149150
151
150152/*-------------------------------------------------
151153 mapper specific handlers
152154 -------------------------------------------------*/
trunk/src/mess/machine/gb_rom.h
r21776r21777
1515   gb_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
1616
1717   // device-level overrides
18   virtual void device_start();
18   virtual void device_start() { shared_start(); };
19   virtual void device_reset() { shared_reset(); };
1920   virtual void device_config_complete() { m_shortname = "gb_rom"; }
20
21   
22   void shared_start();
23   void shared_reset();
24   
2125   // reading and writing
2226   virtual DECLARE_READ8_MEMBER(read_rom);
2327   virtual DECLARE_READ8_MEMBER(read_ram);
r21776r21777
3337
3438   // device-level overrides
3539   virtual void device_start();
40   virtual void device_reset();
3641   virtual void device_config_complete() { m_shortname = "gb_rom_tama5"; }
3742
3843   // reading and writing
r21776r21777
5257   gb_rom_wisdom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
5358
5459   // device-level overrides
55   virtual void device_start();
60   virtual void device_start() { shared_start(); };
61   virtual void device_reset() { shared_reset(); };
5662   virtual void device_config_complete() { m_shortname = "gb_rom_wisdom"; }
5763
5864   // reading and writing
r21776r21777
6874   gb_rom_yong_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
6975
7076   // device-level overrides
71   virtual void device_start();
77   virtual void device_start() { shared_start(); };
78   virtual void device_reset() { shared_reset(); };
7279   virtual void device_config_complete() { m_shortname = "gb_rom_yong"; }
7380
7481   // reading and writing
r21776r21777
8491   gb_rom_atvrac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
8592
8693   // device-level overrides
87   virtual void device_start();
94   virtual void device_start() { shared_start(); };
95   virtual void device_reset() { shared_reset(); };
8896   virtual void device_config_complete() { m_shortname = "gb_rom_atvrac"; }
8997
9098   // reading and writing
r21776r21777
100108   gb_rom_lasama_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
101109
102110   // device-level overrides
103   virtual void device_start();
111   virtual void device_start() { shared_start(); };
112   virtual void device_reset() { shared_reset(); };
104113   virtual void device_config_complete() { m_shortname = "gb_rom_lasama"; }
105114
106115   // reading and writing
r21776r21777
109118};
110119
111120
112
113
114121// ======================> megaduck_rom_device
115122class megaduck_rom_device :public device_t,
116123                  public device_gb_cart_interface
r21776r21777
122129
123130   // device-level overrides
124131   virtual void device_start();
132   virtual void device_reset();
125133   virtual void device_config_complete() { m_shortname = "megaduck_rom"; }
126
134   
127135   // reading and writing
128136   virtual DECLARE_READ8_MEMBER(read_rom);
129137   virtual DECLARE_WRITE8_MEMBER(write_bank);
trunk/src/mess/machine/md_stm95.c
r21776r21777
176176
177177void md_eeprom_stm95_device::device_start()
178178{
179   nvram_alloc(machine(), M95320_SIZE);
180   m_stm95.eeprom_data = (UINT8*)get_nvram_base();
181
182   save_item(NAME(m_rdcnt));
183   save_item(NAME(m_bank));
184   //TODO: save and restore the m_stm95...
185}
186
187void md_eeprom_stm95_device::device_reset()
188{
179189   m_rdcnt = 0;
180190   m_bank[0] = 0;
181191   m_bank[1] = 0;
182192   m_bank[2] = 0;
183   nvram_alloc(machine(), M95320_SIZE);
184   m_stm95.eeprom_data = (UINT8*)get_nvram_base();
185193}
186194
187195/*-------------------------------------------------
trunk/src/mess/machine/md_stm95.h
r21776r21777
6363
6464   // device-level overrides
6565   virtual void device_start();
66   virtual void device_reset();
6667   virtual void device_config_complete() { m_shortname = "md_eeprom_stm95"; }
6768
6869   // reading and writing
trunk/src/mess/machine/sns_rom21.c
r21776r21777
4040
4141void sns_rom21_device::device_start()
4242{
43   memset(rom_bank_map, 0, sizeof(rom_bank_map));
4443}
4544
45void sns_rom21_device::device_reset()
46{
47}
48
4649void sns_rom21_srtc_device::device_start()
4750{
48   memset(rom_bank_map, 0, sizeof(rom_bank_map));
51   save_item(NAME(m_mode));
52   save_item(NAME(m_index));
53   save_item(NAME(m_rtc_ram));
54}
4955
56void sns_rom21_srtc_device::device_reset()
57{
5058   m_mode = RTCM_Read;
5159   m_index = -1;
52
60   memset(m_rtc_ram, 0, sizeof(m_rtc_ram));   
61   
5362// at this stage, rtc_ram is not yet allocated. this will be fixed when converting RTC to be a separate device.
5463//  update_time();
55
56   save_item(NAME(m_mode));
57   save_item(NAME(m_index));
5864}
5965
6066/*-------------------------------------------------
trunk/src/mess/machine/sns_rom21.h
r21776r21777
1616
1717   // device-level overrides
1818   virtual void device_start();
19   virtual void device_reset();
1920   virtual void device_config_complete() { m_shortname = "sns_rom21"; }
2021
2122   // reading and writing
r21776r21777
3334
3435   // device-level overrides
3536   virtual void device_start();
37   virtual void device_reset();
3638   virtual void device_config_complete() { m_shortname = "sns_rom21_srtc"; }
3739
3840   // reading and writing
trunk/src/mess/machine/sns_spc7110.c
r21776r21777
4646
4747void sns_rom_spc7110_device::spc7110_start()
4848{
49   memset(m_ram, 0, sizeof(m_ram));
50   m_r4801 = 0x00;
51   m_r4802 = 0x00;
52   m_r4803 = 0x00;
53   m_r4804 = 0x00;
54   m_r4805 = 0x00;
55   m_r4806 = 0x00;
56   m_r4807 = 0x00;
57   m_r4808 = 0x00;
58   m_r4809 = 0x00;
59   m_r480a = 0x00;
60   m_r480b = 0x00;
61   m_r480c = 0x00;
62
63   m_r4811 = 0x00;
64   m_r4812 = 0x00;
65   m_r4813 = 0x00;
66   m_r4814 = 0x00;
67   m_r4815 = 0x00;
68   m_r4816 = 0x00;
69   m_r4817 = 0x00;
70   m_r4818 = 0x00;
71
72   m_r481x = 0x00;
73   m_r4814_latch = 0;
74   m_r4815_latch = 0;
75
76   m_r4820 = 0x00;
77   m_r4821 = 0x00;
78   m_r4822 = 0x00;
79   m_r4823 = 0x00;
80   m_r4824 = 0x00;
81   m_r4825 = 0x00;
82   m_r4826 = 0x00;
83   m_r4827 = 0x00;
84   m_r4828 = 0x00;
85   m_r4829 = 0x00;
86   m_r482a = 0x00;
87   m_r482b = 0x00;
88   m_r482c = 0x00;
89   m_r482d = 0x00;
90   m_r482e = 0x00;
91   m_r482f = 0x00;
92
93   m_r4830 = 0x00;
94   m_r4831 = 0;
95   m_dx_offset = spc7110_datarom_addr(0 * 0x100000, 0x200000); // we would need the rom length here...
96   m_r4832 = 1;
97   m_ex_offset = spc7110_datarom_addr(1 * 0x100000, 0x200000); // we would need the rom length here...
98   m_r4833 = 2;
99   m_fx_offset = spc7110_datarom_addr(2 * 0x100000, 0x200000); // we would need the rom length here...
100   m_r4834 = 0x00;
101
102   m_r4840 = 0x00;
103   m_r4841 = 0x00;
104   m_r4842 = 0x00;
105
10649   m_decomp = auto_alloc(machine(), SPC7110_Decomp(machine()));
10750
10851   save_item(NAME(m_ram));
r21776r21777
159102   // TODO: save decomp-related items and fix their restore...
160103}
161104
105void sns_rom_spc7110_device::spc7110_reset()
106{
107   memset(m_ram, 0, sizeof(m_ram));
108   m_r4801 = 0x00;
109   m_r4802 = 0x00;
110   m_r4803 = 0x00;
111   m_r4804 = 0x00;
112   m_r4805 = 0x00;
113   m_r4806 = 0x00;
114   m_r4807 = 0x00;
115   m_r4808 = 0x00;
116   m_r4809 = 0x00;
117   m_r480a = 0x00;
118   m_r480b = 0x00;
119   m_r480c = 0x00;
120   
121   m_r4811 = 0x00;
122   m_r4812 = 0x00;
123   m_r4813 = 0x00;
124   m_r4814 = 0x00;
125   m_r4815 = 0x00;
126   m_r4816 = 0x00;
127   m_r4817 = 0x00;
128   m_r4818 = 0x00;
129   
130   m_r481x = 0x00;
131   m_r4814_latch = 0;
132   m_r4815_latch = 0;
133   
134   m_r4820 = 0x00;
135   m_r4821 = 0x00;
136   m_r4822 = 0x00;
137   m_r4823 = 0x00;
138   m_r4824 = 0x00;
139   m_r4825 = 0x00;
140   m_r4826 = 0x00;
141   m_r4827 = 0x00;
142   m_r4828 = 0x00;
143   m_r4829 = 0x00;
144   m_r482a = 0x00;
145   m_r482b = 0x00;
146   m_r482c = 0x00;
147   m_r482d = 0x00;
148   m_r482e = 0x00;
149   m_r482f = 0x00;
150   
151   m_r4830 = 0x00;
152   m_r4831 = 0;
153   m_dx_offset = spc7110_datarom_addr(0 * 0x100000, 0x200000); // we would need the rom length here...
154   m_r4832 = 1;
155   m_ex_offset = spc7110_datarom_addr(1 * 0x100000, 0x200000); // we would need the rom length here...
156   m_r4833 = 2;
157   m_fx_offset = spc7110_datarom_addr(2 * 0x100000, 0x200000); // we would need the rom length here...
158   m_r4834 = 0x00;
159   
160   m_r4840 = 0x00;
161   m_r4841 = 0x00;
162   m_r4842 = 0x00;
163}
164
162165void sns_rom_spc7110_device::device_start()
163166{
164   memset(rom_bank_map, 0, sizeof(rom_bank_map));
165
166167   spc7110_start();
167168}
168169
170void sns_rom_spc7110_device::device_reset()
171{
172   spc7110_reset();
173}
174
169175void sns_rom_spc7110rtc_device::device_start()
170176{
171   memset(rom_bank_map, 0, sizeof(rom_bank_map));
172
173177   spc7110_start();
174178
179   save_item(NAME(m_rtc_state));
180   save_item(NAME(m_rtc_mode));
181   save_item(NAME(m_rtc_index));
182   save_item(NAME(m_rtc_offset));
183}
184
185void sns_rom_spc7110rtc_device::device_reset()
186{
187   spc7110_reset();
188   
175189   // RTC
176190   m_rtc_state = RTCS_Inactive;
177191   m_rtc_mode  = RTCM_Linear;
178192   m_rtc_index = 0;
179193   m_rtc_offset = 0;
180
181// at this stage, rtc_ram is not yet allocated. this will be fixed when converting RTC to be a separate device.
194   
195   // at this stage, rtc_ram is not yet allocated. this will be fixed when converting RTC to be a separate device.
182196//  spc7110_update_time(0);
183
184   save_item(NAME(m_rtc_state));
185   save_item(NAME(m_rtc_mode));
186   save_item(NAME(m_rtc_index));
187   save_item(NAME(m_rtc_offset));
188197}
189198
190199
trunk/src/mess/machine/sns_spc7110.h
r21776r21777
7777
7878   // device-level overrides
7979   virtual void device_start();
80   virtual void device_reset();
8081   virtual void device_config_complete() { m_shortname = "sns_rom_spc7110"; }
8182
8283   // reading and writing
r21776r21777
8990   virtual DECLARE_WRITE8_MEMBER(chip_write);
9091
9192   void spc7110_start();
93   void spc7110_reset();
9294   UINT32 spc7110_datarom_addr(UINT32 addr, UINT32 len);
9395   UINT32 spc7110_data_pointer();
9496   UINT32 spc7110_data_adjust();
r21776r21777
192194
193195   // device-level overrides
194196   virtual void device_start();
197   virtual void device_reset();
195198   virtual void device_config_complete() { m_shortname = "sns_rom_spc7110rtc"; }
196199
197200   // reading and writing
trunk/src/mess/machine/sns_sdd1.c
r21776r21777
427427
428428void sns_rom_sdd1_device::device_start()
429429{
430   UINT8 i;
430   m_sdd1emu = auto_alloc(machine(), SDD1__emu(machine()));
431431
432   m_buffer.data = (UINT8*)auto_alloc_array(machine(), UINT8, 0x10000);
433   m_buffer.ready = 0;
434
435   save_item(NAME(m_sdd1_enable));
436   save_item(NAME(m_xfer_enable));
437   save_item(NAME(m_mmc));
438   // TODO: save decomp-related and dma-related items and fix their restore...
439}
440
441void sns_rom_sdd1_device::device_reset()
442{
432443   m_sdd1_enable = 0x00;
433444   m_xfer_enable = 0x00;
434
445   
435446   m_mmc[0] = 0 << 20;
436447   m_mmc[1] = 1 << 20;
437448   m_mmc[2] = 2 << 20;
438449   m_mmc[3] = 3 << 20;
439
440   for(i = 0; i < 8; i++)
450   
451   for(int i = 0; i < 8; i++)
441452   {
442453      m_dma[i].addr = 0;
443454      m_dma[i].size = 0;
444   }
445
446   m_sdd1emu = auto_alloc(machine(), SDD1__emu(machine()));
447
448   m_buffer.data = (UINT8*)auto_alloc_array(machine(), UINT8, 0x10000);
449   m_buffer.ready = 0;
450
451   save_item(NAME(m_sdd1_enable));
452   save_item(NAME(m_xfer_enable));
453   save_item(NAME(m_mmc));
454   // TODO: save decomp-related and dma-related items and fix their restore...
455   }   
455456}
456457
457458/*-------------------------------------------------
trunk/src/mess/machine/sns_sdd1.h
r21776r21777
145145
146146   // device-level overrides
147147   virtual void device_start();
148   virtual void device_reset();
148149   virtual void device_config_complete() { m_shortname = "sns_rom_sdd1"; }
149150
150151   // reading and writing
trunk/src/mess/machine/sns_sfx.c
r21776r21777
3030   save_item(NAME(sfx_ram));
3131}
3232
33void sns_rom_superfx_device::device_reset()
34{
35   memset(sfx_ram, 0x00, sizeof(sfx_ram));
36}
37
3338/*-------------------------------------------------
3439 mapper specific handlers
3540 -------------------------------------------------*/
trunk/src/mess/machine/sns_sfx.h
r21776r21777
1616
1717   // device-level overrides
1818   virtual void device_start();
19   virtual void device_reset();
1920   virtual void device_config_complete() { m_shortname = "sns_rom_superfx"; }
2021   virtual machine_config_constructor device_mconfig_additions() const;
2122
trunk/src/mess/machine/sns_rom.c
r21776r21777
4747
4848void sns_rom_device::device_start()
4949{
50   memset(rom_bank_map, 0, sizeof(rom_bank_map));
5150}
5251
5352void sns_rom_pokemon_device::device_start()
5453{
55   m_latch = 0;
5654   save_item(NAME(m_latch));
5755}
5856
57void sns_rom_pokemon_device::device_reset()
58{
59   m_latch = 0;
60}
61
5962void sns_rom_obc1_device::device_start()
6063{
64   save_item(NAME(m_ram));
65   save_item(NAME(m_address));
66   save_item(NAME(m_offset));
67   save_item(NAME(m_shift));
68}
69
70void sns_rom_obc1_device::device_reset()
71{
6172   memset(m_ram, 0xff, sizeof(m_ram));
6273   // or from rom?
6374   m_offset  = (m_ram[0x1ff5] & 0x01) ? 0x1800 : 0x1c00;
6475   m_address = (m_ram[0x1ff6] & 0x7f);
6576   m_shift   = (m_ram[0x1ff6] & 0x03) << 1;
66
67   save_item(NAME(m_ram));
68   save_item(NAME(m_address));
69   save_item(NAME(m_offset));
70   save_item(NAME(m_shift));
7177}
7278
7379
trunk/src/mess/machine/sns_rom.h
r21776r21777
3333
3434   // device-level overrides
3535   virtual void device_start();
36   virtual void device_reset();
3637   virtual void device_config_complete() { m_shortname = "sns_rom_pokemon"; }
3738
3839   // reading and writing
r21776r21777
5152
5253   // device-level overrides
5354   virtual void device_start();
55   virtual void device_reset();
5456   virtual void device_config_complete() { m_shortname = "sns_rom_obc1"; }
5557
5658   // additional reading and writing
trunk/src/mess/machine/gb_mbc.c
r21776r21777
108108}
109109
110110
111void gb_rom_mbc_device::device_start()
112{
113   has_timer = FALSE;
114   has_rumble = FALSE;
111//-------------------------------------------------
112//  shared_start
113//-------------------------------------------------
115114
116   m_latch_bank = 0;
117   m_latch_bank2 = 1;
118   m_ram_enable = 0;
119   m_ram_bank = 0;
120   m_mode = 0;
121   save_item(NAME(m_latch_bank));
122   save_item(NAME(m_latch_bank2));
123   save_item(NAME(m_ram_bank));
124   save_item(NAME(m_ram_enable));
125   save_item(NAME(m_mode));
126}
127
128void gb_rom_mbc1_device::device_start()
115void gb_rom_mbc_device::shared_start()
129116{
130   has_timer = FALSE;
131   has_rumble = FALSE;
132
133   m_latch_bank = 0;
134   m_latch_bank2 = 1;
135   m_ram_bank = 0;
136   m_ram_enable = 0;
137   m_mode = 0;
138117   save_item(NAME(m_latch_bank));
139118   save_item(NAME(m_latch_bank2));
140119   save_item(NAME(m_ram_bank));
r21776r21777
142121   save_item(NAME(m_mode));
143122}
144123
145void gb_rom_mbc1col_device::device_start()
146{
147   has_timer = FALSE;
148   has_rumble = FALSE;
124//-------------------------------------------------
125//  shared_reset
126//-------------------------------------------------
149127
150   m_latch_bank = 0;
151   m_latch_bank2 = 1;
152   m_ram_bank = 0;
153   m_ram_enable = 0;
154   m_mode = 0;
155   save_item(NAME(m_latch_bank));
156   save_item(NAME(m_latch_bank2));
157   save_item(NAME(m_ram_bank));
158   save_item(NAME(m_ram_enable));
159   save_item(NAME(m_mode));
160}
161
162void gb_rom_mbc2_device::device_start()
128void gb_rom_mbc_device::shared_reset()
163129{
164   has_timer = FALSE;
165   has_rumble = FALSE;
166
167130   m_latch_bank = 0;
168131   m_latch_bank2 = 1;
169132   m_ram_bank = 0;
170133   m_ram_enable = 0;
171134   m_mode = 0;
172   save_item(NAME(m_latch_bank));
173   save_item(NAME(m_latch_bank2));
174   save_item(NAME(m_ram_bank));
175   save_item(NAME(m_ram_enable));
176   save_item(NAME(m_mode));
135   
136   has_rumble = FALSE;
137   has_timer = FALSE;
138   has_battery = FALSE;
177139}
178140
141//-------------------------------------------------
142//  mapper specific start/reset
143//-------------------------------------------------
144
179145void gb_rom_mbc3_device::device_start()
180146{
181   has_timer = FALSE;
182   has_rumble = FALSE;
183
184   m_latch_bank = 0;
185   m_latch_bank2 = 1;
186   m_ram_bank = 0;
187   m_ram_enable = 0;
188   m_mode = 0;
189   memset(m_rtc_map, 0, sizeof(m_rtc_map));
190   save_item(NAME(m_latch_bank));
191   save_item(NAME(m_latch_bank2));
192   save_item(NAME(m_ram_bank));
193   save_item(NAME(m_ram_enable));
194   save_item(NAME(m_mode));
147   shared_start();
195148   save_item(NAME(m_rtc_map));
196149}
197150
198void gb_rom_mbc5_device::device_start()
151void gb_rom_mbc3_device::device_reset()
199152{
200   has_timer = FALSE;
201   has_rumble = FALSE;
153   shared_reset();
154   memset(m_rtc_map, 0, sizeof(m_rtc_map));
155}
202156
203   m_latch_bank = 0;
204   m_latch_bank2 = 1;
205   m_ram_bank = 0;
206   m_ram_enable = 0;
207   m_mode = 0;
157void gb_rom_mbc6_device::device_start()
158{
159   save_item(NAME(m_bank_4000));
160   save_item(NAME(m_bank_6000));
161   save_item(NAME(m_latch1));
162   save_item(NAME(m_latch2));
208163   save_item(NAME(m_latch_bank));
209164   save_item(NAME(m_latch_bank2));
210165   save_item(NAME(m_ram_bank));
r21776r21777
212167   save_item(NAME(m_mode));
213168}
214169
215void gb_rom_mbc6_device::device_start()
170void gb_rom_mbc6_device::device_reset()
216171{
217   has_timer = FALSE;
218   has_rumble = FALSE;
219
220172   m_bank_4000 = 2;    // correct default?
221173   m_bank_6000 = 3;    // correct default?
222174   m_latch1 = 0;   // correct default?
223175   m_latch2 = 0;   // correct default?
224
176   
225177   m_latch_bank = 2;   // correct default?
226178   m_latch_bank2 = 3;  // correct default?
227179   m_ram_bank = 0;
228180   m_ram_enable = 0;
229181   m_mode = 0;
230
231   save_item(NAME(m_bank_4000));
232   save_item(NAME(m_bank_6000));
233   save_item(NAME(m_latch1));
234   save_item(NAME(m_latch2));
235   save_item(NAME(m_latch_bank));
236   save_item(NAME(m_latch_bank2));
237   save_item(NAME(m_ram_bank));
238   save_item(NAME(m_ram_enable));
239   save_item(NAME(m_mode));
240182}
241183
242void gb_rom_mbc7_device::device_start()
184void gb_rom_mmm01_device::device_start()
243185{
244   has_timer = FALSE;
245   has_rumble = TRUE;
246
247   m_latch_bank = 0;
248   m_latch_bank2 = 1;
249   m_ram_bank = 0;
250   m_ram_enable = 0;
251   save_item(NAME(m_latch_bank));
252   save_item(NAME(m_latch_bank2));
253   save_item(NAME(m_ram_bank));
254   save_item(NAME(m_ram_enable));
186   shared_start();
187   save_item(NAME(m_bank_mask));
188   save_item(NAME(m_bank));
189   save_item(NAME(m_reg));
255190}
256191
257void gb_rom_mmm01_device::device_start()
192void gb_rom_mmm01_device::device_reset()
258193{
259   has_timer = FALSE;
260   has_rumble = TRUE;
261
262194   m_latch_bank = 0x200 - 2;
263195   m_latch_bank2 = 0x200 - 1;
264196   m_ram_bank = 0;
265197   m_bank_mask = 0xff;
266198   m_bank = 0;
267199   m_reg = 0;
268   save_item(NAME(m_latch_bank));
269   save_item(NAME(m_latch_bank2));
270   save_item(NAME(m_ram_bank));
271   save_item(NAME(m_bank_mask));
272   save_item(NAME(m_bank));
273   save_item(NAME(m_reg));
274200}
275201
276202void gb_rom_sintax_device::device_start()
277203{
278   has_timer = FALSE;
279   has_rumble = FALSE;
280   
281   m_latch_bank = 0;
282   m_latch_bank2 = 1;
283   m_ram_bank = 0;
284   m_ram_enable = 0;
285   m_mode = 0;
204   shared_start();
205   save_item(NAME(m_sintax_mode));
206   save_item(NAME(m_currentxor));
207   save_item(NAME(m_xor2));
208   save_item(NAME(m_xor3));
209   save_item(NAME(m_xor4));
210   save_item(NAME(m_xor5));
211}
286212
213void gb_rom_sintax_device::device_reset()
214{
215   shared_reset();   
287216   m_sintax_mode = 0;
288217   m_currentxor = 0;
289218   m_xor2 = 0;
290219   m_xor3 = 0;
291220   m_xor4 = 0;
292221   m_xor5 = 0;
293
294   save_item(NAME(m_latch_bank));
295   save_item(NAME(m_latch_bank2));
296   save_item(NAME(m_ram_bank));
297   save_item(NAME(m_ram_enable));
298   save_item(NAME(m_mode));
299   save_item(NAME(m_sintax_mode));
300   save_item(NAME(m_currentxor));
301   save_item(NAME(m_xor2));
302   save_item(NAME(m_xor3));
303   save_item(NAME(m_xor4));
304   save_item(NAME(m_xor5));
305222}
306223
307224void gb_rom_chongwu_device::device_start()
308225{
309   has_timer = FALSE;
310   has_rumble = FALSE;
311   
312   m_latch_bank = 0;
313   m_latch_bank2 = 1;
314   m_ram_bank = 0;
315   m_ram_enable = 0;
316   m_mode = 0;
317   m_protection_checked = 0;
318   save_item(NAME(m_latch_bank));
319   save_item(NAME(m_latch_bank2));
320   save_item(NAME(m_ram_bank));
321   save_item(NAME(m_ram_enable));
322   save_item(NAME(m_mode));
226   shared_start();
323227   save_item(NAME(m_protection_checked));
324228}
325229
326void gb_rom_digimon_device::device_start()
230void gb_rom_chongwu_device::device_reset()
327231{
328   has_timer = FALSE;
329   has_rumble = FALSE;
330   
331   m_latch_bank = 0;
332   m_latch_bank2 = 1;
333   m_ram_bank = 0;
334   m_ram_enable = 0;
335   m_mode = 0;
336   save_item(NAME(m_latch_bank));
337   save_item(NAME(m_latch_bank2));
338   save_item(NAME(m_ram_bank));
339   save_item(NAME(m_ram_enable));
340   save_item(NAME(m_mode));
232   shared_reset();
233   m_protection_checked = 0;
341234}
342235
343void gb_rom_rockman8_device::device_start()
344{
345   has_timer = FALSE;
346   has_rumble = FALSE;
347   
348   m_latch_bank = 0;
349   m_latch_bank2 = 1;
350   m_ram_bank = 0;
351   m_ram_enable = 0;
352   m_mode = 0;
353   save_item(NAME(m_latch_bank));
354   save_item(NAME(m_latch_bank2));
355   save_item(NAME(m_ram_bank));
356   save_item(NAME(m_ram_enable));
357   save_item(NAME(m_mode));
358}
359236
360void gb_rom_sm3sp_device::device_start()
361{
362   has_timer = FALSE;
363   has_rumble = FALSE;
364   
365   m_latch_bank = 0;
366   m_latch_bank2 = 1;
367   m_ram_bank = 0;
368   m_ram_enable = 0;
369   m_mode = 0;
370   save_item(NAME(m_latch_bank));
371   save_item(NAME(m_latch_bank2));
372   save_item(NAME(m_ram_bank));
373   save_item(NAME(m_ram_enable));
374   save_item(NAME(m_mode));
375}
376
377
378237/*-------------------------------------------------
379238 mapper specific handlers
380239 -------------------------------------------------*/
r21776r21777
11601019   }
11611020   else if (offset < 0x5000)
11621021   {
1163//      printf("write $5 %x\n", data);
1022//      printf("write $5 %X at %X\n", data, offset);
11641023      //maybe rumble??
11651024   }
11661025   else if (offset < 0x6000)
trunk/src/mess/machine/gb_mbc.h
r21776r21777
1414   gb_rom_mbc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
1515
1616   // device-level overrides
17   virtual void device_start();
17   virtual void device_start() { shared_start(); };
18   virtual void device_reset() { shared_reset(); };
1819   virtual void device_config_complete() { m_shortname = "gb_rom_mbc_base"; }
19
20   
21   void shared_start();
22   void shared_reset();
23   
2024   // reading and writing
2125   virtual DECLARE_READ8_MEMBER(read_rom);
2226   virtual DECLARE_READ8_MEMBER(read_ram);
r21776r21777
3539   gb_rom_mbc1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
3640
3741   // device-level overrides
38   virtual void device_start();
42   virtual void device_start() { shared_start(); };
43   virtual void device_reset() { shared_reset(); };
3944   virtual void device_config_complete() { m_shortname = "gb_rom_mbc1"; }
4045
4146   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
5358   gb_rom_mbc1col_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
5459
5560   // device-level overrides
56   virtual void device_start();
61   virtual void device_start() { shared_start(); };
62   virtual void device_reset() { shared_reset(); };
5763   virtual void device_config_complete() { m_shortname = "gb_rom_mbc1col"; }
5864
5965   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
7177   gb_rom_mbc2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
7278
7379   // device-level overrides
74   virtual void device_start();
80   virtual void device_start() { shared_start(); };
81   virtual void device_reset() { shared_reset(); };
7582   virtual void device_config_complete() { m_shortname = "gb_rom_mbc2"; }
7683
7784   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
9097
9198   // device-level overrides
9299   virtual void device_start();
100   virtual void device_reset();
93101   virtual void device_config_complete() { m_shortname = "gb_rom_mbc3"; }
94102
95103   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
109117   gb_rom_mbc5_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
110118
111119   // device-level overrides
112   virtual void device_start();
120   virtual void device_start() { shared_start(); };
121   virtual void device_reset() { shared_reset(); };
113122   virtual void device_config_complete() { m_shortname = "gb_rom_mbc5"; }
114123
115124   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
128137
129138   // device-level overrides
130139   virtual void device_start();
140   virtual void device_reset();
131141   virtual void device_config_complete() { m_shortname = "gb_rom_mbc6"; }
132142
133143   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
147157   gb_rom_mbc7_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
148158
149159   // device-level overrides
150   virtual void device_start();
160   virtual void device_start() { shared_start(); };
161   virtual void device_reset() { shared_reset(); };
151162   virtual void device_config_complete() { m_shortname = "gb_rom_mbc7"; }
152163
153164   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
165176
166177   // device-level overrides
167178   virtual void device_start();
179   virtual void device_reset();
168180   virtual void device_config_complete() { m_shortname = "gb_rom_mmm01"; }
169181
170182   // reading and writing
r21776r21777
173185   UINT8 m_bank_mask, m_bank, m_reg;
174186};
175187
188// ======================> gb_rom_sintax_device
189class gb_rom_sintax_device : public gb_rom_mbc_device
190{
191public:
192   // construction/destruction
193   gb_rom_sintax_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
194   
195   // device-level overrides
196   virtual void device_start();
197   virtual void device_reset();
198   virtual void device_config_complete() { m_shortname = "gb_rom_sintax"; }
199   void set_xor_for_bank(UINT8 bank);
200   
201   // reading and writing
202   virtual DECLARE_READ8_MEMBER(read_rom);
203   virtual DECLARE_WRITE8_MEMBER(write_bank);
204   virtual DECLARE_READ8_MEMBER(read_ram);
205   virtual DECLARE_WRITE8_MEMBER(write_ram);
206   UINT8 m_bank_mask, m_bank, m_reg;
207
208   UINT8 m_currentxor, m_xor2, m_xor3, m_xor4, m_xor5, m_sintax_mode;
209};
210
176211// ======================> gb_rom_chongwu_device
177212
178213class gb_rom_chongwu_device : public gb_rom_mbc5_device
r21776r21777
183218   
184219   // device-level overrides
185220   virtual void device_start();
221   virtual void device_reset();
186222   virtual void device_config_complete() { m_shortname = "gb_rom_chongwu"; }
187223   
188224   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
198234   gb_rom_digimon_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
199235   
200236   // device-level overrides
201   virtual void device_start();
237   virtual void device_start() { shared_start(); };
238   virtual void device_reset() { shared_reset(); };
202239   virtual void device_config_complete() { m_shortname = "gb_rom_digimon"; }
203240   
204241   virtual DECLARE_READ8_MEMBER(read_rom);
r21776r21777
207244   virtual DECLARE_WRITE8_MEMBER(write_ram);
208245};
209246
210// ======================> gb_rom_sintax_device
211class gb_rom_sintax_device : public gb_rom_mbc_device
212{
213public:
214   // construction/destruction
215   gb_rom_sintax_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
216   
217   // device-level overrides
218   virtual void device_start();
219   virtual void device_config_complete() { m_shortname = "gb_rom_sintax"; }
220   void set_xor_for_bank(UINT8 bank);
221   
222   // reading and writing
223   virtual DECLARE_READ8_MEMBER(read_rom);
224   virtual DECLARE_WRITE8_MEMBER(write_bank);
225   virtual DECLARE_READ8_MEMBER(read_ram);
226   virtual DECLARE_WRITE8_MEMBER(write_ram);
227   UINT8 m_bank_mask, m_bank, m_reg;
228
229   UINT8 m_currentxor, m_xor2, m_xor3, m_xor4, m_xor5, m_sintax_mode;
230};
231
232247// ======================> gb_rom_rockman8_device
233248class gb_rom_rockman8_device : public gb_rom_mbc_device
234249{
r21776r21777
237252   gb_rom_rockman8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
238253   
239254   // device-level overrides
240   virtual void device_start();
255   virtual void device_start() { shared_start(); };
256   virtual void device_reset() { shared_reset(); };
241257   virtual void device_config_complete() { m_shortname = "gb_rom_rockman8"; }
242258   
243259   // reading and writing
r21776r21777
256272   gb_rom_sm3sp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
257273   
258274   // device-level overrides
259   virtual void device_start();
275   virtual void device_start() { shared_start(); };
276   virtual void device_reset() { shared_reset(); };
260277   virtual void device_config_complete() { m_shortname = "gb_rom_sm3sp"; }
261278   
262279   // reading and writing
trunk/src/mess/machine/sns_bsx.c
r21776r21777
5858void sns_rom_bsx_device::device_start()
5959{
6060   m_base_unit = auto_alloc(machine(), BSX_base(machine()));
61   m_base_unit->init();
62
6163   memset(m_cart_regs, 0x00, sizeof(m_cart_regs));
6264   m_cart_regs[7] = 0x80;
6365   m_cart_regs[8] = 0x80;
6466   access_update();
65
66   memset(m_pram, 0xff, sizeof(m_pram));
67
67   
6868   save_item(NAME(m_cart_regs));
6969   save_item(NAME(access_00_1f));
7070   save_item(NAME(access_80_9f));
r21776r21777
7676   // TODO: save unit-related items and fix their restore...
7777}
7878
79void sns_rom_bsx_device::device_reset()
80{   
81   memset(m_pram, 0xff, sizeof(m_pram));
82}
83
7984void sns_rom_bsxlo_device::device_start()
8085{
8186}
r21776r21777
8691
8792void sns_rom_bsmempak_device::device_start()
8893{
89   m_command = 0;
90   m_write_old = 0;
91   m_write_new = 0;
92
93   m_flash_enable = 0;
94   m_read_enable = 0;
95   m_write_enable = 0;
96
9794   save_item(NAME(m_command));
9895   save_item(NAME(m_write_old));
9996   save_item(NAME(m_write_new));
r21776r21777
10299   save_item(NAME(m_write_enable));
103100}
104101
102void sns_rom_bsmempak_device::device_reset()
103{
104   m_command = 0;
105   m_write_old = 0;
106   m_write_new = 0;
107   
108   m_flash_enable = 0;
109   m_read_enable = 0;
110   m_write_enable = 0;
111}
105112
106113
114
107115// BS-X Base Unit emulation, to be device-fied ?
108116
109117BSX_base::BSX_base(running_machine &machine)
trunk/src/mess/machine/sns_bsx.h
r21776r21777
3737
3838   // device-level overrides
3939   virtual void device_start();
40   virtual void device_reset();
4041   virtual void device_config_complete() { m_shortname = "sns_rom_bsx"; }
4142   virtual machine_config_constructor device_mconfig_additions() const;
4243
r21776r21777
121122
122123   // device-level overrides
123124   virtual void device_start();
125   virtual void device_reset();
124126   virtual void device_config_complete() { m_shortname = "sns_bsmempak"; }
125127
126128   // additional reading and writing
trunk/src/mess/machine/md_jcart.c
r21776r21777
144144
145145void md_jcart_device::device_start()
146146{
147   save_item(NAME(m_jcart_io_data));
148}
149
150void md_jcart_device::device_reset()
151{
147152   m_jcart_io_data[0] = 0;
148153   m_jcart_io_data[1] = 0;
149   save_item(NAME(m_jcart_io_data));
150154}
151155
152156void md_seprom_codemast_device::device_start()
153157{
158   save_item(NAME(m_i2c_mem));
159   save_item(NAME(m_i2c_clk));
160   save_item(NAME(m_jcart_io_data));
161}
162
163void md_seprom_codemast_device::device_reset()
164{
154165   m_i2c_mem = 0;
155166   m_i2c_clk = 0;
156167   m_jcart_io_data[0] = 0;
157168   m_jcart_io_data[1] = 0;
158   save_item(NAME(m_i2c_mem));
159   save_item(NAME(m_i2c_clk));
160   save_item(NAME(m_jcart_io_data));
161169}
162170
163171
trunk/src/mess/machine/md_jcart.h
r21776r21777
2121
2222   // device-level overrides
2323   virtual void device_start();
24   virtual void device_reset();
2425   virtual void device_config_complete() { m_shortname = "md_jcart"; }
2526   virtual ioport_constructor device_input_ports() const;
2627
r21776r21777
4647
4748   // device-level overrides
4849   virtual void device_start();
50   virtual void device_reset();
4951   virtual void device_config_complete() { m_shortname = "md_seprom_codemast"; }
5052   virtual machine_config_constructor device_mconfig_additions() const;
5153
trunk/src/mess/machine/md_eeprom.c
r21776r21777
195195
196196void md_std_eeprom_device::device_start()
197197{
198   m_i2c_mem = 0;
199   m_i2c_clk = 0;
200198   save_item(NAME(m_i2c_mem));
201199   save_item(NAME(m_i2c_clk));
202200}
203201
202void md_std_eeprom_device::device_reset()
203{
204   m_i2c_mem = 0;
205   m_i2c_clk = 0;
206}
207
204208/*-------------------------------------------------
205209 mapper specific handlers
206210 -------------------------------------------------*/
trunk/src/mess/machine/md_eeprom.h
r21776r21777
2121
2222   // device-level overrides
2323   virtual void device_start();
24   virtual void device_reset();
2425   virtual void device_config_complete() { m_shortname = "md_std_eeprom"; }
2526   virtual machine_config_constructor device_mconfig_additions() const;
2627
trunk/src/mess/machine/md_rom.c
r21776r21777
216216
217217void md_rom_ssf2_device::device_start()
218218{
219   save_item(NAME(m_bank));
220   save_item(NAME(m_lastoff));
221   save_item(NAME(m_lastdata));
222}
223
224void md_rom_ssf2_device::device_reset()
225{
219226   for (int i = 0; i < 7; i++)
220227      m_bank[i] = i;
221228   m_lastoff = -1;
222229   m_lastdata = -1;
223   save_item(NAME(m_bank));
224   save_item(NAME(m_lastoff));
225   save_item(NAME(m_lastdata));
226230}
227231
228232void md_rom_mcpirate_device::device_start()
229233{
230   m_bank = 0;
231234   save_item(NAME(m_bank));
232235}
233236
237void md_rom_mcpirate_device::device_reset()
238{
239   m_bank = 0;
240}
241
234242void md_rom_chinf3_device::device_start()
235243{
236   m_bank = 0;
237244   save_item(NAME(m_bank));
238245}
239246
247void md_rom_chinf3_device::device_reset()
248{
249   m_bank = 0;
250}
251
240252void md_rom_lion2_device::device_start()
241253{
242   m_prot1_data = 0;
243   m_prot2_data = 0;
244254   save_item(NAME(m_prot1_data));
245255   save_item(NAME(m_prot2_data));
246256}
247257
258void md_rom_lion2_device::device_reset()
259{
260   m_prot1_data = 0;
261   m_prot2_data = 0;
262}
263
248264void md_rom_lion3_device::device_start()
249265{
266   save_item(NAME(m_reg));
267   save_item(NAME(m_bank));
268}
269
270void md_rom_lion3_device::device_reset()
271{
250272   m_reg[0] = 0;
251273   m_reg[1] = 0;
252274   m_reg[2] = 0;
253275   m_bank = 0;
254   save_item(NAME(m_reg));
255   save_item(NAME(m_bank));
256276}
257277
258278void md_rom_pokestad_device::device_start()
259279{
260   m_bank = 0;
261280   save_item(NAME(m_bank));
262281}
263282
283void md_rom_pokestad_device::device_reset()
284{
285   m_bank = 0;
286}
287
264288void md_rom_realtec_device::device_start()
265289{
266   m_bank_addr = 0;
267   m_bank_size = 0;
268   m_old_bank_addr = -1;
269290   save_item(NAME(m_bank_addr));
270291   save_item(NAME(m_bank_size));
271292   save_item(NAME(m_old_bank_addr));
272293}
273294
295void md_rom_realtec_device::device_reset()
296{
297   m_bank_addr = 0;
298   m_bank_size = 0;
299   m_old_bank_addr = -1;
300}
301
274302void md_rom_squir_device::device_start()
275303{
276   m_latch = 0;
277304   save_item(NAME(m_latch));
278305}
279306
307void md_rom_squir_device::device_reset()
308{
309   m_latch = 0;
310}
311
280312void md_rom_smw64_device::device_start()
281313{
282   m_latch0 = 0xf;
283   m_latch1 = 0xf;
284   memset(m_reg, 0, sizeof(m_reg));
285   memset(m_ctrl, 0, sizeof(m_ctrl));
286
287314   save_item(NAME(m_latch0));
288315   save_item(NAME(m_latch1));
289316   save_item(NAME(m_reg));
290317   save_item(NAME(m_ctrl));
291318}
292319
320void md_rom_smw64_device::device_reset()
321{
322   m_latch0 = 0xf;
323   m_latch1 = 0xf;
324   memset(m_reg, 0, sizeof(m_reg));
325   memset(m_ctrl, 0, sizeof(m_ctrl));
326}
327
293328void md_rom_topf_device::device_start()
294329{
295   m_latch = 0;
296   m_bank[0] = m_bank[1] = m_bank[2] = 0;
297330   save_item(NAME(m_latch));
298331   save_item(NAME(m_bank));
299332}
300333
334void md_rom_topf_device::device_reset()
335{
336   m_latch = 0;
337   m_bank[0] = m_bank[1] = m_bank[2] = 0;
338}
339
301340void md_rom_radica_device::device_start()
302341{
303   m_bank = 0;
304342   save_item(NAME(m_bank));
305343}
306344
345void md_rom_radica_device::device_reset()
346{
347   m_bank = 0;
348}
349
307350void md_rom_beggarp_device::device_start()
308351{
309   m_mode = 0;
310   m_lock = 0;
311352   save_item(NAME(m_mode));
312353   save_item(NAME(m_lock));
313354}
314355
356void md_rom_beggarp_device::device_reset()
357{
358   m_mode = 0;
359   m_lock = 0;
360}
361
315362void md_rom_wukong_device::device_start()
316363{
317   m_mode = 0;
318364   save_item(NAME(m_mode));
319365}
320366
367void md_rom_wukong_device::device_reset()
368{
369   m_mode = 0;
370}
371
321372/*-------------------------------------------------
322373 mapper specific handlers
323374 -------------------------------------------------*/
r21776r21777
946997         return data;
947998      }
948999   }
949   
9501000   return 0xffff;
9511001}
9521002
r21776r21777
11071157      return m_mode ? m_rom[offset + 0x380000/2] : m_rom[offset];
11081158   else if (offset < 0x400000/2)
11091159      return m_rom[offset & 0x1fffff];
1110   
1160
11111161   return 0xffff;
11121162}
11131163
trunk/src/mess/machine/md_rom.h
r21776r21777
7171
7272   // device-level overrides
7373   virtual void device_start();
74   virtual void device_reset();
7475   virtual void device_config_complete() { m_shortname = "md_rom_ssf2"; }
7576
7677   // reading and writing
r21776r21777
9293
9394   // device-level overrides
9495   virtual void device_start();
96   virtual void device_reset();
9597   virtual void device_config_complete() { m_shortname = "md_rom_mcpirate"; }
9698
9799   // reading and writing
r21776r21777
128130
129131   // device-level overrides
130132   virtual void device_start();
133   virtual void device_reset();
131134   virtual void device_config_complete() { m_shortname = "md_rom_chinf3"; }
132135
133136   // reading and writing
r21776r21777
208211
209212   // device-level overrides
210213   virtual void device_start();
214   virtual void device_reset();
211215   virtual void device_config_complete() { m_shortname = "md_rom_lion2"; }
212216
213217   // reading and writing
r21776r21777
228232
229233   // device-level overrides
230234   virtual void device_start();
235   virtual void device_reset();
231236   virtual void device_config_complete() { m_shortname = "md_rom_lion3"; }
232237
233238   // reading and writing
r21776r21777
279284
280285   // device-level overrides
281286   virtual void device_start();
287   virtual void device_reset();
282288   virtual void device_config_complete() { m_shortname = "md_rom_pokestad"; }
283289
284290   // reading and writing
r21776r21777
299305
300306   // device-level overrides
301307   virtual void device_start();
308   virtual void device_reset();
302309   virtual void device_config_complete() { m_shortname = "md_rom_realtec"; }
303310
304311   // reading and writing
r21776r21777
394401   
395402   // device-level overrides
396403   virtual void device_start();
404   virtual void device_reset();
397405   virtual void device_config_complete() { m_shortname = "md_rom_smw64"; }
398406   
399407   // reading and writing
r21776r21777
447455
448456   // device-level overrides
449457   virtual void device_start();
458   virtual void device_reset();
450459   virtual void device_config_complete() { m_shortname = "md_rom_squir"; }
451460
452461   // reading and writing
r21776r21777
467476
468477   // device-level overrides
469478   virtual void device_start();
479   virtual void device_reset();
470480   virtual void device_config_complete() { m_shortname = "md_rom_topf"; }
471481
472482   // reading and writing
r21776r21777
488498
489499   // device-level overrides
490500   virtual void device_start();
501   virtual void device_reset();
491502   virtual void device_config_complete() { m_shortname = "md_rom_radica"; }
492503
493504   // reading and writing
r21776r21777
508519   
509520   // device-level overrides
510521   virtual void device_start();
522   virtual void device_reset();
511523   virtual void device_config_complete() { m_shortname = "md_rom_beggarp"; }
512524   
513525   // reading and writing
r21776r21777
515527   virtual DECLARE_WRITE16_MEMBER(write);
516528   virtual DECLARE_WRITE16_MEMBER(write_a13);
517529
530private:
518531   UINT8 m_mode, m_lock;
519532};
520533
r21776r21777
528541   
529542   // device-level overrides
530543   virtual void device_start();
544   virtual void device_reset();
531545   virtual void device_config_complete() { m_shortname = "md_rom_wukong"; }
532546   
533547   // reading and writing
r21776r21777
535549   virtual DECLARE_WRITE16_MEMBER(write);
536550   virtual DECLARE_WRITE16_MEMBER(write_a13);
537551   
552private:
538553   UINT8 m_mode;
539554};
540555
trunk/src/mess/machine/sns_slot.h
r21776r21777
6767   virtual DECLARE_READ8_MEMBER(chip_read) { return 0xff; }
6868   virtual DECLARE_WRITE8_MEMBER(chip_write) {}
6969
70   virtual void rom_alloc(running_machine &machine, UINT32 size);
71   virtual void nvram_alloc(running_machine &machine, UINT32 size);
72   virtual void rtc_ram_alloc(running_machine &machine, UINT32 size);
73   virtual void addon_bios_alloc(running_machine &machine, UINT32 size);
74   virtual UINT8* get_rom_base() { return m_rom; };
75   virtual UINT8* get_nvram_base() { return m_nvram; };
76   virtual UINT8* get_addon_bios_base() { return m_bios; };
77   virtual UINT8* get_rtc_ram_base() { return m_rtc_ram; };
78   virtual UINT32 get_rom_size() { return m_rom_size; };
79   virtual UINT32 get_nvram_size() { return m_nvram_size; };
80   virtual UINT32 get_addon_bios_size() { return m_bios_size; };
81   virtual UINT32 get_rtc_ram_size() { return m_rtc_ram_size; };
70   void rom_alloc(running_machine &machine, UINT32 size);
71   void nvram_alloc(running_machine &machine, UINT32 size);
72   void rtc_ram_alloc(running_machine &machine, UINT32 size);
73   void addon_bios_alloc(running_machine &machine, UINT32 size);
74   UINT8* get_rom_base() { return m_rom; };
75   UINT8* get_nvram_base() { return m_nvram; };
76   UINT8* get_addon_bios_base() { return m_bios; };
77   UINT8* get_rtc_ram_base() { return m_rtc_ram; };
78   UINT32 get_rom_size() { return m_rom_size; };
79   UINT32 get_nvram_size() { return m_nvram_size; };
80   UINT32 get_addon_bios_size() { return m_bios_size; };
81   UINT32 get_rtc_ram_size() { return m_rtc_ram_size; };
8282
83   virtual void rom_map_setup(UINT32 size);
83   void rom_map_setup(UINT32 size);
8484
8585   // internal state
86   UINT8      *m_rom;
87   UINT8      *m_nvram;
88   UINT8      *m_bios;
89   UINT8      *m_rtc_ram;  // temp pointer to save RTC ram to nvram (will disappear when RTCs become devices)
86   UINT8  *m_rom;
87   UINT8  *m_nvram;
88   UINT8  *m_bios;
89   UINT8  *m_rtc_ram;  // temp pointer to save RTC ram to nvram (will disappear when RTCs become devices)
9090   UINT32 m_rom_size;
9191   UINT32 m_nvram_size;
9292   UINT32 m_bios_size;
r21776r21777
117117   virtual void call_unload();
118118   virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry);
119119
120   virtual int get_cart_type(UINT8 *ROM, UINT32 len);
121   virtual UINT32 snes_skip_header(UINT8 *ROM, UINT32 snes_rom_size);
122   virtual int get_type() { return m_type; }
120   int get_cart_type(UINT8 *ROM, UINT32 len);
121   UINT32 snes_skip_header(UINT8 *ROM, UINT32 snes_rom_size);
122   int get_type() { return m_type; }
123123
124   virtual void setup_custom_mappers();
125   virtual void setup_nvram();
124   void setup_custom_mappers();
125   void setup_nvram();
126   void internal_header_logging(UINT8 *ROM, UINT32 len);
126127
127128   virtual iodevice_t image_type() const { return IO_CARTSLOT; }
128129   virtual bool is_readable()  const { return 1; }
r21776r21777
134135
135136   // slot interface overrides
136137   virtual const char * get_default_card_software(const machine_config &config, emu_options &options);
137   virtual void internal_header_logging(UINT8 *ROM, UINT32 len);
138138
139139   // reading and writing
140140   virtual DECLARE_READ8_MEMBER(read_l);
r21776r21777
191191};
192192
193193
194
195
196194// device type definition
197195extern const device_type SNS_CART_SLOT;
198196extern const device_type SNS_SUFAMI_CART_SLOT;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team