trunk/src/mame/drivers/wc90.c
| r243575 | r243576 | |
| 55 | 55 | * * |
| 56 | 56 | ***************************** |
| 57 | 57 | |
| 58 | | There is known to be a Pacman hack running on this hardware. It was done by Mike C. and isn't ment |
| 58 | There is known to be a Pacman hack running on this hardware. It was done by Mike C. and isn't meant |
| 59 | 59 | for inclusion in MAME. However the roms with checksums are listed below to prevent it being added |
| 60 | 60 | as a newly "found" game: |
| 61 | 61 | |
| r243575 | r243576 | |
| 79 | 79 | #include "includes/wc90.h" |
| 80 | 80 | |
| 81 | 81 | |
| 82 | | WRITE8_MEMBER(wc90_state::wc90_bankswitch_w) |
| 82 | WRITE8_MEMBER(wc90_state::bankswitch_w) |
| 83 | 83 | { |
| 84 | 84 | int bankaddress; |
| 85 | 85 | UINT8 *RAM = memregion("maincpu")->base(); |
| r243575 | r243576 | |
| 89 | 89 | membank("bank1")->set_base(&RAM[bankaddress] ); |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | | WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w) |
| 92 | WRITE8_MEMBER(wc90_state::bankswitch1_w) |
| 93 | 93 | { |
| 94 | 94 | int bankaddress; |
| 95 | 95 | UINT8 *RAM = memregion("sub")->base(); |
| r243575 | r243576 | |
| 99 | 99 | membank("bank2")->set_base(&RAM[bankaddress] ); |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | | WRITE8_MEMBER(wc90_state::wc90_sound_command_w) |
| 102 | WRITE8_MEMBER(wc90_state::sound_command_w) |
| 103 | 103 | { |
| 104 | 104 | soundlatch_byte_w(space, offset, data); |
| 105 | 105 | m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| r243575 | r243576 | |
| 110 | 110 | static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8, wc90_state ) |
| 111 | 111 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 112 | 112 | AM_RANGE(0x8000, 0x9fff) AM_RAM /* Main RAM */ |
| 113 | | AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(wc90_fgvideoram_w) AM_SHARE("fgvideoram") /* fg video ram */ |
| 113 | AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram") /* fg video ram */ |
| 114 | 114 | AM_RANGE(0xb000, 0xbfff) AM_RAM |
| 115 | | AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(wc90_bgvideoram_w) AM_SHARE("bgvideoram") |
| 115 | AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram") |
| 116 | 116 | AM_RANGE(0xd000, 0xdfff) AM_RAM |
| 117 | | AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(wc90_txvideoram_w) AM_SHARE("txvideoram") /* tx video ram */ |
| 117 | AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram") /* tx video ram */ |
| 118 | 118 | AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1") |
| 119 | 119 | AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1") |
| 120 | 120 | AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1") |
| r243575 | r243576 | |
| 134 | 134 | AM_RANGE(0xfc43, 0xfc43) AM_WRITEONLY AM_SHARE("scroll2yhi") |
| 135 | 135 | AM_RANGE(0xfc46, 0xfc46) AM_WRITEONLY AM_SHARE("scroll2xlo") |
| 136 | 136 | AM_RANGE(0xfc47, 0xfc47) AM_WRITEONLY AM_SHARE("scroll2xhi") |
| 137 | | AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(wc90_sound_command_w) |
| 137 | AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(sound_command_w) |
| 138 | 138 | AM_RANGE(0xfcd0, 0xfcd0) AM_WRITE(watchdog_reset_w) |
| 139 | | AM_RANGE(0xfce0, 0xfce0) AM_WRITE(wc90_bankswitch_w) |
| 139 | AM_RANGE(0xfce0, 0xfce0) AM_WRITE(bankswitch_w) |
| 140 | 140 | ADDRESS_MAP_END |
| 141 | 141 | |
| 142 | 142 | static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state ) |
| r243575 | r243576 | |
| 147 | 147 | AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 148 | 148 | AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2") |
| 149 | 149 | AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1") |
| 150 | | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w) |
| 150 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(bankswitch1_w) |
| 151 | 151 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE(watchdog_reset_w) |
| 152 | 152 | ADDRESS_MAP_END |
| 153 | 153 | |
| r243575 | r243576 | |
| 316 | 316 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 317 | 317 | MCFG_SCREEN_SIZE(32*8, 32*8) |
| 318 | 318 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
| 319 | | MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90) |
| 319 | MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update) |
| 320 | 320 | MCFG_SCREEN_PALETTE("palette") |
| 321 | 321 | |
| 322 | 322 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", wc90) |
| r243575 | r243576 | |
| 472 | 472 | ROM_LOAD( "ic82_06.bin", 0x00000, 0x20000, CRC(2fd692ed) SHA1(0273dc39181504320bec0187d074b2f86c821508) ) |
| 473 | 473 | ROM_END |
| 474 | 474 | |
| 475 | | GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 476 | | GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 477 | | GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 478 | | GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 475 | GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 476 | GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 477 | GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 478 | GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
trunk/src/mame/includes/wc90.h
| r243575 | r243576 | |
| 5 | 5 | public: |
| 6 | 6 | wc90_state(const machine_config &mconfig, device_type type, const char *tag) |
| 7 | 7 | : driver_device(mconfig, type, tag), |
| 8 | m_maincpu(*this, "maincpu"), |
| 9 | m_audiocpu(*this, "audiocpu"), |
| 10 | m_gfxdecode(*this, "gfxdecode"), |
| 11 | m_palette(*this, "palette"), |
| 12 | m_sprgen(*this, "spritegen"), |
| 8 | 13 | m_fgvideoram(*this, "fgvideoram"), |
| 9 | 14 | m_bgvideoram(*this, "bgvideoram"), |
| 10 | 15 | m_txvideoram(*this, "txvideoram"), |
| r243575 | r243576 | |
| 20 | 25 | m_scroll1yhi(*this, "scroll1yhi"), |
| 21 | 26 | m_scroll2ylo(*this, "scroll2ylo"), |
| 22 | 27 | m_scroll2yhi(*this, "scroll2yhi"), |
| 23 | | m_spriteram(*this, "spriteram"), |
| 24 | | m_maincpu(*this, "maincpu"), |
| 25 | | m_audiocpu(*this, "audiocpu"), |
| 26 | | m_gfxdecode(*this, "gfxdecode"), |
| 27 | | m_palette(*this, "palette"), |
| 28 | | m_sprgen(*this, "spritegen") |
| 28 | m_spriteram(*this, "spriteram") |
| 29 | 29 | { } |
| 30 | 30 | |
| 31 | |
| 32 | required_device<cpu_device> m_maincpu; |
| 33 | required_device<cpu_device> m_audiocpu; |
| 34 | required_device<gfxdecode_device> m_gfxdecode; |
| 35 | required_device<palette_device> m_palette; |
| 36 | required_device<tecmo_spr_device> m_sprgen; |
| 31 | 37 | |
| 32 | | |
| 33 | 38 | required_shared_ptr<UINT8> m_fgvideoram; |
| 34 | 39 | required_shared_ptr<UINT8> m_bgvideoram; |
| 35 | 40 | required_shared_ptr<UINT8> m_txvideoram; |
| r243575 | r243576 | |
| 45 | 50 | required_shared_ptr<UINT8> m_scroll1yhi; |
| 46 | 51 | required_shared_ptr<UINT8> m_scroll2ylo; |
| 47 | 52 | required_shared_ptr<UINT8> m_scroll2yhi; |
| 53 | required_shared_ptr<UINT8> m_spriteram; |
| 54 | |
| 48 | 55 | tilemap_t *m_tx_tilemap; |
| 49 | 56 | tilemap_t *m_fg_tilemap; |
| 50 | 57 | tilemap_t *m_bg_tilemap; |
| 51 | | required_shared_ptr<UINT8> m_spriteram; |
| 52 | | DECLARE_WRITE8_MEMBER(wc90_bankswitch_w); |
| 53 | | DECLARE_WRITE8_MEMBER(wc90_bankswitch1_w); |
| 54 | | DECLARE_WRITE8_MEMBER(wc90_sound_command_w); |
| 55 | | DECLARE_WRITE8_MEMBER(wc90_bgvideoram_w); |
| 56 | | DECLARE_WRITE8_MEMBER(wc90_fgvideoram_w); |
| 57 | | DECLARE_WRITE8_MEMBER(wc90_txvideoram_w); |
| 58 | |
| 59 | DECLARE_WRITE8_MEMBER(bankswitch_w); |
| 60 | DECLARE_WRITE8_MEMBER(bankswitch1_w); |
| 61 | DECLARE_WRITE8_MEMBER(sound_command_w); |
| 62 | DECLARE_WRITE8_MEMBER(bgvideoram_w); |
| 63 | DECLARE_WRITE8_MEMBER(fgvideoram_w); |
| 64 | DECLARE_WRITE8_MEMBER(txvideoram_w); |
| 65 | DECLARE_WRITE_LINE_MEMBER(irqhandler); |
| 66 | |
| 58 | 67 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 59 | 68 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
| 60 | 69 | TILE_GET_INFO_MEMBER(get_tx_tile_info); |
| 61 | 70 | TILE_GET_INFO_MEMBER(track_get_bg_tile_info); |
| 62 | 71 | TILE_GET_INFO_MEMBER(track_get_fg_tile_info); |
| 72 | |
| 63 | 73 | virtual void video_start(); |
| 64 | 74 | DECLARE_VIDEO_START(wc90t); |
| 65 | | UINT32 screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 66 | | |
| 67 | | DECLARE_WRITE_LINE_MEMBER(irqhandler); |
| 68 | | required_device<cpu_device> m_maincpu; |
| 69 | | required_device<cpu_device> m_audiocpu; |
| 70 | | required_device<gfxdecode_device> m_gfxdecode; |
| 71 | | required_device<palette_device> m_palette; |
| 72 | | required_device<tecmo_spr_device> m_sprgen; |
| 75 | |
| 76 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 73 | 77 | }; |