Previous 199869 Revisions Next

r30769 Monday 2nd June, 2014 at 02:29:01 UTC by Alex Jackson
surpratk.c: convert to bankdev, add xtal, remove KONAMI_ROM_DEINTERLEAVE. gradius3.c: add xtal (nw)
[src/mame/drivers]gradius3.c surpratk.c
[src/mame/includes]surpratk.h
[src/mame/video]konamiic.txt

trunk/src/mame/drivers/surpratk.c
r30768r30769
1010
1111#include "emu.h"
1212#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
13
1413#include "sound/2151intf.h"
1514#include "includes/konamipt.h"
1615#include "includes/surpratk.h"
r30768r30769
2423      device.execute().set_input_line(0, HOLD_LINE);
2524}
2625
27READ8_MEMBER(surpratk_state::bankedram_r)
28{
29   if (m_videobank & 0x02)
30   {
31      if (m_videobank & 0x04)
32         return m_paletteram[offset + 0x0800];
33      else
34         return m_paletteram[offset];
35   }
36   else if (m_videobank & 0x01)
37      return m_k053244->k053245_r(space, offset);
38   else
39      return m_ram[offset];
40}
41
42WRITE8_MEMBER(surpratk_state::bankedram_w)
43{
44   if (m_videobank & 0x02)
45   {
46      if (m_videobank & 0x04)
47         m_palette->write(space,offset + 0x0800,data);
48      else
49         m_palette->write(space,offset,data);
50   }
51   else if (m_videobank & 0x01)
52      m_k053244->k053245_w(space, offset, data);
53   else
54      m_ram[offset] = data;
55}
56
5726WRITE8_MEMBER(surpratk_state::surpratk_videobank_w)
5827{
59   logerror("%04x: videobank = %02x\n",space.device().safe_pc(),data);
28   if (data & 0xf8)
29      logerror("%04x: videobank = %02x\n",space.device().safe_pc(),data);
30
6031   /* bit 0 = select 053245 at 0000-07ff */
6132   /* bit 1 = select palette at 0000-07ff */
6233   /* bit 2 = select palette bank 0 or 1 */
63   m_videobank = data;
34   if (BIT(data, 1))
35      m_bank0000->set_bank(2 + BIT(data, 2));
36   else
37      m_bank0000->set_bank(BIT(data, 0));
6438}
6539
6640WRITE8_MEMBER(surpratk_state::surpratk_5fc0_w)
r30768r30769
8256/********************************************/
8357
8458static ADDRESS_MAP_START( surpratk_map, AS_PROGRAM, 8, surpratk_state )
85   AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bankedram_r, bankedram_w) AM_SHARE("ram")
59   AM_RANGE(0x0000, 0x07ff) AM_DEVICE("bank0000", address_map_bank_device, amap8)
8660   AM_RANGE(0x0800, 0x1fff) AM_RAM
8761   AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")                    /* banked ROM */
8862   AM_RANGE(0x5f8c, 0x5f8c) AM_READ_PORT("P1")
r30768r30769
9670   AM_RANGE(0x5fd0, 0x5fd1) AM_DEVWRITE("ymsnd", ym2151_device, write)
9771   AM_RANGE(0x5fc4, 0x5fc4) AM_WRITE(surpratk_videobank_w)
9872   AM_RANGE(0x4000, 0x7fff) AM_DEVREADWRITE("k052109", k052109_device, read, write)
99   AM_RANGE(0x8000, 0xffff) AM_ROM                 /* ROM */
73   AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x38000)
10074ADDRESS_MAP_END
10175
76static ADDRESS_MAP_START( bank0000_map, AS_PROGRAM, 8, surpratk_state )
77   AM_RANGE(0x0000, 0x07ff) AM_RAM
78   AM_RANGE(0x0800, 0x0fff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w)
79   AM_RANGE(0x1000, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
80ADDRESS_MAP_END
10281
82
10383/***************************************************************************
10484
10585    Input Ports
r30768r30769
159139{
160140   "gfx1", 0,
161141   NORMAL_PLANE_ORDER,
162   KONAMI_ROM_DEINTERLEAVE_2,
142   KONAMI_ROM_DEINTERLEAVE_NONE,
163143   surpratk_tile_callback
164144};
165145
166146void surpratk_state::machine_start()
167147{
168   UINT8 *ROM = memregion("maincpu")->base();
169
170   membank("bank1")->configure_entries(0, 28, &ROM[0x10000], 0x2000);
171   membank("bank1")->configure_entries(28, 4, &ROM[0x08000], 0x2000);
148   membank("bank1")->configure_entries(0, 32, memregion("maincpu")->base(), 0x2000);
172149   membank("bank1")->set_entry(0);
173150
174   m_paletteram.resize(0x1000);
175   m_palette->basemem().set(m_paletteram, ENDIANNESS_BIG, 2);
176
177   save_item(NAME(m_paletteram));
178   save_item(NAME(m_videobank));
179151   save_item(NAME(m_sprite_colorbase));
180152   save_item(NAME(m_layer_colorbase));
181153   save_item(NAME(m_layerpri));
r30768r30769
186158   int i;
187159
188160   konami_configure_set_lines(m_maincpu, surpratk_banking);
161   m_bank0000->set_bank(0);
189162
190163   for (i = 0; i < 3; i++)
191164   {
r30768r30769
194167   }
195168
196169   m_sprite_colorbase = 0;
197   m_videobank = 0;
198170}
199171
200172static MACHINE_CONFIG_START( surpratk, surpratk_state )
201173
202174   /* basic machine hardware */
203   MCFG_CPU_ADD("maincpu", KONAMI, 3000000)    /* 053248 */
175   MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 053248, the clock input is 12MHz, and internal CPU divider of 4 */
204176   MCFG_CPU_PROGRAM_MAP(surpratk_map)
205177   MCFG_CPU_VBLANK_INT_DRIVER("screen", surpratk_state,  surpratk_interrupt)
206178
179   MCFG_DEVICE_ADD("bank0000", ADDRESS_MAP_BANK, 0)
180   MCFG_DEVICE_PROGRAM_MAP(bank0000_map)
181   MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
182   MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
183   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(13)
184   MCFG_ADDRESS_MAP_BANK_STRIDE(0x800)
207185
208186   /* video hardware */
209187   MCFG_SCREEN_ADD("screen", RASTER)
r30768r30769
233211   /* sound hardware */
234212   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
235213
236   MCFG_YM2151_ADD("ymsnd", 3579545)
214   MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz)
237215   MCFG_YM2151_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_FIRQ_LINE))
238216   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
239217   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
r30768r30769
247225
248226
249227ROM_START( suratk )
250   ROM_REGION( 0x48000, "maincpu", 0 ) /* code + banked roms + palette RAM */
251   ROM_LOAD( "911j01.f5", 0x10000, 0x20000, CRC(1e647881) SHA1(241e421d5599ebd9fcfb8be9c48dfd3b4c671958) )
252   ROM_LOAD( "911k02.h5", 0x30000, 0x18000, CRC(ef10e7b6) SHA1(0b41a929c0c579d688653a8d90dd6b40db12cfb3) )
253   ROM_CONTINUE(           0x08000, 0x08000 )
228   ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked roms */
229   ROM_LOAD( "911j01.f5", 0x00000, 0x20000, CRC(1e647881) SHA1(241e421d5599ebd9fcfb8be9c48dfd3b4c671958) )
230   ROM_LOAD( "911k02.h5", 0x20000, 0x20000, CRC(ef10e7b6) SHA1(0b41a929c0c579d688653a8d90dd6b40db12cfb3) )
254231
255   ROM_REGION( 0x080000, "gfx1", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
256   ROM_LOAD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */
257   ROM_LOAD( "911d06.bin", 0x040000, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */
232   ROM_REGION( 0x080000, "gfx1", 0 ) /* graphics */
233   ROM_LOAD32_WORD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */
234   ROM_LOAD32_WORD( "911d06.bin", 0x000002, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */
258235
259   ROM_REGION( 0x080000, "k053244", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
236   ROM_REGION( 0x080000, "k053244", 0 ) /* graphics */
260237   ROM_LOAD32_WORD( "911d03.bin", 0x000000, 0x040000, CRC(e34ff182) SHA1(075ca7a91c843bdac7da21ddfcd43f7a043a09b6) )  /* sprites */
261238   ROM_LOAD32_WORD( "911d04.bin", 0x000002, 0x040000, CRC(20700bd2) SHA1(a2fa4a3ee28c1542cdd798907a9ece249aadff0a) )  /* sprites */
262239ROM_END
263240
264241ROM_START( suratka )
265   ROM_REGION( 0x48000, "maincpu", 0 ) /* code + banked roms + palette RAM */
266   ROM_LOAD( "911j01.f5", 0x10000, 0x20000, CRC(1e647881) SHA1(241e421d5599ebd9fcfb8be9c48dfd3b4c671958) )
267   ROM_LOAD( "911l02.h5", 0x30000, 0x18000, CRC(11db8288) SHA1(09fe187855172ebf0c57f561cce7f41e47f53114) )
268   ROM_CONTINUE(           0x08000, 0x08000 )
242   ROM_REGION( 0x48000, "maincpu", 0 ) /* code + banked roms */
243   ROM_LOAD( "911j01.f5", 0x00000, 0x20000, CRC(1e647881) SHA1(241e421d5599ebd9fcfb8be9c48dfd3b4c671958) )
244   ROM_LOAD( "911l02.h5", 0x20000, 0x20000, CRC(11db8288) SHA1(09fe187855172ebf0c57f561cce7f41e47f53114) )
269245
270   ROM_REGION( 0x080000, "gfx1", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
271   ROM_LOAD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */
272   ROM_LOAD( "911d06.bin", 0x040000, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */
246   ROM_REGION( 0x080000, "gfx1", 0 ) /* graphics */
247   ROM_LOAD32_WORD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */
248   ROM_LOAD32_WORD( "911d06.bin", 0x000002, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */
273249
274   ROM_REGION( 0x080000, "k053244", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
250   ROM_REGION( 0x080000, "k053244", 0 ) /* graphics */
275251   ROM_LOAD32_WORD( "911d03.bin", 0x000000, 0x040000, CRC(e34ff182) SHA1(075ca7a91c843bdac7da21ddfcd43f7a043a09b6) )  /* sprites */
276252   ROM_LOAD32_WORD( "911d04.bin", 0x000002, 0x040000, CRC(20700bd2) SHA1(a2fa4a3ee28c1542cdd798907a9ece249aadff0a) )  /* sprites */
277253ROM_END
278254
279255ROM_START( suratkj )
280   ROM_REGION( 0x48000, "maincpu", 0 ) /* code + banked roms + palette RAM */
281   ROM_LOAD( "911m01.f5", 0x10000, 0x20000, CRC(ee5b2cc8) SHA1(4b05f7ba4e804a3bccb41fe9d3258cbcfe5324aa) )
282   ROM_LOAD( "911m02.h5", 0x30000, 0x18000, CRC(5d4148a8) SHA1(4fa5947db777b4c742775d588dea38758812a916) )
283   ROM_CONTINUE(           0x08000, 0x08000 )
256   ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked roms + palette RAM */
257   ROM_LOAD( "911m01.f5", 0x00000, 0x20000, CRC(ee5b2cc8) SHA1(4b05f7ba4e804a3bccb41fe9d3258cbcfe5324aa) )
258   ROM_LOAD( "911m02.h5", 0x20000, 0x20000, CRC(5d4148a8) SHA1(4fa5947db777b4c742775d588dea38758812a916) )
284259
285   ROM_REGION( 0x080000, "gfx1", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
286   ROM_LOAD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */
287   ROM_LOAD( "911d06.bin", 0x040000, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */
260   ROM_REGION( 0x080000, "gfx1", 0 ) /* graphics */
261   ROM_LOAD32_WORD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */
262   ROM_LOAD32_WORD( "911d06.bin", 0x000002, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */
288263
289   ROM_REGION( 0x080000, "k053244", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
264   ROM_REGION( 0x080000, "k053244", 0 ) /* graphics */
290265   ROM_LOAD32_WORD( "911d03.bin", 0x000000, 0x040000, CRC(e34ff182) SHA1(075ca7a91c843bdac7da21ddfcd43f7a043a09b6) )  /* sprites */
291266   ROM_LOAD32_WORD( "911d04.bin", 0x000002, 0x040000, CRC(20700bd2) SHA1(a2fa4a3ee28c1542cdd798907a9ece249aadff0a) )  /* sprites */
292267ROM_END
trunk/src/mame/drivers/gradius3.c
r30768r30769
282282static MACHINE_CONFIG_START( gradius3, gradius3_state )
283283
284284   /* basic machine hardware */
285   MCFG_CPU_ADD("maincpu", M68000, 10000000)   /* 10 MHz */
285   MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz)
286286   MCFG_CPU_PROGRAM_MAP(gradius3_map)
287287   MCFG_CPU_VBLANK_INT_DRIVER("screen", gradius3_state,  cpuA_interrupt)
288288
289   MCFG_CPU_ADD("sub", M68000, 10000000)   /* 10 MHz */
289   MCFG_CPU_ADD("sub", M68000, XTAL_10MHz)
290290   MCFG_CPU_PROGRAM_MAP(gradius3_map2)
291291   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gradius3_state, gradius3_sub_scanline, "screen", 0, 1)
292292                                                            /* 4 is triggered by cpu A, the others are unknown but */
trunk/src/mame/includes/surpratk.h
r30768r30769
44
55*************************************************************************/
66
7#include "machine/bankdev.h"
78#include "video/k053244_k053245.h"
89#include "video/k052109.h"
910#include "video/k053251.h"
r30768r30769
1415public:
1516   surpratk_state(const machine_config &mconfig, device_type type, const char *tag)
1617      : driver_device(mconfig, type, tag),
17      m_ram(*this, "ram"),
1818      m_maincpu(*this, "maincpu"),
19      m_bank0000(*this, "bank0000"),
1920      m_k052109(*this, "k052109"),
2021      m_k053244(*this, "k053244"),
2122      m_k053251(*this, "k053251"),
2223      m_palette(*this, "palette") { }
2324
24   /* memory pointers */
25   required_shared_ptr<UINT8> m_ram;
26   dynamic_array<UINT8> m_paletteram;
27
2825   /* video-related */
2926   int        m_layer_colorbase[3];
3027   int        m_sprite_colorbase;
3128   int        m_layerpri[3];
3229
33   /* misc */
34   int        m_videobank;
35
3630   /* devices */
3731   required_device<cpu_device> m_maincpu;
32   required_device<address_map_bank_device> m_bank0000;
3833   required_device<k052109_device> m_k052109;
3934   required_device<k05324x_device> m_k053244;
4035   required_device<k053251_device> m_k053251;
4136   required_device<palette_device> m_palette;
42   DECLARE_READ8_MEMBER(bankedram_r);
43   DECLARE_WRITE8_MEMBER(bankedram_w);
37
4438   DECLARE_WRITE8_MEMBER(surpratk_videobank_w);
4539   DECLARE_WRITE8_MEMBER(surpratk_5fc0_w);
4640   virtual void machine_start();
trunk/src/mame/video/konamiic.txt
r30768r30769
1818
1919- scrollcontrol = 30 in Golfing Greats (leader board)
2020
21- detatwin: sprites are left on screen during attract mode
2221
2322
2423                      Emulated
r30768r30769
177176Devastators         pass
178177Bottom of the Ninth pass
179178Punk Shot           pass
180Surprise Attack     fails D05-6 (052109) because it uses mirror addresses to
181                    select banks, and supporting those addresses breaks the
182                    normal game ;-(
179Surprise Attack     pass
183180Lightning Fighters  pass
184181Gradius 3           pass
185182Parodius            pass

Previous 199869 Revisions Next


© 1997-2024 The MAME Team