trunk/src/mame/drivers/hotblock.c
| r244801 | r244802 | |
| 50 | 50 | public: |
| 51 | 51 | hotblock_state(const machine_config &mconfig, device_type type, const char *tag) |
| 52 | 52 | : driver_device(mconfig, type, tag), |
| 53 | | m_vram(*this, "vram"), |
| 54 | 53 | m_maincpu(*this, "maincpu"), |
| 55 | | m_palette(*this, "palette") { } |
| 54 | m_palette(*this, "palette"), |
| 55 | m_vram(*this, "vram") { } |
| 56 | 56 | |
| 57 | /* devices */ |
| 58 | required_device<cpu_device> m_maincpu; |
| 59 | required_device<palette_device> m_palette; |
| 60 | |
| 57 | 61 | /* memory pointers */ |
| 58 | 62 | required_shared_ptr<UINT8> m_vram; |
| 59 | 63 | |
| r244801 | r244802 | |
| 63 | 67 | |
| 64 | 68 | /* memory */ |
| 65 | 69 | UINT8 m_pal[0x10000]; |
| 66 | | DECLARE_READ8_MEMBER(hotblock_video_read); |
| 67 | | DECLARE_READ8_MEMBER(hotblock_port4_r); |
| 68 | | DECLARE_WRITE8_MEMBER(hotblock_port4_w); |
| 69 | | DECLARE_WRITE8_MEMBER(hotblock_port0_w); |
| 70 | | DECLARE_WRITE8_MEMBER(hotblock_video_write); |
| 70 | |
| 71 | DECLARE_READ8_MEMBER(video_read); |
| 72 | DECLARE_READ8_MEMBER(port4_r); |
| 73 | DECLARE_WRITE8_MEMBER(port4_w); |
| 74 | DECLARE_WRITE8_MEMBER(port0_w); |
| 75 | DECLARE_WRITE8_MEMBER(video_write); |
| 76 | |
| 71 | 77 | virtual void video_start(); |
| 72 | | UINT32 screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 73 | | INTERRUPT_GEN_MEMBER(hotblocks_irq); |
| 74 | | required_device<cpu_device> m_maincpu; |
| 75 | | required_device<palette_device> m_palette; |
| 78 | |
| 79 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 76 | 80 | }; |
| 77 | 81 | |
| 78 | 82 | |
| 79 | 83 | |
| 80 | | READ8_MEMBER(hotblock_state::hotblock_video_read) |
| 84 | READ8_MEMBER(hotblock_state::video_read) |
| 81 | 85 | { |
| 82 | 86 | /* right?, anything else?? */ |
| 83 | 87 | if (m_port0 & 0x20) // port 0 = a8 e8 -- palette |
| r244801 | r244802 | |
| 91 | 95 | } |
| 92 | 96 | |
| 93 | 97 | /* port 4 is some kind of eeprom / storage .. used to store the scores */ |
| 94 | | READ8_MEMBER(hotblock_state::hotblock_port4_r) |
| 98 | READ8_MEMBER(hotblock_state::port4_r) |
| 95 | 99 | { |
| 96 | 100 | // osd_printf_debug("port4_r\n"); |
| 97 | 101 | return 0x00; |
| 98 | 102 | } |
| 99 | 103 | |
| 100 | 104 | |
| 101 | | WRITE8_MEMBER(hotblock_state::hotblock_port4_w) |
| 105 | WRITE8_MEMBER(hotblock_state::port4_w) |
| 102 | 106 | { |
| 103 | 107 | // osd_printf_debug("port4_w: pc = %06x : data %04x\n", space.device().safe_pc(), data); |
| 104 | 108 | // popmessage("port4_w: pc = %06x : data %04x", space.device().safe_pc(), data); |
| r244801 | r244802 | |
| 108 | 112 | |
| 109 | 113 | |
| 110 | 114 | |
| 111 | | WRITE8_MEMBER(hotblock_state::hotblock_port0_w) |
| 115 | WRITE8_MEMBER(hotblock_state::port0_w) |
| 112 | 116 | { |
| 113 | 117 | // popmessage("port4_w: pc = %06x : data %04x", space.device().safe_pc(), data); |
| 114 | 118 | |
| 115 | 119 | m_port0 = data; |
| 116 | 120 | } |
| 117 | 121 | |
| 118 | | WRITE8_MEMBER(hotblock_state::hotblock_video_write) |
| 122 | WRITE8_MEMBER(hotblock_state::video_write) |
| 119 | 123 | { |
| 120 | 124 | /* right?, anything else?? */ |
| 121 | 125 | if (m_port0 & 0x20) // port 0 = a8 e8 -- palette |
| r244801 | r244802 | |
| 130 | 134 | |
| 131 | 135 | static ADDRESS_MAP_START( hotblock_map, AS_PROGRAM, 8, hotblock_state ) |
| 132 | 136 | AM_RANGE(0x00000, 0x0ffff) AM_RAM |
| 133 | | AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(hotblock_video_read, hotblock_video_write) AM_SHARE("vram") |
| 137 | AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(video_read, video_write) AM_SHARE("vram") |
| 134 | 138 | AM_RANGE(0x20000, 0xfffff) AM_ROM |
| 135 | 139 | ADDRESS_MAP_END |
| 136 | 140 | |
| 137 | 141 | static ADDRESS_MAP_START( hotblock_io, AS_IO, 8, hotblock_state ) |
| 138 | | AM_RANGE(0x0000, 0x0000) AM_WRITE(hotblock_port0_w) |
| 139 | | AM_RANGE(0x0004, 0x0004) AM_READWRITE(hotblock_port4_r, hotblock_port4_w) |
| 142 | AM_RANGE(0x0000, 0x0000) AM_WRITE(port0_w) |
| 143 | AM_RANGE(0x0004, 0x0004) AM_READWRITE(port4_r, port4_w) |
| 140 | 144 | AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
| 141 | 145 | AM_RANGE(0x8001, 0x8001) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 142 | 146 | ADDRESS_MAP_END |
| r244801 | r244802 | |
| 146 | 150 | void hotblock_state::video_start() |
| 147 | 151 | { |
| 148 | 152 | save_item(NAME(m_pal)); |
| 153 | save_item(NAME(m_port0)); |
| 154 | save_item(NAME(m_port4)); //stored but not read for now |
| 149 | 155 | } |
| 150 | 156 | |
| 151 | | UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 157 | UINT32 hotblock_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 152 | 158 | { |
| 153 | 159 | int y, x, count; |
| 154 | 160 | int i; |
| r244801 | r244802 | |
| 200 | 206 | INPUT_PORTS_END |
| 201 | 207 | |
| 202 | 208 | |
| 203 | | INTERRUPT_GEN_MEMBER(hotblock_state::hotblocks_irq)/* right? */ |
| 204 | | { |
| 205 | | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 206 | | } |
| 207 | | |
| 208 | 209 | static MACHINE_CONFIG_START( hotblock, hotblock_state ) |
| 209 | 210 | |
| 210 | 211 | /* basic machine hardware */ |
| 211 | 212 | MCFG_CPU_ADD("maincpu", I8088, 10000000) |
| 212 | 213 | MCFG_CPU_PROGRAM_MAP(hotblock_map) |
| 213 | 214 | MCFG_CPU_IO_MAP(hotblock_io) |
| 214 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", hotblock_state, hotblocks_irq) |
| 215 | MCFG_CPU_VBLANK_INT_DRIVER("screen", hotblock_state, nmi_line_pulse) /* right? */ |
| 215 | 216 | |
| 216 | 217 | /* video hardware */ |
| 217 | 218 | MCFG_SCREEN_ADD("screen", RASTER) |
| r244801 | r244802 | |
| 219 | 220 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 220 | 221 | MCFG_SCREEN_SIZE(1024,1024) |
| 221 | 222 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
| 222 | | MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock) |
| 223 | MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update) |
| 223 | 224 | MCFG_SCREEN_PALETTE("palette") |
| 224 | 225 | |
| 225 | 226 | MCFG_PALETTE_ADD("palette", 256) |
| r244801 | r244802 | |
| 240 | 241 | ROM_LOAD( "hotblk6.ic5", 0x080000, 0x080000, CRC(3176d231) SHA1(ac22fd0e9820c6714f51a3d8315eb5d43ef91eeb) ) |
| 241 | 242 | ROM_END |
| 242 | 243 | |
| 243 | | GAME( 1993, hotblock, 0, hotblock, hotblock, driver_device, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", 0 ) |
| 244 | GAME( 1993, hotblock, 0, hotblock, hotblock, driver_device, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", GAME_SUPPORTS_SAVE ) |
trunk/src/mame/drivers/ironhors.c
| r244801 | r244802 | |
| 20 | 20 | * |
| 21 | 21 | *************************************/ |
| 22 | 22 | |
| 23 | | TIMER_DEVICE_CALLBACK_MEMBER(ironhors_state::ironhors_irq) |
| 23 | TIMER_DEVICE_CALLBACK_MEMBER(ironhors_state::irq) |
| 24 | 24 | { |
| 25 | 25 | int scanline = param; |
| 26 | 26 | |
| r244801 | r244802 | |
| 36 | 36 | } |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | | WRITE8_MEMBER(ironhors_state::ironhors_sh_irqtrigger_w) |
| 39 | WRITE8_MEMBER(ironhors_state::sh_irqtrigger_w) |
| 40 | 40 | { |
| 41 | 41 | m_soundcpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | | WRITE8_MEMBER(ironhors_state::ironhors_filter_w) |
| 44 | WRITE8_MEMBER(ironhors_state::filter_w) |
| 45 | 45 | { |
| 46 | 46 | discrete_device *m_disc_ih = machine().device<discrete_device>("disc_ih"); |
| 47 | 47 | m_disc_ih->write(space, NODE_11, (data & 0x04) >> 2); |
| r244801 | r244802 | |
| 57 | 57 | |
| 58 | 58 | static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, ironhors_state ) |
| 59 | 59 | AM_RANGE(0x0000, 0x0002) AM_RAM |
| 60 | | AM_RANGE(0x0003, 0x0003) AM_RAM_WRITE(ironhors_charbank_w) |
| 60 | AM_RANGE(0x0003, 0x0003) AM_RAM_WRITE(charbank_w) |
| 61 | 61 | AM_RANGE(0x0004, 0x0004) AM_RAM AM_SHARE("int_enable") |
| 62 | 62 | AM_RANGE(0x0005, 0x001f) AM_RAM |
| 63 | 63 | AM_RANGE(0x0020, 0x003f) AM_RAM AM_SHARE("scroll") |
| 64 | 64 | AM_RANGE(0x0040, 0x005f) AM_RAM |
| 65 | 65 | AM_RANGE(0x0060, 0x00df) AM_RAM |
| 66 | 66 | AM_RANGE(0x0800, 0x0800) AM_WRITE(soundlatch_byte_w) |
| 67 | | AM_RANGE(0x0900, 0x0900) AM_READ_PORT("DSW3") AM_WRITE(ironhors_sh_irqtrigger_w) |
| 68 | | AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW2") AM_WRITE(ironhors_palettebank_w) |
| 69 | | AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("DSW1") AM_WRITE(ironhors_flipscreen_w) |
| 67 | AM_RANGE(0x0900, 0x0900) AM_READ_PORT("DSW3") AM_WRITE(sh_irqtrigger_w) |
| 68 | AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW2") AM_WRITE(palettebank_w) |
| 69 | AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("DSW1") AM_WRITE(flipscreen_w) |
| 70 | 70 | AM_RANGE(0x0b01, 0x0b01) AM_READ_PORT("P2") |
| 71 | 71 | AM_RANGE(0x0b02, 0x0b02) AM_READ_PORT("P1") |
| 72 | 72 | AM_RANGE(0x0b03, 0x0b03) AM_READ_PORT("SYSTEM") |
| 73 | 73 | AM_RANGE(0x1800, 0x1800) AM_WRITENOP // ??? |
| 74 | 74 | AM_RANGE(0x1a00, 0x1a01) AM_WRITENOP // ??? |
| 75 | 75 | AM_RANGE(0x1c00, 0x1dff) AM_WRITENOP // ??? |
| 76 | | AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(ironhors_colorram_w) AM_SHARE("colorram") |
| 77 | | AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(ironhors_videoram_w) AM_SHARE("videoram") |
| 76 | AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram") |
| 77 | AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 78 | 78 | AM_RANGE(0x2800, 0x2fff) AM_RAM |
| 79 | 79 | AM_RANGE(0x3000, 0x30ff) AM_RAM AM_SHARE("spriteram2") |
| 80 | 80 | AM_RANGE(0x3100, 0x37ff) AM_RAM |
| r244801 | r244802 | |
| 103 | 103 | AM_RANGE(0x0040, 0x005f) AM_RAM |
| 104 | 104 | AM_RANGE(0x0060, 0x00ff) AM_RAM |
| 105 | 105 | AM_RANGE(0x0800, 0x0800) AM_WRITE(soundlatch_byte_w) |
| 106 | | AM_RANGE(0x0900, 0x0900) /*AM_READ_PORT("DSW3") */AM_WRITE(ironhors_sh_irqtrigger_w) |
| 107 | | AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW2") //AM_WRITE(ironhors_palettebank_w) |
| 108 | | AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("DSW1") AM_WRITE(ironhors_flipscreen_w) |
| 109 | | AM_RANGE(0x0b01, 0x0b01) AM_READ_PORT("DSW2") //AM_WRITE(ironhors_palettebank_w) |
| 106 | AM_RANGE(0x0900, 0x0900) /*AM_READ_PORT("DSW3") */AM_WRITE(sh_irqtrigger_w) |
| 107 | AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW2") //AM_WRITE(palettebank_w) |
| 108 | AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("DSW1") AM_WRITE(flipscreen_w) |
| 109 | AM_RANGE(0x0b01, 0x0b01) AM_READ_PORT("DSW2") //AM_WRITE(palettebank_w) |
| 110 | 110 | AM_RANGE(0x0b02, 0x0b02) AM_READ_PORT("P1") |
| 111 | 111 | AM_RANGE(0x0b03, 0x0b03) AM_READ_PORT("SYSTEM") |
| 112 | 112 | |
| 113 | 113 | |
| 114 | 114 | |
| 115 | | AM_RANGE(0x1800, 0x1800) AM_WRITE(ironhors_sh_irqtrigger_w) |
| 115 | AM_RANGE(0x1800, 0x1800) AM_WRITE(sh_irqtrigger_w) |
| 116 | 116 | AM_RANGE(0x1a00, 0x1a00) AM_RAM AM_SHARE("int_enable") |
| 117 | | AM_RANGE(0x1a01, 0x1a01) AM_RAM_WRITE(ironhors_charbank_w) |
| 118 | | AM_RANGE(0x1a02, 0x1a02) AM_WRITE(ironhors_palettebank_w) |
| 117 | AM_RANGE(0x1a01, 0x1a01) AM_RAM_WRITE(charbank_w) |
| 118 | AM_RANGE(0x1a02, 0x1a02) AM_WRITE(palettebank_w) |
| 119 | 119 | AM_RANGE(0x0000, 0x1bff) AM_ROM |
| 120 | 120 | // AM_RANGE(0x1c00, 0x1fff) AM_RAM |
| 121 | | AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(ironhors_colorram_w) AM_SHARE("colorram") |
| 122 | | AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(ironhors_videoram_w) AM_SHARE("videoram") |
| 121 | AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram") |
| 122 | AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 123 | 123 | AM_RANGE(0x2800, 0x2fff) AM_RAM |
| 124 | 124 | AM_RANGE(0x1c00, 0x1dff) AM_RAM AM_SHARE("spriteram2") |
| 125 | 125 | AM_RANGE(0x3000, 0x38ff) AM_RAM |
| r244801 | r244802 | |
| 359 | 359 | /* basic machine hardware */ |
| 360 | 360 | MCFG_CPU_ADD("maincpu", M6809,18432000/6) /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */ |
| 361 | 361 | MCFG_CPU_PROGRAM_MAP(master_map) |
| 362 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ironhors_state, ironhors_irq, "screen", 0, 1) |
| 362 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ironhors_state, irq, "screen", 0, 1) |
| 363 | 363 | |
| 364 | 364 | MCFG_CPU_ADD("soundcpu",Z80,18432000/6) /* 3.072 MHz */ |
| 365 | 365 | MCFG_CPU_PROGRAM_MAP(slave_map) |
| r244801 | r244802 | |
| 372 | 372 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 373 | 373 | MCFG_SCREEN_SIZE(32*8, 32*8) |
| 374 | 374 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
| 375 | | MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_ironhors) |
| 375 | MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update) |
| 376 | 376 | MCFG_SCREEN_PALETTE("palette") |
| 377 | 377 | |
| 378 | 378 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", ironhors) |
| r244801 | r244802 | |
| 384 | 384 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 385 | 385 | |
| 386 | 386 | MCFG_SOUND_ADD("ym2203", YM2203, 18432000/6) |
| 387 | | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, ironhors_filter_w)) |
| 387 | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, filter_w)) |
| 388 | 388 | |
| 389 | 389 | MCFG_SOUND_ROUTE_EX(0, "disc_ih", 1.0, 0) |
| 390 | 390 | MCFG_SOUND_ROUTE_EX(1, "disc_ih", 1.0, 1) |
| r244801 | r244802 | |
| 436 | 436 | |
| 437 | 437 | MCFG_SOUND_MODIFY("ym2203") |
| 438 | 438 | MCFG_AY8910_PORT_B_READ_CB(READ8(ironhors_state, farwest_soundlatch_r)) |
| 439 | | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, ironhors_filter_w)) |
| 439 | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, filter_w)) |
| 440 | 440 | MACHINE_CONFIG_END |
| 441 | 441 | |
| 442 | 442 | |
| r244801 | r244802 | |
| 525 | 525 | * |
| 526 | 526 | *************************************/ |
| 527 | 527 | |
| 528 | | GAME( 1986, ironhors, 0, ironhors, ironhors, driver_device, 0, ROT0, "Konami", "Iron Horse", 0 ) |
| 529 | | GAME( 1986, dairesya, ironhors, ironhors, dairesya, driver_device, 0, ROT0, "Konami (Kawakusu license)", "Dai Ressya Goutou (Japan)", 0 ) |
| 530 | | GAME( 1986, farwest, ironhors, farwest, ironhors, driver_device, 0, ROT0, "bootleg?", "Far West", GAME_NOT_WORKING ) |
| 528 | GAME( 1986, ironhors, 0, ironhors, ironhors, driver_device, 0, ROT0, "Konami", "Iron Horse", GAME_SUPPORTS_SAVE ) |
| 529 | GAME( 1986, dairesya, ironhors, ironhors, dairesya, driver_device, 0, ROT0, "Konami (Kawakusu license)", "Dai Ressya Goutou (Japan)", GAME_SUPPORTS_SAVE ) |
| 530 | GAME( 1986, farwest, ironhors, farwest, ironhors, driver_device, 0, ROT0, "bootleg?", "Far West", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
trunk/src/mame/includes/ironhors.h
| r244801 | r244802 | |
| 9 | 9 | public: |
| 10 | 10 | ironhors_state(const machine_config &mconfig, device_type type, const char *tag) |
| 11 | 11 | : driver_device(mconfig, type, tag), |
| 12 | m_maincpu(*this, "maincpu"), |
| 13 | m_soundcpu(*this, "soundcpu"), |
| 14 | m_gfxdecode(*this, "gfxdecode"), |
| 15 | m_palette(*this, "palette"), |
| 12 | 16 | m_interrupt_enable(*this, "int_enable"), |
| 13 | 17 | m_scroll(*this, "scroll"), |
| 14 | 18 | m_colorram(*this, "colorram"), |
| 15 | 19 | m_videoram(*this, "videoram"), |
| 16 | 20 | m_spriteram2(*this, "spriteram2"), |
| 17 | | m_spriteram(*this, "spriteram"), |
| 18 | | m_maincpu(*this, "maincpu"), |
| 19 | | m_soundcpu(*this, "soundcpu"), |
| 20 | | m_gfxdecode(*this, "gfxdecode"), |
| 21 | | m_palette(*this, "palette") { } |
| 21 | m_spriteram(*this, "spriteram") { } |
| 22 | 22 | |
| 23 | /* devices */ |
| 24 | required_device<cpu_device> m_maincpu; |
| 25 | required_device<cpu_device> m_soundcpu; |
| 26 | required_device<gfxdecode_device> m_gfxdecode; |
| 27 | required_device<palette_device> m_palette; |
| 28 | |
| 23 | 29 | /* memory pointers */ |
| 24 | 30 | required_shared_ptr<UINT8> m_interrupt_enable; |
| 25 | 31 | required_shared_ptr<UINT8> m_scroll; |
| r244801 | r244802 | |
| 34 | 40 | int m_charbank; |
| 35 | 41 | int m_spriterambank; |
| 36 | 42 | |
| 37 | | /* devices */ |
| 38 | | required_device<cpu_device> m_maincpu; |
| 39 | | required_device<cpu_device> m_soundcpu; |
| 40 | | required_device<gfxdecode_device> m_gfxdecode; |
| 41 | | required_device<palette_device> m_palette; |
| 42 | | |
| 43 | | DECLARE_WRITE8_MEMBER(ironhors_sh_irqtrigger_w); |
| 44 | | DECLARE_WRITE8_MEMBER(ironhors_videoram_w); |
| 45 | | DECLARE_WRITE8_MEMBER(ironhors_colorram_w); |
| 46 | | DECLARE_WRITE8_MEMBER(ironhors_charbank_w); |
| 47 | | DECLARE_WRITE8_MEMBER(ironhors_palettebank_w); |
| 48 | | DECLARE_WRITE8_MEMBER(ironhors_flipscreen_w); |
| 49 | | DECLARE_WRITE8_MEMBER(ironhors_filter_w); |
| 43 | DECLARE_WRITE8_MEMBER(sh_irqtrigger_w); |
| 44 | DECLARE_WRITE8_MEMBER(videoram_w); |
| 45 | DECLARE_WRITE8_MEMBER(colorram_w); |
| 46 | DECLARE_WRITE8_MEMBER(charbank_w); |
| 47 | DECLARE_WRITE8_MEMBER(palettebank_w); |
| 48 | DECLARE_WRITE8_MEMBER(flipscreen_w); |
| 49 | DECLARE_WRITE8_MEMBER(filter_w); |
| 50 | 50 | DECLARE_READ8_MEMBER(farwest_soundlatch_r); |
| 51 | |
| 51 | 52 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 52 | 53 | TILE_GET_INFO_MEMBER(farwest_get_bg_tile_info); |
| 54 | |
| 53 | 55 | virtual void machine_start(); |
| 54 | 56 | virtual void machine_reset(); |
| 55 | 57 | virtual void video_start(); |
| 56 | 58 | DECLARE_PALETTE_INIT(ironhors); |
| 57 | 59 | DECLARE_VIDEO_START(farwest); |
| 58 | | UINT32 screen_update_ironhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 60 | |
| 61 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 59 | 62 | UINT32 screen_update_farwest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 60 | | TIMER_DEVICE_CALLBACK_MEMBER(ironhors_irq); |
| 61 | | TIMER_DEVICE_CALLBACK_MEMBER(farwest_irq); |
| 62 | 63 | void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 63 | 64 | void farwest_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 65 | |
| 66 | TIMER_DEVICE_CALLBACK_MEMBER(irq); |
| 67 | TIMER_DEVICE_CALLBACK_MEMBER(farwest_irq); |
| 64 | 68 | }; |