trunk/src/mess/drivers/tispeak.c
| r242535 | r242536 | |
| 17 | 17 | |
| 18 | 18 | // The master clock is a single stage RC oscillator into TMS5100 RCOSC: |
| 19 | 19 | // C is 68pf, R is a 50kohm trimpot wich is set to 33.6kohm. CPUCLK is this/2, ROMCLK is this/4. |
| 20 | | // The osc freq curve is unknown. Let's assume it is set to the default frequency, |
| 20 | // The typical osc freq curve for TMS5100 is unknown. Let's assume it is set to the default frequency, |
| 21 | 21 | // which is 640kHz according to the TMS5100 documentation. |
| 22 | 22 | |
| 23 | 23 | #define MASTER_CLOCK (640000) |
| r242535 | r242536 | |
| 384 | 384 | save_item(NAME(m_power_on)); |
| 385 | 385 | |
| 386 | 386 | // init cartridge |
| 387 | | astring region_tag; |
| 388 | | memory_region *src = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG)); |
| 389 | | if (src) |
| 387 | if (m_cart != NULL && m_cart->exists()) |
| 390 | 388 | { |
| 391 | | UINT8 *dest_ptr = memregion("tms6100")->base() + 0x8000; |
| 392 | | memcpy(dest_ptr, src->base(), src->bytes()); |
| 389 | astring region_tag; |
| 390 | memory_region *src = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG)); |
| 391 | if (src) |
| 392 | { |
| 393 | UINT8 *dest_ptr = memregion("tms6100")->base() + 0x8000; |
| 394 | memcpy(dest_ptr, src->base(), src->bytes()); |
| 395 | } |
| 393 | 396 | } |
| 394 | 397 | } |
| 395 | 398 | |
| r242535 | r242536 | |
| 449 | 452 | |
| 450 | 453 | ROM_START( snspell ) |
| 451 | 454 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 455 | ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have |
| 456 | |
| 457 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 458 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 459 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 460 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // taken from cd2708, need to verify if it's same as tmc0271 |
| 461 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 462 | ROM_LOAD( "tms0270_tmc0271_opla.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) |
| 463 | |
| 464 | ROM_REGION( 0xc000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge |
| 465 | ROM_LOAD( "tmc0351.vsm", 0x0000, 0x4000, CRC(beea3373) SHA1(8b0f7586d2f12c3d4a885fdb528cf23feffa1a3b) ) // cd2300 |
| 466 | ROM_LOAD( "tmc0352.vsm", 0x4000, 0x4000, CRC(d51f0587) SHA1(ddaa484be1bba5fef46b481cafae517e4acaa8ed) ) // cd2301 |
| 467 | ROM_END |
| 468 | |
| 469 | ROM_START( snspella ) |
| 470 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 471 | ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have |
| 472 | |
| 473 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 474 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 475 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 476 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // placeholder, use the one we have |
| 477 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 478 | ROM_LOAD( "tms0270_tmc0271_opla.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) |
| 479 | |
| 480 | ROM_REGION( 0xc000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge |
| 481 | ROM_LOAD( "cd2350a.vsm", 0x0000, 0x4000, CRC(2adda742) SHA1(3f868ed8284b723c815a30343057e03467c043b5) ) |
| 482 | ROM_END |
| 483 | |
| 484 | ROM_START( snspellp ) |
| 485 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 452 | 486 | ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent 4189779, may have errors |
| 453 | 487 | |
| 454 | 488 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| r242535 | r242536 | |
| 463 | 497 | ROM_LOAD( "tmc0352.vsm", 0x4000, 0x4000, CRC(d51f0587) SHA1(ddaa484be1bba5fef46b481cafae517e4acaa8ed) ) |
| 464 | 498 | ROM_END |
| 465 | 499 | |
| 500 | ROM_START( snspelluk ) |
| 501 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 502 | ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have |
| 503 | |
| 504 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 505 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 506 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 507 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // taken from cd2708, need to verify if it's same as tmc0271 |
| 508 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 509 | ROM_LOAD( "tms0270_tmc0271_opla.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) |
| 510 | |
| 511 | ROM_REGION( 0xc000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge |
| 512 | ROM_LOAD( "cd2303.vsm", 0x0000, 0x4000, CRC(0fae755c) SHA1(b68c3120a63a61db474feb5d71a6e5dd67910d80) ) |
| 513 | ROM_LOAD( "cd2304.vsm", 0x4000, 0x4000, CRC(e2a270eb) SHA1(c13c95ad15f1923a4841f66504e0f22646e71d99) ) |
| 514 | ROM_END |
| 515 | |
| 516 | ROM_START( snspelluka ) |
| 517 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 518 | ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have |
| 519 | |
| 520 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 521 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 522 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 523 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // placeholder, use the one we have |
| 524 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 525 | ROM_LOAD( "tms0270_tmc0271_opla.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) |
| 526 | |
| 527 | ROM_REGION( 0xc000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge |
| 528 | ROM_LOAD( "cd62175.vsm", 0x0000, 0x4000, CRC(6e1063d4) SHA1(b5c66c51148c5921ecb8ffccd7a460ae639cdb68) ) |
| 529 | ROM_END |
| 530 | |
| 531 | ROM_START( ladictee ) |
| 532 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 533 | ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have |
| 534 | |
| 535 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 536 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 537 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 538 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // placeholder, use the one we have |
| 539 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 540 | ROM_LOAD( "tms0270_tmc0271_opla.pla", 0, 1246, BAD_DUMP CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // placeholder, use the one we have |
| 541 | |
| 542 | ROM_REGION( 0xc000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge |
| 543 | ROM_LOAD( "cd2352.vsm", 0x0000, 0x4000, CRC(181a239e) SHA1(e16043766c385e152b7005c1c010be4c5fccdd9b) ) |
| 544 | ROM_END |
| 545 | |
| 546 | |
| 547 | |
| 466 | 548 | ROM_START( snmath ) |
| 467 | 549 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 550 | ROM_LOAD( "us4946391_t2074", 0x0000, 0x1000, BAD_DUMP CRC(011f0c2d) SHA1(d2e14d72e03ca864abd51da78ffb71a9da82f624) ) // placeholder, use the one we have |
| 551 | |
| 552 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 553 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 554 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 555 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // placeholder, use the one we have |
| 556 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 557 | ROM_LOAD( "tms0270_cd2708_opla.pla", 0, 1246, BAD_DUMP CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) ) // placeholder, use the one we have |
| 558 | |
| 559 | ROM_REGION( 0x8000, "tms6100", 0 ) |
| 560 | ROM_LOAD( "cd2392.vsm", 0x0000, 0x4000, CRC(4ed2e920) SHA1(8896f29e25126c1e4d9a47c9a325b35dddecc61f) ) |
| 561 | ROM_LOAD( "cd2393.vsm", 0x4000, 0x4000, CRC(571d5b5a) SHA1(83284755d9b77267d320b5b87fdc39f352433715) ) |
| 562 | ROM_END |
| 563 | |
| 564 | ROM_START( snmatha ) |
| 565 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 566 | ROM_LOAD( "us4946391_t2074", 0x0000, 0x1000, BAD_DUMP CRC(011f0c2d) SHA1(d2e14d72e03ca864abd51da78ffb71a9da82f624) ) // placeholder, use the one we have |
| 567 | |
| 568 | ROM_REGION( 1246, "maincpu:ipla", 0 ) |
| 569 | ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) |
| 570 | ROM_REGION( 2127, "maincpu:mpla", 0 ) |
| 571 | ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // placeholder, use the one we have |
| 572 | ROM_REGION( 1246, "maincpu:opla", 0 ) |
| 573 | ROM_LOAD( "tms0270_cd2708_opla.pla", 0, 1246, BAD_DUMP CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) ) // placeholder, use the one we have |
| 574 | |
| 575 | ROM_REGION( 0x8000, "tms6100", 0 ) |
| 576 | ROM_LOAD( "cd2381.vsm", 0x0000, 0x4000, CRC(f048dc81) SHA1(e97667d1002de40ab3d702c63b82311480032e0f) ) |
| 577 | ROM_LOAD( "cd2614.vsm", 0x4000, 0x1000, CRC(11989074) SHA1(0e9cf906de9bcdf4acb425535dc442846fc48fa2) ) |
| 578 | ROM_RELOAD( 0x5000, 0x1000 ) |
| 579 | ROM_RELOAD( 0x6000, 0x1000 ) |
| 580 | ROM_RELOAD( 0x7000, 0x1000 ) |
| 581 | ROM_END |
| 582 | |
| 583 | ROM_START( snmathp ) |
| 584 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 468 | 585 | // typed in from patent 4946391, verified with source code (mark BAD_DUMP just to be unsure) |
| 469 | 586 | // BTANB note: Mix It does not work at all, this is an original bug in the prototype. There are probably other minor bugs too. |
| 470 | 587 | ROM_LOAD( "us4946391_t2074", 0x0000, 0x1000, BAD_DUMP CRC(011f0c2d) SHA1(d2e14d72e03ca864abd51da78ffb71a9da82f624) ) |
| r242535 | r242536 | |
| 482 | 599 | ROM_END |
| 483 | 600 | |
| 484 | 601 | |
| 485 | | COMP( 1978, snspell, 0, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (US, prototype)", GAME_NOT_WORKING ) |
| 486 | | COMP( 1980, snmath, 0, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US, prototype)", GAME_NOT_WORKING ) |
| 602 | |
| 603 | COMP( 1978, snspell, 0, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (US set 1)", GAME_NOT_WORKING ) |
| 604 | COMP( 1980, snspella, snspell, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (US set 2)", GAME_NOT_WORKING ) |
| 605 | COMP( 1978, snspellp, snspell, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (US prototype)", GAME_NOT_WORKING ) |
| 606 | COMP( 1978, snspelluk, snspell, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (UK set 1)", GAME_NOT_WORKING ) |
| 607 | COMP( 1981, snspelluka, snspell, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (UK set 2)", GAME_NOT_WORKING ) // different voice actor |
| 608 | COMP( 1980, ladictee, snspell, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "La Dictee Magnifique (France)", GAME_NOT_WORKING ) // doesn't work, custom MCU ROM? |
| 609 | |
| 610 | COMP( 1980, snmath, 0, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US set 1)", GAME_NOT_WORKING ) |
| 611 | COMP( 1986, snmatha, snmath, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US set 2)", GAME_NOT_WORKING ) |
| 612 | COMP( 1980, snmathp, snmath, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US prototype)", GAME_NOT_WORKING ) |