Previous 199869 Revisions Next

r32245 Sunday 21st September, 2014 at 07:43:38 UTC by Fabio Priuli
added 32bit rom accesses to generic slot and converted pockstat and
casloopy to use the slot code. nw.
[src/emu/bus/generic]rom.c rom.h slot.c slot.h
[src/mess/drivers]casloopy.c pockstat.c

trunk/src/emu/bus/generic/slot.h
r32244r32245
1818   // reading and writing
1919   virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; }
2020   virtual DECLARE_READ16_MEMBER(read16_rom) { return 0xffff; }
21   virtual DECLARE_READ32_MEMBER(read32_rom) { return 0xffffffff; }
2122
2223   virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
2324   virtual DECLARE_WRITE8_MEMBER(write_ram) {};
r32244r32245
4142enum
4243{
4344   GENERIC_ROM8_WIDTH = 1,
44   GENERIC_ROM16_WIDTH
45   GENERIC_ROM16_WIDTH = 2,
46   GENERIC_ROM32_WIDTH = 4
4547};
4648
4749#define GENERIC_ROM_REGION_TAG ":cart:rom"
r32244r32245
120122   // reading and writing
121123   virtual DECLARE_READ8_MEMBER(read_rom);
122124   virtual DECLARE_READ16_MEMBER(read16_rom);
125   virtual DECLARE_READ32_MEMBER(read32_rom);
123126
124127   virtual DECLARE_READ8_MEMBER(read_ram);
125128   virtual DECLARE_WRITE8_MEMBER(write_ram);
trunk/src/emu/bus/generic/rom.c
r32244r32245
1010
1111 TODO:
1212   - possibly support linear mapping when non-power of 2 ROMs are mapped
13   - add support for 32bit ROM access
1413 
1514 ***********************************************************************************************************/
1615
r32244r32245
6463      return 0xffff;
6564}
6665
66READ32_MEMBER(generic_rom_plain_device::read32_rom)
67{
68   UINT32 *ROM = (UINT32 *)m_rom;
69   if (offset < m_rom_size/4)
70      return ROM[offset];
71   else
72      return 0xffffffff;
73}
6774
75
6876READ8_MEMBER(generic_rom_linear_device::read_rom)
6977{
7078   return m_rom[offset % m_rom_size];
r32244r32245
7684   return ROM[offset % (m_rom_size/2)];
7785}
7886
87READ32_MEMBER(generic_rom_linear_device::read32_rom)
88{
89   UINT32 *ROM = (UINT32 *)m_rom;
90   return ROM[offset % (m_rom_size/4)];
91}
92
trunk/src/emu/bus/generic/slot.c
r32244r32245
246246}
247247
248248/*-------------------------------------------------
249 read32_rom
250 -------------------------------------------------*/
251
252READ32_MEMBER(generic_slot_device::read32_rom)
253{
254   if (m_cart)
255      return m_cart->read32_rom(space, offset, mem_mask);
256   else
257      return 0xffffffff;
258}
259
260/*-------------------------------------------------
249261 read_ram
250262 -------------------------------------------------*/
251263
trunk/src/emu/bus/generic/rom.h
r32244r32245
2929   // reading and writing
3030   virtual DECLARE_READ8_MEMBER(read_rom);
3131   virtual DECLARE_READ16_MEMBER(read16_rom);
32   virtual DECLARE_READ32_MEMBER(read32_rom);
3233};
3334
3435
r32244r32245
4344   // reading and writing
4445   virtual DECLARE_READ8_MEMBER(read_rom);
4546   virtual DECLARE_READ16_MEMBER(read16_rom);
47   virtual DECLARE_READ32_MEMBER(read32_rom);
4648};
4749
4850
trunk/src/mess/drivers/pockstat.c
r32244r32245
4141#include "emu.h"
4242#include "cpu/arm7/arm7.h"
4343#include "cpu/arm7/arm7core.h"
44#include "imagedev/cartslot.h"
4544#include "sound/dac.h"
4645
46#include "bus/generic/slot.h"
47#include "bus/generic/carts.h"
48
4749#define MAX_PS_TIMERS   3
4850
4951struct ps_ftlb_regs_t
r32244r32245
104106      : driver_device(mconfig, type, tag),
105107      m_lcd_buffer(*this, "lcd_buffer"),
106108      m_maincpu(*this, "maincpu"),
107      m_dac(*this, "dac") { }
109      m_dac(*this, "dac"),
110      m_cart(*this, "cartslot")
111   { }
108112
109113   required_shared_ptr<UINT32> m_lcd_buffer;
114   required_device<cpu_device> m_maincpu;
115   required_device<dac_device> m_dac;
116   required_device<generic_slot_device> m_cart;
117   memory_region *m_cart_rom;
118
110119   ps_ftlb_regs_t m_ftlb_regs;
111120   ps_intc_regs_t m_intc_regs;
112121   ps_timer_regs_t m_timer_regs;
r32244r32245
128137   DECLARE_READ32_MEMBER(ps_lcd_r);
129138   DECLARE_WRITE32_MEMBER(ps_lcd_w);
130139   DECLARE_READ32_MEMBER(ps_rombank_r);
140   DECLARE_READ32_MEMBER(ps_flash_r);
131141   DECLARE_WRITE32_MEMBER(ps_flash_w);
132142   DECLARE_READ32_MEMBER(ps_audio_r);
133143   DECLARE_WRITE32_MEMBER(ps_audio_w);
r32244r32245
143153   UINT32 ps_intc_get_interrupt_line(UINT32 line);
144154   void ps_intc_set_interrupt_line(UINT32 line, int state);
145155   void ps_timer_start(int index);
146   required_device<cpu_device> m_maincpu;
147   required_device<dac_device> m_dac;
148156};
149157
150158
r32244r32245
773781READ32_MEMBER(pockstat_state::ps_rombank_r)
774782{
775783   INT32 bank = (offset >> 11) & 0x0f;
776   int index = 0;
777   for(index = 0; index < 32; index++)
784   for (int index = 0; index < 32; index++)
778785   {
779      if(m_ftlb_regs.valid & (1 << index))
786      if (m_ftlb_regs.valid & (1 << index))
780787      {
781         if(m_ftlb_regs.entry[index] == bank)
788         if (m_ftlb_regs.entry[index] == bank)
782789         {
783790            //printf( "Address %08x is assigned to %08x in entry %d\n", 0x02000000 + (offset << 2), index * 0x2000 + ((offset << 2) & 0x1fff), index );
784            return memregion("flash")->u32(index * (0x2000/4) + (offset & (0x1fff/4)));
791            return m_cart->read32_rom(space, index * (0x2000/4) + (offset & (0x1fff/4)), mem_mask);
785792         }
786793      }
787794   }
788   return memregion("flash")->u32(offset & 0x7fff);
795   return m_cart->read32_rom(space, offset & 0x7fff, mem_mask);
789796}
790797
791798
r32244r32245
811818   if(m_ps_flash_write_count)
812819   {
813820      m_ps_flash_write_count--;
814      COMBINE_DATA(&((UINT32*)(*memregion("flash")))[offset]);
821      COMBINE_DATA(&((UINT32*)(m_cart_rom->base()))[offset]);
815822   }
816823}
817824
825READ32_MEMBER(pockstat_state::ps_flash_r)
826{
827   return m_cart->read32_rom(space, offset, mem_mask);
828}
829
818830READ32_MEMBER(pockstat_state::ps_audio_r)
819831{
820832   verboselog(0, "ps_audio_r: Unknown Read: %08x = %08x & %08x\n", 0xd800000 + (offset << 2), 0x10, mem_mask);
r32244r32245
836848   AM_RANGE(0x02000000, 0x02ffffff) AM_READ(ps_rombank_r)
837849   AM_RANGE(0x04000000, 0x04003fff) AM_ROM AM_REGION("maincpu", 0)
838850   AM_RANGE(0x06000000, 0x06000307) AM_READWRITE(ps_ftlb_r, ps_ftlb_w)
839   AM_RANGE(0x08000000, 0x0801ffff) AM_ROM AM_WRITE(ps_flash_w) AM_REGION("flash", 0)
851   AM_RANGE(0x08000000, 0x0801ffff) AM_READWRITE(ps_flash_r, ps_flash_w)
840852   AM_RANGE(0x0a000000, 0x0a000013) AM_READWRITE(ps_intc_r, ps_intc_w)
841853   AM_RANGE(0x0a800000, 0x0a80002b) AM_READWRITE(ps_timer_r, ps_timer_w)
842854   AM_RANGE(0x0b000000, 0x0b000007) AM_READWRITE(ps_clock_r, ps_clock_w)
r32244r32245
861873void pockstat_state::machine_start()
862874{
863875   int index = 0;
864   for(index = 0; index < 3; index++)
876   for (index = 0; index < 3; index++)
865877   {
866878      m_timer_regs.timer[index].timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pockstat_state::timer_tick),this));
867879      m_timer_regs.timer[index].timer->adjust(attotime::never, index);
r32244r32245
873885   m_rtc_regs.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pockstat_state::rtc_tick),this));
874886   m_rtc_regs.timer->adjust(attotime::from_hz(1), index);
875887
888   astring region_tag;
889   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
890
876891   save_item(NAME(m_ftlb_regs.control));
877892   save_item(NAME(m_ftlb_regs.stat));
878893   save_item(NAME(m_ftlb_regs.valid));
r32244r32245
919934
920935UINT32 pockstat_state::screen_update_pockstat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
921936{
922   int x = 0;
923   int y = 0;
924   for(y = 0; y < 32; y++)
937   for (int y = 0; y < 32; y++)
925938   {
926939      UINT32 *scanline = &bitmap.pix32(y);
927      for(x = 0; x < 32; x++)
940      for (int x = 0; x < 32; x++)
928941      {
929         if(m_lcd_control != 0) // Hack
942         if (m_lcd_control != 0) // Hack
930943         {
931            if(m_lcd_buffer[y] & (1 << x))
932            {
944            if (m_lcd_buffer[y] & (1 << x))
933945               scanline[x] = 0x00000000;
934            }
935946            else
936            {
937947               scanline[x] = 0x00ffffff;
938            }
939948         }
940949         else
941         {
942950            scanline[x] = 0x00ffffff;
943         }
944951      }
945952   }
946953   return 0;
r32244r32245
948955
949956DEVICE_IMAGE_LOAD_MEMBER( pockstat_state, pockstat_flash )
950957{
951   int i, length;
952   UINT8 *cart = memregion("flash")->base();
953958   static const char *gme_id = "123-456-STD";
959   char cart_id[0xf40];
960   UINT32 size = image.length();
954961
955   length = image.fread( cart, 0x20f40);
956
957   if(length != 0x20f40)
958   {
962   if (size != 0x20f40)
959963      return IMAGE_INIT_FAIL;
960   }
964   
965   image.fread(cart_id, 0xf40);
961966
962   for(i = 0; i < strlen(gme_id); i++)
967   for (int i = 0; i < strlen(gme_id); i++)
963968   {
964      if(cart[i] != gme_id[i])
965      {
969      if (cart_id[i] != gme_id[i])
966970         return IMAGE_INIT_FAIL;
967      }
968971   }
969972
970   memcpy(cart, cart + 0xf40, 0x20000);
973   m_cart->rom_alloc(0x20000, GENERIC_ROM32_WIDTH);
974   image.fread(m_cart->get_rom_base(), 0x20000);
971975
972976   return IMAGE_INIT_PASS;
973977}
r32244r32245
977981   MCFG_CPU_ADD("maincpu", ARM7, DEFAULT_CLOCK)
978982   MCFG_CPU_PROGRAM_MAP(pockstat_mem)
979983
980
981984   /* video hardware */
982985   MCFG_SCREEN_ADD("screen", LCD)
983986   MCFG_SCREEN_REFRESH_RATE(50)
r32244r32245
993996   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
994997
995998   /* cartridge */
996   MCFG_CARTSLOT_ADD("cart")
997   MCFG_CARTSLOT_EXTENSION_LIST("gme")
998   MCFG_CARTSLOT_NOT_MANDATORY
999   MCFG_CARTSLOT_LOAD(pockstat_state, pockstat_flash)
999   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM32_WIDTH, generic_plain_slot, "pockstat_cart")
1000   MCFG_GENERIC_EXTENSIONS("gme")
1001   MCFG_GENERIC_LOAD(pockstat_state, pockstat_flash)
10001002MACHINE_CONFIG_END
10011003
10021004/* ROM definition */
10031005ROM_START( pockstat )
10041006   ROM_REGION( 0x4000, "maincpu", 0 )
10051007   ROM_LOAD( "kernel.bin", 0x0000, 0x4000, CRC(5fb47dd8) SHA1(6ae880493ddde880827d1e9f08e9cb2c38f9f2ec) )
1006
1007   ROM_REGION( 0x20f40, "flash", ROMREGION_ERASEFF )
10081008ROM_END
10091009
10101010/* Driver */
trunk/src/mess/drivers/casloopy.c
r32244r32245
150150#include "emu.h"
151151#include "cpu/sh2/sh2.h"
152152//#include "cpu/v60/v60.h"
153#include "imagedev/cartslot.h"
153#include "bus/generic/slot.h"
154#include "bus/generic/carts.h"
154155
155156
156157class casloopy_state : public driver_device
r32244r32245
161162      m_bios_rom(*this, "bios_rom"),
162163      m_vregs(*this, "vregs"),
163164      m_maincpu(*this, "maincpu"),
165      m_cart(*this, "cartslot"),
164166      m_gfxdecode(*this, "gfxdecode"),
165167      m_palette(*this, "palette")  { }
166168
167169   required_shared_ptr<UINT32> m_bios_rom;
168170   required_shared_ptr<UINT32> m_vregs;
171   required_device<cpu_device> m_maincpu;
172   required_device<generic_slot_device> m_cart;
173   required_device<gfxdecode_device> m_gfxdecode;
174   required_device<palette_device> m_palette;
175
169176   UINT16 *m_paletteram;
170177   UINT8 *m_vram;
171178   UINT8 *m_bitmap_vram;
r32244r32245
176183   virtual void machine_reset();
177184   virtual void video_start();
178185   UINT32 screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
179   DECLARE_READ16_MEMBER(casloopy_vregs_r);
180   DECLARE_WRITE16_MEMBER(casloopy_vregs_w);
181   DECLARE_READ16_MEMBER(casloopy_pal_r);
182   DECLARE_WRITE16_MEMBER(casloopy_pal_w);
183   DECLARE_READ8_MEMBER(casloopy_vram_r);
184   DECLARE_WRITE8_MEMBER(casloopy_vram_w);
186   DECLARE_READ16_MEMBER(vregs_r);
187   DECLARE_WRITE16_MEMBER(vregs_w);
188   DECLARE_READ16_MEMBER(pal_r);
189   DECLARE_WRITE16_MEMBER(pal_w);
190   DECLARE_READ8_MEMBER(vram_r);
191   DECLARE_WRITE8_MEMBER(vram_w);
192   DECLARE_READ32_MEMBER(cart_r);
185193   DECLARE_READ16_MEMBER(sh7021_r);
186194   DECLARE_WRITE16_MEMBER(sh7021_w);
187   DECLARE_READ8_MEMBER(casloopy_bitmap_r);
188   DECLARE_WRITE8_MEMBER(casloopy_bitmap_w);
189   required_device<cpu_device> m_maincpu;
190   required_device<gfxdecode_device> m_gfxdecode;
191   required_device<palette_device> m_palette;
195   DECLARE_READ8_MEMBER(bitmap_r);
196   DECLARE_WRITE8_MEMBER(bitmap_w);
197   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(loopy_cart);
192198};
193199
194200
r32244r32245
292298   return 0;
293299}
294300
295READ16_MEMBER(casloopy_state::casloopy_vregs_r)
301READ16_MEMBER(casloopy_state::vregs_r)
296302{
297303   if(offset == 4/2)
298304   {
r32244r32245
310316   return 0xffff;
311317}
312318
313WRITE16_MEMBER(casloopy_state::casloopy_vregs_w)
319WRITE16_MEMBER(casloopy_state::vregs_w)
314320{
315321   if(offset != 6/2)
316322      printf("%08x %08x\n",offset*2,data);
317323}
318324
319READ16_MEMBER(casloopy_state::casloopy_pal_r)
325READ16_MEMBER(casloopy_state::pal_r)
320326{
321327   return m_paletteram[offset];
322328}
323329
324WRITE16_MEMBER(casloopy_state::casloopy_pal_w)
330WRITE16_MEMBER(casloopy_state::pal_w)
325331{
326332   int r,g,b;
327333   COMBINE_DATA(&m_paletteram[offset]);
r32244r32245
333339   m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b));
334340}
335341
336READ8_MEMBER(casloopy_state::casloopy_vram_r)
342READ8_MEMBER(casloopy_state::vram_r)
337343{
338344   return m_vram[offset];
339345}
340346
341WRITE8_MEMBER(casloopy_state::casloopy_vram_w)
347WRITE8_MEMBER(casloopy_state::vram_w)
342348{
343349   m_vram[offset] = data;
344350
r32244r32245
387393//  printf("%08x %04x\n",sh7021_regs[offset],0x05ffff00+offset*2);
388394}
389395
390READ8_MEMBER(casloopy_state::casloopy_bitmap_r)
396READ8_MEMBER(casloopy_state::bitmap_r)
391397{
392398   return m_bitmap_vram[offset];
393399}
394400
395WRITE8_MEMBER(casloopy_state::casloopy_bitmap_w)
401WRITE8_MEMBER(casloopy_state::bitmap_w)
396402{
397403   m_bitmap_vram[offset] = data;
398404}
399405
406READ32_MEMBER(casloopy_state::cart_r)
407{
408   return m_cart->read32_rom(space, offset, mem_mask);
409}
410
411
400412static ADDRESS_MAP_START( casloopy_map, AS_PROGRAM, 32, casloopy_state )
401413   AM_RANGE(0x00000000, 0x00007fff) AM_RAM AM_SHARE("bios_rom")
402414   AM_RANGE(0x01000000, 0x0107ffff) AM_RAM AM_SHARE("wram")// stack pointer points here
403   AM_RANGE(0x04000000, 0x0401ffff) AM_READWRITE8(casloopy_bitmap_r,casloopy_bitmap_w,0xffffffff)
404   AM_RANGE(0x04040000, 0x0404ffff) AM_READWRITE8(casloopy_vram_r,casloopy_vram_w,0xffffffff) // tilemap + PCG
415   AM_RANGE(0x04000000, 0x0401ffff) AM_READWRITE8(bitmap_r, bitmap_w, 0xffffffff)
416   AM_RANGE(0x04040000, 0x0404ffff) AM_READWRITE8(vram_r, vram_w, 0xffffffff) // tilemap + PCG
405417   AM_RANGE(0x04050000, 0x040503ff) AM_RAM // ???
406   AM_RANGE(0x04051000, 0x040511ff) AM_READWRITE16(casloopy_pal_r,casloopy_pal_w,0xffffffff)
407   AM_RANGE(0x04058000, 0x04058007) AM_READWRITE16(casloopy_vregs_r,casloopy_vregs_w,0xffffffff)
418   AM_RANGE(0x04051000, 0x040511ff) AM_READWRITE16(pal_r, pal_w, 0xffffffff)
419   AM_RANGE(0x04058000, 0x04058007) AM_READWRITE16(vregs_r, vregs_w, 0xffffffff)
408420   AM_RANGE(0x0405b000, 0x0405b00f) AM_RAM AM_SHARE("vregs") // RGB555 brightness control plus scrolling
409   AM_RANGE(0x05ffff00, 0x05ffffff) AM_READWRITE16(sh7021_r,sh7021_w,0xffffffff)
421   AM_RANGE(0x05ffff00, 0x05ffffff) AM_READWRITE16(sh7021_r, sh7021_w, 0xffffffff)
410422//  AM_RANGE(0x05ffff00, 0x05ffffff) - SH7021 internal i/o
411   AM_RANGE(0x06000000, 0x061fffff) AM_ROM AM_REGION("rom_cart",0)
423   AM_RANGE(0x06000000, 0x061fffff) AM_READ(cart_r)
412424   AM_RANGE(0x07000000, 0x070003ff) AM_RAM AM_SHARE("oram")// on-chip RAM, actually at 0xf000000 (1 kb)
413425   AM_RANGE(0x09000000, 0x0907ffff) AM_RAM AM_SHARE("wram")
414   AM_RANGE(0x0e000000, 0x0e1fffff) AM_ROM AM_REGION("rom_cart",0)
426   AM_RANGE(0x0e000000, 0x0e1fffff) AM_READ(cart_r)
415427   AM_RANGE(0x0f000000, 0x0f0003ff) AM_RAM AM_SHARE("oram")
416428ADDRESS_MAP_END
417429
r32244r32245
424436static INPUT_PORTS_START( casloopy )
425437INPUT_PORTS_END
426438
427/* TODO: move this into DEVICE_IMAGE_LOAD_MEMBER */
428439void casloopy_state::machine_start()
429440{
430   UINT8 *SRC = memregion("cart")->base();
431   UINT8 *DST = memregion("rom_cart")->base();
432
433   // fix endianness
434   for (int i=0;i<0x200000;i+=4)
435   {
436      UINT8 tempa = SRC[i+0];
437      UINT8 tempb = SRC[i+1];
438      DST[i+0] = SRC[i+2];
439      DST[i+1] = SRC[i+3];
440      DST[i+2] = tempa;
441      DST[i+3] = tempb;
442   }
443441}
444442
445443void casloopy_state::machine_reset()
r32244r32245
474472#endif
475473
476474
475DEVICE_IMAGE_LOAD_MEMBER( casloopy_state, loopy_cart )
476{
477   UINT32 size = m_cart->common_get_size("rom");
478   UINT8 *SRC, *DST;
479   dynamic_buffer temp;
480   temp.resize(0x200000);
481   
482   m_cart->rom_alloc(size, GENERIC_ROM32_WIDTH);
477483
484   SRC = temp;
485   DST = m_cart->get_rom_base();
486   m_cart->common_load_rom(temp, size, "rom");         
487   
488   // fix endianness
489   for (int i = 0; i < 0x200000; i += 4)
490   {
491      UINT8 tempa = SRC[i + 0];
492      UINT8 tempb = SRC[i + 1];
493      DST[i + 0] = SRC[i + 2];
494      DST[i + 1] = SRC[i + 3];
495      DST[i + 2] = tempa;
496      DST[i + 3] = tempb;
497   }
498   
499   return IMAGE_INIT_PASS;
500}
478501
479502static MACHINE_CONFIG_START( casloopy, casloopy_state )
480503
r32244r32245
500523
501524   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
502525
503   MCFG_CARTSLOT_ADD("cart")
504   MCFG_CARTSLOT_EXTENSION_LIST("ic1,bin")
505   MCFG_CARTSLOT_MANDATORY
506   MCFG_CARTSLOT_INTERFACE("loopy_cart")
526   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM32_WIDTH, generic_plain_slot, "loopy_cart")
527   MCFG_GENERIC_EXTENSIONS("bin,ic1")
528   MCFG_GENERIC_MANDATORY
529   MCFG_GENERIC_LOAD(casloopy_state, loopy_cart)
507530
508531   /* software lists */
509532   MCFG_SOFTWARE_LIST_ADD("cart_list","casloopy")
r32244r32245
524547
525548   ROM_REGION( 0x80000, "subcpu", 0) //NEC CDT-109
526549   ROM_LOAD( "bios2.lsi352", 0x0000, 0x80000, CRC(8f51fa17) SHA1(99f50be06b083fdb07e08f30b0b26d9037afc869) )
527
528   ROM_REGION( 0x200000, "cart", 0 )
529   ROM_CART_LOAD("cart",    0x00000, 0x200000, ROM_NOMIRROR)
530
531   ROM_REGION( 0x200000, "rom_cart", ROMREGION_ERASE00 )
532550ROM_END
533551
534552DRIVER_INIT_MEMBER(casloopy_state,casloopy)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team