trunk/src/mame/drivers/goldnpkr.c
| r22659 | r22660 | |
| 119 | 119 | * "Unknown french poker game", 198?, Unknown. |
| 120 | 120 | * "Unknown encrypted poker game", 198?, Unknown. |
| 121 | 121 | * Bonne Chance! (Golden Poker prequel hardware), 198?, Unknown. |
| 122 | * Mundial/Mondial (Italian/French), 1987, Unknown. |
| 122 | 123 | |
| 123 | 124 | |
| 124 | 125 | ************************************************************************************ |
| r22659 | r22660 | |
| 429 | 430 | to get the final palette. |
| 430 | 431 | |
| 431 | 432 | |
| 433 | * Mundial/Mondial (Italian/French) |
| 434 | |
| 435 | This game has two different programs inside the program ROM in banks of 0x4000 each. |
| 436 | The first program is meant for Italian language, while the second one is for French. |
| 437 | |
| 438 | There is nothing (no writes) that point to a banking. Maybe is driven by PLDs, or |
| 439 | just routed to the unused DIP switches of the bank (4 lines of the port are used by |
| 440 | discrete sound). Otherwise should be splitted in different games.... Need to check |
| 441 | the real board behaviour. |
| 442 | |
| 443 | For now, I implemented the banking and set the first program (Italian) fixed into |
| 444 | the driver init till we can get more evidence about. |
| 445 | |
| 446 | |
| 432 | 447 | ************************************************************************************ |
| 433 | 448 | |
| 434 | 449 | |
| r22659 | r22660 | |
| 940 | 955 | - Inverted the bipolar PROM data to get the proper palette. |
| 941 | 956 | - Added technical notes. |
| 942 | 957 | |
| 958 | - Added Mundial/Mondial (Italian/French). |
| 959 | - Implemented the program banking, but set the Italian lang |
| 960 | as default till we can get some evidence. |
| 961 | - Added technical notes. |
| 943 | 962 | |
| 963 | |
| 944 | 964 | TODO: |
| 945 | 965 | |
| 946 | 966 | - Missing PIA connections. |
| r22659 | r22660 | |
| 1015 | 1035 | DECLARE_DRIVER_INIT(vkdlswwr); |
| 1016 | 1036 | DECLARE_DRIVER_INIT(vkdlswwv); |
| 1017 | 1037 | DECLARE_DRIVER_INIT(bchancep); |
| 1038 | DECLARE_DRIVER_INIT(mondial); |
| 1018 | 1039 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 1019 | 1040 | TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info); |
| 1020 | 1041 | virtual void video_start(); |
| r22659 | r22660 | |
| 1541 | 1562 | ADDRESS_MAP_END |
| 1542 | 1563 | |
| 1543 | 1564 | |
| 1565 | static ADDRESS_MAP_START( mondial_map, AS_PROGRAM, 8, goldnpkr_state ) |
| 1566 | ADDRESS_MAP_GLOBAL_MASK(0x7fff) |
| 1567 | AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ |
| 1568 | AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_device, address_w) |
| 1569 | AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) |
| 1570 | AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_device, read, write) |
| 1571 | AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_device, read, write) |
| 1572 | AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_SHARE("videoram") |
| 1573 | AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_SHARE("colorram") |
| 1574 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") |
| 1575 | ADDRESS_MAP_END |
| 1576 | |
| 1577 | |
| 1544 | 1578 | /********************************************* |
| 1545 | 1579 | * Input Ports * |
| 1546 | 1580 | *********************************************/ |
| r22659 | r22660 | |
| 3279 | 3313 | INPUT_PORTS_END |
| 3280 | 3314 | |
| 3281 | 3315 | |
| 3316 | static INPUT_PORTS_START( mondial ) |
| 3317 | /* Multiplexed - 4x5bits */ |
| 3318 | PORT_START("IN0-0") |
| 3319 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) |
| 3320 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) |
| 3321 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) |
| 3322 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) |
| 3323 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) |
| 3324 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3325 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3326 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3327 | |
| 3328 | PORT_START("IN0-1") |
| 3329 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_IMPULSE(3) PORT_NAME("Out (Manual Collect)") PORT_CODE(KEYCODE_Q) |
| 3330 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) |
| 3331 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) |
| 3332 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big") |
| 3333 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small") |
| 3334 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3335 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3336 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3337 | |
| 3338 | PORT_START("IN0-2") |
| 3339 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) |
| 3340 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) |
| 3341 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) |
| 3342 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) |
| 3343 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) |
| 3344 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3345 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3346 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3347 | |
| 3348 | PORT_START("IN0-3") |
| 3349 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Settings") PORT_CODE(KEYCODE_F2) |
| 3350 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3351 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 3352 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 3353 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 3354 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3355 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3356 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 3357 | |
| 3358 | PORT_START("SW1") |
| 3359 | /* only bits 4-7 are connected here and were routed to SW1 1-4 */ |
| 3360 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 3361 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 3362 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 3363 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 3364 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") |
| 3365 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 3366 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 3367 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") |
| 3368 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 3369 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 3370 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") |
| 3371 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 3372 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 3373 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") |
| 3374 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 3375 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 3376 | |
| 3377 | PORT_START("SELDSW") |
| 3378 | PORT_DIPNAME( 0x01, 0x00, "Game Selector" ) |
| 3379 | PORT_DIPSETTING( 0x00, "Game 1 (Italian" ) |
| 3380 | PORT_DIPSETTING( 0x01, "Game 2 (French)" ) |
| 3381 | |
| 3382 | INPUT_PORTS_END |
| 3383 | |
| 3384 | |
| 3282 | 3385 | /********************************************* |
| 3283 | 3386 | * Graphics Layouts * |
| 3284 | 3387 | *********************************************/ |
| r22659 | r22660 | |
| 3768 | 3871 | MACHINE_CONFIG_END |
| 3769 | 3872 | |
| 3770 | 3873 | |
| 3874 | static MACHINE_CONFIG_DERIVED( mondial, goldnpkr_base ) |
| 3875 | |
| 3876 | /* basic machine hardware */ |
| 3877 | MCFG_CPU_MODIFY("maincpu") |
| 3878 | MCFG_CPU_PROGRAM_MAP(mondial_map) |
| 3879 | |
| 3880 | /* sound hardware */ |
| 3881 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 3882 | MCFG_SOUND_ADD("discrete", DISCRETE, 0) |
| 3883 | MCFG_SOUND_CONFIG_DISCRETE(goldnpkr) |
| 3884 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 3885 | MACHINE_CONFIG_END |
| 3886 | |
| 3887 | |
| 3771 | 3888 | /********************************************* |
| 3772 | 3889 | * Rom Load * |
| 3773 | 3890 | *********************************************/ |
| r22659 | r22660 | |
| 9368 | 9485 | |
| 9369 | 9486 | |
| 9370 | 9487 | /* |
| 9371 | | Bonne Chance! |
| 9372 | | This PCB came with PIAs 6821 for IO |
| 9373 | 9488 | |
| 9374 | | Color system seems to pass the BP data through |
| 9375 | | gates, latches or PLDs and get finally inverted. |
| 9489 | Bonne Chance! |
| 9490 | This PCB came with PIAs 6821 for IO |
| 9376 | 9491 | |
| 9377 | | Cards GFX are similar to Golden Poker ones, |
| 9378 | | but the back cards GFX are different... |
| 9492 | Color system seems to pass the BP data through |
| 9493 | gates, latches or PLDs and get finally inverted. |
| 9379 | 9494 | |
| 9380 | | debug: bp 5042 |
| 9495 | Cards GFX are similar to Golden Poker ones, |
| 9496 | but the back cards GFX are different... |
| 9381 | 9497 | |
| 9498 | debug: bp 5042 |
| 9499 | |
| 9382 | 9500 | */ |
| 9501 | |
| 9383 | 9502 | ROM_START( bchancep ) /* Bonne Chance! with PIAs 6821 */ |
| 9384 | 9503 | ROM_REGION( 0x3000, "gfx", 0 ) |
| 9385 | 9504 | ROM_LOAD( "84.bin", 0x0000, 0x1000, CRC(31f8104e) SHA1(b99f79019517ca90c48e9f303f41256d68faea91) ) /* cards deck gfx bitplane 3, identical halves */ |
| r22659 | r22660 | |
| 9404 | 9523 | ROM_LOAD( "bchancep_bp.bin", 0x0000, 0x0100, CRC(70fe1582) SHA1(118c743d445a37ad760e4163b61c3c562d7adda6) ) |
| 9405 | 9524 | ROM_END |
| 9406 | 9525 | |
| 9526 | /* |
| 9407 | 9527 | |
| 9528 | PCB marked "MONDIAL" |
| 9529 | REV 2.1 - ALG |
| 9530 | |
| 9531 | Sticker APP: |
| 9532 | Copie prohibee. |
| 9533 | loi du 3 7 1985. |
| 9534 | |
| 9535 | 1x UM6502. |
| 9536 | 1x UM6845. |
| 9537 | 2x ST EF6821P. |
| 9538 | |
| 9539 | 2x UM6116-2L |
| 9540 | 1x MK48202B-25 Zeropower RAM. |
| 9541 | |
| 9542 | 1x M27C256 (MBV BI) |
| 9543 | 1x TMS27C256 (3M) |
| 9544 | 2x TMS27C128 (1M. 2M) |
| 9545 | |
| 9546 | 1X Bipolar PROM. |
| 9547 | |
| 9548 | 1x LM555CN. |
| 9549 | 1x MAXIM MAX691CPE. |
| 9550 | 1x 8 DIP switches bank. |
| 9551 | 1x Xtal 10 MHz. |
| 9552 | |
| 9553 | The program ROM contains 2 different programs |
| 9554 | in banks of 0x4000 each. |
| 9555 | |
| 9556 | */ |
| 9557 | |
| 9558 | ROM_START( pokermon ) |
| 9559 | ROM_REGION( 0x18000, "maincpu", 0 ) /* using 1st bank program */ |
| 9560 | ROM_LOAD( "mbv_bi.bin", 0x10000, 0x8000, CRC(da00e08a) SHA1(98e52915178e29ab3ae674e6b895da14626d3dd8) ) |
| 9561 | |
| 9562 | ROM_REGION( 0x18000, "gfx", 0 ) |
| 9563 | ROM_LOAD( "1m.bin", 0x00000, 0x4000, CRC(1b9e73ef) SHA1(fc9b67ab4c233a7e8ec8dc799732884f74166db0) ) |
| 9564 | ROM_LOAD( "2m.bin", 0x08000, 0x4000, CRC(c51ace9b) SHA1(af84324c097beb0fefa54ccb7807c5ebb9acdcc3) ) |
| 9565 | ROM_LOAD( "3m.bin", 0x10000, 0x8000, CRC(b2237068) SHA1(ece4f089776bbd5224c63c6a41a2e86a5e89d0c5) ) |
| 9566 | |
| 9567 | ROM_REGION( 0x1800, "gfx1", 0 ) |
| 9568 | ROM_FILL( 0x0000, 0x1000, 0 ) /* filling the R-G bitplanes */ |
| 9569 | ROM_COPY( "gfx", 0x14800, 0x1000, 0x0800 ) /* text, numbers and soccer ball tiles */ |
| 9570 | |
| 9571 | ROM_REGION( 0x1800, "gfx2", 0 ) |
| 9572 | ROM_COPY( "gfx", 0x00000, 0x0000, 0x0800 ) /* soccer player gfx, bitplane 1 */ |
| 9573 | ROM_COPY( "gfx", 0x08000, 0x0800, 0x0800 ) /* soccer player gfx, bitplane 2 */ |
| 9574 | ROM_COPY( "gfx", 0x12000, 0x1000, 0x0800 ) /* soccer player gfx, bitplane 3 */ |
| 9575 | |
| 9576 | ROM_REGION( 0x0100, "proms", 0 ) |
| 9577 | ROM_LOAD( "mb.bin", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) |
| 9578 | ROM_END |
| 9579 | |
| 9580 | |
| 9408 | 9581 | /********************************************* |
| 9409 | 9582 | * Driver Init * |
| 9410 | 9583 | *********************************************/ |
| r22659 | r22660 | |
| 9833 | 10006 | } |
| 9834 | 10007 | |
| 9835 | 10008 | |
| 10009 | DRIVER_INIT_MEMBER(goldnpkr_state, mondial) |
| 10010 | { |
| 10011 | /* Program banking..... */ |
| 9836 | 10012 | |
| 10013 | UINT8 *ROM = memregion("maincpu")->base(); |
| 10014 | membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); |
| 10015 | |
| 10016 | membank("bank1")->set_entry(0); // for now, fixed in italian. |
| 10017 | |
| 10018 | // UINT8 seldsw = (ioport("SELDSW")->read() ); |
| 10019 | // popmessage("ROM Bank: %02X", seldsw); |
| 10020 | // membank("bank1")->set_entry(seldsw); |
| 10021 | |
| 10022 | } |
| 10023 | |
| 10024 | |
| 9837 | 10025 | /********************************************* |
| 9838 | 10026 | * Game Drivers * |
| 9839 | 10027 | *********************************************/ |
| r22659 | r22660 | |
| 9966 | 10154 | GAME( 198?, pokerduc, 0, goldnpkr, goldnpkr, goldnpkr_state, icp1db, ROT0, "<unknown>", "unknown encrypted poker game", GAME_NOT_WORKING ) // encrypted. |
| 9967 | 10155 | |
| 9968 | 10156 | GAME( 198?, bchancep, 0, goldnpkr, goldnpkr, goldnpkr_state, bchancep, ROT0, "<unknown>", "Bonne Chance! (Golden Poker prequel hardware)", GAME_NOT_WORKING ) |
| 10157 | GAME( 1987, pokermon, 0, mondial, bsuerte, goldnpkr_state, mondial, ROT0, "<unknown>", "Mundial/Mondial (Italian/French)", 0 ) |