Previous 199869 Revisions Next

r44389 Saturday 23rd January, 2016 at 22:41:30 UTC by Robbbert
mz700: mz800 This should fix crash in debug build (nw)
[src/mame/drivers]m58.cpp
[src/mame/includes]m58.h
[src/mame/machine]mz700.cpp
[src/mame/video]m58.cpp

trunk/src/mame/drivers/m58.cpp
r252900r252901
211211
212212   /* sound hardware */
213213   MCFG_DEVICE_ADD("irem_audio", IREM_M52_LARGE_AUDIO, 0)
214
214215MACHINE_CONFIG_END
215216
216217
r252900r252901
221222 *
222223 *************************************/
223224
224ROM_START( 10yard ) // Dumped from an original Irem M52 board. Serial no. 307761/License Seal 09461.
225ROM_START( 10yard )
226// Dumped from an original Irem M52 board. Serial no. 307761/License Seal 09461.
225227   ROM_REGION( 0x10000, "maincpu", 0 )
226228   ROM_LOAD( "yf-a-3p-b",    0x0000, 0x2000, CRC(2e205ec2) SHA1(fcfa08f45423b35f2c99d4e6b5474ab1b3a84fec) )
227229   ROM_LOAD( "yf-a-3n-b",    0x2000, 0x2000, CRC(82fcd980) SHA1(7846705b29961cb95ee1571ee7e16baceea522d4) )
r252900r252901
382384   ROM_LOAD( "yf-b-5j.5j",      0x08000, 0x2000, CRC(713ef31f) SHA1(b48df9ed4f26fded3c7eaac3a52b580b2dd60477) )
383385   ROM_LOAD( "yf-b-5k.5k",      0x0a000, 0x2000, CRC(f49651cc) SHA1(5b87d7360bcd5883ec265b2a01a3e02e10a85345) )
384386
385   ROM_REGION( 0x0520, "proms", 0 ) // on these sets the content of the sprite color PROM needs reversing - are the proms on the other sets from bootleg boards, or hand modified?
387   ROM_REGION( 0x0520, "proms", 0 )
386388   ROM_LOAD( "yf-a-5c.5c",      0x0000, 0x0100, CRC(08fa5103) SHA1(98af48dafbbaa42f58232bf74ccbf5da41723e71) ) /* chars palette low 4 bits */
387389   ROM_LOAD( "yf-a-5d.5d",      0x0100, 0x0100, CRC(7c04994c) SHA1(790bf1616335b9df4943cffcafa48d8e8aee009e) ) /* chars palette high 4 bits */
388   ROMX_LOAD( "yf-b-2b.2b",     0x0200, 0x0020, CRC(fcd283ea) SHA1(6ebc3e966bb920685250f38edab5fe1f8a27c316), ROM_GROUPSIZE(16) | ROM_REVERSE ) /* sprites palette */
390   ROM_LOAD( "yf-b-2b.2b",      0x0200, 0x0020, CRC(fcd283ea) SHA1(6ebc3e966bb920685250f38edab5fe1f8a27c316) ) /* sprites palette */
389391   ROM_LOAD( "yf-b-3l.3l",      0x0220, 0x0100, CRC(e1cdfb06) SHA1(a8cc3456cfc272e3faac80370b2298d8e1f8c2fe) ) /* sprites lookup table */
390392   ROM_LOAD( "yf-b-2r.2r",      0x0320, 0x0100, CRC(cd85b646) SHA1(5268db705006058eec308afe474f4df3c15465bb) ) /* radar palette low 4 bits */
391393   ROM_LOAD( "yf-b-2p.2p",      0x0420, 0x0100, CRC(45384397) SHA1(e4c662ee81aef63efd8b4a45f85c4a78dc2d419e) ) /* radar palette high 4 bits */
r252900r252901
416418   ROM_LOAD( "yf-b-5j.5j",      0x08000, 0x2000, CRC(713ef31f) SHA1(b48df9ed4f26fded3c7eaac3a52b580b2dd60477) )
417419   ROM_LOAD( "yf-b-5k.5k",      0x0a000, 0x2000, CRC(f49651cc) SHA1(5b87d7360bcd5883ec265b2a01a3e02e10a85345) )
418420
419   ROM_REGION( 0x0520, "proms", 0 ) // on these sets the content of the sprite color PROM needs reversing - are the proms on the other sets from bootleg boards, or hand modified?
421   ROM_REGION( 0x0520, "proms", 0 )
420422   ROM_LOAD( "yf-a-5c.5c",      0x0000, 0x0100, CRC(08fa5103) SHA1(98af48dafbbaa42f58232bf74ccbf5da41723e71) ) /* chars palette low 4 bits */
421423   ROM_LOAD( "yf-a-5d.5d",      0x0100, 0x0100, CRC(7c04994c) SHA1(790bf1616335b9df4943cffcafa48d8e8aee009e) ) /* chars palette high 4 bits */
422   ROMX_LOAD( "yf-b-2b.2b",     0x0200, 0x0020, CRC(fcd283ea) SHA1(6ebc3e966bb920685250f38edab5fe1f8a27c316), ROM_GROUPSIZE(16) | ROM_REVERSE ) /* sprites palette */
424   ROM_LOAD( "yf-b-2b.2b",      0x0200, 0x0020, CRC(fcd283ea) SHA1(6ebc3e966bb920685250f38edab5fe1f8a27c316) ) /* sprites palette */
423425   ROM_LOAD( "yf-b-3l.3l",      0x0220, 0x0100, CRC(e1cdfb06) SHA1(a8cc3456cfc272e3faac80370b2298d8e1f8c2fe) ) /* sprites lookup table */
424426   ROM_LOAD( "yf-b-2r.2r",      0x0320, 0x0100, CRC(cd85b646) SHA1(5268db705006058eec308afe474f4df3c15465bb) ) /* radar palette low 4 bits */
425427   ROM_LOAD( "yf-b-2p.2p",      0x0420, 0x0100, CRC(45384397) SHA1(e4c662ee81aef63efd8b4a45f85c4a78dc2d419e) ) /* radar palette high 4 bits */
426428ROM_END
427429
430/*************************************
431 *
432 *  Game drivers
433 *
434 *************************************/
428435
429/*    YEAR  NAME       PARENT    MACHINE  INPUT     INIT              MONITOR, COMPANY, FULLNAME, FLAGS */
430GAME( 1983, 10yard,    0,        yard,    yard,     driver_device, 0, ROT0, "Irem", "10-Yard Fight (World, set 1)", MACHINE_SUPPORTS_SAVE ) // no copyright
431GAME( 1983, 10yardj,   10yard,   yard,    yard,     driver_device, 0, ROT0, "Irem", "10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE )
432GAME( 1984, vs10yard,  10yard,   yard,    vs10yard, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (World, 11/05/84)", MACHINE_SUPPORTS_SAVE )
433GAME( 1984, vs10yardj, 10yard,   yard,    vs10yarj, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE )
434GAME( 1984, vs10yardu, 10yard,   yard,    vs10yard, driver_device, 0, ROT0, "Irem (Taito license)", "Vs 10-Yard Fight (US, Taito license)", MACHINE_SUPPORTS_SAVE ) // had '85 stickers, but doesn't have '85 on the title screen like the set below
435GAME( 1985, 10yard85,  10yard,   yard,    yard,     driver_device, 0, ROT0, "Irem (Taito license)", "10-Yard Fight '85 (US, Taito license)", MACHINE_SUPPORTS_SAVE )
436DRIVER_INIT_MEMBER(m58_state,yard85)
437{
438   // on these sets the content of the sprite color PROM needs reversing
439   //  are the proms on the other sets from bootleg boards, or hand modified?
440   std::unique_ptr<UINT8[]> buffer = std::make_unique<UINT8[]>(0x10);
441   UINT8* region = memregion("proms")->base();
442   int i;
443
444   for (i=0;i<0x10;i++)
445   {
446      buffer[i] = region[0x20f-i];
447   }
448   memcpy(region+0x200, buffer.get(), 0x10);
449   m_palette->update();
450}
451
452GAME( 1983, 10yard,   0,        yard,     yard, driver_device,     0, ROT0, "Irem", "10-Yard Fight (World, set 1)", MACHINE_SUPPORTS_SAVE ) // no copyright
453GAME( 1983, 10yardj,  10yard,   yard,     yard, driver_device,     0, ROT0, "Irem", "10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE )
454GAME( 1984, vs10yard, 10yard,   yard,     vs10yard, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (World, 11/05/84)", MACHINE_SUPPORTS_SAVE )
455GAME( 1984, vs10yardj,10yard,   yard,     vs10yarj, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (Japan)", MACHINE_SUPPORTS_SAVE )
456GAME( 1984, vs10yardu,10yard,   yard,     vs10yard, m58_state, yard85, ROT0, "Irem (Taito license)", "Vs 10-Yard Fight (US, Taito license)", MACHINE_SUPPORTS_SAVE ) // had '85 stickers, but doesn't have '85 on the title screen like the set below
457GAME( 1985, 10yard85, 10yard,   yard,     yard, m58_state,     yard85, ROT0, "Irem (Taito license)", "10-Yard Fight '85 (US, Taito license)", MACHINE_SUPPORTS_SAVE )
trunk/src/mame/includes/m58.h
r252900r252901
11// license:BSD-3-Clause
22// copyright-holders:Lee Taylor
33// thanks-to:John Clegg
4/****************************************************************************
5
6    Irem M58 hardware
7
8****************************************************************************/
9
104class m58_state : public driver_device
115{
126public:
r252900r252901
2115      m_scroll_x_low(*this, "scroll_x_low"),
2216      m_scroll_x_high(*this, "scroll_x_high"),
2317      m_scroll_y_low(*this, "scroll_y_low"),
24      m_score_panel_disabled(*this, "score_disable")
25   { }
18      m_score_panel_disabled(*this, "score_disable") { }
2619
2720   /* devices */
2821   required_device<cpu_device> m_maincpu;
r252900r252901
3932   required_shared_ptr<UINT8> m_score_panel_disabled;
4033
4134   /* video-related */
42   tilemap_t* m_bg_tilemap;
43   bitmap_ind16 m_scroll_panel_bitmap;
35   tilemap_t*             m_bg_tilemap;
36   bitmap_ind16             m_scroll_panel_bitmap;
4437
4538   DECLARE_WRITE8_MEMBER(videoram_w);
4639   DECLARE_WRITE8_MEMBER(scroll_panel_w);
4740   DECLARE_WRITE8_MEMBER(flipscreen_w);
4841
42   DECLARE_DRIVER_INIT(yard85);
4943   virtual void video_start() override;
5044   DECLARE_PALETTE_INIT(m58);
5145
trunk/src/mame/machine/mz700.cpp
r252900r252901
7070   m_cgram = std::make_unique<UINT8[]>(0x1000);
7171   memset(m_cgram.get(), 0, sizeof(UINT8) * 0x1000);
7272
73   m_p_chargen = memregion("cgrom")->base();
74   if (!m_p_chargen)
73   if (memregion("cgrom"))
74      m_p_chargen = memregion("cgrom")->base();
75   else
7576      m_p_chargen = m_cgram.get();
7677   UINT8 *rom = memregion("monitor")->base();
7778   UINT8 *ram = m_ram->pointer();
trunk/src/mame/video/m58.cpp
r252900r252901
1111#include "video/resnet.h"
1212#include "includes/m58.h"
1313
14#define SCROLL_PANEL_WIDTH  (14*4)
15#define RADAR_PALETTE_BASE  (256)
1416
1517
18
1619/*************************************
1720 *
1821 *  Palette configuration
r252900r252901
111114
112115WRITE8_MEMBER(m58_state::scroll_panel_w)
113116{
114   int sx = ( offset % 16 );
115   int sy = ( offset / 16 );
117   int sx,sy,i;
116118
119   sx = ( offset % 16 );
120   sy = ( offset / 16 );
121
117122   if (sx < 1 || sx > 14)
118123      return;
119124
120125   sx = 4 * (sx - 1);
121126
122   for (int i = 0;i < 4;i++)
127   for (i = 0;i < 4;i++)
123128   {
124129      int col;
125130
126131      col = (data >> i) & 0x11;
127132      col = ((col >> 3) | col) & 3;
128133
129      m_scroll_panel_bitmap.pix16(sy, sx + i) = 0x100 + (sy & 0xfc) + col;
134      m_scroll_panel_bitmap.pix16(sy, sx + i) = RADAR_PALETTE_BASE + (sy & 0xfc) + col;
130135   }
131136}
132137
r252900r252901
173178   int height = m_screen->height();
174179   const rectangle &visarea = m_screen->visible_area();
175180
176   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(m58_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::tilemap_scan_rows),this), 8, 8, 64, 32);
181   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(m58_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::tilemap_scan_rows),this), 8, 8, 64, 32);
177182   m_bg_tilemap->set_scrolldx(visarea.min_x, width - (visarea.max_x + 1));
178183   m_bg_tilemap->set_scrolldy(visarea.min_y - 8, height + 16 - (visarea.max_y + 1));
179184
185   //m_scroll_panel_bitmap = std::make_unique<bitmap_ind16>(SCROLL_PANEL_WIDTH, height);
180186   m_screen->register_screen_bitmap(m_scroll_panel_bitmap);
181187   save_item(NAME(m_scroll_panel_bitmap));
182188}
r252900r252901
206212 *
207213 *************************************/
208214
215#define DRAW_SPRITE(code, sy)  m_gfxdecode->gfx(1)->transmask(bitmap,cliprect, code, color, flipx, flipy, sx, sy, m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 512));
216
209217void m58_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
210218{
219   int offs;
211220   const rectangle &visarea = m_screen->visible_area();
212221
213   for (int offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
222   for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
214223   {
215224      int attr = m_spriteram[offs + 1];
216225      int bank = (attr & 0x20) >> 5;
r252900r252901
245254      {
246255         sy2 = sy1 + 0x10;
247256      }
248     
249      m_gfxdecode->gfx(1)->transmask(bitmap, cliprect,
250         code1 + 256 * bank, color,
251         flipx, flipy, sx, visarea.min_y + sy1,
252         m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 512)
253      );
254      m_gfxdecode->gfx(1)->transmask(bitmap, cliprect,
255         code2 + 256 * bank, color,
256         flipx, flipy, sx, visarea.min_y + sy2,
257         m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 512)
258      );
257
258      DRAW_SPRITE(code1 + 256 * bank, visarea.min_y + sy1)
259      DRAW_SPRITE(code2 + 256 * bank, visarea.min_y + sy2)
259260   }
260261}
261262
r252900r252901
275276      const rectangle clippanelflip(0*8, 6*8-1, 1*8, 31*8-1);
276277      rectangle clip = flip_screen() ? clippanelflip : clippanel;
277278      const rectangle &visarea = m_screen->visible_area();
278      int sx = flip_screen() ? cliprect.min_x - 8 : cliprect.max_x + 1 - 14*4;
279      int sx = flip_screen() ? cliprect.min_x - 8 : cliprect.max_x + 1 - SCROLL_PANEL_WIDTH;
279280      int yoffs = flip_screen() ? -40 : -16;
280281
281282      clip.min_y += visarea.min_y + yoffs;
282283      clip.max_y += visarea.max_y + yoffs;
283284      clip &= cliprect;
284285
285      copybitmap(bitmap, m_scroll_panel_bitmap, flip_screen(), flip_screen(), sx, visarea.min_y + yoffs, clip);
286      copybitmap(bitmap, m_scroll_panel_bitmap, flip_screen(), flip_screen(),
287               sx, visarea.min_y + yoffs, clip);
286288   }
287289}
288290


Previous 199869 Revisions Next


© 1997-2024 The MAME Team