diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/wiping.cpp | 26 | ||||
-rw-r--r-- | src/mame/drivers/yunsung8.cpp | 15 | ||||
-rw-r--r-- | src/tools/jedutil.cpp | 257 |
3 files changed, 275 insertions, 23 deletions
diff --git a/src/mame/drivers/wiping.cpp b/src/mame/drivers/wiping.cpp index 04cf412bfc2..6c2d86abade 100644 --- a/src/mame/drivers/wiping.cpp +++ b/src/mame/drivers/wiping.cpp @@ -361,31 +361,31 @@ ROM_END ROM_START( rugrats ) ROM_REGION( 0x10000, "maincpu", 0 ) /* main cpu code */ - ROM_LOAD( "rugr1d1", 0x0000, 0x2000, CRC(e7e1bd6d) SHA1(985799b1bfd001c6304e6166180745cb019f834e) ) - ROM_LOAD( "rugr2d2", 0x2000, 0x2000, CRC(5f47b9ad) SHA1(2d3eb737ea8e86691293e432e866d2623d6b6b1b) ) - ROM_LOAD( "rugr3d3", 0x4000, 0x2000, CRC(3d748d1a) SHA1(2b301119b6eb3f0f9bb2ad734cff1d25365dfe99) ) + ROM_LOAD( "1.1d", 0x0000, 0x2000, CRC(e7e1bd6d) SHA1(985799b1bfd001c6304e6166180745cb019f834e) ) + ROM_LOAD( "2.2d", 0x2000, 0x2000, CRC(5f47b9ad) SHA1(2d3eb737ea8e86691293e432e866d2623d6b6b1b) ) + ROM_LOAD( "3.3d", 0x4000, 0x2000, CRC(3d748d1a) SHA1(2b301119b6eb3f0f9bb2ad734cff1d25365dfe99) ) ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */ - ROM_LOAD( "rugr4c4", 0x0000, 0x2000, CRC(d4a92c38) SHA1(4a31cfef9f084b4d2934595155bf0f3dd589efb3) ) + ROM_LOAD( "4.3b", 0x0000, 0x2000, CRC(d4a92c38) SHA1(4a31cfef9f084b4d2934595155bf0f3dd589efb3) ) ROM_REGION( 0x1000, "gfx1", 0 ) - ROM_LOAD( "rugr8d2", 0x0000, 0x1000, CRC(a3dcaca5) SHA1(d71f9090bf95dfd035ee0e0619a1cce575033cf3) ) /* chars */ + ROM_LOAD( "8.2d", 0x0000, 0x1000, CRC(a3dcaca5) SHA1(d71f9090bf95dfd035ee0e0619a1cce575033cf3) ) /* chars */ ROM_REGION( 0x2000, "gfx2", 0 ) - ROM_LOAD( "rugr7c13", 0x0000, 0x2000, CRC(fe1191dd) SHA1(80ebf093f7a32f4cc9dc89dcc44cab6e3db4fca1) ) /* sprites */ + ROM_LOAD( "7.13c", 0x0000, 0x2000, CRC(fe1191dd) SHA1(80ebf093f7a32f4cc9dc89dcc44cab6e3db4fca1) ) /* sprites */ ROM_REGION( 0x0220, "proms", 0 ) - ROM_LOAD( "prom.13g", 0x0000, 0x0020, CRC(f21238f0) SHA1(944627d1551453c7f828d96b83fd4eeb038b20ad) ) /* palette */ - ROM_LOAD( "prom.4f", 0x0020, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* char lookup table */ - ROM_LOAD( "prom.11e", 0x0120, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* sprite lookup table */ + ROM_LOAD( "g13.13g", 0x0000, 0x0020, CRC(f21238f0) SHA1(944627d1551453c7f828d96b83fd4eeb038b20ad) ) /* palette */ + ROM_LOAD( "eiif4.4f", 0x0020, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* char lookup table */ + ROM_LOAD( "eiif4.11e", 0x0120, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* sprite lookup table */ ROM_REGION( 0x4000, "samples", 0 ) /* samples */ - ROM_LOAD( "rugr5c8", 0x0000, 0x2000, CRC(67bafbbf) SHA1(2085492b58ce44f61a42320c54595b79fdf7a91c) ) - ROM_LOAD( "rugr6c9", 0x2000, 0x2000, CRC(cac84a87) SHA1(90f6c514d0cdbeb4c8c979597db79ebcdf443df4) ) + ROM_LOAD( "5.8c", 0x0000, 0x2000, CRC(67bafbbf) SHA1(2085492b58ce44f61a42320c54595b79fdf7a91c) ) + ROM_LOAD( "6.9c", 0x2000, 0x2000, CRC(cac84a87) SHA1(90f6c514d0cdbeb4c8c979597db79ebcdf443df4) ) ROM_REGION( 0x0200, "soundproms", 0 ) /* 4bit->8bit sample expansion PROMs */ - ROM_LOAD( "wip-e8.bin", 0x0000, 0x0100, CRC(bd2c080b) SHA1(9782bb5001e96db56bc29df398187f700bce4f8e) ) /* low 4 bits */ - ROM_LOAD( "wip-e9.bin", 0x0100, 0x0100, CRC(4017a2a6) SHA1(dadef2de7a1119758c8e6d397aa42815b0218889) ) /* high 4 bits */ + ROM_LOAD( "e8.8e", 0x0000, 0x0100, CRC(bd2c080b) SHA1(9782bb5001e96db56bc29df398187f700bce4f8e) ) /* low 4 bits */ + ROM_LOAD( "e9.9e", 0x0100, 0x0100, CRC(4017a2a6) SHA1(dadef2de7a1119758c8e6d397aa42815b0218889) ) /* high 4 bits */ ROM_END diff --git a/src/mame/drivers/yunsung8.cpp b/src/mame/drivers/yunsung8.cpp index 8dff608fb5a..0be817736ad 100644 --- a/src/mame/drivers/yunsung8.cpp +++ b/src/mame/drivers/yunsung8.cpp @@ -16,7 +16,7 @@ Sound Chips : OKI M5205 + YM3812 Year + Game Board# --------------------------------------------------------------------------- 95 Cannon Ball YS-ROCK-970712 or 940712? -95 Magix / Rock YS-ROCK-970712 +95 Magix / Rock YS-ROCK-940712 94? Rock Tris YS-ROCK-940712 --------------------------------------------------------------------------- @@ -395,10 +395,11 @@ void yunsung8_state::yunsung8(machine_config &config) Magix Yun Sung, 1995 -YS-ROCK-970712 +YS-ROCK-940712 +-------------------------------------+ |VOL YM3014 6116 04| | M5205 400KHz 03| +| 09 | | Z80A CXK5118PN-15L 02| | 08 GM76C28-10 01| | MCM2018AN45 | @@ -411,7 +412,7 @@ YS-ROCK-970712 | U66 +--------+ 06| | HM6264 05| | 07 HM6264 | -| Z80B YM3812 16MHz | +| Z80B YM3812 10 16MHz | +-------------------------------------+ Main CPU: Z80B @@ -442,6 +443,10 @@ ROM_START( magix ) ROM_REGION( 0x40000, "text", 0 ) /* Text */ ROM_LOAD( "yunsung8.05", 0x00000, 0x20000, CRC(862d378c) SHA1(a4e2cf14b5b25c6b8725dd285ddea65ce9ee257a) ) // only first $8000 bytes != 0 ROM_LOAD( "yunsung8.06", 0x20000, 0x20000, CRC(8b2ab901) SHA1(1a5c05dd0cf830b645357a62d8e6e876b44c6b7f) ) // only first $8000 bytes != 0 + + ROM_REGION( 0x0002, "plds", 0 ) /* PAL's and GAL's */ + ROM_LOAD( "palce20v8h.09", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ + ROM_LOAD( "palce20v8h.10", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ ROM_END /*************************************************************************** @@ -470,6 +475,10 @@ ROM_START( magixb ) ROM_REGION( 0x40000, "text", 0 ) /* Text */ ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(11b99819) SHA1(4b20feea227cefd2e905601d934538a13ba6685b) ) // only first $8000 bytes != 0 ROM_LOAD( "6.bin", 0x20000, 0x20000, CRC(361a864c) SHA1(e0bb78b49fc3d461d6ac46ad97a9d04112783132) ) // only first $8000 bytes != 0 + + ROM_REGION( 0x0002, "plds", 0 ) /* PAL's and GAL's */ + ROM_LOAD( "palce20v8h.09", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ + ROM_LOAD( "palce20v8h.10", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ ROM_END diff --git a/src/tools/jedutil.cpp b/src/tools/jedutil.cpp index 49b5d00cd38..c342d1bbef9 100644 --- a/src/tools/jedutil.cpp +++ b/src/tools/jedutil.cpp @@ -94,11 +94,12 @@ PAL20X8 = QP24 QF1600 PAL20X10 = QP24 QF1600 - PAL22V10 = QP24 QF5828? - GAL20V8A = QP24 QF2706 GAL22V10 = QP24 QF5892 + PALCE22V10 = QP24 QF5828 + PAL22V10 = QP24 QF5828 + 28-pin devices: PLS100 = QP28 QF1928 (Tri-State) 82S100 = QP20 QF1928 (Tri-State) @@ -290,6 +291,7 @@ static void print_pal20ra10_product_terms(const pal_data* pal, const jed_data* j static void print_pal20x4_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal20x8_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal20x10_product_terms(const pal_data* pal, const jed_data* jed); +static void print_palce22v10_pal22v10_product_terms(const pal_data* pal, const jed_data* jed); static void print_82s153_pls153_product_terms(const pal_data* pal, const jed_data* jed); static void print_ck2605_product_terms(const pal_data* pal, const jed_data* jed); #if defined(ricoh_pals) @@ -353,6 +355,7 @@ static void config_pal20ra10_pins(const pal_data* pal, const jed_data* jed); static void config_pal20x4_pins(const pal_data* pal, const jed_data* jed); static void config_pal20x8_pins(const pal_data* pal, const jed_data* jed); static void config_pal20x10_pins(const pal_data* pal, const jed_data* jed); +static void config_palce22v10_pal22v10_pins(const pal_data* pal, const jed_data* jed); static void config_82s153_pls153_pins(const pal_data* pal, const jed_data* jed); static void config_ck2605_pins(const pal_data* pal, const jed_data* jed); #if defined(ricoh_pals) @@ -665,6 +668,18 @@ static pin_fuse_rows pal20x10pinfuserows[] = { {22, NO_OUTPUT_ENABLE_FUSE_ROW, 160, 280}, /* Registered Output */ {23, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 120}}; /* Registered Output */ +static pin_fuse_rows palce22v10_pal22v10pinfuserows[] = { + {14, 5368, 5412, 5720}, + {15, 4884, 4928, 5324}, + {16, 4312, 4356, 4840}, + {17, 3652, 3696, 4268}, + {18, 2904, 2948, 3608}, + {19, 2156, 2200, 2860}, + {20, 1496, 1540, 2112}, + {21, 924, 968, 1452}, + {22, 440, 484, 880}, + {23, 44, 88, 396}}; + static pin_fuse_rows _82s153_pls153pinfuserows[] = { {9, 1472, 0, 0}, {11, 1508, 0, 0}, @@ -1456,6 +1471,30 @@ static pin_fuse_columns pal20x10pinfusecolumns[] = { {23, 3, 2} }; +static pin_fuse_columns palce22v10_pal22v10pinfusecolumns[] = { + {1, 1, 0}, + {2, 5, 4}, + {3, 9, 8}, + {4, 13, 12}, + {5, 17, 16}, + {6, 21, 20}, + {7, 25, 24}, + {8, 29, 28}, + {9, 33, 32}, + {10, 37, 36}, + {11, 41, 40}, + {13, 43, 42}, + {14, 39, 38}, + {15, 35, 34}, + {16, 31, 30}, + {17, 27, 26}, + {18, 23, 22}, + {19, 19, 18}, + {20, 15, 14}, + {21, 11, 10}, + {22, 7, 6}, + {23, 3, 2}}; + static pin_fuse_columns _82s153_pls153pinfusecolumns[] = { {1, 1, 0}, {2, 3, 2}, @@ -2167,9 +2206,22 @@ static pal_data paldata[] = { config_pal20x10_pins, nullptr, nullptr}, - /*{"PAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"GAL20V8A", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, + /*{"GAL20V8A", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, {"GAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ + {"PAL22V10", 5828, + palce22v10_pal22v10pinfuserows, ARRAY_LENGTH(palce22v10_pal22v10pinfuserows), + palce22v10_pal22v10pinfusecolumns, ARRAY_LENGTH(palce22v10_pal22v10pinfusecolumns), + print_palce22v10_pal22v10_product_terms, + config_palce22v10_pal22v10_pins, + nullptr, + nullptr}, + {"PALCE22V10", 5828, + palce22v10_pal22v10pinfuserows, ARRAY_LENGTH(palce22v10_pal22v10pinfuserows), + palce22v10_pal22v10pinfusecolumns, ARRAY_LENGTH(palce22v10_pal22v10pinfusecolumns), + print_palce22v10_pal22v10_product_terms, + config_palce22v10_pal22v10_pins, + nullptr, + nullptr}, {"82S153", 1842, _82s153_pls153pinfuserows, ARRAY_LENGTH(_82s153_pls153pinfuserows), _82s153_pls153pinfusecolumns, ARRAY_LENGTH(_82s153_pls153pinfusecolumns), @@ -3710,6 +3762,42 @@ static void print_pal20x10_product_terms(const pal_data* pal, const jed_data* je /*------------------------------------------------- + print_palce22v10_pal22v10_product_terms - prints the product + terms for a PALCE22V10 and PAL22V10 +-------------------------------------------------*/ + +static void print_palce22v10_pal22v10_product_terms(const pal_data* pal, const jed_data* jed) +{ + char buffer[200]; + + print_product_terms(pal, jed); + + /* Synchronous Preset */ + + generate_product_terms(pal, jed, 5764, buffer); + + if (strlen(buffer)) + { + printf("Synchronous Preset:\n\n"); + printf("%s\n", buffer); + printf("\n"); + } + + /* Asynchronous Reset */ + + generate_product_terms(pal, jed, 0, buffer); + + if (strlen(buffer)) + { + printf("Asynchronous Reset:\n\n"); + printf("%s\n", buffer); + printf("\n"); + } +} + + + +/*------------------------------------------------- print_82s153_pls153_product_terms - prints the product terms for a 82S153/PLS153 -------------------------------------------------*/ @@ -5930,6 +6018,87 @@ static void config_pal20x10_pins(const pal_data* pal, const jed_data* jed) /*------------------------------------------------- + config_palce22v10_pal22v10_pins - configures the pins for + a PALCE22V10 +-------------------------------------------------*/ + +static void config_palce22v10_pal22v10_pins(const pal_data* pal, const jed_data* jed) +{ + typedef struct _output_logic_macrocell output_logic_macrocell; + struct _output_logic_macrocell + { + uint16_t pin; + uint16_t s0_fuse; /* output polarity (0 - low, 1 - high) */ + uint16_t s1_fuse; /* registers allowed (0 - registered, 1 - not registered) */ + }; + + static output_logic_macrocell macrocells[] = { + {14, 5826, 5827}, + {15, 5824, 5825}, + {16, 5822, 5823}, + {17, 5820, 5821}, + {18, 5818, 5819}, + {19, 5816, 5817}, + {20, 5814, 5815}, + {21, 5812, 5813}, + {22, 5810, 5811}, + {23, 5808, 5809}}; + static uint16_t input_pins[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}; + pin_output_config output_pins[ARRAY_LENGTH(macrocells)]; + uint16_t index, output_pin_count; + + output_pin_count = 0; + + for (index = 0; index < ARRAY_LENGTH(output_pins); ++index) + { + if (jed_get_fuse(jed, macrocells[index].s1_fuse)) + { + /* Combinatorial output or dedicated input */ + + if (does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable)) + { + output_pins[output_pin_count].pin = macrocells[index].pin; + output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT; + + if (!jed_get_fuse(jed, macrocells[index].s0_fuse)) + { + output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW; + } + else + { + output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH; + } + + ++output_pin_count; + } + } + else + { + /* Registered output */ + + output_pins[output_pin_count].pin = macrocells[index].pin; + output_pins[output_pin_count].flags = OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED; + + if (!jed_get_fuse(jed, macrocells[index].s0_fuse)) + { + output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW; + } + else + { + output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH; + } + + ++output_pin_count; + } + } + + set_input_pins(input_pins, ARRAY_LENGTH(input_pins)); + set_output_pins(output_pins, output_pin_count); +} + + + +/*------------------------------------------------- config_82s153_pls153_pins - configures the pins for a 82S153/PLS153 -------------------------------------------------*/ @@ -7323,6 +7492,8 @@ static int print_usage() " jedutil -view <source.jed> <device> -- dump JED logic equations\n" " jedutil -view <source.bin> <device> -- dump binary logic equations\n" " jedutil -viewlist -- view list of supported devices\n" + " jedutil -listcompatible <source.jed> -- list compatible devices\n" + " jedutil -listcompatible <source.bin> -- list compatible devices\n" ); return 0; @@ -7577,6 +7748,77 @@ static int command_viewlist(int argc, char *argv[]) } + +/*------------------------------------------------- + command_listcompatible - views the list of + compatible devices +-------------------------------------------------*/ + +static int command_listcompatible(int argc, char *argv[]) +{ + int result = 0; + const char *srcfile; + int is_jed; + jed_data jed; + int err; + int index; + + if (argc != 1) + { + return print_usage(); + } + + /* extract arguments */ + srcfile = argv[0]; + + /* does the source end in '.jed'? */ + is_jed = is_jed_file(srcfile); + + /* read the source file */ + err = read_source_file(srcfile); + if (err != 0) + { + result = 1; + goto end; + } + + /* if the source is JED, convert to binary */ + if (is_jed) + { + /* read the JEDEC data */ + err = jed_parse(srcbuf, srcbuflen, &jed); + switch (err) + { + case JEDERR_INVALID_DATA: fprintf(stderr, "Fatal error: Invalid .JED file\n"); result = 1; goto end; + case JEDERR_BAD_XMIT_SUM: fprintf(stderr, "Fatal error: Bad transmission checksum\n"); result = 1; goto end; + case JEDERR_BAD_FUSE_SUM: fprintf(stderr, "Fatal error: Bad fusemap checksum\n"); result = 1; goto end; + } + } + else + { + /* read the binary data */ + err = jedbin_parse(srcbuf, srcbuflen, &jed); + switch (err) + { + case JEDERR_INVALID_DATA: fprintf(stderr, "Fatal error: Invalid binary JEDEC file\n"); result = 1; goto end; + } + } + + for (index = 0; index < ARRAY_LENGTH(paldata); ++index) + { + if (paldata[index].numfuses == jed.numfuses) + { + printf("%s\n", paldata[index].name); + } + } + +end: + free(srcbuf); + return result; +} + + + /*------------------------------------------------- main - primary entry point -------------------------------------------------*/ @@ -7584,9 +7826,10 @@ static int command_viewlist(int argc, char *argv[]) int main(int argc, char *argv[]) { command_entry command_entries[] = { - {"-convert", &command_convert}, - {"-view", &command_view}, - {"-viewlist", &command_viewlist}}; + {"-convert", &command_convert}, + {"-view", &command_view}, + {"-viewlist", &command_viewlist}, + {"-listcompatible", &command_listcompatible}}; int index; if (argc < 2) |