summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--hash/gjrstar.xml2
-rw-r--r--hash/glcx.xml5
-rw-r--r--hash/gln.xml (renamed from hash/genius.xml)14
-rw-r--r--hash/gls.xml18
-rw-r--r--src/devices/bus/a2bus/computereyes2.cpp8
-rw-r--r--src/devices/cpu/tms34010/34010ops.hxx57
-rw-r--r--src/lib/formats/ap2_dsk.cpp2
-rw-r--r--src/mame/drivers/apple2.cpp2
-rw-r--r--src/mame/drivers/geniusjr.cpp39
-rw-r--r--src/mame/drivers/goldnpkr.cpp27
-rw-r--r--src/mame/mame.lst1
11 files changed, 114 insertions, 61 deletions
diff --git a/hash/gjrstar.xml b/hash/gjrstar.xml
index 03fe6974b2e..61932d56e0e 100644
--- a/hash/gjrstar.xml
+++ b/hash/gjrstar.xml
@@ -2,7 +2,7 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="gjrstar" description="VTech Genius Junior Redstar cartridges">
-<!-- According to the boxart, this is compatible with: Junior Redstar/Redstar 2 -->
+<!-- According to the boxart, this is compatible with: Junior Redstar/Redstar 2/Redstar 3 -->
<software name="wortspie">
<description>Wortspiele</description>
<year>200?</year>
diff --git a/hash/glcx.xml b/hash/glcx.xml
index d698ce872ad..e653a28f572 100644
--- a/hash/glcx.xml
+++ b/hash/glcx.xml
@@ -3,11 +3,14 @@
<softwarelist name="glcx" description="VTech Genius Leader CX cartridges">
<!-- Compatible with: Notebook Fun, e-Power X, 5005 X, 6600 CX, 8008 CX, Black Magic CX
+ A (later) sticker on 80-28071 says compatibility extends to Brainstation, Crosshanger XL, 9009 CXL
+ Diktate (undumped) claims compatibility only with Notebook Fun and e-Power X
+- - - - - - - +- - - - - - - - - - - - - - -+- - - - - - +- - - - - - - - -
| CARTRIDGE ID | GAME NAME | EPROM-ID | EPROM-TYPE |
+- - - - - - - +- - - - - - - - - - - - - - -+- - - - - - +- - - - - - - - -
| | | | |
+| 80-27471 | Diktate | | |
| 80-28071 | Englisch für Anfänger | 27-6386-00 | LH5V1RN5 |
| 80-28072 | Länder-Menschen-Umwelt | 27-6386-00 | LH5V1RN5 |
| 80-28073 | Sport-Wissen-Geschichte | 27-6388-00 | LH5V1RN5 |
@@ -83,6 +86,7 @@ On one was the highest address line set to HIGH, on the other one this address l
<part name="rom" interface="genius_rom">
<dataarea name="rom" size="0x20000">
+ <!-- contains Z80 code -->
<rom name="27-6431-00" size="0x20000" crc="db628338" sha1="86d88f6a6f399e38cf332516407a0efdde36d4c2"/>
</dataarea>
</part>
@@ -96,6 +100,7 @@ On one was the highest address line set to HIGH, on the other one this address l
<part name="rom" interface="genius_rom">
<dataarea name="rom" size="0x20000">
+ <!-- contains CR16B code -->
<rom name="54-6531-00-0.u4" size="0x20000" crc="bfb01f0a" sha1="c8d8b9e0a3e8299332383b3009c82c8d1994bbf9" offset="0" />
</dataarea>
</part>
diff --git a/hash/genius.xml b/hash/gln.xml
index 184d0c635fe..ebd5c722432 100644
--- a/hash/genius.xml
+++ b/hash/gln.xml
@@ -1,11 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
-<softwarelist name="genius" description="VTech Genius cartridges">
-
-<!-- this software list contains miscellaneous VTech Genius family cartridges, needs to be split to respective systems later -->
-
-
-<!-- Compatible with: Genius Leader series (actual compatible models as listed on the box are documented below) -->
+<softwarelist name="gln" description="VTech Genius Leader Notebook cartridges">
<!-- According to the boxart, this is compatible with: Leader Notebook -->
<software name="franzosis">
@@ -21,9 +16,10 @@
</part>
</software>
-<!-- According to the boxart, this is compatible with: Leader Notebook/Notebook Plus/Power Notebook -->
- <software name="swga" cloneof="swg">
- <description>Sport-Wissen-Geschichte (Genius Leader Notebook)</description>
+<!-- According to the boxart, this is compatible with: Leader Notebook
+ A (later) sticker says compatibility extends to Notebook Plus/Power Notebook -->
+ <software name="swg">
+ <description>Sport-Wissen-Geschichte</description>
<year>200?</year>
<publisher>Video Technology</publisher>
<info name="serial" value="80-2455" />
diff --git a/hash/gls.xml b/hash/gls.xml
new file mode 100644
index 00000000000..46784ccfee5
--- /dev/null
+++ b/hash/gls.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="gls" description="VTech Genius Leader Select cartridges">
+
+ <software name="srs">
+ <description>Spielend Richtig Schreiben</description>
+ <year>199?</year>
+ <publisher>Video Technology</publisher>
+ <info name="serial" value="80-2463" />
+
+ <part name="rom" interface="genius_rom">
+ <dataarea name="rom" size="0x40000">
+ <rom name="27-05763-000.u2" size="0x40000" crc="5c6ada02" sha1="ee948b077a20fd3f4b4cdfcabeb09b17f9cc99c8"/>
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/src/devices/bus/a2bus/computereyes2.cpp b/src/devices/bus/a2bus/computereyes2.cpp
index 9c5dff16cb9..b8a80819023 100644
--- a/src/devices/bus/a2bus/computereyes2.cpp
+++ b/src/devices/bus/a2bus/computereyes2.cpp
@@ -56,6 +56,14 @@ a2bus_computereyes2_device::a2bus_computereyes2_device(const machine_config &mco
void a2bus_computereyes2_device::device_start()
{
+ save_item(NAME(m_x));
+ save_item(NAME(m_y));
+ save_item(NAME(m_cer0));
+ save_item(NAME(m_cer1));
+ save_item(NAME(m_cer2));
+ save_item(NAME(m_threshold));
+ save_item(NAME(m_bActive));
+ save_item(NAME(m_a2_bitmap));
}
void a2bus_computereyes2_device::device_reset()
diff --git a/src/devices/cpu/tms34010/34010ops.hxx b/src/devices/cpu/tms34010/34010ops.hxx
index 85cab6d13f2..f0dbd7994fb 100644
--- a/src/devices/cpu/tms34010/34010ops.hxx
+++ b/src/devices/cpu/tms34010/34010ops.hxx
@@ -2050,50 +2050,43 @@ void tms340x0_device::blmove(uint16_t op)
if (!m_is_34020) { unimpl(op); return; }
- /* src and dst are aligned */
- if (!(src & 0x0f) && !(dst & 0x0f))
- {
- while (bits >= 16 && m_icount > 0)
- {
- TMS34010_WRMEM_WORD(dst, TMS34010_RDMEM_WORD(src));
- src += 0x10;
- dst += 0x10;
- bits -= 0x10;
- m_icount -= 2;
- }
- if (bits != 0 && m_icount > 0)
- {
- (this->*s_wfield_functions[bits])(dst, (this->*s_rfield_functions[bits])(src));
- dst += bits;
- src += bits;
- bits = 0;
- m_icount -= 2;
- }
- }
+ bool S = op & (1 << 1);
+ bool D = op & (1 << 0);
- /* src is aligned, dst is not */
- else if (!(src & 0x0f))
- {
- logerror("020:BLMOVE with aligned src and unaligned dst\n");
+ if ((S == false && (src & 0xf)) || (D == false && (dst & 0xf))) {
+ logerror("020:BLMOVE alignment error: PC=%x: S=%d, D=%d, src=%x, dst=%x, bits=%d\n", m_pc, S, D, src, dst, bits);
}
- /* dst is aligned, src is not */
- else if (!(dst & 0x0f))
+ // logerror("020:BLMOVE: PC=%x: S=%d, D=%d, src=%x, dst=%x, bits=%d\n", m_pc, S, D, src, dst, bits);
+ while (bits >= 16 && m_icount > 0)
{
- logerror("020:BLMOVE with unaligned src and aligned dst\n");
+ TMS34010_WRMEM_WORD(dst, TMS34010_RDMEM_WORD(src));
+ src += 0x10;
+ dst += 0x10;
+ bits -= 0x10;
+ m_icount -= 2;
}
-
- /* neither are aligned */
- else
+ if (bits != 0 && m_icount > 0)
{
- logerror("020:BLMOVE with completely unaligned src and dst\n");
+ (this->*s_wfield_functions[bits])(dst, (this->*s_rfield_functions[bits])(src));
+ dst += bits;
+ src += bits;
+ bits = 0;
+ m_icount -= 2;
}
- /* update the final results */
+ /*
+ TODO: We do not currently emulate precisely how B0 and B2 are modified during the operation:
+ if D == 0, then B0 and B2 remain fixed during execution and are only incremented after operation completes.
+ if D == 1, then B2 is incremented during move, B0 remains fixed until operation completes.
+ */
+
BREG(0) = src;
BREG(2) = dst;
BREG(7) = bits;
+ // logerror("020:BLMOVE: PC=%x: finished: B0=%x, B2=%x, B7=%d\n", m_pc, src, dst, bits);
+
/* if we're not done yet, back up the PC */
if (bits != 0)
m_pc -= 0x10;
diff --git a/src/lib/formats/ap2_dsk.cpp b/src/lib/formats/ap2_dsk.cpp
index 41e1f6e6fd0..f45d2823ff5 100644
--- a/src/lib/formats/ap2_dsk.cpp
+++ b/src/lib/formats/ap2_dsk.cpp
@@ -139,7 +139,7 @@ static FLOPPY_IDENTIFY(apple2_dsk_identify)
size = floppy_image_size(floppy);
expected_size = APPLE2_TRACK_COUNT * APPLE2_SECTOR_COUNT * APPLE2_SECTOR_SIZE;
- if (size == expected_size)
+ if ((size == expected_size) || (size == 35 * APPLE2_SECTOR_COUNT * APPLE2_SECTOR_SIZE))
*vote = 100;
else if ((size > expected_size) && ((size - expected_size) < 8))
*vote = 90; /* tolerate images with up to eight fewer/extra bytes (bug #638) */
diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp
index 272590bbfc6..785c2531c1a 100644
--- a/src/mame/drivers/apple2.cpp
+++ b/src/mame/drivers/apple2.cpp
@@ -87,6 +87,7 @@ II Plus: RAM options reduced to 16/32/48 KB.
#include "bus/a2bus/ssprite.h"
#include "bus/a2bus/ssbapple.h"
#include "bus/a2bus/4play.h"
+#include "bus/a2bus/computereyes2.h"
#include "bus/a2gameio/gameio.h"
@@ -1266,6 +1267,7 @@ static void apple2_cards(device_slot_interface &device)
device.option_add("ssprite", A2BUS_SSPRITE); /* Synetix SuperSprite Board */
device.option_add("ssbapple", A2BUS_SSBAPPLE); /* SSB Apple speech board */
device.option_add("4play", A2BUS_4PLAY); /* 4Play Joystick Card (Rev. B) */
+ device.option_add("ceyes2", A2BUS_COMPUTEREYES2); /* ComputerEyes/2 Video Digitizer */
// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */
}
diff --git a/src/mame/drivers/geniusjr.cpp b/src/mame/drivers/geniusjr.cpp
index 4e2ca49ef0f..243a62bc620 100644
--- a/src/mame/drivers/geniusjr.cpp
+++ b/src/mame/drivers/geniusjr.cpp
@@ -10,7 +10,7 @@ CPU is 68HC05 derived?
/***************************************************************************************
- Product name: Pitagorin Junior.
+ Product name: Pitagorín Junior.
Brand: VTech.
Type: First steps (4-6 years old) laptop.
Language: Spanish.
@@ -172,8 +172,9 @@ public:
{
}
- void gln(machine_config &config);
void gj4000(machine_config &config);
+ void gln(machine_config &config);
+ void gls(machine_config &config);
void gj5000(machine_config &config);
void gjrstar(machine_config &config);
void gjmovie(machine_config &config);
@@ -220,19 +221,28 @@ void geniusjr_state::machine_start()
m_rombank->set_entry(0);
}
-void geniusjr_state::gln(machine_config &config)
+void geniusjr_state::gj4000(machine_config &config)
{
M68HC05L9(config, m_maincpu, 8'000'000); // unknown clock
m_maincpu->set_addrmap(AS_PROGRAM, &geniusjr_state::gj4000_map);
m_bank_size = 0x8000;
+
+ SOFTWARE_LIST(config, "cart_list").set_original("gj4000");
}
-void geniusjr_state::gj4000(machine_config &config)
+void geniusjr_state::gln(machine_config &config)
{
- gln(config);
+ gj4000(config);
- SOFTWARE_LIST(config, "cart_list").set_original("gj4000");
+ subdevice<software_list_device>("cart_list")->set_original("gln");
+}
+
+void geniusjr_state::gls(machine_config &config)
+{
+ gj4000(config);
+
+ subdevice<software_list_device>("cart_list")->set_original("gls");
}
void geniusjr_state::gj5000(machine_config &config)
@@ -287,6 +297,14 @@ ROM_START( gjmovie )
ROM_LOAD( "lh532hlk.bin", 0x000000, 0x40000, CRC(2e64c296) SHA1(604034f902e20851cb9af60964031a508ceef83e))
ROM_END
+ROM_START( pitagjr )
+ ROM_REGION( 0x2000, "maincpu", 0 )
+ ROM_LOAD( "hc05_internal.bin", 0x0000, 0x2000, NO_DUMP )
+
+ ROM_REGION( 0x40000, "extrom", 0 )
+ ROM_LOAD( "lh532hjt_9811d.u3", 0x00000, 0x40000, CRC(23878b45) SHA1(8f3c41c10cfde9d76763c3a8701ec6616db4ab40) )
+ROM_END
+
ROM_START( gjrstar )
ROM_REGION( 0x2000, "maincpu", 0 )
ROM_LOAD( "hc05_internal.bin", 0x0000, 0x2000, NO_DUMP )
@@ -319,21 +337,22 @@ ROM_START( gln )
ROM_LOAD( "27-5308-00_9524_d.bin", 0x000000, 0x080000, CRC(d1b994ee) SHA1(b5cf0810df0676712e4f30e279cc46c19b4277dd))
ROM_END
-ROM_START( pitagjr )
+ROM_START( gls )
ROM_REGION( 0x2000, "maincpu", 0 )
ROM_LOAD( "hc05_internal.bin", 0x0000, 0x2000, NO_DUMP )
- ROM_REGION( 0x40000, "extrom", 0 )
- ROM_LOAD( "lh532hjt_9811d.u3", 0x00000, 0x40000, CRC(23878b45) SHA1(8f3c41c10cfde9d76763c3a8701ec6616db4ab40) )
+ ROM_REGION( 0x80000, "extrom", 0 )
+ ROM_LOAD( "gls.bin", 0x000000, 0x080000, NO_DUMP )
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1996, gj4000, 0, 0, gj4000, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Junior 4000 (Germany)", MACHINE_IS_SKELETON )
COMP( 1993, gjmovie, 0, 0, gjmovie, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Junior Movie (Germany)", MACHINE_IS_SKELETON )
+COMP( 199?, pitagjr, gjmovie, 0, gjmovie, geniusjr, geniusjr_state, empty_init, "VTech", "Pitagorin Junior", MACHINE_IS_SKELETON )
COMP( 1996, gjrstar, 0, 0, gjrstar, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Junior Redstar (Germany)", MACHINE_IS_SKELETON )
COMP( 1996, gjrstar2, gjrstar, 0, gjrstar, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Junior Redstar 2 (Germany)", MACHINE_IS_SKELETON )
COMP( 1998, gjrstar3, 0, 0, gjrstar, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Junior Redstar 3 (Germany)", MACHINE_IS_SKELETON )
COMP( 1998, gj5000, 0, 0, gj5000, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Junior 5000 (Germany)", MACHINE_IS_SKELETON )
COMP( 1993, gln, 0, 0, gln, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Leader Notebook", MACHINE_IS_SKELETON )
-COMP( 199?, pitagjr, 0, 0, gjrstar, geniusjr, geniusjr_state, empty_init, "VTech", "Pitagorin Junior", MACHINE_IS_SKELETON )
+COMP( 199?, gls, 0, 0, gls, geniusjr, geniusjr_state, empty_init, "VTech", "Genius Leader Select", MACHINE_IS_SKELETON ) // placeholder driver to attach cartridge dumps to
diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp
index 8dd7b2d4e3c..d96510b6985 100644
--- a/src/mame/drivers/goldnpkr.cpp
+++ b/src/mame/drivers/goldnpkr.cpp
@@ -6434,9 +6434,20 @@ ROM_END
Program tries to show jokers in the attract,
but these aren't in the graphics set.
- Maybe the PCB was filled with different eproms
- just to play the game, since jokers seems that
- don't appear in the game. Just in the attract.
+ The GFX roms for cards, have identical halves,
+ and the jokers extended GFX should be placed
+ in the second half.
+
+ Fortunatelly we have an identical GFX set from
+ another game (that match 100% the first half),
+ so for now could assume we can use it instead
+ till the original devices appear...
+
+ The game apparently uses jokers and has 3's
+ and 7's bonus.
+
+ Depending of the bet, you can have one or two
+ witches as bonus if you win a hand.
*/
ROM_START( jokercar )
@@ -6447,10 +6458,10 @@ ROM_START( jokercar )
ROM_FILL( 0x0000, 0x2000, 0x0000 ) // filling the R-G bitplanes
ROM_LOAD( "4u.8a", 0x2000, 0x1000, CRC(85044094) SHA1(06db79dd47a47886480bd7a6546a2252cd48b3e3) ) // chars gfx
- ROM_REGION( 0x3000, "gfx2", 0 )
- ROM_LOAD( "7.4a", 0x0000, 0x1000, CRC(b5a1f5a3) SHA1(a34aaaab5443c6962177a5dd35002bd09d0d2772) ) // cards deck gfx, bitplane 1
- ROM_LOAD( "6.6a", 0x1000, 0x1000, CRC(712f7fbc) SHA1(dcb73c45f58117b4206bc259d9386c4e16650325) ) // cards deck gfx, bitplane 2
- ROM_LOAD( "5.7a", 0x2000, 0x1000, CRC(7351706a) SHA1(cde3fefe721ac5d3a725afc53fa609b5cc0c01da) ) // cards deck gfx, bitplane 3
+ ROM_REGION( 0x3000, "gfx2", 0 ) // these are from another set that match 100% the first half of the original devices, that have identical halves...
+ ROM_LOAD( "7.4a", 0x0000, 0x1000, BAD_DUMP CRC(28ecfaea) SHA1(19d73ed0fdb5a873447b46e250ad6e71abe257cd) ) // cards deck gfx, bitplane 1
+ ROM_LOAD( "6.6a", 0x1000, 0x1000, BAD_DUMP CRC(eeec8862) SHA1(ae03aba1bd43c3ffd140f76770fc1c8cf89ea115) ) // cards deck gfx, bitplane 2
+ ROM_LOAD( "5.7a", 0x2000, 0x1000, BAD_DUMP CRC(2712f297) SHA1(d3cc1469d07c3febbbe4a645cd6bdb57e09cf504) ) // cards deck gfx, bitplane 3
ROM_REGION( 0x0100, "proms", 0 )
ROM_LOAD( "82s129.9c", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
@@ -12107,7 +12118,7 @@ GAMEL( 1994, witchcdi, witchcrd, witchcrd, witchcdd, goldnpkr_state, empty_init
GAMEL( 1991, witchgme, 0, witchcrd, witchcrd, goldnpkr_state, empty_init, ROT0, "Video Klein", "Witch Game (Video Klein, set 1)", 0, layout_goldnpkr )
GAMEL( 1997, witchcdk, witchgme, witchcrd, witchcrd, goldnpkr_state, empty_init, ROT0, "Video Klein", "Witch Game (Video Klein, set 2)", MACHINE_NOT_WORKING, layout_goldnpkr )
-GAME( 199?, jokercar, witchcrd, witchcrd, witchcda, goldnpkr_state, empty_init, ROT0, "<unknown>", "Joker Card (witch game)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 199?, jokercar, witchcrd, witchcrd, witchcda, goldnpkr_state, empty_init, ROT0, "<unknown>", "Joker Card (witch game)", 0 )
GAMEL( 1994, witchjol, 0, wcrdxtnd, witchjol, goldnpkr_state, init_vkdlsa, ROT0, "Video Klein", "Jolli Witch (Export, 6T/12T ver 1.57D)", 0, layout_goldnpkr )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 457aca5edb3..2c978d33d87 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14254,6 +14254,7 @@ gjrstar // Genius Junior Redstar (Germany)
gjrstar2 // Genius Junior Redstar 2 (Germany)
gjrstar3 // Genius Junior Redstar 3 (Germany)
gln // Genius Leader Notebook
+gls // Genius Leader Select
pitagjr // Pitagorin Junior
@source:genpc.cpp