trunk/src/mame/drivers/shangkid.c
| r245686 | r245687 | |
| 56 | 56 | |
| 57 | 57 | /***************************************************************************************/ |
| 58 | 58 | |
| 59 | | WRITE8_MEMBER(shangkid_state::shangkid_maincpu_bank_w) |
| 59 | WRITE8_MEMBER(shangkid_state::maincpu_bank_w) |
| 60 | 60 | { |
| 61 | 61 | membank("bank1")->set_entry(data & 1); |
| 62 | 62 | } |
| 63 | 63 | |
| 64 | | WRITE8_MEMBER(shangkid_state::shangkid_bbx_enable_w) |
| 64 | WRITE8_MEMBER(shangkid_state::bbx_enable_w) |
| 65 | 65 | { |
| 66 | 66 | m_bbx->set_input_line(INPUT_LINE_HALT, data?0:1 ); |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | | WRITE8_MEMBER(shangkid_state::shangkid_cpu_reset_w) |
| 69 | WRITE8_MEMBER(shangkid_state::cpu_reset_w) |
| 70 | 70 | { |
| 71 | 71 | if( data == 0 ) |
| 72 | 72 | { |
| r245686 | r245687 | |
| 78 | 78 | } |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | | WRITE8_MEMBER(shangkid_state::shangkid_sound_enable_w) |
| 81 | WRITE8_MEMBER(shangkid_state::sound_enable_w) |
| 82 | 82 | { |
| 83 | 83 | m_bbx_sound_enable = data; |
| 84 | 84 | } |
| r245686 | r245687 | |
| 112 | 112 | |
| 113 | 113 | /***************************************************************************************/ |
| 114 | 114 | |
| 115 | | READ8_MEMBER(shangkid_state::shangkid_soundlatch_r) |
| 115 | READ8_MEMBER(shangkid_state::soundlatch_r) |
| 116 | 116 | { |
| 117 | 117 | return m_sound_latch; |
| 118 | 118 | } |
| r245686 | r245687 | |
| 122 | 122 | DRIVER_INIT_MEMBER(shangkid_state,chinhero) |
| 123 | 123 | { |
| 124 | 124 | m_gfx_type = 0; |
| 125 | |
| 126 | save_item(NAME(m_bbx_sound_enable)); |
| 127 | save_item(NAME(m_sound_latch)); |
| 125 | 128 | } |
| 126 | 129 | |
| 127 | 130 | DRIVER_INIT_MEMBER(shangkid_state,shangkid) |
| r245686 | r245687 | |
| 131 | 134 | /* set up banking */ |
| 132 | 135 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x8000, 0x8000); |
| 133 | 136 | membank("bank2")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x0000, 0x10000); |
| 137 | |
| 138 | save_item(NAME(m_bbx_sound_enable)); |
| 139 | save_item(NAME(m_sound_latch)); |
| 134 | 140 | } |
| 135 | 141 | |
| 136 | 142 | /***************************************************************************************/ |
| r245686 | r245687 | |
| 231 | 237 | static ADDRESS_MAP_START( chinhero_main_map, AS_PROGRAM, 8, shangkid_state ) |
| 232 | 238 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 233 | 239 | AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */ |
| 234 | | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 235 | | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 240 | AM_RANGE(0xb000, 0xb000) AM_WRITE(bbx_enable_w) |
| 241 | AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_enable_w) |
| 236 | 242 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ |
| 237 | 243 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ |
| 238 | | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 244 | AM_RANGE(0xb004, 0xb004) AM_WRITE(cpu_reset_w) |
| 239 | 245 | AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */ |
| 240 | 246 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 241 | 247 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| 242 | 248 | AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2") |
| 243 | 249 | AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1") |
| 244 | 250 | AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_SHARE("videoreg") |
| 245 | | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_SHARE("videoram") |
| 251 | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 246 | 252 | AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2") |
| 247 | 253 | AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram") |
| 248 | 254 | ADDRESS_MAP_END |
| r245686 | r245687 | |
| 251 | 257 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 252 | 258 | AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") |
| 253 | 259 | AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */ |
| 254 | | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 255 | | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 260 | AM_RANGE(0xb000, 0xb000) AM_WRITE(bbx_enable_w) |
| 261 | AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_enable_w) |
| 256 | 262 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ |
| 257 | 263 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ |
| 258 | | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 264 | AM_RANGE(0xb004, 0xb004) AM_WRITE(cpu_reset_w) |
| 259 | 265 | AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */ |
| 260 | | AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w) |
| 266 | AM_RANGE(0xb007, 0xb007) AM_WRITE(maincpu_bank_w) |
| 261 | 267 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 262 | 268 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| 263 | 269 | AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2") |
| 264 | 270 | AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1") |
| 265 | 271 | AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_SHARE("videoreg") |
| 266 | | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_SHARE("videoram") |
| 272 | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 267 | 273 | AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2") |
| 268 | 274 | AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram") |
| 269 | 275 | ADDRESS_MAP_END |
| r245686 | r245687 | |
| 273 | 279 | static ADDRESS_MAP_START( chinhero_bbx_map, AS_PROGRAM, 8, shangkid_state ) |
| 274 | 280 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 275 | 281 | AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */ |
| 276 | | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 277 | | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 282 | AM_RANGE(0xb000, 0xb000) AM_WRITE(bbx_enable_w) |
| 283 | AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_enable_w) |
| 278 | 284 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ |
| 279 | 285 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ |
| 280 | | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 286 | AM_RANGE(0xb004, 0xb004) AM_WRITE(cpu_reset_w) |
| 281 | 287 | AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */ |
| 282 | 288 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 283 | 289 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| 284 | 290 | AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2") |
| 285 | 291 | AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1") |
| 286 | | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_SHARE("videoram") |
| 292 | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 287 | 293 | AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2") |
| 288 | 294 | AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram") |
| 289 | 295 | ADDRESS_MAP_END |
| r245686 | r245687 | |
| 291 | 297 | static ADDRESS_MAP_START( shangkid_bbx_map, AS_PROGRAM, 8, shangkid_state ) |
| 292 | 298 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 293 | 299 | AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */ |
| 294 | | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 295 | | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 300 | AM_RANGE(0xb000, 0xb000) AM_WRITE(bbx_enable_w) |
| 301 | AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_enable_w) |
| 296 | 302 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ |
| 297 | 303 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ |
| 298 | | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 304 | AM_RANGE(0xb004, 0xb004) AM_WRITE(cpu_reset_w) |
| 299 | 305 | AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */ |
| 300 | | AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w) |
| 306 | AM_RANGE(0xb007, 0xb007) AM_WRITE(maincpu_bank_w) |
| 301 | 307 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 302 | 308 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| 303 | 309 | AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2") |
| 304 | 310 | AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1") |
| 305 | | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_SHARE("videoram") |
| 311 | AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 306 | 312 | AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2") |
| 307 | 313 | AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram") |
| 308 | 314 | ADDRESS_MAP_END |
| r245686 | r245687 | |
| 331 | 337 | |
| 332 | 338 | static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, shangkid_state ) |
| 333 | 339 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 334 | | AM_RANGE(0x00, 0x00) AM_READ(shangkid_soundlatch_r) AM_DEVWRITE("dac", dac_device, write_unsigned8) |
| 340 | AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) AM_DEVWRITE("dac", dac_device, write_unsigned8) |
| 335 | 341 | ADDRESS_MAP_END |
| 336 | 342 | |
| 337 | 343 | /***************************************************************************************/ |
| r245686 | r245687 | |
| 847 | 853 | ROM_LOAD( "cr02ic04.bin", 0x08000, 0x2000, CRC(85b6e455) SHA1(3b2cd1e55355d24c014c5afe0212c6c9f0899a28) ) /* banked at 0x8000 */ |
| 848 | 854 | ROM_LOAD( "cr03ic05.bin", 0x10000, 0x2000, CRC(3b383863) SHA1(3fb10a7f89cf2387d70b0337916063fd4ec5f754) ) /* banked at 0x8000 */ |
| 849 | 855 | |
| 850 | | /* The BBX coprocessor is burried in an epoxy block. It contains: |
| 856 | /* The BBX coprocessor is buried in an epoxy block. It contains: |
| 851 | 857 | ** - a surface-mounted Z80 (TMPZ84C00P) |
| 852 | 858 | ** - LS245 logic IC |
| 853 | 859 | ** - battery backed ram chip Fujitsu MB8464 |
| r245686 | r245687 | |
| 911 | 917 | ROM_LOAD( "3.4", 0x08000, 0x2000, CRC(ad210482) SHA1(9a32bbaf601d3b00f0a79ce90bb9a32e8e608977) ) /* banked at 0x8000 */ |
| 912 | 918 | ROM_LOAD( "4.5", 0x10000, 0x2000, CRC(6518943a) SHA1(b5e78267d5a58c466c9ae20ba4f9c5e14e252287) ) /* banked at 0x8000 */ |
| 913 | 919 | |
| 914 | | /* The BBX coprocessor is burried in an epoxy block. It contains: |
| 920 | /* The BBX coprocessor is buried in an epoxy block. It contains: |
| 915 | 921 | ** - a surface-mounted Z80 (TMPZ84C00P) |
| 916 | 922 | ** - LS245 logic IC |
| 917 | 923 | ** - battery backed ram chip Fujitsu MB8464 |
| r245686 | r245687 | |
| 995 | 1001 | ROM_END |
| 996 | 1002 | |
| 997 | 1003 | |
| 998 | | GAME( 1984, dynamski, 0, dynamski, dynamski, driver_device, 0, ROT90, "Taiyo", "Dynamic Ski", GAME_NO_COCKTAIL ) |
| 999 | | GAME( 1984, chinhero, 0, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero", 0 ) // by Nihon Game? |
| 1000 | | GAME( 1984, chinhero2,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 1)", 0 ) |
| 1001 | | GAME( 1984, chinhero3,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 2)", 0 ) |
| 1002 | | GAME( 1984, chinherot,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo (Taito license)", "Chinese Heroe (Taito)", 0 ) |
| 1003 | | GAME( 1985, shangkid, 0, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Data East license)", "Shanghai Kid", GAME_NO_COCKTAIL ) |
| 1004 | | GAME( 1985, hiryuken, shangkid, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Taito license)", "Hokuha Syourin Hiryu no Ken", GAME_NO_COCKTAIL ) |
| 1004 | GAME( 1984, dynamski, 0, dynamski, dynamski, driver_device, 0, ROT90, "Taiyo", "Dynamic Ski", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 1005 | GAME( 1984, chinhero, 0, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero", GAME_SUPPORTS_SAVE ) // by Nihon Game? |
| 1006 | GAME( 1984, chinhero2,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 1)", GAME_SUPPORTS_SAVE ) |
| 1007 | GAME( 1984, chinhero3,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 2)", GAME_SUPPORTS_SAVE ) |
| 1008 | GAME( 1984, chinherot,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo (Taito license)", "Chinese Heroe (Taito)", GAME_SUPPORTS_SAVE ) |
| 1009 | GAME( 1985, shangkid, 0, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Data East license)", "Shanghai Kid", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 1010 | GAME( 1985, hiryuken, shangkid, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Taito license)", "Hokuha Syourin Hiryu no Ken", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
trunk/src/mame/drivers/shaolins.c
| r245686 | r245687 | |
| 13 | 13 | |
| 14 | 14 | #define MASTER_CLOCK XTAL_18_432MHz |
| 15 | 15 | |
| 16 | | TIMER_DEVICE_CALLBACK_MEMBER(shaolins_state::shaolins_interrupt) |
| 16 | TIMER_DEVICE_CALLBACK_MEMBER(shaolins_state::interrupt) |
| 17 | 17 | { |
| 18 | 18 | int scanline = param; |
| 19 | 19 | |
| r245686 | r245687 | |
| 26 | 26 | |
| 27 | 27 | |
| 28 | 28 | static ADDRESS_MAP_START( shaolins_map, AS_PROGRAM, 8, shaolins_state ) |
| 29 | | AM_RANGE(0x0000, 0x0000) AM_WRITE(shaolins_nmi_w) /* bit 0 = flip screen, bit 1 = nmi enable, bit 2 = ? */ |
| 29 | AM_RANGE(0x0000, 0x0000) AM_WRITE(nmi_w) /* bit 0 = flip screen, bit 1 = nmi enable, bit 2 = ? */ |
| 30 | 30 | /* bit 3, bit 4 = coin counters */ |
| 31 | 31 | AM_RANGE(0x0100, 0x0100) AM_WRITE(watchdog_reset_w) |
| 32 | 32 | AM_RANGE(0x0300, 0x0300) AM_DEVWRITE("sn1", sn76489a_device, write) /* trigger chip to read from latch. The program always */ |
| r245686 | r245687 | |
| 40 | 40 | AM_RANGE(0x0703, 0x0703) AM_READ_PORT("DSW3") |
| 41 | 41 | AM_RANGE(0x0800, 0x0800) AM_WRITENOP /* latch for 76496 #0 */ |
| 42 | 42 | AM_RANGE(0x1000, 0x1000) AM_WRITENOP /* latch for 76496 #1 */ |
| 43 | | AM_RANGE(0x1800, 0x1800) AM_WRITE(shaolins_palettebank_w) |
| 44 | | AM_RANGE(0x2000, 0x2000) AM_WRITE(shaolins_scroll_w) |
| 43 | AM_RANGE(0x1800, 0x1800) AM_WRITE(palettebank_w) |
| 44 | AM_RANGE(0x2000, 0x2000) AM_WRITE(scroll_w) |
| 45 | 45 | AM_RANGE(0x2800, 0x2bff) AM_RAM /* RAM BANK 2 */ |
| 46 | 46 | AM_RANGE(0x3000, 0x30ff) AM_RAM /* RAM BANK 1 */ |
| 47 | 47 | AM_RANGE(0x3100, 0x33ff) AM_RAM AM_SHARE("spriteram") |
| 48 | | AM_RANGE(0x3800, 0x3bff) AM_RAM_WRITE(shaolins_colorram_w) AM_SHARE("colorram") |
| 49 | | AM_RANGE(0x3c00, 0x3fff) AM_RAM_WRITE(shaolins_videoram_w) AM_SHARE("videoram") |
| 48 | AM_RANGE(0x3800, 0x3bff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram") |
| 49 | AM_RANGE(0x3c00, 0x3fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 50 | 50 | AM_RANGE(0x4000, 0x5fff) AM_ROM /* Machine checks for extra rom */ |
| 51 | 51 | AM_RANGE(0x6000, 0xffff) AM_ROM |
| 52 | 52 | ADDRESS_MAP_END |
| r245686 | r245687 | |
| 155 | 155 | |
| 156 | 156 | |
| 157 | 157 | |
| 158 | | static const gfx_layout shaolins_charlayout = |
| 158 | static const gfx_layout charlayout = |
| 159 | 159 | { |
| 160 | 160 | 8,8, /* 8*8 chars */ |
| 161 | 161 | 512, /* 512 characters */ |
| r245686 | r245687 | |
| 166 | 166 | 16*8 /* every char takes 16 consecutive bytes */ |
| 167 | 167 | }; |
| 168 | 168 | |
| 169 | | static const gfx_layout shaolins_spritelayout = |
| 169 | static const gfx_layout spritelayout = |
| 170 | 170 | { |
| 171 | 171 | 16,16, /* 16*16 sprites */ |
| 172 | 172 | 256, /* 256 sprites */ |
| r245686 | r245687 | |
| 180 | 180 | }; |
| 181 | 181 | |
| 182 | 182 | static GFXDECODE_START( shaolins ) |
| 183 | | GFXDECODE_ENTRY( "gfx1", 0, shaolins_charlayout, 0, 16*8 ) |
| 184 | | GFXDECODE_ENTRY( "gfx2", 0, shaolins_spritelayout, 16*8*16, 16*8 ) |
| 183 | GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 16*8 ) |
| 184 | GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 16*8*16, 16*8 ) |
| 185 | 185 | GFXDECODE_END |
| 186 | 186 | |
| 187 | 187 | |
| r245686 | r245687 | |
| 190 | 190 | /* basic machine hardware */ |
| 191 | 191 | MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/12) /* verified on pcb */ |
| 192 | 192 | MCFG_CPU_PROGRAM_MAP(shaolins_map) |
| 193 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shaolins_state, shaolins_interrupt, "screen", 0, 1) |
| 193 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shaolins_state, interrupt, "screen", 0, 1) |
| 194 | 194 | |
| 195 | 195 | /* video hardware */ |
| 196 | 196 | MCFG_SCREEN_ADD("screen", RASTER) |
| r245686 | r245687 | |
| 198 | 198 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 199 | 199 | MCFG_SCREEN_SIZE(32*8, 32*8) |
| 200 | 200 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
| 201 | | MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update_shaolins) |
| 201 | MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update) |
| 202 | 202 | MCFG_SCREEN_PALETTE("palette") |
| 203 | 203 | |
| 204 | 204 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", shaolins) |
| r245686 | r245687 | |
| 335 | 335 | |
| 336 | 336 | |
| 337 | 337 | /* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */ |
| 338 | | GAME( 1985, kicker, 0, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Kicker", 0 ) |
| 339 | | GAME( 1985, shaolins, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 1)", 0 ) |
| 340 | | GAME( 1985, shaolinb, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 2)", 0 ) |
| 338 | GAME( 1985, kicker, 0, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Kicker", GAME_SUPPORTS_SAVE ) |
| 339 | GAME( 1985, shaolins, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 1)", GAME_SUPPORTS_SAVE ) |
| 340 | GAME( 1985, shaolinb, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 2)", GAME_SUPPORTS_SAVE ) |
trunk/src/mame/includes/shangkid.h
| r245686 | r245687 | |
| 3 | 3 | public: |
| 4 | 4 | shangkid_state(const machine_config &mconfig, device_type type, const char *tag) |
| 5 | 5 | : driver_device(mconfig, type, tag), |
| 6 | | m_videoram(*this, "videoram"), |
| 7 | | m_spriteram(*this, "spriteram"), |
| 8 | | m_videoreg(*this, "videoreg"), |
| 9 | 6 | m_maincpu(*this, "maincpu"), |
| 10 | 7 | m_audiocpu(*this, "audiocpu"), |
| 11 | 8 | m_bbx(*this, "bbx"), |
| 12 | 9 | m_gfxdecode(*this, "gfxdecode"), |
| 13 | | m_palette(*this, "palette") { } |
| 10 | m_palette(*this, "palette"), |
| 11 | m_videoram(*this, "videoram"), |
| 12 | m_spriteram(*this, "spriteram"), |
| 13 | m_videoreg(*this, "videoreg") { } |
| 14 | 14 | |
| 15 | required_device<cpu_device> m_maincpu; |
| 16 | optional_device<cpu_device> m_audiocpu; |
| 17 | optional_device<cpu_device> m_bbx; |
| 18 | required_device<gfxdecode_device> m_gfxdecode; |
| 19 | required_device<palette_device> m_palette; |
| 20 | |
| 15 | 21 | required_shared_ptr<UINT8> m_videoram; |
| 16 | 22 | optional_shared_ptr<UINT8> m_spriteram; |
| 23 | optional_shared_ptr<UINT8> m_videoreg; |
| 24 | |
| 17 | 25 | UINT8 m_bbx_sound_enable; |
| 18 | 26 | UINT8 m_sound_latch; |
| 19 | | optional_shared_ptr<UINT8> m_videoreg; |
| 20 | 27 | int m_gfx_type; |
| 21 | 28 | tilemap_t *m_background; |
| 22 | | DECLARE_WRITE8_MEMBER(shangkid_maincpu_bank_w); |
| 23 | | DECLARE_WRITE8_MEMBER(shangkid_bbx_enable_w); |
| 24 | | DECLARE_WRITE8_MEMBER(shangkid_cpu_reset_w); |
| 25 | | DECLARE_WRITE8_MEMBER(shangkid_sound_enable_w); |
| 26 | | DECLARE_READ8_MEMBER(shangkid_soundlatch_r); |
| 27 | | DECLARE_WRITE8_MEMBER(shangkid_videoram_w); |
| 29 | |
| 30 | // shangkid and chinhero |
| 31 | DECLARE_WRITE8_MEMBER(maincpu_bank_w); |
| 32 | DECLARE_WRITE8_MEMBER(bbx_enable_w); |
| 33 | DECLARE_WRITE8_MEMBER(cpu_reset_w); |
| 34 | DECLARE_WRITE8_MEMBER(sound_enable_w); |
| 35 | DECLARE_READ8_MEMBER(soundlatch_r); |
| 36 | DECLARE_WRITE8_MEMBER(videoram_w); |
| 37 | DECLARE_WRITE8_MEMBER(ay8910_portb_w); |
| 38 | |
| 39 | // game specific |
| 28 | 40 | DECLARE_WRITE8_MEMBER(chinhero_ay8910_porta_w); |
| 29 | 41 | DECLARE_WRITE8_MEMBER(shangkid_ay8910_porta_w); |
| 30 | | DECLARE_WRITE8_MEMBER(ay8910_portb_w); |
| 42 | |
| 43 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 44 | |
| 31 | 45 | DECLARE_DRIVER_INIT(shangkid); |
| 32 | 46 | DECLARE_DRIVER_INIT(chinhero); |
| 33 | | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 34 | 47 | DECLARE_MACHINE_RESET(chinhero); |
| 35 | 48 | DECLARE_VIDEO_START(shangkid); |
| 36 | 49 | DECLARE_PALETTE_INIT(dynamski); |
| 37 | 50 | DECLARE_MACHINE_RESET(shangkid); |
| 51 | |
| 38 | 52 | UINT32 screen_update_shangkid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 39 | 53 | UINT32 screen_update_dynamski(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 40 | 54 | void draw_sprite(const UINT8 *source, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 41 | 55 | void shangkid_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 42 | 56 | void dynamski_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); |
| 43 | 57 | void dynamski_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 44 | | required_device<cpu_device> m_maincpu; |
| 45 | | optional_device<cpu_device> m_audiocpu; |
| 46 | | optional_device<cpu_device> m_bbx; |
| 47 | | required_device<gfxdecode_device> m_gfxdecode; |
| 48 | | required_device<palette_device> m_palette; |
| 49 | 58 | }; |