mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
changes based on PCB observations (nw)
This commit is contained in:
parent
19ed9384a6
commit
c38ba69bde
@ -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
|
||||
|
||||
|
||||
|
@ -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 );
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user