trunk/src/mess/machine/nes_slot.c
| r21548 | r21549 | |
| 1107 | 1107 | |
| 1108 | 1108 | |
| 1109 | 1109 | /*------------------------------------------------- |
| 1110 | | call_unloadload |
| 1110 | call_unload |
| 1111 | 1111 | -------------------------------------------------*/ |
| 1112 | 1112 | |
| 1113 | 1113 | void nes_cart_slot_device::call_unload() |
| 1114 | 1114 | { |
| 1115 | | if (m_cart && m_cart->get_battery_size()) |
| 1116 | | battery_save(m_cart->get_battery_base(), m_cart->get_battery_size()); |
| 1117 | | if (m_cart && m_cart->get_mapper_bram_size()) |
| 1118 | | battery_save(m_cart->get_mapper_bram_base(), m_cart->get_mapper_bram_size()); |
| 1115 | if (m_cart) |
| 1116 | { |
| 1117 | if (m_cart->get_battery_size() || m_cart->get_mapper_bram_size()) |
| 1118 | { |
| 1119 | UINT32 tot_size = m_cart->get_battery_size() + m_cart->get_mapper_bram_size(); |
| 1120 | UINT8 *temp_nvram = auto_alloc_array(machine(), UINT8, tot_size); |
| 1121 | if (m_cart->get_battery_size()) |
| 1122 | memcpy(temp_nvram, m_cart->get_battery_base(), m_cart->get_battery_size()); |
| 1123 | if (m_cart->get_mapper_bram_size()) |
| 1124 | memcpy(temp_nvram + m_cart->get_battery_size(), m_cart->get_mapper_bram_base(), m_cart->get_mapper_bram_size()); |
| 1125 | |
| 1126 | battery_save(temp_nvram, tot_size); |
| 1127 | if (temp_nvram) |
| 1128 | auto_free(machine(), temp_nvram); |
| 1129 | } |
| 1130 | } |
| 1119 | 1131 | } |
| 1120 | 1132 | |
| 1121 | 1133 | |