trunk/src/mame/drivers/8080bw.c
| r31713 | r31714 | |
| 3186 | 3186 | |
| 3187 | 3187 | WRITE8_MEMBER(_8080bw_state::invmulti_bank_w) |
| 3188 | 3188 | { |
| 3189 | m_invmulti_bank = data; //needed to restore the bankswitch post load |
| 3190 | |
| 3189 | 3191 | // d0, d4, d6: bank |
| 3190 | 3192 | int bank = (data & 1) | (data >> 3 & 2) | (data >> 4 & 4); |
| 3191 | 3193 | membank("bank1")->set_base(memregion("maincpu")->base() + bank * 0x4000 + 0x0000); |
| 3192 | 3194 | membank("bank2")->set_base(memregion("maincpu")->base() + bank * 0x4000 + 0x2000); |
| 3193 | 3195 | } |
| 3194 | 3196 | |
| 3197 | void _8080bw_state::invmulti_bankswitch_restore() |
| 3198 | { |
| 3199 | invmulti_bank_w(m_maincpu->space(AS_PROGRAM), 0, m_invmulti_bank); |
| 3200 | } |
| 3201 | |
| 3195 | 3202 | MACHINE_RESET_MEMBER(_8080bw_state,invmulti) |
| 3196 | 3203 | { |
| 3204 | m_invmulti_bank = 0; |
| 3205 | |
| 3197 | 3206 | invmulti_bank_w(m_maincpu->space(AS_PROGRAM), 0, 0); |
| 3198 | 3207 | |
| 3199 | 3208 | MACHINE_RESET_CALL_MEMBER(mw8080bw); |
| r31713 | r31714 | |
| 3219 | 3228 | // decrypt rom |
| 3220 | 3229 | for (int i = 0; i < len; i++) |
| 3221 | 3230 | dest[i] = BITSWAP8(src[(i & 0x100ff) | (BITSWAP8(i >> 8 & 0xff, 7,3,4,5,0,6,1,2) << 8)],0,6,5,7,4,3,1,2); |
| 3231 | |
| 3232 | save_item(NAME(m_invmulti_bank)); |
| 3233 | machine().save().register_postload(save_prepost_delegate(FUNC(_8080bw_state::invmulti_bankswitch_restore), this)); |
| 3222 | 3234 | } |
| 3223 | 3235 | |
| 3224 | 3236 | |
trunk/src/mame/includes/8080bw.h
| r31713 | r31714 | |
| 52 | 52 | UINT8 m_schaser_background_disable; |
| 53 | 53 | UINT8 m_schaser_background_select; |
| 54 | 54 | UINT16 m_claybust_gun_pos; |
| 55 | |
| 56 | int m_invmulti_bank; |
| 55 | 57 | |
| 56 | 58 | |
| 57 | 59 | DECLARE_CUSTOM_INPUT_MEMBER(sflush_80_r); |
| r31713 | r31714 | |
| 152 | 154 | inline void set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, const pen_t *pens, UINT8 color ); |
| 153 | 155 | inline void set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, const pen_t *pens, UINT8 fore_color, UINT8 back_color ); |
| 154 | 156 | void clear_extra_columns( bitmap_rgb32 &bitmap, const pen_t *pens, UINT8 color ); |
| 157 | void invmulti_bankswitch_restore(); |
| 155 | 158 | }; |
| 156 | 159 | |
| 157 | 160 | |