trunk/src/mame/drivers/nss.c
| r17489 | r17490 | |
| 2 | 2 | |
| 3 | 3 | Nintendo Super System |
| 4 | 4 | |
| 5 | | driver by Angelo Salese, based off info from Nocash |
| 5 | driver by Angelo Salese, based off info from Noca$h |
| 6 | 6 | |
| 7 | 7 | TODO: |
| 8 | 8 | - EEPROM |
| r17489 | r17490 | |
| 315 | 315 | DECLARE_WRITE8_MEMBER(port_01_w); |
| 316 | 316 | DECLARE_READ8_MEMBER(nss_prot_r); |
| 317 | 317 | DECLARE_WRITE8_MEMBER(nss_prot_w); |
| 318 | | DECLARE_WRITE8_MEMBER(eeprom_w); |
| 319 | 318 | |
| 320 | 319 | DECLARE_DRIVER_INIT(nss); |
| 320 | bitmap_rgb32 *m_tmpbitmap; |
| 321 | |
| 321 | 322 | }; |
| 322 | 323 | |
| 324 | |
| 325 | |
| 323 | 326 | UINT32 nss_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) |
| 324 | 327 | { |
| 325 | 328 | m_m50458->screen_update(screen,bitmap,cliprect); |
| 329 | |
| 326 | 330 | return 0; |
| 327 | 331 | } |
| 328 | 332 | |
| r17489 | r17490 | |
| 483 | 487 | |
| 484 | 488 | WRITE8_MEMBER(nss_state::nss_prot_w) |
| 485 | 489 | { |
| 486 | | |
| 487 | 490 | if (m_cart_sel == 0) |
| 488 | 491 | { |
| 489 | 492 | rp5h01_enable_w(m_rp5h01, 0, 0); |
| r17489 | r17490 | |
| 492 | 495 | rp5h01_cs_w(m_rp5h01, 0, ~data & 0x01); |
| 493 | 496 | rp5h01_enable_w(m_rp5h01, 0, 1); |
| 494 | 497 | } |
| 495 | | //ioport("EEPROMOUT")->write(data, 0xff); |
| 496 | | } |
| 497 | | |
| 498 | | WRITE8_MEMBER(nss_state::eeprom_w) |
| 499 | | { |
| 500 | 498 | ioport("EEPROMOUT")->write(data, 0xff); |
| 501 | 499 | } |
| 502 | 500 | |
| 501 | |
| 503 | 502 | static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8, nss_state ) |
| 504 | 503 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 505 | 504 | AM_RANGE(0x8000, 0x8fff) AM_RAM |
| 506 | 505 | AM_RANGE(0x9000, 0x9fff) AM_READWRITE(ram_wp_r,ram_wp_w) |
| 507 | 506 | AM_RANGE(0xa000, 0xa000) AM_READ_PORT("EEPROMIN") |
| 508 | 507 | AM_RANGE(0xc000, 0xdfff) AM_ROM AM_REGION("ibios_rom", 0x6000 ) |
| 509 | | AM_RANGE(0xe000, 0xe000) AM_WRITE(eeprom_w) |
| 510 | 508 | AM_RANGE(0xe000, 0xffff) AM_READ(nss_prot_r) |
| 511 | | AM_RANGE(0xe001, 0xffff) AM_WRITE(nss_prot_w) |
| 509 | AM_RANGE(0xe000, 0xffff) AM_WRITE(nss_prot_w) |
| 512 | 510 | ADDRESS_MAP_END |
| 513 | 511 | |
| 514 | 512 | READ8_MEMBER(nss_state::port_00_r) |
| r17489 | r17490 | |
| 573 | 571 | } |
| 574 | 572 | |
| 575 | 573 | static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, nss_state ) |
| 576 | | /* TODO: I think that this actually masks to 0x7? */ |
| 577 | | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 574 | ADDRESS_MAP_GLOBAL_MASK(0x7) |
| 578 | 575 | AM_RANGE(0x00, 0x00) AM_READ(port_00_r) AM_WRITE(port_00_w) |
| 579 | | AM_RANGE(0x01, 0x01) AM_READ_PORT("FP") |
| 576 | AM_RANGE(0x01, 0x01) AM_READ_PORT("FP") AM_WRITE(port_01_w) |
| 580 | 577 | AM_RANGE(0x02, 0x02) AM_READ_PORT("SYSTEM") AM_WRITE(rtc_osd_w) |
| 581 | 578 | AM_RANGE(0x03, 0x03) AM_READ_PORT("RTC") |
| 582 | | |
| 583 | | AM_RANGE(0x72, 0x72) AM_WRITE(rtc_osd_w) |
| 584 | | AM_RANGE(0x80, 0x80) AM_WRITE(port_00_w) |
| 585 | | AM_RANGE(0x81, 0x81) AM_WRITE(port_01_w) |
| 586 | | AM_RANGE(0x82, 0x82) AM_WRITE(rtc_osd_w) |
| 587 | | AM_RANGE(0xea, 0xea) AM_WRITE(rtc_osd_w) |
| 588 | 579 | ADDRESS_MAP_END |
| 589 | 580 | |
| 590 | 581 | /* Mitsubishi M6M80011 */ |
| r17489 | r17490 | |
| 608 | 599 | MACHINE_START_CALL(snes); |
| 609 | 600 | |
| 610 | 601 | state->m_wram = auto_alloc_array_clear(machine, UINT8, 0x1000); |
| 602 | state->m_tmpbitmap = auto_bitmap_rgb32_alloc(machine,24*12,12*18); |
| 611 | 603 | } |
| 612 | 604 | |
| 613 | 605 | static INPUT_PORTS_START( snes ) |
| r17489 | r17490 | |
| 785 | 777 | |
| 786 | 778 | MCFG_SCREEN_ADD("screen", RASTER) |
| 787 | 779 | MCFG_SCREEN_RAW_PARAMS(DOTCLK_NTSC, SNES_HTOTAL, 0, SNES_SCR_WIDTH, SNES_VTOTAL_NTSC, 0, SNES_SCR_HEIGHT_NTSC) |
| 788 | | MCFG_SCREEN_UPDATE_STATIC( snes ) |
| 780 | MCFG_SCREEN_UPDATE_DRIVER( snes_state, snes_screen_update ) |
| 789 | 781 | |
| 790 | 782 | /* sound hardware */ |
| 791 | 783 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r17489 | r17490 | |
| 843 | 835 | ROM_LOAD("nss-c.dat" , 0x00000, 0x8000, CRC(a8e202b3) SHA1(b7afcfe4f5cf15df53452dc04be81929ced1efb2) ) /* bios */ \ |
| 844 | 836 | ROM_LOAD("nss-ic14.02", 0x10000, 0x8000, CRC(e06cb58f) SHA1(62f507e91a2797919a78d627af53f029c7d81477) ) /* bios */ \ |
| 845 | 837 | ROM_REGION( 0x2000, "dspprg", ROMREGION_ERASEFF) \ |
| 846 | | ROM_REGION( 0x800, "dspdata", ROMREGION_ERASEFF) |
| 838 | ROM_REGION( 0x800, "dspdata", ROMREGION_ERASEFF) \ |
| 839 | ROM_REGION( 0x200, "eeprom", ROMREGION_ERASEFF ) |
| 847 | 840 | |
| 848 | 841 | |
| 849 | 842 | |