changes based on PCB observations (nw)

This commit is contained in:
David Haywood 2016-04-28 17:25:02 +01:00
parent 19ed9384a6
commit c38ba69bde
3 changed files with 49 additions and 54 deletions

View File

@ -77,7 +77,6 @@
next to rom M-GF_A10.12K
the box must contain at least a Z80
possibly other sound hardware??
****************************************************************************
@ -478,9 +477,18 @@ static MACHINE_CONFIG_START( crgolf, crgolf_state )
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(16)
MCFG_ADDRESS_MAP_BANK_STRIDE(0x8000) /* technically 0x6000, but powers of 2 makes the memory map / address masking cleaner. */
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x20)
MCFG_PALETTE_INIT_OWNER(crgolf_state, crgolf)
/* video hardware */
MCFG_FRAGMENT_ADD(crgolf_video)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_UPDATE_DRIVER(crgolf_state, screen_update_crgolf)
MCFG_SCREEN_PALETTE("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -498,7 +506,7 @@ static MACHINE_CONFIG_DERIVED( crgolfhi, crgolf )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mastrglf, crgolf )
static MACHINE_CONFIG_DERIVED( mastrglf, crgolfhi )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
@ -511,6 +519,12 @@ static MACHINE_CONFIG_DERIVED( mastrglf, crgolf )
MCFG_CPU_IO_MAP(mastrglf_subio)
MCFG_CPU_VBLANK_INT_DRIVER("screen", crgolf_state, irq0_line_hold)
MCFG_DEVICE_REMOVE("palette")
MCFG_PALETTE_ADD("palette", 0x100)
MCFG_PALETTE_INIT_OWNER(crgolf_state, mastrglf)
MACHINE_CONFIG_END
@ -692,21 +706,25 @@ ROM_START( mastrglf )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "M-GF_A1.4A.27128", 0x00000, 0x04000, CRC(55b89e8f) SHA1(2860fd3f8e4241dc25bb9a14e8967cdcaf769432) )
ROM_REGION( 0x40000, "maindata", 0 )
ROM_LOAD( "M-GF_A2.5A.27256", 0x00000, 0x08000, CRC(98aa20d8) SHA1(64007c4706f8e2e3b57c4a8467b37d44e8be9a01) )
ROM_LOAD( "M-GF_A3.7A.27256", 0x08000, 0x08000, CRC(3f62b979) SHA1(90cc784230f6ed7fd3dd943e0808f0c3d722806a) )
ROM_LOAD( "M-GF_A4.8A.27256", 0x10000, 0x08000, CRC(08a470d1) SHA1(4dabff8fc915406b1d4f7936d925378eec0df915) )
ROM_LOAD( "M-GF_A5.10A.27256", 0x18000, 0x08000, CRC(4397c8a0) SHA1(deb9de1cf7ce6ddc69addf18ff5bf2f25ed11602) )
ROM_LOAD( "M-GF_A6.12A.27256", 0x20000, 0x08000, CRC(b1fccecf) SHA1(8fb5e40f34596d9faa73255afc2c2635e9008954) )
ROM_LOAD( "M-GF_A7.13A.27256", 0x28000, 0x08000, CRC(06075e41) SHA1(3426f4ede8449288519e25bc8a1d679bb5137279) )
ROM_LOAD( "M-GF_A8.15A.27256", 0x30000, 0x08000, CRC(9ea9183b) SHA1(55f54575cd662b6194f69532baa25c9b2272760f) )
ROM_LOAD( "M-GF_A9.16A.27256", 0x38000, 0x08000, CRC(61ab715f) SHA1(6b9cccaa83a9a9e44a46bae796e2f9eaa9f9c951) )
ROM_REGION( 0x30000, "maindata", 0 ) // 24 (0x18) * 0x2000 banks
ROM_LOAD( "M-GF_A2.5A.27256.ROM5", 0x00000, 0x08000, CRC(98aa20d8) SHA1(64007c4706f8e2e3b57c4a8467b37d44e8be9a01) )
ROM_LOAD( "M-GF_A3.7A.27256.ROM4", 0x08000, 0x08000, CRC(3f62b979) SHA1(90cc784230f6ed7fd3dd943e0808f0c3d722806a) )
ROM_LOAD( "M-GF_A4.8A.27256.ROM3", 0x10000, 0x08000, CRC(08a470d1) SHA1(4dabff8fc915406b1d4f7936d925378eec0df915) )
ROM_LOAD( "M-GF_A5.10A.27256.ROM2", 0x18000, 0x08000, CRC(4397c8a0) SHA1(deb9de1cf7ce6ddc69addf18ff5bf2f25ed11602) )
ROM_LOAD( "M-GF_A6.12A.27256.ROM1", 0x20000, 0x08000, CRC(b1fccecf) SHA1(8fb5e40f34596d9faa73255afc2c2635e9008954) )
ROM_LOAD( "M-GF_A7.13A.27256.ROM0", 0x28000, 0x08000, CRC(06075e41) SHA1(3426f4ede8449288519e25bc8a1d679bb5137279) )
ROM_REGION( 0x10000, "audiocpu", 0 ) // next to large module
ROM_LOAD( "M-GF_A10.12K.27256", 0x00000, 0x08000, CRC(d145b144) SHA1(52370d56106f0280c52266b5a727493a3396a8e3) )
ROM_REGION( 0x0020, "proms", 0 ) // temp, for the video code, need to verify if this PCB has a PROM
ROM_LOAD( "pr5877.1s", 0x0000, 0x0020, BAD_DUMP CRC(f880b95d) SHA1(5ad0ee39e2b9befaf3895ec635d5865b7b1e562b) )
ROM_REGION( 0x10000, "adpcm", 0 ) // MSM5205 samples
ROM_LOAD( "M-GF_A8.15A.27256", 0x00000, 0x08000, CRC(9ea9183b) SHA1(55f54575cd662b6194f69532baa25c9b2272760f) )
ROM_LOAD( "M-GF_A9.16A.27256", 0x08000, 0x08000, CRC(61ab715f) SHA1(6b9cccaa83a9a9e44a46bae796e2f9eaa9f9c951) )
ROM_REGION( 0x0300, "proms", 0 )
ROM_LOAD( "tbp24s10n.1", 0x0000, 0x0100, NO_DUMP )
ROM_LOAD( "tbp24s10n.2", 0x0100, 0x0100, NO_DUMP )
ROM_LOAD( "tbp24s10n.2", 0x0200, 0x0100, NO_DUMP )
ROM_END

