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 | |