trunk/src/mame/drivers/legionna.c
| r32290 | r32291 | |
| 81 | 81 | /*****************************************************************************/ |
| 82 | 82 | |
| 83 | 83 | |
| 84 | static ADDRESS_MAP_START( legionna_cop_mem, AS_PROGRAM, 16, legionna_state ) |
| 85 | // AM_RANGE(0x10041c, 0x10041d) AM_WRITE(cop_angle_target_w) // angle target (for 0x6200 COP macro) |
| 86 | // AM_RANGE(0x10041e, 0x10041f) AM_WRITE(cop_angle_step_w) // angle step (for 0x6200 COP macro) |
| 87 | // AM_RANGE(0x100420, 0x100421) AM_WRITE(cop_itoa_low_w) |
| 88 | // AM_RANGE(0x100422, 0x100423) AM_WRITE(cop_itoa_high_w) |
| 89 | // AM_RANGE(0x100424, 0x100425) AM_WRITE(cop_itoa_digit_count_w) |
| 90 | AM_RANGE(0x100428, 0x100429) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_dma_v1_w) |
| 91 | AM_RANGE(0x10042a, 0x10042b) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_dma_v2_w) |
| 92 | AM_RANGE(0x100432, 0x100433) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pgm_data_w) |
| 93 | AM_RANGE(0x100434, 0x100435) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pgm_addr_w) |
| 94 | // AM_RANGE(0x100436, 0x100437) AM_WRITE(cop_hitbox_baseadr_w) |
| 95 | AM_RANGE(0x100438, 0x100439) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pgm_value_w) |
| 96 | AM_RANGE(0x10043a, 0x10043b) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pgm_mask_w) |
| 97 | AM_RANGE(0x10043c, 0x10043d) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pgm_trigger_w) |
| 98 | // AM_RANGE(0x100444, 0x100445) AM_WRITE(cop_scale_w) |
| 99 | // AM_RANGE(0x100450, 0x100451) AM_WRITE(cop_sort_ram_addr_hi_w) |
| 100 | // AM_RANGE(0x100452, 0x100453) AM_WRITE(cop_sort_ram_addr_lo_w) |
| 101 | // AM_RANGE(0x100454, 0x100455) AM_WRITE(cop_sort_lookup_hi_w) |
| 102 | // AM_RANGE(0x100456, 0x100457) AM_WRITE(cop_sort_lookup_lo_w) |
| 103 | // AM_RANGE(0x100458, 0x100459) AM_WRITE(cop_sort_param_w) |
| 104 | AM_RANGE(0x10045a, 0x10045b) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pal_brightness_val_w) //palette DMA brightness val, used by X Se Dae / Zero Team |
| 105 | AM_RANGE(0x10045c, 0x10045d) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_pal_brightness_mode_w) //palette DMA brightness mode, used by X Se Dae / Zero Team (sets to 5) |
| 106 | // AM_RANGE(0x100470, 0x100471) AM_READWRITE(cop_tile_bank_2_r,cop_tile_bank_2_w) |
| 107 | |
| 108 | AM_RANGE(0x100476, 0x100477) AM_DEVWRITE("raiden2cop", raiden2cop_device, cop_dma_adr_rel_w) |
| 109 | AM_RANGE(0x100478, 0x100479) AM_DEVWRITE("raiden2cop", raiden2cop_device,cop_dma_src_w) |
| 110 | AM_RANGE(0x10047a, 0x10047b) AM_DEVWRITE("raiden2cop", raiden2cop_device,cop_dma_size_w) |
| 111 | AM_RANGE(0x10047c, 0x10047d) AM_DEVWRITE("raiden2cop", raiden2cop_device,cop_dma_dst_w) |
| 112 | AM_RANGE(0x10047e, 0x10047f) AM_DEVREADWRITE("raiden2cop", raiden2cop_device, cop_dma_mode_r, cop_dma_mode_w) |
| 113 | // AM_RANGE(0x1004a0, 0x1004a9) AM_READWRITE(cop_reg_high_r, cop_reg_high_w) |
| 114 | // AM_RANGE(0x1004c0, 0x1004c9) AM_READWRITE(cop_reg_low_r, cop_reg_low_w) |
| 115 | // AM_RANGE(0x100500, 0x100505) AM_WRITE(cop_cmd_w) |
| 116 | // AM_RANGE(0x100580, 0x100581) AM_READ(cop_collision_status_r) |
| 117 | // AM_RANGE(0x100582, 0x100587) AM_READ(cop_collision_status_val_r) |
| 118 | // AM_RANGE(0x100588, 0x100589) AM_READ(cop_collision_status_stat_r) |
| 119 | // AM_RANGE(0x100590, 0x100599) AM_READ(cop_itoa_digits_r) |
| 120 | // AM_RANGE(0x1005b0, 0x1005b1) AM_READ(cop_status_r) |
| 121 | // AM_RANGE(0x1005b2, 0x1005b3) AM_READ(cop_dist_r) |
| 122 | // AM_RANGE(0x1005b4, 0x1005b5) AM_READ(cop_angle_r) |
| 123 | |
| 124 | AM_RANGE(0x1006fc, 0x1006fd) AM_DEVWRITE("raiden2cop", raiden2cop_device,cop_dma_trigger_w) |
| 125 | // AM_RANGE(0x1006fe, 0x1006ff) AM_WRITE(cop_sort_dma_trig_w) // sort-DMA trigger |
| 126 | ADDRESS_MAP_END |
| 127 | |
| 128 | |
| 84 | 129 | static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16, legionna_state ) |
| 130 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 85 | 131 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 86 | 132 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 87 | 133 | AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| r32290 | r32291 | |
| 98 | 144 | |
| 99 | 145 | |
| 100 | 146 | static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16, legionna_state ) |
| 147 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 101 | 148 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 102 | 149 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 103 | 150 | AM_RANGE(0x100640, 0x10068f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| r32290 | r32291 | |
| 112 | 159 | ADDRESS_MAP_END |
| 113 | 160 | |
| 114 | 161 | static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16, legionna_state ) |
| 162 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 115 | 163 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 116 | 164 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 117 | 165 | AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| r32290 | r32291 | |
| 140 | 188 | |
| 141 | 189 | |
| 142 | 190 | static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16, legionna_state ) |
| 191 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 143 | 192 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 144 | 193 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 145 | 194 | AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| r32290 | r32291 | |
| 158 | 207 | ADDRESS_MAP_END |
| 159 | 208 | |
| 160 | 209 | static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16, legionna_state ) |
| 210 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 161 | 211 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 162 | 212 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 163 | 213 | AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| r32290 | r32291 | |
| 175 | 225 | ADDRESS_MAP_END |
| 176 | 226 | |
| 177 | 227 | static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16, legionna_state ) |
| 228 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 178 | 229 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 179 | 230 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 180 | 231 | AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) |
| r32290 | r32291 | |
| 195 | 246 | ADDRESS_MAP_END |
| 196 | 247 | |
| 197 | 248 | static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16, legionna_state ) |
| 249 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 198 | 250 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 199 | 251 | AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 200 | 252 | AM_RANGE(0x100600, 0x10060f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)//? |
| r32290 | r32291 | |
| 216 | 268 | ADDRESS_MAP_END |
| 217 | 269 | |
| 218 | 270 | static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16, legionna_state ) |
| 271 | AM_IMPORT_FROM( legionna_cop_mem ) |
| 219 | 272 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 220 | 273 | //AM_RANGE(0x100000, 0x1003ff) AM_RAM |
| 221 | 274 | AM_RANGE(0x100600, 0x10060f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)//? |
trunk/src/mame/machine/seicop.c
| r32290 | r32291 | |
| 2209 | 2209 | */ |
| 2210 | 2210 | break; |
| 2211 | 2211 | |
| 2212 | | // ram fill |
| 2213 | | case (0x028 / 2) : m_raiden2cop->cop_dma_v1_w(space, offset, data, mem_mask); break; |
| 2214 | | case (0x02a / 2) : m_raiden2cop->cop_dma_v2_w(space, offset, data, mem_mask); break; |
| 2215 | 2212 | |
| 2216 | 2213 | |
| 2217 | 2214 | |
| r32290 | r32291 | |
| 2219 | 2216 | /* max possible value returned by the RNG at 0x5a*, trusted */ |
| 2220 | 2217 | case (0x02c/2): m_cop_rng_max_value = m_cop_mcu_ram[0x2c/2] & 0xff; break; |
| 2221 | 2218 | |
| 2222 | | /* Command tables for 0x500 / 0x502 commands */ |
| 2223 | | case (0x032/2): { m_raiden2cop->cop_pgm_data_w(space,0,data,mem_mask); break; } |
| 2224 | | case (0x034/2): { m_raiden2cop->cop_pgm_addr_w(space,0,data,mem_mask); break; } |
| 2225 | | case (0x038/2): { m_raiden2cop->cop_pgm_value_w(space,0,data,mem_mask); break; } |
| 2226 | | case (0x03a/2): { m_raiden2cop->cop_pgm_mask_w(space,0,data,mem_mask); break; } |
| 2227 | | case (0x03c/2): { m_raiden2cop->cop_pgm_trigger_w(space,0,data,mem_mask); break; } |
| 2228 | 2219 | case (0x03e/2): |
| 2229 | 2220 | /* |
| 2230 | 2221 | 0 in all 68k based games |
| r32290 | r32291 | |
| 2239 | 2230 | case (0x048/2): { m_cop_rom_addr_lo = data & 0xffff; break; } |
| 2240 | 2231 | case (0x04a/2): { m_cop_rom_addr_hi = data & 0xffff; break; } |
| 2241 | 2232 | |
| 2242 | | /* brightness control */ |
| 2243 | | case (0x05a / 2) : m_raiden2cop->cop_pal_brightness_val_w(space, offset, data, mem_mask); break; |
| 2244 | | case (0x05c / 2) : m_raiden2cop->cop_pal_brightness_mode_w(space, offset, data, mem_mask); break; |
| 2245 | 2233 | |
| 2246 | 2234 | /* DMA / layer clearing section */ |
| 2247 | 2235 | case (0x074/2): |
| r32290 | r32291 | |
| 2257 | 2245 | break; |
| 2258 | 2246 | |
| 2259 | 2247 | |
| 2260 | | case (0x076 / 2) : m_raiden2cop->cop_dma_adr_rel_w(space, offset, data, mem_mask); break; /* used in palette DMAs, for fading effects */ |
| 2261 | | case (0x078 / 2) : m_raiden2cop->cop_dma_src_w(space, offset, data, mem_mask); break; /* DMA source address */ |
| 2262 | | case (0x07a / 2) : m_raiden2cop->cop_dma_size_w(space, offset, data, mem_mask); break;/* DMA length */ |
| 2263 | | case (0x07c/2): m_raiden2cop->cop_dma_dst_w(space, offset, data, mem_mask); break; /* DMA destination */ |
| 2264 | | case (0x07e/2): m_raiden2cop->cop_dma_mode_w(space, offset, data, mem_mask); break; /* DMA parameter */ |
| 2265 | 2248 | |
| 2266 | 2249 | |
| 2267 | 2250 | |