Skip to content
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
5 changes: 3 additions & 2 deletions src/devices/video/ppu2c0x_vt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -746,8 +746,9 @@ void ppu_vt3xx_device::lcdc_regs_w(offs_t offset, u8 data)
static const vid_mode mode_table[] = {
// configurations used for lower resolution output
{ 0, 159, 0, 127, { 0xa0, 0xff, 0x00, 0x40, 0xff, 0x04, 0x00, 0xa8, 0x04, 0x0f }, },
{ 0, 199, 0, 199, { 0xdc, 0xff, 0x00, 0x58, 0xff, 0x04, 0x10, 0xa8, 0x04, 0x00 }, }, // hkb502 menu, uncertain dimensions
{ 0, 127, 0, 159, { 0x80, 0x80, 0x00, 0x50, 0xff, 0x04, 0x00, 0xaa, 0x08, 0x00 }, }, // lexi30 menu
{ 0, 199, 0, 199, { 0xdc, 0xff, 0x00, 0x58, 0xff, 0x04, 0x10, 0xa8, 0x04, 0x00 }, }, // hkb502 menu, uncertain dimensions
{ 0, 127, 0, 159, { 0x80, 0x80, 0x00, 0x50, 0xff, 0x04, 0x00, 0xaa, 0x08, 0x00 }, }, // lexi30 menu
{ 0, 127, 0, 159, { 0x80, 0xff, 0x00, 0x50, 0xff, 0x04, 0x00, 0xa6, 0x04, 0x00 }, }, // jl1810gr
{ 0, 127, 0, 159, { 0x80, 0x3f, 0x00, 0x50, 0xff, 0x69, 0x00, 0x54, 0x08, 0x00 }, }, // gcs2mgp

// lxcypkdp uses this on the menus, they must rotate the rendering somehow as this is vertical and the games are horizontal!
Expand Down
28 changes: 28 additions & 0 deletions src/mame/handheld/evolution_handheld.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,31 @@ ROM_START( pokexyqz )
// also has an SD card slot (was empty)
ROM_END

ROM_START( pokesmqz )
ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_LOAD( "mx25l12845e.u3", 0x000000, 0x1000000, CRC(c9b79adf) SHA1(fd0180529166ed6daf73ae6734183031c42257a5) )

ROM_REGION( 0x800, "i2cmem", 0 )
ROM_LOAD( "24c16.u4", 0x000, 0x800, CRC(1b4058f2) SHA1(813961f0afd1b36d78563074ddc796cf8826c6ff) )
ROM_END

ROM_START( yuleyuan )
ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_LOAD( "25l128.bin", 0x0000000, 0x1000000, CRC(51ab49e2) SHA1(ecad532d27efea55031ffd31ac4479c9c4eceae6) )
ROM_END

ROM_START( tomyspt )
ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_LOAD( "mx25l12845e.u3", 0x000000, 0x1000000, CRC(3c8685ed) SHA1(289948c3d9a06db184397bc6a31ea594c404449d) )

// there was also a FT24C16.u4, blank on dumped unit
ROM_END

ROM_START( hoppech )
ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_LOAD( "25l128.u3", 0x000000, 0x1000000, CRC(4a983ab2) SHA1(d5571cf0f3fcf872826a2ff8b45be69336b117dd) )
ROM_END

void evolution_handheldgame_state::init_yuleyuan()
{
u16 *spi = &memregion("maincpu")->as_u16();
Expand All @@ -124,5 +144,13 @@ CONS( 2020, buttdtct, 0, 0, evolhh, evolhh, evolution_handheldgame

CONS( 2015, pokexyqz, 0, 0, evolhh, evolhh, evolution_handheldgame_state, empty_init, "Takara Tomy", "Pokemon Encyclopedia Z Pokemon XY Quiz Game Rotom (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

// ロトム図鑑 サン&ムーン ポケモン クイズ
CONS( 2015, pokesmqz, 0, 0, evolhh, evolhh, evolution_handheldgame_state, empty_init, "Takara Tomy", "Pokedex Sun & Moon Pokemon Quiz Rotom (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

CONS( 201?, tomyspt, 0, 0, evolhh, evolhh, evolution_handheldgame_state, empty_init, "Takara Tomy", "Pretty Rhythm Smart Pod Touch (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

// ほっぺちゃん スイ☆コレ ホワイト
CONS( 201?, hoppech, 0, 0, evolhh, evolhh, evolution_handheldgame_state, empty_init, "Takara Tomy", "Hoppe-chan Sweet Collection (white, Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

// 星座电子宠物机 (virtual pet by 育乐元)
CONS( 2022, yuleyuan, 0, 0, evolhh, evolhh, evolution_handheldgame_state, init_yuleyuan, "Yule Yuan", "Xingzuo Dianzi Chongwu Ji", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // dumped from yellow model
18 changes: 17 additions & 1 deletion src/mame/handheld/st2302u_bbl_spi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,20 @@ ROM_START(toumapet)
ROM_LOAD("p25d32sh.bin", 0x000000, 0x400000, CRC(25498f00) SHA1(c5c410e29f540d7f1fd4bbb333467f8a3eaccc15) )
ROM_END

ROM_START(touma560)
INTERNAL_ROM_TYPE2 // still does't boot with this one, is it different internal ROM again, or just different mappings?

ROM_REGION(0x800000, "spi", ROMREGION_ERASEFF)
ROM_LOAD("py25q64ha.bin", 0x000000, 0x800000, CRC(7974bf3c) SHA1(8467f869f86b51a86eb115e1408b30daa8f148e7) )
ROM_END

ROM_START(touma568)
INTERNAL_ROM_TYPE2 // still does't boot with this one, is it different internal ROM again, or just different mappings?

ROM_REGION(0x800000, "spi", ROMREGION_ERASEFF)
ROM_LOAD("p25q64sh.bin", 0x000000, 0x800000, CRC(32f6d834) SHA1(c0dc5b4792a6d86822a666a0f8de7380d1905505) )
ROM_END

ROM_START(qpet)
INTERNAL_ROM_TYPE2 // not checked if it uses this ROM type

Expand Down Expand Up @@ -513,7 +527,9 @@ CONS( 201?, dphh8633, 0, 0, bbl380_menuprot, bbl380_prot, bbl3
CONS( 2016, dphh8661, 0, 0, bbl380_menuprot, bbl380_prot, bbl380_state, empty_init, "<unknown>", "Digital Pocket Hand Held System 268-in-1 - Model 8661", MACHINE_NOT_WORKING ) // from PCP? (logo on back of console) 2016 date on PCB

// also has the 0xE4 XOR, also doesn't currently boot, could be yet another internal ROM
// there are also OK-560 and OK-568 models which may have different ROM or be on different hardware
CONS( 2021, toumapet, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "Shenzhen Shiji New Technology", "Tou ma Pet (OK-550)", MACHINE_NOT_WORKING )
CONS( 2021, touma560, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "Shenzhen Shiji New Technology", "Tou ma Pet (OK-560)", MACHINE_NOT_WORKING )
CONS( 2021, touma568, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "Shenzhen Shiji New Technology", "Tou ma Pet (OK-568)", MACHINE_NOT_WORKING )


CONS( 2020, qpet, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "M&D", "Q Pet (2nd version)", MACHINE_NOT_WORKING )
72 changes: 72 additions & 0 deletions src/mame/handheld/tama_4u.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// license:BSD-3-Clause
// copyright-holders:

// TODO: identify CPU type

#include "emu.h"

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


namespace {

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

void tama4u(machine_config &config) ATTR_COLD;

protected:
virtual void machine_start() override ATTR_COLD;

private:
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);

required_device<screen_device> m_screen;
};

u32 tama_4u_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}

void tama_4u_state::machine_start()
{
}


static INPUT_PORTS_START(tama4u)
INPUT_PORTS_END


void tama_4u_state::tama4u(machine_config &config)
{
// unknown CPU

// wrong, just so it's clear this has a screen
SCREEN(config, m_screen, SCREEN_TYPE_LCD);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(128, 128);
m_screen->set_visarea(0, 128 - 1, 0, 128 - 1);
m_screen->set_screen_update(FUNC(tama_4u_state::screen_update));

SPEAKER(config, "speaker").front_center();
}

ROM_START( tama4u )
ROM_REGION( 0x800000, "maincpu", 0 )
// vector table(?) at 0x400000, similar to tamaid
ROM_LOAD( "mx29lb640eb.u4", 0x000000, 0x800000, CRC(f9dcc04a) SHA1(5f5d738357219b2a4a1452835455abef25fe7dcb) )
ROM_END

} // anonymous namespace

// 2014/06/10 MODEL:WIZ245 on PCB
GAME( 2014, tama4u, 0, tama4u, tama4u, tama_4u_state, empty_init, ROT0, "Bandai", "Tamagotchi 4U (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
71 changes: 71 additions & 0 deletions src/mame/handheld/tama_id.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// license:BSD-3-Clause
// copyright-holders:

// TODO: identify CPU type

#include "emu.h"

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


namespace {

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

void tamaid(machine_config &config) ATTR_COLD;

protected:
virtual void machine_start() override ATTR_COLD;

private:
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);

required_device<screen_device> m_screen;
};

u32 tama_id_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}

void tama_id_state::machine_start()
{
}


static INPUT_PORTS_START(tamaid)
INPUT_PORTS_END


void tama_id_state::tamaid(machine_config &config)
{
// unknown CPU

// wrong, just so it's clear this has a screen
SCREEN(config, m_screen, SCREEN_TYPE_LCD);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(128, 128);
m_screen->set_visarea(0, 128 - 1, 0, 128 - 1);
m_screen->set_screen_update(FUNC(tama_id_state::screen_update));

SPEAKER(config, "speaker").front_center();
}

ROM_START( tamaid )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD( "mx29lb320dt.ic4", 0x000000, 0x400000, CRC(6272c24d) SHA1(f4d67409fa15873961bda684c68f3febf501218f) )
ROM_END

} // anonymous namespace

// 2010/2/5 MODEL: WIZ229 on PCB, 2009 on case
GAME( 2010, tamaid, 0, tamaid, tamaid, tama_id_state, empty_init, ROT0, "Bandai", "Tamagotchi iD (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
71 changes: 71 additions & 0 deletions src/mame/handheld/tama_mix.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// license:BSD-3-Clause
// copyright-holders:

// TODO: identify CPU type

#include "emu.h"

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


namespace {

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

void tama_mix(machine_config &config) ATTR_COLD;

protected:
virtual void machine_start() override ATTR_COLD;

private:
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);

required_device<screen_device> m_screen;
};

u32 tama_mix_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}

void tama_mix_state::machine_start()
{
}


static INPUT_PORTS_START(tama_mix)
INPUT_PORTS_END


void tama_mix_state::tama_mix(machine_config &config)
{
// unknown CPU

// wrong, just so it's clear this has a screen
SCREEN(config, m_screen, SCREEN_TYPE_LCD);
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(128, 128);
m_screen->set_visarea(0, 128 - 1, 0, 128 - 1);
m_screen->set_screen_update(FUNC(tama_mix_state::screen_update));

SPEAKER(config, "speaker").front_center();
}

ROM_START( tamamixm )
ROM_REGION( 0x800000, "maincpu", 0 )
ROM_LOAD( "mx29lv640et.u4", 0x000000, 0x800000, CRC(6e9301d2) SHA1(25a0df83da441d18467f82e8854e195139cce4a1) )
ROM_END

} // anonymous namespace

// 2016/03/14 MODEL: WIZ249 on PCB
GAME( 2016, tamamixm, 0, tama_mix, tama_mix, tama_mix_state, empty_init, ROT0, "Bandai", "Tamagotchi m!x Melody Blue (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
Loading
Loading