mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
Some changes, MB90082 != MB90092
This commit is contained in:
parent
d0bae5a59d
commit
17d5c79fca
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -1601,8 +1601,8 @@ src/emu/video/k053250.c svneol=native#text/plain
|
|||||||
src/emu/video/k053250.h svneol=native#text/plain
|
src/emu/video/k053250.h svneol=native#text/plain
|
||||||
src/emu/video/m50458.c svneol=native#text/plain
|
src/emu/video/m50458.c svneol=native#text/plain
|
||||||
src/emu/video/m50458.h svneol=native#text/plain
|
src/emu/video/m50458.h svneol=native#text/plain
|
||||||
src/emu/video/mb90092.c svneol=native#text/plain
|
src/emu/video/mb90082.c svneol=native#text/plain
|
||||||
src/emu/video/mb90092.h svneol=native#text/plain
|
src/emu/video/mb90082.h svneol=native#text/plain
|
||||||
src/emu/video/mc6845.c svneol=native#text/plain
|
src/emu/video/mc6845.c svneol=native#text/plain
|
||||||
src/emu/video/mc6845.h svneol=native#text/plain
|
src/emu/video/mc6845.h svneol=native#text/plain
|
||||||
src/emu/video/msm6255.c svneol=native#text/plain
|
src/emu/video/msm6255.c svneol=native#text/plain
|
||||||
|
@ -903,7 +903,7 @@ data |= 0x02; // kludge for 20pacgal
|
|||||||
case Z180_CNTR:
|
case Z180_CNTR:
|
||||||
data = cpustate->IO_CNTR & Z180_CNTR_RMASK;
|
data = cpustate->IO_CNTR & Z180_CNTR_RMASK;
|
||||||
data &= ~0x10; // Super Famicom Box sets the TE bit then wants it to be toggled after 8 bits transmitted
|
data &= ~0x10; // Super Famicom Box sets the TE bit then wants it to be toggled after 8 bits transmitted
|
||||||
logerror("Z180 '%s' CNTR rd $%02x ($%02x)\n", cpustate->device->tag(), data, cpustate->io[port & 0x3f]);
|
LOG(("Z180 '%s' CNTR rd $%02x ($%02x)\n", cpustate->device->tag(), data, cpustate->io[port & 0x3f]));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Z180_TRDR:
|
case Z180_TRDR:
|
||||||
|
@ -295,7 +295,7 @@ EMUVIDEOOBJS = \
|
|||||||
$(EMUVIDEO)/i8275.o \
|
$(EMUVIDEO)/i8275.o \
|
||||||
$(EMUVIDEO)/k053250.o \
|
$(EMUVIDEO)/k053250.o \
|
||||||
$(EMUVIDEO)/m50458.o \
|
$(EMUVIDEO)/m50458.o \
|
||||||
$(EMUVIDEO)/mb90092.o \
|
$(EMUVIDEO)/mb90082.o \
|
||||||
$(EMUVIDEO)/mc6845.o \
|
$(EMUVIDEO)/mc6845.o \
|
||||||
$(EMUVIDEO)/msm6255.o \
|
$(EMUVIDEO)/msm6255.o \
|
||||||
$(EMUVIDEO)/pc_cga.o \
|
$(EMUVIDEO)/pc_cga.o \
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Fujitsu MB90092 OSD
|
Fujitsu MB90082 OSD
|
||||||
|
|
||||||
preliminary device by Angelo Salese
|
preliminary device by Angelo Salese
|
||||||
|
|
||||||
@ -10,7 +10,7 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "video/mb90092.h"
|
#include "video/mb90082.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -19,25 +19,28 @@
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
// device type definition
|
// device type definition
|
||||||
const device_type MB90092 = &device_creator<mb90092_device>;
|
const device_type MB90082 = &device_creator<mb90082_device>;
|
||||||
|
|
||||||
static ADDRESS_MAP_START( mb90092_vram, AS_0, 16, mb90092_device )
|
static ADDRESS_MAP_START( mb90082_vram, AS_0, 16, mb90082_device )
|
||||||
AM_RANGE(0x0000, 0x023f) AM_RAM // vram
|
AM_RANGE(0x0000, 0x023f) AM_RAM // main screen vram
|
||||||
|
AM_RANGE(0x0400, 0x063f) AM_RAM // main screen attr
|
||||||
|
// AM_RANGE(0x0800, 0x0a3f) AM_RAM // sub screen vram
|
||||||
|
// AM_RANGE(0x0c00, 0x0e3f) AM_RAM // sub screen attr
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
/* charset is undumped, but apparently a normal ASCII one is enough for the time being (for example "fnt0808.x1" in Sharp X1) */
|
/* charset is undumped, but apparently a normal ASCII one is enough for the time being (for example "fnt0808.x1" in Sharp X1) */
|
||||||
ROM_START( mb90092 )
|
ROM_START( mb90082 )
|
||||||
ROM_REGION( 0x0800, "mb90092", 0 )
|
ROM_REGION( 0x2000, "mb90082", ROMREGION_ERASEFF )
|
||||||
ROM_LOAD("mb90092_char.bin", 0x0000, 0x0800, NO_DUMP )
|
ROM_LOAD("mb90082_char.bin", 0x0000, 0x0800, NO_DUMP )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// rom_region - device-specific ROM region
|
// rom_region - device-specific ROM region
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
const rom_entry *mb90092_device::device_rom_region() const
|
const rom_entry *mb90082_device::device_rom_region() const
|
||||||
{
|
{
|
||||||
return ROM_NAME( mb90092 );
|
return ROM_NAME( mb90082 );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -45,7 +48,7 @@ const rom_entry *mb90092_device::device_rom_region() const
|
|||||||
// any address spaces owned by this device
|
// any address spaces owned by this device
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
const address_space_config *mb90092_device::memory_space_config(address_spacenum spacenum) const
|
const address_space_config *mb90082_device::memory_space_config(address_spacenum spacenum) const
|
||||||
{
|
{
|
||||||
return (spacenum == AS_0) ? &m_space_config : NULL;
|
return (spacenum == AS_0) ? &m_space_config : NULL;
|
||||||
}
|
}
|
||||||
@ -58,7 +61,7 @@ const address_space_config *mb90092_device::memory_space_config(address_spacenum
|
|||||||
// readbyte - read a byte at the given address
|
// readbyte - read a byte at the given address
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
inline UINT16 mb90092_device::read_word(offs_t address)
|
inline UINT16 mb90082_device::read_word(offs_t address)
|
||||||
{
|
{
|
||||||
return space()->read_word(address << 1);
|
return space()->read_word(address << 1);
|
||||||
}
|
}
|
||||||
@ -67,7 +70,7 @@ inline UINT16 mb90092_device::read_word(offs_t address)
|
|||||||
// writebyte - write a byte at the given address
|
// writebyte - write a byte at the given address
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
inline void mb90092_device::write_word(offs_t address, UINT16 data)
|
inline void mb90082_device::write_word(offs_t address, UINT16 data)
|
||||||
{
|
{
|
||||||
space()->write_word(address << 1, data);
|
space()->write_word(address << 1, data);
|
||||||
}
|
}
|
||||||
@ -77,15 +80,15 @@ inline void mb90092_device::write_word(offs_t address, UINT16 data)
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// mb90092_device - constructor
|
// mb90082_device - constructor
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
mb90092_device::mb90092_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
mb90082_device::mb90082_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, MB90092, "mb90092", tag, owner, clock),
|
: device_t(mconfig, MB90082, "mb90082", tag, owner, clock),
|
||||||
device_memory_interface(mconfig, *this),
|
device_memory_interface(mconfig, *this),
|
||||||
m_space_config("videoram", ENDIANNESS_LITTLE, 16, 16, 0, NULL, *ADDRESS_MAP_NAME(mb90092_vram))
|
m_space_config("videoram", ENDIANNESS_LITTLE, 16, 16, 0, NULL, *ADDRESS_MAP_NAME(mb90082_vram))
|
||||||
{
|
{
|
||||||
m_shortname = "mb90092";
|
m_shortname = "mb90082";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +98,7 @@ mb90092_device::mb90092_device(const machine_config &mconfig, const char *tag, d
|
|||||||
// on this device
|
// on this device
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void mb90092_device::device_validity_check(validity_checker &valid) const
|
void mb90082_device::device_validity_check(validity_checker &valid) const
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,7 +107,7 @@ void mb90092_device::device_validity_check(validity_checker &valid) const
|
|||||||
// device_start - device-specific startup
|
// device_start - device-specific startup
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void mb90092_device::device_start()
|
void mb90082_device::device_start()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -114,13 +117,9 @@ void mb90092_device::device_start()
|
|||||||
// device_reset - device-specific reset
|
// device_reset - device-specific reset
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void mb90092_device::device_reset()
|
void mb90082_device::device_reset()
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
m_cmd_ff = 0;
|
m_cmd_ff = 0;
|
||||||
|
|
||||||
for(i=0;i<0x120;i++)
|
|
||||||
write_word(i,0x00ff);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -128,7 +127,7 @@ void mb90092_device::device_reset()
|
|||||||
// READ/WRITE HANDLERS
|
// READ/WRITE HANDLERS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( mb90092_device::set_cs_line )
|
WRITE_LINE_MEMBER( mb90082_device::set_cs_line )
|
||||||
{
|
{
|
||||||
m_reset_line = state;
|
m_reset_line = state;
|
||||||
|
|
||||||
@ -139,7 +138,7 @@ WRITE_LINE_MEMBER( mb90092_device::set_cs_line )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WRITE8_MEMBER( mb90092_device::write )
|
WRITE8_MEMBER( mb90082_device::write )
|
||||||
{
|
{
|
||||||
UINT16 dat;
|
UINT16 dat;
|
||||||
|
|
||||||
@ -156,23 +155,42 @@ WRITE8_MEMBER( mb90092_device::write )
|
|||||||
{
|
{
|
||||||
case 0x80: // Preset VRAM address
|
case 0x80: // Preset VRAM address
|
||||||
m_osd_addr = dat & 0x1ff;
|
m_osd_addr = dat & 0x1ff;
|
||||||
//m_vsl = (dat & 0x200) >> 9);
|
m_fil = (dat & 0x200) >> 9;
|
||||||
break;
|
break;
|
||||||
case 0x88: //
|
case 0x88: // Attribute select
|
||||||
|
m_attr = dat;
|
||||||
break;
|
break;
|
||||||
case 0x90: // Write Character
|
case 0x90: // Write Character
|
||||||
int x,y;
|
int x,y;
|
||||||
x = (m_osd_addr & 0x01f);
|
x = (m_osd_addr & 0x01f);
|
||||||
y = (m_osd_addr & 0x1e0) >> 5;
|
y = (m_osd_addr & 0x1e0) >> 5;
|
||||||
//printf("%d %d\n",x,y);
|
|
||||||
write_word(x+y*24,dat);
|
if(m_fil)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if(x != 0)
|
||||||
|
printf("FIL with %d %d\n",x,y);
|
||||||
|
|
||||||
|
for(i=0;i<24;i++)
|
||||||
|
{
|
||||||
|
write_word((i+y*24)|0x000,dat);
|
||||||
|
write_word((i+y*24)|0x200,m_attr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
write_word((x+y*24)|0x000,dat);
|
||||||
|
write_word((x+y*24)|0x200,m_attr);
|
||||||
|
|
||||||
/* handle address increments */
|
/* handle address increments */
|
||||||
x = ((x + 1) % 24);
|
x = ((x + 1) % 24);
|
||||||
if(x == 0)
|
if(x == 0)
|
||||||
y = ((y + 1) % 12);
|
y = ((y + 1) % 12);
|
||||||
m_osd_addr = x + (y << 5);
|
m_osd_addr = x + (y << 5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0xd0: // Set Under Color
|
||||||
|
m_uc = dat & 7;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -182,11 +200,18 @@ WRITE8_MEMBER( mb90092_device::write )
|
|||||||
m_cmd_ff ^= 1;
|
m_cmd_ff ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 mb90092_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
UINT32 mb90082_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
int x,y;
|
int x,y;
|
||||||
UINT8 *pcg = memregion("mb90092")->base();
|
UINT8 *pcg = memregion("mb90082")->base();
|
||||||
UINT16 tile;
|
UINT16 tile,attr;
|
||||||
|
UINT8 bg_r,bg_g,bg_b;
|
||||||
|
|
||||||
|
/* TODO: there's probably a way to control the brightness in this */
|
||||||
|
bg_b = m_uc & 1 ? 0xdf : 0;
|
||||||
|
bg_g = m_uc & 2 ? 0xdf : 0;
|
||||||
|
bg_r = m_uc & 4 ? 0xdf : 0;
|
||||||
|
bitmap.fill(MAKE_ARGB(0xff,bg_r,bg_g,bg_b),cliprect);
|
||||||
|
|
||||||
for(y=0;y<12;y++)
|
for(y=0;y<12;y++)
|
||||||
{
|
{
|
||||||
@ -195,6 +220,7 @@ UINT32 mb90092_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap
|
|||||||
int xi,yi;
|
int xi,yi;
|
||||||
|
|
||||||
tile = read_word(x+y*24);
|
tile = read_word(x+y*24);
|
||||||
|
attr = read_word((x+y*24)|0x200);
|
||||||
|
|
||||||
/* TODO: charset hook-up is obviously WRONG so following mustn't be trusted at all */
|
/* TODO: charset hook-up is obviously WRONG so following mustn't be trusted at all */
|
||||||
for(yi=0;yi<16;yi++)
|
for(yi=0;yi<16;yi++)
|
||||||
@ -202,15 +228,18 @@ UINT32 mb90092_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap
|
|||||||
for(xi=0;xi<16;xi++)
|
for(xi=0;xi<16;xi++)
|
||||||
{
|
{
|
||||||
UINT8 pix;
|
UINT8 pix;
|
||||||
UINT32 pen;
|
UINT8 color = (attr & 0x70) >> 4;
|
||||||
|
UINT8 r,g,b;
|
||||||
|
|
||||||
pix = (pcg[(tile*8)+(yi >> 1)] >> (7-(xi >> 1))) & 1;
|
pix = (pcg[(tile*8)+(yi >> 1)] >> (7-(xi >> 1))) & 1;
|
||||||
|
|
||||||
pen = pix ? 0xffffff : 0;
|
/* TODO: check this */
|
||||||
if(tile == 0xff)
|
b = (color & 1) ? 0xff : 0;
|
||||||
pen = 0;
|
g = (color & 2) ? 0xff : 0;
|
||||||
|
r = (color & 4) ? 0xff : 0;
|
||||||
|
|
||||||
bitmap.pix32(y*16+yi,x*16+xi) = pen;
|
if(tile != 0xff && pix != 0)
|
||||||
|
bitmap.pix32(y*16+yi,x*16+xi) = r << 16 | g << 8 | b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,8 +6,8 @@ Template for skeleton device
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef __MB90092DEV_H__
|
#ifndef __MB90082DEV_H__
|
||||||
#define __MB90092DEV_H__
|
#define __MB90082DEV_H__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -15,8 +15,8 @@ Template for skeleton device
|
|||||||
// INTERFACE CONFIGURATION MACROS
|
// INTERFACE CONFIGURATION MACROS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
#define MCFG_MB90092_ADD(_tag,_freq) \
|
#define MCFG_MB90082_ADD(_tag,_freq) \
|
||||||
MCFG_DEVICE_ADD(_tag, MB90092, _freq) \
|
MCFG_DEVICE_ADD(_tag, MB90082, _freq) \
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -30,14 +30,14 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// ======================> mb90092_device
|
// ======================> mb90082_device
|
||||||
|
|
||||||
class mb90092_device : public device_t,
|
class mb90082_device : public device_t,
|
||||||
public device_memory_interface
|
public device_memory_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
mb90092_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
mb90082_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
|
||||||
// I/O operations
|
// I/O operations
|
||||||
DECLARE_WRITE8_MEMBER( write );
|
DECLARE_WRITE8_MEMBER( write );
|
||||||
@ -56,9 +56,13 @@ protected:
|
|||||||
private:
|
private:
|
||||||
UINT8 m_cmd_ff;
|
UINT8 m_cmd_ff;
|
||||||
UINT8 m_cmd,m_cmd_param;
|
UINT8 m_cmd,m_cmd_param;
|
||||||
UINT16 m_osd_addr;
|
|
||||||
UINT8 m_reset_line;
|
UINT8 m_reset_line;
|
||||||
|
|
||||||
|
UINT16 m_osd_addr;
|
||||||
|
UINT8 m_fil;
|
||||||
|
UINT8 m_uc;
|
||||||
|
UINT8 m_attr;
|
||||||
|
|
||||||
inline UINT16 read_word(offs_t address);
|
inline UINT16 read_word(offs_t address);
|
||||||
inline void write_word(offs_t address, UINT16 data);
|
inline void write_word(offs_t address, UINT16 data);
|
||||||
|
|
||||||
@ -67,7 +71,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
// device type definition
|
// device type definition
|
||||||
extern const device_type MB90092;
|
extern const device_type MB90082;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -119,7 +119,7 @@ How does the Super Famicom Box operates
|
|||||||
#include "cpu/g65816/g65816.h"
|
#include "cpu/g65816/g65816.h"
|
||||||
#include "cpu/z180/z180.h"
|
#include "cpu/z180/z180.h"
|
||||||
#include "machine/s3520cf.h"
|
#include "machine/s3520cf.h"
|
||||||
#include "video/mb90092.h"
|
#include "video/mb90082.h"
|
||||||
#include "includes/snes.h"
|
#include "includes/snes.h"
|
||||||
#include "audio/snes_snd.h"
|
#include "audio/snes_snd.h"
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
@ -130,12 +130,12 @@ public:
|
|||||||
sfcbox_state(const machine_config &mconfig, device_type type, const char *tag)
|
sfcbox_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: snes_state(mconfig, type, tag),
|
: snes_state(mconfig, type, tag),
|
||||||
m_bios(*this, "bios"),
|
m_bios(*this, "bios"),
|
||||||
m_mb90092(*this,"mb90092"),
|
m_mb90082(*this,"mb90082"),
|
||||||
m_s3520cf(*this, "s3520cf")
|
m_s3520cf(*this, "s3520cf")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_bios;
|
required_device<cpu_device> m_bios;
|
||||||
required_device<mb90092_device> m_mb90092;
|
required_device<mb90082_device> m_mb90082;
|
||||||
required_device<s3520cf_device> m_s3520cf;
|
required_device<s3520cf_device> m_s3520cf;
|
||||||
|
|
||||||
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
@ -151,7 +151,7 @@ public:
|
|||||||
|
|
||||||
UINT32 sfcbox_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
|
UINT32 sfcbox_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
|
||||||
{
|
{
|
||||||
m_mb90092->screen_update(screen,bitmap,cliprect);
|
m_mb90082->screen_update(screen,bitmap,cliprect);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ WRITE8_MEMBER( sfcbox_state::snes_map_1_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
static ADDRESS_MAP_START( sfcbox_io, AS_IO, 8, sfcbox_state )
|
static ADDRESS_MAP_START( sfcbox_io, AS_IO, 8, sfcbox_state )
|
||||||
AM_RANGE(0x0b, 0x0b) AM_DEVWRITE("mb90092",mb90092_device,write)
|
AM_RANGE(0x0b, 0x0b) AM_DEVWRITE("mb90082",mb90082_device,write)
|
||||||
AM_RANGE(0x00, 0x3f) AM_RAM // internal i/o
|
AM_RANGE(0x00, 0x3f) AM_RAM // internal i/o
|
||||||
AM_RANGE(0x80, 0x80) AM_READ_PORT("KEY") AM_WRITE(port_80_w) // Keyswitch and Button Inputs / SNES Transfer and Misc Output
|
AM_RANGE(0x80, 0x80) AM_READ_PORT("KEY") AM_WRITE(port_80_w) // Keyswitch and Button Inputs / SNES Transfer and Misc Output
|
||||||
AM_RANGE(0x81, 0x81) AM_READWRITE(port_81_r,port_81_w) // SNES Transfer and Misc Input / Misc Output
|
AM_RANGE(0x81, 0x81) AM_READWRITE(port_81_r,port_81_w) // SNES Transfer and Misc Input / Misc Output
|
||||||
@ -318,7 +318,7 @@ static INPUT_PORTS_START( snes )
|
|||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play Mode 1 Button")
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play Mode 1 Button")
|
||||||
|
|
||||||
PORT_START("OSD_CS")
|
PORT_START("OSD_CS")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mb90092", mb90092_device, set_cs_line)
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mb90082", mb90082_device, set_cs_line)
|
||||||
|
|
||||||
PORT_START("SERIAL1_DATA1_L")
|
PORT_START("SERIAL1_DATA1_L")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Button A") PORT_PLAYER(1)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Button A") PORT_PLAYER(1)
|
||||||
@ -489,7 +489,7 @@ static MACHINE_CONFIG_DERIVED( sfcbox, snes )
|
|||||||
MCFG_CPU_PROGRAM_MAP(sfcbox_map)
|
MCFG_CPU_PROGRAM_MAP(sfcbox_map)
|
||||||
MCFG_CPU_IO_MAP(sfcbox_io)
|
MCFG_CPU_IO_MAP(sfcbox_io)
|
||||||
|
|
||||||
MCFG_MB90092_ADD("mb90092",XTAL_12MHz / 2) /* TODO: correct clock */
|
MCFG_MB90082_ADD("mb90082",XTAL_12MHz / 2) /* TODO: correct clock */
|
||||||
MCFG_S3520CF_ADD("s3520cf") /* RTC */
|
MCFG_S3520CF_ADD("s3520cf") /* RTC */
|
||||||
|
|
||||||
MCFG_MACHINE_START( sfcbox )
|
MCFG_MACHINE_START( sfcbox )
|
||||||
|
Loading…
Reference in New Issue
Block a user