trunk/src/mame/drivers/spbactn.c
| r20707 | r20708 | |
| 151 | 151 | AM_RANGE(0x00000, 0x3ffff) AM_ROM |
| 152 | 152 | AM_RANGE(0x40000, 0x43fff) AM_RAM // main ram |
| 153 | 153 | AM_RANGE(0x50000, 0x50fff) AM_RAM AM_SHARE("spvideoram") |
| 154 | | AM_RANGE(0x60000, 0x67fff) AM_RAM AM_SHARE("fgvideoram") |
| 155 | | AM_RANGE(0x70000, 0x77fff) AM_RAM AM_SHARE("bgvideoram") |
| 154 | AM_RANGE(0x60000, 0x67fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fgvideoram") |
| 155 | AM_RANGE(0x70000, 0x77fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bgvideoram") |
| 156 | 156 | AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") |
| 157 | 157 | AM_RANGE(0x90000, 0x90001) AM_READ_PORT("IN0") |
| 158 | 158 | AM_RANGE(0x90010, 0x90011) AM_READ_PORT("IN1") |
| r20707 | r20708 | |
| 199 | 199 | AM_RANGE(0x00000, 0x3ffff) AM_ROM |
| 200 | 200 | AM_RANGE(0x40000, 0x43fff) AM_RAM // main ram |
| 201 | 201 | AM_RANGE(0x50000, 0x50fff) AM_RAM AM_SHARE("spvideoram") |
| 202 | | AM_RANGE(0x60000, 0x67fff) AM_RAM AM_SHARE("fgvideoram") |
| 203 | | AM_RANGE(0x70000, 0x77fff) AM_RAM AM_SHARE("bgvideoram") |
| 204 | | AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_word_w) AM_SHARE("paletteram") // yes R and G are swapped vs. the released version |
| 202 | AM_RANGE(0x60000, 0x67fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fgvideoram") |
| 203 | AM_RANGE(0x70000, 0x77fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bgvideoram") |
| 204 | AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_word_w) AM_SHARE("paletteram") // yes R and G are swapped vs. the released version |
| 205 | 205 | |
| 206 | 206 | AM_RANGE(0x90000, 0x900ff) AM_READ(temp_read_handler_r) // temp |
| 207 | 207 | |
| r20707 | r20708 | |
| 434 | 434 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) |
| 435 | 435 | MCFG_CPU_PROGRAM_MAP(spbactn_sound_map) // wrong |
| 436 | 436 | |
| 437 | | // there is a rom for another Z80?? |
| 437 | // there is a rom for another Z80 and a socket for one.. |
| 438 | 438 | |
| 439 | 439 | /* video hardware */ |
| 440 | 440 | MCFG_SCREEN_ADD("screen", RASTER) |
trunk/src/mame/includes/spbactn.h
| r20707 | r20708 | |
| 11 | 11 | required_shared_ptr<UINT16> m_fgvideoram; |
| 12 | 12 | required_shared_ptr<UINT16> m_spvideoram; |
| 13 | 13 | |
| 14 | tilemap_t *m_bg_tilemap; |
| 15 | tilemap_t *m_fg_tilemap; |
| 16 | DECLARE_WRITE16_MEMBER(bg_videoram_w); |
| 17 | DECLARE_WRITE16_MEMBER(fg_videoram_w); |
| 18 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 19 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
| 20 | |
| 21 | |
| 14 | 22 | bitmap_ind16 m_tile_bitmap_bg; |
| 15 | 23 | bitmap_ind16 m_tile_bitmap_fg; |
| 16 | 24 | DECLARE_WRITE16_MEMBER(soundcommand_w); |
trunk/src/mame/video/spbactn.c
| r20707 | r20708 | |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | 119 | |
| 120 | WRITE16_MEMBER(spbactn_state::bg_videoram_w) |
| 121 | { |
| 122 | COMBINE_DATA(&m_bgvideoram[offset]); |
| 123 | m_bg_tilemap->mark_tile_dirty(offset&0x1fff); |
| 124 | } |
| 125 | |
| 126 | TILE_GET_INFO_MEMBER(spbactn_state::get_bg_tile_info) |
| 127 | { |
| 128 | int attr = m_bgvideoram[tile_index]; |
| 129 | int tileno = m_bgvideoram[tile_index+0x2000]; |
| 130 | SET_TILE_INFO_MEMBER(1, tileno, ((attr & 0x00f0)>>4), 0); |
| 131 | } |
| 132 | |
| 133 | |
| 134 | WRITE16_MEMBER(spbactn_state::fg_videoram_w) |
| 135 | { |
| 136 | COMBINE_DATA(&m_fgvideoram[offset]); |
| 137 | m_fg_tilemap->mark_tile_dirty(offset&0x1fff); |
| 138 | } |
| 139 | |
| 140 | TILE_GET_INFO_MEMBER(spbactn_state::get_fg_tile_info) |
| 141 | { |
| 142 | int attr = m_fgvideoram[tile_index]; |
| 143 | int tileno = m_fgvideoram[tile_index+0x2000]; |
| 144 | |
| 145 | SET_TILE_INFO_MEMBER(0, tileno, ((attr & 0x00f0)>>4), 0); |
| 146 | } |
| 147 | |
| 148 | |
| 149 | |
| 120 | 150 | void spbactn_state::video_start() |
| 121 | 151 | { |
| 122 | 152 | /* allocate bitmaps */ |
| 123 | 153 | machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); |
| 124 | 154 | machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); |
| 155 | |
| 156 | |
| 157 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spbactn_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128); |
| 158 | m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spbactn_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128); |
| 159 | |
| 125 | 160 | } |
| 126 | 161 | |
| 127 | 162 | int spbactn_state::draw_video(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, bool alt_sprites) |