Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a skeleton driver for VTech Genius Color Pocket console #13276

Merged
merged 4 commits into from
Feb 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -47041,6 +47041,9 @@ wizzard //
gamemach //
v4in1eg //

@source:vtech/geniuscolor.cpp
geniuscps

@source:vtech/geniusiq.cpp
iq128 // 1997 Genius IQ 128 (Germany)
iq128_fr // 1997 Genius PC (France)
Expand Down
80 changes: 80 additions & 0 deletions src/mame/vtech/geniuscolor.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// license:BSD-3-Clause
// copyright-holders:


/*************************************************************************************************************

Skeleton driver for VTech Genius Color Pocket / Super Color Pocket / Genio Color Pocket.

VTech 35-140500-100-203 PCB with MX25L3206E and N25S10 serial ROMs on one side and two globs on the other.
Unknown CPU, program ROM seems compressed.

*************************************************************************************************************/


#include "emu.h"

#include "screen.h"
#include "speaker.h"


namespace {


class geniuscolor_state : public driver_device
{
public:
geniuscolor_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_screen(*this, "screen")
{ }

void geniuscolor(machine_config &config) ATTR_COLD;

protected:
required_device<screen_device> m_screen;

uint32_t screen_update_geniuscolor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};

uint32_t geniuscolor_state::screen_update_geniuscolor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}

// 45-keys "slider" keyboard, 8 activity buttons, two direction keys (right, left) and home, OK and power buttons.
INPUT_PORTS_START( geniuscolor )
INPUT_PORTS_END

void geniuscolor_state::geniuscolor(machine_config &config)
{
// Unknown CPU

SCREEN(config, m_screen, SCREEN_TYPE_LCD); // 104x48 color LCD screen
m_screen->set_refresh_hz(60); // Guess
m_screen->set_size(104, 48);
m_screen->set_visarea(0, 104-1, 0, 48-1);
m_screen->set_screen_update(FUNC(geniuscolor_state::screen_update_geniuscolor));

SPEAKER(config, "mono").front_left();
}

// Spanish machine
ROM_START( geniuscps )
ROM_REGION( 0x010000, "maincpu", 0 )
ROM_LOAD( "internal.bin", 0x000000, 0x010000, NO_DUMP ) // Unknown CPU type, unknown internal ROM size

ROM_REGION( 0x400000, "program", 0 )
ROM_LOAD( "mx25l3206e.u1", 0x000000, 0x400000, CRC(fcc2e78d) SHA1(7f166256a10acfe854bac3fd2426ec4173d66518) ) // Compressed data?

ROM_REGION( 0x010000, "soundcpu", 0 )
ROM_LOAD( "sound_internal.bin", 0x000000, 0x010000, NO_DUMP ) // Unknown CPU type, unknown internal ROM size

ROM_REGION( 0x20000, "user", 0 ) // Probably user data
ROM_LOAD( "n25s10.u6", 0x000000, 0x020000, CRC(c5508360) SHA1(87c0855c90af2545a074df82411e5679e7309692) )
ROM_END

} // anonymous namespace


CONS( 2013, geniuscps, 0, 0, geniuscolor, geniuscolor, geniuscolor_state, empty_init, "VTech", "Genio Color Pocket (Spanish)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
Loading