trunk/src/mame/drivers/sanremo.c
| r20690 | r20691 | |
| 100 | 100 | m_videoram(*this, "videoram"){ } |
| 101 | 101 | |
| 102 | 102 | required_shared_ptr<UINT8> m_videoram; |
| 103 | |
| 104 | UINT8 m_attrram[0x800]; |
| 103 | 105 | tilemap_t *m_bg_tilemap; |
| 104 | 106 | DECLARE_WRITE8_MEMBER(sanremo_videoram_w); |
| 105 | 107 | TILE_GET_INFO_MEMBER(get_sanremo_tile_info); |
| r20690 | r20691 | |
| 120 | 122 | WRITE8_MEMBER(sanremo_state::sanremo_videoram_w) |
| 121 | 123 | { |
| 122 | 124 | m_videoram[offset] = data; |
| 125 | m_attrram[offset] = banksel; |
| 123 | 126 | m_bg_tilemap->mark_tile_dirty(offset); |
| 124 | 127 | } |
| 125 | 128 | |
| 126 | 129 | TILE_GET_INFO_MEMBER(sanremo_state::get_sanremo_tile_info) |
| 127 | 130 | { |
| 128 | 131 | int code = m_videoram[tile_index]; |
| 129 | | int bank = banksel; |
| 132 | int bank = m_attrram[tile_index]; |
| 130 | 133 | |
| 131 | | SET_TILE_INFO_MEMBER( bank, code, 0, 0); |
| 134 | SET_TILE_INFO_MEMBER( 0, code + bank * 256, 0, 0); |
| 132 | 135 | } |
| 133 | 136 | |
| 134 | 137 | void sanremo_state::video_start() |
| 135 | 138 | { |
| 136 | | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sanremo_state::get_sanremo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 48, 48); |
| 139 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sanremo_state::get_sanremo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 48, 40); |
| 137 | 140 | } |
| 138 | 141 | |
| 139 | 142 | UINT32 sanremo_state::screen_update_sanremo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r20690 | r20691 | |
| 195 | 198 | |
| 196 | 199 | static ADDRESS_MAP_START( sanremo_map, AS_PROGRAM, 8, sanremo_state ) |
| 197 | 200 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 198 | | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(sanremo_videoram_w) AM_SHARE("videoram") // 2x 76C28 (only 1 used?) |
| 201 | AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(sanremo_videoram_w) AM_SHARE("videoram") // 2x 76C28 (1x accessed directly, latched bank written to other like subsino etc.) |
| 199 | 202 | AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram") // battery backed UM6116 |
| 200 | 203 | ADDRESS_MAP_END |
| 201 | 204 | |
| r20690 | r20691 | |
| 318 | 321 | |
| 319 | 322 | static GFXDECODE_START( sanremo ) |
| 320 | 323 | GFXDECODE_ENTRY( "gfx", 0, tilelayout, 0, 1 ) // ok |
| 321 | | GFXDECODE_ENTRY( "gfx", 0x800, tilelayout, 0, 1 ) |
| 322 | | GFXDECODE_ENTRY( "gfx", 0x1000, tilelayout, 0, 1 ) |
| 323 | | GFXDECODE_ENTRY( "gfx", 0x1800, tilelayout, 0, 1 ) |
| 324 | | GFXDECODE_ENTRY( "gfx", 0x2000, tilelayout, 0, 1 ) // ok tiles 0x400 (joker1) |
| 325 | | GFXDECODE_ENTRY( "gfx", 0x2800, tilelayout, 0, 1 ) // ok tiles 0x500 (joker2) |
| 326 | | GFXDECODE_ENTRY( "gfx", 0x3000, tilelayout, 0, 1 ) |
| 327 | | GFXDECODE_ENTRY( "gfx", 0x3800, tilelayout, 0, 1 ) |
| 328 | | |
| 329 | | GFXDECODE_ENTRY( "gfx", 0x4000, tilelayout, 0, 1 ) |
| 330 | | GFXDECODE_ENTRY( "gfx", 0x4800, tilelayout, 0, 1 ) |
| 331 | | GFXDECODE_ENTRY( "gfx", 0x5000, tilelayout, 0, 1 ) |
| 332 | | GFXDECODE_ENTRY( "gfx", 0x5800, tilelayout, 0, 1 ) |
| 333 | | GFXDECODE_ENTRY( "gfx", 0x6000, tilelayout, 0, 1 ) |
| 334 | | GFXDECODE_ENTRY( "gfx", 0x6800, tilelayout, 0, 1 ) |
| 335 | | GFXDECODE_ENTRY( "gfx", 0x7000, tilelayout, 0, 1 ) |
| 336 | | GFXDECODE_ENTRY( "gfx", 0x7800, tilelayout, 0, 1 ) |
| 337 | | |
| 338 | | GFXDECODE_ENTRY( "gfx", 0x8000, tilelayout, 0, 1 ) |
| 339 | | GFXDECODE_ENTRY( "gfx", 0x8800, tilelayout, 0, 1 ) |
| 340 | | GFXDECODE_ENTRY( "gfx", 0x9000, tilelayout, 0, 1 ) |
| 341 | | GFXDECODE_ENTRY( "gfx", 0x9800, tilelayout, 0, 1 ) |
| 342 | | GFXDECODE_ENTRY( "gfx", 0xa000, tilelayout, 0, 1 ) |
| 343 | | GFXDECODE_ENTRY( "gfx", 0xa800, tilelayout, 0, 1 ) // ok tiles 0x1500 (light lucky clubs) |
| 344 | | GFXDECODE_ENTRY( "gfx", 0xb000, tilelayout, 0, 1 ) // ok tiles 0x1600 (dark lucky clubs) |
| 345 | | GFXDECODE_ENTRY( "gfx", 0xb800, tilelayout, 0, 1 ) |
| 346 | | |
| 347 | | GFXDECODE_ENTRY( "gfx", 0xc000, tilelayout, 0, 1 ) |
| 348 | | GFXDECODE_ENTRY( "gfx", 0xc800, tilelayout, 0, 1 ) |
| 349 | | GFXDECODE_ENTRY( "gfx", 0xd000, tilelayout, 0, 1 ) |
| 350 | | GFXDECODE_ENTRY( "gfx", 0xd800, tilelayout, 0, 1 ) |
| 351 | | GFXDECODE_ENTRY( "gfx", 0xe000, tilelayout, 0, 1 ) |
| 352 | | GFXDECODE_ENTRY( "gfx", 0xe800, tilelayout, 0, 1 ) |
| 353 | | GFXDECODE_ENTRY( "gfx", 0xf000, tilelayout, 0, 1 ) |
| 354 | | GFXDECODE_ENTRY( "gfx", 0xf800, tilelayout, 0, 1 ) |
| 355 | | |
| 356 | | GFXDECODE_ENTRY( "gfxi", 0, ilayout, 0, 1 ) // Intensity, just to see the layer graphically |
| 357 | 324 | GFXDECODE_END |
| 358 | 325 | |
| 359 | 326 | |