Fixed regression. (nw)

This commit is contained in:
Curt Coder 2012-11-28 15:55:59 +00:00
parent 3f5c09e4b9
commit 5dd674b178
3 changed files with 279 additions and 202 deletions

View File

@ -40,7 +40,7 @@ public:
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
optional_device<okim6295_device> m_oki;
optional_device<ym2151_device> m_ymsnd;
optional_device<device_t> m_ymsnd; // TODO set correct type
optional_device<k053936_device> m_k053936;
/* memory pointers */
optional_shared_ptr<UINT16> m_vram_0;

View File

@ -145,6 +145,43 @@ PCB - German Version:
| +----+ +----+ E493 +----+ |
+------+ +--------------------------------------+ +-----------------------------------+ +----------+
Leader 8008 CX (German version)
+---+-----------+-----+-----------------------+-----+-----+-----+
| |SERIAL PORT| |PARALLEL PORT (PRINTER)| |MOUSE| |
| +-----------+ +-----------------------+ +-----+ |
| |
| |
| |
| |
| +----+ |
| | A0 | |
| +----+ |
| |
| |
| +--------+ |
| | | |
| CPU | VTECH | +------+ |
| |LHMV5GNS| | | |
| | | |GM76U8| |
| |1999 | |128CLF| |
| |27-6393-| |W85 | |
| +-----------+ |11 | | | |
| |27-6296-0-0| | | | | |
| |47C241M NH7| | | +------+ |
| +-----------+ +--------+ |
| |
| |
| |
| |
+---------------------------------------------------------------+
CPU = epoxy blob
GM76U8128CLFW85 = LGS / Hynix 131,072 WORDS x 8 BIT CMOS SRAM
TMP47C241MG = TCLS-47 series 4-bit CPU with 2048x8 internal ROM
****************************************************************************/
#include "emu.h"
@ -204,6 +241,18 @@ private:
} m_keyboard;
};
class gl8008cx_state : public driver_device
{
public:
gl8008cx_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu")
{ }
required_device<cpu_device> m_maincpu;
virtual UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void geniusiq_state::palette_init()
{
@ -232,6 +281,11 @@ void geniusiq_state::palette_init()
palette_set_color_rgb(machine(), i, palette[i*3], palette[i*3+1], palette[i*3+2]);
}
UINT32 gl8008cx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
UINT32 geniusiq_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
for (int y=0; y<256; y++)
@ -390,6 +444,10 @@ INPUT_CHANGED_MEMBER( geniusiq_state::send_input )
queue_input(data);
}
static ADDRESS_MAP_START(gl8008cx_mem, AS_PROGRAM, 16, gl8008cx_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1FFFFF) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START(geniusiq_mem, AS_PROGRAM, 16, geniusiq_state)
ADDRESS_MAP_UNMAP_HIGH
@ -632,6 +690,8 @@ static INPUT_PORTS_START( geniusiq_de )
PORT_CONFSETTING( 0x03, "No cartridge" )
INPUT_PORTS_END
static INPUT_PORTS_START( gl8008cx )
INPUT_PORTS_END
void geniusiq_state::machine_reset()
{
@ -672,11 +732,25 @@ static MACHINE_CONFIG_DERIVED( iqtv512, iq128 )
MCFG_AMD_29F040_ADD("flash")
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( gl8008cx, gl8008cx_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) // TODO wrong CPU and frequency
MCFG_CPU_PROGRAM_MAP(gl8008cx_mem)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_SCREEN_UPDATE_DRIVER( gl8008cx_state, screen_update )
MACHINE_CONFIG_END
/* ROM definition */
ROM_START( gl8008cx )
ROM_START( iq128 )
ROM_REGION(0x200000, "maincpu", 0)
ROM_LOAD( "8008cx_ger.bin", 0x0000, 0x200000, CRC(fd49db46) SHA1(fc55bb31f42068f9d6cc8e2c2f419c3c4edb4fe6) )
ROM_LOAD( "27-5947-00.bin", 0x0000, 0x200000, CRC(a98fc3ff) SHA1(de76a5898182bd0180bd2b3e34c4502f0918a3fa) )
ROM_END
ROM_START( iq128_fr )
@ -684,20 +758,23 @@ ROM_START( iq128_fr )
ROM_LOAD( "geniusiq.bin", 0x0000, 0x200000, CRC(9b06cbf1) SHA1(b9438494a9575f78117c0033761f899e3c14e292) )
ROM_END
ROM_START( iq128 )
ROM_REGION(0x200000, "maincpu", 0)
ROM_LOAD( "german.rom", 0x0000, 0x200000, CRC(a98fc3ff) SHA1(de76a5898182bd0180bd2b3e34c4502f0918a3fa) )
ROM_END
ROM_START( iqtv512 )
ROM_REGION(0x200000, "maincpu", 0)
ROM_LOAD( "tv512_german.rom", 0x0000, 0x200000, CRC(2597af70) SHA1(9db8151a84517407d380424410b6fa0003ceb1eb) )
ROM_LOAD( "27-06171-000.bin", 0x0000, 0x200000, CRC(2597af70) SHA1(9db8151a84517407d380424410b6fa0003ceb1eb) )
ROM_END
ROM_START( gl8008cx )
ROM_REGION(0x200000, "maincpu", 0)
ROM_LOAD( "27-6393-11.u1", 0x0000, 0x200000, CRC(fd49db46) SHA1(fc55bb31f42068f9d6cc8e2c2f419c3c4edb4fe6) )
ROM_REGION(0x800, "subcpu", 0)
ROM_LOAD( "27-6296-0-0.u3", 0x000, 0x800, NO_DUMP )
ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( ????, gl8008cx, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Genius Leader 8008 CX (Germany)", GAME_IS_SKELETON)
COMP( 1997, iq128_fr, iq128, 0, iq128, geniusiq, driver_device, 0, "Video Technology", "Genius IQ 128 (France)", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 1997, iq128, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Genius IQ 128 (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 1997, iq128_fr, iq128, 0, iq128, geniusiq, driver_device, 0, "Video Technology", "Genius IQ 128 (France)", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 1998, iqtv512, 0, 0, iqtv512, geniusiq_de, driver_device, 0, "Video Technology", "Genius IQ TV 512 (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
COMP( 1999, gl8008cx, 0, 0, gl8008cx, gl8008cx, driver_device, 0, "Video Technology", "Genius Leader 8008 CX (Germany)", GAME_IS_SKELETON)

View File

@ -108,7 +108,7 @@ public:
{ }
required_device<cpu_device> m_maincpu;
required_device<ay8912_device> m_ay;
required_device<ay8910_device> m_ay;
optional_device<upd765_family_device> m_fdc; // not on a GX4000
required_device<mc6845_device> m_crtc;
required_device<screen_device> m_screen;