summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author David Haywood <28625134+DavidHaywood@users.noreply.github.com>2020-03-20 21:42:31 +0000
committer GitHub <noreply@github.com>2020-03-20 17:42:31 -0400
commit13e7370a0f46c7d5c52860d0644e3fb8474cc3ae (patch)
tree79471cc9f1f201d991d78cea13fd1d0ff282d9fc
parent697482a86ea64e3a69fac2ae651f733ac09d23b6 (diff)
Plug and Play work (#6471)
* new WORKING machine ----- Retro 'Mini TV' Console 300-in-1 [TeamEurope, David Haywood] * (nw) * improve pvmilfin video (nw)
-rw-r--r--src/mame/drivers/elan_eu3a05.cpp12
-rw-r--r--src/mame/drivers/nes_vt.cpp22
-rw-r--r--src/mame/mame.lst1
-rw-r--r--src/mame/video/elan_eu3a05vid.cpp7
-rw-r--r--src/mame/video/elan_eu3a05vid.h1
5 files changed, 42 insertions, 1 deletions
diff --git a/src/mame/drivers/elan_eu3a05.cpp b/src/mame/drivers/elan_eu3a05.cpp
index 53ab5ea0749..8ffce8019a6 100644
--- a/src/mame/drivers/elan_eu3a05.cpp
+++ b/src/mame/drivers/elan_eu3a05.cpp
@@ -242,6 +242,7 @@ public:
void airblsjs(machine_config& config);
void elan_sudoku(machine_config &config);
+ void elan_pvmilfin(machine_config &config);
protected:
@@ -774,6 +775,15 @@ void elan_eu3a05_state::elan_sudoku(machine_config& config)
m_sys->set_alt_timer(); // for Carl Edwards'
}
+void elan_eu3a05_state::elan_pvmilfin(machine_config& config)
+{
+ elan_eu3a05(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &elan_eu3a05_state::elan_sudoku_map);
+ m_vid->set_is_pvmilfin();
+ m_sys->set_alt_timer();
+ m_sys->set_pal(); // TODO: also set PAL clocks
+ m_screen->set_refresh_hz(50);
+}
void elan_eu3a05_state::airblsjs(machine_config& config)
{
@@ -851,4 +861,4 @@ CONS( 2006, sudoelan, 0, 0, elan_sudoku, sudoku, elan_eu3a05_state, em
CONS( 200?, carlecfg, 0, 0, elan_sudoku, carlecfg, elan_eu3a05_state, empty_init, "Excalibur Electronics Inc", "Carl Edwards' Chase For Glory", MACHINE_NOT_WORKING )
// see https://millionaire.fandom.com/wiki/Haluatko_miljon%C3%A4%C3%A4riksi%3F_(Play_Vision_game)
-CONS( 2006, pvmilfin, 0, 0, elan_sudoku, sudoku, elan_eu3a05_state, empty_init, "Play Vision", "Haluatko miljon\xc3\xa4\xc3\xa4riksi? (Finland)", MACHINE_NOT_WORKING )
+CONS( 2006, pvmilfin, 0, 0, elan_pvmilfin, sudoku, elan_eu3a05_state, empty_init, "Play Vision", "Haluatko miljon\xc3\xa4\xc3\xa4riksi? (Finland)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp
index 99f6eeee04a..886f28f0c00 100644
--- a/src/mame/drivers/nes_vt.cpp
+++ b/src/mame/drivers/nes_vt.cpp
@@ -108,6 +108,7 @@ public:
void nes_vt(machine_config& config);
void nes_vt_4k_ram(machine_config& config);
+ void nes_vt_4k_ram_pal(machine_config& config);
/* OneBus read callbacks for getting sprite and tile data during rendering */
DECLARE_READ8_MEMBER(spr_r);
@@ -418,6 +419,7 @@ public:
void nes_vt_vg(machine_config& config);
void nes_vt_vg_baddma(machine_config& config);
void nes_vt_fp(machine_config& config);
+ void nes_vt_fp_pal(machine_config& config);
private:
void nes_vt_hh_map(address_map& map);
@@ -2042,6 +2044,12 @@ void nes_vt_state::nes_vt_4k_ram(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_state::nes_vt_4k_ram_map);
}
+void nes_vt_state::nes_vt_4k_ram_pal(machine_config &config)
+{
+ nes_vt_base_pal(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_state::nes_vt_4k_ram_map);
+}
+
void nes_vt_cy_state::nes_vt_cy(machine_config &config)
{
nes_vt_4k_ram(config);
@@ -2143,6 +2151,14 @@ void nes_vt_hh_state::nes_vt_fp(machine_config &config)
m_ppu->set_palette_mode(PAL_MODE_NEW_RGB12);
}
+void nes_vt_hh_state::nes_vt_fp_pal(machine_config &config)
+{
+ nes_vt_4k_ram_pal(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_hh_state::nes_vt_fp_map);
+
+ m_ppu->set_palette_mode(PAL_MODE_NEW_RGB12);
+}
+
void nes_vt_dg_state::nes_vt_fa(machine_config &config)
{
nes_vt_4k_ram(config);
@@ -2712,6 +2728,11 @@ ROM_START( unkra200 ) // "Winbond 25Q64FVSIG 1324" SPI ROM
ROM_LOAD( "retro_machine_rom", 0x00000, 0x800000, CRC(0e824aa7) SHA1(957e98868559ecc22b3fa42c76692417b76bf132) )
ROM_END
+ROM_START( rminitv )
+ ROM_REGION( 0x2000000, "mainrom", 0 )
+ ROM_LOAD( "29gl256.bin", 0x00000, 0x2000000, CRC(cb4048d4) SHA1(9877ce5716d13f8498abfc1cbfaefa9426205d3e) )
+ROM_END
+
ROM_START( denv150 )
ROM_REGION( 0x1000000, "mainrom", 0 )
ROM_LOAD( "denver150in1.bin", 0x00000, 0x1000000, CRC(6b3819d7) SHA1(b0039945ce44a52ea224ab736d5f3c6980409b5d) ) // 2nd half is blank
@@ -2953,6 +2974,7 @@ CONS( 201?, mc_tv200, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_ini
// probably another Thumbs Up product? cursor doesn't work unless nes_vt_hh machine is used? possibly newer than VT02 as it runs from an SPI ROM, might just not use enhanced features. Some minor game name changes to above (eg Smackdown just becomes Wrestling)
CONS( 201?, unkra200, mc_tv200, 0, nes_vt_hh, nes_vt, nes_vt_hh_state, empty_init, "<unknown>", "200 in 1 Retro Arcade", MACHINE_IMPERFECT_GRAPHICS )
+CONS( 2015, rminitv, 0, 0, nes_vt_fp_pal, nes_vt, nes_vt_hh_state, empty_init, "Orb Gaming", "Retro 'Mini TV' Console 300-in-1", MACHINE_IMPERFECT_GRAPHICS )
// available in a number of colours, with various brands, but likely all the same.
// This was a red coloured pad, contains various unlicensed bootleg reskinned NES game eg Blob Buster is a hack of Dig Dug 2 and there are also hacks of Xevious, Donkey Kong Jr, Donkey Kong 3 and many others.
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 988d45406b6..1f66bc759c5 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -31508,6 +31508,7 @@ mc_hh210
dvnimbus
cbrs8
mc_tv200
+rminitv
unkra200
ppgc200g
fcpocket
diff --git a/src/mame/video/elan_eu3a05vid.cpp b/src/mame/video/elan_eu3a05vid.cpp
index 689f4b14a9b..0199d668470 100644
--- a/src/mame/video/elan_eu3a05vid.cpp
+++ b/src/mame/video/elan_eu3a05vid.cpp
@@ -85,6 +85,13 @@ void elan_eu3a05vid_device::set_is_sudoku()
m_spritebase = 0x1000;
}
+void elan_eu3a05vid_device::set_is_pvmilfin()
+{
+ m_bytes_per_tile_entry = 4;
+ m_vrambase = 0x200;
+ m_spritebase = 0x1000; // not verified
+}
+
uint8_t elan_eu3a05vid_device::read_spriteram(int offset)
{
address_space& cpuspace = m_cpu->space(AS_PROGRAM);
diff --git a/src/mame/video/elan_eu3a05vid.h b/src/mame/video/elan_eu3a05vid.h
index 9c8d82a888f..55ed5e2d22c 100644
--- a/src/mame/video/elan_eu3a05vid.h
+++ b/src/mame/video/elan_eu3a05vid.h
@@ -21,6 +21,7 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void set_is_sudoku();
+ void set_is_pvmilfin();
protected:
// device-level overrides