Previous 199869 Revisions Next

r20779 Wednesday 6th February, 2013 at 20:32:33 UTC by Wilbert Pol
Getting rid of DEVICE_IMAGE_START (nw)
[src/emu]diimage.h
[src/emu/imagedev]cartslot.c cartslot.h
[src/mame/drivers]jaguar.c
[src/mame/includes]jaguar.h
[src/mess/drivers]a2600.c a7800.c bbcbc.c gamepock.c gb.c nc.c ngp.c scv.c sms.c svi318.c wswan.c
[src/mess/includes]a7800.h c64_legacy.h gamepock.h gb.h nc.h nes.h sms.h svi318.h wswan.h
[src/mess/machine]a7800.c c64_legacy.c c65.c gb.c nc.c sms.c svi318.c wswan.c

trunk/src/emu/imagedev/cartslot.c
r20778r20779
203203
204204void cartslot_image_device::device_start()
205205{
206   /* if this cartridge has a custom DEVICE_START, use it */
207   if (!m_device_image_start.isnull())
208   {
209      m_device_image_start();
210   }
211206}
212207
213208
trunk/src/emu/imagedev/cartslot.h
r20778r20779
5757   void set_extensions(const char *_extensions) { m_extensions = _extensions; }
5858   void set_interface(const char *_interface) { m_interface = _interface; }
5959   void set_must_be_loaded(bool _must_be_loaded) { m_must_be_loaded = _must_be_loaded; }
60   void set_device_start(device_image_start_delegate _start) { m_device_image_start = _start; }
6160   void set_device_load(device_image_load_delegate _load) { m_device_image_load = _load; }
6261   void set_device_unload(device_image_func_delegate _unload) { m_device_image_unload = _unload; }
6362   void set_partialhash(device_image_partialhash_func _partialhash) { m_device_image_partialhash = _partialhash; }
r20778r20779
7574   const char *                    m_extensions;
7675   const char *                    m_interface;
7776   bool                            m_must_be_loaded;
78   device_image_start_delegate     m_device_image_start;
7977   device_image_load_delegate      m_device_image_load;
8078   device_image_func_delegate      m_device_image_unload;
8179   device_image_partialhash_func   m_device_image_partialhash;
r20778r20779
105103#define MCFG_CARTSLOT_MANDATORY                                         \
106104   static_cast<cartslot_image_device *>(device)->set_must_be_loaded(TRUE);
107105
108#define MCFG_CARTSLOT_START(_class,_start)                              \
109   static_cast<cartslot_image_device *>(device)->set_device_start( DEVICE_IMAGE_START_DELEGATE(_class,_start));
110
111106#define MCFG_CARTSLOT_LOAD(_class,_load)                                \
112107   static_cast<cartslot_image_device *>(device)->set_device_load( DEVICE_IMAGE_LOAD_DELEGATE(_class,_load));
113108
trunk/src/emu/diimage.h
r20778r20779
111111struct software_info;
112112
113113// device image interface function types
114typedef delegate<void ()> device_image_start_delegate;
115114typedef delegate<int (device_image_interface &)> device_image_load_delegate;
116115typedef delegate<void (device_image_interface &)> device_image_func_delegate;
117116// legacy
r20778r20779
137136#define DEVICE_IMAGE_DISPLAY_INFO(name)            void DEVICE_IMAGE_DISPLAY_INFO_NAME(name)(device_image_interface &image)
138137
139138
140#define DEVICE_IMAGE_START_MEMBER_NAME(_name)          device_image_start_##_name
141#define DEVICE_IMAGE_START_NAME(_class,_name)          _class::DEVICE_IMAGE_START_MEMBER_NAME(_name)
142#define DECLARE_DEVICE_IMAGE_START_MEMBER(_name)       void DEVICE_IMAGE_START_MEMBER_NAME(_name)()
143#define DEVICE_IMAGE_START_MEMBER(_class,_name)        void DEVICE_IMAGE_START_NAME(_class,_name)()
144#define DEVICE_IMAGE_START_DELEGATE(_class,_name)      device_image_start_delegate(&DEVICE_IMAGE_START_NAME(_class,_name),#_class "::device_image_start_" #_name,downcast<_class *>(device->owner()))
145
146139#define DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)           device_image_load_##_name
147140#define DEVICE_IMAGE_LOAD_NAME(_class,_name)           _class::DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)
148141#define DECLARE_DEVICE_IMAGE_LOAD_MEMBER(_name)        int DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)(device_image_interface &image)
trunk/src/mess/includes/svi318.h
r20778r20779
5656public:
5757   svi318_state(const machine_config &mconfig, device_type type, const char *tag)
5858      : driver_device(mconfig, type, tag)
59      , m_pcart(NULL)
60      , m_pcart_rom_size(0)
5961      , m_maincpu(*this, "maincpu")
6062      , m_cassette(*this, CASSETTE_TAG)
6163      , m_dac(*this, "dac")
r20778r20779
109111   DECLARE_WRITE8_MEMBER(svi318_ppi_port_c_w);
110112   DECLARE_WRITE_LINE_MEMBER(svi_fdc_intrq_w);
111113   DECLARE_WRITE_LINE_MEMBER(svi_fdc_drq_w);
112   DECLARE_DEVICE_IMAGE_START_MEMBER(svi318_cart);
113114   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(svi318_cart);
114115   DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER(svi318_cart);
115116
trunk/src/mess/includes/a7800.h
r20778r20779
5959   DECLARE_WRITE8_MEMBER(a7800_TIA_w);
6060   DECLARE_READ8_MEMBER(a7800_MARIA_r);
6161   DECLARE_WRITE8_MEMBER(a7800_MARIA_w);
62   void a7800_driver_init(int ispal, int lines);
6263   DECLARE_DRIVER_INIT(a7800_pal);
6364   DECLARE_DRIVER_INIT(a7800_ntsc);
6465   virtual void machine_reset();
r20778r20779
7172   DECLARE_READ8_MEMBER(riot_console_button_r);
7273   DECLARE_WRITE8_MEMBER(riot_button_pullup_w);
7374
74   DECLARE_DEVICE_IMAGE_START_MEMBER( a7800_cart );
7575   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( a7800_cart );
7676};
7777
trunk/src/mess/includes/nes.h
r20778r20779
127127   DECLARE_WRITE8_MEMBER(psg_4017_w);
128128   void nes_banks_restore();
129129   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(nes_cart);
130   DECLARE_DEVICE_IMAGE_START_MEMBER(nes_disk);
131130   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(nes_disk);
132131   DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER(nes_disk);
133132
trunk/src/mess/includes/nc.h
r20778r20779
9595
9696   void nc200_fdc_interrupt(bool state);
9797
98   DECLARE_DEVICE_IMAGE_START_MEMBER( nc_pcmcia_card );
98   DECLARE_DRIVER_INIT( nc );
9999   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( nc_pcmcia_card );
100100   DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( nc_pcmcia_card );
101101
trunk/src/mess/includes/gb.h
r20778r20779
267267   TIMER_CALLBACK_MEMBER(gb_lcd_timer_proc);
268268   TIMER_CALLBACK_MEMBER(gbc_lcd_timer_proc);
269269   DECLARE_WRITE8_MEMBER(gb_timer_callback);
270   DECLARE_DEVICE_IMAGE_START_MEMBER(gb_cart);
270   DECLARE_DRIVER_INIT(gb);
271271   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gb_cart);
272272   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(megaduck_cart);
273273
trunk/src/mess/includes/wswan.h
r20778r20779
144144   TIMER_CALLBACK_MEMBER(wswan_rtc_callback);
145145   TIMER_CALLBACK_MEMBER(wswan_scanline_interrupt);
146146   void wswan_machine_stop();
147   DECLARE_DEVICE_IMAGE_START_MEMBER( wswan_cart );
147   DECLARE_DRIVER_INIT( wswan );
148148   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( wswan_cart );
149149
150150protected:
trunk/src/mess/includes/gamepock.h
r20778r20779
1313{
1414public:
1515   gamepock_state(const machine_config &mconfig, device_type type, const char *tag)
16      : driver_device(mconfig, type, tag) { }
16      : driver_device(mconfig, type, tag)
17   { }
1718
1819   virtual void machine_reset();
1920
r20778r20779
3031   DECLARE_WRITE8_MEMBER( port_b_w );
3132   DECLARE_READ8_MEMBER( port_c_r );
3233   UINT32 screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
33   DECLARE_DEVICE_IMAGE_START_MEMBER(gamepock_cart);
3434   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gamepock_cart);
3535};
3636
trunk/src/mess/includes/sms.h
r20778r20779
209209   DECLARE_WRITE_LINE_MEMBER(sms_pause_callback);
210210   DECLARE_WRITE_LINE_MEMBER(sms_store_int_callback);
211211   void sms_machine_stop();
212   DECLARE_DEVICE_IMAGE_START_MEMBER(sms_cart);
212   void setup_sms_cart();
213213   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(sms_cart);
214214protected:
215215   required_shared_ptr<UINT8> m_mainram;
trunk/src/mess/includes/c64_legacy.h
r20778r20779
8989   UINT8 *m_io_ram_r_ptr;
9090   c64_cart_t m_cart;
9191   int m_nmilevel;
92   DECLARE_DEVICE_IMAGE_START_MEMBER( c64_cart );
92   void c64_legacy_driver_init();
9393   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( c64_cart );
9494   DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( c64_cart );
9595};
trunk/src/mess/drivers/bbcbc.c
r20778r20779
3030   virtual void machine_reset();
3131   DECLARE_WRITE_LINE_MEMBER(tms_interrupt);
3232
33   DECLARE_DEVICE_IMAGE_START_MEMBER( bbcbc_cart );
3433   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( bbcbc_cart );
3534};
3635
r20778r20779
133132};
134133
135134
136DEVICE_IMAGE_START_MEMBER( bbcbc_state, bbcbc_cart )
137{
138   UINT8 *cart = machine().root_device().memregion("maincpu" )->base() + 0x4000;
139
140   memset( cart, 0xFF, 0x8000 );
141}
142
143
144135DEVICE_IMAGE_LOAD_MEMBER( bbcbc_state, bbcbc_cart )
145136{
146137   UINT8 *cart = machine().root_device().memregion("maincpu" )->base() + 0x4000;
r20778r20779
190181   MCFG_CARTSLOT_ADD("cart")
191182   MCFG_CARTSLOT_NOT_MANDATORY
192183   MCFG_CARTSLOT_INTERFACE("bbcbc_cart")
193   MCFG_CARTSLOT_START( bbcbc_state, bbcbc_cart )
194184   MCFG_CARTSLOT_LOAD( bbcbc_state, bbcbc_cart )
195185
196186   /* Software lists */
r20778r20779
199189
200190
201191ROM_START( bbcbc )
202   ROM_REGION( 0x10000, "maincpu", 0 )
192   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
203193   ROM_LOAD("br_4_1.ic3", 0x0000, 0x2000, CRC(7c880d75) SHA1(954db096bd9e8edfef72946637a12f1083841fb0))
204194   ROM_LOAD("br_4_2.ic4", 0x2000, 0x2000, CRC(16a33aef) SHA1(9529f9f792718a3715af2063b91a5fb18f741226))
205195ROM_END
trunk/src/mess/drivers/ngp.c
r20778r20779
128128      , m_t6w28( *this, "t6w28" )
129129      , m_dac_l( *this, "dac_l" )
130130      , m_dac_r( *this, "dac_r" )
131      { }
131   {
132      m_flash_chip[0].present = 0;
133      m_flash_chip[0].state = F_READ;
134      m_flash_chip[0].data = NULL;
132135
136      m_flash_chip[1].present = 0;
137      m_flash_chip[1].state = F_READ;
138      m_flash_chip[1].data = NULL;
139   }
140
133141   virtual void machine_start();
134142   virtual void machine_reset();
135143
r20778r20779
174182   DECLARE_INPUT_CHANGED_MEMBER(power_callback);
175183   TIMER_CALLBACK_MEMBER(ngp_seconds_callback);
176184
177   DECLARE_DEVICE_IMAGE_START_MEMBER( ngp_cart );
178185   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( ngp_cart);
179186   DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( ngp_cart );
180187};
r20778r20779
612619
613620void ngp_state::machine_start()
614621{
622   UINT8 *cart = memregion("cart")->base();
623
624   m_flash_chip[0].data = cart;
625   m_flash_chip[0].org_data[0] = m_flash_chip[0].data[0];
626   m_flash_chip[0].org_data[1] = m_flash_chip[0].data[1];
627   m_flash_chip[0].org_data[2] = m_flash_chip[0].data[2];
628   m_flash_chip[0].org_data[3] = m_flash_chip[0].data[3];
629   m_flash_chip[0].org_data[4] = m_flash_chip[0].data[0x7c000];
630   m_flash_chip[0].org_data[5] = m_flash_chip[0].data[0x7c001];
631   m_flash_chip[0].org_data[6] = m_flash_chip[0].data[0x7c002];
632   m_flash_chip[0].org_data[7] = m_flash_chip[0].data[0x7c003];
633   m_flash_chip[0].org_data[8] = m_flash_chip[0].data[0xfc000];
634   m_flash_chip[0].org_data[9] = m_flash_chip[0].data[0xfc001];
635   m_flash_chip[0].org_data[10] = m_flash_chip[0].data[0xfc002];
636   m_flash_chip[0].org_data[11] = m_flash_chip[0].data[0xfc003];
637   m_flash_chip[0].org_data[12] = m_flash_chip[0].data[0x1fc000];
638   m_flash_chip[0].org_data[13] = m_flash_chip[0].data[0x1fc001];
639   m_flash_chip[0].org_data[14] = m_flash_chip[0].data[0x1fc002];
640   m_flash_chip[0].org_data[15] = m_flash_chip[0].data[0x1fc003];
641
642   m_flash_chip[1].data = cart + 0x200000;
643   m_flash_chip[1].org_data[0] = m_flash_chip[1].data[0];
644   m_flash_chip[1].org_data[1] = m_flash_chip[1].data[1];
645   m_flash_chip[1].org_data[2] = m_flash_chip[1].data[2];
646   m_flash_chip[1].org_data[3] = m_flash_chip[1].data[3];
647   m_flash_chip[1].org_data[4] = m_flash_chip[1].data[0x7c000];
648   m_flash_chip[1].org_data[5] = m_flash_chip[1].data[0x7c001];
649   m_flash_chip[1].org_data[6] = m_flash_chip[1].data[0x7c002];
650   m_flash_chip[1].org_data[7] = m_flash_chip[1].data[0x7c003];
651   m_flash_chip[1].org_data[8] = m_flash_chip[1].data[0xfc000];
652   m_flash_chip[1].org_data[9] = m_flash_chip[1].data[0xfc001];
653   m_flash_chip[1].org_data[10] = m_flash_chip[1].data[0xfc002];
654   m_flash_chip[1].org_data[11] = m_flash_chip[1].data[0xfc003];
655   m_flash_chip[1].org_data[12] = m_flash_chip[1].data[0x1fc000];
656   m_flash_chip[1].org_data[13] = m_flash_chip[1].data[0x1fc001];
657   m_flash_chip[1].org_data[14] = m_flash_chip[1].data[0x1fc002];
658   m_flash_chip[1].org_data[15] = m_flash_chip[1].data[0x1fc003];
659
615660   m_seconds_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ngp_state::ngp_seconds_callback),this));
616661   m_seconds_timer->adjust( attotime::from_seconds(1), 0, attotime::from_seconds(1) );
617662}
r20778r20779
634679}
635680
636681
637DEVICE_IMAGE_START_MEMBER( ngp_state, ngp_cart )
638{
639   UINT8 *cart = memregion("cart")->base();
640
641   m_flash_chip[0].present = 0;
642   m_flash_chip[0].state = F_READ;
643   m_flash_chip[0].data = cart;
644
645   m_flash_chip[1].present = 0;
646   m_flash_chip[1].state = F_READ;
647   m_flash_chip[1].data = cart + 0x200000;
648}
649
650
651682DEVICE_IMAGE_LOAD_MEMBER( ngp_state, ngp_cart )
652683{
684   UINT8 *cart = memregion("cart")->base();
653685   UINT32 filesize;
654686
655687   if (image.software_entry() == NULL)
r20778r20779
662694         return IMAGE_INIT_FAIL;
663695      }
664696
665      if (image.fread( machine().root_device().memregion("cart")->base(), filesize) != filesize)
697      if (image.fread( cart, filesize) != filesize)
666698      {
667699         image.seterror(IMAGE_ERROR_UNSPECIFIED, "Error loading file");
668700         return IMAGE_INIT_FAIL;
r20778r20779
671703   else
672704   {
673705      filesize = image.get_software_region_length("rom");
674      memcpy(machine().root_device().memregion("cart")->base(), image.get_software_region("rom"), filesize);
706      memcpy(cart, image.get_software_region("rom"), filesize);
675707   }
676708
677709   //printf("%2x%2x - %x - %x\n", (unsigned int) image.device().machine().root_device().memregion("cart")->u8(0x20), (unsigned int) image.device().machine().root_device().memregion("cart")->u8(0x21),
r20778r20779
698730      break;
699731   }
700732
701   m_flash_chip[0].org_data[0] = m_flash_chip[0].data[0];
702   m_flash_chip[0].org_data[1] = m_flash_chip[0].data[1];
703   m_flash_chip[0].org_data[2] = m_flash_chip[0].data[2];
704   m_flash_chip[0].org_data[3] = m_flash_chip[0].data[3];
705   m_flash_chip[0].org_data[4] = m_flash_chip[0].data[0x7c000];
706   m_flash_chip[0].org_data[5] = m_flash_chip[0].data[0x7c001];
707   m_flash_chip[0].org_data[6] = m_flash_chip[0].data[0x7c002];
708   m_flash_chip[0].org_data[7] = m_flash_chip[0].data[0x7c003];
709   m_flash_chip[0].org_data[8] = m_flash_chip[0].data[0xfc000];
710   m_flash_chip[0].org_data[9] = m_flash_chip[0].data[0xfc001];
711   m_flash_chip[0].org_data[10] = m_flash_chip[0].data[0xfc002];
712   m_flash_chip[0].org_data[11] = m_flash_chip[0].data[0xfc003];
713   m_flash_chip[0].org_data[12] = m_flash_chip[0].data[0x1fc000];
714   m_flash_chip[0].org_data[13] = m_flash_chip[0].data[0x1fc001];
715   m_flash_chip[0].org_data[14] = m_flash_chip[0].data[0x1fc002];
716   m_flash_chip[0].org_data[15] = m_flash_chip[0].data[0x1fc003];
717
718   m_flash_chip[1].org_data[0] = m_flash_chip[1].data[0];
719   m_flash_chip[1].org_data[1] = m_flash_chip[1].data[1];
720   m_flash_chip[1].org_data[2] = m_flash_chip[1].data[2];
721   m_flash_chip[1].org_data[3] = m_flash_chip[1].data[3];
722   m_flash_chip[1].org_data[4] = m_flash_chip[1].data[0x7c000];
723   m_flash_chip[1].org_data[5] = m_flash_chip[1].data[0x7c001];
724   m_flash_chip[1].org_data[6] = m_flash_chip[1].data[0x7c002];
725   m_flash_chip[1].org_data[7] = m_flash_chip[1].data[0x7c003];
726   m_flash_chip[1].org_data[8] = m_flash_chip[1].data[0xfc000];
727   m_flash_chip[1].org_data[9] = m_flash_chip[1].data[0xfc001];
728   m_flash_chip[1].org_data[10] = m_flash_chip[1].data[0xfc002];
729   m_flash_chip[1].org_data[11] = m_flash_chip[1].data[0xfc003];
730   m_flash_chip[1].org_data[12] = m_flash_chip[1].data[0x1fc000];
731   m_flash_chip[1].org_data[13] = m_flash_chip[1].data[0x1fc001];
732   m_flash_chip[1].org_data[14] = m_flash_chip[1].data[0x1fc002];
733   m_flash_chip[1].org_data[15] = m_flash_chip[1].data[0x1fc003];
734
735733   m_flash_chip[0].present = 1;
736734   m_flash_chip[0].state = F_READ;
737735
r20778r20779
805803   MCFG_CARTSLOT_ADD("cart")
806804   MCFG_CARTSLOT_EXTENSION_LIST("bin,ngp,npc,ngc")
807805   MCFG_CARTSLOT_NOT_MANDATORY
808   MCFG_CARTSLOT_START(ngp_state, ngp_cart)
809806   MCFG_CARTSLOT_LOAD(ngp_state, ngp_cart)
810807   MCFG_CARTSLOT_INTERFACE("ngp_cart")
811808   MCFG_CARTSLOT_UNLOAD(ngp_state, ngp_cart)
r20778r20779
826823   MCFG_CARTSLOT_ADD("cart")
827824   MCFG_CARTSLOT_EXTENSION_LIST("bin,ngp,npc,ngc")
828825   MCFG_CARTSLOT_NOT_MANDATORY
829   MCFG_CARTSLOT_START(ngp_state,ngp_cart)
830826   MCFG_CARTSLOT_LOAD(ngp_state,ngp_cart)
831827   MCFG_CARTSLOT_INTERFACE("ngp_cart")
832828   MCFG_CARTSLOT_UNLOAD(ngp_state,ngp_cart)
trunk/src/mess/drivers/nc.c
r20778r20779
16091609   MCFG_CARTSLOT_ADD("cart")
16101610   MCFG_CARTSLOT_EXTENSION_LIST("crd,card")
16111611   MCFG_CARTSLOT_NOT_MANDATORY
1612   MCFG_CARTSLOT_START(nc_state,nc_pcmcia_card)
16131612   MCFG_CARTSLOT_LOAD(nc_state,nc_pcmcia_card)
16141613   MCFG_CARTSLOT_UNLOAD(nc_state,nc_pcmcia_card)
16151614
r20778r20779
17031702ROM_END
17041703
17051704/*    YEAR  NAME    PARENT  COMPAT  MACHINE INPUT   INIT    COMPANY         FULLNAME    FLAGS */
1706COMP( 1992, nc100,  0,      0,      nc100,  nc100, driver_device,  0,      "Amstrad plc",  "NC100",    0 )
1707COMP( 1992, nc150,  nc100,  0,      nc100,  nc100, driver_device,  0,      "Amstrad plc",  "NC150",    0 )
1708COMP( 1993, nc200,  0,      0,      nc200,  nc200, driver_device,  0,      "Amstrad plc",  "NC200",    GAME_NOT_WORKING ) // boot hangs while checking the MC146818 UIP (update in progress) bit
1705COMP( 1992, nc100,  0,      0,      nc100,  nc100, nc_state,  nc,      "Amstrad plc",  "NC100",    0 )
1706COMP( 1992, nc150,  nc100,  0,      nc100,  nc100, nc_state,  nc,      "Amstrad plc",  "NC150",    0 )
1707COMP( 1993, nc200,  0,      0,      nc200,  nc200, nc_state,  nc,      "Amstrad plc",  "NC200",    GAME_NOT_WORKING ) // boot hangs while checking the MC146818 UIP (update in progress) bit
trunk/src/mess/drivers/svi318.c
r20778r20779
299299   MCFG_CARTSLOT_EXTENSION_LIST("rom")
300300   MCFG_CARTSLOT_NOT_MANDATORY
301301   MCFG_CARTSLOT_INTERFACE("svi318_cart")
302   MCFG_CARTSLOT_START(svi318_state,svi318_cart)
303302   MCFG_CARTSLOT_LOAD(svi318_state,svi318_cart)
304303   MCFG_CARTSLOT_UNLOAD(svi318_state,svi318_cart)
305304
trunk/src/mess/drivers/sms.c
r20778r20779
402402   MCFG_CARTSLOT_EXTENSION_LIST("sms,bin")
403403   MCFG_CARTSLOT_NOT_MANDATORY
404404   MCFG_CARTSLOT_INTERFACE("sms_cart")
405   MCFG_CARTSLOT_START(sms_state,sms_cart)
406405   MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
407406
408407   MCFG_SOFTWARE_LIST_ADD("cart_list","sms")
r20778r20779
413412   MCFG_CARTSLOT_EXTENSION_LIST("gg,bin")
414413   MCFG_CARTSLOT_MANDATORY
415414   MCFG_CARTSLOT_INTERFACE("gamegear_cart")
416   MCFG_CARTSLOT_START(sms_state,sms_cart)
417415   MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
418416
419417   MCFG_SOFTWARE_LIST_ADD("cart_list","gamegear")
r20778r20779
495493   MCFG_CARTSLOT_EXTENSION_LIST("sms,bin") \
496494   MCFG_CARTSLOT_NOT_MANDATORY \
497495   MCFG_CARTSLOT_INTERFACE("sms_cart") \
498   MCFG_CARTSLOT_START(sms_state,sms_cart) \
499496   MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
500497
501498static MACHINE_CONFIG_DERIVED( sms_sdisp, sms2_ntsc )
r20778r20779
512509   MCFG_CARTSLOT_EXTENSION_LIST("sms,bin")
513510   MCFG_CARTSLOT_MANDATORY
514511   MCFG_CARTSLOT_INTERFACE("sms_cart")
515   MCFG_CARTSLOT_START(sms_state,sms_cart)
516512   MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
517513
518514   MCFG_SMSSDISP_CARTSLOT_ADD("cart2")
r20778r20779
617613   MCFG_CARTSLOT_MODIFY("cart1")
618614   MCFG_CARTSLOT_EXTENSION_LIST("sms,bin,sg")
619615   MCFG_CARTSLOT_MANDATORY
620   MCFG_CARTSLOT_START(sms_state,sms_cart)
621616   MCFG_CARTSLOT_LOAD(sms_state,sms_cart)
622617MACHINE_CONFIG_END
623618
trunk/src/mess/drivers/a2600.c
r20778r20779
5151   a2600_state(const machine_config &mconfig, device_type type, const char *tag)
5252      : driver_device(mconfig, type, tag)
5353      , m_riot_ram(*this, "riot_ram")
54      , m_banking_mode(0xff)
5455      , m_joy1(*this, CONTROL1_TAG)
5556      , m_joy2(*this, CONTROL2_TAG)
5657      { }
r20778r20779
128129   DECLARE_WRITE8_MEMBER(switch_B_w);
129130   DECLARE_WRITE_LINE_MEMBER(irq_callback);
130131   DECLARE_READ8_MEMBER(riot_input_port_8_r);
131   DECLARE_DEVICE_IMAGE_START_MEMBER( a2600_cart );
132132   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( a2600_cart );
133133
134134protected:
r20778r20779
544544}
545545
546546
547DEVICE_IMAGE_START_MEMBER( a2600_state, a2600_cart )
548{
549   m_banking_mode = 0xff;
550}
551
552
553547DEVICE_IMAGE_LOAD_MEMBER( a2600_state, a2600_cart )
554548{
555549   UINT8 *cart = memregion("user1")->base();
r20778r20779
19211915   MCFG_CARTSLOT_ADD("cart")
19221916   MCFG_CARTSLOT_EXTENSION_LIST("bin,a26")
19231917   MCFG_CARTSLOT_MANDATORY
1924   MCFG_CARTSLOT_START(a2600_state,a2600_cart)
19251918   MCFG_CARTSLOT_LOAD(a2600_state,a2600_cart)
19261919   MCFG_CARTSLOT_INTERFACE("a2600_cart")
19271920
trunk/src/mess/drivers/gb.c
r20778r20779
590590   MCFG_CARTSLOT_EXTENSION_LIST("gb,gmb,cgb,gbc,sgb,bin")
591591   MCFG_CARTSLOT_NOT_MANDATORY
592592   MCFG_CARTSLOT_INTERFACE("gameboy_cart")
593   MCFG_CARTSLOT_START(gb_state,gb_cart)
594593   MCFG_CARTSLOT_LOAD(gb_state,gb_cart)
595594   MCFG_SOFTWARE_LIST_ADD("cart_list","gameboy")
596595   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gbc_list","gbcolor")
r20778r20779
648647   MCFG_CARTSLOT_EXTENSION_LIST("gb,gmb,cgb,gbc,sgb,bin")
649648   MCFG_CARTSLOT_NOT_MANDATORY
650649   MCFG_CARTSLOT_INTERFACE("gameboy_cart")
651   MCFG_CARTSLOT_START(gb_state,gb_cart)
652650   MCFG_CARTSLOT_LOAD(gb_state,gb_cart)
653651   MCFG_SOFTWARE_LIST_ADD("cart_list","gbcolor")
654652   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gb_list","gameboy")
r20778r20779
731729ROM_END
732730
733731/*    YEAR  NAME      PARENT   COMPAT   MACHINE   INPUT    INIT  COMPANY     FULLNAME */
734CONS( 1990, gameboy,  0,       0,       gameboy,  gameboy, driver_device, 0,    "Nintendo", "Game Boy", 0)
735CONS( 1994, supergb,  gameboy, 0,       supergb,  gameboy, driver_device, 0,    "Nintendo", "Super Game Boy", 0)
736CONS( 1996, gbpocket, gameboy, 0,       gbpocket, gameboy, driver_device, 0,    "Nintendo", "Game Boy Pocket", 0)
737CONS( 1997, gblight,  gameboy, 0,       gbpocket, gameboy, driver_device, 0,    "Nintendo", "Game Boy Light", 0)
738CONS( 1998, gbcolor,  gameboy, 0,       gbcolor,  gameboy, driver_device, 0,    "Nintendo", "Game Boy Color", GAME_IMPERFECT_GRAPHICS)
732CONS( 1990, gameboy,  0,       0,       gameboy,  gameboy, gb_state, gb,    "Nintendo", "Game Boy", 0)
733CONS( 1994, supergb,  gameboy, 0,       supergb,  gameboy, gb_state, gb,    "Nintendo", "Super Game Boy", 0)
734CONS( 1996, gbpocket, gameboy, 0,       gbpocket, gameboy, gb_state, gb,    "Nintendo", "Game Boy Pocket", 0)
735CONS( 1997, gblight,  gameboy, 0,       gbpocket, gameboy, gb_state, gb,    "Nintendo", "Game Boy Light", 0)
736CONS( 1998, gbcolor,  gameboy, 0,       gbcolor,  gameboy, gb_state, gb,    "Nintendo", "Game Boy Color", GAME_IMPERFECT_GRAPHICS)
739737
740738/* Sound is not 100% yet, it generates some sounds which could be ok. Since we're lacking a real
741739   system there's no way to verify. Same goes for the colors of the LCD. We are no using the default
742740   Game Boy green colors */
743CONS( 1993, megaduck, 0,       0,       megaduck, gameboy, driver_device, 0,    "Creatronic/Videojet/Timlex/Cougar",  "MegaDuck/Cougar Boy" , 0)
741CONS( 1993, megaduck, 0,       0,       megaduck, gameboy, gb_state, gb,    "Creatronic/Videojet/Timlex/Cougar",  "MegaDuck/Cougar Boy" , 0)
trunk/src/mess/drivers/a7800.c
r20778r20779
302302   MCFG_CARTSLOT_ADD("cart")
303303   MCFG_CARTSLOT_EXTENSION_LIST("bin,a78")
304304   MCFG_CARTSLOT_NOT_MANDATORY
305   MCFG_CARTSLOT_START(a7800_state,a7800_cart)
306305   MCFG_CARTSLOT_LOAD(a7800_state,a7800_cart)
307306   MCFG_CARTSLOT_PARTIALHASH(a7800_partialhash)
308307   MCFG_CARTSLOT_INTERFACE("a7800_cart")
trunk/src/mess/drivers/gamepock.c
r20778r20779
1212   ADDRESS_MAP_UNMAP_HIGH
1313   AM_RANGE(0x0000,0x0fff) AM_ROM
1414   AM_RANGE(0x1000,0x3fff) AM_NOP
15   AM_RANGE(0x4000,0xBfff) AM_ROMBANK("bank1")
15   AM_RANGE(0x4000,0xBfff) AM_ROM AM_REGION("user1", 0)
1616   AM_RANGE(0xC000,0xC7ff) AM_MIRROR(0x0800) AM_RAM
1717   AM_RANGE(0xff80,0xffff) AM_RAM              /* 128 bytes microcontroller RAM */
1818ADDRESS_MAP_END
r20778r20779
4545static const UPD7810_CONFIG gamepock_cpu_config = { TYPE_78C06, gamepock_io_callback };
4646
4747
48DEVICE_IMAGE_START_MEMBER(gamepock_state,gamepock_cart)
49{
50   membank( "bank1" )->set_base( memregion("user1" )->base() );
51}
52
53
5448DEVICE_IMAGE_LOAD_MEMBER(gamepock_state,gamepock_cart) {
5549   UINT8 *cart = memregion("user1" )->base();
5650
r20778r20779
6458   }
6559   else
6660   {
67      cart = image.get_software_region( "rom" );
61      memcpy( cart, image.get_software_region( "rom" ), image.get_software_region_length("rom") );
6862   }
6963
70   membank( "bank1" )->set_base( cart );
71
7264   return IMAGE_INIT_PASS;
7365}
7466
r20778r20779
10092   MCFG_CARTSLOT_INTERFACE("gamepock_cart")
10193   MCFG_CARTSLOT_EXTENSION_LIST("bin")
10294   MCFG_CARTSLOT_NOT_MANDATORY
103   MCFG_CARTSLOT_START(gamepock_state,gamepock_cart)
10495   MCFG_CARTSLOT_LOAD(gamepock_state,gamepock_cart)
10596
10697   /* Software lists */
trunk/src/mess/drivers/wswan.c
r20778r20779
155155   MCFG_CARTSLOT_EXTENSION_LIST("ws,wsc,bin")
156156   MCFG_CARTSLOT_MANDATORY
157157   MCFG_CARTSLOT_INTERFACE("wswan_cart")
158   MCFG_CARTSLOT_START(wswan_state,wswan_cart)
159158   MCFG_CARTSLOT_LOAD(wswan_state,wswan_cart)
160159
161160   /* software lists */
r20778r20779
195194ROM_END
196195
197196/*     YEAR  NAME     PARENT  COMPAT  MACHINE  INPUT  INIT COMPANY   FULLNAME*/
198CONS( 1999, wswan,   0,      0,      wswan,   wswan, driver_device, 0,    "Bandai", "WonderSwan",       GAME_IMPERFECT_SOUND )
199CONS( 2000, wscolor, wswan,  0,      wscolor, wswan, driver_device, 0,    "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND )
197CONS( 1999, wswan,   0,      0,      wswan,   wswan, wswan_state, wswan,    "Bandai", "WonderSwan",       GAME_IMPERFECT_SOUND )
198CONS( 2000, wscolor, wswan,  0,      wscolor, wswan, wswan_state, wswan,    "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND )
trunk/src/mess/drivers/scv.c
r20778r20779
1717   scv_state(const machine_config &mconfig, device_type type, const char *tag)
1818      : driver_device(mconfig, type, tag)
1919      , m_videoram(*this,"videoram")
20      , m_cart_rom_size(0)
21      , m_cart_ram(NULL)
22      , m_cart_ram_size(0)
2023      , m_maincpu(*this, "maincpu")
2124      , m_upd1771c(*this, "upd1771c")
2225      , m_pa0(*this, "PA0")
r20778r20779
5760   virtual void palette_init();
5861   UINT32 screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5962   TIMER_CALLBACK_MEMBER(scv_vb_callback);
60   DECLARE_DEVICE_IMAGE_START_MEMBER( scv_cart );
6163   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( scv_cart );
6264
6365protected:
r20778r20779
360362}
361363
362364
363DEVICE_IMAGE_START_MEMBER( scv_state, scv_cart )
364{
365   m_cart_rom = memregion( "cart" )->base();
366   m_cart_rom_size = 0;
367   m_cart_ram = NULL;
368   m_cart_ram_size = 0;
369}
370
371
372365DEVICE_IMAGE_LOAD_MEMBER( scv_state, scv_cart )
373366{
367   UINT8 *cart = memregion( "cart" )->base();
368
374369   if ( image.software_entry() == NULL )
375370   {
376      UINT8 *cart = image.device().machine().root_device().memregion( "cart" )->base();
377371      int size = image.length();
378372
379373      if ( size > memregion( "cart" )->bytes() )
r20778r20779
388382         return IMAGE_INIT_FAIL;
389383      }
390384
391      m_cart_rom = cart;
392385      m_cart_rom_size = size;
393      m_cart_ram = NULL;
394      m_cart_ram_size = 0;
395386   }
396387   else
397388   {
398      m_cart_rom = image.get_software_region( "rom" );
399389      m_cart_rom_size = image.get_software_region_length( "rom" );
400      m_cart_ram = image.get_software_region( "ram" );
390      memcpy( cart, image.get_software_region( "rom" ), m_cart_rom_size );
401391      m_cart_ram_size = image.get_software_region_length( "ram" );
392      if ( m_cart_ram_size > 0 )
393      {
394         m_cart_ram = auto_alloc_array_clear( machine(), UINT8, m_cart_ram_size );
395      }
402396   }
403397
404398   return IMAGE_INIT_PASS;
r20778r20779
799793
800794void scv_state::machine_start()
801795{
796   m_cart_rom = memregion( "cart" )->base();
802797   m_vb_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(scv_state::scv_vb_callback),this));
803798}
804799
r20778r20779
859854   MCFG_CARTSLOT_EXTENSION_LIST( "bin" )
860855   MCFG_CARTSLOT_NOT_MANDATORY
861856   MCFG_CARTSLOT_INTERFACE("scv_cart")
862   MCFG_CARTSLOT_START( scv_state, scv_cart )
863857   MCFG_CARTSLOT_LOAD( scv_state, scv_cart )
864858
865859   /* Software lists */
trunk/src/mess/machine/c64_legacy.c
r20778r20779
519519}
520520
521521
522DEVICE_IMAGE_START_MEMBER( legacy_c64_state, c64_cart )
522void legacy_c64_state::c64_legacy_driver_init()
523523{
524524   /* In the first slot we can load a .crt file. In this case we want
525525       to use game & exrom values from the header, not the default ones. */
r20778r20779
11821182   MCFG_CARTSLOT_EXTENSION_LIST("crt,80")
11831183   MCFG_CARTSLOT_NOT_MANDATORY
11841184   MCFG_CARTSLOT_INTERFACE("c64_cart")
1185   MCFG_CARTSLOT_START(legacy_c64_state,c64_cart)
11861185   MCFG_CARTSLOT_LOAD(legacy_c64_state,c64_cart)
11871186   MCFG_CARTSLOT_UNLOAD(legacy_c64_state,c64_cart)
11881187
11891188   MCFG_CARTSLOT_ADD("cart2")
11901189   MCFG_CARTSLOT_EXTENSION_LIST("crt,80")
11911190   MCFG_CARTSLOT_NOT_MANDATORY
1192   MCFG_CARTSLOT_START(legacy_c64_state,c64_cart)
11931191   MCFG_CARTSLOT_LOAD(legacy_c64_state,c64_cart)
11941192   MCFG_CARTSLOT_UNLOAD(legacy_c64_state,c64_cart)
11951193
trunk/src/mess/machine/svi318.c
r20778r20779
6262
6363/* Cartridge */
6464
65static int svi318_verify_cart (UINT8 magic[2])
66{
67   /* read the first two bytes */
68   if ( (magic[0] == 0xf3) && (magic[1] == 0x31) )
69      return IMAGE_VERIFY_PASS;
70   else
71      return IMAGE_VERIFY_FAIL;
72}
73
74DEVICE_IMAGE_START_MEMBER( svi318_state, svi318_cart )
75{
76   m_pcart = NULL;
77   m_pcart_rom_size = 0;
78}
79
8065DEVICE_IMAGE_LOAD_MEMBER( svi318_state, svi318_cart )
8166{
82   svi318_state *state = image.device().machine().driver_data<svi318_state>();
83   UINT8 *p = state->memregion("user1")->base();
67   UINT8 *p = memregion("user1")->base();
8468   UINT32 size;
8569
8670   if (image.software_entry() == NULL)
r20778r20779
10084      }
10185   }
10286   else
87   {
10388      memcpy(p, image.get_software_region("rom"), size);
89   }
10490
105   if (svi318_verify_cart(p) == IMAGE_VERIFY_FAIL)
91   if ( p[0] != 0xf3 || p[1] != 0x31 )
92   {
10693      return IMAGE_INIT_FAIL;
94   }
10795
108   state->m_pcart = p;
109   state->m_pcart_rom_size = size;
96   m_pcart = p;
97   m_pcart_rom_size = size;
11098
11199   return IMAGE_INIT_PASS;
112100}
113101
102
114103DEVICE_IMAGE_UNLOAD_MEMBER( svi318_state, svi318_cart )
115104{
116   svi318_state *state = image.device().machine().driver_data<svi318_state>();
117   state->m_pcart = NULL;
118   state->m_pcart_rom_size = 0;
105   m_pcart = NULL;
106   m_pcart_rom_size = 0;
119107}
120108
109
121110/* PPI */
122111
123112/*
trunk/src/mess/machine/c65.c
r20778r20779
994994DRIVER_INIT_MEMBER(c65_state,c65)
995995{
996996   m_dma.version = 2;
997   c64_legacy_driver_init();
997998   c65_common_driver_init(machine());
998999}
9991000
10001001DRIVER_INIT_MEMBER(c65_state,c65pal)
10011002{
10021003   m_dma.version = 1;
1004   c64_legacy_driver_init();
10031005   c65_common_driver_init(machine());
10041006   m_pal = 1;
10051007}
trunk/src/mess/machine/a7800.c
r20778r20779
6868    DRIVER INIT
6969***************************************************************************/
7070
71static void a7800_driver_init(running_machine &machine, int ispal, int lines)
71void a7800_state::a7800_driver_init(int ispal, int lines)
7272{
73   a7800_state *state = machine.driver_data<a7800_state>();
74   address_space& space = machine.device("maincpu")->memory().space(AS_PROGRAM);
75   state->m_ROM = state->memregion("maincpu")->base();
76   state->m_ispal = ispal;
77   state->m_lines = lines;
78   state->m_p1_one_button = 1;
79   state->m_p2_one_button = 1;
73   address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
74   m_ROM = memregion("maincpu")->base();
75   m_ispal = ispal;
76   m_lines = lines;
77   m_p1_one_button = 1;
78   m_p2_one_button = 1;
8079
8180   /* standard banks */
82   state->membank("bank5")->set_base(&state->m_ROM[0x2040]);       /* RAM0 */
83   state->membank("bank6")->set_base(&state->m_ROM[0x2140]);       /* RAM1 */
84   state->membank("bank7")->set_base(&state->m_ROM[0x2000]);       /* MAINRAM */
81   membank("bank5")->set_base(&m_ROM[0x2040]);       /* RAM0 */
82   membank("bank6")->set_base(&m_ROM[0x2140]);       /* RAM1 */
83   membank("bank7")->set_base(&m_ROM[0x2000]);       /* MAINRAM */
8584
8685   /* Brutal hack put in as a consequence of new memory system; fix this */
8786   space.install_readwrite_bank(0x0480, 0x04FF,"bank10");
88   state->membank("bank10")->set_base(state->m_ROM + 0x0480);
87   membank("bank10")->set_base(m_ROM + 0x0480);
8988   space.install_readwrite_bank(0x1800, 0x27FF, "bank11");
90   state->membank("bank11")->set_base(state->m_ROM + 0x1800);
89   membank("bank11")->set_base(m_ROM + 0x1800);
90
91   m_bios_bkup = NULL;
92   m_cart_bkup = NULL;
93
94   /* Allocate memory for BIOS bank switching */
95   m_bios_bkup = auto_alloc_array_clear(machine(), UINT8, 0x4000);
96   m_cart_bkup = auto_alloc_array(machine(), UINT8, 0x4000);
97
98   /* save the BIOS so we can switch it in and out */
99   memcpy( m_bios_bkup, m_ROM + 0xC000, 0x4000 );
100
101   /* Initialize cart area to "no data" */
102   memset( m_cart_bkup, 0xFF, 0x4000 );
103
104   /* defaults for PAL bios without cart */
105   m_cart_type = 0;
106   m_stick_type = 1;
91107}
92108
93109
94110DRIVER_INIT_MEMBER(a7800_state,a7800_ntsc)
95111{
96   a7800_driver_init(machine(), FALSE, 262);
112   a7800_driver_init(FALSE, 262);
97113}
98114
99115
100116DRIVER_INIT_MEMBER(a7800_state,a7800_pal)
101117{
102   a7800_driver_init(machine(), TRUE, 312);
118   a7800_driver_init(TRUE, 312);
103119}
104120
105121
r20778r20779
191207}
192208
193209
194DEVICE_IMAGE_START_MEMBER( a7800_state, a7800_cart )
195{
196   UINT8 *memory = memregion("maincpu")->base();
197
198   m_bios_bkup = NULL;
199   m_cart_bkup = NULL;
200
201   /* Allocate memory for BIOS bank switching */
202   m_bios_bkup = auto_alloc_array_clear(machine(), UINT8, 0x4000);
203   m_cart_bkup = auto_alloc_array(machine(), UINT8, 0x4000);
204
205   /* save the BIOS so we can switch it in and out */
206   memcpy( m_bios_bkup, memory + 0xC000, 0x4000 );
207
208   /* Initialize cart area to "no data" */
209   memset( m_cart_bkup, 0xFF, 0x4000 );
210
211   /* defaults for PAL bios without cart */
212   m_cart_type = 0;
213   m_stick_type = 1;
214}
215
216210struct a7800_pcb
217211{
218212   const char *pcb_name;
trunk/src/mess/machine/nc.c
r20778r20779
9090}
9191
9292
93DEVICE_IMAGE_START_MEMBER( nc_state, nc_pcmcia_card )
93DRIVER_INIT_MEMBER( nc_state, nc )
9494{
9595   /* card not present */
9696   nc_set_card_present_state(machine(), 0);
trunk/src/mess/machine/wswan.c
r20778r20779
13291329   return wswan_romsize_str[ ROM_UNKNOWN ];
13301330}
13311331
1332DEVICE_IMAGE_START_MEMBER(wswan_state,wswan_cart)
1332
1333DRIVER_INIT_MEMBER(wswan_state, wswan)
13331334{
13341335   /* Initialize EEPROM structure */
13351336   memset( &m_eeprom, 0, sizeof( m_eeprom ) );
r20778r20779
13491350   m_rtc.setting = 0xFF;
13501351}
13511352
1353
13521354DEVICE_IMAGE_LOAD_MEMBER(wswan_state,wswan_cart)
13531355{
13541356   UINT32 ii, size;
trunk/src/mess/machine/sms.c
r20778r20779
15541554}
15551555
15561556
1557DEVICE_IMAGE_START_MEMBER( sms_state, sms_cart )
1557void sms_state::setup_sms_cart()
15581558{
15591559   int i;
15601560
r20778r20779
21052105{
21062106   m_is_region_japan = 1;
21072107   m_has_fm = 1;
2108   setup_sms_cart();
21082109}
21092110
21102111
21112112DRIVER_INIT_MEMBER(sms_state,sms1)
21122113{
21132114   m_has_bios_full = 1;
2115   setup_sms_cart();
21142116}
21152117
21162118
r20778r20779
21192121   m_is_region_japan = 1;
21202122   m_has_bios_2000 = 1;
21212123   m_has_fm = 1;
2124   setup_sms_cart();
21222125}
21232126
21242127
r20778r20779
21272130   m_is_region_japan = 1;
21282131   m_has_bios_full = 1;
21292132   m_has_fm = 1;
2133   setup_sms_cart();
21302134}
21312135
21322136
21332137DRIVER_INIT_MEMBER(sms_state,smssdisp)
21342138{
2139   setup_sms_cart();
21352140}
21362141
21372142
r20778r20779
21392144{
21402145   m_is_gamegear = 1;
21412146   m_has_bios_0400 = 1;
2147   setup_sms_cart();
21422148}
21432149
21442150
r20778r20779
21472153   m_is_region_japan = 1;
21482154   m_is_gamegear = 1;
21492155   m_has_bios_0400 = 1;
2156   setup_sms_cart();
21502157}
21512158
21522159
trunk/src/mess/machine/gb.c
r20778r20779
14961496   }
14971497}
14981498
1499DEVICE_IMAGE_START_MEMBER(gb_state,gb_cart)
1499DRIVER_INIT_MEMBER(gb_state, gb)
15001500{
15011501   int I;
15021502
trunk/src/mame/includes/jaguar.h
r20778r20779
215215   void cart_start();
216216   int cart_load(device_image_interface &image);
217217   IRQ_CALLBACK_MEMBER(jaguar_irq_callback);
218   DECLARE_DEVICE_IMAGE_START_MEMBER( jaguar_cart );
219218   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( jaguar_cart );
220219protected:
221220   // timer IDs
trunk/src/mame/drivers/jaguar.c
r20778r20779
16411641   MCFG_CARTSLOT_ADD("cart")
16421642   MCFG_CARTSLOT_EXTENSION_LIST("j64,rom")
16431643   MCFG_CARTSLOT_INTERFACE("jaguar_cart")
1644   MCFG_CARTSLOT_START(jaguar_state,jaguar_cart)
16451644   MCFG_CARTSLOT_LOAD(jaguar_state,jaguar_cart)
16461645
16471646   /* software lists */
r20778r20779
16811680{
16821681   m_hacks_enabled = false;
16831682   save_item(NAME(m_joystick_data));
1684   m_using_cart = false;
1683   cart_start();
16851684
16861685   for (int i=0;i<0x20000/4;i++) // the cd bios is bigger.. check
16871686   {
r20778r20779
17671766   return IMAGE_INIT_PASS;
17681767}
17691768
1770DEVICE_IMAGE_START_MEMBER( jaguar_state, jaguar_cart )
1771{
1772   cart_start();
1773}
1774
17751769void jaguar_state::cart_start()
17761770{
17771771   /* Initialize for no cartridge present */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team