trunk/hash/database.xml
| r242554 | r242555 | |
| 157 | 157 | <publisher>Voltmace?</publisher> |
| 158 | 158 | <info name="serial" value="No.13"/> |
| 159 | 159 | <part name="cart" interface="vc4000_cart"> |
| 160 | | <!-- FIXME: PCB has no RAM, but 4k ROM => it needs a new slot option --> |
| 161 | | <feature name="slot" value="std" /> |
| 160 | <feature name="slot" value="rom4k" /> |
| 162 | 161 | <dataarea name="rom" size="4096"> |
| 163 | 162 | <rom name="boxing.bin" size="4096" crc="922c9f0d" sha1="b49a37dd6d0272f6c71d778ffada6bc7c90f8348" offset="0" /> |
| 164 | 163 | </dataarea> |
| r242554 | r242555 | |
| 229 | 228 | <publisher>Voltmace?</publisher> |
| 230 | 229 | <info name="serial" value="No.24"/> |
| 231 | 230 | <part name="cart" interface="vc4000_cart"> |
| 232 | | <!-- FIXME: PCB has no RAM, but 4k ROM => it needs a new slot option --> |
| 233 | | <feature name="slot" value="std" /> |
| 231 | <feature name="slot" value="rom4k" /> |
| 234 | 232 | <dataarea name="rom" size="4096"> |
| 235 | 233 | <rom name="munchcrn.bin" size="4096" crc="704a1593" sha1="5f0b95904d6d36368727c1e0c91d94627a7471d6" offset="0" /> |
| 236 | 234 | </dataarea> |
trunk/src/emu/bus/vc4000/rom.c
| r242554 | r242555 | |
| 193 | 193 | //------------------------------------------------- |
| 194 | 194 | |
| 195 | 195 | const device_type VC4000_ROM_STD = &device_creator<vc4000_rom_device>; |
| 196 | const device_type VC4000_ROM_ROM4K = &device_creator<vc4000_rom4k_device>; |
| 196 | 197 | const device_type VC4000_ROM_RAM1K = &device_creator<vc4000_ram1k_device>; |
| 197 | 198 | const device_type VC4000_ROM_CHESS2 = &device_creator<vc4000_chess2_device>; |
| 198 | 199 | |
| r242554 | r242555 | |
| 209 | 210 | { |
| 210 | 211 | } |
| 211 | 212 | |
| 213 | vc4000_rom4k_device::vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 214 | : vc4000_rom_device(mconfig, VC4000_ROM_ROM4K, "VC 4000 Carts w/4K ROM", tag, owner, clock, "vc4000_rom4k", __FILE__) |
| 215 | { |
| 216 | } |
| 217 | |
| 212 | 218 | vc4000_ram1k_device::vc4000_ram1k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 213 | 219 | : vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, "VC 4000 Carts w/1K RAM", tag, owner, clock, "vc4000_ram1k", __FILE__) |
| 214 | 220 | { |
trunk/src/emu/bus/vc4000/rom.h
| r242554 | r242555 | |
| 24 | 24 | virtual DECLARE_READ8_MEMBER(read_rom); |
| 25 | 25 | }; |
| 26 | 26 | |
| 27 | // ======================> vc4000_rom4k_device |
| 28 | |
| 29 | class vc4000_rom4k_device : public vc4000_rom_device |
| 30 | { |
| 31 | public: |
| 32 | // construction/destruction |
| 33 | vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 34 | }; |
| 35 | |
| 27 | 36 | // ======================> vc4000_ram1k_device |
| 28 | 37 | |
| 29 | 38 | class vc4000_ram1k_device : public vc4000_rom_device |
| r242554 | r242555 | |
| 57 | 66 | |
| 58 | 67 | // device type definition |
| 59 | 68 | extern const device_type VC4000_ROM_STD; |
| 69 | extern const device_type VC4000_ROM_ROM4K; |
| 60 | 70 | extern const device_type VC4000_ROM_RAM1K; |
| 61 | 71 | extern const device_type VC4000_ROM_CHESS2; |
| 62 | 72 | |
trunk/src/emu/bus/vc4000/slot.c
| r242554 | r242555 | |
| 127 | 127 | static const vc4000_slot slot_list[] = |
| 128 | 128 | { |
| 129 | 129 | { VC4000_STD, "std" }, |
| 130 | { VC4000_ROM4K, "rom4k" }, |
| 130 | 131 | { VC4000_RAM1K, "ram1k" }, |
| 131 | 132 | { VC4000_CHESS2, "chess2" } |
| 132 | 133 | }; |
| r242554 | r242555 | |
| 183 | 184 | // attempt to identify the non-standard types |
| 184 | 185 | if (size > 0x1000) // 6k rom + 1k ram - Chess2 only |
| 185 | 186 | m_type = VC4000_CHESS2; |
| 186 | | else if (size > 0x0800) // some 4k roms have 1k of mirrored ram |
| 187 | else if (size > 0x0800) // some 4k roms have 1k of mirrored ram (those who don't still work with RAM emulated luckily) |
| 187 | 188 | m_type = VC4000_RAM1K; |
| 188 | 189 | |
| 189 | 190 | if (m_type == VC4000_RAM1K || m_type == VC4000_CHESS2) |
trunk/src/mess/drivers/vc4000.c
| r242554 | r242555 | |
| 369 | 369 | case VC4000_STD: |
| 370 | 370 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart)); |
| 371 | 371 | break; |
| 372 | case VC4000_ROM4K: |
| 373 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart)); |
| 374 | break; |
| 372 | 375 | case VC4000_RAM1K: |
| 373 | 376 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart)); |
| 374 | 377 | m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart)); |
| r242554 | r242555 | |
| 513 | 516 | |
| 514 | 517 | static SLOT_INTERFACE_START(vc4000_cart) |
| 515 | 518 | SLOT_INTERFACE_INTERNAL("std", VC4000_ROM_STD) |
| 519 | SLOT_INTERFACE_INTERNAL("rom4k", VC4000_ROM_ROM4K) |
| 516 | 520 | SLOT_INTERFACE_INTERNAL("ram1k", VC4000_ROM_RAM1K) |
| 517 | 521 | SLOT_INTERFACE_INTERNAL("chess2", VC4000_ROM_CHESS2) |
| 518 | 522 | SLOT_INTERFACE_END |