1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
|
// license:BSD-3-Clause
// copyright-holders:Fabio Priuli
/***********************************************************************************************************
Interton Electronic VC 4000 cart emulation
***********************************************************************************************************/
/* Game List and Emulation Status
When you load a game it will normally appear to be unresponsive. Most carts contain a number of variants
of each game (e.g. Difficulty, Player1 vs Player2 or Player1 vs Computer, etc).
Press F2 (if needed) to select which game variant you would like to play. The variant number will increment
on-screen. When you've made your choice, press F1 to start. The main keys are unlabelled, because an overlay
is provided with each cart. See below for a guide. You need to read the instructions that come with each game.
In some games, the joystick is used like 4 buttons, and other games like a paddle. The two modes are
incompatible when using a keyboard. Therefore (in the emulation) a config dipswitch is used. The preferred
setting is listed below.
(AC = Auto-centre, NAC = no auto-centre, 90 = turn controller 90 degrees).
The list is rather incomplete, information will be added as it becomes available.
The game names and numbers were obtained from the Amigan Software site.
Cart Num Name
----------------------------------------------
1. Grand Prix / Car Races / Autosport / Motor Racing / Road Race
Config: Paddle, NAC
Status: Working
Controls: Left-Right: Steer; Up: Accelerate
2. Black Jack
Status: Not working (some digits missing; indicator missing; dealer's cards missing)
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)
Indicator: E make a bet then deal; I choose insurance; - you lost; + you won; X hit or stay
3. Olympics / Paddle Games / Bat & Ball / Pro Sport 60 / Sportsworld
Config: Paddle, NAC
Status: Working
4. Tank Battle / Combat
Config: Button, 90
Status: Working
Controls: Left-Right: Steer; Up: Accelerate; Fire: Shoot
5. Maths 1
Status: Working
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
6. Maths 2
Status: Not working
Controls: Same as above.
7. Air Sea Attack / Air Sea Battle
Config: Button, 90
Status: Working
Controls: Left-Right: Move; Fire: Shoot
8. Treasure Hunt / Capture the Flag / Concentration / Memory Match
Config: Buttons
Status: Working
9. Labyrinth / Maze / Intelligence 1
Config: Buttons
Status: Working
10. Winter Sports
Notes: Background colours should be Cyan and White instead of Red and Black
11. Hippodrome / Horse Race
12. Hunting / Shooting Gallery
13. Chess 1
Status: Can't see what you're typing, wrong colours
14. Moto-cros
15. Four in a row / Intelligence 2
Config: Buttons
Status: Working
Notes: Seems the unused squares should be black. The screen jumps about while the computer is "thinking".
16. Code Breaker / Master Mind / Intelligence 3 / Challenge
17. Circus
STatus: severe gfx issues
18. Boxing / Prize Fight
19. Outer Space / Spacewar / Space Attack / Outer Space Combat
20. Melody Simon / Musical Memory / Follow the Leader / Musical Games / Electronic Music / Face the Music
21. Capture / Othello / Reversi / Attack / Intelligence 4
Config: Buttons
Status: Working
Notes: Seems the unused squares should be black
22. Chess 2
Status: Can't see what you're typing, wrong colours
23. Pinball / Flipper / Arcade
Status: gfx issues
24. Soccer
25. Bowling / NinePins
Config: Paddle, rotated 90 degrees, up/down autocentre, left-right does not
Status: Working
26. Draughts
27. Golf
Status: gfx issues
28. Cockpit
Status: gfx issues
29. Metropolis / Hangman
Status: gfx issues
30. Solitaire
31. Casino
Status: gfx issues, items missing and unplayable
Controls: 1 or 3=START; q=GO; E=STOP; D=$; Z=^; X=tens; C=units
32. Invaders / Alien Invasion / Earth Invasion
Status: Works
Config: Buttons
33. Super Invaders
Status: Stars are missing, colours are wrong
Config: Buttons (90)
36. BackGammon
Status: Not all counters are visible, Dice & game number not visible.
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
37. Monster Man / Spider's Web
Status: Works
Config: Buttons
38. Hyperspace
Status: Works
Config: Buttons (90)
Controls: 3 - status button; Q,W,E,A,S,D,Z,X,C selects which galaxy to visit
40. Super Space
Status: Works, some small gfx issues near the bottom
Config: Buttons
Acetronic: (dumps are compatible)
------------
* Shooting Gallery
Status: works but screen flickers
Config: Buttons
* Planet Defender
Status: Works
Config: Paddle (NAC)
* Laser Attack
Status: Works
Config: Buttons
Public Domain: (written for emulators, may not work on real hardware)
---------------
* Picture (no controls) - works
* Wincadia Stub (no controls) - works, small graphic error */
#include "emu.h"
#include "rom.h"
//-------------------------------------------------
// vc4000_rom_device - constructor
//-------------------------------------------------
DEFINE_DEVICE_TYPE(VC4000_ROM_STD, vc4000_rom_device, "vc4000_rom", "VC 4000 Standard Carts")
DEFINE_DEVICE_TYPE(VC4000_ROM_ROM4K, vc4000_rom4k_device, "vc4000_rom4k", "VC 4000 Carts w/4K ROM")
DEFINE_DEVICE_TYPE(VC4000_ROM_RAM1K, vc4000_ram1k_device, "vc4000_ram1k", "VC 4000 Carts w/1K RAM")
DEFINE_DEVICE_TYPE(VC4000_ROM_CHESS2, vc4000_chess2_device, "vc4000_chess2", "VC 4000 Chess II Cart")
vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock), device_vc4000_cart_interface(mconfig, *this)
{
}
vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: vc4000_rom_device(mconfig, VC4000_ROM_STD, tag, owner, clock)
{
}
vc4000_rom4k_device::vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: vc4000_rom_device(mconfig, VC4000_ROM_ROM4K, tag, owner, clock)
{
}
vc4000_ram1k_device::vc4000_ram1k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, tag, owner, clock)
{
}
vc4000_chess2_device::vc4000_chess2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: vc4000_rom_device(mconfig, VC4000_ROM_CHESS2, tag, owner, clock)
{
}
/*-------------------------------------------------
mapper specific handlers
-------------------------------------------------*/
uint8_t vc4000_rom_device::read_rom(offs_t offset)
{
if (offset < m_rom_size)
return m_rom[offset];
else
return 0xff;
}
uint8_t vc4000_ram1k_device::read_ram(offs_t offset)
{
return m_ram[offset & (m_ram.size() - 1)];
}
void vc4000_ram1k_device::write_ram(offs_t offset, uint8_t data)
{
m_ram[offset & (m_ram.size() - 1)] = data;
}
uint8_t vc4000_chess2_device::extra_rom(offs_t offset)
{
if (offset < (m_rom_size - 0x2000))
return m_rom[offset + 0x2000];
else
return 0xff;
}
uint8_t vc4000_chess2_device::read_ram(offs_t offset)
{
return m_ram[offset & (m_ram.size() - 1)];
}
void vc4000_chess2_device::write_ram(offs_t offset, uint8_t data)
{
m_ram[offset & (m_ram.size() - 1)] = data;
}
|