trunk/src/mame/drivers/legionna.c
| r32025 | r32026 | |
| 85 | 85 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 86 | 86 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 87 | 87 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, legionna_mcu_r, legionna_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ |
| 88 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 89 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 90 | | AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 91 | | AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 88 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 89 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 90 | AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 91 | AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 92 | 92 | AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* palette xRRRRxGGGGxBBBBx ? */ |
| 93 | 93 | AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram") |
| 94 | 94 | AM_RANGE(0x106000, 0x107fff) AM_RAM |
| r32025 | r32026 | |
| 100 | 100 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 101 | 101 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 102 | 102 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, heatbrl_mcu_r, heatbrl_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ |
| 103 | | AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 104 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 105 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 106 | | AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 103 | AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 104 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 105 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 106 | AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 107 | 107 | AM_RANGE(0x103000, 0x103fff) AM_RAM AM_SHARE("spriteram") |
| 108 | 108 | AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 109 | 109 | AM_RANGE(0x108000, 0x11ffff) AM_RAM |
| r32025 | r32026 | |
| 114 | 114 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 115 | 115 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, godzilla_mcu_r, godzilla_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ |
| 116 | 116 | AM_RANGE(0x100800, 0x100fff) AM_RAM |
| 117 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 118 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 119 | | AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 120 | | AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 117 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 118 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 119 | AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 120 | AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 121 | 121 | AM_RANGE(0x103800, 0x103fff) AM_RAM // check? |
| 122 | 122 | AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 123 | 123 | AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram") |
| r32025 | r32026 | |
| 139 | 139 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 140 | 140 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, denjinmk_mcu_r, denjinmk_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ |
| 141 | 141 | AM_RANGE(0x100800, 0x100fff) AM_RAM |
| 142 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 143 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 144 | | AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 145 | | AM_RANGE(0x102800, 0x103fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 142 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 143 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 144 | AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 145 | AM_RANGE(0x102800, 0x103fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 146 | 146 | AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("palette") |
| 147 | 147 | AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram") |
| 148 | 148 | AM_RANGE(0x106000, 0x107fff) AM_RAM |
| r32025 | r32026 | |
| 155 | 155 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 156 | 156 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 157 | 157 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, grainbow_mcu_r, grainbow_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ |
| 158 | | AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 159 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 160 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 161 | | AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 158 | AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 159 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 160 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 161 | AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 162 | 162 | AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 163 | 163 | AM_RANGE(0x104000, 0x104fff) AM_RAM//_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") |
| 164 | 164 | AM_RANGE(0x105000, 0x105fff) AM_RAM |
| r32025 | r32026 | |
| 171 | 171 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 172 | 172 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 173 | 173 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, cupsoc_mcu_r,cupsoc_mcu_w) AM_SHARE("cop_mcu_ram") |
| 174 | | AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 175 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 176 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 177 | | AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 174 | AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 175 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 176 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 177 | AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 178 | 178 | AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 179 | 179 | AM_RANGE(0x104000, 0x104fff) AM_RAM |
| 180 | 180 | AM_RANGE(0x105000, 0x106fff) AM_RAM |
| r32025 | r32026 | |
| 190 | 190 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 191 | 191 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 192 | 192 | AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, cupsocs_mcu_r,cupsocs_mcu_w) AM_SHARE("cop_mcu_ram") |
| 193 | | AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 194 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 195 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 196 | | AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 193 | AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 194 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 195 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 196 | AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 197 | 197 | AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 198 | 198 | AM_RANGE(0x104000, 0x104fff) AM_RAM |
| 199 | 199 | AM_RANGE(0x105000, 0x106fff) AM_RAM |
| r32025 | r32026 | |
| 209 | 209 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 210 | 210 | //AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 211 | 211 | AM_RANGE(0x100000, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, copdxbl_0_r,copdxbl_0_w) AM_SHARE("cop_mcu_ram") |
| 212 | | AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data") |
| 213 | | AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 214 | | AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 215 | | AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") |
| 212 | AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 213 | AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 214 | AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 215 | AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 216 | 216 | AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 217 | 217 | AM_RANGE(0x104000, 0x104fff) AM_RAM |
| 218 | 218 | AM_RANGE(0x105000, 0x106fff) AM_RAM |
| r32025 | r32026 | |
| 1066 | 1066 | SEIBU_SOUND_SYSTEM_CPU(14318180/4) |
| 1067 | 1067 | |
| 1068 | 1068 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1069 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1069 | 1070 | |
| 1070 | 1071 | /* video hardware */ |
| 1071 | 1072 | MCFG_SCREEN_ADD("screen", RASTER) |
| r32025 | r32026 | |
| 1097 | 1098 | SEIBU_SOUND_SYSTEM_CPU(14318180/4) |
| 1098 | 1099 | |
| 1099 | 1100 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1101 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1100 | 1102 | |
| 1101 | 1103 | /* video hardware */ |
| 1102 | 1104 | MCFG_SCREEN_ADD("screen", RASTER) |
| r32025 | r32026 | |
| 1128 | 1130 | SEIBU2_SOUND_SYSTEM_CPU(14318180/4) |
| 1129 | 1131 | |
| 1130 | 1132 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1133 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1131 | 1134 | |
| 1132 | 1135 | /* video hardware */ |
| 1133 | 1136 | MCFG_SCREEN_ADD("screen", RASTER) |
| r32025 | r32026 | |
| 1160 | 1163 | SEIBU2_SOUND_SYSTEM_CPU(14318180/4) |
| 1161 | 1164 | |
| 1162 | 1165 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1166 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1163 | 1167 | |
| 1164 | 1168 | /* video hardware */ |
| 1165 | 1169 | MCFG_SCREEN_ADD("screen", RASTER) |
| r32025 | r32026 | |
| 1191 | 1195 | SEIBU2_SOUND_SYSTEM_CPU(14318180/4) |
| 1192 | 1196 | |
| 1193 | 1197 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1198 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1194 | 1199 | |
| 1195 | 1200 | /* video hardware */ |
| 1196 | 1201 | MCFG_SCREEN_ADD("screen", RASTER) |
| r32025 | r32026 | |
| 1223 | 1228 | SEIBU_SOUND_SYSTEM_CPU(14318180/4) |
| 1224 | 1229 | |
| 1225 | 1230 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1231 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1226 | 1232 | |
| 1227 | 1233 | /* video hardware */ |
| 1228 | 1234 | MCFG_SCREEN_ADD("screen", RASTER) |
| r32025 | r32026 | |
| 1257 | 1263 | MCFG_CPU_VBLANK_INT_DRIVER("screen", legionna_state, irq4_line_hold) /* VBL */ |
| 1258 | 1264 | |
| 1259 | 1265 | MCFG_SEIBU_COP_ADD("seibucop") |
| 1266 | MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w)) |
| 1260 | 1267 | |
| 1261 | 1268 | /*Different Sound hardware*/ |
| 1262 | 1269 | //SEIBU_SOUND_SYSTEM_CPU(14318180/4) |
trunk/src/mame/machine/seicop.c
| r32025 | r32026 | |
| 1639 | 1639 | m_cop_sprite_dma_abs_x(0), |
| 1640 | 1640 | m_cop_sprite_dma_abs_y(0), |
| 1641 | 1641 | m_cop_sprite_dma_size(0), |
| 1642 | | m_cop_sprite_dma_param(0) |
| 1642 | m_cop_sprite_dma_param(0), |
| 1643 | m_videoramout_cb(*this) |
| 1643 | 1644 | { |
| 1644 | 1645 | memset(m_copd2_table, 0, sizeof(UINT16)*0x100); |
| 1645 | 1646 | memset(m_copd2_table_2, 0, sizeof(UINT16)*0x100/8); |
| r32025 | r32026 | |
| 1673 | 1674 | void seibu_cop_legacy_device::device_start() |
| 1674 | 1675 | { |
| 1675 | 1676 | m_cop_mcu_ram = reinterpret_cast<UINT16 *>(machine().root_device().memshare("cop_mcu_ram")->ptr()); |
| 1677 | m_videoramout_cb.resolve_safe(); |
| 1676 | 1678 | |
| 1677 | 1679 | save_item(NAME(m_cop_438)); |
| 1678 | 1680 | save_item(NAME(m_cop_43a)); |
| r32025 | r32026 | |
| 3084 | 3086 | case (0x2fc/2): |
| 3085 | 3087 | { |
| 3086 | 3088 | //seibu_cop_log("%06x: COPX execute current layer clear??? %04x\n", space.device().safe_pc(), data); |
| 3089 | //printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",m_cop_dma_src[m_cop_dma_trigger] << 6,m_cop_dma_fade_table,m_cop_dma_dst[m_cop_dma_trigger] << 6,m_cop_dma_size[m_cop_dma_trigger] << 5,m_cop_dma_trigger); |
| 3087 | 3090 | |
| 3088 | 3091 | if (m_cop_dma_trigger >= 0x80 && m_cop_dma_trigger <= 0x87) |
| 3089 | 3092 | { |
| r32025 | r32026 | |
| 3234 | 3237 | return; |
| 3235 | 3238 | } |
| 3236 | 3239 | |
| 3237 | | /* private buffer copies */ |
| 3238 | | if ((m_cop_dma_trigger==0x14) || (m_cop_dma_trigger==0x15)) |
| 3240 | /* private buffer copies - tilemaps */ |
| 3241 | if (m_cop_dma_trigger == 0x14) |
| 3242 | { |
| 3243 | // AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 3244 | // AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 3245 | // AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 3246 | // AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 3247 | int src = m_cop_dma_src[m_cop_dma_trigger] << 6; |
| 3248 | |
| 3249 | for (int i = 0; i < 0x2800 /2; i++) |
| 3250 | { |
| 3251 | UINT16 tileval = space.read_word(src); |
| 3252 | //printf("reading source %04x (data is %04x)\n", src, data); |
| 3253 | src += 2; |
| 3254 | m_videoramout_cb(space, i, tileval, 0xffff); |
| 3255 | } |
| 3256 | |
| 3257 | return; |
| 3258 | } |
| 3259 | |
| 3260 | /* privaet buffer copy - sprites? */ |
| 3261 | if (m_cop_dma_trigger==0x15) |
| 3239 | 3262 | return; |
| 3240 | 3263 | |
| 3241 | 3264 | printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",m_cop_dma_src[m_cop_dma_trigger] << 6,m_cop_dma_fade_table,m_cop_dma_dst[m_cop_dma_trigger] << 6,m_cop_dma_size[m_cop_dma_trigger] << 5,m_cop_dma_trigger); |
trunk/src/mame/video/legionna.c
| r32025 | r32026 | |
| 40 | 40 | state->m_text_layer->mark_all_dirty(); |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | WRITE16_MEMBER(legionna_state::videowrite_cb_w) |
| 44 | { |
| 45 | // AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") |
| 46 | // AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") |
| 47 | // AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") |
| 48 | // AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram") |
| 49 | |
| 50 | if (offset < 0x800 / 2) |
| 51 | { |
| 52 | legionna_background_w(space, offset, data, 0xffff); |
| 53 | } |
| 54 | else if (offset < 0x1000 /2) |
| 55 | { |
| 56 | offset -= 0x800 / 2; |
| 57 | legionna_foreground_w(space, offset, data, 0xffff); |
| 58 | } |
| 59 | else if (offset < 0x1800/2) |
| 60 | { |
| 61 | offset -= 0x1000 / 2; |
| 62 | legionna_midground_w(space, offset, data, 0xffff); |
| 63 | } |
| 64 | else if (offset < 0x2800/2) |
| 65 | { |
| 66 | offset -= 0x1800 / 2; |
| 67 | legionna_text_w(space, offset, data, 0xffff); |
| 68 | } |
| 69 | } |
| 70 | |
| 43 | 71 | WRITE16_MEMBER(legionna_state::legionna_background_w) |
| 44 | 72 | { |
| 45 | 73 | COMBINE_DATA(&m_back_data[offset]); |
| r32025 | r32026 | |
| 141 | 169 | SET_TILE_INFO_MEMBER(0,tile,color,0); |
| 142 | 170 | } |
| 143 | 171 | |
| 172 | |
| 173 | |
| 144 | 174 | VIDEO_START_MEMBER(legionna_state,legionna) |
| 145 | 175 | { |
| 176 | |
| 177 | m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 178 | m_fore_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 179 | m_mid_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 180 | m_textram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2); |
| 181 | |
| 146 | 182 | m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); |
| 147 | 183 | m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); |
| 148 | 184 | m_midground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32); |
| r32025 | r32026 | |
| 163 | 199 | |
| 164 | 200 | VIDEO_START_MEMBER(legionna_state,denjinmk) |
| 165 | 201 | { |
| 202 | |
| 203 | m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 204 | m_fore_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 205 | m_mid_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 206 | m_textram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2); |
| 207 | |
| 166 | 208 | m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); |
| 167 | 209 | m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info_denji),this),TILEMAP_SCAN_ROWS,16,16,32,32); |
| 168 | 210 | m_midground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_denji),this), TILEMAP_SCAN_ROWS,16,16,32,32); |
| r32025 | r32026 | |
| 183 | 225 | |
| 184 | 226 | VIDEO_START_MEMBER(legionna_state,cupsoc) |
| 185 | 227 | { |
| 228 | m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 229 | m_fore_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 230 | m_mid_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2); |
| 231 | m_textram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2); |
| 232 | |
| 186 | 233 | m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); |
| 187 | 234 | m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); |
| 188 | 235 | m_midground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_cupsoc),this), TILEMAP_SCAN_ROWS,16,16,32,32); |