diff options
-rw-r--r-- | hash/gjrstar.xml | 2 | ||||
-rw-r--r-- | hash/glcx.xml | 5 | ||||
-rw-r--r-- | hash/gln.xml (renamed from hash/genius.xml) | 14 | ||||
-rw-r--r-- | hash/gls.xml | 18 | ||||
-rw-r--r-- | src/devices/bus/a2bus/computereyes2.cpp | 8 | ||||
-rw-r--r-- | src/devices/cpu/tms34010/34010ops.hxx | 57 | ||||
-rw-r--r-- | src/lib/formats/ap2_dsk.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/apple2.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/geniusjr.cpp | 39 | ||||
-rw-r--r-- | src/mame/drivers/goldnpkr.cpp | 27 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
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 |