summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/bfcobra.cpp117
-rw-r--r--src/mame/drivers/harddriv.cpp1
-rw-r--r--src/mame/drivers/snk6502.cpp3
3 files changed, 15 insertions, 106 deletions
diff --git a/src/mame/drivers/bfcobra.cpp b/src/mame/drivers/bfcobra.cpp
index d26eff4d673..ae57eaed23e 100644
--- a/src/mame/drivers/bfcobra.cpp
+++ b/src/mame/drivers/bfcobra.cpp
@@ -83,6 +83,7 @@
#include "sound/upd7759.h"
#include "sound/ay8910.h"
#include "machine/nvram.h"
+#include "video/ramdac.h"
/*
@@ -168,26 +169,6 @@ struct bf_blitter_t
#define LOOPTYPE ( ( blitter.command&0x60 ) >> 5 )
-/*
- MUSIC Semiconductor TR9C1710 RAMDAC or equivalent
-*/
-struct ramdac_t
-{
- UINT8 addr_w;
- UINT8 addr_r;
- UINT8 mask;
-
- /* 18-bit colors */
- UINT8 color_r[3];
- UINT8 color_w[3];
- UINT32 table[256];
-
- /* Access counts */
- UINT8 count_r;
- UINT8 count_w;
-};
-
-
struct fdc_t
{
UINT8 MSR;
@@ -275,10 +256,7 @@ public:
UINT8 m_col7bit[256];
UINT8 m_col6bit[256];
struct bf_blitter_t m_blitter;
- struct ramdac_t m_ramdac;
struct fdc_t m_fdc;
- DECLARE_READ8_MEMBER(ramdac_r);
- DECLARE_WRITE8_MEMBER(ramdac_w);
DECLARE_READ8_MEMBER(chipset_r);
DECLARE_WRITE8_MEMBER(chipset_w);
DECLARE_WRITE8_MEMBER(rombank_w);
@@ -759,85 +737,6 @@ void bfcobra_state::RunBlit(address_space &space)
space.device().execute().spin_until_time(attotime::from_nsec( (1000000000 / Z80_XTAL)*cycles_used * 2 ) );
}
-
-READ8_MEMBER(bfcobra_state::ramdac_r)
-{
- struct ramdac_t &ramdac = m_ramdac;
- UINT8 val = 0xff;
-
- switch (offset & 3)
- {
- case 1:
- {
- UINT8 *count = &ramdac.count_r;
-
- if (*count == 0)
- {
- rgb_t color;
- color = m_palette->pen_color(ramdac.addr_r);
-
- ramdac.color_r[0] = color.r();
- ramdac.color_r[1] = color.g();
- ramdac.color_r[2] = color.b();
- }
-
- val = ramdac.color_r[*count];
-
- /* 8bpp -> 6bpp */
- val = ((val & 0xc0) >> 2) | ((val >>2) & 0xf);
-
- if (++*count == 3)
- {
- *count = 0;
- ramdac.addr_r++;
- }
- break;
- }
- default:
- {
- osd_printf_debug("Unhandled RAMDAC read (PC:%.4x)\n", space.device().safe_pcbase());
- }
- }
-
- return val;
-}
-
-WRITE8_MEMBER(bfcobra_state::ramdac_w)
-{
- struct ramdac_t &ramdac = m_ramdac;
-
- switch (offset & 3)
- {
- case 0:
- {
- ramdac.addr_w = data;
- break;
- }
- case 1:
- {
- data &= 0x3f;
- ramdac.color_w[ramdac.count_w] = pal6bit(data);
- if (++ramdac.count_w == 3)
- {
- m_palette->set_pen_color(ramdac.addr_w, ramdac.color_w[0], ramdac.color_w[1], ramdac.color_w[2]);
- ramdac.count_w = 0;
- ramdac.addr_w++;
- }
- break;
- }
- case 2:
- {
- ramdac.mask = data;
- break;
- }
- case 3:
- {
- ramdac.addr_r = data;
- break;
- }
- }
-}
-
/***************************************************************************
Flare One Register Map
@@ -1340,7 +1239,6 @@ void bfcobra_state::machine_reset()
}
m_bank_data[0] = 1;
- memset(&m_ramdac, 0, sizeof(m_ramdac));
reset_fdc();
m_irq_state = m_blitter_irq = m_vblank_irq = m_acia_irq = 0;
@@ -1369,7 +1267,15 @@ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ(fdctrl_r)
AM_RANGE(0x31, 0x31) AM_READWRITE(fddata_r, fdctrl_w)
AM_RANGE(0x40, 0x40) AM_WRITE(rombank_w)
- AM_RANGE(0x50, 0x53) AM_READWRITE(ramdac_r, ramdac_w)
+ AM_RANGE(0x50, 0x50) AM_DEVWRITE("ramdac", ramdac_device, index_w)
+ AM_RANGE(0x51, 0x51) AM_DEVREADWRITE("ramdac", ramdac_device, pal_r, pal_w)
+ AM_RANGE(0x52, 0x52) AM_DEVWRITE("ramdac", ramdac_device, mask_w)
+ AM_RANGE(0x53, 0x53) AM_DEVWRITE("ramdac", ramdac_device, index_r_w)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, bfcobra_state )
+ AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac", ramdac_device, ramdac_pal_r, ramdac_rgb666_w)
ADDRESS_MAP_END
@@ -1746,6 +1652,9 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state )
MCFG_PALETTE_ADD("palette", 256)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette") // MUSIC Semiconductor TR9C1710 RAMDAC or equivalent
+ MCFG_RAMDAC_SPLIT_READ(1)
+
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, M6809_XTAL)
diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp
index 983517a5acc..af2d95ec333 100644
--- a/src/mame/drivers/harddriv.cpp
+++ b/src/mame/drivers/harddriv.cpp
@@ -652,6 +652,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("adsp_pgm_memory")
+ AM_RANGE(0x2000, 0x3fff) AM_READNOP // ROM?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/snk6502.cpp b/src/mame/drivers/snk6502.cpp
index 4b68e0c7bf3..730cedbce28 100644
--- a/src/mame/drivers/snk6502.cpp
+++ b/src/mame/drivers/snk6502.cpp
@@ -276,7 +276,6 @@ Stephh's notes (based on the games M6502 code and some tests) :
- music freq (Satan of Saturn and clone)
- correct music waveform/volume control
- correct ROM names
- - fantasy is German? (the continue text is in German)
*/
@@ -1595,7 +1594,7 @@ GAME( 1981, satansatind,satansat,satansat,satansat, driver_device, 0, ROT90, "bo
GAME( 1981, vanguard, 0, vanguard, vanguard, driver_device, 0, ROT90, "SNK", "Vanguard (SNK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1981, vanguardc,vanguard, vanguard, vanguard, driver_device, 0, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1981, vanguardj,vanguard, vanguard, vanguard, driver_device, 0, ROT90, "SNK", "Vanguard (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, fantasy, 0, fantasy, fantasy, driver_device, 0, ROT90, "SNK", "Fantasy (World)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, fantasy, 0, fantasy, fantasy, driver_device, 0, ROT90, "SNK", "Fantasy (Germany)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg?
GAME( 1981, fantasyu, fantasy, fantasy, fantasyu, driver_device, 0, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1981, fantasyj, fantasy, fantasy, fantasyu, driver_device, 0, ROT90, "SNK", "Fantasy (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1982, pballoon, 0, pballoon, pballoon, driver_device, 0, ROT90, "SNK", "Pioneer Balloon", MACHINE_SUPPORTS_SAVE )