src/mess/machine/nes_pcb.c
| r15309 | r15310 | |
| 6097 | 6097 | |
| 6098 | 6098 | In MESS: Supported. |
| 6099 | 6099 | |
| 6100 | Notes: Metal Force and Buzz & Waldog only use the the first |
| 6101 | 4 regs and no mirroring. Janggun ui Adeul uses all features |
| 6102 | |
| 6100 | 6103 | *************************************************************/ |
| 6101 | 6104 | |
| 6102 | 6105 | static WRITE8_HANDLER( daou306_w ) |
| 6103 | 6106 | { |
| 6107 | nes_state *state = space->machine().driver_data<nes_state>(); |
| 6104 | 6108 | LOG_MMC(("daou306_w, offset: %04x, data: %02x\n", offset, data)); |
| 6109 | int reg = BIT(offset, 2) ? 8 : 0; |
| 6105 | 6110 | |
| 6106 | 6111 | switch (offset) |
| 6107 | 6112 | { |
| 6108 | 6113 | case 0x4000: |
| 6109 | | chr1_0(space->machine(), data, CHRROM); |
| 6114 | case 0x4004: |
| 6115 | state->m_mmc_reg[reg + 0] = data; |
| 6116 | chr1_0(space->machine(), state->m_mmc_reg[0] | (state->m_mmc_reg[8] << 8), CHRROM); |
| 6110 | 6117 | break; |
| 6111 | 6118 | case 0x4001: |
| 6112 | | chr1_1(space->machine(), data, CHRROM); |
| 6119 | case 0x4005: |
| 6120 | state->m_mmc_reg[reg + 1] = data; |
| 6121 | chr1_1(space->machine(), state->m_mmc_reg[1] | (state->m_mmc_reg[9] << 8), CHRROM); |
| 6113 | 6122 | break; |
| 6114 | 6123 | case 0x4002: |
| 6115 | | chr1_2(space->machine(), data, CHRROM); |
| 6124 | case 0x4006: |
| 6125 | state->m_mmc_reg[reg + 2] = data; |
| 6126 | chr1_2(space->machine(), state->m_mmc_reg[2] | (state->m_mmc_reg[10] << 8), CHRROM); |
| 6116 | 6127 | break; |
| 6117 | 6128 | case 0x4003: |
| 6118 | | chr1_3(space->machine(), data, CHRROM); |
| 6129 | case 0x4007: |
| 6130 | state->m_mmc_reg[reg + 3] = data; |
| 6131 | chr1_3(space->machine(), state->m_mmc_reg[3] | (state->m_mmc_reg[11] << 8), CHRROM); |
| 6119 | 6132 | break; |
| 6120 | 6133 | case 0x4008: |
| 6121 | | chr1_4(space->machine(), data, CHRROM); |
| 6134 | case 0x400c: |
| 6135 | state->m_mmc_reg[reg + 4] = data; |
| 6136 | chr1_4(space->machine(), state->m_mmc_reg[4] | (state->m_mmc_reg[12] << 8), CHRROM); |
| 6122 | 6137 | break; |
| 6123 | 6138 | case 0x4009: |
| 6124 | | chr1_5(space->machine(), data, CHRROM); |
| 6139 | case 0x400d: |
| 6140 | state->m_mmc_reg[reg + 5] = data; |
| 6141 | chr1_5(space->machine(), state->m_mmc_reg[5] | (state->m_mmc_reg[13] << 8), CHRROM); |
| 6125 | 6142 | break; |
| 6126 | 6143 | case 0x400a: |
| 6127 | | chr1_6(space->machine(), data, CHRROM); |
| 6144 | case 0x400e: |
| 6145 | state->m_mmc_reg[reg + 6] = data; |
| 6146 | chr1_6(space->machine(), state->m_mmc_reg[6] | (state->m_mmc_reg[14] << 8), CHRROM); |
| 6128 | 6147 | break; |
| 6129 | 6148 | case 0x400b: |
| 6130 | | chr1_7(space->machine(), data, CHRROM); |
| 6149 | case 0x400f: |
| 6150 | state->m_mmc_reg[reg + 7] = data; |
| 6151 | chr1_7(space->machine(), state->m_mmc_reg[7] | (state->m_mmc_reg[15] << 8), CHRROM); |
| 6131 | 6152 | break; |
| 6132 | 6153 | case 0x4010: |
| 6133 | 6154 | prg16_89ab(space->machine(), data); |
| 6134 | 6155 | break; |
| 6156 | case 0x4014: |
| 6157 | if (data & 1) |
| 6158 | set_nt_mirroring(space->machine(), PPU_MIRROR_HORZ); |
| 6159 | else |
| 6160 | set_nt_mirroring(space->machine(), PPU_MIRROR_VERT); |
| 6161 | break; |
| 6135 | 6162 | } |
| 6136 | 6163 | } |
| 6137 | 6164 | |