Previous 199869 Revisions Next

r21079 Thursday 14th February, 2013 at 21:50:21 UTC by Wilbert Pol
megasys1.c: Reduce tagmap lookups (nw)
[src/mame/drivers]megasys1.c
[src/mame/includes]megasys1.h
[src/mame/video]megasys1.c

trunk/src/mame/drivers/megasys1.c
r21078r21079
124124#include "cpu/m68000/m68000.h"
125125#include "sound/2203intf.h"
126126#include "sound/2151intf.h"
127#include "sound/okim6295.h"
128127#include "machine/jalcrpt.h"
129128#include "includes/megasys1.h"
130129
r21078r21079
160159   int scanline = param;
161160
162161   if(scanline == 240) // vblank-out irq
163      machine().device("maincpu")->execute().set_input_line(2, HOLD_LINE);
162      m_maincpu->set_input_line(2, HOLD_LINE);
164163
165164   if(scanline == 0)
166      machine().device("maincpu")->execute().set_input_line(1, HOLD_LINE);
165      m_maincpu->set_input_line(1, HOLD_LINE);
167166
168167   if(scanline == 128)
169      machine().device("maincpu")->execute().set_input_line(3, HOLD_LINE);
168      m_maincpu->set_input_line(3, HOLD_LINE);
170169}
171170
172171static ADDRESS_MAP_START( megasys1A_map, AS_PROGRAM, 16, megasys1_state )
r21078r21079
196195   int scanline = param;
197196
198197   if(scanline == 240) // vblank-out irq
199      machine().device("maincpu")->execute().set_input_line(4, HOLD_LINE);
198      m_maincpu->set_input_line(4, HOLD_LINE);
200199
201200   if(scanline == 0)
202      machine().device("maincpu")->execute().set_input_line(2, HOLD_LINE);
201      m_maincpu->set_input_line(2, HOLD_LINE);
203202
204203   if(scanline == 128)
205      machine().device("maincpu")->execute().set_input_line(1, HOLD_LINE);
204      m_maincpu->set_input_line(1, HOLD_LINE);
206205}
207206
208207
r21078r21079
235234
236235   switch (i)
237236   {
238         case 0 :    return ioport("SYSTEM")->read();
239         case 1 :    return ioport("P1")->read();
240         case 2 :    return ioport("P2")->read();
241         case 3 :    return ioport("DSW1")->read();
242         case 4 :    return ioport("DSW2")->read();
237         case 0 :    return m_io_system->read();
238         case 1 :    return m_io_p1->read();
239         case 2 :    return m_io_p2->read();
240         case 3 :    return m_io_dsw1->read();
241         case 4 :    return m_io_dsw2->read();
243242         default  :  return 0x0006;
244243   }
245244}
r21078r21079
247246WRITE16_MEMBER(megasys1_state::ip_select_w)
248247{
249248   COMBINE_DATA(&m_ip_select);
250   machine().device("maincpu")->execute().set_input_line(2, HOLD_LINE);
249   m_maincpu->set_input_line(2, HOLD_LINE);
251250}
252251
253252
r21078r21079
374373WRITE_LINE_MEMBER(megasys1_state::sound_irq)
375374{
376375   if (state)
377      subdevice("soundcpu")->execute().set_input_line(4, HOLD_LINE);
376      m_audiocpu->set_input_line(4, HOLD_LINE);
378377}
379378
380379READ8_MEMBER(megasys1_state::oki_status_1_r)
381380{
382   device_t *device = machine().device("oki1");
383381   if (m_ignore_oki_status == 1)
384382      return 0;
385383   else
386      return downcast<okim6295_device *>(device)->read_status();
384      return m_oki1->read_status();
387385}
388386
389387READ8_MEMBER(megasys1_state::oki_status_2_r)
390388{
391   device_t *device = machine().device("oki1");
392389   if (m_ignore_oki_status == 1)
393390      return 0;
394391   else
395      return downcast<okim6295_device *>(device)->read_status();
392      return m_oki1->read_status();
396393}
397394/***************************************************************************
398395                            [ Sound CPU - System A ]
r21078r21079
13731370   switch (m_protection_val)
13741371   {
13751372      case 0x02:  return 0x03;
1376      case 0x51:  return ioport("P1")->read();
1377      case 0x52:  return ioport("P2")->read();
1373      case 0x51:  return m_io_p1->read();
1374      case 0x52:  return m_io_p2->read();
13781375      default:    return m_protection_val;
13791376   }
13801377}
r21078r21079
13851382
13861383   if ((m_protection_val & 0x90) == 0x90)
13871384   {
1388      UINT8 *RAM = memregion("oki1")->base();
1385      UINT8 *RAM = m_region_oki1->base();
13891386      int new_bank = (m_protection_val & 0x7) % 7;
13901387
13911388      if (m_bank != new_bank)
r21078r21079
13951392      }
13961393   }
13971394
1398   machine().device("maincpu")->execute().set_input_line(4, HOLD_LINE);
1395   m_maincpu->set_input_line(4, HOLD_LINE);
13991396}
14001397
14011398/*************************************
r21078r21079
14621459   MCFG_CPU_PROGRAM_MAP(megasys1A_map)
14631460   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_scanline, "screen", 0, 1)
14641461
1465   MCFG_CPU_ADD("soundcpu", M68000, SOUND_CPU_CLOCK) /* 7MHz verified */
1462   MCFG_CPU_ADD("audiocpu", M68000, SOUND_CPU_CLOCK) /* 7MHz verified */
14661463   MCFG_CPU_PROGRAM_MAP(megasys1A_sound_map)
14671464
14681465   MCFG_QUANTUM_TIME(attotime::from_hz(120000))
r21078r21079
15151512   MCFG_TIMER_MODIFY("scantimer")
15161513   MCFG_TIMER_DRIVER_CALLBACK(megasys1_state, megasys1B_scanline)
15171514
1518   MCFG_CPU_MODIFY("soundcpu")
1515   MCFG_CPU_MODIFY("audiocpu")
15191516   MCFG_CPU_PROGRAM_MAP(megasys1B_sound_map)
15201517MACHINE_CONFIG_END
15211518
r21078r21079
15761573   MCFG_TIMER_MODIFY("scantimer")
15771574   MCFG_TIMER_DRIVER_CALLBACK(megasys1_state, megasys1B_scanline)
15781575
1579   MCFG_CPU_MODIFY("soundcpu")
1576   MCFG_CPU_MODIFY("audiocpu")
15801577   MCFG_CPU_PROGRAM_MAP(megasys1B_sound_map)
15811578MACHINE_CONFIG_END
15821579
r21078r21079
16391636
16401637static void irq_handler(device_t *device, int irq)
16411638{
1642   device->machine().device("soundcpu")->execute().set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
1639   device->machine().driver_data<megasys1_state>()->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
16431640}
16441641
16451642
r21078r21079
16601657   MCFG_CPU_PROGRAM_MAP(megasys1A_map)
16611658   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_scanline, "screen", 0, 1)
16621659
1663   MCFG_CPU_ADD("soundcpu", Z80, 3000000) /* OSC 12MHz divided by 4 ??? */
1660   MCFG_CPU_ADD("audiocpu", Z80, 3000000) /* OSC 12MHz divided by 4 ??? */
16641661   MCFG_CPU_PROGRAM_MAP(z80_sound_map)
16651662   MCFG_CPU_IO_MAP(z80_sound_io_map)
16661663
r21078r21079
17361733   ROM_LOAD16_BYTE( "64th_03.rom", 0x000000, 0x040000, CRC(ed6c6942) SHA1(f610b31548ed4889a43d77be286b9bfabf700064) )
17371734   ROM_LOAD16_BYTE( "64th_02.rom", 0x000001, 0x040000, CRC(0621ed1d) SHA1(97d3e84cced23865157c5a15cbf5b7671c1dbae1) )
17381735
1739   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
1736   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
17401737   ROM_LOAD16_BYTE( "64th_08.rom", 0x000000, 0x010000, CRC(632be0c1) SHA1(626073037249d96ac70b2d11b2dd72b22bac49c7) )
17411738   ROM_LOAD16_BYTE( "64th_07.rom", 0x000001, 0x010000, CRC(13595d01) SHA1(e730a530ca232aab883217fa12804075cb2aa640) )
17421739
r21078r21079
17721769   ROM_LOAD16_BYTE( "91105-3.bin", 0x000000, 0x040000, CRC(a211a83b) SHA1(423d8f273f1520f6a37f1255bb2d343a6bbd790a) )
17731770   ROM_LOAD16_BYTE( "91105-2.bin", 0x000001, 0x040000, CRC(27c1f436) SHA1(d7936523549cfcd99ba98c6776ebd225b245867b) )
17741771
1775   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
1772   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
17761773   ROM_LOAD16_BYTE( "64th_08.rom", 0x000000, 0x010000, CRC(632be0c1) SHA1(626073037249d96ac70b2d11b2dd72b22bac49c7) )
17771774   ROM_LOAD16_BYTE( "64th_07.rom", 0x000001, 0x010000, CRC(13595d01) SHA1(e730a530ca232aab883217fa12804075cb2aa640) )
17781775
r21078r21079
18191816   ROM_LOAD16_BYTE( "astyan3.bin", 0x40000, 0x10000, CRC(097b53a6) SHA1(80952b2e685cefa8dd7c31b1ec54c4de924a84eb) )
18201817   ROM_LOAD16_BYTE( "astyan4.bin", 0x40001, 0x10000, CRC(1e1cbdb2) SHA1(5d076233d5ed6fdd9f0ecf64453325c14d33e879) )
18211818
1822   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
1819   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
18231820   ROM_LOAD16_BYTE( "astyan5.bin",  0x000000, 0x010000, CRC(11c74045) SHA1(00310a08a1c9a08050004e39b111b940142f8dea) )
18241821   ROM_LOAD16_BYTE( "astyan6.bin",  0x000001, 0x010000, CRC(eecd4b16) SHA1(2078e900b53347aad008a8ce7191f4e5541d4df0) )
18251822
r21078r21079
18671864   ROM_LOAD16_BYTE( "lokj03.bin", 0x40000, 0x20000, CRC(d8702c91) SHA1(bdf0ed1f116b0c8589a5b6c61e6f441b5afa38cb) )
18681865   ROM_LOAD16_BYTE( "lokj04.bin", 0x40001, 0x20000, CRC(eccbf8c9) SHA1(f37fb6a536f6344d6d68c8193de4db5d70b29c0a) )
18691866
1870   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
1867   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
18711868   ROM_LOAD16_BYTE( "astyan5.bin",  0x000000, 0x010000, CRC(11c74045) SHA1(00310a08a1c9a08050004e39b111b940142f8dea) )
18721869   ROM_LOAD16_BYTE( "astyan6.bin",  0x000001, 0x010000, CRC(eecd4b16) SHA1(2078e900b53347aad008a8ce7191f4e5541d4df0) )
18731870
r21078r21079
19541951   ROM_LOAD16_BYTE(  "spirit06.rom", 0x000001, 0x020000, CRC(609f71fe) SHA1(ab1bfe211763fb855477645267223e7fd4d6b6da) )
19551952   ROM_CONTINUE (                    0x080001, 0x020000 )
19561953
1957   ROM_REGION( 0x40000, "soundcpu", 0 )        /* Sound CPU Code */
1954   ROM_REGION( 0x40000, "audiocpu", 0 )        /* Sound CPU Code */
19581955   ROM_LOAD16_BYTE( "spirit01.rom",  0x000000, 0x020000, CRC(d02ec045) SHA1(465b61d89ca06e7e0a42c42efb6919c964ad0f93) )
19591956   ROM_LOAD16_BYTE( "spirit02.rom",  0x000001, 0x020000, CRC(30213390) SHA1(9334978d3568b36215ed29789501f7cbaf6651ea) )
19601957
r21078r21079
19911988   ROM_LOAD16_BYTE( "phntsm03.bin", 0x040000, 0x010000, CRC(1d96ce20) SHA1(2fb79160ea0dd18b5713691e4cf195d27ac4e3c3) )
19921989   ROM_LOAD16_BYTE( "phntsm04.bin", 0x040001, 0x010000, CRC(dc0c4994) SHA1(c3c72336b5032ef237490b095d3270de5803738c) )
19931990
1994   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
1991   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
19951992   ROM_LOAD16_BYTE( "phntsm05.bin", 0x000000, 0x010000, CRC(3b169b4a) SHA1(81c46fc94887c0cea363848b5c831dcf3b5b76de) )
19961993   ROM_LOAD16_BYTE( "phntsm06.bin", 0x000001, 0x010000, CRC(df2dfb2e) SHA1(b2542fa478917d44dffcf9e11ff7eaac6019676d) )
19971994
r21078r21079
20692066   ROM_LOAD16_BYTE(  "5", 0x000001, 0x020000, CRC(6c45465d) SHA1(ae30c3f14617ffe99622a019eb64880ac14bf7cf) )
20702067   ROM_CONTINUE (                   0x080001, 0x020000 )
20712068
2072   ROM_REGION( 0x40000, "soundcpu", 0 )        /* Sound CPU Code */
2069   ROM_REGION( 0x40000, "audiocpu", 0 )        /* Sound CPU Code */
20732070   ROM_LOAD16_BYTE( "4",  0x000000, 0x020000, CRC(d02ec045) SHA1(465b61d89ca06e7e0a42c42efb6919c964ad0f93) )
20742071   ROM_LOAD16_BYTE( "3",  0x000001, 0x020000, CRC(30213390) SHA1(9334978d3568b36215ed29789501f7cbaf6651ea) )
20752072
r21078r21079
21302127   ROM_LOAD16_BYTE( "91105v11.3", 0x000000, 0x020000, CRC(5d6e08ec) SHA1(4b80a5073cd0b0142cad094816b935d750ac11fb) )
21312128   ROM_LOAD16_BYTE( "91105v11.2", 0x000001, 0x020000, CRC(2120f05b) SHA1(a769cf8c3a4fa6a3f604edf45ce6db35979826cb) )
21322129
2133   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2130   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
21342131   ROM_LOAD16_BYTE( "91105v10.8", 0x000000, 0x010000, CRC(7dd69ece) SHA1(e8dc3cbce8cb3f549384cd114f8fc0e6c72462f3) )
21352132   ROM_LOAD16_BYTE( "91105v10.7", 0x000001, 0x010000, CRC(bc2c1508) SHA1(110dece929f9b452eb287c736d394d1022a09d75) )
21362133
r21078r21079
21782175   ROM_LOAD16_BYTE( "prg3.bin", 0x000000, 0x040000, CRC(70f1448f) SHA1(60aaee1cf7aa15ffa4962d947747b0ae7cdcfd8a) )
21792176   ROM_LOAD16_BYTE( "prg2.bin", 0x000001, 0x040000, CRC(821dbb85) SHA1(df204db38995ff4c898b8a0121834ec1b84b215c) )
21802177
2181   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2178   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
21822179   ROM_LOAD16_BYTE( "prg8.bin", 0x000000, 0x010000, CRC(a682b1ca) SHA1(66f5d5a73f5e8cba87eac09c55eee59117d94f7b) )
21832180   ROM_LOAD16_BYTE( "prg7.bin", 0x000001, 0x010000, CRC(83b9982d) SHA1(68e7d344ebfffe19822c4cf9f7b13cb51f23537a) )
21842181
r21078r21079
22662263   ROM_LOAD16_BYTE( "cb_03.rom", 0x000000, 0x040000, CRC(bee20587) SHA1(3c1d546c63a3d6f8a63b7dee1c8e99a7091d774d) )
22672264   ROM_LOAD16_BYTE( "cb_02.rom", 0x000001, 0x040000, CRC(2ed14c50) SHA1(4ed01ea5c5e59c3c012d9a4d5257be78220758c1) )
22682265
2269   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2266   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
22702267   ROM_LOAD16_BYTE( "cb_08.rom", 0x000000, 0x010000, CRC(bf7b3558) SHA1(6046b965d61560e0227437f00f1ff1f7dbc16232) )
22712268   ROM_LOAD16_BYTE( "cb_07.rom", 0x000001, 0x010000, CRC(85d219d7) SHA1(a9628efc5eddefad739363ff0b2f37a2d095df86) )
22722269
r21078r21079
23282325   ROM_LOAD16_BYTE( "edf_06.rom",  0x000001, 0x020000, CRC(94da2f0c) SHA1(ae6aef03d61d244a857a9dc824be230c35f4c978) )
23292326   ROM_CONTINUE (                  0x080001, 0x020000 )
23302327
2331   ROM_REGION( 0x40000, "soundcpu", 0 )        /* Sound CPU Code */
2328   ROM_REGION( 0x40000, "audiocpu", 0 )        /* Sound CPU Code */
23322329   ROM_LOAD16_BYTE( "edf1.f5",  0x000000, 0x020000, CRC(2290ea19) SHA1(64c9394bd4d5569d68833d2e57abaf2f1af5be97) )
23332330   ROM_LOAD16_BYTE( "edf2.f3",  0x000001, 0x020000, CRC(ce93643e) SHA1(686bf0ec104af8c97624a782e0d60afe170fd945) )
23342331
r21078r21079
23642361   ROM_LOAD16_BYTE( "edf6.b3",  0x000001, 0x020000, CRC(4797de97) SHA1(dcfcc376a49853c938d772808efe421ba4ba24da) )
23652362   ROM_CONTINUE (               0x080001, 0x020000 )
23662363
2367   ROM_REGION( 0x40000, "soundcpu", 0 )        /* Sound CPU Code */
2364   ROM_REGION( 0x40000, "audiocpu", 0 )        /* Sound CPU Code */
23682365   ROM_LOAD16_BYTE( "edf1.f5",  0x000000, 0x020000, CRC(2290ea19) SHA1(64c9394bd4d5569d68833d2e57abaf2f1af5be97) )
23692366   ROM_LOAD16_BYTE( "edf2.f3",  0x000001, 0x020000, CRC(ce93643e) SHA1(686bf0ec104af8c97624a782e0d60afe170fd945) )
23702367
r21078r21079
24482445   ROM_LOAD16_BYTE( "hacho02.rom", 0x000000, 0x020000, CRC(49489c27) SHA1(21c31e1b41ca6c7e78803e5a2e7c49f7b885d0e3) )
24492446   ROM_LOAD16_BYTE( "hacho01.rom", 0x000001, 0x020000, CRC(97fc9515) SHA1(192660061af6a5bddccf7cfffcbfa368c4030de9) )
24502447
2451   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2448   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
24522449   ROM_LOAD16_BYTE( "hacho05.rom", 0x000000, 0x010000, CRC(6271f74f) SHA1(2fe0f8adf3cdafe13a9107c36f24f1a525d06a05) )
24532450   ROM_LOAD16_BYTE( "hacho06.rom", 0x000001, 0x010000, CRC(db9e743c) SHA1(77a3691b48eed389bfcdead5f307415dce47247e) )
24542451
r21078r21079
25312528   ROM_LOAD16_BYTE( "6", 0x000001, 0x020000, CRC(341f8057) SHA1(958d9fc870bc13a9c1720d21776b5239db771ce2) )
25322529   ROM_CONTINUE (                  0x080001, 0x020000 )
25332530
2534   ROM_REGION( 0x40000, "soundcpu", 0 )        /* Sound CPU Code */
2531   ROM_REGION( 0x40000, "audiocpu", 0 )        /* Sound CPU Code */
25352532   ROM_LOAD16_BYTE( "1", 0x00000, 0x20000, CRC(b088b27e) SHA1(198e2520ce4f9b19ea108e09ff00f7e27768f290) )
25362533   ROM_LOAD16_BYTE( "2", 0x00001, 0x20000, CRC(cebc7b16) SHA1(18b166560ffff7c43cec3d52e4b2da79256dfb2e) )
25372534
r21078r21079
25852582   ROM_LOAD16_BYTE( "iga_03.bin", 0x040000, 0x010000, CRC(de5937ad) SHA1(d3039e5391feb925ea10f33a1363bf3ffc1ebb3d) )
25862583   ROM_LOAD16_BYTE( "iga_04.bin", 0x040001, 0x010000, CRC(afaf0480) SHA1(b8d0ec859a94941650bdd2b01e98d054d49fef67) )
25872584
2588   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2585   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
25892586   ROM_LOAD16_BYTE( "iga_05.bin", 0x000000, 0x010000, CRC(13580868) SHA1(bfcd11b294b64af81a0403a3e9370c42a9859b6b) )
25902587   ROM_LOAD16_BYTE( "iga_06.bin", 0x000001, 0x010000, CRC(7904d5dd) SHA1(4cd9fdab601a90c997a041a9f7966a9a233e897b) )
25912588
r21078r21079
26312628   ROM_LOAD16_BYTE( "iga_03.bin", 0x040000, 0x010000, CRC(de5937ad) SHA1(d3039e5391feb925ea10f33a1363bf3ffc1ebb3d) )
26322629   ROM_LOAD16_BYTE( "iga_04.bin", 0x040001, 0x010000, CRC(afaf0480) SHA1(b8d0ec859a94941650bdd2b01e98d054d49fef67) )
26332630
2634   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2631   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
26352632   ROM_LOAD16_BYTE( "iga_05.bin", 0x000000, 0x010000, CRC(13580868) SHA1(bfcd11b294b64af81a0403a3e9370c42a9859b6b) )
26362633   ROM_LOAD16_BYTE( "iga_06.bin", 0x000001, 0x010000, CRC(7904d5dd) SHA1(4cd9fdab601a90c997a041a9f7966a9a233e897b) )
26372634
r21078r21079
26902687   ROM_LOAD16_BYTE( "jp_2.bin", 0x000000, 0x020000, CRC(5d842ff2) SHA1(69032601c0e67c5c78fad1cb2bb4f1b59014fe5a) )
26912688   ROM_LOAD16_BYTE( "jp_1.bin", 0x000001, 0x020000, CRC(0056edec) SHA1(529a5181f7d791930e238bc115daeae1ab9a63ad) )
26922689
2693   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2690   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
26942691   ROM_LOAD16_BYTE( "jp_5.bin", 0x000000, 0x010000, CRC(84454e9e) SHA1(a506d44349a670e57d9dba3ec6a9de2597ba2cdb) ) // 11xxxxxxxxxxxxxx = 0xFF
26952692   ROM_LOAD16_BYTE( "jp_6.bin", 0x000001, 0x010000, CRC(1fa9b75b) SHA1(d0e3640333f737658542ed4a8758d62f6d64ae05) ) // 11xxxxxxxxxxxxxx = 0xFF
26962693
r21078r21079
27582755   ROM_LOAD16_BYTE( "kioff03.rom", 0x000000, 0x010000, CRC(3b01be65) SHA1(110b4e02053073c0315aba1eca8c19afe5fafb33) )
27592756   ROM_LOAD16_BYTE( "kioff01.rom", 0x000001, 0x010000, CRC(ae6e68a1) SHA1(aac54e13dd33420712a869e6f46fb9b94fde9e34) )
27602757
2761   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2758   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
27622759   ROM_LOAD16_BYTE( "kioff09.rom", 0x000000, 0x010000, CRC(1770e980) SHA1(0c9dd30765432c64bc6c320c0948c471b52ae084) )
27632760   ROM_LOAD16_BYTE( "kioff19.rom", 0x000001, 0x010000, CRC(1b03bbe4) SHA1(ef778712c293af15bda37f0425892023747ec479) )
27642761
r21078r21079
28112808   ROM_LOAD16_BYTE( "lom_30.rom", 0x000000, 0x020000, CRC(ba6d65b8) SHA1(4c83e57c977b2be82a99a4a61ab8fd5f7099ae38) )
28122809   ROM_LOAD16_BYTE( "lom_20.rom", 0x000001, 0x020000, CRC(56a00dc2) SHA1(5d97f89d384e12d70cbb5aabd6ce309e5cfb5497) )
28132810
2814   ROM_REGION( 0x10000, "soundcpu", 0 )        /* Sound CPU Code (Z80) */
2811   ROM_REGION( 0x10000, "audiocpu", 0 )        /* Sound CPU Code (Z80) */
28152812   ROM_LOAD( "lom_01.rom",  0x0000, 0x10000, CRC(46e85e90) SHA1(905899346f7cd91e76d0e303258149c3d16604e0) )
28162813
28172814   ROM_REGION( 0x020000, "gfx1", 0 ) /* Scroll 0 */
r21078r21079
28342831   ROM_LOAD16_BYTE( "makaiden.3a", 0x000000, 0x020000, CRC(87cf81d1) SHA1(c4410a86a01c683368dbc3daca61e21931885650) )
28352832   ROM_LOAD16_BYTE( "makaiden.2a", 0x000001, 0x020000, CRC(d40e0fea) SHA1(0f8a0440f63f52508ab44c3a8eb5b7f03ccca49d) )
28362833
2837   ROM_REGION( 0x10000, "soundcpu", 0 )        /* Sound CPU Code (Z80) */
2834   ROM_REGION( 0x10000, "audiocpu", 0 )        /* Sound CPU Code (Z80) */
28382835   ROM_LOAD( "lom_01.rom",  0x0000, 0x10000, CRC(46e85e90) SHA1(905899346f7cd91e76d0e303258149c3d16604e0) )
28392836
28402837   ROM_REGION( 0x020000, "gfx1", 0 ) /* Scroll 0 */
r21078r21079
29122909   ROM_LOAD16_BYTE( "p47us3.bin", 0x000000, 0x020000, CRC(022e58b8) SHA1(87db59e409977358d9a7b689f2d69bef056328d9) )
29132910   ROM_LOAD16_BYTE( "p47us1.bin", 0x000001, 0x020000, CRC(ed926bd8) SHA1(5cf3e7b9b23667eaa8ebcff0803a7b881c7b83cf) )
29142911
2915   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2912   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
29162913   ROM_LOAD16_BYTE( "p47j_9.bin",  0x000000, 0x010000, CRC(ffcf318e) SHA1(c675968c931a7e8e00ae83e49e8cef3fd193da57) )
29172914   ROM_LOAD16_BYTE( "p47j_19.bin", 0x000001, 0x010000, CRC(adb8c12e) SHA1(31590b037133f81a52779dbd4f2b5ac5b59198ae) )
29182915
r21078r21079
29532950   ROM_LOAD16_BYTE( "p47j_3.bin", 0x000000, 0x020000, CRC(11c655e5) SHA1(a2bfd6538ac81a5f20fa77460ba045584313413a) )
29542951   ROM_LOAD16_BYTE( "p47j_1.bin", 0x000001, 0x020000, CRC(0a5998de) SHA1(9f474c6c9b125fc7c41a44dbaacf3ba3800df8b5) )
29552952
2956   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
2953   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
29572954   ROM_LOAD16_BYTE( "p47j_9.bin",  0x000000, 0x010000, CRC(ffcf318e) SHA1(c675968c931a7e8e00ae83e49e8cef3fd193da57) )
29582955   ROM_LOAD16_BYTE( "p47j_19.bin", 0x000001, 0x010000, CRC(adb8c12e) SHA1(31590b037133f81a52779dbd4f2b5ac5b59198ae) )
29592956
r21078r21079
31293126   ROM_LOAD16_BYTE( "pa-rom3.bin", 0x040000, 0x010000, CRC(1b739835) SHA1(3aaa9545a7f578a9775311dcd44504870f3b1544) )
31303127   ROM_LOAD16_BYTE( "pa-rom4.bin", 0x040001, 0x010000, CRC(ff760e80) SHA1(dd06306a516a2d5e49cf8f2343ddc26405b309a9) )
31313128
3132   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3129   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
31333130   ROM_LOAD16_BYTE( "pa-rom5.bin", 0x000000, 0x010000, CRC(ddc2739b) SHA1(dee31660428baea44c73dec238ed7f39a6771fe6) )
31343131   ROM_LOAD16_BYTE( "pa-rom6.bin", 0x000001, 0x010000, CRC(f6f8a167) SHA1(60d5c9db18d8f6704b68ccde5d026174679cec36) )
31353132
r21078r21079
32093206   ROM_LOAD16_BYTE( "rl_03.rom", 0x040000, 0x010000, CRC(62fdf6d7) SHA1(ffde7e7f5b3b548bc980b9dee767f693046ecab2) )
32103207   ROM_LOAD16_BYTE( "rl_04.rom", 0x040001, 0x010000, CRC(44163c86) SHA1(1c56d79531af0312e7cd3dc66cf61b55dd1a6e51) )
32113208
3212   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3209   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
32133210   ROM_LOAD16_BYTE( "rl_05.rom", 0x000000, 0x010000, CRC(c1617c28) SHA1(1b3440055c083b74270fe06b5f42e7d1337efeca) )
32143211   ROM_LOAD16_BYTE( "rl_06.rom", 0x000001, 0x010000, CRC(663392b2) SHA1(99052639e934d1ca18888c9c7fa061c1d3508fd4) )
32153212
r21078r21079
32483245   ROM_LOAD16_BYTE( "rl_3.bin", 0x040000, 0x010000, CRC(c5b1075f) SHA1(a8bcc0e9dbb4b731bc0b7e5a8e0efc3d142505b9) )
32493246   ROM_LOAD16_BYTE( "rl_4.bin", 0x040001, 0x010000, CRC(9ec61048) SHA1(71b6af054a528af04e23affff635a9358537cd3b) )
32503247
3251   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3248   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
32523249   ROM_LOAD16_BYTE( "rl_05.rom", 0x000000, 0x010000, CRC(c1617c28) SHA1(1b3440055c083b74270fe06b5f42e7d1337efeca) )
32533250   ROM_LOAD16_BYTE( "rl_06.rom", 0x000001, 0x010000, CRC(663392b2) SHA1(99052639e934d1ca18888c9c7fa061c1d3508fd4) )
32543251
r21078r21079
32863283   ROM_LOAD16_BYTE( "rl_3.bin", 0x040000, 0x010000, CRC(c5b1075f) SHA1(a8bcc0e9dbb4b731bc0b7e5a8e0efc3d142505b9) )
32873284   ROM_LOAD16_BYTE( "rl_4.bin", 0x040001, 0x010000, CRC(9ec61048) SHA1(71b6af054a528af04e23affff635a9358537cd3b) )
32883285
3289   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3286   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
32903287   ROM_LOAD16_BYTE( "rl02.bin", 0x000000, 0x010000, CRC(d26eae8f) SHA1(1c6d514e6d006f78fa7b24d18a3eb4c5a4c5cbce) )
32913288   ROM_LOAD16_BYTE( "rl01.bin", 0x000001, 0x010000, CRC(04cf24bc) SHA1(e754cce3c83a7088daf90e753fbb0df9ef7fc9be) )
32923289
r21078r21079
33343331   ROM_LOAD16_BYTE( "jsd-02.bin", 0x000000, 0x020000, CRC(cc29ab19) SHA1(e145eeb01fad313e300f0c614c0e7a5c1d75d7d9) )
33353332   ROM_LOAD16_BYTE( "jsd-01.bin", 0x000001, 0x020000, CRC(67429a57) SHA1(f3c20fabed97ac5c2fe3e891f9c8c86478453a6c) )
33363333
3337   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3334   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
33383335   ROM_LOAD16_BYTE( "jsd-05.bin", 0x000000, 0x010000, CRC(8c04feaa) SHA1(57e86fd88dc72d123a41f0dee80a16be38ac2e81) )
33393336   ROM_LOAD16_BYTE( "jsd-06.bin", 0x000001, 0x010000, CRC(0bb62f3a) SHA1(68d9f161ba2568f8e046b1a40127bbb973d7a884) )
33403337
r21078r21079
34023399   ROM_LOAD16_BYTE( "jsda-02.bin", 0x000000, 0x020000, CRC(d65d4154) SHA1(f77886590a092743c829fb52b5de0ca8ef51c122) )
34033400   ROM_LOAD16_BYTE( "jsda-01.bin", 0x000001, 0x020000, CRC(c40c8ee1) SHA1(346b16519f35d7bdb283d87f6f89f54d3b7eefe2) )
34043401
3405   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3402   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
34063403   ROM_LOAD16_BYTE( "jsd-05.bin", 0x000000, 0x010000, CRC(8c04feaa) SHA1(57e86fd88dc72d123a41f0dee80a16be38ac2e81) )
34073404   ROM_LOAD16_BYTE( "jsd-06.bin", 0x000001, 0x010000, CRC(0bb62f3a) SHA1(68d9f161ba2568f8e046b1a40127bbb973d7a884) )
34083405
r21078r21079
34543451   ROM_LOAD16_BYTE( "3ver1.bin", 0x040000, 0x010000, CRC(c5382a07) SHA1(5342775f2925772e23bb460e88cd2b7e524e57fa) )
34553452   ROM_LOAD16_BYTE( "4ver1.bin", 0x040001, 0x010000, CRC(1df7816f) SHA1(7c069470ec0e884eae5a52581f2be17d9e692105) )
34563453
3457   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3454   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
34583455   ROM_LOAD16_BYTE( "5ver1.bin", 0x000000, 0x010000, CRC(d1019a67) SHA1(32d77914a67c009bf1bb397772f195594f7cc03f) )
34593456   ROM_LOAD16_BYTE( "6ver1.bin", 0x000001, 0x010000, CRC(3ed219b4) SHA1(afffa5596027181ae94488d54d6266f8a7ead180) )
34603457
r21078r21079
34883485   ROM_LOAD16_BYTE( "3ver1.bin",   0x040000, 0x010000, CRC(c5382a07) SHA1(5342775f2925772e23bb460e88cd2b7e524e57fa) )
34893486   ROM_LOAD16_BYTE( "4ver1.bin",   0x040001, 0x010000, CRC(1df7816f) SHA1(7c069470ec0e884eae5a52581f2be17d9e692105) )
34903487
3491   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3488   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
34923489   ROM_LOAD16_BYTE( "5ver1.bin", 0x000000, 0x010000, CRC(d1019a67) SHA1(32d77914a67c009bf1bb397772f195594f7cc03f) )
34933490   ROM_LOAD16_BYTE( "6ver1.bin", 0x000001, 0x010000, CRC(3ed219b4) SHA1(afffa5596027181ae94488d54d6266f8a7ead180) )
34943491
r21078r21079
35273524   ROM_LOAD16_BYTE( "takeda2.bin", 0x000000, 0x020000, CRC(6ddfc9f3) SHA1(0ce1b8eae31453db0b2081717d7dbda9ea7d5a60) )
35283525   ROM_LOAD16_BYTE( "takeda1.bin", 0x000001, 0x020000, CRC(1afc6b7d) SHA1(b56da1b8c5b417a88a2952491c2d5472bb783945) )
35293526
3530   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3527   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
35313528   ROM_LOAD16_BYTE( "takeda5.bin", 0x000000, 0x010000, CRC(fbdc51c0) SHA1(bc6036c556275f7eccd7741d23437a98b0aa13bb) )
35323529   ROM_LOAD16_BYTE( "takeda6.bin", 0x000001, 0x010000, CRC(8fa65b69) SHA1(23a2d60435f235366f877ac79ac1506a99cfae9c) )
35333530
r21078r21079
35703567   ROM_LOAD16_BYTE( "shing_02.rom", 0x000000, 0x020000, CRC(d9ab5b78) SHA1(c7622ec11a636dc7a6bcad02556a98aa0a9fb043) )
35713568   ROM_LOAD16_BYTE( "shing_01.rom", 0x000001, 0x020000, CRC(a9d2de20) SHA1(b53205722ae19305a1c373abbbac4fbcbcb0b0f0) )
35723569
3573   ROM_REGION( 0x20000, "soundcpu", 0 )        /* Sound CPU Code */
3570   ROM_REGION( 0x20000, "audiocpu", 0 )        /* Sound CPU Code */
35743571   ROM_LOAD16_BYTE( "takeda5.bin", 0x000000, 0x010000, CRC(fbdc51c0) SHA1(bc6036c556275f7eccd7741d23437a98b0aa13bb) )
35753572   ROM_LOAD16_BYTE( "takeda6.bin", 0x000001, 0x010000, CRC(8fa65b69) SHA1(23a2d60435f235366f877ac79ac1506a99cfae9c) )
35763573
r21078r21079
37313728
37323729READ16_MEMBER(megasys1_state::megasys1A_mcu_hs_r)
37333730{
3734   UINT16 *ROM  = (UINT16 *) memregion("maincpu")->base();
3731   UINT16 *ROM  = (UINT16 *) m_region_maincpu->base();
37353732
37363733   if(m_mcu_hs && ((m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
37373734   {
r21078r21079
37703767DRIVER_INIT_MEMBER(megasys1_state,astyanax)
37713768{
37723769   astyanax_rom_decode(machine(), "maincpu");
3773   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
3774   machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
3770   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
3771   m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
37753772}
37763773
37773774DRIVER_INIT_MEMBER(megasys1_state,avspirit)
r21078r21079
37833780   m_ip_select_values[4] = 0x34;
37843781
37853782   // has twice less RAM
3786   machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_readwrite(0x060000, 0x06ffff);
3787   machine().device("maincpu")->memory().space(AS_PROGRAM).install_ram(0x070000, 0x07ffff, m_ram);
3783   m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x060000, 0x06ffff);
3784   m_maincpu->space(AS_PROGRAM).install_ram(0x070000, 0x07ffff, m_ram);
37883785}
37893786
37903787DRIVER_INIT_MEMBER(megasys1_state,bigstrik)
r21078r21079
38263823
38273824READ16_MEMBER(megasys1_state::edfbl_input_r)
38283825{
3829   const char *const in_names[] = { "SYSTEM", "P1", "P2", "DSW1", "DSW2" };
3826   ioport_port *in_names[] = { m_io_system, m_io_p1, m_io_p2, m_io_dsw1, m_io_dsw2 };
38303827   UINT16 res;
38313828
38323829   res = 0;
r21078r21079
38373834      case 0x04/2:
38383835      case 0x06/2:
38393836      case 0x08/2:
3840      case 0x0a/2: res = ioport(in_names[offset-1])->read(); break;
3837      case 0x0a/2: res = in_names[offset-1]->read(); break;
38413838   }
38423839
38433840   return res;
r21078r21079
38463843DRIVER_INIT_MEMBER(megasys1_state,edfbl)
38473844{
38483845   //device_t *oki1 = machine().device("oki1");
3849   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xe0000, 0xe000f, read16_delegate(FUNC(megasys1_state::edfbl_input_r),this));
3850   //machine().device("maincpu")->memory().space(AS_PROGRAM).install_legacy_write_handler(*oki1, 0xe000e, 0xe000f, FUNC(soundlatch_byte_w));
3846   m_maincpu->space(AS_PROGRAM).install_read_handler(0xe0000, 0xe000f, read16_delegate(FUNC(megasys1_state::edfbl_input_r),this));
3847   //m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(*oki1, 0xe000e, 0xe000f, FUNC(soundlatch_byte_w));
38513848}
38523849
38533850DRIVER_INIT_MEMBER(megasys1_state,hayaosi1)
r21078r21079
38613858
38623859READ16_MEMBER(megasys1_state::iganinju_mcu_hs_r)
38633860{
3864   UINT16 *ROM  = (UINT16 *) memregion("maincpu")->base();
3861   UINT16 *ROM  = (UINT16 *) m_region_maincpu->base();
38653862
38663863   if(m_mcu_hs && ((m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
38673864   {
r21078r21079
39003897
39013898   phantasm_rom_decode(machine(), "maincpu");
39023899
3903   //ROM  = (UINT16 *) memregion("maincpu")->base();
3904   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_r),this));
3905   machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_w),this));
3900   //ROM  = (UINT16 *) m_region_maincpu->base();
3901   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_r),this));
3902   m_maincpu->space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_w),this));
39063903
39073904   //ROM[0x00006e/2] = 0x0420; // the only game that does
39083905                        // not like lev 3 interrupts
r21078r21079
39103907
39113908WRITE16_MEMBER(megasys1_state::okim6295_both_1_w)
39123909{
3913   okim6295_device *oki = machine().device<okim6295_device>("oki1");
3914   if (ACCESSING_BITS_0_7) oki->write_command((data >> 0) & 0xff );
3915   else                oki->write_command((data >> 8) & 0xff );
3910   if (ACCESSING_BITS_0_7) m_oki1->write_command((data >> 0) & 0xff );
3911   else                    m_oki1->write_command((data >> 8) & 0xff );
39163912}
39173913WRITE16_MEMBER(megasys1_state::okim6295_both_2_w)
39183914{
3919   okim6295_device *oki = machine().device<okim6295_device>("oki2");
3920   if (ACCESSING_BITS_0_7) oki->write_command((data >> 0) & 0xff );
3921   else                oki->write_command((data >> 8) & 0xff );
3915   if (ACCESSING_BITS_0_7) m_oki2->write_command((data >> 0) & 0xff );
3916   else                    m_oki2->write_command((data >> 8) & 0xff );
39223917}
39233918
39243919DRIVER_INIT_MEMBER(megasys1_state,jitsupro)
39253920{
3926   //UINT16 *ROM  = (UINT16 *) memregion("maincpu")->base();
3921   //UINT16 *ROM  = (UINT16 *) m_region_maincpu->base();
39273922
39283923   astyanax_rom_decode(machine(), "maincpu");      // Code
39293924
39303925   jitsupro_gfx_unmangle("gfx1");   // Gfx
39313926   jitsupro_gfx_unmangle("gfx4");
3932   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
3933   machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
3927   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
3928   m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
39343929
39353930   /* the sound code writes oki commands to both the lsb and msb */
3936   machine().device("soundcpu")->memory().space(AS_PROGRAM).install_write_handler(0xa0000, 0xa0003, write16_delegate(FUNC(megasys1_state::okim6295_both_1_w),this));
3937   machine().device("soundcpu")->memory().space(AS_PROGRAM).install_write_handler(0xc0000, 0xc0003, write16_delegate(FUNC(megasys1_state::okim6295_both_2_w),this));
3931   m_audiocpu->space(AS_PROGRAM).install_write_handler(0xa0000, 0xa0003, write16_delegate(FUNC(megasys1_state::okim6295_both_1_w),this));
3932   m_audiocpu->space(AS_PROGRAM).install_write_handler(0xc0000, 0xc0003, write16_delegate(FUNC(megasys1_state::okim6295_both_2_w),this));
39383933}
39393934
39403935DRIVER_INIT_MEMBER(megasys1_state,peekaboo)
39413936{
3942   machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x100000, 0x100001, read16_delegate(FUNC(megasys1_state::protection_peekaboo_r),this), write16_delegate(FUNC(megasys1_state::protection_peekaboo_w),this));
3937   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x100000, 0x100001, read16_delegate(FUNC(megasys1_state::protection_peekaboo_r),this), write16_delegate(FUNC(megasys1_state::protection_peekaboo_w),this));
39433938}
39443939
39453940DRIVER_INIT_MEMBER(megasys1_state,phantasm)
r21078r21079
39743969{
39753970   astyanax_rom_decode(machine(), "maincpu");
39763971   /* Sprite RAM is mirrored */
3977   machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
3972   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
39783973}
39793974
39803975DRIVER_INIT_MEMBER(megasys1_state,soldam)
39813976{
39823977   phantasm_rom_decode(machine(), "maincpu");
39833978   /* Sprite RAM is mirrored */
3984   machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
3979   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
39853980}
39863981
39873982
39883983READ16_MEMBER(megasys1_state::stdragon_mcu_hs_r)
39893984{
3990   UINT16 *ROM  = (UINT16 *) memregion("maincpu")->base();
3985   UINT16 *ROM  = (UINT16 *) m_region_maincpu->base();
39913986
39923987   if(m_mcu_hs && ((m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
39933988   {
r21078r21079
40174012DRIVER_INIT_MEMBER(megasys1_state,stdragon)
40184013{
40194014   phantasm_rom_decode(machine(), "maincpu");
4020   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
4021   machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
4015   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
4016   m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
40224017}
40234018
40244019DRIVER_INIT_MEMBER(megasys1_state,stdragona)
r21078r21079
40284023   stdragona_gfx_unmangle("gfx1");
40294024   stdragona_gfx_unmangle("gfx4");
40304025
4031   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
4032   machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
4026   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
4027   m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
40334028}
40344029
40354030READ16_MEMBER(megasys1_state::monkelf_input_r)
40364031{
4037   const char *const in_names[] = { "P1", "P2", "DSW1", "DSW2", "SYSTEM" };
4032   ioport_port *in_names[] = { m_io_p1, m_io_p2, m_io_dsw1, m_io_dsw2, m_io_system };
40384033   UINT16 res;
40394034
40404035   res = 0xffff;
r21078r21079
40454040      case 0x04/2:
40464041      case 0x06/2:
40474042      case 0x08/2:
4048      case 0x0a/2: res = ioport(in_names[offset-1])->read(); break;
4043      case 0x0a/2: res = in_names[offset-1]->read(); break;
40494044   }
40504045
40514046   return res;
r21078r21079
40554050{
40564051   DRIVER_INIT_CALL(avspirit);
40574052
4058   UINT16 *ROM = (UINT16*)memregion("maincpu")->base();
4053   UINT16 *ROM = (UINT16*)m_region_maincpu->base();
40594054   ROM[0x00744/2] = 0x4e71; // weird check, 0xe000e R is a port-based trap?
40604055
4061   machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xe0000, 0xe000f, read16_delegate(FUNC(megasys1_state::monkelf_input_r),this));
4056   m_maincpu->space(AS_PROGRAM).install_read_handler(0xe0000, 0xe000f, read16_delegate(FUNC(megasys1_state::monkelf_input_r),this));
40624057}
40634058
40644059/*************************************
trunk/src/mame/includes/megasys1.h
r21078r21079
1313
1414***************************************************************************/
1515
16#include "sound/okim6295.h"
1617
18
1719class megasys1_state : public driver_device
1820{
1921public:
2022   megasys1_state(const machine_config &mconfig, device_type type, const char *tag)
21      : driver_device(mconfig, type, tag) ,
22      m_vregs(*this, "vregs"),
23      m_objectram(*this, "objectram"),
24      m_scrollram(*this, "scrollram"),
25      m_ram(*this, "ram"){ }
23      : driver_device(mconfig, type, tag)
24      , m_vregs(*this, "vregs")
25      , m_objectram(*this, "objectram")
26      , m_scrollram(*this, "scrollram")
27      , m_ram(*this, "ram")
28      , m_maincpu(*this, "maincpu")
29      , m_audiocpu(*this, "audiocpu")
30      , m_oki1(*this, "oki1")
31      , m_oki2(*this, "oki2")
32      , m_region_maincpu(*this, "maincpu")
33      , m_region_oki1(*this, "oki1")
34      , m_io_system(*this, "SYSTEM")
35      , m_io_p1(*this, "P1")
36      , m_io_p2(*this, "P2")
37      , m_io_dsw(*this, "DSW")
38      , m_io_dsw1(*this, "DSW1")
39      , m_io_dsw2(*this, "DSW2")
40   { }
2641
2742   required_shared_ptr<UINT16> m_vregs;
2843   required_shared_ptr<UINT16> m_objectram;
2944   required_shared_ptr_array<UINT16,3> m_scrollram;
3045   required_shared_ptr<UINT16> m_ram;
46   required_device<cpu_device> m_maincpu;
47   optional_device<cpu_device> m_audiocpu;
48   optional_device<okim6295_device> m_oki1;
49   optional_device<okim6295_device> m_oki2;
50   required_memory_region m_region_maincpu;
51   optional_memory_region m_region_oki1;
52   required_ioport m_io_system;
53   required_ioport m_io_p1;
54   required_ioport m_io_p2;
55   optional_ioport m_io_dsw;
56   optional_ioport m_io_dsw1;
57   optional_ioport m_io_dsw2;
3158
3259   UINT16 *m_spriteram;
3360   UINT16 m_ip_select;
trunk/src/mame/video/megasys1.c
r21078r21079
429429      case 0x100/2   :    m_sprite_flag = new_data;       break;
430430
431431      case 0x300/2   :    m_screen_flag = new_data;
432                     if (machine().device("soundcpu"))
432                     if (m_audiocpu)
433433                     {
434434                        if (new_data & 0x10)
435                           machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
435                           m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
436436                        else
437                           machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
437                           m_audiocpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
438438                     }
439439                     break;
440440
441441      case 0x308/2   :    soundlatch_word_w(space,0,new_data,0xffff);
442                     machine().device("soundcpu")->execute().set_input_line(4, HOLD_LINE);
442                     m_audiocpu->set_input_line(4, HOLD_LINE);
443443                     break;
444444
445445      default      :  SHOW_WRITE_ERROR("vreg %04X <- %04X",offset*2,data);
r21078r21079
484484
485485      case 0x2308/2   :   m_screen_flag = new_data;
486486                     if (new_data & 0x10)
487                        machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
487                        m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
488488                     else
489                        machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
489                        m_audiocpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
490490                     break;
491491
492492      case 0x8000/2   :   /* Cybattler reads sound latch on irq 2 */
493493                     soundlatch_word_w(space, 0, new_data, 0xffff);
494                     machine().device("soundcpu")->execute().set_input_line(2, HOLD_LINE);
494                     m_audiocpu->set_input_line(2, HOLD_LINE);
495495                     break;
496496
497497      default:        SHOW_WRITE_ERROR("vreg %04X <- %04X", offset * 2, data);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team