trunk/src/emu/bus/vc4000/rom.c
| r0 | r32505 | |
| 1 | /*********************************************************************************************************** |
| 2 | |
| 3 | |
| 4 | Interton Electronic VC 4000 cart emulation |
| 5 | |
| 6 | |
| 7 | ***********************************************************************************************************/ |
| 8 | |
| 9 | |
| 10 | /* Game List and Emulation Status |
| 11 | |
| 12 | When you load a game it will normally appear to be unresponsive. Most carts contain a number of variants |
| 13 | of each game (e.g. Difficulty, Player1 vs Player2 or Player1 vs Computer, etc). |
| 14 | |
| 15 | Press F2 (if needed) to select which game variant you would like to play. The variant number will increment |
| 16 | on-screen. When you've made your choice, press F1 to start. The main keys are unlabelled, because an overlay |
| 17 | is provided with each cart. See below for a guide. You need to read the instructions that come with each game. |
| 18 | |
| 19 | In some games, the joystick is used like 4 buttons, and other games like a paddle. The two modes are |
| 20 | incompatible when using a keyboard. Therefore (in the emulation) a config dipswitch is used. The preferred |
| 21 | setting is listed below. |
| 22 | |
| 23 | (AC = Auto-centre, NAC = no auto-centre, 90 = turn controller 90 degrees). |
| 24 | |
| 25 | The list is rather incomplete, information will be added as it becomes available. |
| 26 | |
| 27 | The game names and numbers were obtained from the Amigan Software site. |
| 28 | |
| 29 | Cart Num Name |
| 30 | ---------------------------------------------- |
| 31 | 1. Grand Prix / Car Races / Autosport / Motor Racing / Road Race |
| 32 | Config: Paddle, NAC |
| 33 | Status: Working |
| 34 | Controls: Left-Right: Steer; Up: Accelerate |
| 35 | |
| 36 | 2. Black Jack |
| 37 | Status: Not working (some digits missing; indicator missing; dealer's cards missing) |
| 38 | Controls: set bet with S and D; A to deal; 1 to hit, 2 to stay; Q accept insurance, E to decline; double-up (unknown key) |
| 39 | Indicator: E make a bet then deal; I choose insurance; - you lost; + you won; X hit or stay |
| 40 | |
| 41 | 3. Olympics / Paddle Games / Bat & Ball / Pro Sport 60 / Sportsworld |
| 42 | Config: Paddle, NAC |
| 43 | Status: Working |
| 44 | |
| 45 | 4. Tank Battle / Combat |
| 46 | Config: Button, 90 |
| 47 | Status: Working |
| 48 | Controls: Left-Right: Steer; Up: Accelerate; Fire: Shoot |
| 49 | |
| 50 | 5. Maths 1 |
| 51 | Status: Working |
| 52 | Controls: Z difficulty; X = addition or subtraction; C ask question; A=1;S=2;D=3;Q=4;W=5;E=6;1=7;2=8;3=9;0=0; C enter |
| 53 | |
| 54 | 6. Maths 2 |
| 55 | Status: Not working |
| 56 | Controls: Same as above. |
| 57 | |
| 58 | 7. Air Sea Attack / Air Sea Battle |
| 59 | Config: Button, 90 |
| 60 | Status: Working |
| 61 | Controls: Left-Right: Move; Fire: Shoot |
| 62 | |
| 63 | 8. Treasure Hunt / Capture the Flag / Concentration / Memory Match |
| 64 | Config: Buttons |
| 65 | Status: Working |
| 66 | |
| 67 | 9. Labyrinth / Maze / Intelligence 1 |
| 68 | Config: Buttons |
| 69 | Status: Working |
| 70 | |
| 71 | 10. Winter Sports |
| 72 | Notes: Background colours should be Cyan and White instead of Red and Black |
| 73 | |
| 74 | 11. Hippodrome / Horse Race |
| 75 | |
| 76 | 12. Hunting / Shooting Gallery |
| 77 | |
| 78 | 13. Chess 1 |
| 79 | Status: Can't see what you're typing, wrong colours |
| 80 | |
| 81 | 14. Moto-cros |
| 82 | |
| 83 | 15. Four in a row / Intelligence 2 |
| 84 | Config: Buttons |
| 85 | Status: Working |
| 86 | Notes: Seems the unused squares should be black. The screen jumps about while the computer is "thinking". |
| 87 | |
| 88 | 16. Code Breaker / Master Mind / Intelligence 3 / Challenge |
| 89 | |
| 90 | 17. Circus |
| 91 | STatus: severe gfx issues |
| 92 | |
| 93 | 18. Boxing / Prize Fight |
| 94 | |
| 95 | 19. Outer Space / Spacewar / Space Attack / Outer Space Combat |
| 96 | |
| 97 | 20. Melody Simon / Musical Memory / Follow the Leader / Musical Games / Electronic Music / Face the Music |
| 98 | |
| 99 | 21. Capture / Othello / Reversi / Attack / Intelligence 4 |
| 100 | Config: Buttons |
| 101 | Status: Working |
| 102 | Notes: Seems the unused squares should be black |
| 103 | |
| 104 | 22. Chess 2 |
| 105 | Status: Can't see what you're typing, wrong colours |
| 106 | |
| 107 | 23. Pinball / Flipper / Arcade |
| 108 | Status: gfx issues |
| 109 | |
| 110 | 24. Soccer |
| 111 | |
| 112 | 25. Bowling / NinePins |
| 113 | Config: Paddle, rotated 90 degrees, up/down autocentre, left-right does not |
| 114 | Status: Working |
| 115 | |
| 116 | 26. Draughts |
| 117 | |
| 118 | 27. Golf |
| 119 | Status: gfx issues |
| 120 | |
| 121 | 28. Cockpit |
| 122 | Status: gfx issues |
| 123 | |
| 124 | 29. Metropolis / Hangman |
| 125 | Status: gfx issues |
| 126 | |
| 127 | 30. Solitaire |
| 128 | |
| 129 | 31. Casino |
| 130 | Status: gfx issues, items missing and unplayable |
| 131 | Controls: 1 or 3=START; q=GO; E=STOP; D=$; Z=^; X=tens; C=units |
| 132 | |
| 133 | 32. Invaders / Alien Invasion / Earth Invasion |
| 134 | Status: Works |
| 135 | Config: Buttons |
| 136 | |
| 137 | 33. Super Invaders |
| 138 | Status: Stars are missing, colours are wrong |
| 139 | Config: Buttons (90) |
| 140 | |
| 141 | 36. BackGammon |
| 142 | Status: Not all counters are visible, Dice & game number not visible. |
| 143 | Controls: Fire=Exec; 1=D+; 3=D-; Q,W,E=4,5,6; A,S,D=1,2,3; Z=CL; X=STOP; C=SET |
| 144 | |
| 145 | 37. Monster Man / Spider's Web |
| 146 | Status: Works |
| 147 | Config: Buttons |
| 148 | |
| 149 | 38. Hyperspace |
| 150 | Status: Works |
| 151 | Config: Buttons (90) |
| 152 | Controls: 3 - status button; Q,W,E,A,S,D,Z,X,C selects which galaxy to visit |
| 153 | |
| 154 | |
| 155 | 40. Super Space |
| 156 | Status: Works, some small gfx issues near the bottom |
| 157 | Config: Buttons |
| 158 | |
| 159 | |
| 160 | |
| 161 | Acetronic: (dumps are compatible) |
| 162 | ------------ |
| 163 | |
| 164 | * Shooting Gallery |
| 165 | Status: works but screen flickers |
| 166 | Config: Buttons |
| 167 | |
| 168 | * Planet Defender |
| 169 | Status: Works |
| 170 | Config: Paddle (NAC) |
| 171 | |
| 172 | * Laser Attack |
| 173 | Status: Works |
| 174 | Config: Buttons |
| 175 | |
| 176 | |
| 177 | |
| 178 | Public Domain: (written for emulators, may not work on real hardware) |
| 179 | --------------- |
| 180 | * Picture (no controls) - works |
| 181 | * Wincadia Stub (no controls) - works, small graphic error */ |
| 182 | |
| 183 | |
| 184 | |
| 185 | #include "emu.h" |
| 186 | #include "rom.h" |
| 187 | |
| 188 | |
| 189 | //------------------------------------------------- |
| 190 | // vc4000_rom_device - constructor |
| 191 | //------------------------------------------------- |
| 192 | |
| 193 | const device_type VC4000_ROM_STD = &device_creator<vc4000_rom_device>; |
| 194 | const device_type VC4000_ROM_RAM1K = &device_creator<vc4000_ram1k_device>; |
| 195 | const device_type VC4000_ROM_CHESS2 = &device_creator<vc4000_chess2_device>; |
| 196 | |
| 197 | |
| 198 | vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) |
| 199 | : device_t(mconfig, type, name, tag, owner, clock, shortname, source), |
| 200 | device_vc4000_cart_interface( mconfig, *this ) |
| 201 | { |
| 202 | } |
| 203 | |
| 204 | vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 205 | : device_t(mconfig, VC4000_ROM_STD, "VC 4000 Standard Carts", tag, owner, clock, "vc4000_rom", __FILE__), |
| 206 | device_vc4000_cart_interface( mconfig, *this ) |
| 207 | { |
| 208 | } |
| 209 | |
| 210 | vc4000_ram1k_device::vc4000_ram1k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 211 | : vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, "VC 4000 Carts w/1K RAM", tag, owner, clock, "vc4000_ram1k", __FILE__) |
| 212 | { |
| 213 | } |
| 214 | |
| 215 | vc4000_chess2_device::vc4000_chess2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 216 | : vc4000_rom_device(mconfig, VC4000_ROM_CHESS2, "VC 4000 Chess II Cart", tag, owner, clock, "vc4000_chess2", __FILE__) |
| 217 | { |
| 218 | } |
| 219 | |
| 220 | |
| 221 | /*------------------------------------------------- |
| 222 | mapper specific handlers |
| 223 | -------------------------------------------------*/ |
| 224 | |
| 225 | READ8_MEMBER(vc4000_rom_device::read_rom) |
| 226 | { |
| 227 | if (offset < m_rom_size) |
| 228 | return m_rom[offset]; |
| 229 | else |
| 230 | return 0xff; |
| 231 | } |
| 232 | |
| 233 | |
| 234 | READ8_MEMBER(vc4000_ram1k_device::read_ram) |
| 235 | { |
| 236 | return m_ram[offset & m_ram.count()]; |
| 237 | } |
| 238 | |
| 239 | WRITE8_MEMBER(vc4000_ram1k_device::write_ram) |
| 240 | { |
| 241 | m_ram[offset & m_ram.count()] = data; |
| 242 | } |
| 243 | |
| 244 | |
| 245 | READ8_MEMBER(vc4000_chess2_device::extra_rom) |
| 246 | { |
| 247 | if (offset < (m_rom_size - 0x2000)) |
| 248 | return m_rom[offset + 0x2000]; |
| 249 | else |
| 250 | return 0xff; |
| 251 | } |
| 252 | |
| 253 | READ8_MEMBER(vc4000_chess2_device::read_ram) |
| 254 | { |
| 255 | return m_ram[offset & m_ram.count()]; |
| 256 | } |
| 257 | |
| 258 | WRITE8_MEMBER(vc4000_chess2_device::write_ram) |
| 259 | { |
| 260 | m_ram[offset & m_ram.count()] = data; |
| 261 | } |
trunk/src/emu/bus/vc4000/slot.c
| r0 | r32505 | |
| 1 | /*********************************************************************************************************** |
| 2 | |
| 3 | Interton Electronic VC 4000 cart emulation |
| 4 | (through slot devices) |
| 5 | |
| 6 | ***********************************************************************************************************/ |
| 7 | |
| 8 | |
| 9 | #include "emu.h" |
| 10 | #include "slot.h" |
| 11 | |
| 12 | //************************************************************************** |
| 13 | // GLOBAL VARIABLES |
| 14 | //************************************************************************** |
| 15 | |
| 16 | const device_type VC4000_CART_SLOT = &device_creator<vc4000_cart_slot_device>; |
| 17 | |
| 18 | //************************************************************************** |
| 19 | // APF Cartridges Interface |
| 20 | //************************************************************************** |
| 21 | |
| 22 | //------------------------------------------------- |
| 23 | // device_vc4000_cart_interface - constructor |
| 24 | //------------------------------------------------- |
| 25 | |
| 26 | device_vc4000_cart_interface::device_vc4000_cart_interface(const machine_config &mconfig, device_t &device) |
| 27 | : device_slot_card_interface(mconfig, device), |
| 28 | m_rom(NULL), |
| 29 | m_rom_size(0) |
| 30 | { |
| 31 | } |
| 32 | |
| 33 | |
| 34 | //------------------------------------------------- |
| 35 | // ~device_vc4000_cart_interface - destructor |
| 36 | //------------------------------------------------- |
| 37 | |
| 38 | device_vc4000_cart_interface::~device_vc4000_cart_interface() |
| 39 | { |
| 40 | } |
| 41 | |
| 42 | //------------------------------------------------- |
| 43 | // rom_alloc - alloc the space for the cart |
| 44 | //------------------------------------------------- |
| 45 | |
| 46 | void device_vc4000_cart_interface::rom_alloc(UINT32 size, const char *tag) |
| 47 | { |
| 48 | if (m_rom == NULL) |
| 49 | { |
| 50 | astring tempstring(tag); |
| 51 | tempstring.cat(VC4000SLOT_ROM_REGION_TAG); |
| 52 | m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base(); |
| 53 | m_rom_size = size; |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | |
| 58 | //------------------------------------------------- |
| 59 | // ram_alloc - alloc the space for the ram |
| 60 | //------------------------------------------------- |
| 61 | |
| 62 | void device_vc4000_cart_interface::ram_alloc(UINT32 size) |
| 63 | { |
| 64 | m_ram.resize(size); |
| 65 | } |
| 66 | |
| 67 | |
| 68 | //************************************************************************** |
| 69 | // LIVE DEVICE |
| 70 | //************************************************************************** |
| 71 | |
| 72 | //------------------------------------------------- |
| 73 | // vc4000_cart_slot_device - constructor |
| 74 | //------------------------------------------------- |
| 75 | vc4000_cart_slot_device::vc4000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 76 | device_t(mconfig, VC4000_CART_SLOT, "Interton VC 4000 Cartridge Slot", tag, owner, clock, "vc4000_cart_slot", __FILE__), |
| 77 | device_image_interface(mconfig, *this), |
| 78 | device_slot_interface(mconfig, *this), |
| 79 | m_type(VC4000_STD) |
| 80 | { |
| 81 | } |
| 82 | |
| 83 | |
| 84 | //------------------------------------------------- |
| 85 | // vc4000_cart_slot_device - destructor |
| 86 | //------------------------------------------------- |
| 87 | |
| 88 | vc4000_cart_slot_device::~vc4000_cart_slot_device() |
| 89 | { |
| 90 | } |
| 91 | |
| 92 | //------------------------------------------------- |
| 93 | // device_start - device-specific startup |
| 94 | //------------------------------------------------- |
| 95 | |
| 96 | void vc4000_cart_slot_device::device_start() |
| 97 | { |
| 98 | m_cart = dynamic_cast<device_vc4000_cart_interface *>(get_card_device()); |
| 99 | } |
| 100 | |
| 101 | //------------------------------------------------- |
| 102 | // device_config_complete - perform any |
| 103 | // operations now that the configuration is |
| 104 | // complete |
| 105 | //------------------------------------------------- |
| 106 | |
| 107 | void vc4000_cart_slot_device::device_config_complete() |
| 108 | { |
| 109 | // set brief and instance name |
| 110 | update_names(); |
| 111 | } |
| 112 | |
| 113 | |
| 114 | //------------------------------------------------- |
| 115 | // APF PCB |
| 116 | //------------------------------------------------- |
| 117 | |
| 118 | struct vc4000_slot |
| 119 | { |
| 120 | int pcb_id; |
| 121 | const char *slot_option; |
| 122 | }; |
| 123 | |
| 124 | // Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it |
| 125 | static const vc4000_slot slot_list[] = |
| 126 | { |
| 127 | { VC4000_STD, "std" }, |
| 128 | { VC4000_RAM1K, "ram1k" }, |
| 129 | { VC4000_CHESS2, "chess2" } |
| 130 | }; |
| 131 | |
| 132 | static int vc4000_get_pcb_id(const char *slot) |
| 133 | { |
| 134 | for (int i = 0; i < ARRAY_LENGTH(slot_list); i++) |
| 135 | { |
| 136 | if (!core_stricmp(slot_list[i].slot_option, slot)) |
| 137 | return slot_list[i].pcb_id; |
| 138 | } |
| 139 | |
| 140 | return 0; |
| 141 | } |
| 142 | |
| 143 | static const char *vc4000_get_slot(int type) |
| 144 | { |
| 145 | for (int i = 0; i < ARRAY_LENGTH(slot_list); i++) |
| 146 | { |
| 147 | if (slot_list[i].pcb_id == type) |
| 148 | return slot_list[i].slot_option; |
| 149 | } |
| 150 | |
| 151 | return "std"; |
| 152 | } |
| 153 | |
| 154 | |
| 155 | /*------------------------------------------------- |
| 156 | call load |
| 157 | -------------------------------------------------*/ |
| 158 | |
| 159 | bool vc4000_cart_slot_device::call_load() |
| 160 | { |
| 161 | if (m_cart) |
| 162 | { |
| 163 | UINT32 size = (software_entry() == NULL) ? length() : get_software_region_length("rom"); |
| 164 | |
| 165 | if (size > 0x1800) |
| 166 | { |
| 167 | seterror(IMAGE_ERROR_UNSPECIFIED, "Image extends beyond the expected size for a VC4000 cart"); |
| 168 | return IMAGE_INIT_FAIL; |
| 169 | } |
| 170 | |
| 171 | m_cart->rom_alloc(size, tag()); |
| 172 | |
| 173 | if (software_entry() == NULL) |
| 174 | fread(m_cart->get_rom_base(), size); |
| 175 | else |
| 176 | memcpy(m_cart->get_rom_base(), get_software_region("rom"), size); |
| 177 | |
| 178 | if (software_entry() == NULL) |
| 179 | { |
| 180 | m_type = VC4000_STD; |
| 181 | // attempt to identify the non-standard types |
| 182 | if (size > 0x1000) // 6k rom + 1k ram - Chess2 only |
| 183 | m_type = VC4000_CHESS2; |
| 184 | else if (size > 0x0800) // some 4k roms have 1k of mirrored ram |
| 185 | m_type = VC4000_RAM1K; |
| 186 | |
| 187 | if (m_type == VC4000_RAM1K || m_type == VC4000_CHESS2) |
| 188 | m_cart->ram_alloc(0x400); |
| 189 | } |
| 190 | else |
| 191 | { |
| 192 | const char *pcb_name = get_feature("slot"); |
| 193 | if (pcb_name) |
| 194 | m_type = vc4000_get_pcb_id(pcb_name); |
| 195 | |
| 196 | if (get_software_region("ram")) |
| 197 | m_cart->ram_alloc(get_software_region_length("ram")); |
| 198 | } |
| 199 | |
| 200 | //printf("Type: %s\n", vc4000_get_slot(m_type)); |
| 201 | |
| 202 | return IMAGE_INIT_PASS; |
| 203 | } |
| 204 | |
| 205 | return IMAGE_INIT_PASS; |
| 206 | } |
| 207 | |
| 208 | |
| 209 | /*------------------------------------------------- |
| 210 | call softlist load |
| 211 | -------------------------------------------------*/ |
| 212 | |
| 213 | bool vc4000_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) |
| 214 | { |
| 215 | load_software_part_region(*this, swlist, swname, start_entry); |
| 216 | return TRUE; |
| 217 | } |
| 218 | |
| 219 | |
| 220 | /*------------------------------------------------- |
| 221 | get default card software |
| 222 | -------------------------------------------------*/ |
| 223 | |
| 224 | void vc4000_cart_slot_device::get_default_card_software(astring &result) |
| 225 | { |
| 226 | if (open_image_file(mconfig().options())) |
| 227 | { |
| 228 | const char *slot_string = "std"; |
| 229 | UINT32 size = core_fsize(m_file); |
| 230 | int type = VC4000_STD; |
| 231 | |
| 232 | // attempt to identify the non-standard types |
| 233 | if (size > 0x1000) // 6k rom + 1k ram - Chess2 only |
| 234 | type = VC4000_CHESS2; |
| 235 | else if (size > 0x0800) // some 4k roms have 1k of mirrored ram |
| 236 | type = VC4000_RAM1K; |
| 237 | |
| 238 | slot_string = vc4000_get_slot(type); |
| 239 | |
| 240 | //printf("type: %s\n", slot_string); |
| 241 | clear(); |
| 242 | |
| 243 | result.cpy(slot_string); |
| 244 | return; |
| 245 | } |
| 246 | |
| 247 | software_get_default_slot(result, "std"); |
| 248 | } |
| 249 | |
| 250 | /*------------------------------------------------- |
| 251 | read |
| 252 | -------------------------------------------------*/ |
| 253 | |
| 254 | READ8_MEMBER(vc4000_cart_slot_device::read_rom) |
| 255 | { |
| 256 | if (m_cart) |
| 257 | return m_cart->read_rom(space, offset); |
| 258 | else |
| 259 | return 0xff; |
| 260 | } |
| 261 | |
| 262 | /*------------------------------------------------- |
| 263 | read |
| 264 | -------------------------------------------------*/ |
| 265 | |
| 266 | READ8_MEMBER(vc4000_cart_slot_device::extra_rom) |
| 267 | { |
| 268 | if (m_cart) |
| 269 | return m_cart->extra_rom(space, offset); |
| 270 | else |
| 271 | return 0xff; |
| 272 | } |
| 273 | |
| 274 | /*------------------------------------------------- |
| 275 | read |
| 276 | -------------------------------------------------*/ |
| 277 | |
| 278 | READ8_MEMBER(vc4000_cart_slot_device::read_ram) |
| 279 | { |
| 280 | if (m_cart) |
| 281 | return m_cart->read_ram(space, offset); |
| 282 | else |
| 283 | return 0xff; |
| 284 | } |
| 285 | |
| 286 | /*------------------------------------------------- |
| 287 | write |
| 288 | -------------------------------------------------*/ |
| 289 | |
| 290 | WRITE8_MEMBER(vc4000_cart_slot_device::write_ram) |
| 291 | { |
| 292 | if (m_cart) |
| 293 | m_cart->write_ram(space, offset, data); |
| 294 | } |
| 295 | |
| 296 | |
trunk/src/emu/bus/arcadia/slot.c
| r0 | r32505 | |
| 1 | /*********************************************************************************************************** |
| 2 | |
| 3 | Emerson Arcadia 2001 (and clones) cart emulation |
| 4 | (through slot devices) |
| 5 | |
| 6 | ***********************************************************************************************************/ |
| 7 | |
| 8 | |
| 9 | #include "emu.h" |
| 10 | #include "slot.h" |
| 11 | |
| 12 | //************************************************************************** |
| 13 | // GLOBAL VARIABLES |
| 14 | //************************************************************************** |
| 15 | |
| 16 | const device_type EA2001_CART_SLOT = &device_creator<arcadia_cart_slot_device>; |
| 17 | |
| 18 | //************************************************************************** |
| 19 | // ARCADIA Cartridges Interface |
| 20 | //************************************************************************** |
| 21 | |
| 22 | //------------------------------------------------- |
| 23 | // device_arcadia_cart_interface - constructor |
| 24 | //------------------------------------------------- |
| 25 | |
| 26 | device_arcadia_cart_interface::device_arcadia_cart_interface(const machine_config &mconfig, device_t &device) |
| 27 | : device_slot_card_interface(mconfig, device), |
| 28 | m_rom(NULL), |
| 29 | m_rom_size(0) |
| 30 | { |
| 31 | } |
| 32 | |
| 33 | |
| 34 | //------------------------------------------------- |
| 35 | // ~device_arcadia_cart_interface - destructor |
| 36 | //------------------------------------------------- |
| 37 | |
| 38 | device_arcadia_cart_interface::~device_arcadia_cart_interface() |
| 39 | { |
| 40 | } |
| 41 | |
| 42 | //------------------------------------------------- |
| 43 | // rom_alloc - alloc the space for the cart |
| 44 | //------------------------------------------------- |
| 45 | |
| 46 | void device_arcadia_cart_interface::rom_alloc(UINT32 size, const char *tag) |
| 47 | { |
| 48 | if (m_rom == NULL) |
| 49 | { |
| 50 | astring tempstring(tag); |
| 51 | tempstring.cat(EA2001SLOT_ROM_REGION_TAG); |
| 52 | m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base(); |
| 53 | m_rom_size = size; |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | |
| 58 | //************************************************************************** |
| 59 | // LIVE DEVICE |
| 60 | //************************************************************************** |
| 61 | |
| 62 | //------------------------------------------------- |
| 63 | // arcadia_cart_slot_device - constructor |
| 64 | //------------------------------------------------- |
| 65 | arcadia_cart_slot_device::arcadia_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 66 | device_t(mconfig, EA2001_CART_SLOT, "Emerson Arcadia Cartridge Slot", tag, owner, clock, "arcadia_cart_slot", __FILE__), |
| 67 | device_image_interface(mconfig, *this), |
| 68 | device_slot_interface(mconfig, *this), |
| 69 | m_type(ARCADIA_STD) |
| 70 | { |
| 71 | } |
| 72 | |
| 73 | |
| 74 | //------------------------------------------------- |
| 75 | // arcadia_cart_slot_device - destructor |
| 76 | //------------------------------------------------- |
| 77 | |
| 78 | arcadia_cart_slot_device::~arcadia_cart_slot_device() |
| 79 | { |
| 80 | } |
| 81 | |
| 82 | //------------------------------------------------- |
| 83 | // device_start - device-specific startup |
| 84 | //------------------------------------------------- |
| 85 | |
| 86 | void arcadia_cart_slot_device::device_start() |
| 87 | { |
| 88 | m_cart = dynamic_cast<device_arcadia_cart_interface *>(get_card_device()); |
| 89 | } |
| 90 | |
| 91 | //------------------------------------------------- |
| 92 | // device_config_complete - perform any |
| 93 | // operations now that the configuration is |
| 94 | // complete |
| 95 | //------------------------------------------------- |
| 96 | |
| 97 | void arcadia_cart_slot_device::device_config_complete() |
| 98 | { |
| 99 | // set brief and instance name |
| 100 | update_names(); |
| 101 | } |
| 102 | |
| 103 | |
| 104 | //------------------------------------------------- |
| 105 | // ARCADIA PCB |
| 106 | //------------------------------------------------- |
| 107 | |
| 108 | struct arcadia_slot |
| 109 | { |
| 110 | int pcb_id; |
| 111 | const char *slot_option; |
| 112 | }; |
| 113 | |
| 114 | // Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it |
| 115 | static const arcadia_slot slot_list[] = |
| 116 | { |
| 117 | { ARCADIA_STD, "std" }, |
| 118 | { ARCADIA_GOLF, "golf" } |
| 119 | }; |
| 120 | |
| 121 | static int arcadia_get_pcb_id(const char *slot) |
| 122 | { |
| 123 | for (int i = 0; i < ARRAY_LENGTH(slot_list); i++) |
| 124 | { |
| 125 | if (!core_stricmp(slot_list[i].slot_option, slot)) |
| 126 | return slot_list[i].pcb_id; |
| 127 | } |
| 128 | |
| 129 | return 0; |
| 130 | } |
| 131 | |
| 132 | static const char *arcadia_get_slot(int type) |
| 133 | { |
| 134 | for (int i = 0; i < ARRAY_LENGTH(slot_list); i++) |
| 135 | { |
| 136 | if (slot_list[i].pcb_id == type) |
| 137 | return slot_list[i].slot_option; |
| 138 | } |
| 139 | |
| 140 | return "std"; |
| 141 | } |
| 142 | |
| 143 | |
| 144 | /*------------------------------------------------- |
| 145 | call load |
| 146 | -------------------------------------------------*/ |
| 147 | |
| 148 | bool arcadia_cart_slot_device::call_load() |
| 149 | { |
| 150 | if (m_cart) |
| 151 | { |
| 152 | UINT32 len = (software_entry() == NULL) ? length() : get_software_region_length("rom"); |
| 153 | |
| 154 | m_cart->rom_alloc(len, tag()); |
| 155 | |
| 156 | if (software_entry() == NULL) |
| 157 | fread(m_cart->get_rom_base(), len); |
| 158 | else |
| 159 | memcpy(m_cart->get_rom_base(), get_software_region("rom"), len); |
| 160 | |
| 161 | if (software_entry() == NULL) |
| 162 | { |
| 163 | // we need to identify Golf! |
| 164 | m_type = ARCADIA_STD; |
| 165 | |
| 166 | |
| 167 | // the patch below is kept in case it could be used to identify golf cart from fullpath |
| 168 | #if 0 |
| 169 | // this is a testpatch for the golf cartridge |
| 170 | // so to make it work on a standard arcadia 2001 |
| 171 | // cart (i.e. mapping the hi 2K to $2000) |
| 172 | // not enough yet (some pointers stored as data?) |
| 173 | patch[]= { |
| 174 | // addr, orig. value, patched value |
| 175 | { 0x0077, 0x40, 0x20 }, |
| 176 | { 0x011e, 0x40, 0x20 }, |
| 177 | { 0x0348, 0x40, 0x20 }, |
| 178 | { 0x03be, 0x40, 0x20 }, |
| 179 | { 0x04ce, 0x40, 0x20 }, |
| 180 | { 0x04da, 0x40, 0x20 }, |
| 181 | { 0x0562, 0x42, 0x22 }, |
| 182 | { 0x0617, 0x40, 0x20 }, |
| 183 | { 0x0822, 0x40, 0x20 }, |
| 184 | { 0x095e, 0x42, 0x22 }, |
| 185 | { 0x09d3, 0x42, 0x22 }, |
| 186 | { 0x0bb0, 0x42, 0x22 }, |
| 187 | { 0x0efb, 0x40, 0x20 }, |
| 188 | { 0x0ec1, 0x43, 0x23 }, |
| 189 | { 0x0f00, 0x40, 0x20 }, |
| 190 | { 0x0f12, 0x40, 0x20 }, |
| 191 | { 0x0ff5, 0x43, 0x23 }, |
| 192 | { 0x0ff7, 0x41, 0x21 }, |
| 193 | { 0x0ff9, 0x40, 0x20 }, |
| 194 | { 0x0ffb, 0x41, 0x21 }, |
| 195 | { 0x20ec, 0x42, 0x22 } |
| 196 | }; |
| 197 | #endif |
| 198 | |
| 199 | } |
| 200 | else |
| 201 | { |
| 202 | const char *pcb_name = get_feature("slot"); |
| 203 | if (pcb_name) |
| 204 | m_type = arcadia_get_pcb_id(pcb_name); |
| 205 | } |
| 206 | |
| 207 | printf("Type: %s\n", arcadia_get_slot(m_type)); |
| 208 | |
| 209 | return IMAGE_INIT_PASS; |
| 210 | } |
| 211 | |
| 212 | return IMAGE_INIT_PASS; |
| 213 | } |
| 214 | |
| 215 | |
| 216 | /*------------------------------------------------- |
| 217 | call softlist load |
| 218 | -------------------------------------------------*/ |
| 219 | |
| 220 | bool arcadia_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) |
| 221 | { |
| 222 | load_software_part_region(*this, swlist, swname, start_entry); |
| 223 | return TRUE; |
| 224 | } |
| 225 | |
| 226 | |
| 227 | |
| 228 | /*------------------------------------------------- |
| 229 | get default card software |
| 230 | -------------------------------------------------*/ |
| 231 | |
| 232 | void arcadia_cart_slot_device::get_default_card_software(astring &result) |
| 233 | { |
| 234 | software_get_default_slot(result, "std"); |
| 235 | } |
| 236 | |
| 237 | /*------------------------------------------------- |
| 238 | read |
| 239 | -------------------------------------------------*/ |
| 240 | |
| 241 | READ8_MEMBER(arcadia_cart_slot_device::read_rom) |
| 242 | { |
| 243 | if (m_cart) |
| 244 | return m_cart->read_rom(space, offset); |
| 245 | else |
| 246 | return 0xff; |
| 247 | } |
| 248 | |
| 249 | /*------------------------------------------------- |
| 250 | write |
| 251 | -------------------------------------------------*/ |
| 252 | |
| 253 | READ8_MEMBER(arcadia_cart_slot_device::extra_rom) |
| 254 | { |
| 255 | if (m_cart) |
| 256 | return m_cart->extra_rom(space, offset); |
| 257 | else |
| 258 | return 0xff; |
| 259 | } |
| 260 | |
trunk/src/mess/drivers/vc4000.c
| r32504 | r32505 | |
| 45 | 45 | The Cartridge is called Hobby Module and the Rom is probably the same as used in |
| 46 | 46 | elektor TV Game Computer which is a kind of developer machine for the VC4000. |
| 47 | 47 | |
| 48 | | Go to the bottom to see the game list and emulation status of each. |
| 49 | | |
| 50 | 48 | ****************************************************************************** |
| 51 | 49 | |
| 52 | 50 | Elektor TV Games Computer |
| r32504 | r32505 | |
| 360 | 358 | palette.set_pen_colors(0, vc4000_palette, ARRAY_LENGTH(vc4000_palette)); |
| 361 | 359 | } |
| 362 | 360 | |
| 363 | | DEVICE_IMAGE_LOAD_MEMBER( vc4000_state, vc4000_cart ) |
| 364 | | { |
| 365 | | address_space &memspace = m_maincpu->space(AS_PROGRAM); |
| 366 | | UINT32 size; |
| 367 | 361 | |
| 368 | | if (image.software_entry() == NULL) |
| 369 | | size = image.length(); |
| 370 | | else |
| 371 | | size = image.get_software_region_length("rom"); |
| 372 | | |
| 373 | | if (size > 0x1600) |
| 374 | | size = 0x1600; |
| 375 | | |
| 376 | | if (size > 0x1000) /* 6k rom + 1k ram - Chess2 only */ |
| 362 | void vc4000_state::machine_start() |
| 363 | { |
| 364 | if (m_cart->exists()) |
| 377 | 365 | { |
| 378 | | memspace.install_read_bank(0x0800, 0x15ff, "bank1"); /* extra rom */ |
| 379 | | membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000); |
| 380 | | |
| 381 | | memspace.install_readwrite_bank(0x1800, 0x1bff, "bank2"); /* ram */ |
| 382 | | membank("bank2")->set_base(memregion("maincpu")->base() + 0x1800); |
| 366 | // extra handler |
| 367 | switch (m_cart->get_type()) |
| 368 | { |
| 369 | case VC4000_STD: |
| 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 | break; |
| 372 | case VC4000_RAM1K: |
| 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 | 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)); |
| 375 | break; |
| 376 | case VC4000_CHESS2: |
| 377 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x15ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart)); |
| 378 | m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1800, 0x1bff, 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)); |
| 379 | break; |
| 380 | // undumped Radofin Hobby Module |
| 381 | // case VC4000_HOBBY: |
| 382 | // 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)); |
| 383 | // m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0800, 0x0fff, 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)); |
| 384 | // break; |
| 385 | } |
| 386 | |
| 387 | m_cart->save_ram(); |
| 383 | 388 | } |
| 384 | | else if (size > 0x0800) /* some 4k roms have 1k of mirrored ram */ |
| 385 | | { |
| 386 | | memspace.install_read_bank(0x0800, 0x0fff, "bank1"); /* extra rom */ |
| 387 | | membank("bank1")->set_base(memregion("maincpu")->base() + 0x0800); |
| 389 | } |
| 388 | 390 | |
| 389 | | memspace.install_readwrite_bank(0x1000, 0x15ff, 0, 0x800, "bank2"); /* ram */ |
| 390 | | membank("bank2")->set_base(memregion("maincpu")->base() + 0x1000); |
| 391 | | } |
| 392 | | else if (size == 0x0800) /* 2k roms + 2k ram - Hobby Module(Radofin) and elektor TVGC*/ |
| 391 | |
| 392 | QUICKLOAD_LOAD_MEMBER( vc4000_state,vc4000) |
| 393 | { |
| 394 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 395 | int i; |
| 396 | int exec_addr; |
| 397 | int quick_length; |
| 398 | dynamic_buffer quick_data; |
| 399 | int read_; |
| 400 | int result = IMAGE_INIT_FAIL; |
| 401 | |
| 402 | quick_length = image.length(); |
| 403 | quick_data.resize(quick_length); |
| 404 | read_ = image.fread( quick_data, quick_length); |
| 405 | if (read_ != quick_length) |
| 393 | 406 | { |
| 394 | | memspace.install_readwrite_bank(0x0800, 0x0fff, "bank1"); /* ram */ |
| 395 | | membank("bank1")->set_base(memregion("maincpu")->base() + 0x0800); |
| 407 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Cannot read the file"); |
| 408 | image.message(" Cannot read the file"); |
| 396 | 409 | } |
| 397 | | |
| 398 | | if (size > 0) |
| 410 | else |
| 399 | 411 | { |
| 400 | | if (image.software_entry() == NULL) |
| 412 | if (core_stricmp(image.filetype(), "tvc")==0) |
| 401 | 413 | { |
| 402 | | if (image.fread(memregion("maincpu")->base(), size) != size) |
| 403 | | return IMAGE_INIT_FAIL; |
| 414 | if (quick_data[0] != 2) |
| 415 | { |
| 416 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Invalid header"); |
| 417 | image.message(" Invalid header"); |
| 418 | } |
| 419 | else |
| 420 | { |
| 421 | int quick_addr = quick_data[1] * 256 + quick_data[2]; |
| 422 | exec_addr = quick_data[3] * 256 + quick_data[4]; |
| 423 | |
| 424 | if (quick_length < 0x5) |
| 425 | { |
| 426 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too short"); |
| 427 | image.message(" File too short"); |
| 428 | } |
| 429 | else |
| 430 | if ((quick_length + quick_addr - 5) > 0x1600) |
| 431 | { |
| 432 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too long"); |
| 433 | image.message(" File too long"); |
| 434 | } |
| 435 | else |
| 436 | { |
| 437 | space.write_byte(0x08be, quick_data[3]); |
| 438 | space.write_byte(0x08bf, quick_data[4]); |
| 439 | |
| 440 | for (i = 5; i < quick_length; i++) |
| 441 | space.write_byte(i - 5 + quick_addr, quick_data[i]); |
| 442 | |
| 443 | /* display a message about the loaded quickload */ |
| 444 | image.message(" Quickload: size=%04X : start=%04X : end=%04X : exec=%04X",quick_length-5,quick_addr,quick_addr+quick_length-5,exec_addr); |
| 445 | |
| 446 | // Start the quickload |
| 447 | m_maincpu->set_state_int(S2650_PC, exec_addr); |
| 448 | result = IMAGE_INIT_PASS; |
| 449 | } |
| 450 | } |
| 404 | 451 | } |
| 405 | 452 | else |
| 406 | | memcpy(memregion("maincpu")->base(), image.get_software_region("rom"), size); |
| 453 | if (core_stricmp(image.filetype(), "pgm")==0) |
| 454 | { |
| 455 | if (quick_data[0] != 0) |
| 456 | { |
| 457 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Invalid header"); |
| 458 | image.message(" Invalid header"); |
| 459 | } |
| 460 | else |
| 461 | { |
| 462 | exec_addr = quick_data[1] * 256 + quick_data[2]; |
| 463 | |
| 464 | if (exec_addr >= quick_length) |
| 465 | { |
| 466 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Exec address beyond end of file"); |
| 467 | image.message(" Exec address beyond end of file"); |
| 468 | } |
| 469 | else |
| 470 | if (quick_length < 0x904) |
| 471 | { |
| 472 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too short"); |
| 473 | image.message(" File too short"); |
| 474 | } |
| 475 | else |
| 476 | if (quick_length > 0x2000) |
| 477 | { |
| 478 | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too long"); |
| 479 | image.message(" File too long"); |
| 480 | } |
| 481 | else |
| 482 | { |
| 483 | space.write_byte(0x08be, quick_data[1]); |
| 484 | space.write_byte(0x08bf, quick_data[2]); |
| 485 | |
| 486 | // load to 08C0-15FF (standard ram + extra) |
| 487 | int read_ = 0x1600; |
| 488 | if (quick_length < 0x1600) |
| 489 | read_ = quick_length; |
| 490 | for (i = 0x8c0; i < read_; i++) |
| 491 | space.write_byte(i, quick_data[i]); |
| 492 | |
| 493 | // load to 1F50-1FAF (PVI regs) |
| 494 | read_ = 0x1FB0; |
| 495 | if (quick_length < 0x1FB0) |
| 496 | read_ = quick_length; |
| 497 | if (quick_length > 0x1FC0) |
| 498 | for (i = 0x1F50; i < read_; i++) |
| 499 | vc4000_video_w(space, i-0x1f00, quick_data[i]); |
| 500 | |
| 501 | /* display a message about the loaded quickload */ |
| 502 | image.message(" Quickload: size=%04X : exec=%04X",quick_length,exec_addr); |
| 503 | |
| 504 | // Start the quickload |
| 505 | m_maincpu->set_state_int(S2650_PC, exec_addr); |
| 506 | result = IMAGE_INIT_PASS; |
| 507 | } |
| 508 | } |
| 509 | } |
| 407 | 510 | } |
| 408 | | |
| 409 | | return IMAGE_INIT_PASS; |
| 511 | return result; |
| 410 | 512 | } |
| 411 | 513 | |
| 514 | static SLOT_INTERFACE_START(vc4000_cart) |
| 515 | SLOT_INTERFACE_INTERNAL("std", VC4000_ROM_STD) |
| 516 | SLOT_INTERFACE_INTERNAL("ram1k", VC4000_ROM_RAM1K) |
| 517 | SLOT_INTERFACE_INTERNAL("chess2", VC4000_ROM_CHESS2) |
| 518 | SLOT_INTERFACE_END |
| 519 | |
| 520 | |
| 412 | 521 | static MACHINE_CONFIG_START( vc4000, vc4000_state ) |
| 413 | 522 | /* basic machine hardware */ |
| 414 | 523 | // MCFG_CPU_ADD("maincpu", S2650, 865000) /* 3550000/4, 3580000/3, 4430000/3 */ |
| r32504 | r32505 | |
| 437 | 546 | MCFG_QUICKLOAD_ADD("quickload", vc4000_state, vc4000, "pgm,tvc", 0) |
| 438 | 547 | |
| 439 | 548 | /* cartridge */ |
| 440 | | MCFG_CARTSLOT_ADD("cart") |
| 441 | | MCFG_CARTSLOT_EXTENSION_LIST("rom,bin") |
| 442 | | MCFG_CARTSLOT_NOT_MANDATORY |
| 443 | | MCFG_CARTSLOT_INTERFACE("vc4000_cart") |
| 444 | | MCFG_CARTSLOT_LOAD(vc4000_state,vc4000_cart) |
| 549 | MCFG_VC4000_CARTRIDGE_ADD("cartslot", vc4000_cart, NULL) |
| 445 | 550 | |
| 446 | 551 | /* software lists */ |
| 447 | 552 | MCFG_SOFTWARE_LIST_ADD("cart_list","vc4000") |
| r32504 | r32505 | |
| 552 | 657 | ROM_LOAD( "elektor.rom", 0x0000, 0x0800, CRC(e6ef1ee1) SHA1(6823b5a22582344016415f2a37f9f3a2dc75d2a7)) |
| 553 | 658 | ROM_END |
| 554 | 659 | |
| 555 | | QUICKLOAD_LOAD_MEMBER( vc4000_state,vc4000) |
| 556 | | { |
| 557 | | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 558 | | int i; |
| 559 | | int exec_addr; |
| 560 | | int quick_length; |
| 561 | | dynamic_buffer quick_data; |
| 562 | | int read_; |
| 563 | | int result = IMAGE_INIT_FAIL; |
| 564 | 660 | |
| 565 | | quick_length = image.length(); |
| 566 | | quick_data.resize(quick_length); |
| 567 | | read_ = image.fread( quick_data, quick_length); |
| 568 | | if (read_ != quick_length) |
| 569 | | { |
| 570 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Cannot read the file"); |
| 571 | | image.message(" Cannot read the file"); |
| 572 | | } |
| 573 | | else |
| 574 | | { |
| 575 | | if (core_stricmp(image.filetype(), "tvc")==0) |
| 576 | | { |
| 577 | | if (quick_data[0] != 2) |
| 578 | | { |
| 579 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Invalid header"); |
| 580 | | image.message(" Invalid header"); |
| 581 | | } |
| 582 | | else |
| 583 | | { |
| 584 | | int quick_addr = quick_data[1] * 256 + quick_data[2]; |
| 585 | | exec_addr = quick_data[3] * 256 + quick_data[4]; |
| 586 | 661 | |
| 587 | | if (quick_length < 0x5) |
| 588 | | { |
| 589 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too short"); |
| 590 | | image.message(" File too short"); |
| 591 | | } |
| 592 | | else |
| 593 | | if ((quick_length + quick_addr - 5) > 0x1600) |
| 594 | | { |
| 595 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too long"); |
| 596 | | image.message(" File too long"); |
| 597 | | } |
| 598 | | else |
| 599 | | { |
| 600 | | space.write_byte(0x08be, quick_data[3]); |
| 601 | | space.write_byte(0x08bf, quick_data[4]); |
| 602 | | |
| 603 | | for (i = 5; i < quick_length; i++) |
| 604 | | space.write_byte(i - 5 + quick_addr, quick_data[i]); |
| 605 | | |
| 606 | | /* display a message about the loaded quickload */ |
| 607 | | image.message(" Quickload: size=%04X : start=%04X : end=%04X : exec=%04X",quick_length-5,quick_addr,quick_addr+quick_length-5,exec_addr); |
| 608 | | |
| 609 | | // Start the quickload |
| 610 | | m_maincpu->set_state_int(S2650_PC, exec_addr); |
| 611 | | result = IMAGE_INIT_PASS; |
| 612 | | } |
| 613 | | } |
| 614 | | } |
| 615 | | else |
| 616 | | if (core_stricmp(image.filetype(), "pgm")==0) |
| 617 | | { |
| 618 | | if (quick_data[0] != 0) |
| 619 | | { |
| 620 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Invalid header"); |
| 621 | | image.message(" Invalid header"); |
| 622 | | } |
| 623 | | else |
| 624 | | { |
| 625 | | exec_addr = quick_data[1] * 256 + quick_data[2]; |
| 626 | | |
| 627 | | if (exec_addr >= quick_length) |
| 628 | | { |
| 629 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Exec address beyond end of file"); |
| 630 | | image.message(" Exec address beyond end of file"); |
| 631 | | } |
| 632 | | else |
| 633 | | if (quick_length < 0x904) |
| 634 | | { |
| 635 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too short"); |
| 636 | | image.message(" File too short"); |
| 637 | | } |
| 638 | | else |
| 639 | | if (quick_length > 0x2000) |
| 640 | | { |
| 641 | | image.seterror(IMAGE_ERROR_INVALIDIMAGE, "File too long"); |
| 642 | | image.message(" File too long"); |
| 643 | | } |
| 644 | | else |
| 645 | | { |
| 646 | | space.write_byte(0x08be, quick_data[1]); |
| 647 | | space.write_byte(0x08bf, quick_data[2]); |
| 648 | | |
| 649 | | // load to 08C0-15FF (standard ram + extra) |
| 650 | | int read_ = 0x1600; |
| 651 | | if (quick_length < 0x1600) |
| 652 | | read_ = quick_length; |
| 653 | | for (i = 0x8c0; i < read_; i++) |
| 654 | | space.write_byte(i, quick_data[i]); |
| 655 | | |
| 656 | | // load to 1F50-1FAF (PVI regs) |
| 657 | | read_ = 0x1FB0; |
| 658 | | if (quick_length < 0x1FB0) |
| 659 | | read_ = quick_length; |
| 660 | | if (quick_length > 0x1FC0) |
| 661 | | for (i = 0x1F50; i < read_; i++) |
| 662 | | vc4000_video_w(space, i-0x1f00, quick_data[i]); |
| 663 | | |
| 664 | | /* display a message about the loaded quickload */ |
| 665 | | image.message(" Quickload: size=%04X : exec=%04X",quick_length,exec_addr); |
| 666 | | |
| 667 | | // Start the quickload |
| 668 | | m_maincpu->set_state_int(S2650_PC, exec_addr); |
| 669 | | result = IMAGE_INIT_PASS; |
| 670 | | } |
| 671 | | } |
| 672 | | } |
| 673 | | } |
| 674 | | return result; |
| 675 | | } |
| 676 | | |
| 677 | | |
| 678 | 662 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ |
| 679 | | CONS(1978, vc4000, 0, 0, vc4000, vc4000, driver_device, 0, "Interton", "Intertion Electronic VC 4000", GAME_IMPERFECT_GRAPHICS ) /* Germany, Austria, UK, Australia */ |
| 663 | CONS(1978, vc4000, 0, 0, vc4000, vc4000, driver_device, 0, "Interton", "Interton Electronic VC 4000", GAME_IMPERFECT_GRAPHICS ) /* Germany, Austria, UK, Australia */ |
| 680 | 664 | CONS(1979, spc4000, vc4000, 0, vc4000, vc4000, driver_device, 0, "Grundig", "Super Play Computer 4000", GAME_IMPERFECT_GRAPHICS ) /* Germany, Austria */ |
| 681 | 665 | CONS(1979, cx3000tc, vc4000, 0, vc4000, vc4000, driver_device, 0, "Palson", "CX 3000 Tele Computer", GAME_IMPERFECT_GRAPHICS ) /* Spain */ |
| 682 | 666 | CONS(1979, tvc4000, vc4000, 0, vc4000, vc4000, driver_device, 0, "Koerting", "TVC-4000", GAME_IMPERFECT_GRAPHICS ) /* Argentina */ |
| r32504 | r32505 | |
| 700 | 684 | CONS(1979, oc2000, krvnjvtv, 0, vc4000, vc4000, driver_device, 0, "SOE", "OC-2000", GAME_IMPERFECT_GRAPHICS ) /* France */ |
| 701 | 685 | CONS(1980, mpt05, 0, vc4000, vc4000, vc4000, driver_device, 0, "ITMC", "MPT-05", GAME_IMPERFECT_GRAPHICS ) /* France */ |
| 702 | 686 | CONS(1979, elektor, 0, 0, elektor, elektor, driver_device, 0, "Elektor", "Elektor TV Games Computer", GAME_IMPERFECT_GRAPHICS ) |
| 703 | | |
| 704 | | /* Game List and Emulation Status |
| 705 | | |
| 706 | | When you load a game it will normally appear to be unresponsive. Most carts contain a number of variants |
| 707 | | of each game (e.g. Difficulty, Player1 vs Player2 or Player1 vs Computer, etc). |
| 708 | | |
| 709 | | Press F2 (if needed) to select which game variant you would like to play. The variant number will increment |
| 710 | | on-screen. When you've made your choice, press F1 to start. The main keys are unlabelled, because an overlay |
| 711 | | is provided with each cart. See below for a guide. You need to read the instructions that come with each game. |
| 712 | | |
| 713 | | In some games, the joystick is used like 4 buttons, and other games like a paddle. The two modes are |
| 714 | | incompatible when using a keyboard. Therefore (in the emulation) a config dipswitch is used. The preferred |
| 715 | | setting is listed below. |
| 716 | | |
| 717 | | (AC = Auto-centre, NAC = no auto-centre, 90 = turn controller 90 degrees). |
| 718 | | |
| 719 | | The list is rather incomplete, information will be added as it becomes available. |
| 720 | | |
| 721 | | The game names and numbers were obtained from the Amigan Software site. |
| 722 | | |
| 723 | | Cart Num Name |
| 724 | | ---------------------------------------------- |
| 725 | | 1. Grand Prix / Car Races / Autosport / Motor Racing / Road Race |
| 726 | | Config: Paddle, NAC |
| 727 | | Status: Working |
| 728 | | Controls: Left-Right: Steer; Up: Accelerate |
| 729 | | |
| 730 | | 2. Black Jack |
| 731 | | Status: Not working (some digits missing; indicator missing; dealer's cards missing) |
| 732 | | Controls: set bet with S and D; A to deal; 1 to hit, 2 to stay; Q accept insurance, E to decline; double-up (unknown key) |
| 733 | | Indicator: E make a bet then deal; I choose insurance; - you lost; + you won; X hit or stay |
| 734 | | |
| 735 | | 3. Olympics / Paddle Games / Bat & Ball / Pro Sport 60 / Sportsworld |
| 736 | | Config: Paddle, NAC |
| 737 | | Status: Working |
| 738 | | |
| 739 | | 4. Tank Battle / Combat |
| 740 | | Config: Button, 90 |
| 741 | | Status: Working |
| 742 | | Controls: Left-Right: Steer; Up: Accelerate; Fire: Shoot |
| 743 | | |
| 744 | | 5. Maths 1 |
| 745 | | Status: Working |
| 746 | | Controls: Z difficulty; X = addition or subtraction; C ask question; A=1;S=2;D=3;Q=4;W=5;E=6;1=7;2=8;3=9;0=0; C enter |
| 747 | | |
| 748 | | 6. Maths 2 |
| 749 | | Status: Not working |
| 750 | | Controls: Same as above. |
| 751 | | |
| 752 | | 7. Air Sea Attack / Air Sea Battle |
| 753 | | Config: Button, 90 |
| 754 | | Status: Working |
| 755 | | Controls: Left-Right: Move; Fire: Shoot |
| 756 | | |
| 757 | | 8. Treasure Hunt / Capture the Flag / Concentration / Memory Match |
| 758 | | Config: Buttons |
| 759 | | Status: Working |
| 760 | | |
| 761 | | 9. Labyrinth / Maze / Intelligence 1 |
| 762 | | Config: Buttons |
| 763 | | Status: Working |
| 764 | | |
| 765 | | 10. Winter Sports |
| 766 | | Notes: Background colours should be Cyan and White instead of Red and Black |
| 767 | | |
| 768 | | 11. Hippodrome / Horse Race |
| 769 | | |
| 770 | | 12. Hunting / Shooting Gallery |
| 771 | | |
| 772 | | 13. Chess 1 |
| 773 | | Status: Can't see what you're typing, wrong colours |
| 774 | | |
| 775 | | 14. Moto-cros |
| 776 | | |
| 777 | | 15. Four in a row / Intelligence 2 |
| 778 | | Config: Buttons |
| 779 | | Status: Working |
| 780 | | Notes: Seems the unused squares should be black. The screen jumps about while the computer is "thinking". |
| 781 | | |
| 782 | | 16. Code Breaker / Master Mind / Intelligence 3 / Challenge |
| 783 | | |
| 784 | | 17. Circus |
| 785 | | STatus: severe gfx issues |
| 786 | | |
| 787 | | 18. Boxing / Prize Fight |
| 788 | | |
| 789 | | 19. Outer Space / Spacewar / Space Attack / Outer Space Combat |
| 790 | | |
| 791 | | 20. Melody Simon / Musical Memory / Follow the Leader / Musical Games / Electronic Music / Face the Music |
| 792 | | |
| 793 | | 21. Capture / Othello / Reversi / Attack / Intelligence 4 |
| 794 | | Config: Buttons |
| 795 | | Status: Working |
| 796 | | Notes: Seems the unused squares should be black |
| 797 | | |
| 798 | | 22. Chess 2 |
| 799 | | Status: Can't see what you're typing, wrong colours |
| 800 | | |
| 801 | | 23. Pinball / Flipper / Arcade |
| 802 | | Status: gfx issues |
| 803 | | |
| 804 | | 24. Soccer |
| 805 | | |
| 806 | | 25. Bowling / NinePins |
| 807 | | Config: Paddle, rotated 90 degrees, up/down autocentre, left-right does not |
| 808 | | Status: Working |
| 809 | | |
| 810 | | 26. Draughts |
| 811 | | |
| 812 | | 27. Golf |
| 813 | | Status: gfx issues |
| 814 | | |
| 815 | | 28. Cockpit |
| 816 | | Status: gfx issues |
| 817 | | |
| 818 | | 29. Metropolis / Hangman |
| 819 | | Status: gfx issues |
| 820 | | |
| 821 | | 30. Solitaire |
| 822 | | |
| 823 | | 31. Casino |
| 824 | | Status: gfx issues, items missing and unplayable |
| 825 | | Controls: 1 or 3=START; q=GO; E=STOP; D=$; Z=^; X=tens; C=units |
| 826 | | |
| 827 | | 32. Invaders / Alien Invasion / Earth Invasion |
| 828 | | Status: Works |
| 829 | | Config: Buttons |
| 830 | | |
| 831 | | 33. Super Invaders |
| 832 | | Status: Stars are missing, colours are wrong |
| 833 | | Config: Buttons (90) |
| 834 | | |
| 835 | | 36. BackGammon |
| 836 | | Status: Not all counters are visible, Dice & game number not visible. |
| 837 | | Controls: Fire=Exec; 1=D+; 3=D-; Q,W,E=4,5,6; A,S,D=1,2,3; Z=CL; X=STOP; C=SET |
| 838 | | |
| 839 | | 37. Monster Man / Spider's Web |
| 840 | | Status: Works |
| 841 | | Config: Buttons |
| 842 | | |
| 843 | | 38. Hyperspace |
| 844 | | Status: Works |
| 845 | | Config: Buttons (90) |
| 846 | | Controls: 3 - status button; Q,W,E,A,S,D,Z,X,C selects which galaxy to visit |
| 847 | | |
| 848 | | |
| 849 | | 40. Super Space |
| 850 | | Status: Works, some small gfx issues near the bottom |
| 851 | | Config: Buttons |
| 852 | | |
| 853 | | |
| 854 | | |
| 855 | | Acetronic: (dumps are compatible) |
| 856 | | ------------ |
| 857 | | |
| 858 | | * Shooting Gallery |
| 859 | | Status: works but screen flickers |
| 860 | | Config: Buttons |
| 861 | | |
| 862 | | * Planet Defender |
| 863 | | Status: Works |
| 864 | | Config: Paddle (NAC) |
| 865 | | |
| 866 | | * Laser Attack |
| 867 | | Status: Works |
| 868 | | Config: Buttons |
| 869 | | |
| 870 | | |
| 871 | | |
| 872 | | Public Domain: (written for emulators, may not work on real hardware) |
| 873 | | --------------- |
| 874 | | * Picture (no controls) - works |
| 875 | | * Wincadia Stub (no controls) - works, small graphic error */ |
trunk/src/mess/drivers/arcadia.c
| r32504 | r32505 | |
| 120 | 120 | #include "includes/arcadia.h" |
| 121 | 121 | |
| 122 | 122 | static ADDRESS_MAP_START( arcadia_mem, AS_PROGRAM, 8, arcadia_state ) |
| 123 | | AM_RANGE( 0x0000, 0x0fff) AM_ROM |
| 124 | | AM_RANGE( 0x1800, 0x1aff) AM_READWRITE( arcadia_video_r, arcadia_video_w ) |
| 125 | | AM_RANGE( 0x2000, 0x2fff) AM_ROM |
| 123 | AM_RANGE( 0x0000, 0x0fff) AM_DEVREAD("cartslot", arcadia_cart_slot_device, read_rom) |
| 124 | AM_RANGE( 0x1800, 0x1aff) AM_READWRITE(video_r, video_w) |
| 126 | 125 | ADDRESS_MAP_END |
| 127 | 126 | |
| 128 | 127 | static ADDRESS_MAP_START( arcadia_io, AS_IO, 8, arcadia_state ) |
| 129 | | AM_RANGE( S2650_SENSE_PORT,S2650_SENSE_PORT) AM_READ( arcadia_vsync_r) |
| 128 | AM_RANGE( S2650_SENSE_PORT,S2650_SENSE_PORT) AM_READ(vsync_r) |
| 130 | 129 | ADDRESS_MAP_END |
| 131 | 130 | |
| 132 | 131 | /* The Emerson Arcadia 2001 controllers have 2 fire buttons on the side, |
| r32504 | r32505 | |
| 440 | 439 | |
| 441 | 440 | PALETTE_INIT_MEMBER(arcadia_state, arcadia) |
| 442 | 441 | { |
| 443 | | int i; |
| 444 | | |
| 445 | | for (i = 0; i < 8; i++) |
| 442 | for (int i = 0; i < 8; i++) |
| 446 | 443 | palette.set_indirect_color(i, arcadia_colors[i]); |
| 447 | 444 | |
| 448 | | for (i = 0; i < 128+8; i++) |
| 445 | for (int i = 0; i < 128+8; i++) |
| 449 | 446 | palette.set_pen_indirect(i, arcadia_palette[i]); |
| 450 | 447 | } |
| 451 | 448 | |
| 452 | | DEVICE_IMAGE_LOAD_MEMBER( arcadia_state, arcadia_cart ) |
| 449 | void arcadia_state::machine_start() |
| 453 | 450 | { |
| 454 | | UINT8 *rom = memregion("maincpu")->base(); |
| 455 | | int size; |
| 456 | | |
| 457 | | memset(rom, 0, 0x8000); |
| 458 | | if (image.software_entry() == NULL) |
| 451 | if (m_cart->exists()) |
| 459 | 452 | { |
| 460 | | size = image.length(); |
| 461 | | |
| 462 | | if (size > memregion("maincpu")->bytes()) |
| 463 | | size = memregion("maincpu")->bytes(); |
| 464 | | |
| 465 | | if (image.fread(rom, size) != size) |
| 466 | | return IMAGE_INIT_FAIL; |
| 453 | switch (m_cart->get_type()) |
| 454 | { |
| 455 | case ARCADIA_STD: |
| 456 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0xffff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart)); |
| 457 | break; |
| 458 | case ARCADIA_GOLF: |
| 459 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart)); |
| 460 | break; |
| 461 | } |
| 467 | 462 | } |
| 468 | | else |
| 469 | | { |
| 470 | | size = image.get_software_region_length("rom"); |
| 471 | | memcpy(rom, image.get_software_region("rom"), size); |
| 472 | | } |
| 463 | } |
| 473 | 464 | |
| 474 | | if (size > 0x1000) |
| 475 | | memmove(rom + 0x2000, rom + 0x1000, size - 0x1000); |
| 465 | static SLOT_INTERFACE_START(arcadia_cart) |
| 466 | SLOT_INTERFACE_INTERNAL("std", ARCADIA_ROM_STD) |
| 467 | SLOT_INTERFACE_INTERNAL("golf", ARCADIA_ROM_GOLF) |
| 468 | SLOT_INTERFACE_END |
| 476 | 469 | |
| 477 | | if (size > 0x2000) |
| 478 | | memmove(rom + 0x4000, rom + 0x3000, size - 0x2000); |
| 479 | 470 | |
| 480 | | #if 1 |
| 481 | | // golf cartridge support |
| 482 | | // 4kbyte at 0x0000 |
| 483 | | // 2kbyte at 0x4000 |
| 484 | | if (size <= 0x2000) |
| 485 | | memcpy(rom + 0x4000, rom + 0x2000, 0x1000); |
| 486 | | #else |
| 487 | | /* this is a testpatch for the golf cartridge |
| 488 | | so it could be burned in a arcadia 2001 cartridge |
| 489 | | activate it and use debugger to save patched version */ |
| 490 | | // not enough yet (some pointers stored as data?) |
| 491 | | int i; |
| 492 | | static const struct { UINT16 address; UINT8 old; UINT8 new; } |
| 493 | | patch[]= { |
| 494 | | { 0x0077,0x40,0x20 }, |
| 495 | | { 0x011e,0x40,0x20 }, |
| 496 | | { 0x0348,0x40,0x20 }, |
| 497 | | { 0x03be,0x40,0x20 }, |
| 498 | | { 0x04ce,0x40,0x20 }, |
| 499 | | { 0x04da,0x40,0x20 }, |
| 500 | | { 0x0562,0x42,0x22 }, |
| 501 | | { 0x0617,0x40,0x20 }, |
| 502 | | { 0x0822,0x40,0x20 }, |
| 503 | | { 0x095e,0x42,0x22 }, |
| 504 | | { 0x09d3,0x42,0x22 }, |
| 505 | | { 0x0bb0,0x42,0x22 }, |
| 506 | | { 0x0efb,0x40,0x20 }, |
| 507 | | { 0x0ec1,0x43,0x23 }, |
| 508 | | { 0x0f00,0x40,0x20 }, |
| 509 | | { 0x0f12,0x40,0x20 }, |
| 510 | | { 0x0ff5,0x43,0x23 }, |
| 511 | | { 0x0ff7,0x41,0x21 }, |
| 512 | | { 0x0ff9,0x40,0x20 }, |
| 513 | | { 0x0ffb,0x41,0x21 }, |
| 514 | | { 0x20ec,0x42,0x22 } |
| 515 | | }; |
| 516 | | |
| 517 | | for (i = 0; i < ARRAY_LENGTH(patch); i++) |
| 518 | | { |
| 519 | | assert(rom[patch[i].address] == patch[i].old); |
| 520 | | rom[patch[i].address] = patch[i].new; |
| 521 | | } |
| 522 | | #endif |
| 523 | | return IMAGE_INIT_PASS; |
| 524 | | } |
| 525 | | |
| 526 | 471 | static MACHINE_CONFIG_START( arcadia, arcadia_state ) |
| 527 | 472 | /* basic machine hardware */ |
| 528 | 473 | MCFG_CPU_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */ |
| 529 | 474 | MCFG_CPU_PROGRAM_MAP(arcadia_mem) |
| 530 | 475 | MCFG_CPU_IO_MAP(arcadia_io) |
| 531 | | MCFG_CPU_PERIODIC_INT_DRIVER(arcadia_state, arcadia_video_line, 262*60) |
| 476 | MCFG_CPU_PERIODIC_INT_DRIVER(arcadia_state, video_line, 262*60) |
| 532 | 477 | MCFG_QUANTUM_TIME(attotime::from_hz(60)) |
| 533 | 478 | |
| 534 | 479 | /* video hardware */ |
| r32504 | r32505 | |
| 545 | 490 | MCFG_PALETTE_INDIRECT_ENTRIES(8) |
| 546 | 491 | MCFG_PALETTE_INIT_OWNER(arcadia_state, arcadia) |
| 547 | 492 | |
| 548 | | |
| 549 | 493 | /* sound hardware */ |
| 550 | 494 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 551 | 495 | MCFG_ARCADIA_SOUND_ADD("custom") |
| 552 | 496 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) |
| 553 | 497 | |
| 554 | 498 | /* cartridge */ |
| 555 | | MCFG_CARTSLOT_ADD("cart") |
| 556 | | MCFG_CARTSLOT_EXTENSION_LIST("bin") |
| 557 | | MCFG_CARTSLOT_NOT_MANDATORY |
| 558 | | MCFG_CARTSLOT_INTERFACE("arcadia_cart") |
| 559 | | MCFG_CARTSLOT_LOAD(arcadia_state,arcadia_cart) |
| 499 | MCFG_ARCADIA_CARTRIDGE_ADD("cartslot", arcadia_cart, NULL) |
| 560 | 500 | |
| 561 | 501 | /* Software lists */ |
| 562 | 502 | MCFG_SOFTWARE_LIST_ADD("cart_list","arcadia") |
| 563 | 503 | MACHINE_CONFIG_END |
| 564 | 504 | |
| 505 | |
| 565 | 506 | ROM_START(advsnha) |
| 566 | 507 | ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF) |
| 567 | 508 | ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF) |
trunk/hash/arcadia.xml
| r32504 | r32505 | |
| 381 | 381 | <publisher>UA Ltd.</publisher> |
| 382 | 382 | <info name="alt_title" value="Bowling, Bowling (3 Dimensions), Video-Bowling" /> |
| 383 | 383 | <part name="cart" interface="arcadia_cart"> |
| 384 | <feature name="slot" value="std" /> |
| 384 | 385 | <dataarea name="rom" size="4096"> |
| 385 | 386 | <rom name="3dbowl.bin" size="4096" crc="f3c08e19" sha1="edd33cabd3d600e9e3d3c22f326a065ea6ebe32c" offset="0000" /> |
| 386 | 387 | </dataarea> |
| r32504 | r32505 | |
| 394 | 395 | <publisher>UA Ltd.</publisher> |
| 395 | 396 | <info name="alt_title" value="Fußball" /> |
| 396 | 397 | <part name="cart" interface="arcadia_cart"> |
| 398 | <feature name="slot" value="std" /> |
| 397 | 399 | <dataarea name="rom" size="8192"> |
| 398 | 400 | <rom name="3dsoccera.bin" size="8192" crc="1b5be22a" sha1="d3df9ed4e09bacacde47fa4f1128383fd62ffd6e" offset="0000" /> |
| 399 | 401 | </dataarea> |
| r32504 | r32505 | |
| 406 | 408 | <publisher>UA Ltd.</publisher> |
| 407 | 409 | <info name="alt_title" value="Fußball" /> |
| 408 | 410 | <part name="cart" interface="arcadia_cart"> |
| 411 | <feature name="slot" value="std" /> |
| 409 | 412 | <dataarea name="rom" size="8192"> |
| 410 | 413 | <rom name="3dsoccer.bin" size="8192" crc="4da68df8" sha1="50e799c96be3613f937825c6c722521bc6df0162" offset="0000" /> |
| 411 | 414 | </dataarea> |
| r32504 | r32505 | |
| 418 | 421 | <publisher>UA Ltd.</publisher> |
| 419 | 422 | <info name="alt_title" value="Alien, Alien Invader, Les Envahisseurs Etrangers, Invasion aus dem Weltall" /> |
| 420 | 423 | <part name="cart" interface="arcadia_cart"> |
| 424 | <feature name="slot" value="std" /> |
| 421 | 425 | <dataarea name="rom" size="4096"> |
| 422 | 426 | <rom name="alieninv.bin" size="4096" crc="1f65b21e" sha1="8d17de81fbf70db8fe32830763c6a940aa9124c3" offset="0000" /> |
| 423 | 427 | </dataarea> |
| r32504 | r32505 | |
| 430 | 434 | <publisher>UA Ltd.</publisher> |
| 431 | 435 | <info name="alt_title" value="Football Américain" /> |
| 432 | 436 | <part name="cart" interface="arcadia_cart"> |
| 437 | <feature name="slot" value="std" /> |
| 433 | 438 | <dataarea name="rom" size="6144"> |
| 434 | 439 | <rom name="football.bin" size="6144" crc="22624414" sha1="359e938391b72742643c81228713fac804ff8244" offset="0000" /> |
| 435 | 440 | </dataarea> |
| r32504 | r32505 | |
| 441 | 446 | <year>1980</year> |
| 442 | 447 | <publisher>UA Ltd.</publisher> |
| 443 | 448 | <part name="cart" interface="arcadia_cart"> |
| 449 | <feature name="slot" value="std" /> |
| 444 | 450 | <dataarea name="rom" size="4096"> |
| 445 | 451 | <rom name="astroinv.bin" size="4096" crc="ddcf5b2c" sha1="b6f693e3333607181fbe3a43dffa9f30f9656998" offset="0000" /> |
| 446 | 452 | </dataarea> |
| r32504 | r32505 | |
| 453 | 459 | <publisher>UA Ltd.</publisher> |
| 454 | 460 | <info name="alt_title" value="Course De Voitures" /> |
| 455 | 461 | <part name="cart" interface="arcadia_cart"> |
| 462 | <feature name="slot" value="std" /> |
| 456 | 463 | <dataarea name="rom" size="4096"> |
| 457 | 464 | <rom name="autorace.bin" size="4096" crc="99ac48ca" sha1="6182219b2b8c8747f67d627a056ac947754f0978" offset="0000" /> |
| 458 | 465 | </dataarea> |
| r32504 | r32505 | |
| 464 | 471 | <year>1983</year> |
| 465 | 472 | <publisher>UA Ltd.</publisher> |
| 466 | 473 | <part name="cart" interface="arcadia_cart"> |
| 474 | <feature name="slot" value="std" /> |
| 467 | 475 | <dataarea name="rom" size="4096"> |
| 468 | 476 | <rom name="baseball.bin" size="4096" crc="1cf08155" sha1="f4d39aaab61e6b01c673166ae54841d450860b31" offset="0000" /> |
| 469 | 477 | </dataarea> |
| r32504 | r32505 | |
| 477 | 485 | <year>198?</year> |
| 478 | 486 | <publisher>UA Ltd.</publisher> |
| 479 | 487 | <part name="cart" interface="arcadia_cart"> |
| 488 | <feature name="slot" value="std" /> |
| 480 | 489 | <dataarea name="rom" size="4096"> |
| 481 | 490 | <rom name="vidpanz.bin" size="4096" crc="6818c8bd" sha1="21eadc7841e0a59671aacca93d28d81c580f16f2" offset="0000" /> |
| 482 | 491 | </dataarea> |
| r32504 | r32505 | |
| 488 | 497 | <year>198?</year> |
| 489 | 498 | <publisher>UA Ltd.</publisher> |
| 490 | 499 | <part name="cart" interface="arcadia_cart"> |
| 500 | <feature name="slot" value="std" /> |
| 491 | 501 | <dataarea name="rom" size="4096"> |
| 492 | 502 | <rom name="blckjack.bin" size="4096" crc="0930ce04" sha1="a8afadfcaea847c2e998005652ace36803d6601b" offset="0000" /> |
| 493 | 503 | </dataarea> |
| r32504 | r32505 | |
| 499 | 509 | <year>198?</year> |
| 500 | 510 | <publisher>UA Ltd.</publisher> |
| 501 | 511 | <part name="cart" interface="arcadia_cart"> |
| 512 | <feature name="slot" value="std" /> |
| 502 | 513 | <dataarea name="rom" size="4096"> |
| 503 | 514 | <rom name="boxing.bin" size="4096" crc="9240891b" sha1="0fc3a8a33f2e89b2b32ea0a962effcf3ee430d34" offset="0000" /> |
| 504 | 515 | </dataarea> |
| r32504 | r32505 | |
| 511 | 522 | <publisher>UA Ltd.</publisher> |
| 512 | 523 | <info name="alt_title" value="Intelligenz-Übung, Math/Logic, Mathematiques Logiques" /> |
| 513 | 524 | <part name="cart" interface="arcadia_cart"> |
| 525 | <feature name="slot" value="std" /> |
| 514 | 526 | <dataarea name="rom" size="4096"> |
| 515 | 527 | <rom name="brainqz.bin" size="4096" crc="ca58b3f8" sha1="e9560e064043946b6bc0a88087d4164adf62e773" offset="0000" /> |
| 516 | 528 | </dataarea> |
| r32504 | r32505 | |
| 523 | 535 | <publisher>UA Ltd.</publisher> |
| 524 | 536 | <info name="alt_title" value="Evasion, La Desertion, Video-Breakout" /> |
| 525 | 537 | <part name="cart" interface="arcadia_cart"> |
| 538 | <feature name="slot" value="std" /> |
| 526 | 539 | <dataarea name="rom" size="4096"> |
| 527 | 540 | <rom name="breakawy.bin" size="4096" crc="33c348c1" sha1="396fe12bd34cc7cd555ad3b9b66f20e56e862385" offset="0000" /> |
| 528 | 541 | </dataarea> |
| r32504 | r32505 | |
| 534 | 547 | <year>198?</year> |
| 535 | 548 | <publisher>UA Ltd.</publisher> |
| 536 | 549 | <part name="cart" interface="arcadia_cart"> |
| 550 | <feature name="slot" value="std" /> |
| 537 | 551 | <dataarea name="rom" size="4096"> |
| 538 | 552 | <rom name="bsktball.bin" size="4096" crc="e93938f6" sha1="c6e3f963ea9db520bcd682a3206cc291504c9e3d" offset="0000" /> |
| 539 | 553 | </dataarea> |
| r32504 | r32505 | |
| 546 | 560 | <publisher>UA Ltd.</publisher> |
| 547 | 561 | <info name="alt_title" value="Othello, Side Attack, Video-Mühle" /> |
| 548 | 562 | <part name="cart" interface="arcadia_cart"> |
| 563 | <feature name="slot" value="std" /> |
| 549 | 564 | <dataarea name="rom" size="2048"> |
| 550 | 565 | <rom name="capture.bin" size="2048" crc="aeb803e4" sha1="107c864252647a4f3569ff501c8a9a3c7dd6067f" offset="000" /> |
| 551 | 566 | </dataarea> |
| r32504 | r32505 | |
| 558 | 573 | <publisher>UA Ltd.</publisher> |
| 559 | 574 | <info name="alt_title" value="Cat Track, Cat Tracks" /> |
| 560 | 575 | <part name="cart" interface="arcadia_cart"> |
| 576 | <feature name="slot" value="std" /> |
| 561 | 577 | <dataarea name="rom" size="4096"> |
| 562 | 578 | <rom name="cattrax.bin" size="4096" crc="fd2cf496" sha1="b0982ed95d92a4d97a5451acbee36af10ff99a3f" offset="0000" /> |
| 563 | 579 | </dataarea> |
| r32504 | r32505 | |
| 570 | 586 | <publisher>UA Ltd.</publisher> |
| 571 | 587 | <info name="alt_title" value="Cirque, Acrobat, Clown" /> |
| 572 | 588 | <part name="cart" interface="arcadia_cart"> |
| 589 | <feature name="slot" value="std" /> |
| 573 | 590 | <dataarea name="rom" size="4096"> |
| 574 | 591 | <rom name="circus.bin" size="4096" crc="086ebc8c" sha1="e8abeb702d9a7b7e12e1cea02946dae267b23041" offset="0000" /> |
| 575 | 592 | </dataarea> |
| r32504 | r32505 | |
| 581 | 598 | <year>198?</year> |
| 582 | 599 | <publisher>UA Ltd.</publisher> |
| 583 | 600 | <part name="cart" interface="arcadia_cart"> |
| 601 | <feature name="slot" value="std" /> |
| 584 | 602 | <dataarea name="rom" size="4096"> |
| 585 | 603 | <rom name="combat.bin" size="4096" crc="a6bffa9e" sha1="87addcdd0fccb5f36066f21938458235d5a37bd0" offset="0000" /> |
| 586 | 604 | </dataarea> |
| r32504 | r32505 | |
| 593 | 611 | <publisher>UA Ltd.</publisher> |
| 594 | 612 | <info name="alt_title" value="Crazy Wall" /> |
| 595 | 613 | <part name="cart" interface="arcadia_cart"> |
| 614 | <feature name="slot" value="std" /> |
| 596 | 615 | <dataarea name="rom" size="4096"> |
| 597 | 616 | <rom name="cclimber.bin" size="4096" crc="76e773fa" sha1="0c6ce7577a121e7810ec54c5dd180a55dd0ace17" offset="0000" /> |
| 598 | 617 | </dataarea> |
| r32504 | r32505 | |
| 605 | 624 | <publisher>UA Ltd.</publisher> |
| 606 | 625 | <info name="alt_title" value="Le Glouton Super Vorace" /> |
| 607 | 626 | <part name="cart" interface="arcadia_cart"> |
| 627 | <feature name="slot" value="std" /> |
| 608 | 628 | <dataarea name="rom" size="2048"> |
| 609 | 629 | <rom name="crzygblr.bin" size="2048" crc="e84df2ef" sha1="021e78bbc1f2c4ee2e7ca2fa560dd448bdd39798" offset="000" /> |
| 610 | 630 | </dataarea> |
| r32504 | r32505 | |
| 616 | 636 | <year>1983</year> |
| 617 | 637 | <publisher>Bandai</publisher> |
| 618 | 638 | <part name="cart" interface="arcadia_cart"> |
| 639 | <feature name="slot" value="std" /> |
| 619 | 640 | <dataarea name="rom" size="8192"> |
| 620 | 641 | <rom name="doraemon.bin" size="8192" crc="62c45881" sha1="a16fda96d00c8b08bb362f2573a45939aa6be051" offset="0000" /> |
| 621 | 642 | </dataarea> |
| r32504 | r32505 | |
| 627 | 648 | <year>1983</year> |
| 628 | 649 | <publisher>Bandai</publisher> |
| 629 | 650 | <part name="cart" interface="arcadia_cart"> |
| 651 | <feature name="slot" value="std" /> |
| 630 | 652 | <dataarea name="rom" size="8192"> |
| 631 | 653 | <rom name="drslump.bin" size="8192" crc="927c375a" sha1="389259f1505deef5c0fb83f9cf8b0f7fa4ed5d04" offset="0000" /> |
| 632 | 654 | </dataarea> |
| r32504 | r32505 | |
| 639 | 661 | <publisher>UA Ltd.</publisher> |
| 640 | 662 | <info name="alt_title" value="Escape Man" /> |
| 641 | 663 | <part name="cart" interface="arcadia_cart"> |
| 664 | <feature name="slot" value="std" /> |
| 642 | 665 | <dataarea name="rom" size="4096"> |
| 643 | 666 | <rom name="escape.bin" size="4096" crc="fc7eba76" sha1="87f81511ea5b7a9671fb945cb22bb578bedb47c9" offset="0000" /> |
| 644 | 667 | </dataarea> |
| r32504 | r32505 | |
| 650 | 673 | <year>1983</year> |
| 651 | 674 | <publisher>UA Ltd.</publisher> |
| 652 | 675 | <part name="cart" interface="arcadia_cart"> |
| 676 | <feature name="slot" value="std" /> |
| 653 | 677 | <dataarea name="rom" size="8192"> |
| 654 | 678 | <rom name="funkyfsh.bin" size="8192" crc="77c19320" sha1="e56be2ecd8284cd43a44620d56d6615766f45451" offset="0000" /> |
| 655 | 679 | </dataarea> |
| r32504 | r32505 | |
| 662 | 686 | <publisher>UA Ltd.</publisher> |
| 663 | 687 | <info name="alt_title" value="Golfer" /> |
| 664 | 688 | <part name="cart" interface="arcadia_cart"> |
| 689 | <feature name="slot" value="golf" /> |
| 665 | 690 | <dataarea name="rom" size="6144"> |
| 666 | 691 | <rom name="golf.bin" size="6144" crc="a23c7a01" sha1="7c9251e42fd03b9c26a13d0e25cdf9a838319a39" offset="0000" /> |
| 667 | 692 | </dataarea> |
| r32504 | r32505 | |
| 674 | 699 | <publisher>UA Ltd.</publisher> |
| 675 | 700 | <info name="alt_title" value="Monaco Grand Prix, Video-Autorennen" /> |
| 676 | 701 | <part name="cart" interface="arcadia_cart"> |
| 702 | <feature name="slot" value="std" /> |
| 677 | 703 | <dataarea name="rom" size="4096"> |
| 678 | 704 | <rom name="gpmonaco.bin" size="4096" crc="5e033f9c" sha1="7dcc1387892fa7275514c91ce584f83a5d3e14d6" offset="0000" /> |
| 679 | 705 | </dataarea> |
| r32504 | r32505 | |
| 686 | 712 | <publisher>UA Ltd.</publisher> |
| 687 | 713 | <info name="alt_title" value="Tennis, Tennis: Yannick Noah" /> |
| 688 | 714 | <part name="cart" interface="arcadia_cart"> |
| 715 | <feature name="slot" value="std" /> |
| 689 | 716 | <dataarea name="rom" size="8192"> |
| 690 | 717 | <rom name="gstennis.bin" size="8192" crc="8bf2dfa9" sha1="03cedd5fd67ff11a4ac74d513f03a2266af89446" offset="0000" /> |
| 691 | 718 | </dataarea> |
| r32504 | r32505 | |
| 697 | 724 | <year>1983</year> |
| 698 | 725 | <publisher>UA Ltd.</publisher> |
| 699 | 726 | <part name="cart" interface="arcadia_cart"> |
| 727 | <feature name="slot" value="std" /> |
| 700 | 728 | <dataarea name="rom" size="8192"> |
| 701 | 729 | <rom name="hobo.bin" size="8192" crc="1cec4b21" sha1="cebb340cb0a50b2815dafc6df8f46d814015a49f" offset="0000" /> |
| 702 | 730 | </dataarea> |
| r32504 | r32505 | |
| 716 | 744 | <publisher>UA Ltd.</publisher> |
| 717 | 745 | <info name="alt_title" value="Course de Chevaux, Pferderennen" /> |
| 718 | 746 | <part name="cart" interface="arcadia_cart"> |
| 747 | <feature name="slot" value="std" /> |
| 719 | 748 | <dataarea name="rom" size="4096"> |
| 720 | 749 | <rom name="horserac.bin" size="4096" crc="560daa7f" sha1="72dd8dea83bf9ab7d486931516e99b2209ca0a1d" offset="0000" /> |
| 721 | 750 | </dataarea> |
| r32504 | r32505 | |
| 728 | 757 | <publisher>UA Ltd.</publisher> |
| 729 | 758 | <info name="alt_title" value="Happy Bug" /> |
| 730 | 759 | <part name="cart" interface="arcadia_cart"> |
| 760 | <feature name="slot" value="std" /> |
| 731 | 761 | <dataarea name="rom" size="8192"> |
| 732 | 762 | <rom name="jumpbug.bin" size="8192" crc="97060a54" sha1="d0ace24fd1f3805e46b077e8a4770f922157c8c4" offset="0000" /> |
| 733 | 763 | </dataarea> |
| r32504 | r32505 | |
| 741 | 771 | <publisher>UA Ltd.</publisher> |
| 742 | 772 | <info name="alt_title" value="Happy Bug" /> |
| 743 | 773 | <part name="cart" interface="arcadia_cart"> |
| 774 | <feature name="slot" value="std" /> |
| 744 | 775 | <dataarea name="rom" size="8192"> |
| 745 | 776 | <rom name="jumpbuga.bin" size="8192" crc="dc0264b8" sha1="bf3ccf7a54409f22ca4295b1df1c01bfbbe9f0a2" offset="0000" /> |
| 746 | 777 | </dataarea> |
| r32504 | r32505 | |
| 752 | 783 | <year>1982</year> |
| 753 | 784 | <publisher>UA Ltd.</publisher> |
| 754 | 785 | <part name="cart" interface="arcadia_cart"> |
| 786 | <feature name="slot" value="std" /> |
| 755 | 787 | <dataarea name="rom" size="8192"> |
| 756 | 788 | <rom name="jungler.bin" size="8192" crc="dfb5dd55" sha1="8d6e32ab3cc872017c597e61c076330015411435" offset="0000" /> |
| 757 | 789 | </dataarea> |
| r32504 | r32505 | |
| 764 | 796 | <publisher>Bandai</publisher> |
| 765 | 797 | <info name="alt_title" value="Super Dimension Fortress Macross" /> |
| 766 | 798 | <part name="cart" interface="arcadia_cart"> |
| 799 | <feature name="slot" value="std" /> |
| 767 | 800 | <dataarea name="rom" size="8192"> |
| 768 | 801 | <rom name="macross.bin" size="8192" crc="4c885af2" sha1="3d24ab9e42ff44a223bb53c5491dea7f41691df2" offset="0000" /> |
| 769 | 802 | </dataarea> |
| r32504 | r32505 | |
| 776 | 809 | <publisher>Bandai</publisher> |
| 777 | 810 | <info name="alt_title" value="Mobile Soldier Gundam" /> |
| 778 | 811 | <part name="cart" interface="arcadia_cart"> |
| 812 | <feature name="slot" value="std" /> |
| 779 | 813 | <dataarea name="rom" size="8192"> |
| 780 | 814 | <rom name="gundam.bin" size="8192" crc="1241f128" sha1="4b07a88b06008ddfc3676983e826e107caf3ba0f" offset="0000" /> |
| 781 | 815 | </dataarea> |
| r32504 | r32505 | |
| 788 | 822 | <publisher>UA Ltd.</publisher> |
| 789 | 823 | <info name="alt_title" value="Angriff der Ufos, Le Guerre Des Missiles" /> |
| 790 | 824 | <part name="cart" interface="arcadia_cart"> |
| 825 | <feature name="slot" value="std" /> |
| 791 | 826 | <dataarea name="rom" size="4096"> |
| 792 | 827 | <rom name="msslewar.bin" size="4096" crc="a615f068" sha1="cc3e46adc8a3ed2cbfd5f9bbbf96f61f4e2ecebe" offset="0000" /> |
| 793 | 828 | </dataarea> |
| r32504 | r32505 | |
| 800 | 835 | <publisher>UA Ltd.</publisher> |
| 801 | 836 | <info name="alt_title" value="Devilman the Dot Muncher, Super Gobbler" /> |
| 802 | 837 | <part name="cart" interface="arcadia_cart"> |
| 838 | <feature name="slot" value="std" /> |
| 803 | 839 | <dataarea name="rom" size="4096"> |
| 804 | 840 | <rom name="nbblemen.bin" size="4096" crc="7832f7ad" sha1="a2f3d269e422e6ee89d58f001d39438704178e17" offset="0000" /> |
| 805 | 841 | </dataarea> |
| r32504 | r32505 | |
| 812 | 848 | <publisher>UA Ltd.</publisher> |
| 813 | 849 | <info name="alt_title" value="Devilman the Dot Muncher, Super Gobbler" /> |
| 814 | 850 | <part name="cart" interface="arcadia_cart"> |
| 851 | <feature name="slot" value="std" /> |
| 815 | 852 | <dataarea name="rom" size="4096"> |
| 816 | 853 | <rom name="nbblemena.bin" size="4096" crc="08d8b186" sha1="ca2efbcb1f1f580b7995aa47ab7da09fa4a1b9e2" offset="0000" /> |
| 817 | 854 | </dataarea> |
| r32504 | r32505 | |
| 824 | 861 | <publisher>UA Ltd.</publisher> |
| 825 | 862 | <info name="alt_title" value="Bataille Navale, Le Combat Naval, Sea Battle, Seeschlacht" /> |
| 826 | 863 | <part name="cart" interface="arcadia_cart"> |
| 864 | <feature name="slot" value="std" /> |
| 827 | 865 | <dataarea name="rom" size="4096"> |
| 828 | 866 | <rom name="oceanbat.bin" size="4096" crc="449e80cb" sha1="444146bf89c3a0e0e010f6a30e675be3f2b023a7" offset="0000" /> |
| 829 | 867 | </dataarea> |
| r32504 | r32505 | |
| 836 | 874 | <publisher>UA Ltd.</publisher> |
| 837 | 875 | <info name="alt_title" value="Parachute" /> |
| 838 | 876 | <part name="cart" interface="arcadia_cart"> |
| 877 | <feature name="slot" value="std" /> |
| 839 | 878 | <dataarea name="rom" size="4096"> |
| 840 | 879 | <rom name="parashtr.bin" size="4096" crc="4f538848" sha1="2e7c8e4263eec7f033019ec763effebca40ca30b" offset="0000" /> |
| 841 | 880 | </dataarea> |
| r32504 | r32505 | |
| 847 | 886 | <year>1983</year> |
| 848 | 887 | <publisher>UA Ltd.</publisher> |
| 849 | 888 | <part name="cart" interface="arcadia_cart"> |
| 889 | <feature name="slot" value="std" /> |
| 850 | 890 | <dataarea name="rom" size="8192"> |
| 851 | 891 | <rom name="pleiades.bin" size="8192" crc="4f19fd9b" sha1="bdb7ce3d4552c82be3cf8db43d5ad103f9d9cc91" offset="0000" /> |
| 852 | 892 | </dataarea> |
| r32504 | r32505 | |
| 858 | 898 | <year>1981</year> |
| 859 | 899 | <publisher>UA Ltd.</publisher> |
| 860 | 900 | <part name="cart" interface="arcadia_cart"> |
| 901 | <feature name="slot" value="std" /> |
| 861 | 902 | <dataarea name="rom" size="4096"> |
| 862 | 903 | <rom name="r2dtank.bin" size="4096" crc="a0626e23" sha1="e1daef4cc1e8c51cf542d900ba7139f5f472f2c8" offset="0000" /> |
| 863 | 904 | </dataarea> |
| r32504 | r32505 | |
| 869 | 910 | <year>1982</year> |
| 870 | 911 | <publisher>UA Ltd.</publisher> |
| 871 | 912 | <part name="cart" interface="arcadia_cart"> |
| 913 | <feature name="slot" value="std" /> |
| 872 | 914 | <dataarea name="rom" size="4096"> |
| 873 | 915 | <rom name="redclash.bin" size="4096" crc="a06f284b" sha1="7a94f4f1768e4c62209cc03adc0fbadb954d2c24" offset="0000" /> |
| 874 | 916 | </dataarea> |
| r32504 | r32505 | |
| 881 | 923 | <publisher>UA Ltd.</publisher> |
| 882 | 924 | <info name="alt_title" value="Le Robot Meurtrier" /> |
| 883 | 925 | <part name="cart" interface="arcadia_cart"> |
| 926 | <feature name="slot" value="std" /> |
| 884 | 927 | <dataarea name="rom" size="4096"> |
| 885 | 928 | <rom name="robtkllr.bin" size="4096" crc="4671b7f7" sha1="acb45a8314fe531390d1c58be23ae860fa344c94" offset="0000" /> |
| 886 | 929 | </dataarea> |
| r32504 | r32505 | |
| 892 | 935 | <year>1983</year> |
| 893 | 936 | <publisher>UA Ltd.</publisher> |
| 894 | 937 | <part name="cart" interface="arcadia_cart"> |
| 938 | <feature name="slot" value="std" /> |
| 895 | 939 | <dataarea name="rom" size="8192"> |
| 896 | 940 | <rom name="route16.bin" size="8192" crc="8169864e" sha1="6f6d0c0e2ae06112643c63cb6892f8c7269c98a6" offset="0000" /> |
| 897 | 941 | </dataarea> |
| r32504 | r32505 | |
| 904 | 948 | <publisher>UA Ltd.</publisher> |
| 905 | 949 | <info name="alt_title" value="Football, Fußball Spiel, Video- Fußball" /> |
| 906 | 950 | <part name="cart" interface="arcadia_cart"> |
| 951 | <feature name="slot" value="std" /> |
| 907 | 952 | <dataarea name="rom" size="4096"> |
| 908 | 953 | <rom name="soccer.bin" size="4096" crc="b0b98a92" sha1="1a575203b78af7ac992f109add1721dda8872fc1" offset="0000" /> |
| 909 | 954 | </dataarea> |
| r32504 | r32505 | |
| 915 | 960 | <year>1982</year> |
| 916 | 961 | <publisher>UA Ltd.</publisher> |
| 917 | 962 | <part name="cart" interface="arcadia_cart"> |
| 963 | <feature name="slot" value="std" /> |
| 918 | 964 | <dataarea name="rom" size="2048"> |
| 919 | 965 | <rom name="spacewar.bin" size="2048" crc="c91828cb" sha1="9e84d1884a002aafb84682eeb9e1cb2f29944d64" offset="000" /> |
| 920 | 966 | </dataarea> |
| r32504 | r32505 | |
| 926 | 972 | <year>1982</year> |
| 927 | 973 | <publisher>UA Ltd.</publisher> |
| 928 | 974 | <part name="cart" interface="arcadia_cart"> |
| 975 | <feature name="slot" value="std" /> |
| 929 | 976 | <dataarea name="rom" size="2048"> |
| 930 | 977 | <rom name="spaceatta.bin" size="2048" crc="669632ec" sha1="0d96d79d22237312e217d8da8e2185e9245bdf47" offset="000" /> |
| 931 | 978 | </dataarea> |
| r32504 | r32505 | |
| 937 | 984 | <year>1982</year> |
| 938 | 985 | <publisher>UA Ltd.</publisher> |
| 939 | 986 | <part name="cart" interface="arcadia_cart"> |
| 987 | <feature name="slot" value="std" /> |
| 940 | 988 | <dataarea name="rom" size="4096"> |
| 941 | 989 | <rom name="spaceatt.bin" size="4096" crc="e3794a2c" sha1="25a27466dc3ffb6013cd4f632947834002c80105" offset="0000" /> |
| 942 | 990 | </dataarea> |
| r32504 | r32505 | |
| 949 | 997 | <publisher>UA Ltd.</publisher> |
| 950 | 998 | <info name="alt_title" value="Mission Spaciale, Weltraum-Abenteuer" /> |
| 951 | 999 | <part name="cart" interface="arcadia_cart"> |
| 1000 | <feature name="slot" value="std" /> |
| 952 | 1001 | <dataarea name="rom" size="4096"> |
| 953 | 1002 | <rom name="spcemssn.bin" size="4096" crc="3ff224e5" sha1="a46fa9cbc12cb83218d3936ec3f4d0a4aff8cd60" offset="0000" /> |
| 954 | 1003 | </dataarea> |
| r32504 | r32505 | |
| 961 | 1010 | <publisher>UA Ltd.</publisher> |
| 962 | 1011 | <info name="alt_title" value="Space Raider" /> |
| 963 | 1012 | <part name="cart" interface="arcadia_cart"> |
| 1013 | <feature name="slot" value="std" /> |
| 964 | 1014 | <dataarea name="rom" size="4096"> |
| 965 | 1015 | <rom name="spcerdrs.bin" size="4096" crc="88defacf" sha1="c2c247b57c3d3a9321f7c16e48b1d733bd7d7dbb" offset="0000" /> |
| 966 | 1016 | </dataarea> |
| r32504 | r32505 | |
| 973 | 1023 | <publisher>UA Ltd.</publisher> |
| 974 | 1024 | <info name="alt_title" value="Escadrille de L'Espace, L'Escadron de L'Espace" /> |
| 975 | 1025 | <part name="cart" interface="arcadia_cart"> |
| 1026 | <feature name="slot" value="std" /> |
| 976 | 1027 | <dataarea name="rom" size="4096"> |
| 977 | 1028 | <rom name="spcesqdn.bin" size="4096" crc="caa5f449" sha1="e76efb5f2707f67775d09d2d1547a4af0254b7b1" offset="0000" /> |
| 978 | 1029 | </dataarea> |
| r32504 | r32505 | |
| 985 | 1036 | <publisher>UA Ltd.</publisher> |
| 986 | 1037 | <info name="alt_title" value="Vautour de L'espace" /> |
| 987 | 1038 | <part name="cart" interface="arcadia_cart"> |
| 1039 | <feature name="slot" value="std" /> |
| 988 | 1040 | <dataarea name="rom" size="6144"> |
| 989 | 1041 | <rom name="spcevult.bin" size="6144" crc="7666a712" sha1="a1697ee165307792f07fdd7767122140958a4e9f" offset="0000" /> |
| 990 | 1042 | </dataarea> |
| r32504 | r32505 | |
| 996 | 1048 | <year>1982</year> |
| 997 | 1049 | <publisher>UA Ltd.</publisher> |
| 998 | 1050 | <part name="cart" interface="arcadia_cart"> |
| 1051 | <feature name="slot" value="std" /> |
| 999 | 1052 | <dataarea name="rom" size="4096"> |
| 1000 | 1053 | <rom name="spiders.bin" size="4096" crc="bb88daea" sha1="e2fe75ec968a586a9c4885df02481b00abef2bc7" offset="0000" /> |
| 1001 | 1054 | </dataarea> |
| r32504 | r32505 | |
| 1008 | 1061 | <publisher>UA Ltd.</publisher> |
| 1009 | 1062 | <info name="alt_title" value="Echec Etiles, Échecs Vidéo, Space Chess, Video Chess, Video-Schach" /> |
| 1010 | 1063 | <part name="cart" interface="arcadia_cart"> |
| 1064 | <feature name="slot" value="std" /> |
| 1011 | 1065 | <dataarea name="rom" size="4096"> |
| 1012 | 1066 | <rom name="starchss.bin" size="4096" crc="83e6e40b" sha1="348ca876b1113827d8e7ffb9b2422e863ba92b0f" offset="0000" /> |
| 1013 | 1067 | </dataarea> |
| r32504 | r32505 | |
| 1019 | 1073 | <year>198?</year> |
| 1020 | 1074 | <publisher>UA Ltd.</publisher> |
| 1021 | 1075 | <part name="cart" interface="arcadia_cart"> |
| 1076 | <feature name="slot" value="std" /> |
| 1022 | 1077 | <dataarea name="rom" size="4096"> |
| 1023 | 1078 | <rom name="superbuga.bin" size="4096" crc="15436f39" sha1="bf22e0fae67bc3c2147a669b194752e34fe3564d" offset="0000" /> |
| 1024 | 1079 | </dataarea> |
| r32504 | r32505 | |
| 1030 | 1085 | <year>198?</year> |
| 1031 | 1086 | <publisher>UA Ltd.</publisher> |
| 1032 | 1087 | <part name="cart" interface="arcadia_cart"> |
| 1088 | <feature name="slot" value="std" /> |
| 1033 | 1089 | <dataarea name="rom" size="4096"> |
| 1034 | 1090 | <rom name="superbug.bin" size="4096" crc="fef2aae9" sha1="1e7f7b81ecd2f766c94bd5ff17763374fb0318f1" offset="0000" /> |
| 1035 | 1091 | </dataarea> |
| r32504 | r32505 | |
| 1042 | 1098 | <publisher>UA Ltd.</publisher> |
| 1043 | 1099 | <info name="alt_title" value="Space Pirates" /> |
| 1044 | 1100 | <part name="cart" interface="arcadia_cart"> |
| 1101 | <feature name="slot" value="std" /> |
| 1045 | 1102 | <dataarea name="rom" size="4096"> |
| 1046 | 1103 | <rom name="theend.bin" size="4096" crc="e66f362d" sha1="1148aa1525d7b46640babb50b004c79abec45d3a" offset="0000" /> |
| 1047 | 1104 | </dataarea> |
| r32504 | r32505 | |
| 1053 | 1110 | <year>1982</year> |
| 1054 | 1111 | <publisher>UA Ltd.</publisher> |
| 1055 | 1112 | <part name="cart" interface="arcadia_cart"> |
| 1113 | <feature name="slot" value="std" /> |
| 1056 | 1114 | <dataarea name="rom" size="4096"> |
| 1057 | 1115 | <rom name="tnksalot.bin" size="4096" crc="0076422e" sha1="c431d5190e86f3dfbb3e8b1a3b9bec82bb5014ae" offset="0000" /> |
| 1058 | 1116 | </dataarea> |
| r32504 | r32505 | |
| 1064 | 1122 | <year>1982</year> |
| 1065 | 1123 | <publisher>UA Ltd.</publisher> |
| 1066 | 1124 | <part name="cart" interface="arcadia_cart"> |
| 1125 | <feature name="slot" value="std" /> |
| 1067 | 1126 | <dataarea name="rom" size="8192"> |
| 1068 | 1127 | <rom name="turtles.bin" size="8192" crc="306e39c1" sha1="a806e3f248a962bb99e2515f489d45bb11fb0a0e" offset="0000" /> |
| 1069 | 1128 | </dataarea> |
| r32504 | r32505 | |
| 1076 | 1135 | <year>198?</year> |
| 1077 | 1136 | <publisher>UA Ltd.</publisher> |
| 1078 | 1137 | <part name="cart" interface="arcadia_cart"> |
| 1138 | <feature name="slot" value="std" /> |
| 1079 | 1139 | <dataarea name="rom" size="12288"> |
| 1080 | 1140 | <rom name="vidlex [main cartridge unit].bin" size="4096" crc="e0a9dd9a" sha1="eadb3a791b100a208bbe8c445a96315cbeb7a097" offset="0x0000" /> |
| 1081 | 1141 | <rom name="vidlexe [english module].bin" size="4096" crc="320b0a9d" sha1="5058e17464ac50f86cd1c297c031b4d0ef063303" offset="0x1000" /> |
| r32504 | r32505 | |
| 1090 | 1150 | <year>198?</year> |
| 1091 | 1151 | <publisher>UA Ltd.</publisher> |
| 1092 | 1152 | <part name="cart" interface="arcadia_cart"> |
| 1153 | <feature name="slot" value="std" /> |
| 1093 | 1154 | <dataarea name="rom" size="12288"> |
| 1094 | 1155 | <rom name="dicte2g.bin" size="12288" crc="6289f607" sha1="23d5d52e3403b3e9cd7864a16abac03508db8c97" offset="0000" /> |
| 1095 | 1156 | </dataarea> |
| r32504 | r32505 | |
| 1102 | 1163 | <year>198?</year> |
| 1103 | 1164 | <publisher>UA Ltd.</publisher> |
| 1104 | 1165 | <part name="cart" interface="arcadia_cart"> |
| 1166 | <feature name="slot" value="std" /> |
| 1105 | 1167 | <dataarea name="rom" size="12288"> |
| 1106 | 1168 | <rom name="dictg2e.bin" size="12288" crc="0739504d" sha1="de2c037c5ec9b31f2ae63a467dcd82647f92e908" offset="0000" /> |
| 1107 | 1169 | </dataarea> |
trunk/hash/vc4000.xml
| r32504 | r32505 | |
| 9 | 9 | <year>19??</year> |
| 10 | 10 | <publisher>Interton</publisher> |
| 11 | 11 | <part name="cart" interface="vc4000_cart"> |
| 12 | <feature name="slot" value="std" /> |
| 12 | 13 | <dataarea name="rom" size="2048"> |
| 13 | 14 | <rom name="carraces.bin" size="2048" crc="5c7f11e0" sha1="0d1cd6f7da36660f19e0b0e9c4312b1c56d5fbc6" offset="0" /> |
| 14 | 15 | </dataarea> |
| r32504 | r32505 | |
| 21 | 22 | <year>19??</year> |
| 22 | 23 | <publisher>Interton</publisher> |
| 23 | 24 | <part name="cart" interface="vc4000_cart"> |
| 25 | <feature name="slot" value="std" /> |
| 24 | 26 | <dataarea name="rom" size="2048"> |
| 25 | 27 | <rom name="blckjack.bin" size="2048" crc="ec2a91b3" sha1="ba4553d116cffa74a71ef10fbffa4c28c779c836" offset="0" /> |
| 26 | 28 | </dataarea> |
| r32504 | r32505 | |
| 33 | 35 | <year>19??</year> |
| 34 | 36 | <publisher>Interton</publisher> |
| 35 | 37 | <part name="cart" interface="vc4000_cart"> |
| 38 | <feature name="slot" value="std" /> |
| 36 | 39 | <dataarea name="rom" size="2048"> |
| 37 | 40 | <rom name="paddleg.bin" size="2048" crc="682b876a" sha1="ecc0146c40daa79a13934b8884bc8fd0f96461c1" offset="0" /> |
| 38 | 41 | </dataarea> |
| r32504 | r32505 | |
| 45 | 48 | <year>19??</year> |
| 46 | 49 | <publisher>Interton</publisher> |
| 47 | 50 | <part name="cart" interface="vc4000_cart"> |
| 51 | <feature name="slot" value="std" /> |
| 48 | 52 | <dataarea name="rom" size="2048"> |
| 49 | 53 | <rom name="tbattle.bin" size="2048" crc="468e4779" sha1="191d0a1bf399a09525b57dbbca92d83de18003fd" offset="0" /> |
| 50 | 54 | </dataarea> |
| r32504 | r32505 | |
| 57 | 61 | <year>19??</year> |
| 58 | 62 | <publisher>Interton</publisher> |
| 59 | 63 | <part name="cart" interface="vc4000_cart"> |
| 64 | <feature name="slot" value="std" /> |
| 60 | 65 | <dataarea name="rom" size="2048"> |
| 61 | 66 | <rom name="mathema1.bin" size="2048" crc="e38e0c03" sha1="d48c8ca8811fa9418d257c92365b88bba0cdffb2" offset="0" /> |
| 62 | 67 | </dataarea> |
| r32504 | r32505 | |
| 69 | 74 | <year>19??</year> |
| 70 | 75 | <publisher>Interton</publisher> |
| 71 | 76 | <part name="cart" interface="vc4000_cart"> |
| 77 | <feature name="slot" value="std" /> |
| 72 | 78 | <dataarea name="rom" size="2048"> |
| 73 | 79 | <rom name="mathema2.bin" size="2048" crc="66c5975e" sha1="efa4a5ebe540efdedec226c0af238c2652ad5b5a" offset="0" /> |
| 74 | 80 | </dataarea> |
| r32504 | r32505 | |
| 81 | 87 | <year>19??</year> |
| 82 | 88 | <publisher>Interton</publisher> |
| 83 | 89 | <part name="cart" interface="vc4000_cart"> |
| 90 | <feature name="slot" value="std" /> |
| 84 | 91 | <dataarea name="rom" size="2048"> |
| 85 | 92 | <rom name="airseaba.bin" size="2048" crc="f3d37699" sha1="922b9469b2262eb1a135defd5dbc11f33094df5c" offset="0" /> |
| 86 | 93 | </dataarea> |
| r32504 | r32505 | |
| 93 | 100 | <year>19??</year> |
| 94 | 101 | <publisher>Interton</publisher> |
| 95 | 102 | <part name="cart" interface="vc4000_cart"> |
| 103 | <feature name="slot" value="std" /> |
| 96 | 104 | <dataarea name="rom" size="2048"> |
| 97 | 105 | <rom name="memory1.bin" size="2048" crc="ea8f717f" sha1="a383ced230178c9c829b82b2793cb036411ccb5d" offset="0" /> |
| 98 | 106 | </dataarea> |
| r32504 | r32505 | |
| 105 | 113 | <year>19??</year> |
| 106 | 114 | <publisher>Interton</publisher> |
| 107 | 115 | <part name="cart" interface="vc4000_cart"> |
| 116 | <feature name="slot" value="std" /> |
| 108 | 117 | <dataarea name="rom" size="2048"> |
| 109 | 118 | <rom name="intel1.bin" size="2048" crc="4d3f9cfb" sha1="b8cba1672f5b7286e8895fc6e6c46bbb54fb3f46" offset="0" status="baddump" /> |
| 110 | 119 | </dataarea> |
| r32504 | r32505 | |
| 117 | 126 | <year>19??</year> |
| 118 | 127 | <publisher>Interton</publisher> |
| 119 | 128 | <part name="cart" interface="vc4000_cart"> |
| 129 | <feature name="slot" value="std" /> |
| 120 | 130 | <dataarea name="rom" size="4096"> |
| 121 | 131 | <rom name="wintersp.bin" size="4096" crc="bdd652b7" sha1="aa3af1df1095aadf9d7428a59847fbef3505d93d" offset="0" /> |
| 122 | 132 | </dataarea> |
| r32504 | r32505 | |
| 129 | 139 | <year>19??</year> |
| 130 | 140 | <publisher>Interton</publisher> |
| 131 | 141 | <part name="cart" interface="vc4000_cart"> |
| 142 | <feature name="slot" value="std" /> |
| 132 | 143 | <dataarea name="rom" size="2048"> |
| 133 | 144 | <rom name="hippodro.bin" size="2048" crc="aaea290f" sha1="0c4dd4f31adccdf02ba783a23ca9debe2c4cee02" offset="0" /> |
| 134 | 145 | </dataarea> |
| r32504 | r32505 | |
| 141 | 152 | <year>19??</year> |
| 142 | 153 | <publisher>Interton</publisher> |
| 143 | 154 | <part name="cart" interface="vc4000_cart"> |
| 155 | <feature name="slot" value="std" /> |
| 144 | 156 | <dataarea name="rom" size="2048"> |
| 145 | 157 | <rom name="hunting.bin" size="2048" crc="31978ad4" sha1="68a21765ae57357c7e5385e57b3caa60f796c0cc" offset="0" /> |
| 146 | 158 | </dataarea> |
| r32504 | r32505 | |
| 153 | 165 | <year>19??</year> |
| 154 | 166 | <publisher>Interton</publisher> |
| 155 | 167 | <part name="cart" interface="vc4000_cart"> |
| 156 | | <!-- 1k internal ram --> |
| 168 | <feature name="slot" value="ram1k" /> |
| 157 | 169 | <dataarea name="rom" size="4096"> |
| 158 | 170 | <rom name="chess.bin" size="4096" crc="e9c53288" sha1="468188fd58aefb9f8e17e72ea4494f4e8219338a" offset="0" /> |
| 159 | 171 | </dataarea> |
| 172 | <dataarea name="ram" size="1024"> |
| 173 | </dataarea> |
| 160 | 174 | </part> |
| 161 | 175 | </software> |
| 162 | 176 | |
| r32504 | r32505 | |
| 166 | 180 | <year>19??</year> |
| 167 | 181 | <publisher>Interton</publisher> |
| 168 | 182 | <part name="cart" interface="vc4000_cart"> |
| 183 | <feature name="slot" value="std" /> |
| 169 | 184 | <dataarea name="rom" size="4096"> |
| 170 | 185 | <rom name="motocrss.bin" size="4096" crc="55011f0a" sha1="a461b66f6cff37e4038e80da0a205a816abe35d4" offset="0" /> |
| 171 | 186 | </dataarea> |
| r32504 | r32505 | |
| 178 | 193 | <year>19??</year> |
| 179 | 194 | <publisher>Interton</publisher> |
| 180 | 195 | <part name="cart" interface="vc4000_cart"> |
| 196 | <feature name="slot" value="std" /> |
| 181 | 197 | <dataarea name="rom" size="2048"> |
| 182 | 198 | <rom name="intel2.bin" size="2048" crc="8ab96827" sha1="58c7cabd14e3cd0505f8ea27aaf08cc8045bc590" offset="0" status="baddump" /> |
| 183 | 199 | </dataarea> |
| r32504 | r32505 | |
| 190 | 206 | <year>19??</year> |
| 191 | 207 | <publisher>Interton</publisher> |
| 192 | 208 | <part name="cart" interface="vc4000_cart"> |
| 209 | <feature name="slot" value="std" /> |
| 193 | 210 | <dataarea name="rom" size="2048"> |
| 194 | 211 | <rom name="intel3.bin" size="2048" crc="52b8c6e7" sha1="b83fd9679912b0888df38f708dbea80dfe3b8193" offset="0" /> |
| 195 | 212 | </dataarea> |
| r32504 | r32505 | |
| 202 | 219 | <year>19??</year> |
| 203 | 220 | <publisher>Interton</publisher> |
| 204 | 221 | <part name="cart" interface="vc4000_cart"> |
| 222 | <feature name="slot" value="std" /> |
| 205 | 223 | <dataarea name="rom" size="2048"> |
| 206 | 224 | <rom name="circus.bin" size="2048" crc="0ab80f3e" sha1="cff0b7066669aad1e35803767fd98ecef4ea162d" offset="0" /> |
| 207 | 225 | </dataarea> |
| r32504 | r32505 | |
| 214 | 232 | <year>19??</year> |
| 215 | 233 | <publisher>Interton</publisher> |
| 216 | 234 | <part name="cart" interface="vc4000_cart"> |
| 235 | <feature name="slot" value="std" /> |
| 217 | 236 | <dataarea name="rom" size="4096"> |
| 218 | 237 | <rom name="boxing.bin" size="4096" crc="922c9f0d" sha1="b49a37dd6d0272f6c71d778ffada6bc7c90f8348" offset="0" /> |
| 219 | 238 | </dataarea> |
| r32504 | r32505 | |
| 226 | 245 | <year>19??</year> |
| 227 | 246 | <publisher>Interton</publisher> |
| 228 | 247 | <part name="cart" interface="vc4000_cart"> |
| 248 | <feature name="slot" value="std" /> |
| 229 | 249 | <dataarea name="rom" size="2048"> |
| 230 | 250 | <rom name="outersc.bin" size="2048" crc="b1c31f9a" sha1="8a2b29af42051f61a22a033c7dd140705cf7bc6e" offset="0" /> |
| 231 | 251 | </dataarea> |
| r32504 | r32505 | |
| 238 | 258 | <year>19??</year> |
| 239 | 259 | <publisher>Interton</publisher> |
| 240 | 260 | <part name="cart" interface="vc4000_cart"> |
| 261 | <feature name="slot" value="std" /> |
| 241 | 262 | <dataarea name="rom" size="2048"> |
| 242 | 263 | <rom name="memory2.bin" size="2048" crc="d68da80a" sha1="4cf0f74b4a0d3305c9ffa830c067a054fab25419" offset="0" /> |
| 243 | 264 | </dataarea> |
| r32504 | r32505 | |
| 250 | 271 | <year>19??</year> |
| 251 | 272 | <publisher>Interton</publisher> |
| 252 | 273 | <part name="cart" interface="vc4000_cart"> |
| 274 | <feature name="slot" value="std" /> |
| 253 | 275 | <dataarea name="rom" size="2048"> |
| 254 | 276 | <rom name="reversi.bin" size="2048" crc="619c07c9" sha1="30c595f60e464a93c69579ae9bffdd42ee2f73e7" offset="0" /> |
| 255 | 277 | </dataarea> |
| r32504 | r32505 | |
| 262 | 284 | <year>19??</year> |
| 263 | 285 | <publisher>Interton</publisher> |
| 264 | 286 | <part name="cart" interface="vc4000_cart"> |
| 265 | | <!-- 1k internal ram --> |
| 287 | <feature name="slot" value="chess2" /> |
| 266 | 288 | <dataarea name="rom" size="6144"> |
| 267 | 289 | <!-- redump needed, should be a 4k and a 2k file --> |
| 268 | 290 | <rom name="chess2.bin" size="6144" crc="1b948aeb" sha1="0da5c4e865ce4a6b0293e51949eb0fb525881cf0" offset="0" /> |
| 269 | 291 | </dataarea> |
| 292 | <dataarea name="ram" size="1024"> |
| 293 | </dataarea> |
| 270 | 294 | </part> |
| 271 | 295 | </software> |
| 272 | 296 | |
| r32504 | r32505 | |
| 276 | 300 | <year>19??</year> |
| 277 | 301 | <publisher>Interton</publisher> |
| 278 | 302 | <part name="cart" interface="vc4000_cart"> |
| 303 | <feature name="slot" value="std" /> |
| 279 | 304 | <dataarea name="rom" size="2048"> |
| 280 | 305 | <rom name="pinball.bin" size="2048" crc="add99c6e" sha1="85b904e5bc37e5a44c88c000307401438285910a" offset="0" /> |
| 281 | 306 | </dataarea> |
| r32504 | r32505 | |
| 288 | 313 | <year>1979</year> |
| 289 | 314 | <publisher>Interton</publisher> |
| 290 | 315 | <part name="cart" interface="vc4000_cart"> |
| 316 | <feature name="slot" value="std" /> |
| 291 | 317 | <dataarea name="rom" size="2048"> |
| 292 | 318 | <rom name="soccer.bin" size="2048" crc="05af8228" sha1="fd4212b955688aec985102d84575cae55bc651eb" offset="0" /> |
| 293 | 319 | </dataarea> |
| r32504 | r32505 | |
| 300 | 326 | <year>19??</year> |
| 301 | 327 | <publisher>Interton</publisher> |
| 302 | 328 | <part name="cart" interface="vc4000_cart"> |
| 329 | <feature name="slot" value="std" /> |
| 303 | 330 | <dataarea name="rom" size="2048"> |
| 304 | 331 | <rom name="bowling.bin" size="2048" crc="a47fe1bf" sha1="e637787ed9d868f85339a413bbf2989a785fa2a7" offset="0" /> |
| 305 | 332 | </dataarea> |
| r32504 | r32505 | |
| 312 | 339 | <year>19??</year> |
| 313 | 340 | <publisher>Interton</publisher> |
| 314 | 341 | <part name="cart" interface="vc4000_cart"> |
| 315 | | <!-- 1k internal ram --> |
| 342 | <feature name="slot" value="ram1k" /> |
| 316 | 343 | <dataarea name="rom" size="4096"> |
| 317 | 344 | <rom name="draughts.bin" size="4096" crc="7b868473" sha1="2557172b07c0ebaffe18a345cfa88ef24febecb0" offset="0" /> |
| 318 | 345 | </dataarea> |
| 346 | <dataarea name="ram" size="1024"> |
| 347 | </dataarea> |
| 319 | 348 | </part> |
| 320 | 349 | </software> |
| 321 | 350 | |
| r32504 | r32505 | |
| 325 | 354 | <year>19??</year> |
| 326 | 355 | <publisher>Interton</publisher> |
| 327 | 356 | <part name="cart" interface="vc4000_cart"> |
| 357 | <feature name="slot" value="std" /> |
| 328 | 358 | <dataarea name="rom" size="4096"> |
| 329 | 359 | <rom name="golf.bin" size="4096" crc="d399ce07" sha1="41b6c7d3bc8ea2ef9777066dfd74ec2c5932ddb6" offset="0" /> |
| 330 | 360 | </dataarea> |
| r32504 | r32505 | |
| 337 | 367 | <year>19??</year> |
| 338 | 368 | <publisher><unknown></publisher> |
| 339 | 369 | <part name="cart" interface="vc4000_cart"> |
| 370 | <feature name="slot" value="std" /> |
| 340 | 371 | <dataarea name="rom" size="4096"> |
| 341 | 372 | <rom name="cockpit.bin" size="4096" crc="11dd7f0d" sha1="456e9c5d1d48877e8c5eb5e5499c911a73e30584" offset="0" /> |
| 342 | 373 | </dataarea> |
| r32504 | r32505 | |
| 349 | 380 | <year>19??</year> |
| 350 | 381 | <publisher>Interton</publisher> |
| 351 | 382 | <part name="cart" interface="vc4000_cart"> |
| 383 | <feature name="slot" value="std" /> |
| 352 | 384 | <dataarea name="rom" size="4096"> |
| 353 | 385 | <rom name="metropol.bin" size="4096" crc="a640a330" sha1="3b9b1b5c35d3e2ef909e1498f96026cfb437ea80" offset="0" /> |
| 354 | 386 | </dataarea> |
| r32504 | r32505 | |
| 361 | 393 | <year>19??</year> |
| 362 | 394 | <publisher>Interton</publisher> |
| 363 | 395 | <part name="cart" interface="vc4000_cart"> |
| 396 | <feature name="slot" value="std" /> |
| 364 | 397 | <dataarea name="rom" size="2048"> |
| 365 | 398 | <rom name="solitair.bin" size="2048" crc="08209d98" sha1="bf96ceb173f17017b99cf8d38ed55e66b5320260" offset="0" /> |
| 366 | 399 | </dataarea> |
| r32504 | r32505 | |
| 373 | 406 | <year>19??</year> |
| 374 | 407 | <publisher>Interton</publisher> |
| 375 | 408 | <part name="cart" interface="vc4000_cart"> |
| 409 | <feature name="slot" value="std" /> |
| 376 | 410 | <dataarea name="rom" size="2048"> |
| 377 | 411 | <rom name="casino.bin" size="2048" crc="50fd6a18" sha1="7d2549a3a3373592d2eb88c3a5c9918b32fddafd" offset="0" /> |
| 378 | 412 | </dataarea> |
| r32504 | r32505 | |
| 385 | 419 | <year>19??</year> |
| 386 | 420 | <publisher>Interton</publisher> |
| 387 | 421 | <part name="cart" interface="vc4000_cart"> |
| 422 | <feature name="slot" value="std" /> |
| 388 | 423 | <dataarea name="rom" size="2048"> |
| 389 | 424 | <rom name="invaders.bin" size="2048" crc="9497204a" sha1="1fba78476ee93f09b6db033ec4d5332498ebc4d0" offset="0" /> |
| 390 | 425 | </dataarea> |
| r32504 | r32505 | |
| 397 | 432 | <year>19??</year> |
| 398 | 433 | <publisher>Interton</publisher> |
| 399 | 434 | <part name="cart" interface="vc4000_cart"> |
| 435 | <feature name="slot" value="std" /> |
| 400 | 436 | <dataarea name="rom" size="2048"> |
| 401 | 437 | <rom name="superinv.bin" size="2048" crc="a46c2f9e" sha1="bf851dbd92a539232c89fe2f6c4e2759b61ef3d4" offset="0" /> |
| 402 | 438 | </dataarea> |
| r32504 | r32505 | |
| 412 | 448 | <year>19??</year> |
| 413 | 449 | <publisher>Interton</publisher> |
| 414 | 450 | <part name="cart" interface="vc4000_cart"> |
| 415 | | <!-- 1k internal ram --> |
| 451 | <feature name="slot" value="ram1k" /> |
| 416 | 452 | <dataarea name="rom" size="4096"> |
| 417 | 453 | <rom name="backgamm.bin" size="4096" crc="08cd8135" sha1="942f65a68e4116b1da66df57c09829f9d9b62659" offset="0" /> |
| 418 | 454 | </dataarea> |
| 455 | <dataarea name="ram" size="1024"> |
| 456 | </dataarea> |
| 419 | 457 | </part> |
| 420 | 458 | </software> |
| 421 | 459 | |
| r32504 | r32505 | |
| 425 | 463 | <year>19??</year> |
| 426 | 464 | <publisher>Interton</publisher> |
| 427 | 465 | <part name="cart" interface="vc4000_cart"> |
| 466 | <feature name="slot" value="ram1k" /> |
| 428 | 467 | <dataarea name="rom" size="4096"> |
| 429 | 468 | <rom name="mnstrman.bin" size="4096" crc="27cce96f" sha1="f55798c634be020b46699f2e3e71301230db86d2" offset="0" /> |
| 430 | 469 | </dataarea> |
| r32504 | r32505 | |
| 437 | 476 | <year>19??</year> |
| 438 | 477 | <publisher>Interton</publisher> |
| 439 | 478 | <part name="cart" interface="vc4000_cart"> |
| 479 | <feature name="slot" value="std" /> |
| 440 | 480 | <dataarea name="rom" size="2048"> |
| 441 | 481 | <rom name="hyperspa.bin" size="2048" crc="b3ed1129" sha1="4c0f862f6fa4850e5e7305b90df71f7b899f0c27" offset="0" /> |
| 442 | 482 | </dataarea> |
| r32504 | r32505 | |
| 451 | 491 | <year>19??</year> |
| 452 | 492 | <publisher>Interton</publisher> |
| 453 | 493 | <part name="cart" interface="vc4000_cart"> |
| 494 | <feature name="slot" value="std" /> |
| 454 | 495 | <dataarea name="rom" size="4096"> |
| 455 | 496 | <rom name="suprspac.bin" size="4096" crc="306e37bb" sha1="b11e9fed7700d5192b05dfabeca7b23feca64540" offset="0" /> |
| 456 | 497 | </dataarea> |