View File

@ -26,7 +26,9 @@ public:
m_vrambank(*this, "vrambank"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_msm(*this, "msm"){ }
m_msm(*this, "msm"),
m_palette(*this, "palette")
{ }
@ -51,6 +53,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
optional_device<msm5205_device> m_msm;
required_device<palette_device> m_palette;
DECLARE_WRITE8_MEMBER(rom_bank_select_w);
DECLARE_READ8_MEMBER(switch_input_r);
DECLARE_READ8_MEMBER(analog_input_r);
@ -65,8 +68,9 @@ public:
DECLARE_DRIVER_INIT(crgolfhi);
virtual void machine_start() override;
virtual void machine_reset() override;
DECLARE_VIDEO_START(crgolf);
UINT32 screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_PALETTE_INIT(crgolf);
DECLARE_PALETTE_INIT(mastrglf);
UINT32 screen_update_crgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(main_to_sound_callback);
TIMER_CALLBACK_MEMBER(sound_to_main_callback);
void get_pens( pen_t *pens );

View File

@ -15,13 +15,15 @@
/*************************************
*
* Palette handling
* Video startup
*
*************************************/
void crgolf_state::get_pens( pen_t *pens )
PALETTE_INIT_MEMBER(crgolf_state, crgolf)
{
offs_t offs;
const UINT8 *prom = memregion("proms")->base();
@ -49,38 +51,26 @@ void crgolf_state::get_pens( pen_t *pens )
bit1 = (data >> 7) & 0x01;
b = 0x4f * bit0 + 0xa8 * bit1;
pens[offs] = rgb_t(r, g, b);
m_palette->set_pen_color(offs, r, g, b);
}
}
/*************************************
*
* Video startup
*
*************************************/
VIDEO_START_MEMBER(crgolf_state,crgolf)
PALETTE_INIT_MEMBER(crgolf_state, mastrglf)
{
}
/*************************************
*
* Video update
*
*************************************/
UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int flip = *m_screen_flip & 1;
offs_t offs;
pen_t pens[NUM_PENS];
get_pens(pens);
/* for each byte in the video RAM */
for (offs = 0; offs < VIDEORAM_SIZE / 3; offs++)
@ -126,7 +116,7 @@ UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_rgb32 &b
if (*m_color_select)
color = color | 0x10;
bitmap.pix32(y, x) = pens[color];
bitmap.pix16(y, x) = color;
/* next pixel */
data_a0 = data_a0 << 1;
@ -146,20 +136,3 @@ UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_rgb32 &b
return 0;
}
/*************************************
*
* Machine driver
*
*************************************/
MACHINE_CONFIG_FRAGMENT( crgolf_video )
MCFG_VIDEO_START_OVERRIDE(crgolf_state,crgolf)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_UPDATE_DRIVER(crgolf_state, screen_update_crgolf)
MACHINE_CONFIG_END