| Previous | 15994 Revisions | Next |
| r9536 Monday 8th November, 2010 at 09:25:44 UTC by Nathan Woods |
|---|
| Updating to MAME 0.140u1 |
| [docs] | messnew.txt |
| [src/emu] | cheat.c cheat.h render.h rendfont.c rendfont.h |
| [src/emu/cpu/dsp56k] | inst.h |
| [src/emu/debug] | debugcmd.c debugcpu.c debugcpu.h debugvw.c express.c express.h |
| [src/emu/sound] | asc.c disc_dev.c disc_mth.c |
| [src/lib/util] | unicode.h |
| [src/mame] | mame.mak mamedriv.c |
| [src/mame/audio] | bzone.c copsnrob.c* dkong.c mario.c skyraid.c |
| [src/mame/drivers] | artmagic.c blitz.c copsnrob.c cubocd32.c djboy.c dynax.c funworld.c gaelco.c lkage.c megadriv.c meritm.c naomi.c neodrvr.c royalmah.c segas16b.c system16.c tmaster.c |
| [src/mame/includes] | copsnrob.h djboy.h lkage.h |
| [src/mame/machine] | cubocd32.c naomibd.c |
| [src/mame/video] | funworld.c lkage.c |
| [src/mess] | mess.mak |
| [src/osd] | osdepend.c osdepend.h |
| [src/osd/osdmini] | minifile.c osdmini.h |
| [src/osd/sdl] | osdsdl.h |
| [src/osd/windows] | winmain.c winmain.h |
| r9535 | r9536 | |
|---|---|---|
| 237 | 237 | |
| 238 | 238 | #define CD4066_R_ON 270 |
| 239 | 239 | |
| 240 | ||
| 240 | ||
| 241 | 241 | { |
| 242 | | |
| 242 | DISCRETE | |
| 243 | 243 | |
| 244 | 244 | int in0 = (BZONE_CUSTOM_FILTER__IN0 == 0) ? 0 : 1; |
| 245 | 245 | double v; |
| r9535 | r9536 | |
| 254 | 254 | node->output[0] += (v - node->output[0]) * context->exponent; |
| 255 | 255 | } |
| 256 | 256 | |
| 257 | ||
| 257 | ||
| 258 | 258 | { |
| 259 | | |
| 259 | DISCRETE | |
| 260 | 260 | |
| 261 | 261 | context->gain[0] = BZONE_CUSTOM_FILTER__R1 + BZONE_CUSTOM_FILTER__R2; |
| 262 | 262 | context->gain[0] = BZONE_CUSTOM_FILTER__R5 / context->gain[0] + 1; |
| r0 | r9536 | |
|---|---|---|
| 1 | /************************************************************************ | |
| 2 | * copsnrob Sound System Analog emulation | |
| 3 | * Nov 2010, Derrick Renaud | |
| 4 | ************************************************************************/ | |
| 5 | #include "emu.h" | |
| 6 | #include "includes/copsnrob.h" | |
| 7 | #include "sound/discrete.h" | |
| 8 | ||
| 9 | ||
| 10 | /* Discrete Sound Input Nodes */ | |
| 11 | #define COPSNROB_MOTOR0_INV NODE_01 | |
| 12 | #define COPSNROB_MOTOR1_INV NODE_02 | |
| 13 | #define COPSNROB_MOTOR2_INV NODE_03 | |
| 14 | #define COPSNROB_MOTOR3_INV NODE_04 | |
| 15 | #define COPSNROB_ZINGS_INV NODE_05 | |
| 16 | #define COPSNROB_FIRES_INV NODE_06 | |
| 17 | #define COPSNROB_CRASH_INV NODE_07 | |
| 18 | #define COPSNROB_SCREECH_INV NODE_08 | |
| 19 | #define COPSNROB_AUDIO_ENABLE NODE_09 | |
| 20 | ||
| 21 | /* Discrete Sound Output Nodes */ | |
| 22 | #define COPSNROB_MOTOR0_SND NODE_11 | |
| 23 | #define COPSNROB_MOTOR1_SND NODE_12 | |
| 24 | #define COPSNROB_MOTOR2_SND NODE_13 | |
| 25 | #define COPSNROB_MOTOR3_SND NODE_14 | |
| 26 | #define COPSNROB_FZ_SND NODE_15 | |
| 27 | #define COPSNROB_CRASH_SND NODE_16 | |
| 28 | #define COPSNROB_SCREECH_SND NODE_17 | |
| 29 | #define COPSNROB_NOISE_1 NODE_18 | |
| 30 | #define COPSNROB_NOISE_2 NODE_18_01 | |
| 31 | ||
| 32 | /* Parts List - Resistors */ | |
| 33 | #define COPSNROB_R16 RES_K(10) | |
| 34 | #define COPSNROB_R18 RES_K(100) | |
| 35 | #define COPSNROB_R19 RES_K(100) | |
| 36 | #define COPSNROB_R20 RES_K(100) | |
| 37 | #define COPSNROB_R21 RES_K(47) | |
| 38 | #define COPSNROB_R25 RES_K(47) | |
| 39 | #define COPSNROB_R26 RES_K(150) | |
| 40 | #define COPSNROB_R27 RES_K(22) | |
| 41 | #define COPSNROB_R28 RES_K(18) | |
| 42 | #define COPSNROB_R33 RES_K(10) | |
| 43 | #define COPSNROB_R35 RES_K(10) | |
| 44 | #define COPSNROB_R36 RES_K(15) | |
| 45 | #define COPSNROB_R37 RES_K(4.7) | |
| 46 | #define COPSNROB_R38 RES_K(15) | |
| 47 | #define COPSNROB_R39 RES_K(10) | |
| 48 | #define COPSNROB_R41 RES_K(33) | |
| 49 | #define COPSNROB_R42 RES_K(33) | |
| 50 | #define COPSNROB_R47 RES_K(10) | |
| 51 | #define COPSNROB_R48 RES_K(1) | |
| 52 | #define COPSNROB_R49 RES_K(47) | |
| 53 | #define COPSNROB_R50 RES_K(47) | |
| 54 | #define COPSNROB_R53 RES_K(47) | |
| 55 | #define COPSNROB_R54 RES_K(22) | |
| 56 | #define COPSNROB_R55 RES_K(47) | |
| 57 | #define COPSNROB_R56 RES_K(470) | |
| 58 | #define COPSNROB_R57 RES_K(820) | |
| 59 | #define COPSNROB_R58 RES_K(68) | |
| 60 | #define COPSNROB_R59 RES_K(1) | |
| 61 | #define COPSNROB_R64 RES_K(47) | |
| 62 | #define COPSNROB_R65 RES_K(4.7) | |
| 63 | #define COPSNROB_R66 RES_K(1.5) | |
| 64 | #define COPSNROB_R69 RES_K(330) | |
| 65 | #define COPSNROB_R70 RES_K(330) | |
| 66 | #define COPSNROB_R71 RES_K(100) | |
| 67 | #define COPSNROB_R72 RES_K(100) | |
| 68 | #define COPSNROB_R73 RES_K(47) | |
| 69 | #define COPSNROB_R74 RES_K(1) | |
| 70 | #define COPSNROB_R75 RES_K(1) | |
| 71 | #define COPSNROB_R76 RES_K(12) | |
| 72 | #define COPSNROB_R77 RES_K(33) | |
| 73 | #define COPSNROB_R78 RES_K(100) | |
| 74 | #define COPSNROB_R79 RES_K(2.2) | |
| 75 | #define COPSNROB_R80 RES_K(1) | |
| 76 | #define COPSNROB_R81 RES_K(8.2) | |
| 77 | #define COPSNROB_R82 RES_K(3.9) | |
| 78 | #define COPSNROB_R83 RES_K(27) | |
| 79 | #define COPSNROB_R84 RES_K(15) | |
| 80 | #define COPSNROB_R85 (330) | |
| 81 | #define COPSNROB_R86 RES_K(330) | |
| 82 | #define COPSNROB_R87 (820) | |
| 83 | #define COPSNROB_R88 RES_K(1) | |
| 84 | #define COPSNROB_R89 RES_K(1) | |
| 85 | #define COPSNROB_R92 RES_K(100) | |
| 86 | #define COPSNROB_R93 RES_K(100) | |
| 87 | #define COPSNROB_R94 RES_K(10) | |
| 88 | ||
| 89 | /* Parts List - Capacitors */ | |
| 90 | #define COPSNROB_C3 CAP_U(100) | |
| 91 | #define COPSNROB_C12 CAP_U(0.1) | |
| 92 | #define COPSNROB_C13 CAP_U(0.1) | |
| 93 | #define COPSNROB_C17 CAP_U(0.001) | |
| 94 | #define COPSNROB_C19 CAP_U(10) | |
| 95 | #define COPSNROB_C20 CAP_U(0.01) | |
| 96 | #define COPSNROB_C23 CAP_U(0.1) | |
| 97 | #define COPSNROB_C24 CAP_U(0.22) | |
| 98 | #define COPSNROB_C28 CAP_U(1) | |
| 99 | #define COPSNROB_C30 CAP_U(0.01) | |
| 100 | #define COPSNROB_C31 CAP_U(0.1) | |
| 101 | #define COPSNROB_C32 CAP_U(5) | |
| 102 | #define COPSNROB_C33 CAP_U(10) | |
| 103 | #define COPSNROB_C36 CAP_U(100) | |
| 104 | #define COPSNROB_C39 CAP_U(0.1) | |
| 105 | #define COPSNROB_C37 CAP_U(0.1) | |
| 106 | #define COPSNROB_C40 CAP_U(0.1) | |
| 107 | #define COPSNROB_C41 CAP_U(0.03) | |
| 108 | #define COPSNROB_C42 CAP_U(0.047) | |
| 109 | #define COPSNROB_C43 CAP_U(0.047) | |
| 110 | #define COPSNROB_C55 CAP_U(0.1) | |
| 111 | #define COPSNROB_C58 CAP_U(0.1) | |
| 112 | #define COPSNROB_C59 CAP_U(0.1) | |
| 113 | ||
| 114 | /* Timing values */ | |
| 115 | #define COPSNROB_2V (15750/2/2) /* has to be verified */ | |
| 116 | ||
| 117 | ||
| 118 | static const discrete_555_desc copsnrob_motor23_555_1 = | |
| 119 | { | |
| 120 | DISC_555_OUT_SQW, | |
| 121 | 5, DEFAULT_555_VALUES | |
| 122 | }; | |
| 123 | ||
| 124 | static const discrete_555_desc copsnrob_motor23_555_2 = | |
| 125 | { | |
| 126 | DISC_555_OUT_ENERGY | DISC_555_TRIGGER_IS_VOLTAGE, | |
| 127 | 5, DEFAULT_555_VALUES | |
| 128 | }; | |
| 129 | ||
| 130 | static const discrete_op_amp_filt_info copsnrob_motor23_filter = | |
| 131 | { | |
| 132 | COPSNROB_R28, 0, COPSNROB_R87, 0, COPSNROB_R86, /* r1, r2, r3, r4, rF */ | |
| 133 | COPSNROB_C42, COPSNROB_C43, 0, /* c1, c2, c3 */ | |
| 134 | 5.0 * RES_VOLTAGE_DIVIDER(COPSNROB_R88, COPSNROB_R89), 5, 0 /* vRef, vP, vN */ | |
| 135 | }; | |
| 136 | ||
| 137 | static const discrete_dac_r1_ladder copsnrob_crash_dac = | |
| 138 | { | |
| 139 | 4, /* ladderLength */ | |
| 140 | {COPSNROB_R81, COPSNROB_R82, COPSNROB_R79, COPSNROB_R80}, | |
| 141 | 0, 0, 0, COPSNROB_C58 /* vBias, rBias, rGnd, cFilter */ | |
| 142 | }; | |
| 143 | ||
| 144 | static const discrete_mixer_desc copsnrob_final_mixer01 = | |
| 145 | { | |
| 146 | DISC_MIXER_IS_RESISTOR, | |
| 147 | {COPSNROB_R21, COPSNROB_R25, COPSNROB_R33, COPSNROB_R70, COPSNROB_R71}, | |
| 148 | {0}, {0}, 0, COPSNROB_R35, 0, COPSNROB_C59, /* r_node{}, c{}, rI, rF, cF, cAmp */ | |
| 149 | 0, 1 /* vRef, gain */ | |
| 150 | }; | |
| 151 | ||
| 152 | static const discrete_dac_r1_ladder copsnrob_motor01_cc_dac = | |
| 153 | { | |
| 154 | 1, /* ladderLength */ | |
| 155 | {COPSNROB_R56}, | |
| 156 | 5.0 - 0.5, COPSNROB_R58, COPSNROB_R57, COPSNROB_C33 /* vBias; rBias; rGnd; cFilter */ | |
| 157 | }; | |
| 158 | ||
| 159 | static const discrete_dac_r1_ladder copsnrob_motor01_out_dac = | |
| 160 | { | |
| 161 | 4, /* ladderLength */ | |
| 162 | {COPSNROB_R20, COPSNROB_R18, 0, COPSNROB_R19}, | |
| 163 | 0, 0, 0, COPSNROB_C12 /* vBias; rBias; rGnd; cFilter */ | |
| 164 | }; | |
| 165 | ||
| 166 | static const discrete_mixer_desc copsnrob_final_mixer23 = | |
| 167 | { | |
| 168 | DISC_MIXER_IS_RESISTOR, | |
| 169 | {COPSNROB_R93, COPSNROB_R92, COPSNROB_R72, COPSNROB_R69, COPSNROB_R16}, | |
| 170 | {0}, {0}, 0, COPSNROB_R94, 0, COPSNROB_C55, /* r_node{}, c{}, rI, rF, cF, cAmp */ | |
| 171 | 0, 1 /* vRef, gain */ | |
| 172 | }; | |
| 173 | ||
| 174 | static const discrete_dac_r1_ladder copsnrob_motor23_cv_dac = | |
| 175 | { | |
| 176 | 1, /* ladderLength */ | |
| 177 | {COPSNROB_R65}, | |
| 178 | 5, RES_K(5), RES_K(10), COPSNROB_C36 /* vBias; rBias; rGnd; cFilter */ | |
| 179 | }; | |
| 180 | ||
| 181 | static const discrete_555_cc_desc copsnrob_motor01_555cc = | |
| 182 | { | |
| 183 | ||
| 184 | DISC_555_OUT_COUNT_R | DISCRETE_555_CC_TO_DISCHARGE_PIN, | |
| 185 | 5, /* v_pos */ | |
| 186 | DEFAULT_555_CC_SOURCE, | |
| 187 | 1, /* v_out_high - ignored */ | |
| 188 | 0.6 /* v_cc_junction */ | |
| 189 | }; | |
| 190 | ||
| 191 | ||
| 192 | #define COPSNROB_MOTOR01_BASE_NODE NODE_20 | |
| 193 | #define COPSNROB_MOTOR23_BASE_NODE NODE_30 | |
| 194 | #define COPSNROB_NODE(_base, _num, _offset) NODE_RELATIVE(_base, _num * 100 + _offset) | |
| 195 | #define COPSNROB_MOTOR01_NODE(_num, _offset) COPSNROB_NODE(COPSNROB_MOTOR01_BASE_NODE, _num, _offset) | |
| 196 | #define COPSNROB_MOTOR23_NODE(_num, _offset) COPSNROB_NODE(COPSNROB_MOTOR23_BASE_NODE, _num, _offset) | |
| 197 | ||
| 198 | ||
| 199 | /************************************************ | |
| 200 | * MOTOR0/1 Definition Start | |
| 201 | ************************************************/ | |
| 202 | #define COPSNROB_MOTOR01(_output, _input, _num) \ | |
| 203 | /* simulate the RC connected to the transistor with a DAC */ \ | |
| 204 | DISCRETE_DAC_R1(COPSNROB_MOTOR01_NODE(_num, 0), \ | |
| 205 | _input, 4.2, &copsnrob_motor01_cc_dac) /* DATA; VDATA - TTL with light load */ \ | |
| 206 | DISCRETE_555_CC(COPSNROB_MOTOR01_NODE(_num, 1), /* IC F2, pin 10 from IC F3, pin 9 */ \ | |
| 207 | 1, /* RESET - IC F3, pin 10 */ \ | |
| 208 | COPSNROB_MOTOR01_NODE(_num, 0), /* VIN */ \ | |
| 209 | COPSNROB_R53, COPSNROB_C20, 0, 0, COPSNROB_R39, /* R; C; RBIAS; RGND; RDIS */ \ | |
| 210 | &copsnrob_motor01_555cc) \ | |
| 211 | /* IC D2, pin 12 and IC E3, pin 5 make a /4 counter */ \ | |
| 212 | DISCRETE_COUNTER(COPSNROB_MOTOR01_NODE(_num, 2), /* IC E3, pin 5 */ \ | |
| 213 | 1, 0, /* ENAB; RESET */ \ | |
| 214 | COPSNROB_MOTOR01_NODE(_num, 1), /* IC D2, pin 1 */ \ | |
| 215 | 0, 3, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT) /* MIN; MAX; DIR; INIT0; CLKTYPE */ \ | |
| 216 | DISCRETE_COUNTER_7492(COPSNROB_MOTOR01_NODE(_num, 3), /* IC E3, pins 11, 9, & 8 */\ | |
| 217 | 1, 0, /* ENAB; RESET */ \ | |
| 218 | COPSNROB_MOTOR01_NODE(_num, 1), /* IC E3, pin 14 */ \ | |
| 219 | DISC_CLK_BY_COUNT) /* CLKTYPE */ \ | |
| 220 | DISCRETE_TRANSFORM3(COPSNROB_MOTOR01_NODE(_num, 4), \ | |
| 221 | COPSNROB_MOTOR01_NODE(_num, 2), /* INP0 */ \ | |
| 222 | COPSNROB_MOTOR01_NODE(_num, 3), 2, /* INP1, INP2 */ \ | |
| 223 | "02&2/12*+") /* get bits ready for DAC */\ | |
| 224 | DISCRETE_DAC_R1(_output, \ | |
| 225 | COPSNROB_MOTOR01_NODE(_num, 4), 4.2, &copsnrob_motor01_out_dac) /* DATA; VDATA - TTL with light load */ | |
| 226 | ||
| 227 | /************************************************ | |
| 228 | * MOTOR0/1 Definition Start | |
| 229 | ************************************************/ | |
| 230 | ||
| 231 | ||
| 232 | /************************************************ | |
| 233 | * MOTOR2/3 Definition Start | |
| 234 | ************************************************/ | |
| 235 | #define COPSNROB_MOTOR23(_output, _input, _num) \ | |
| 236 | /* simulate the RC connected to the 555 CV pin with a DAC */ \ | |
| 237 | DISCRETE_DAC_R1(COPSNROB_MOTOR23_NODE(_num, 0), \ | |
| 238 | _input, 4.2, &copsnrob_motor23_cv_dac) /* DATA; VDATA - TTL with light load */ \ | |
| 239 | DISCRETE_555_ASTABLE_CV(COPSNROB_MOTOR23_NODE(_num, 1), /* IC J2, pin 5 */ \ | |
| 240 | 1, /* RESET */ \ | |
| 241 | COPSNROB_R64, COPSNROB_R42, COPSNROB_C24, \ | |
| 242 | COPSNROB_MOTOR23_NODE(_num, 0), /* CTRLV - IC J2, pin 3 */ \ | |
| 243 | &copsnrob_motor23_555_1) \ | |
| 244 | DISCRETE_CRFILTER_VREF(COPSNROB_MOTOR23_NODE(_num, 2), \ | |
| 245 | COPSNROB_MOTOR23_NODE(_num, 1), /* IN0 */ \ | |
| 246 | RES_3_PARALLEL(COPSNROB_R27, RES_K(10), RES_K(5)), COPSNROB_C17, /* R is in parallel with 555 internal R */ \ | |
| 247 | 5.0 * RES_VOLTAGE_DIVIDER(RES_2_PARALLEL(COPSNROB_R27, RES_K(10)), RES_K(5))) /* VREF */ \ | |
| 248 | DISCRETE_555_MSTABLE(COPSNROB_MOTOR23_NODE(_num, 3), /* IC J3, pin 9 */ \ | |
| 249 | 1, /* RESET */ \ | |
| 250 | COPSNROB_MOTOR23_NODE(_num, 2), /* IC J3, pin 8 */ \ | |
| 251 | COPSNROB_R41, COPSNROB_C23, \ | |
| 252 | &copsnrob_motor23_555_2) \ | |
| 253 | DISCRETE_OP_AMP_FILTER(_output, /* IC L4, pin 7 */ \ | |
| 254 | 1, /* ENAB */ \ | |
| 255 | COPSNROB_MOTOR23_NODE(_num, 3), 0, /* INP0; INP1 */ \ | |
| 256 | DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &copsnrob_motor23_filter) | |
| 257 | /************************************************ | |
| 258 | * MOTOR2/3 Definition End | |
| 259 | ************************************************/ | |
| 260 | ||
| 261 | ||
| 262 | /************************************************ | |
| 263 | * CUSTOM_NOISE Definition Start | |
| 264 | * - output is energy | |
| 265 | ************************************************/ | |
| 266 | #define COPSNROB_CUSTOM_NOISE__FREQ DISCRETE_INPUT(0) | |
| 267 | ||
| 268 | struct copsnrob_custom_noise_context | |
| 269 | { | |
| 270 | int flip_flop; | |
| 271 | int noise1_had_xtime; | |
| 272 | int noise2_had_xtime; | |
| 273 | UINT8 high_byte; | |
| 274 | UINT8 low_byte; | |
| 275 | double t_used; | |
| 276 | double t1; | |
| 277 | }; | |
| 278 | ||
| 279 | #define COPSNROB_CUSTOM_NOISE_HIGH 4.2 | |
| 280 | ||
| 281 | DISCRETE_STEP(copsnrob_custom_noise) | |
| 282 | { | |
| 283 | DISCRETE_DECLARE_CONTEXT(copsnrob_custom_noise) | |
| 284 | ||
| 285 | double t_used = context->t_used; | |
| 286 | double t1 = context->t1; | |
| 287 | double x_time = 0; | |
| 288 | UINT8 low_byte = context->low_byte; | |
| 289 | UINT8 high_byte = context->high_byte; | |
| 290 | UINT8 xnor_out; /* IC F2, pin 2 */ | |
| 291 | int last_noise1_bit = (low_byte >> 4) & 0x01; | |
| 292 | int last_noise2_bit = (low_byte >> 5) & 0x01; | |
| 293 | ||
| 294 | t_used += node->info->sample_time; | |
| 295 | ||
| 296 | /* This clock will never run faster then the sample rate, | |
| 297 | * so we do not bother to check. | |
| 298 | */ | |
| 299 | if (t_used > t1) | |
| 300 | { | |
| 301 | /* calculate the overshoot time */ | |
| 302 | t_used -= t1; | |
| 303 | context->flip_flop ^= 1; | |
| 304 | /* clocks on low to high */ | |
| 305 | if (context->flip_flop) | |
| 306 | { | |
| 307 | int new_noise_bit; | |
| 308 | ||
| 309 | /* shift */ | |
| 310 | xnor_out = (((low_byte >> 6) & 0x01) ^ (high_byte & 0x01)) ^ 0x01; | |
| 311 | low_byte = (low_byte << 1) | ((high_byte >> 7) & 0x01); | |
| 312 | high_byte = (high_byte << 1) | xnor_out; | |
| 313 | if (high_byte == 0xff) /* IC H1, pin 8 */ | |
| 314 | high_byte = 0; | |
| 315 | context->low_byte = low_byte; | |
| 316 | context->high_byte = high_byte; | |
| 317 | ||
| 318 | /* Convert last switch time to a ratio */ | |
| 319 | x_time = t_used / node->info->sample_time; | |
| 320 | /* use x_time if bit changed */ | |
| 321 | new_noise_bit = (low_byte >> 4) & 0x01; | |
| 322 | if (last_noise1_bit != new_noise_bit) | |
| 323 | { | |
| 324 | node->output[0] = COPSNROB_CUSTOM_NOISE_HIGH * (new_noise_bit ? x_time : (1.0 - x_time)); | |
| 325 | context->noise1_had_xtime = 1; | |
| 326 | } | |
| 327 | new_noise_bit = (low_byte >> 5) & 0x01; | |
| 328 | if (last_noise2_bit != new_noise_bit) | |
| 329 | { | |
| 330 | node->output[1] = COPSNROB_CUSTOM_NOISE_HIGH * (new_noise_bit ? x_time : (1.0 - x_time)); | |
| 331 | context->noise2_had_xtime = 1; | |
| 332 | } | |
| 333 | } | |
| 334 | } | |
| 335 | else | |
| 336 | { | |
| 337 | /* see if we need to move from x_time state to full state */ | |
| 338 | if (context->noise1_had_xtime) | |
| 339 | { | |
| 340 | node->output[0] = COPSNROB_CUSTOM_NOISE_HIGH * last_noise1_bit; | |
| 341 | context->noise1_had_xtime = 0; | |
| 342 | } | |
| 343 | if (context->noise2_had_xtime) | |
| 344 | { | |
| 345 | node->output[1] = COPSNROB_CUSTOM_NOISE_HIGH * last_noise2_bit; | |
| 346 | context->noise2_had_xtime = 0; | |
| 347 | } | |
| 348 | } | |
| 349 | ||
| 350 | context->t_used = t_used; | |
| 351 | } | |
| 352 | ||
| 353 | DISCRETE_RESET(copsnrob_custom_noise) | |
| 354 | { | |
| 355 | DISCRETE_DECLARE_CONTEXT(copsnrob_custom_noise) | |
| 356 | ||
| 357 | context->t1 = 0.5 / COPSNROB_CUSTOM_NOISE__FREQ ; | |
| 358 | context->flip_flop = 0; | |
| 359 | context->low_byte = 0; | |
| 360 | context->high_byte = 0; | |
| 361 | context->noise1_had_xtime = 0; | |
| 362 | context->noise2_had_xtime = 0; | |
| 363 | context->t_used = 0; | |
| 364 | } | |
| 365 | ||
| 366 | static const discrete_custom_info copsnrob_custom_noise = | |
| 367 | { | |
| 368 | DISCRETE_CUSTOM_MODULE( copsnrob_custom_noise, struct copsnrob_custom_noise_context), | |
| 369 | NULL | |
| 370 | }; | |
| 371 | /************************************************ | |
| 372 | * CUSTOM_NOISE Definition End | |
| 373 | ************************************************/ | |
| 374 | ||
| 375 | ||
| 376 | /************************************************ | |
| 377 | * CUSTOM_ZINGS_555_MONOSTABLE Definition Start | |
| 378 | * - output is energy | |
| 379 | ************************************************/ | |
| 380 | #define COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__TRIG DISCRETE_INPUT(0) | |
| 381 | #define COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__R DISCRETE_INPUT(1) | |
| 382 | #define COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__C DISCRETE_INPUT(2) | |
| 383 | ||
| 384 | struct copsnrob_zings_555_monostable_context | |
| 385 | { | |
| 386 | double rc; | |
| 387 | double exponent; | |
| 388 | double v_cap; | |
| 389 | int flip_flop; | |
| 390 | }; | |
| 391 | ||
| 392 | DISCRETE_STEP(copsnrob_zings_555_monostable) | |
| 393 | { | |
| 394 | DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_monostable) | |
| 395 | ||
| 396 | const double v_threshold = 5.0 * 2 / 3; | |
| 397 | const double v_out_high = 5.0 - 0.5; /* light load */ | |
| 398 | ||
| 399 | int ff_set = COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__TRIG < (5.0 / 3) ? 1 : 0; | |
| 400 | int flip_flop = context->flip_flop; | |
| 401 | double v_cap = context->v_cap; | |
| 402 | double x_time = 0; | |
| 403 | ||
| 404 | /* From testing a real IC */ | |
| 405 | /* Trigger going low overides everything. It forces the FF/Output high. | |
| 406 | * If Threshold is high, the output will still go high as long as trigger is low. | |
| 407 | * The output will then go low when trigger rises above it's 1/3VCC value. | |
| 408 | * If threshold is below it's 2/3VCC value, the output will remain high. | |
| 409 | */ | |
| 410 | if (ff_set) | |
| 411 | { | |
| 412 | flip_flop = 1; | |
| 413 | context->flip_flop = flip_flop; | |
| 414 | } | |
| 415 | ||
| 416 | if (flip_flop) | |
| 417 | { | |
| 418 | double v_diff = v_out_high - v_cap; | |
| 419 | ||
| 420 | /* charge */ | |
| 421 | v_cap += v_diff * context->exponent; | |
| 422 | /* no state change if trigger is low */ | |
| 423 | if (!ff_set && (v_cap > v_threshold)) | |
| 424 | { | |
| 425 | double rc = context->rc; | |
| 426 | ||
| 427 | flip_flop = 0; | |
| 428 | context->flip_flop = flip_flop; | |
| 429 | /* calculate overshoot */ | |
| 430 | x_time = rc * log(1.0 / (1.0 - ((v_cap - v_threshold) / v_diff))); | |
| 431 | /* discharge the overshoot */ | |
| 432 | v_cap = v_threshold; | |
| 433 | v_cap -= v_cap * RC_CHARGE_EXP_DT(rc, x_time); | |
| 434 | x_time /= node->info->sample_time; | |
| 435 | } | |
| 436 | } | |
| 437 | else | |
| 438 | { | |
| 439 | /* Optimization - already discharged */ | |
| 440 | if (v_cap == 0) | |
| 441 | return; | |
| 442 | /* discharge */ | |
| 443 | v_cap -= v_cap * context->exponent; | |
| 444 | /* Optimization - close enough to 0 to be 0 */ | |
| 445 | if (v_cap < 0.000001) | |
| 446 | v_cap = 0; | |
| 447 | } | |
| 448 | context->v_cap = v_cap; | |
| 449 | ||
| 450 | if (x_time > 0) | |
| 451 | node->output[0] = v_out_high * x_time; | |
| 452 | else if (flip_flop) | |
| 453 | node->output[0] = v_out_high; | |
| 454 | else | |
| 455 | node->output[0] = 0; | |
| 456 | } | |
| 457 | ||
| 458 | DISCRETE_RESET(copsnrob_zings_555_monostable) | |
| 459 | { | |
| 460 | DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_monostable) | |
| 461 | ||
| 462 | context->rc = COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__R * COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__C; | |
| 463 | context->exponent = RC_CHARGE_EXP(context->rc); | |
| 464 | context->v_cap = 0; | |
| 465 | context->flip_flop = 0; | |
| 466 | node->output[0] = 0; | |
| 467 | } | |
| 468 | ||
| 469 | static const discrete_custom_info copsnrob_zings_555_monostable = | |
| 470 | { | |
| 471 | DISCRETE_CUSTOM_MODULE( copsnrob_zings_555_monostable, struct copsnrob_zings_555_monostable_context), | |
| 472 | NULL | |
| 473 | }; | |
| 474 | /************************************************ | |
| 475 | * CUSTOM_ZINGS_555_MONOSTABLE Definition End | |
| 476 | ************************************************/ | |
| 477 | ||
| 478 | ||
| 479 | /************************************************ | |
| 480 | * CUSTOM_ZINGS_555_ASTABLE Definition Start | |
| 481 | * - output is energy | |
| 482 | ************************************************/ | |
| 483 | #define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__RESET DISCRETE_INPUT(0) | |
| 484 | #define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1 DISCRETE_INPUT(1) | |
| 485 | #define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R2 DISCRETE_INPUT(2) | |
| 486 | #define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C1 DISCRETE_INPUT(3) | |
| 487 | #define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C2 DISCRETE_INPUT(4) | |
| 488 | ||
| 489 | #define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__HIGH 4.5 | |
| 490 | ||
| 491 | struct copsnrob_zings_555_astable_context | |
| 492 | { | |
| 493 | double r2c2; | |
| 494 | double r_total_cv; | |
| 495 | double exponent1; | |
| 496 | double exponent2; | |
| 497 | double v_cap1; | |
| 498 | double v_cap2; | |
| 499 | int flip_flop; | |
| 500 | }; | |
| 501 | ||
| 502 | DISCRETE_STEP(copsnrob_zings_555_astable) | |
| 503 | { | |
| 504 | DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_astable) | |
| 505 | ||
| 506 | double v_trigger, v_threshold; | |
| 507 | double v1 = COPSNROB_CUSTOM_ZINGS_555_ASTABLE__RESET; | |
| 508 | double v_cap1 = context->v_cap1; | |
| 509 | double v_cap2 = node->output[0]; | |
| 510 | double dt = 0; | |
| 511 | int reset_active = (v1 < 0.7) ? 1 : 0; | |
| 512 | int flip_flop = context->flip_flop; | |
| 513 | ||
| 514 | /* calculate voltage at CV pin */ | |
| 515 | /* start by adding currents */ | |
| 516 | double v_cv = 5.0 / RES_K(5); | |
| 517 | v_cv += v1 / COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1; | |
| 518 | /* convert to voltage */ | |
| 519 | v_cv *= context->r_total_cv; | |
| 520 | ||
| 521 | /* The reset voltage also charges the CV cap */ | |
| 522 | double v_diff1 = v_cv - v_cap1; | |
| 523 | /* optimization - if charged close enough to voltage */ | |
| 524 | if (fabs(v_diff1) < 0.000001) | |
| 525 | v_cap1 = v_cv; | |
| 526 | else | |
| 527 | v_cap1 += v_diff1 * context->exponent1; | |
| 528 | context->v_cap1 = v_cap1; | |
| 529 | ||
| 530 | if (reset_active) | |
| 531 | { | |
| 532 | if (flip_flop) | |
| 533 | context->flip_flop = 0; | |
| 534 | /* we still need to discharge C2 */ | |
| 535 | /* Optimization - only discharge if needed */ | |
| 536 | if (v_cap2 != 0) | |
| 537 | { | |
| 538 | /* discharge */ | |
| 539 | v_cap2 -= v_cap2 * context->exponent2; | |
| 540 | /* Optimization - close enough to 0 to be 0 */ | |
| 541 | if (v_cap2 < 0.000001) | |
| 542 | node->output[0] = 0; | |
| 543 | else | |
| 544 | node->output[0] = v_cap2; | |
| 545 | } | |
| 546 | return; | |
| 547 | } | |
| 548 | ||
| 549 | v_threshold = v_cap1 * 2 / 3; | |
| 550 | v_trigger = v_cap1 / 3; | |
| 551 | ||
| 552 | /* This oscillator will never create a frequency greater then 1/2 the sample rate, | |
| 553 | * so we won't worry about missing samples */ | |
| 554 | /* No need to optimize the charge circuit. It always charges/discharges to a voltage | |
| 555 | * greater then it will ever reach. */ | |
| 556 | if (flip_flop) | |
| 557 | { | |
| 558 | /* charge */ | |
| 559 | double v_diff2 = COPSNROB_CUSTOM_ZINGS_555_ASTABLE__HIGH - v_cap2; | |
| 560 | v_cap2 += v_diff2 * context->exponent2; | |
| 561 | if (v_cap2 > v_threshold) | |
| 562 | { | |
| 563 | double r2c2 = context->r2c2; | |
| 564 | ||
| 565 | context->flip_flop = 0; | |
| 566 | /* calculate overshoot */ | |
| 567 | dt = r2c2 * log(1.0 / (1.0 - ((v_cap2 - v_threshold) / v_diff2))); | |
| 568 | /* discharge the overshoot */ | |
| 569 | v_cap2 = v_threshold; | |
| 570 | v_cap2 -= v_cap2 * RC_CHARGE_EXP_DT(r2c2, dt); | |
| 571 | } | |
| 572 | } | |
| 573 | else | |
| 574 | { | |
| 575 | /* discharge */ | |
| 576 | double v_diff2 = v_cap2; | |
| 577 | v_cap2 -= v_diff2 * context->exponent2; | |
| 578 | if (v_cap2 < v_trigger) | |
| 579 | { | |
| 580 | double r2c2 = context->r2c2; | |
| 581 | ||
| 582 | context->flip_flop = 1; | |
| 583 | /* calculate overshoot */ | |
| 584 | dt = r2c2 * log(1.0 / (1.0 - ((v_trigger - v_cap2) / v_diff2))); | |
| 585 | /* charge the overshoot */ | |
| 586 | v_cap2 = v_trigger; | |
| 587 | v_cap2 += (COPSNROB_CUSTOM_ZINGS_555_ASTABLE__HIGH - v_cap2) * RC_CHARGE_EXP_DT(r2c2, dt); | |
| 588 | } | |
| 589 | } | |
| 590 | if (v_cap2 > 0) | |
| 591 | node->output[0] = v_cap2; | |
| 592 | else | |
| 593 | node->output[0] = 0; | |
| 594 | } | |
| 595 | ||
| 596 | DISCRETE_RESET(copsnrob_zings_555_astable) | |
| 597 | { | |
| 598 | DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_astable) | |
| 599 | ||
| 600 | context->r_total_cv = RES_3_PARALLEL(COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1, RES_K(10), RES_K(5)); | |
| 601 | context->r2c2 = COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R2 * COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C2; | |
| 602 | context->exponent1 = RC_CHARGE_EXP(COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1 * COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C1); | |
| 603 | context->exponent2 = RC_CHARGE_EXP(context->r2c2); | |
| 604 | context->v_cap1 = 0; | |
| 605 | context->flip_flop = 0; | |
| 606 | node->output[0] = 0; /* charge on C2 */ | |
| 607 | } | |
| 608 | ||
| 609 | static const discrete_custom_info copsnrob_zings_555_astable = | |
| 610 | { | |
| 611 | DISCRETE_CUSTOM_MODULE( copsnrob_zings_555_astable, struct copsnrob_zings_555_astable_context), | |
| 612 | NULL | |
| 613 | }; | |
| 614 | /************************************************ | |
| 615 | * CUSTOM_ZINGS_555_ASTABLE Definition End | |
| 616 | ************************************************/ | |
| 617 | ||
| 618 | ||
| 619 | DISCRETE_SOUND_START(copsnrob) | |
| 620 | ||
| 621 | /************************************************ | |
| 622 | * Input register mapping | |
| 623 | ************************************************/ | |
| 624 | DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR0_INV) | |
| 625 | DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR1_INV) | |
| 626 | DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR2_INV) | |
| 627 | DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR3_INV) | |
| 628 | /* !! DISABLED UNTIL ADDRESS IS FOUND !! */ | |
| 629 | // DISCRETE_INPUTX_LOGIC(COPSNROB_ZINGS_INV, 4, 0, 0) | |
| 630 | // DISCRETE_INPUT_LOGIC(COPSNROB_FIRES_INV) | |
| 631 | DISCRETE_INPUT_NOT(COPSNROB_CRASH_INV) /* inverted for counter use */ | |
| 632 | DISCRETE_INPUT_LOGIC(COPSNROB_SCREECH_INV) | |
| 633 | DISCRETE_INPUT_NOT(COPSNROB_AUDIO_ENABLE) /* IC A1, pins 2 & 12 */ | |
| 634 | ||
| 635 | /* These inputs are disabled until their address triggers are determined. | |
| 636 | * Then these constants can be removed. | |
| 637 | */ | |
| 638 | DISCRETE_CONSTANT(COPSNROB_ZINGS_INV, 4) /* data bit will be normally high, when it goes low it triggers the one-shot which has a minimum on time of 0.2s */ | |
| 639 | DISCRETE_CONSTANT(COPSNROB_FIRES_INV, 4) /* data bit will be normally high */ | |
| 640 | ||
| 641 | /************************************************ | |
| 642 | * MOTOR0/1 | |
| 643 | ************************************************/ | |
| 644 | COPSNROB_MOTOR01(COPSNROB_MOTOR0_SND, COPSNROB_MOTOR0_INV, 0) | |
| 645 | COPSNROB_MOTOR01(COPSNROB_MOTOR1_SND, COPSNROB_MOTOR1_INV, 1) | |
| 646 | ||
| 647 | /************************************************ | |
| 648 | * MOTOR2/3 | |
| 649 | ************************************************/ | |
| 650 | COPSNROB_MOTOR23(COPSNROB_MOTOR2_SND, COPSNROB_MOTOR2_INV, 0) | |
| 651 | COPSNROB_MOTOR23(COPSNROB_MOTOR3_SND, COPSNROB_MOTOR3_INV, 1) | |
| 652 | ||
| 653 | /************************************************ | |
| 654 | * CRASH | |
| 655 | ************************************************/ | |
| 656 | DISCRETE_CUSTOM1(COPSNROB_NOISE_1, /* IC J2, pin 10 */ | |
| 657 | COPSNROB_2V, /* CLK */ | |
| 658 | &copsnrob_custom_noise) | |
| 659 | /* COPSNROB_NOISE_2 derived from sub out of above custom module - IC J2, pin 11 */ | |
| 660 | /* We use the measured 555 timer frequency (IC M3) for speed */ | |
| 661 | DISCRETE_COUNTER(NODE_40, /* IC L2 */ | |
| 662 | NODE_41, /* ENAB - IC L2, pin 14 */ | |
| 663 | COPSNROB_CRASH_INV, /* RESET - IC L2, pin 11 */ | |
| 664 | 92, /* IC L2, pin 4 - freq measured */ | |
| 665 | 0, 15, DISC_COUNT_DOWN, 15, DISC_CLK_IS_FREQ) /* MIN; MAX; DIR; INIT0; CLKTYPE */ | |
| 666 | DISCRETE_TRANSFORM2(NODE_41, /* IC M2, pin 3 - goes high at count 0 */ | |
| 667 | NODE_40, 0, "01=!") /* -we will invert it for use by the counter module */ | |
| 668 | DISCRETE_SWITCH(NODE_42, /* IC L3 */ | |
| 669 | 1, COPSNROB_NOISE_2, 0, NODE_40) /* ENAB; SWITCH; INP0; INP1 */ | |
| 670 | DISCRETE_DAC_R1(COPSNROB_CRASH_SND, | |
| 671 | NODE_42, 3.8, /* DATA; VDATA */ | |
| 672 | &copsnrob_crash_dac) | |
| 673 | ||
| 674 | /************************************************ | |
| 675 | * SCREECH | |
| 676 | ************************************************/ | |
| 677 | DISCRETE_CONSTANT(COPSNROB_SCREECH_SND, 0) | |
| 678 | ||
| 679 | /************************************************ | |
| 680 | * FZ (Fires, Zings) | |
| 681 | ************************************************/ | |
| 682 | DISCRETE_CUSTOM3(NODE_60, /* IC D3, pin 5 */ | |
| 683 | /* We can ignore R47 & R48 */ | |
| 684 | COPSNROB_ZINGS_INV, /* IC D3, pin 6 */ | |
| 685 | COPSNROB_R38, COPSNROB_C19, | |
| 686 | &copsnrob_zings_555_monostable) | |
| 687 | DISCRETE_CUSTOM5(NODE_61, /* IC D3, pin 8 & 12 */ | |
| 688 | NODE_60, /* IC D3, pin 10 */ | |
| 689 | COPSNROB_R36, COPSNROB_R37, | |
| 690 | COPSNROB_C3, COPSNROB_C13, | |
| 691 | &copsnrob_zings_555_astable) | |
| 692 | /* FIX - do a better implemetation of IC L4 */ | |
| 693 | DISCRETE_CRFILTER_VREF(NODE_62, /* IC L4, pin 9 */ | |
| 694 | NODE_61, /* IN0 */ | |
| 695 | COPSNROB_R26, COPSNROB_C39, | |
| 696 | 5.0 * RES_VOLTAGE_DIVIDER(COPSNROB_R74, COPSNROB_R75)) /* VREF */ | |
| 697 | DISCRETE_GAIN(COPSNROB_FZ_SND, /* IC L4, pin 8 */ | |
| 698 | NODE_62, | |
| 699 | COPSNROB_R73 / COPSNROB_R26) | |
| 700 | ||
| 701 | /************************************************ | |
| 702 | * MIXER | |
| 703 | ************************************************/ | |
| 704 | DISCRETE_MIXER5(NODE_90, /* IC B3, pin 3 */ | |
| 705 | COPSNROB_AUDIO_ENABLE, /* ENAB */ | |
| 706 | COPSNROB_MOTOR1_SND, COPSNROB_MOTOR0_SND, COPSNROB_FZ_SND, COPSNROB_SCREECH_SND, COPSNROB_CRASH_SND, | |
| 707 | &copsnrob_final_mixer01) | |
| 708 | DISCRETE_MIXER5(NODE_91, /* IC P3, pin 3 */ | |
| 709 | COPSNROB_AUDIO_ENABLE, /* ENAB */ | |
| 710 | COPSNROB_MOTOR3_SND, COPSNROB_MOTOR2_SND, COPSNROB_CRASH_SND, COPSNROB_SCREECH_SND, COPSNROB_FZ_SND, | |
| 711 | &copsnrob_final_mixer23) | |
| 712 | DISCRETE_OUTPUT(NODE_90, 32767.0*3.5) | |
| 713 | DISCRETE_OUTPUT(NODE_91, 32767.0*3.5) | |
| 714 | DISCRETE_SOUND_END | |
| 715 | ||
| 716 | ||
| 717 | WRITE8_HANDLER( copsnrob_misc_w ) | |
| 718 | { | |
| 719 | device_t *device = space->machine->device("discrete"); | |
| 720 | copsnrob_state *state = space->machine->driver_data<copsnrob_state>(); | |
| 721 | UINT8 latched_data = state->ic_h3_data; | |
| 722 | UINT8 special_data = data & 0x01; | |
| 723 | ||
| 724 | /* ignore if no change */ | |
| 725 | if (((latched_data >> offset) & 0x01) == special_data) | |
| 726 | return; | |
| 727 | ||
| 728 | if (special_data) | |
| 729 | latched_data |= 1 << offset; | |
| 730 | else | |
| 731 | latched_data &= ~(1 << offset); | |
| 732 | ||
| 733 | switch (offset) | |
| 734 | { | |
| 735 | case 0x00: | |
| 736 | discrete_sound_w(device, COPSNROB_MOTOR3_INV, special_data); | |
| 737 | break; | |
| 738 | ||
| 739 | case 0x01: | |
| 740 | discrete_sound_w(device, COPSNROB_MOTOR2_INV, special_data); | |
| 741 | break; | |
| 742 | ||
| 743 | case 0x02: | |
| 744 | discrete_sound_w(device, COPSNROB_MOTOR1_INV, special_data); | |
| 745 | break; | |
| 746 | ||
| 747 | case 0x03: | |
| 748 | discrete_sound_w(device, COPSNROB_MOTOR0_INV, special_data); | |
| 749 | break; | |
| 750 | ||
| 751 | case 0x04: | |
| 752 | discrete_sound_w(device, COPSNROB_SCREECH_INV, special_data); | |
| 753 | break; | |
| 754 | ||
| 755 | case 0x05: | |
| 756 | discrete_sound_w(device, COPSNROB_CRASH_INV, special_data); | |
| 757 | break; | |
| 758 | ||
| 759 | case 0x06: | |
| 760 | /* One Start */ | |
| 761 | set_led_status(space->machine, 0, !special_data); | |
| 762 | break; | |
| 763 | ||
| 764 | case 0x07: | |
| 765 | discrete_sound_w(device, COPSNROB_AUDIO_ENABLE, special_data); | |
| 766 | //sound_global_enable(space->machine, !special_data); | |
| 767 | break; | |
| 768 | ||
| 769 | } | |
| 770 | ||
| 771 | state->ic_h3_data = latched_data; | |
| 772 | } |
| r9535 | r9536 | |
|---|---|---|
| 21 | 21 | /* Set to 1 to use faster custom mixer */ |
| 22 | 22 | #define DK_USE_CUSTOM (1) |
| 23 | 23 | |
| 24 | #define USE_LS629 (1) /* set to use new LS624 code */ | |
| 25 | ||
| 26 | 24 | /* Issue surrounded by this define need to be analyzed and |
| 27 | 25 | * reviewed at a later time. |
| 28 | 26 | * Currently, the following issues exist: |
| r9535 | r9536 | |
| 304 | 302 | double exp[2]; |
| 305 | 303 | }; |
| 306 | 304 | |
| 307 | ||
| 305 | ||
| 308 | 306 | { |
| 309 | | |
| 307 | DISCRETE | |
| 310 | 308 | |
| 311 | 309 | int in_1 = (int)DKONG_CUSTOM_IN1; |
| 312 | 310 | |
| r9535 | r9536 | |
| 323 | 321 | |
| 324 | 322 | #define NE555_CV_R RES_2_PARALLEL(RES_K(5), RES_K(10)) |
| 325 | 323 | |
| 326 | ||
| 324 | ||
| 327 | 325 | { |
| 328 | | |
| 326 | DISCRETE | |
| 329 | 327 | |
| 330 | 328 | /* everything is based on the input to the O.C. inverter */ |
| 331 | 329 | /* precalculate current from In1 */ |
| r9535 | r9536 | |
| 788 | 786 | #define JR_R25 RES_K(47) |
| 789 | 787 | #define JR_R27 RES_K(10) |
| 790 | 788 | #define JR_R28 RES_K(100) |
| 789 | #define JR_R33 RES_K(1) | |
| 790 | #define JR_R34 RES_K(1) | |
| 791 | #define JR_R35 RES_K(1) | |
| 791 | 792 | |
| 792 | 793 | |
| 793 | 794 | #define JR_C13 CAP_U(4.7) |
| 794 | 795 | #define JR_C14 CAP_U(4.7) |
| 795 | 796 | #define JR_C15 CAP_U(22) |
| 796 | 797 | #define JR_C16 CAP_U(3.3) |
| 797 | #define JR_C17 CAP_U(3.3) | |
| 798 | #define JR_C17 CAP_U(3.3) | |
| 798 | 799 | #define JR_C18 CAP_N(22) |
| 799 | 800 | #define JR_C19 CAP_N(4.7) |
| 800 | 801 | #define JR_C20 CAP_U(0.12) |
| r9535 | r9536 | |
| 825 | 826 | #define DISCRETE_LS123_INV(_N, _T, _R, _C) \ |
| 826 | 827 | DISCRETE_ONESHOTR(_N, 0, _T, TTL_HIGH, (0.25 * (_R) * (_C) * (1.0+700./(_R))), DISC_ONESHOT_RETRIG | DISC_ONESHOT_REDGE | DISC_OUT_ACTIVE_LOW) |
| 827 | 828 | |
| 828 | #define DISCRETE_ENERGY_NAND(_N, _N1, _N2) DISCRETE_TRANSFORM3(_N, _N1, _N2, 1, "201*-") | |
| 829 | ||
| 830 | 829 | static const discrete_mixer_desc dkongjr_mixer_desc = |
| 831 | 830 | {DISC_MIXER_IS_RESISTOR, |
| 832 | 831 | {JR_R5, JR_R3, JR_R6, JR_R4, JR_R25}, |
| 833 | 832 | {0,0,0,0,0}, /* no variable resistors */ |
| 834 | {0,0,0,0,0}, | |
| 833 | {0,0,0,0,0}, | |
| 835 | 834 | 0, 0, |
| 836 | JR_C155, | |
| 837 | JR_C161, | |
| 835 | JR_C155, /* cF */ | |
| 836 | JR_C161, /* cAmp */ | |
| 838 | 837 | 0, 1}; |
| 839 | 838 | |
| 840 | #if (USE_LS629) | |
| 841 | 839 | static const discrete_mixer_desc dkongjr_s1_mixer_desc = |
| 842 | 840 | { |
| 843 | 841 | DISC_MIXER_IS_RESISTOR, |
| 844 | 842 | {JR_R13, JR_R12}, |
| 845 | 843 | {0}, {0}, 0, 0, JR_C24, 0, 0, 1 /* r_node{}, c{}, rI, rF, cF, cAmp, vRef, gain */ |
| 846 | 844 | }; |
| 847 | #else | |
| 848 | static const discrete_mixer_desc dkongjr_s1_mixer_desc = | |
| 849 | {DISC_MIXER_IS_RESISTOR, | |
| 850 | {JR_R13, JR_R12}, | |
| 851 | {0,0}, /* no variable resistors */ | |
| 852 | {0,0}, /* no node capacitors */ | |
| 853 | 0, RES_K(90), /* Internal LS624 resistors ... */ | |
| 854 | JR_C24, | |
| 855 | 0, | |
| 856 | 0, 1}; | |
| 857 | #endif | |
| 858 | 845 | |
| 859 | 846 | static const discrete_lfsr_desc dkongjr_lfsr = |
| 860 | 847 | { |
| r9535 | r9536 | |
| 871 | 858 | 0 /* Output bit */ |
| 872 | 859 | }; |
| 873 | 860 | |
| 861 | #define DS_SOUND9_EN DS_SOUND9_INV | |
| 862 | ||
| 874 | 863 | static DISCRETE_SOUND_START(dkongjr) |
| 875 | 864 | |
| 876 | 865 | /************************************************/ |
| r9535 | r9536 | |
| 878 | 867 | /************************************************/ |
| 879 | 868 | |
| 880 | 869 | /* DISCRETE_INPUT_DATA */ |
| 881 | DISCRETE_INPUT_NOT(DS_SOUND0_INV) | |
| 882 | DISCRETE_INPUT_NOT(DS_SOUND1_INV) | |
| 883 | DISCRETE_INPUT_NOT(DS_SOUND2_INV) | |
| 884 | DISCRETE_INPUT_NOT(DS_SOUND6_INV) | |
| 885 | DISCRETE_INPUT_NOT(DS_SOUND7_INV) | |
| 886 | DISCRETE_INPUTX_NOT(DS_SOUND9_INV, TTL_HIGH, 0, 0) | |
| 887 | DISCRETE_INPUT_NOT(DS_DISCHARGE_INV) | |
| 888 | //DISCRETE_INPUT_DATA(DS_DAC) | |
| 870 | DISCRETE_INPUT_NOT(DS_SOUND0_INV) /* IC 6J, pin 2 */ | |
| 871 | DISCRETE_INPUT_NOT(DS_SOUND1_INV) /* IC 6J, pin 12 */ | |
| 872 | DISCRETE_INPUT_NOT(DS_SOUND2_INV) /* IC 6J, pin 4 */ | |
| 873 | DISCRETE_INPUT_NOT(DS_SOUND6_INV) /* unused */ | |
| 874 | DISCRETE_INPUT_NOT(DS_SOUND7_INV) /* IC 5J, pin 12 */ | |
| 875 | DISCRETE_INPUT_LOGIC(DS_SOUND9_EN) /* IC 7N pin 10 from IC 5J, pin 4 */ | |
| 876 | DISCRETE_INPUT_NOT(DS_DISCHARGE_INV) /* IC 7H, pin 38 */ | |
| 889 | 877 | |
| 890 | 878 | /************************************************ |
| 891 | * SOUND0 | |
| 879 | * SOUND0 | |
| 892 | 880 | ************************************************/ |
| 893 | 881 | |
| 894 | 882 | DISCRETE_TASK_START(1) |
| 895 | DISCRETE_LOGIC_INVERT(DS_SOUND7,DS_SOUND7_INV) | |
| 896 | DISCRETE_COUNTER(NODE_100, 1, 0, NODE_118, 0, 0x3FFF, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT) | |
| 883 | DISCRETE_COUNTER(NODE_100, /* IC 6L */ | |
| 884 | 1, 0, /* ENAB; RESET */ | |
| 885 | NODE_118, /* CLK - IC 6L, pin 10 */ | |
| 886 | 0, 0x3FFF, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT | DISC_OUT_HAS_XTIME) | |
| 897 | 887 | |
| 898 | DISCRETE_BIT_DECODE(NODE_101, NODE_100, 6, 1) /*LS157 2A */ | |
| 899 | DISCRETE_BIT_DECODE(NODE_102, NODE_100, 3, 1) /*LS157 2B */ | |
| 900 | DISCRETE_BIT_DECODE(NODE_103, NODE_100, 12, 1) /*LS157 3A */ | |
| 901 | DISCRETE_BIT_DECODE(NODE_104, NODE_100, 11, 1) /*LS157 3B */ | |
| 888 | DISCRETE_BIT_DECODE(NODE_101, /* IC 6L, pin 6 */ | |
| 889 | NODE_100, 6, 0) /* output x_time logic */ | |
| 890 | DISCRETE_BIT_DECODE(NODE_102, /* IC 6L, pin 7 */ | |
| 891 | NODE_100, 3, 0) /* output x_time logic */ | |
| 892 | DISCRETE_BIT_DECODE(NODE_103, /* IC 6L, pin 2 */ | |
| 893 | NODE_100, 12, 0) /* output x_time logic */ | |
| 894 | DISCRETE_BIT_DECODE(NODE_104, /* IC 6L, pin 1 */ | |
| 895 | NODE_100, 11, 0) /* output x_time logic */ | |
| 902 | 896 | |
| 903 | /* LS157 Switches */ | |
| 904 | // DISCRETE_SWITCH(NODE_105, 1, DS_SOUND7_INV, GND, NODE_113) /* Switch 1 from LS624 */ | |
| 905 | DISCRETE_SWITCH(NODE_106, 1, DS_SOUND7_INV, NODE_101, NODE_102) /* Switch 2 */ | |
| 906 | DISCRETE_SWITCH(NODE_107, 1, DS_SOUND7_INV, NODE_103, NODE_104) /* Switch 3 */ | |
| 897 | /* LS157 Switches - IC 6K */ | |
| 898 | DISCRETE_SWITCH(NODE_106, /* IC 6K, pin 7 */ | |
| 899 | 1, DS_SOUND7_INV, /* ENAB; IC 6K, pin 1 */ | |
| 900 | NODE_101, NODE_102) /* IC 6K, pin 5; pin 6 */ | |
| 901 | DISCRETE_SWITCH(NODE_107, /* IC 6K, pin 9 */ | |
| 902 | 1, DS_SOUND7_INV, /* ENAB; IC 6K, pin 1 */ | |
| 903 | NODE_103, NODE_104) /* IC 6K, pin 11; pin 10 */ | |
| 907 | 904 | |
| 908 | DISCRETE_LS123(NODE_110, DS_SOUND0_INV, JR_R8, JR_C14) | |
| 909 | DISCRETE_SWITCH(NODE_111, /* invert voltage */ | |
| 910 | 1, NODE_110, /* ENAB, SWITCH */ | |
| 911 | TTL_HIGH, 0) /* INP0, INP1 */ | |
| 905 | DISCRETE_LS123(NODE_110, /* IC 4K, pin 5 */ | |
| 906 | DS_SOUND0_INV, /* IC 4K, pin 10 */ | |
| 907 | JR_R8, JR_C14) | |
| 908 | DISCRETE_SWITCH(NODE_111, /* IC 4F, pin 10 (inverter) */ | |
| 909 | 1, NODE_110, /* ENAB; IC 4F, pin 11 */ | |
| 910 | 4.14, 0.151) /* INP0; INP1 (measured) */ | |
| 912 | 911 | |
| 913 | /* Breadboarded measurements IC 5K, pin 7 | |
| 914 | D.R. Oct 2010 | |
| 915 | V Hz | |
| 916 | 0.151 3139 | |
| 917 | 0.25 2883 | |
| 918 | 0.5 2820 | |
| 919 | 0.75 3336 | |
| 920 | 1 3805 | |
| 921 | 2 6498 | |
| 922 | 3 9796 | |
| 923 | 4 13440 | |
| 924 | 4.14 13980 | |
| 925 | */ | |
| 912 | /* Breadboarded measurements IC 5K, pin 7 | |
| 913 | D.R. Oct 2010 | |
| 914 | V Hz | |
| 915 | 0.151 3139 | |
| 916 | 0.25 2883 | |
| 917 | 0.5 2820 | |
| 918 | 0.75 3336 | |
| 919 | 1 3805 | |
| 920 | 2 6498 | |
| 921 | 3 9796 | |
| 922 | 4 13440 | |
| 923 | 4.14 13980 | |
| 924 | */ | |
| 926 | 925 | |
| 927 | #if (USE_LS629) | |
| 928 | DISCRETE_74LS629(NODE_113, /* IC 5K, pin 7 */ | |
| 926 | DISCRETE_74LS624(NODE_113, /* IC 5K, pin 7 */ | |
| 929 | 927 | 1, /* ENAB */ |
| 930 | NODE_111, DK_SUP_V, /* VMOD, VRNG */ | |
| 931 | JR_C18, JR_R10, JR_C17, /* C, R_FREQ_IN, C_FREQ_IN */ | |
| 932 | DISC_LS624_OUT_ENERGY) | |
| 933 | #else | |
| 934 | DISCRETE_RCFILTER(NODE_112, NODE_111, JR_R10, JR_C17) | |
| 935 | DISCRETE_74LS624(NODE_113, NODE_112, DK_SUP_V, JR_C18, DISC_LS624_OUT_ENERGY) | |
| 936 | #endif | |
| 937 | DISCRETE_SWITCH(NODE_105, 1, DS_SOUND7_INV, GND, NODE_113) /* Switch 1 from LS624 */ | |
| 928 | NODE_111, DK_SUP_V, /* VMOD - IC 5K, pin 2; VRNG */ | |
| 929 | JR_C18, JR_R10, JR_C17, JR_R33, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 930 | DISC_LS624_OUT_LOGIC_X) | |
| 931 | DISCRETE_SWITCH(NODE_105, /* IC 6K, pin 4 */ | |
| 932 | 1, /* ENAB */ | |
| 933 | DS_SOUND7_INV, /* SWITCH, IC 6K, pin 1 */ | |
| 934 | GND, NODE_113) /* IC 6K, pin 2; pin 3 */ | |
| 938 | 935 | |
| 939 | DISCRETE_LOGIC_XOR(NODE_115, NODE_105, NODE_106) | |
| 936 | DISCRETE_XTIME_XOR(NODE_115, /* IC 6N, pin 3 */ | |
| 937 | NODE_105, NODE_106, /* IC 6N, pin 1; pin 2 */ | |
| 938 | 0, 0) /* use x_time logic */ | |
| 940 | 939 | |
| 941 | DISCRETE_SWITCH(NODE_116, /* invert with TTL voltage */ | |
| 942 | 1, NODE_107, /* ENAB, SWITCH */ | |
| 943 | TTL_HIGH, 0) /* INP0, INP1 */ | |
| 940 | DISCRETE_XTIME_INVERTER(NODE_116, /* IC 5J, pin 8 */ | |
| 941 | NODE_107, /* IC 5J, pin 9 */ | |
| 942 | 0.135, 4.15) /* measured Low/High */ | |
| 944 | 943 | |
| 945 | /* Breadboarded measurements IC 5K, pin 10 | |
| 946 | D.R. Oct 2010 | |
| 947 | V Hz | |
| 948 | 0.135 14450 | |
| 949 | 0.25 13320 | |
| 950 | 0.5 12980 | |
| 951 | 0.75 15150 | |
| 952 | 1 17270 | |
| 953 | 2 28230 | |
| 954 | 3 41910 | |
| 955 | 4 56950 | |
| 956 | 4.15 59400 | |
| 957 | */ | |
| 944 | /* Breadboarded measurements IC 5K, pin 10 | |
| 945 | D.R. Oct 2010 | |
| 946 | V Hz | |
| 947 | 0.135 14450 - measured 74LS04 low | |
| 948 | 0.25 13320 | |
| 949 | 0.5 12980 | |
| 950 | 0.75 15150 | |
| 951 | 1 17270 | |
| 952 | 2 28230 | |
| 953 | 3 41910 | |
| 954 | 4 56950 | |
| 955 | 4.15 59400 - measured 74LS04 high | |
| 956 | */ | |
| 958 | 957 | |
| 959 | #if (USE_LS629) | |
| 960 | DISCRETE_74LS629(NODE_118, /* IC 5K, pin 10 */ | |
| 958 | DISCRETE_74LS624(NODE_118, /* IC 5K, pin 10 */ | |
| 961 | 959 | 1, /* ENAB */ |
| 962 | NODE_116, DK_SUP_V, /* VMOD, VRNG */ | |
| 963 | JR_C19, JR_R11, JR_C16, /* C, R_FREQ_IN, C_FREQ_IN */ | |
| 964 | DISC_LS624_OUT_COUNT_F) | |
| 965 | #else | |
| 966 | DISCRETE_RCFILTER(NODE_117, NODE_116, JR_R11, JR_C16) | |
| 967 | DISCRETE_74LS624(NODE_118, NODE_117, DK_SUP_V, JR_C19, DISC_LS624_OUT_COUNT_F) | |
| 968 | #endif | |
| 969 | ||
| 970 | DISCRETE_LOGIC_NAND(NODE_120, NODE_115, NODE_110) | |
| 971 | DISCRETE_MULTIPLY(DS_OUT_SOUND0, NODE_120, TTL_HIGH) | |
| 960 | NODE_116, DK_SUP_V, /* VMOD - IC 5K, pin 1; VRNG */ | |
| 961 | JR_C19, JR_R11, JR_C16, JR_R33, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 962 | DISC_LS624_OUT_COUNT_F_X) | |
| 963 | DISCRETE_SWITCH(NODE_119, 1, NODE_110, 0, 1) /* convert from voltage to x_time logic */ | |
| 964 | DISCRETE_XTIME_NAND(DS_OUT_SOUND0, /* IC 5N, pin 11 */ | |
| 965 | NODE_119, NODE_115, /* IC 5N, pin 13; pin 12 */ | |
| 966 | 0.2, 4.9) /* LOW; HIGH (1k pullup to 5V) */ | |
| 972 | 967 | DISCRETE_TASK_END() |
| 973 | 968 | |
| 974 | 969 | /************************************************ |
| r9535 | r9536 | |
| 977 | 972 | |
| 978 | 973 | DISCRETE_TASK_START(2) |
| 979 | 974 | /* needs NODE_104 from TASK(1) ready */ |
| 980 | DISCRETE_LS123(NODE_10, DS_SOUND1_INV, JR_R9, JR_C15) | |
| 981 | DISCRETE_SWITCH(NODE_11, /* invert with TTL voltage */ | |
| 982 | 1, NODE_104, /* ENAB, SWITCH */ | |
| 983 | TTL_HIGH, 0) /* INP0, INP1 */ | |
| 984 | DISCRETE_LOGIC_INVERT(NODE_12, NODE_10) | |
| 985 | DISCRETE_MIXER2(NODE_13, 1, NODE_10, NODE_11, &dkongjr_s1_mixer_desc) | |
| 975 | DISCRETE_LS123(NODE_10, /* IC 4K, pin 13 */ | |
| 976 | DS_SOUND1_INV, /* IC 4K, pin 8 */ | |
| 977 | JR_R9, JR_C15) | |
| 978 | DISCRETE_SWITCH(NODE_11, /* IC 7N, pin 6 */ | |
| 979 | 1, NODE_10, /* ENAB; SWITCH - IC 7N, pin 5 */ | |
| 980 | 0.151, 4.14) /* measured Low/High */ | |
| 981 | DISCRETE_XTIME_INVERTER(NODE_12, /* IC 7N, pin 4 */ | |
| 982 | NODE_104, /* IC 7N, pin 3 */ | |
| 983 | 0.151, 4.14) /* measured Low/High */ | |
| 984 | DISCRETE_MIXER2(NODE_13, 1, NODE_11, NODE_12, &dkongjr_s1_mixer_desc) | |
| 986 | 985 | |
| 987 | /* Breadboarded measurements IC 8L, pin 10 | |
| 988 | D.R. Oct 2010 | |
| 989 | V Hz | |
| 990 | 0.151 313 | |
| 991 | 0.25 288 | |
| 992 | 0.5 275 | |
| 993 | 0.75 324 | |
| 994 | 1 370 | |
| 995 | 2 635 | |
| 996 | 3 965 | |
| 997 | 4 1325 | |
| 998 | 4.14 1378 | |
| 999 | */ | |
| 986 | /* Breadboarded measurements IC 8L, pin 10 | |
| 987 | D.R. Oct 2010 | |
| 988 | V Hz | |
| 989 | 0.151 313 | |
| 990 | 0.25 288 | |
| 991 | 0.5 275 | |
| 992 | 0.75 324 | |
| 993 | 1 370 | |
| 994 | 2 635 | |
| 995 | 3 965 | |
| 996 | 4 1325 | |
| 997 | 4.14 1378 | |
| 998 | */ | |
| 1000 | 999 | |
| 1001 | #if (USE_LS629) | |
| 1002 | DISCRETE_74LS629(NODE_14, /* IC 8L, pin 10 */ | |
| 1000 | DISCRETE_74LS624(NODE_14, /* IC 8L, pin 10 */ | |
| 1003 | 1001 | 1, /* ENAB */ |
| 1004 | NODE_13, DK_SUP_V, /* VMOD, VRNG */ | |
| 1002 | NODE_13, DK_SUP_V, /* VMOD - IC 8L, pin 1, VRNG */ | |
| 1005 | 1003 | /* C_FREQ_IN is taken care of by the NODE_13 mixer */ |
| 1006 | JR_C22, RES_2_PARALLEL(JR_R13, JR_R12), 0, /* C | |
| 1004 | JR_C22, RES_2_PARALLEL(JR_R13, JR_R12), 0, JR_R35, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 1007 | 1005 | DISC_LS624_OUT_ENERGY) |
| 1008 | #else | |
| 1009 | DISCRETE_74LS624( NODE_14, NODE_13, 0.98*DK_SUP_V, JR_C22, DISC_LS624_OUT_ENERGY) | |
| 1010 | #endif | |
| 1011 | DISCRETE_RCDISC_MODULATED(NODE_15, NODE_12, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V) | |
| 1006 | ||
| 1007 | DISCRETE_LOGIC_INVERT(NODE_15, NODE_10) /* fake invert for NODE_16 */ | |
| 1008 | DISCRETE_RCDISC_MODULATED(NODE_16, /* Q3, collector */ | |
| 1009 | NODE_15, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V) | |
| 1012 | 1010 | /* The following circuit does not match 100%, however works. |
| 1013 | 1011 | * To be exact, we need a C-R-C-R circuit, we actually do not have. |
| 1014 | 1012 | */ |
| 1015 | DISCRETE_CRFILTER_VREF(NODE_16, NODE_15, JR_R4, JR_C23, 2.5) | |
| 1016 | DISCRETE_RCFILTER(DS_OUT_SOUND1, NODE_16, JR_R19, JR_C21) | |
| 1013 | DISCRETE_CRFILTER_VREF(NODE_17, NODE_16, JR_R4, JR_C23, 2.5) | |
| 1014 | DISCRETE_RCFILTER(DS_OUT_SOUND1, NODE_17, JR_R19, JR_C21) | |
| 1017 | 1015 | DISCRETE_TASK_END() |
| 1018 | 1016 | |
| 1019 | /************************************************/ | |
| 1020 | /* SOUND2 */ | |
| 1021 | /************************************************/ | |
| 1017 | /************************************************ | |
| 1018 | * SOUND2 - climbing | |
| 1019 | ************************************************/ | |
| 1022 | 1020 | |
| 1023 | 1021 | DISCRETE_TASK_START(1) |
| 1024 | 1022 | /* the noise source clock is a 74LS629 IC 7P, pin 10. |
| r9535 | r9536 | |
| 1027 | 1025 | * So for speed, I breadboarded and measured the frequency. |
| 1028 | 1026 | * Oct 2009, D.R. |
| 1029 | 1027 | */ |
| 1030 | DISCRETE_LFSR_NOISE(NODE_21, 1, 1, 710, 1.0, 0, 0.5, &dkongjr_lfsr) | |
| 1031 | DISCRETE_LS123_INV(NODE_25, DS_SOUND2_INV, JR_R17, JR_C27) | |
| 1032 | DISCRETE_RCDISC_MODULATED(NODE_26, NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V) | |
| 1028 | DISCRETE_LFSR_NOISE(NODE_21, 1, 1, 710, 1.0, 0, 0.5, &dkongjr_lfsr) /* IC 3J & 4J */ | |
| 1029 | DISCRETE_LS123_INV(NODE_25, /* IC 8N, pin 13 (fake inverted for use by NODE_26) */ | |
| 1030 | DS_SOUND2_INV, /* IC 8N, pin 8 */ | |
| 1031 | JR_R17, JR_C27) | |
| 1032 | DISCRETE_RCDISC_MODULATED(NODE_26, /* Q2, collector */ | |
| 1033 | NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V) | |
| 1033 | 1034 | /* The following circuit does not match 100%, however works. |
| 1034 | 1035 | * To be exact, we need a C-R-C-R circuit, we actually do not have. |
| 1035 | 1036 | */ |
| r9535 | r9536 | |
| 1042 | 1043 | ************************************************/ |
| 1043 | 1044 | |
| 1044 | 1045 | DISCRETE_TASK_START(1) |
| 1045 | /* Breadboarded measurements IC 7P, pin 7 | |
| 1046 | D.R. Oct 2010 | |
| 1047 | V Hz | |
| 1048 | 0.134 570 | |
| 1049 | 0.25 538 | |
| 1050 | 0.5 489 | |
| 1051 | 0.75 560 | |
| 1052 | 1 636 | |
| 1053 | 2 1003 | |
| 1054 | 3 1484 | |
| 1055 | 4 2016 | |
| 1056 | 4.16 2111 | |
| 1057 | */ | |
| 1046 | DISCRETE_XTIME_INVERTER(NODE_90, /* IC 7N, pin 8 */ | |
| 1047 | DS_SOUND9_EN, /* IC 7N, pin 9 */ | |
| 1048 | 0.134, 4.16) /* measured Low/High */ | |
| 1058 | 1049 | |
| 1059 | #if (USE_LS629) | |
| 1060 | DISCRETE_74LS629(NODE_91, /* IC 7P, pin 7 */ | |
| 1050 | /* Breadboarded measurements IC 7P, pin 7 | |
| 1051 | D.R. Oct 2010 | |
| 1052 | V Hz | |
| 1053 | 0.134 570 | |
| 1054 | 0.25 538 | |
| 1055 | 0.5 489 | |
| 1056 | 0.75 560 | |
| 1057 | 1 636 | |
| 1058 | 2 1003 | |
| 1059 | 3 1484 | |
| 1060 | 4 2016 | |
| 1061 | 4.16 2111 | |
| 1062 | */ | |
| 1063 | DISCRETE_74LS624(NODE_91, /* IC 7P, pin 7 */ | |
| 1061 | 1064 | 1, /* ENAB */ |
| 1062 | DS_SOUND9_INV, DK_SUP_V, /* VMOD, VRNG */ | |
| 1063 | JR_C37, JR_R14, JR_C26, /* C, R_FREQ_IN, C_FREQ_IN */ | |
| 1064 | DISC_LS624_OUT_ENERGY) | |
| 1065 | DISCRETE_SWITCH(DS_OUT_SOUND9, 1, DS_SOUND9_INV, NODE_91, 0) | |
| 1066 | #else | |
| 1067 | DISCRETE_LOGIC_INVERT(DS_SOUND9, DS_SOUND9_INV) | |
| 1068 | DISCRETE_RCFILTER(NODE_90, DS_SOUND9_INV, JR_R14, JR_C26) | |
| 1069 | DISCRETE_74LS624( NODE_92, NODE_90, DK_SUP_V, JR_C37, DISC_LS624_OUT_ENERGY) | |
| 1070 | DISCRETE_ENERGY_NAND(NODE_93, NODE_92, DS_SOUND9) | |
| 1071 | DISCRETE_MULTIPLY(DS_OUT_SOUND9, NODE_93, TTL_HIGH) | |
| 1072 | #endif | |
| 1065 | NODE_90, DK_SUP_V, /* VMOD - IC 7P, pin 2, VRNG */ | |
| 1066 | JR_C37, JR_R14, JR_C26, JR_R34, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 1067 | DISC_LS624_OUT_LOGIC_X) | |
| 1068 | DISCRETE_XTIME_NAND(DS_OUT_SOUND9, /* IC 5N, pin 8 */ | |
| 1069 | DS_SOUND9_EN, /* IC 5N, pin 9 */ | |
| 1070 | NODE_91, /* IC 5N, pin 10 */ | |
| 1071 | 0.2, 4.9) /* LOW, HIGH (1k pullup to 5V) */ | |
| 1073 | 1072 | DISCRETE_TASK_END() |
| 1074 | 1073 | |
| 1075 | /************************************************/ | |
| 1076 | /* DAC */ | |
| 1077 | /************************************************/ | |
| 1074 | /************************************************ | |
| 1075 | * DAC | |
| 1076 | ************************************************/ | |
| 1078 | 1077 | |
| 1079 | 1078 | DISCRETE_TASK_START(1) |
| 1080 | 1079 | DISCRETE_INPUT_BUFFER(DS_DAC, 0) |
| r9535 | r9536 | |
| 1094 | 1093 | DISCRETE_SALLEN_KEY_FILTER(DS_OUT_DAC, 1, NODE_171, DISC_SALLEN_KEY_LOW_PASS, &dkong_sallen_key_info) |
| 1095 | 1094 | DISCRETE_TASK_END() |
| 1096 | 1095 | |
| 1097 | /************************************************/ | |
| 1098 | /* Amplifier */ | |
| 1099 | /************************************************/ | |
| 1096 | /************************************************ | |
| 1097 | * Amplifier | |
| 1098 | ************************************************/ | |
| 1100 | 1099 | |
| 1101 | 1100 | DISCRETE_TASK_START(3) |
| 1102 | 1101 | DISCRETE_MIXER5(NODE_288, 1, DS_OUT_SOUND9, DS_OUT_SOUND0, DS_OUT_SOUND2, DS_OUT_SOUND1, DS_OUT_DAC, &dkongjr_mixer_desc) |
| r9535 | r9536 | |
| 1104 | 1103 | /* Amplifier: internal amplifier |
| 1105 | 1104 | * Just a 1:n amplifier without filters - just the output filter |
| 1106 | 1105 | */ |
| 1107 | DISCRETE_CRFILTER(NODE_295,NODE_288, 1000, JR_C13) | |
| 1108 | #if (USE_LS629) | |
| 1109 | DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 5) | |
| 1110 | #else | |
| 1111 | DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 10) | |
| 1112 | #endif | |
| 1106 | DISCRETE_CRFILTER(NODE_295, NODE_288, 1000, JR_C13) | |
| 1107 | /* approx -1.805V to 2.0V when playing, but turn on sound peaks at 2.36V */ | |
| 1108 | /* we will set the full wav range to 1.18V which will cause clipping on the turn on | |
| 1109 | * sound and explosions. The real game would do this when the volume is turned up too. | |
| 1110 | * Reducing MAME's master volume to 50% will provide full unclipped volume. | |
| 1111 | */ | |
| 1112 | DISCRETE_OUTPUT(NODE_295, 32767.0/1.18) | |
| 1113 | 1113 | DISCRETE_TASK_END() |
| 1114 | 1114 | |
| 1115 | 1115 | DISCRETE_SOUND_END |
| r9535 | r9536 | |
| 1253 | 1253 | static READ8_DEVICE_HANDLER( dkong_tune_r ) |
| 1254 | 1254 | { |
| 1255 | 1255 | dkong_state *state = device->machine->driver_data<dkong_state>(); |
| 1256 | UINT8 page = latch8_r(state->dev_vp2,0) & 0x47; | |
| 1256 | UINT8 page = latch8_r(state->dev_vp2, 0) & 0x47; | |
| 1257 | 1257 | |
| 1258 | 1258 | if ( page & 0x40 ) |
| 1259 | 1259 | { |
| 1260 | return (latch8_r(device, 0) & 0x0F) | (dkong_voice_status_r(device,0)<<4); | |
| 1260 | return (latch8_r(device, 0) & 0x0F) | (dkong_voice_status_r(device, 0) << 4); | |
| 1261 | 1261 | } |
| 1262 | 1262 | else |
| 1263 | 1263 | { |
| 1264 | 1264 | /* printf("%s:rom access\n",cpuexec_describe_context(device->machine)); */ |
| 1265 | return (state->snd_rom[0x1000+(page & 7)*256+offset]); | |
| 1265 | return (state->snd_rom[0x1000 + (page & 7) * 256 + offset]); | |
| 1266 | 1266 | } |
| 1267 | 1267 | } |
| 1268 | 1268 |
| r9535 | r9536 | |
|---|---|---|
| 151 | 151 | /* the high charge is clamped by the diode to 0.7V above the 5V line */ |
| 152 | 152 | #define SKYRAID_MISSLE_CHARGE_PLUS (5.0 + 0.7) |
| 153 | 153 | |
| 154 | ||
| 154 | ||
| 155 | 155 | { |
| 156 | | |
| 156 | DISCRETE | |
| 157 | 157 | |
| 158 | 158 | int in_1 = (SKYRAID_MISSLE_CUSTOM_IN1 == 0) ? 0 : 1; |
| 159 | 159 | |
| r9535 | r9536 | |
| 163 | 163 | node->output[0] = SKYRAID_MISSLE_CHARGE_PLUS - context->v_cap; |
| 164 | 164 | } |
| 165 | 165 | |
| 166 | ||
| 166 | ||
| 167 | 167 | { |
| 168 | | |
| 168 | DISCRETE | |
| 169 | 169 | |
| 170 | 170 | /* everything is based on the input to the O.C. inverter */ |
| 171 | 171 |
| r9535 | r9536 | |
|---|---|---|
| 15 | 15 | /* FIXME: Capacitor aging - only in for calibration now */ |
| 16 | 16 | /* Adjustments are needed to bring this close to recordings */ |
| 17 | 17 | |
| 18 | /* FIXME: Awaiting verification. VCO range inputs are shown */ | |
| 19 | /* as connected to +5V on schematics. This does not match */ | |
| 20 | /* recordings */ | |
| 21 | ||
| 22 | #define USE_LS629 (0) /* set to use new LS624 code */ | |
| 23 | ||
| 24 | 18 | #define RUN_VCO_VOLTAGE (0.0) /* 5 in schematics */ |
| 25 | 19 | |
| 26 | 20 | #define USE_8039 (0) /* set to 1 to try 8039 hack */ |
| r9535 | r9536 | |
| 93 | 87 | /* 27 verified, 30K in schematics */ |
| 94 | 88 | #define MR_R19 RES_K(22) /* verified */ |
| 95 | 89 | #define MR_R20 RES_K(22) /* verified */ |
| 90 | #define MR_R34 RES_M(2) /* */ | |
| 91 | #define MR_R35 RES_M(1) /* */ | |
| 92 | #define MR_R36 RES_M(1.8) /* */ | |
| 96 | 93 | #define MR_R40 RES_K(22) /* verified */ |
| 97 | 94 | #define MR_R41 RES_K(100) /* verified */ |
| 98 | 95 | #define MR_R42 RES_K(43) /* verified */ |
| r9535 | r9536 | |
| 124 | 121 | /* KT = 0.25 for diode circuit, 0.33 else */ |
| 125 | 122 | |
| 126 | 123 | #define DISCRETE_LS123(_N, _T, _R, _C) \ |
| 127 | DISCRETE_ONESHOTR(_N, 0, _T, | |
| 124 | DISCRETE_ONESHOTR(_N, 0, _T, 1 | |
| 128 | 125 | #define DISCRETE_LS123_INV(_N, _T, _R, _C) \ |
| 129 | DISCRETE_ONESHOTR(_N, 0, _T, | |
| 126 | DISCRETE_ONESHOTR(_N, 0, _T, 1 | |
| 130 | 127 | |
| 131 | /* speed optimization */ | |
| 132 | /* pow(10, x) = exp(ln(10)*x) */ | |
| 133 | #define pow10(x) exp(2.30258509299404568401*(x)) | |
| 134 | 128 | |
| 135 | /* The following formula was derived from figures 2 and 3 in LS624 datasheet. Coefficients | |
| 136 | * where calculated using least square approximation. | |
| 137 | * This approach gives a bit better results compared to the first approach. | |
| 138 | */ | |
| 139 | //#define LS624_F(_C, _VI, _VR) pow10( -0.912029404 * log10(_C) + 0.243264328 * (_VI) | |
| 140 | // - 0.091695877 * (_VR) -0.014110946 * (_VI) * (_VR) - 3.207072925) | |
| 141 | #define LS624_F(_in, _num) pow10(context->k1_##_num + 0.243264328 * (_in) + context->k2_##_num * (_in)) | |
| 142 | ||
| 143 | /************************************************************************ | |
| 144 | * | |
| 145 | * Custom mario run | |
| 146 | * | |
| 147 | * Two VCO with XOR'd signal | |
| 148 | * | |
| 149 | * input[0] - Enable / Amplitude | |
| 150 | * input[1] - In1 VCO Control 1 | |
| 151 | * input[2] - In2 VCO Control 2 | |
| 152 | * input[3] - C1 VCO 1 Cap | |
| 153 | * input[4] - C2 VCO 2 CAP | |
| 154 | * input[5] - R1 | |
| 155 | * input[6] - C3 | |
| 156 | * | |
| 157 | * Vout >-------------------------- | |
| 158 | * | | |
| 159 | * C1 | | |
| 160 | * -||- | | |
| 161 | * | | -- +--- | |
| 162 | * ------ --- |AND| R1 | |
| 163 | * In1 >---+ Y1 +--------+ | |(*)+---ZZZ--+------> Out | |
| 164 | * | | |XOR+------+--- | | |
| 165 | * | | ---+ | | | |
| 166 | * | | | --- --- | |
| 167 | * In2 >---+ Y2 +---- --- C3 | |
| 168 | * ------ | | |
| 169 | * | | Gnd | |
| 170 | * -||- | |
| 171 | * C2 | |
| 172 | ************************************************************************/ | |
| 173 | #define MARIO_CUSTOM_VOUT DISCRETE_INPUT(0) | |
| 174 | #define MARIO_CUSTOM_IN1 DISCRETE_INPUT(1) | |
| 175 | #define MARIO_CUSTOM_IN2 DISCRETE_INPUT(2) | |
| 176 | #define MARIO_CUSTOM_C1 DISCRETE_INPUT(3) | |
| 177 | #define MARIO_CUSTOM_C2 DISCRETE_INPUT(4) | |
| 178 | #define MARIO_CUSTOM_R1 DISCRETE_INPUT(5) | |
| 179 | #define MARIO_CUSTOM_C3 DISCRETE_INPUT(6) | |
| 180 | ||
| 181 | struct mario_custom_run_context | |
| 129 | static const discrete_op_amp_info mario_dac_amp = | |
| 182 | 130 | { |
| 183 | int state1; | |
| 184 | int state2; | |
| 185 | double remain1; | |
| 186 | double remain2; | |
| 187 | double vc3; | |
| 188 | double r1_c3; | |
| 189 | double k1_1; | |
| 190 | double k2_1; | |
| 191 | double k1_2; | |
| 192 | double k2_2; | |
| 193 | double exponent_c3; | |
| 194 | double dt_in1_at_0; | |
| 195 | double dt_in2_at_0; | |
| 131 | DISC_OP_AMP_IS_NORTON, | |
| 132 | MR_R34, MR_R36, 0, MR_R35, 0, /* r1, r2, r3, r4, c */ | |
| 133 | 0, 5 /* vN, vP */ | |
| 196 | 134 | }; |
| 197 | 135 | |
| 198 | static | |
| 136 | static const discrete_mixer_desc mario_ | |
| 199 | 137 | { |
| 200 | struct mario_custom_run_context *context = (struct mario_custom_run_context *)node->context; | |
| 201 | ||
| 202 | double sample_t = node->info->sample_time; | |
| 203 | double vn, exponent, t = 0; | |
| 204 | int update_exponent; | |
| 205 | double t1, t2; | |
| 206 | ||
| 207 | if (EXPECTED(MARIO_CUSTOM_IN1 > 0.001)) | |
| 208 | t1 = 0.5 / LS624_F(MARIO_CUSTOM_IN1, 1); | |
| 209 | else | |
| 210 | /* close enough to 0, so we can speed things up by no longer call pow() */ | |
| 211 | t1 = context->dt_in1_at_0; | |
| 212 | ||
| 213 | if (EXPECTED(MARIO_CUSTOM_IN2 > 0.001)) | |
| 214 | t2 = 0.5 / LS624_F(MARIO_CUSTOM_IN2, 2); | |
| 215 | else | |
| 216 | t2 = context->dt_in2_at_0; | |
| 217 | ||
| 218 | while (sample_t > 0.0f) | |
| 219 | { | |
| 220 | /* state before time advance */ | |
| 221 | vn = (double) (context->state1 ^ context->state2); | |
| 222 | vn *= MARIO_CUSTOM_VOUT; | |
| 223 | update_exponent = 0; | |
| 224 | if (context->remain1 < context->remain2) | |
| 225 | { | |
| 226 | if (EXPECTED(context->remain1 < sample_t)) | |
| 227 | { | |
| 228 | t = context->remain1; | |
| 229 | update_exponent = 1; | |
| 230 | context->state1 ^= 1; | |
| 231 | sample_t -= context->remain1; | |
| 232 | context->remain2 -= context->remain1; | |
| 233 | context->remain1 = t1; | |
| 234 | } | |
| 235 | else | |
| 236 | { | |
| 237 | context->remain1 -= sample_t; | |
| 238 | context->remain2 -= sample_t; | |
| 239 | sample_t = 0.0f; | |
| 240 | } | |
| 241 | } | |
| 242 | else | |
| 243 | { | |
| 244 | if (EXPECTED(context->remain2 < sample_t)) | |
| 245 | { | |
| 246 | t = context->remain2; | |
| 247 | update_exponent = 1; | |
| 248 | context->state2 ^= 1; | |
| 249 | sample_t -= context->remain2; | |
| 250 | context->remain1 -= context->remain2; | |
| 251 | context->remain2 = t2; | |
| 252 | } | |
| 253 | else | |
| 254 | { | |
| 255 | context->remain1 -= sample_t; | |
| 256 | context->remain2 -= sample_t; | |
| 257 | sample_t = 0.0f; | |
| 258 | } | |
| 259 | } | |
| 260 | ||
| 261 | if (EXPECTED(update_exponent)) | |
| 262 | exponent = RC_CHARGE_EXP_DT(context->r1_c3, t); | |
| 263 | else | |
| 264 | exponent = context->exponent_c3; | |
| 265 | context->vc3 += (vn - context->vc3) * exponent; | |
| 266 | } | |
| 267 | node->output[0] = context->vc3; | |
| 268 | } | |
| 269 | ||
| 270 | static DISCRETE_RESET( mario_custom_run ) | |
| 271 | { | |
| 272 | struct mario_custom_run_context *context = (struct mario_custom_run_context *)node->context; | |
| 273 | ||
| 274 | context->remain1 = 0.0; | |
| 275 | context->remain2 = 0.0; | |
| 276 | context->state1 = 0; | |
| 277 | context->state2 = 0; | |
| 278 | context->vc3 = 0; | |
| 279 | context->r1_c3 = MARIO_CUSTOM_R1 * MARIO_CUSTOM_C3; | |
| 280 | node->output[0] = 0; | |
| 281 | ||
| 282 | /* precalculate some parts of the formulas for speed */ | |
| 283 | context->k1_1 = -0.912029404 * log10(MARIO_CUSTOM_C1) -0.091695877 * (RUN_VCO_VOLTAGE) - 3.207072925; | |
| 284 | context->k2_1 = -0.014110946 * (RUN_VCO_VOLTAGE); | |
| 285 | context->k1_2 = -0.912029404 * log10(MARIO_CUSTOM_C2) -0.091695877 * (RUN_VCO_VOLTAGE) - 3.207072925; | |
| 286 | context->k2_2 = -0.014110946 * (RUN_VCO_VOLTAGE); | |
| 287 | context->exponent_c3 = RC_CHARGE_EXP(context->r1_c3); | |
| 288 | ||
| 289 | context->dt_in1_at_0 = 0.5 / LS624_F(0, 1); | |
| 290 | context->dt_in2_at_0 = 0.5 / LS624_F(0, 2); | |
| 291 | } | |
| 292 | ||
| 293 | static const discrete_custom_info mario_custom_run_info = | |
| 294 | { | |
| 295 | DISCRETE_CUSTOM_MODULE( mario_custom_run, struct mario_custom_run_context), | |
| 296 | NULL | |
| 297 | }; | |
| 298 | ||
| 299 | static const discrete_mixer_desc mario_mixer = | |
| 300 | { | |
| 301 | 138 | DISC_MIXER_IS_RESISTOR, |
| 302 | 139 | {MR_R20, MR_R19, MR_R41, MR_R40}, |
| 303 | 140 | {0}, {0}, 0, 0, MR_C31, MR_C32, 0, 1 /* r_node{}, c{}, rI, rF, cF, cAmp, vRef, gain*/ |
| 304 | 141 | }; |
| 305 | 142 | |
| 306 | #define LS629_FREQ_R_IN RES_K(9 | |
| 143 | #define LS629_FREQ_R_IN RES_K(90) | |
| 307 | 144 | |
| 308 | 145 | static DISCRETE_SOUND_START(mario) |
| 309 | 146 | |
| 310 | /************************************************/ | |
| 311 | /* Input register mapping for mario */ | |
| 312 | /************************************************/ | |
| 147 | /************************************************ | |
| 148 | * Input register mapping for mario | |
| 149 | ************************************************/ | |
| 313 | 150 | |
| 314 | 151 | /* DISCRETE_INPUT_DATA */ |
| 315 | DISCRETE_INPUT_NOT(DS_SOUND7_INV) | |
| 152 | DISCRETE_INPUT_NOT(DS_SOUND7_INV) /* IC 7L, pin 8 */ | |
| 316 | 153 | |
| 317 | /************************************************/ | |
| 318 | /* SOUND0 */ | |
| 319 | /************************************************/ | |
| 154 | /************************************************ | |
| 155 | * SOUND0 | |
| 156 | ************************************************/ | |
| 320 | 157 | |
| 321 | 158 | DISCRETE_TASK_START(1) |
| 322 | DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1) | |
| 323 | DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, MR_C14) | |
| 324 | DISCRETE_RCFILTER(NODE_11, NODE_10, MR_R6, MR_C3 ) | |
| 325 | #if (USE_LS629) | |
| 326 | DISCRETE_74LS629(NODE_12, /* IC 1J, pin 10 */ | |
| 159 | DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1) /* IC 4C, pin 15 */ | |
| 160 | DISCRETE_LS123(NODE_10, /* IC 2H, pin 13 */ | |
| 161 | DS_SOUND0_INV, /* IC 2H, pin 2 */ | |
| 162 | MR_R17, MR_C14) | |
| 163 | ||
| 164 | /* Breadboarded measurements IC 1J, pin 10 | |
| 165 | D.R. Oct 2010 | |
| 166 | V Hz | |
| 167 | 0.115 14470 | |
| 168 | 0.250 15190 | |
| 169 | 0.500 14980 | |
| 170 | 0.750 18150 | |
| 171 | 1.000 21690 | |
| 172 | 2.000 38790 | |
| 173 | 3.000 58580 | |
| 174 | 4.000 79890 | |
| 175 | */ | |
| 176 | ||
| 177 | /* Breadboarded measurements IC 2J, pin 10 | |
| 178 | D.R. Oct 2010 | |
| 179 | V Hz | |
| 180 | 0.116 2458 | |
| 181 | 0.250 2593 | |
| 182 | 0.500 2540 | |
| 183 | 0.750 3081 | |
| 184 | 1.000 3676 | |
| 185 | 2.000 6590 | |
| 186 | 3.000 9974 | |
| 187 | 4.000 13620 | |
| 188 | */ | |
| 189 | ||
| 190 | /* covert logic to measured voltage */ | |
| 191 | DISCRETE_XTIME_BUFFER(NODE_11, /* IC 1H, pin 10 */ | |
| 192 | NODE_10, /* IC 1H, pin 11 */ | |
| 193 | 0.115, 4.0) /* measured Low/High */ | |
| 194 | /* work out cap charge of RC in parallel with 2 74LS629s */ | |
| 195 | DISCRETE_RCFILTER(NODE_12, NODE_11, RES_3_PARALLEL(MR_R6, LS629_FREQ_R_IN, LS629_FREQ_R_IN), MR_C3 ) | |
| 196 | /* work out voltage drop of RC in parallel with 2 74LS629s */ | |
| 197 | DISCRETE_GAIN(NODE_13, NODE_12, RES_VOLTAGE_DIVIDER(MR_R6, RES_2_PARALLEL(LS629_FREQ_R_IN, LS629_FREQ_R_IN))) | |
| 198 | DISCRETE_74LS624(NODE_14, /* IC 1J, pin 10 */ | |
| 327 | 199 | 1, /* ENAB */ |
| 328 | NODE_11, 5, /* VMOD, VRNG */ | |
| 329 | MR_C6, RES_2_PARALLEL(MR_R6, LS629_FREQ_R_IN), /* C, R_FREQ_IN */ | |
| 330 | DISC_LS624_OUT_SQUARE) | |
| 331 | DISCRETE_74LS629(NODE_13, /* IC 2J, pin 10 */ | |
| 200 | NODE_13, 5, /* VMOD - IC 1J, pin 1; VRNG */ | |
| 201 | MR_C6, 0, 0, 0, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 202 | DISC_LS624_OUT_LOGIC_X) | |
| 203 | DISCRETE_74LS624(NODE_15, /* IC 2J, pin 10 */ | |
| 332 | 204 | 1, /* ENAB */ |
| 333 | NODE_11, 5, /* VMOD, VRNG */ | |
| 334 | MR_C17, RES_2_PARALLEL(MR_R6, LS629_FREQ_R_IN), /* C, R_FREQ_IN */ | |
| 335 | DISC_LS624_OUT_SQUARE) | |
| 336 | DISCRETE_LOGIC_XOR(NODE_14, /* IC 1K, pin 6 */ | |
| 337 | NODE_12, NODE_13) | |
| 338 | DISCRETE_SWITCH(DS_OUT_SOUND0, /* IC 2K, pin 3 */ | |
| 339 | NODE_10, NODE_14, /* ENAB, SWITCH */ | |
| 340 | 0, TTL_HIGH) /* INP0,INP1 */ | |
| 341 | #else | |
| 342 | DISCRETE_CUSTOM7(DS_OUT_SOUND0, NODE_10, NODE_11, NODE_11, MR_C6, MR_C17, | |
| 343 | MR_MIXER_RPAR, MR_C31, &mario_custom_run_info) | |
| 344 | #endif | |
| 205 | NODE_13, 5, /* VMOD - IC 2J, pin 1; VRNG */ | |
| 206 | MR_C17, 0, 0, 0, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 207 | DISC_LS624_OUT_LOGIC_X) | |
| 208 | DISCRETE_XTIME_XOR(NODE_16, /* IC IC 1K, pin 6 */ | |
| 209 | NODE_14, NODE_15, /* IC 1K, pin 5; pin 4 */ | |
| 210 | 0, 0) /* use x_time logic */ | |
| 211 | DISCRETE_XTIME_AND(DS_OUT_SOUND0, /* IC 2K, pin 6 */ | |
| 212 | NODE_10, NODE_16, /* IC 2K, pin 5; pin 4 */ | |
| 213 | 0.066, 3.8) /* LOW; HIGH (varies due to load 3.7 - 4.4) */ | |
| 345 | 214 | DISCRETE_TASK_END() |
| 346 | 215 | |
| 347 | /************************************************/ | |
| 348 | /* SOUND1 */ | |
| 349 | /************************************************/ | |
| 216 | /************************************************ | |
| 217 | * SOUND1 | |
| 218 | ************************************************/ | |
| 350 | 219 | |
| 351 | 220 | DISCRETE_TASK_START(1) |
| 352 | DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1) | |
| 353 | DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, MR_C15) | |
| 354 | DISCRETE_RCFILTER(NODE_21, NODE_20, MR_R7, MR_C4 ) | |
| 355 | #if (USE_LS629) | |
| 356 | DISCRETE_74LS629(NODE_22, /* IC 1J, pin 7 */ | |
| 221 | DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1) /* IC 4C, pin 14 */ | |
| 222 | DISCRETE_LS123(NODE_20, /* IC 2H, pin 5 */ | |
| 223 | DS_SOUND1_INV, /* IC 2H, pin 10 */ | |
| 224 | MR_R18, MR_C15) | |
| 225 | ||
| 226 | /* Breadboarded measurements IC 1J, pin 7 | |
| 227 | D.R. Oct 2010 | |
| 228 | V Hz | |
| 229 | 0.116 1380 | |
| 230 | 0.250 1448 | |
| 231 | 0.500 1419 | |
| 232 | 0.750 1717 | |
| 233 | 1.000 2053 | |
| 234 | 2.000 3677 | |
| 235 | 3.000 5561 | |
| 236 | 4.000 7610 | |
| 237 | */ | |
| 238 | ||
| 239 | /* Breadboarded measurements IC 2J, pin 7 | |
| 240 | D.R. Oct 2010 | |
| 241 | V Hz | |
| 242 | 0.112 8030 | |
| 243 | 0.250 8490 | |
| 244 | 0.500 8326 | |
| 245 | 0.750 10030 | |
| 246 | 1.000 12000 | |
| 247 | 2.000 21460 | |
| 248 | 3.000 32540 | |
| 249 | 4.000 44300 | |
| 250 | */ | |
| 251 | ||
| 252 | /* covert logic to measured voltage */ | |
| 253 | DISCRETE_XTIME_BUFFER(NODE_21, /* IC 1H, pin 8 */ | |
| 254 | NODE_20, /* IC 1H, pin 9 */ | |
| 255 | 0.115, 4.0) /* measured Low/High */ | |
| 256 | /* work out cap charge of RC in parallel with 2 74LS629s */ | |
| 257 | DISCRETE_RCFILTER(NODE_22, NODE_21, RES_3_PARALLEL(MR_R7, LS629_FREQ_R_IN, LS629_FREQ_R_IN), MR_C4 ) | |
| 258 | /* work out voltage drop of RC in parallel with 2 74LS629s */ | |
| 259 | DISCRETE_GAIN(NODE_23, NODE_22, RES_VOLTAGE_DIVIDER(MR_R7, RES_2_PARALLEL(LS629_FREQ_R_IN, LS629_FREQ_R_IN))) | |
| 260 | DISCRETE_74LS624(NODE_24, /* IC 1J, pin 7 */ | |
| 357 | 261 | 1, /* ENAB */ |
| 358 | NODE_21, 5, /* VMOD, VRNG */ | |
| 359 | MR_C5, RES_2_PARALLEL(MR_R7, LS629_FREQ_R_IN), /* C, R_FREQ_IN */ | |
| 360 | DISC_LS624_OUT_SQUARE) | |
| 361 | DISCRETE_74LS629(NODE_23, /* IC 2J, pin 7 */ | |
| 262 | NODE_23, 5, /* VMOD, VRNG */ | |
| 263 | MR_C5, 0, 0, 0, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 264 | DISC_LS624_OUT_LOGIC_X) | |
| 265 | DISCRETE_74LS624(NODE_25, /* IC 2J, pin 7 */ | |
| 362 | 266 | 1, /* ENAB */ |
| 363 | NODE_21, 5, /* VMOD, VRNG */ | |
| 364 | MR_C16, RES_2_PARALLEL(MR_R7, LS629_FREQ_R_IN), /* C, R_FREQ_IN */ | |
| 365 | DISC_LS624_OUT_SQUARE) | |
| 366 | DISCRETE_LOGIC_XOR(NODE_24, /* IC 1K, pin 3 */ | |
| 367 | NODE_22, NODE_23) | |
| 368 | DISCRETE_SWITCH(DS_OUT_SOUND1, /* IC 2K, pin 3 */ | |
| 369 | NODE_20, NODE_24, /* ENAB, SWITCH */ | |
| 370 | 0, TTL_HIGH) /* INP0,INP1 */ | |
| 371 | #else | |
| 372 | DISCRETE_CUSTOM7(DS_OUT_SOUND1, NODE_20, NODE_21, NODE_21, MR_C5, MR_C16, | |
| 373 | MR_MIXER_RPAR, MR_C31, &mario_custom_run_info) | |
| 374 | #endif | |
| 267 | NODE_23, 5, /* VMOD, VRNG */ | |
| 268 | MR_C16, 0, 0, 0, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 269 | DISC_LS624_OUT_LOGIC_X) | |
| 270 | DISCRETE_XTIME_XOR(NODE_26, /* IC IC 1K, pin 3 */ | |
| 271 | NODE_24, NODE_25, /* IC 1K, pin 1; pin 2 */ | |
| 272 | 0, 0) /* use x_time logic */ | |
| 273 | DISCRETE_XTIME_AND(DS_OUT_SOUND1, /* IC 2K, pin 3 */ | |
| 274 | NODE_20, NODE_26, /* IC 2K, pin 2; pin 1 */ | |
| 275 | 0.066, 3.8) /* LOW; HIGH (varies due to load 3.7 - 4.4) */ | |
| 375 | 276 | DISCRETE_TASK_END() |
| 376 | 277 | |
| 377 | /************************************************/ | |
| 378 | /* SOUND7 */ | |
| 379 | /************************************************/ | |
| 278 | /************************************************ | |
| 279 | * SOUND7 | |
| 280 | ************************************************/ | |
| 380 | 281 | |
| 381 | 282 | DISCRETE_TASK_START(1) |
| 382 | DISCRETE_COUNTER(NODE_100,1,0,NODE_118,0,0xFFFF,DISC_COUNT_UP,0,DISC_CLK_BY_COUNT) | |
| 283 | DISCRETE_COUNTER(NODE_100, /* IC 3H */ | |
| 284 | 1, 0, /* ENAB; RESET */ | |
| 285 | NODE_118, /* CLK - IC 3H, pin 10 */ | |
| 286 | 0, 0x3FFF, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT | DISC_OUT_HAS_XTIME) | |
| 287 | DISCRETE_BIT_DECODE(NODE_102, /* IC 3H, pin 7 */ | |
| 288 | NODE_100, 3, 0) /* output x_time logic */ | |
| 289 | DISCRETE_BIT_DECODE(NODE_104, /* IC 3H, pin 1 */ | |
| 290 | NODE_100, 11, 0) /* output x_time logic */ | |
| 383 | 291 | |
| 384 | DISCRETE_BIT_DECODE(NODE_102, NODE_100, 3, 1) //LS157 2B | |
| 385 | DISCRETE_BIT_DECODE(NODE_104, NODE_100, 11, TTL_HIGH) //LS157 3B | |
| 292 | DISCRETE_LS123(NODE_110, /* IC 4L, pin 13 */ | |
| 293 | DS_SOUND7_INV, /* IC 4L, pin 2 */ | |
| 294 | MR_R61, MR_C41) | |
| 295 | DISCRETE_XTIME_INVERTER(NODE_111, /* IC 4J, pin 8 */ | |
| 296 | NODE_110, /* IC 4J, pin 9 */ | |
| 297 | 0.151, 4.14) /* measured Low/High */ | |
| 386 | 298 | |
| 387 | DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, MR_C41) | |
| 388 | DISCRETE_TRANSFORM2(NODE_111, NODE_110, TTL_HIGH, "0!1*") | |
| 389 | DISCRETE_RCFILTER(NODE_112, NODE_111, MR_R65, MR_C44) | |
| 390 | #if (USE_LS629) | |
| 391 | DISCRETE_74LS629(NODE_113, /* IC 4K, pin 10 */ | |
| 299 | /* Breadboarded measurements IC 4K, pin 10 | |
| 300 | D.R. Oct 2010 | |
| 301 | V Hz | |
| 302 | 0.151 3139 | |
| 303 | 0.25 2883 | |
| 304 | 0.5 2820 | |
| 305 | 0.75 3336 | |
| 306 | 1 3805 | |
| 307 | 2 6498 | |
| 308 | 3 9796 | |
| 309 | 4 13440 | |
| 310 | 4.14 13980 | |
| 311 | */ | |
| 312 | ||
| 313 | DISCRETE_74LS624(NODE_113, /* IC 4K, pin 10 */ | |
| 392 | 314 | 1, /* ENAB */ |
| 393 | NODE_112, 5, /* VMOD, VRNG */ | |
| 394 | MR_C40, MR_R65, /* C, R_FREQ_IN */ | |
| 395 | DISC_LS624_OUT_LOGIC) | |
| 396 | #else | |
| 397 | DISCRETE_74LS624(NODE_113, NODE_112, RUN_VCO_VOLTAGE /*VSS*/, MR_C40, DISC_LS624_OUT_LOGIC) | |
| 398 | #endif | |
| 315 | NODE_111, 5, /* VMOD - IC 4K, pin 1; VRNG */ | |
| 316 | MR_C40, MR_R65, MR_C44, 0, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 317 | DISC_LS624_OUT_LOGIC_X) | |
| 399 | 318 | |
| 400 | DISCRETE_LOGIC_XOR(NODE_115, NODE_102, NODE_113) | |
| 319 | DISCRETE_XTIME_XOR(NODE_115, /* IC 6N, pin 3 */ | |
| 320 | NODE_113, NODE_102, /* IC 6N, pin 1; pin 2 */ | |
| 321 | 0, 0) /* use x_time logic */ | |
| 401 | 322 | |
| 402 | DISCRETE_RCFILTER(NODE_117, NODE_104, MR_R64, MR_C43) | |
| 403 | #if (USE_LS629) | |
| 404 | DISCRETE_74LS629(NODE_118, /* IC 4K, pin 7 */ | |
| 323 | /* Breadboarded measurements IC 4K, pin 7 | |
| 324 | D.R. Oct 2010 | |
| 325 | V Hz | |
| 326 | 0.135 14450 | |
| 327 | 0.25 13320 | |
| 328 | 0.5 12980 | |
| 329 | 0.75 15150 | |
| 330 | 1 17270 | |
| 331 | 2 28230 | |
| 332 | 3 41910 | |
| 333 | 4 56950 | |
| 334 | 4.15 59400 | |
| 335 | */ | |
| 336 | ||
| 337 | DISCRETE_XTIME_INVERTER(NODE_117, /* IC 4J, pin 4 */ | |
| 338 | NODE_104, /* IC 4J, pin 3 */ | |
| 339 | 0.135, 4.15) /* measured Low/High */ | |
| 340 | DISCRETE_74LS624(NODE_118, /* IC 4K, pin 7 */ | |
| 405 | 341 | 1, /* ENAB */ |
| 406 | NODE_117, 5, /* VMOD, VRNG */ | |
| 407 | MR_C39, MR_R64, /* C, R_FREQ_IN */ | |
| 408 | DISC_LS624_OUT_LOGIC) | |
| 409 | #else | |
| 410 | DISCRETE_74LS624(NODE_118, NODE_117, RUN_VCO_VOLTAGE /*VSS*/, MR_C39, DISC_LS624_OUT_COUNT_F) | |
| 411 | #endif | |
| 412 | DISCRETE_LOGIC_AND(NODE_120, NODE_115, NODE_110) | |
| 413 | DISCRETE_MULTIPLY(DS_OUT_SOUND7, NODE_120, TTL_HIGH) | |
| 342 | NODE_117, 5, /* VMOD - IC 4K, pin 2; VRNG */ | |
| 343 | MR_C39, MR_R64, MR_C43, 0, /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */ | |
| 344 | DISC_LS624_OUT_LOGIC_X) | |
| 345 | ||
| 346 | DISCRETE_XTIME_AND(DS_OUT_SOUND7, /* IC 2K, pin 11 */ | |
| 347 | NODE_110, NODE_115, /* IC 2K, pin 12; pin 13 */ | |
| 348 | 0.066, 4.07) /* LOW; HIGH (varies due to load 4.07 is lowest) */ | |
| 414 | 349 | DISCRETE_TASK_END() |
| 415 | 350 | |
| 416 | /************************************************/ | |
| 417 | /* DAC */ | |
| 418 | /************************************************/ | |
| 351 | /************************************************ | |
| 352 | * DAC | |
| 353 | ************************************************/ | |
| 419 | 354 | |
| 420 | 355 | /* following the resistor DAC are two opamps. The first is a 1:1 amplifier, the second |
| 421 | 356 | * is a filter circuit. Simulation in LTSPICE shows, that the following is equivalent: |
| r9535 | r9536 | |
| 423 | 358 | |
| 424 | 359 | DISCRETE_TASK_START(1) |
| 425 | 360 | DISCRETE_INPUT_BUFFER(DS_DAC, 0) |
| 426 | DISCRETE_MULTIPLY(NODE_170, DS_DAC, TTL_HIGH/256.0) | |
| 427 | DISCRETE_RCFILTER(DS_OUT_DAC, NODE_170, RES_K(750), CAP_P(200)) | |
| 361 | DISCRETE_MULTIPLY(NODE_170, DS_DAC, TTL_HIGH / 256.0) /* MXR1 */ | |
| 362 | /* this stage reduces the gain of the DAC by 50%, so yes the volume is much lower then the walk sound */ | |
| 363 | DISCRETE_OP_AMP(NODE_171, /* IC 3M, pin 5 */ | |
| 364 | 1, /* ENAB */ | |
| 365 | NODE_170, 5, /* IN0 - IC 3M, pin 6; IN1 - IC 3M, pin 1 */ | |
| 366 | &mario_dac_amp) | |
| 367 | /* This provides a close simulation of the IC 3M, pin 10 filter circuit */ | |
| 368 | /* The Measured and SPICEd low freq gain is 1, it then has a high frequency | |
| 369 | * drop close to the following RC filter. */ | |
| 370 | DISCRETE_RCFILTER_VREF(DS_OUT_DAC, NODE_171, RES_K(750), CAP_P(180), 2.5) | |
| 428 | 371 | DISCRETE_TASK_END() |
| 429 | 372 | |
| 430 | 373 | |
| 431 | /************************************************/ | |
| 432 | /* MIXER */ | |
| 433 | /************************************************/ | |
| 374 | /************************************************ | |
| 375 | * MIXER | |
| 376 | ************************************************/ | |
| 434 | 377 | |
| 435 | 378 | DISCRETE_TASK_START(2) |
| 436 | 379 | DISCRETE_MIXER4(NODE_297, |
| 437 | 380 | 1, /* ENAB */ |
| 438 | 381 | DS_OUT_SOUND0, DS_OUT_SOUND1, DS_OUT_SOUND7, DS_OUT_DAC, |
| 439 | 382 | &mario_mixer) |
| 440 | DISCRETE_OUTPUT(NODE_297, 32767.0/1.7) | |
| 383 | /* approx -0.625V to 0.980V when playing, but turn on sound peaks at 2.38V */ | |
| 384 | /* we will set the full wav range to 1.19V which will cause clipping on the turn on | |
| 385 | * sound. The real game would do this when the volume is turned up too. | |
| 386 | * Reducing MAME's master volume to 50% will provide full unclipped volume. | |
| 387 | */ | |
| 388 | DISCRETE_OUTPUT(NODE_297, 32767.0/1.19) | |
| 441 | 389 | DISCRETE_TASK_END() |
| 442 | 390 | |
| 443 | 391 | DISCRETE_SOUND_END |
| r9535 | r9536 | |
| 496 | 444 | #endif |
| 497 | 445 | |
| 498 | 446 | /* FIXME: convert to latch8 */ |
| 499 | soundlatch_clear_w(space,0,0); | |
| 500 | soundlatch2_clear_w(space,0,0); | |
| 501 | soundlatch3_clear_w(space,0,0); | |
| 502 | soundlatch4_clear_w(space,0,0); | |
| 503 | I8035_P1_W(space,0x00); /* Input port */ | |
| 504 | I8035_P2_W(space,0xff); /* Port is in high impedance state after reset */ | |
| 447 | soundlatch_clear_w(space, 0, 0); | |
| 448 | soundlatch2_clear_w(space, 0, 0); | |
| 449 | soundlatch3_clear_w(space, 0, 0); | |
| 450 | soundlatch4_clear_w(space, 0, 0); | |
| 451 | I8035_P1_W(space, 0x00); /* Input port */ | |
| 452 | I8035_P2_W(space, 0xff); /* Port is in high impedance state after reset */ | |
| 505 | 453 | |
| 506 | 454 | state->last = 0; |
| 507 | 455 | } |
| r9535 | r9536 | |
| 524 | 472 | |
| 525 | 473 | static READ8_HANDLER( mario_sh_t0_r ) |
| 526 | 474 | { |
| 527 | return I8035_T_R(space,0); | |
| 475 | return I8035_T_R(space, 0); | |
| 528 | 476 | } |
| 529 | 477 | |
| 530 | 478 | static READ8_HANDLER( mario_sh_t1_r ) |
| 531 | 479 | { |
| 532 | return I8035_T_R(space,1); | |
| 480 | return I8035_T_R(space, 1); | |
| 533 | 481 | } |
| 534 | 482 | |
| 535 | 483 | static READ8_HANDLER( mario_sh_tune_r ) |
| r9535 | r9536 | |
| 539 | 487 | UINT8 p2 = I8035_P2_R(space); |
| 540 | 488 | |
| 541 | 489 | if ((p2 >> 7) & 1) |
| 542 | return soundlatch_r(space,offset); | |
| 490 | return soundlatch_r(space, offset); | |
| 543 | 491 | else |
| 544 | return (SND[(0x1000 + (p2 & 0x0f)*256+offset) & mask]); | |
| 492 | return (SND[(0x1000 + (p2 & 0x0f) * 256 + offset) & mask]); | |
| 545 | 493 | } |
| 546 | 494 | |
| 547 | 495 | static WRITE8_DEVICE_HANDLER( mario_sh_sound_w ) |
| 548 | 496 | { |
| 549 | discrete_sound_w(device,DS_DAC,data); | |
| 497 | discrete_sound_w(device, DS_DAC, data); | |
| 550 | 498 | } |
| 551 | 499 | |
| 552 | 500 | static WRITE8_HANDLER( mario_sh_p1_w ) |
| 553 | 501 | { |
| 554 | I8035_P1_W(space,data); | |
| 502 | I8035_P1_W(space, data); | |
| 555 | 503 | } |
| 556 | 504 | |
| 557 | 505 | static WRITE8_HANDLER( mario_sh_p2_w ) |
| 558 | 506 | { |
| 559 | I8035_P2_W(space,data); | |
| 507 | I8035_P2_W(space, data); | |
| 560 | 508 | } |
| 561 | 509 | |
| 562 | 510 | /**************************************************************** |
| r9535 | r9536 | |
| 572 | 520 | if (state->last == 1 && data == 0) |
| 573 | 521 | { |
| 574 | 522 | /* setting bit 0 high then low triggers IRQ on the sound CPU */ |
| 575 | cputag_set_input_line_and_vector(space->machine, "audiocpu",0,HOLD_LINE,0xff); | |
| 523 | cputag_set_input_line_and_vector(space->machine, "audiocpu", 0, HOLD_LINE, 0xff); | |
| 576 | 524 | } |
| 577 | 525 | |
| 578 | 526 | state->last = data; |
| r9535 | r9536 | |
| 580 | 528 | |
| 581 | 529 | WRITE8_HANDLER( mario_sh_tuneselect_w ) |
| 582 | 530 | { |
| 583 | soundlatch_w(space,offset,data); | |
| 531 | soundlatch_w(space, offset, data); | |
| 584 | 532 | } |
| 585 | 533 | |
| 586 | 534 | /* Sound 0 and 1 are pulsed !*/ |
| r9535 | r9536 | |
| 588 | 536 | /* Mario running sample */ |
| 589 | 537 | WRITE8_DEVICE_HANDLER( mario_sh1_w ) |
| 590 | 538 | { |
| 591 | discrete_sound_w(device,DS_SOUND0_INP, 0); | |
| 539 | discrete_sound_w(device, DS_SOUND0_INP, 0); | |
| 592 | 540 | } |
| 593 | 541 | |
| 594 | 542 | /* Luigi running sample */ |
| 595 | 543 | WRITE8_DEVICE_HANDLER( mario_sh2_w ) |
| 596 | 544 | { |
| 597 | discrete_sound_w(device,DS_SOUND1_INP, 0); | |
| 545 | discrete_sound_w(device, DS_SOUND1_INP, 0); | |
| 598 | 546 | } |
| 599 | 547 | |
| 600 | 548 | /* Misc samples */ |
| r9535 | r9536 | |
| 611 | 559 | cputag_set_input_line(space->machine, "audiocpu",0,CLEAR_LINE); |
| 612 | 560 | break; |
| 613 | 561 | case 1: /* get coin */ |
| 614 | I8035_T_W_AH(space,0,data & 1); | |
| 562 | I8035_T_W_AH(space, 0,data & 1); | |
| 615 | 563 | break; |
| 616 | 564 | case 2: /* ice */ |
| 617 | I8035_T_W_AH(space,1,data & 1); | |
| 565 | I8035_T_W_AH(space, 1, data & 1); | |
| 618 | 566 | break; |
| 619 | 567 | case 3: /* crab */ |
| 620 | I8035_P1_W_AH(space,0,data & 1); | |
| 568 | I8035_P1_W_AH(space, 0, data & 1); | |
| 621 | 569 | break; |
| 622 | 570 | case 4: /* turtle */ |
| 623 | I8035_P1_W_AH(space,1,data & 1); | |
| 571 | I8035_P1_W_AH(space, 1, data & 1); | |
| 624 | 572 | break; |
| 625 | 573 | case 5: /* fly */ |
| 626 | I8035_P1_W_AH(space,2,data & 1); | |
| 574 | I8035_P1_W_AH(space, 2, data & 1); | |
| 627 | 575 | break; |
| 628 | 576 | case 6: /* coin */ |
| 629 | I8035_P1_W_AH(space,3,data & 1); | |
| 577 | I8035_P1_W_AH(space, 3, data & 1); | |
| 630 | 578 | break; |
| 631 | 579 | case 7: /* skid */ |
| 632 | discrete_sound_w(space->machine->device("discrete"),DS_SOUND7_INP,data & 1); | |
| 580 | discrete_sound_w(space->machine->device("discrete"), DS_SOUND7_INP, data & 1); | |
| 633 | 581 | break; |
| 634 | 582 | } |
| 635 | 583 | } |
| r9535 | r9536 | |
| 699 | 647 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 700 | 648 | MDRV_SOUND_ADD("discrete", DISCRETE, 0) |
| 701 | 649 | MDRV_SOUND_CONFIG_DISCRETE(mario) |
| 702 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1 | |
| 650 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1 | |
| 703 | 651 | |
| 704 | 652 | MACHINE_CONFIG_END |
| 705 | 653 | |
| 706 | 654 | MACHINE_CONFIG_FRAGMENT( masao_audio ) |
| 707 | 655 | |
| 708 | MDRV_CPU_ADD("audiocpu", Z80,24576000/16) /* ???? */ | |
| 656 | MDRV_CPU_ADD("audiocpu", Z80, 24576000/16) /* ???? */ | |
| 709 | 657 | MDRV_CPU_PROGRAM_MAP(masao_sound_map) |
| 710 | 658 | |
| 711 | 659 | MDRV_SOUND_START(mario) |
| r9535 | r9536 | |
|---|---|---|
| 372 | 372 | |
| 373 | 373 | static TIMER_CALLBACK(akiko_frame_proc) |
| 374 | 374 | { |
| 375 | akiko_state *state = (akiko_state *)p | |
| 375 | akiko_state *state = (akiko_state *)ptr | |
| 376 | 376 | running_device *cdda = cdda_from_cdrom(machine, state->cdrom); |
| 377 | 377 | |
| 378 | 378 | (void)param; |
| r9535 | r9536 | |
|---|---|---|
| 270 | 270 | { "toyfight", 0, 0x2ca85, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } }, |
| 271 | 271 | { "vtennis", 0, 0x3eb15, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } }, |
| 272 | 272 | { "wwfroyal",0, 0x627c3, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } }, |
| 273 | { "zerogu2", 0, 0x7c010, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } }, | |
| 273 | 274 | { "zombrvn", 0, 0x12b41, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } }, |
| 274 | 275 | |
| 275 | 276 | // games where the encryption is stacked with the ASIC's compression |
| r9535 | r9536 | |
|---|---|---|
| 1776 | 1776 | DRIVER( lkageb ) /* bootleg */ |
| 1777 | 1777 | DRIVER( lkageb2 ) /* bootleg */ |
| 1778 | 1778 | DRIVER( lkageb3 ) /* bootleg */ |
| 1779 | DRIVER( bygone ) /* prototype ? A53 (c) 1985 Taito Corporation */ | |
| 1779 | 1780 | DRIVER( msisaac ) /* A34 (c) 1985 Taito Corporation */ |
| 1780 | 1781 | DRIVER( retofinv ) /* A37 (c) 1985 Taito Corporation */ |
| 1781 | 1782 | DRIVER( retofinv1 ) /* bootleg */ |
| r9535 | r9536 | |
| 4682 | 4683 | DRIVER( gundmct ) /* 2001.03 Mobile Suit Gundam: Federation vs. Zeon (cartridge) */ |
| 4683 | 4684 | /* 2001.04 Shakatto Tambourine Motto Norinori Shinkyoku Tsuika */ |
| 4684 | 4685 | DRIVER( dygolf ) /* 2001.04 Dynamic Golf */ |
| 4685 | | |
| 4686 | DRIVER( zerogu2 ) /* 2001.05 Zero Gunner 2 */ | |
| 4686 | 4687 | DRIVER( monkeyba ) /* 2001.05 Monkey Ball */ |
| 4687 | 4688 | DRIVER( cvsgd ) /* 2001.06 Capcom vs. SNK Pro */ |
| 4688 | 4689 | /* 2001.06 Crackin' DJ Part2 */ |
| r9535 | r9536 | |
| 4845 | 4846 | /* 2005.03 The Rumble Fish 2 */ |
| 4846 | 4847 | DRIVER( ngbc ) /* 2005.07 NeoGeo Battle Colloseum */ |
| 4847 | 4848 | /* 2005.09 Samurai Spirits Tenkaichi Kenkakuden */ |
| 4848 | | |
| 4849 | DRIVER( kofxi ) /* 2005.10 The King of Fighters XI */ | |
| 4849 | 4850 | DRIVER( fotns ) /* 2005.12 Hokuto no Ken */ |
| 4850 | 4851 | /* 2006.02 Metal Slug 6 */ |
| 4851 | 4852 | DRIVER( xtrmhnt2 ) /* 2006.09 Extreme Hunting 2 Tournament Edition */ |
| r9535 | r9536 | |
| 8335 | 8336 | DRIVER( cafetime ) /* 1992 Dynax */ |
| 8336 | 8337 | DRIVER( cafedoll ) /* 1993 Dynax */ |
| 8337 | 8338 | DRIVER( janptr96 ) /* 1996 Dynax */ |
| 8339 | DRIVER( janptrsp ) /* 1997 Dynax */ | |
| 8338 | 8340 | DRIVER( sprtmtch ) /* "31" (c) 1989 Dynax + Fabtek license */ |
| 8339 | 8341 | DRIVER( maya ) /* (c) 1994 Promat */ |
| 8340 | 8342 | DRIVER( mayaa ) /* (c) 1994 Promat */ |
| r9535 | r9536 | |
| 8342 | 8344 | DRIVER( blktouch ) /* (c) Yang Gi Co Ltd. */ |
| 8343 | 8345 | DRIVER( mcnpshnt ) /* "33" Mahjong Campus Hunting 1990 Dynax */ |
| 8344 | 8346 | DRIVER( 7jigen ) /* "37" 7jigen no Youseitachi 1990 Dynax */ |
| 8345 | DRIVER( neruton ) /* "45" Neruton Haikujiradan 1990 Dynax */ | |
| 8347 | DRIVER( neruton ) /* "45" Mahjong Neruton Haikujiradan 1990 Dynax */ | |
| 8348 | DRIVER( nerutona ) /* "45" Mahjong Neruton Haikujiradan 1990 Dynax */ | |
| 8346 | 8349 | DRIVER( mjcomv1 ) /* 1991 Dynax */ |
| 8347 | 8350 | DRIVER( shpeng ) /* (c) 1995 WSAC Systems */ |
| 8348 | 8351 | DRIVER( tenkai ) /* 1991 Dynax */ |
| r9535 | r9536 | |
| 8682 | 8685 | DRIVER( stonebal ) /* (c) 1994 */ |
| 8683 | 8686 | DRIVER( stonebal2 ) /* (c) 1994 */ |
| 8684 | 8687 | |
| 8688 | DRIVER( shtstar ) /* (c) 1994 Nova */ | |
| 8689 | ||
| 8685 | 8690 | /* Dynamo games */ |
| 8686 | 8691 | DRIVER( skeetsht ) /* (c) 1991 */ |
| 8687 | 8692 | DRIVER( toursol ) /* (c) 1995 Dynamo */ |
| r9535 | r9536 | |
| 8764 | 8769 | DRIVER( mgprem11 ) /* (c) 1995 */ |
| 8765 | 8770 | DRIVER( lasstixx ) /* (c) 1995 */ |
| 8766 | 8771 | DRIVER( mgnumber ) /* (c) 1995 */ |
| 8772 | DRIVER( odeontw2 ) /* (c) 1999 */ | |
| 8767 | 8773 | |
| 8768 | 8774 | /* American Laser Games */ |
| 8769 | 8775 | DRIVER( alg_bios ) |
| r9535 | r9536 | |
| 9241 | 9247 | DRIVER( pitbossma ) /* (c) 1994 Merit */ |
| 9242 | 9248 | DRIVER( pbst30 ) /* (c) 1994 Merit */ |
| 9243 | 9249 | DRIVER( pbst30b ) /* (c) 1993 Merit */ |
| 9250 | DRIVER( megat2 ) /* (c) 1994 Merit */ | |
| 9244 | 9251 | DRIVER( megat3 ) /* (c) 1996 Merit */ |
| 9245 | 9252 | DRIVER( megat3a ) /* (c) 1996 Merit */ |
| 9246 | 9253 | DRIVER( megat3ca ) /* (c) 1996 Merit */ |
| r9535 | r9536 | |
| 9331 | 9338 | DRIVER( royalcrdd ) /* (c) 1991 TAB-Austria */ |
| 9332 | 9339 | DRIVER( royalcrde ) /* (c) 1991 TAB-Austria */ |
| 9333 | 9340 | DRIVER( royalcrdf ) /* (c) 1991 Evona Electronic */ |
| 9341 | DRIVER( royalcrdt ) /* (c) 1991 TAB-Austria orig */ | |
| 9334 | 9342 | DRIVER( royalcrdp ) /* (c) 1993 Digital Dreams */ |
| 9335 | 9343 | DRIVER( lluck3x3 ) /* (c) 1991 TAB-Austria */ |
| 9336 | 9344 | DRIVER( lluck4x1 ) /* (c) 1991 TAB-Austria */ |
| r9535 | r9536 | |
| 10460 | 10468 | |
| 10461 | 10469 | /* Blitz System Inc. */ |
| 10462 | 10470 | DRIVER( megadpkr ) /* (c) 1990 Blitz System Inc */ |
| 10471 | DRIVER( megadpkrb ) /* (c) 1990 Blitz System Inc */ | |
| 10463 | 10472 | |
| 10464 | 10473 | /* Olympic Video Gaming */ |
| 10465 | 10474 | DRIVER( hotstuff ) |
| r9535 | r9536 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | *************************************************************************/ |
| 6 | 6 | |
| 7 | #include "sound/discrete.h" | |
| 8 | ||
| 9 | ||
| 7 | 10 | class copsnrob_state : public driver_device |
| 8 | 11 | { |
| 9 | 12 | public: |
| r9535 | r9536 | |
| 21 | 24 | |
| 22 | 25 | /* misc */ |
| 23 | 26 | UINT8 misc; |
| 27 | UINT8 ic_h3_data; | |
| 24 | 28 | }; |
| 25 | 29 | |
| 26 | 30 | |
| r9535 | r9536 | |
| 32 | 36 | /*----------- defined in video/copsnrob.c -----------*/ |
| 33 | 37 | |
| 34 | 38 | VIDEO_UPDATE( copsnrob ); |
| 39 | ||
| 40 | ||
| 41 | /*----------- defined in audio/copsnrob.c -----------*/ | |
| 42 | ||
| 43 | DISCRETE_SOUND_EXTERN( copsnrob ); | |
| 44 | WRITE8_HANDLER( copsnrob_misc_w ); |
| r9535 | r9536 | |
|---|---|---|
| 13 | 13 | |
| 14 | 14 | /* video-related */ |
| 15 | 15 | tilemap_t *bg_tilemap, *fg_tilemap, *tx_tilemap; |
| 16 | UINT8 bg_tile_bank, fg_tile_bank; | |
| 16 | UINT8 bg_tile_bank, fg_tile_bank, tx_tile_bank; | |
| 17 | 17 | |
| 18 | int sprite_dx; | |
| 19 | ||
| 18 | 20 | /* misc */ |
| 19 | 21 | int sound_nmi_enable, pending_nmi; |
| 20 | 22 |
| r9535 | r9536 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | /* ROM banking */ |
| 20 | 20 | UINT8 bankxor; |
| 21 | UINT8 addr; | |
| 22 | 21 | |
| 23 | 22 | /* video-related */ |
| 24 | 23 | tilemap_t *background; |
| r9535 | r9536 | |
|---|---|---|
| 411 | 411 | $(DRIVERS)/cloud9.o $(VIDEO)/cloud9.o \ |
| 412 | 412 | $(DRIVERS)/cmmb.o \ |
| 413 | 413 | $(DRIVERS)/cojag.o $(AUDIO)/jaguar.o $(VIDEO)/jaguar.o \ |
| 414 | $(DRIVERS)/copsnrob.o $( | |
| 414 | $(DRIVERS)/copsnrob.o $( | |
| 415 | 415 | $(DRIVERS)/cyberbal.o $(AUDIO)/cyberbal.o $(VIDEO)/cyberbal.o \ |
| 416 | 416 | $(DRIVERS)/destroyr.o \ |
| 417 | 417 | $(DRIVERS)/dragrace.o $(AUDIO)/dragrace.o $(VIDEO)/dragrace.o \ |
| r9535 | r9536 | |
|---|---|---|
| 11 | 11 | lkage_scroll[0x05]: background layer vertical scroll |
| 12 | 12 | |
| 13 | 13 | lkage_vreg[0]: 0x00,0x04 |
| 14 | 0x02: tx tile bank select (bygone only?) | |
| 14 | 15 | 0x04: fg tile bank select |
| 15 | 16 | 0x08: ? |
| 16 | 17 | |
| r9535 | r9536 | |
| 82 | 83 | static TILE_GET_INFO( get_tx_tile_info ) |
| 83 | 84 | { |
| 84 | 85 | lkage_state *state = machine->driver_data<lkage_state>(); |
| 85 | int code = state->videoram[tile_index]; | |
| 86 | int code = state->videoram[tile_index] + 256 * (state->tx_tile_bank ? 4 : 0); | |
| 86 | 87 | SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); |
| 87 | 88 | } |
| 88 | 89 | |
| r9535 | r9536 | |
| 124 | 125 | int flipx = attributes & 0x01; |
| 125 | 126 | int flipy = attributes & 0x02; |
| 126 | 127 | int height = (attributes & 0x08) ? 2 : 1; |
| 127 | int sx = source[0] - 15; | |
| 128 | int sx = source[0] - 15 + state->sprite_dx; | |
| 128 | 129 | int sy = 256 - 16 * height - source[1]; |
| 129 | 130 | int sprite_number = source[3] + ((attributes & 0x04) << 6); |
| 130 | 131 | int y; |
| r9535 | r9536 | |
| 180 | 181 | flip_screen_y_set(screen->machine, ~state->vreg[2] & 0x02); |
| 181 | 182 | |
| 182 | 183 | bank = state->vreg[1] & 0x08; |
| 184 | ||
| 183 | 185 | if (state->bg_tile_bank != bank) |
| 184 | 186 | { |
| 185 | 187 | state->bg_tile_bank = bank; |
| r9535 | r9536 | |
| 193 | 195 | tilemap_mark_all_tiles_dirty(state->fg_tilemap); |
| 194 | 196 | } |
| 195 | 197 | |
| 198 | bank = state->vreg[0]&0x02; | |
| 199 | if (state->tx_tile_bank != bank) | |
| 200 | { | |
| 201 | state->tx_tile_bank = bank; | |
| 202 | tilemap_mark_all_tiles_dirty(state->tx_tilemap); | |
| 203 | } | |
| 204 | ||
| 196 | 205 | tilemap_set_palette_offset(state->bg_tilemap, 0x300 + (state->vreg[1] & 0xf0)); |
| 197 | 206 | tilemap_set_palette_offset(state->fg_tilemap, 0x200 + (state->vreg[1] & 0xf0)); |
| 198 | 207 | tilemap_set_palette_offset(state->tx_tilemap, 0x110); |
| r9535 | r9536 | |
| 212 | 221 | tilemap_draw(bitmap, cliprect, state->bg_tilemap, 0, 1); |
| 213 | 222 | tilemap_draw(bitmap, cliprect, state->fg_tilemap, 0, (state->vreg[1] & 2) ? 2 : 4); |
| 214 | 223 | tilemap_draw(bitmap, cliprect, state->tx_tilemap, 0, 4); |
| 224 | draw_sprites(screen->machine, bitmap, cliprect); | |
| 215 | 225 | } |
| 216 | 226 | else |
| 217 | 227 | { |
| 218 | 228 | tilemap_draw(bitmap, cliprect, state->tx_tilemap, TILEMAP_DRAW_OPAQUE, 0); |
| 219 | 229 | } |
| 220 | ||
| 230 | ||
| 221 | 231 | return 0; |
| 222 | 232 | } |
| r9535 | r9536 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | Games running on this hardware: |
| 10 | 10 | |
| 11 | * Jolly Card (austrian), TAB-Austria, 1985. | |
| 12 | * Jolly Card (3x3 deal), TAB-Austria, 1985. | |
| 11 | * Jolly Card (austrian), TAB Austria, 1985. | |
| 12 | * Jolly Card (3x3 deal), TAB Austria, 1985. | |
| 13 | 13 | * Jolly Card Professional 2.0 (MZS Tech), MZS Tech, 1993. |
| 14 | 14 | * Jolly Card Professional 2.0 (Spale Soft), Spale Soft, 2000. |
| 15 | 15 | * Jolly Card (Evona Electronic), Evona Electronic 1998. |
| 16 | * Jolly Card (croatian, set 1), TAB | |
| 16 | * Jolly Card (croatian, set 1), TAB Austria, 1985. | |
| 17 | 17 | * Jolly Card (croatian, set 2), Soft Design, 1993. |
| 18 | 18 | * Jolly Card (italian, blue TAB board, encrypted), bootleg, 199?. |
| 19 | 19 | * Jolly Card (italian, encrypted bootleg), bootleg, 1990. |
| r9535 | r9536 | |
| 33 | 33 | * Pot Game (italian), C.M.C., 1996. |
| 34 | 34 | * Bottle 10 (italian, set 1), C.M.C., 1996. |
| 35 | 35 | * Bottle 10 (italian, set 2), C.M.C., 1996. |
| 36 | * Royal Card (austrian, set 1), TAB-Austria, 1991. | |
| 37 | * Royal Card (austrian, set 2), TAB-Austria, 1991. | |
| 38 | * Royal Card (austrian/polish, set 3), TAB-Austria, 1991. | |
| 39 | * Royal Card (austrian, set 4), TAB-Austria, 1991. | |
| 40 | * Royal Card (austrian, set 5), TAB-Austria, 1991. | |
| 41 | * Royal Card (austrian, set 6), TAB-Austria, 1991. | |
| 36 | * Royal Card (austrian, set 1), TAB Austria, 1991. | |
| 37 | * Royal Card (austrian, set 2), TAB Austria, 1991. | |
| 38 | * Royal Card (austrian/polish, set 3), TAB Austria, 1991. | |
| 39 | * Royal Card (austrian, set 4), TAB Austria, 1991. | |
| 40 | * Royal Card (austrian, set 5), TAB Austria, 1991. | |
| 41 | * Royal Card (austrian, set 6), TAB Austria, 1991. | |
| 42 | * Royal Card (TAB original), TAB Austria, 1991. | |
| 42 | 43 | * Royal Card (slovak, encrypted), Evona Electronic, 1991. |
| 43 | 44 | * Royal Card Professional 2.0, Digital Dreams, 1993. |
| 44 | * Lucky Lady (3x3 deal), TAB-Austria, 1991. | |
| 45 | * Lucky Lady (4x1 aces), TAB-Austria, 1991. | |
| 45 | * Lucky Lady (3x3 deal), TAB Austria, 1991. | |
| 46 | * Lucky Lady (4x1 aces), TAB Austria, 1991. | |
| 46 | 47 | * Magic Card II (bulgarian), Impera, 1996. |
| 47 | 48 | * Magic Card II (green TAB or Impera board), Impera, 1996. |
| 48 | 49 | * Magic Card II (blue TAB board, encrypted), Impera, 1996. |
| r9535 | r9536 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | I/O Write: |
| 40 | 40 | |
| 41 | 0500-0503 Direction of the cars | |
| 42 | 0504-0507 (sounds/enable) - 0506: LED 1 | |
| 41 | 0500-0507 (sounds/enable) - 0506: LED 1 | |
| 43 | 42 | 0600 Beer Truck Y |
| 44 | 43 | 0700-07ff Beer Truck Sync Area |
| 45 | 44 | 0800-08ff Bullets RAM |
| r9535 | r9536 | |
| 76 | 75 | |
| 77 | 76 | /************************************* |
| 78 | 77 | * |
| 79 | * | |
| 78 | * I/O | |
| 80 | 79 | * |
| 81 | 80 | *************************************/ |
| 82 | 81 | |
| 83 | 82 | static READ8_HANDLER( copsnrob_misc_r ) |
| 84 | 83 | { |
| 85 | copsnrob_state *state = space->machine->driver_data<copsnrob_state>(); | |
| 86 | return state->misc | (input_port_read(space->machine, "IN0") & 0x80); | |
| 84 | return input_port_read(space->machine, "IN0") & 0x80; | |
| 87 | 85 | } |
| 88 | 86 | |
| 89 | static WRITE8_HANDLER( copsnrob_misc_w ) | |
| 87 | static WRITE8_HANDLER( copsnrob_misc2_w ) | |
| 90 | 88 | { |
| 91 | 89 | copsnrob_state *state = space->machine->driver_data<copsnrob_state>(); |
| 90 | ||
| 92 | 91 | state->misc = data & 0x7f; |
| 93 | set_led_status(space->machine, 1, ~data & 0x40); | |
| 92 | /* Multi Player Start */ | |
| 93 | set_led_status(space->machine, 1, !((data >> 6) & 0x01)); | |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | static WRITE8_HANDLER( copsnrob_led_w ) | |
| 97 | { | |
| 98 | set_led_status(space->machine, 0, ~data & 0x01); | |
| 99 | } | |
| 100 | 96 | |
| 101 | 97 | |
| 102 | ||
| 103 | 98 | /************************************* |
| 104 | 99 | * |
| 105 | 100 | * Main CPU memory handlers |
| r9535 | r9536 | |
| 109 | 104 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 110 | 105 | ADDRESS_MAP_GLOBAL_MASK(0x1fff) |
| 111 | 106 | AM_RANGE(0x0000, 0x01ff) AM_RAM |
| 112 | AM_RANGE(0x0500, 0x0503) AM_WRITEONLY | |
| 113 | // AM_RANGE(0x0504, 0x0507) AM_WRITENOP // ??? | |
| 114 | AM_RANGE(0x0506, 0x0506) AM_WRITE(copsnrob_led_w) | |
| 107 | AM_RANGE(0x0500, 0x0507) AM_WRITE(copsnrob_misc_w) | |
| 115 | 108 | AM_RANGE(0x0600, 0x0600) AM_WRITEONLY AM_BASE_MEMBER(copsnrob_state, trucky) |
| 116 | 109 | AM_RANGE(0x0700, 0x07ff) AM_WRITEONLY AM_BASE_MEMBER(copsnrob_state, truckram) |
| 117 | 110 | AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE_MEMBER(copsnrob_state, bulletsram) |
| r9535 | r9536 | |
| 122 | 115 | // AM_RANGE(0x1000, 0x1003) AM_WRITENOP |
| 123 | 116 | // AM_RANGE(0x1000, 0x1000) AM_READ_PORT("IN0") |
| 124 | 117 | AM_RANGE(0x1000, 0x1000) AM_READ(copsnrob_misc_r) |
| 125 | AM_RANGE(0x1000, 0x1000) AM_WRITE(copsnrob_misc_w) | |
| 126 | AM_RANGE(0x1002, 0x100e) AM_READ(copsnrob_gun_position_r) | |
| 118 | AM_RANGE(0x1000, 0x1000) AM_WRITE(copsnrob_misc2_w) | |
| 119 | AM_RANGE(0x1002, 0x1002) AM_READ_PORT("CTRL1") | |
| 120 | AM_RANGE(0x1006, 0x1006) AM_READ_PORT("CTRL2") | |
| 121 | AM_RANGE(0x100a, 0x100a) AM_READ_PORT("CTRL3") | |
| 122 | AM_RANGE(0x100e, 0x100e) AM_READ_PORT("CTRL4") | |
| 127 | 123 | AM_RANGE(0x1012, 0x1012) AM_READ_PORT("DSW") |
| 128 | 124 | AM_RANGE(0x1016, 0x1016) AM_READ_PORT("IN1") |
| 129 | 125 | AM_RANGE(0x101a, 0x101a) AM_READ_PORT("IN2") |
| r9535 | r9536 | |
| 138 | 134 | * |
| 139 | 135 | *************************************/ |
| 140 | 136 | |
| 137 | static const int gun_table[] = {0x3f, 0x5f, 0x6f, 0x77, 0x7b, 0x7d, 0x7e}; | |
| 138 | ||
| 141 | 139 | static INPUT_PORTS_START( copsnrob ) |
| 142 | 140 | PORT_START("IN0") |
| 143 | 141 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_VBLANK ) |
| r9535 | r9536 | |
| 166 | 164 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) |
| 167 | 165 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) |
| 168 | 166 | |
| 169 | /* These input ports are fake */ | |
| 170 | PORT_START("FAKE0") | |
| 171 | PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) | |
| 172 | PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) | |
| 167 | PORT_START("CTRL1") | |
| 168 | PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(1) | |
| 173 | 169 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) |
| 174 | 170 | |
| 175 | PORT_START("FAKE1") | |
| 176 | PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) | |
| 177 | PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) | |
| 171 | PORT_START("CTRL2") | |
| 172 | PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(2) | |
| 178 | 173 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 179 | 174 | |
| 180 | PORT_START("FAKE2") | |
| 181 | PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(3) | |
| 182 | PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(3) | |
| 175 | PORT_START("CTRL3") | |
| 176 | PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(3) | |
| 183 | 177 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) |
| 184 | 178 | |
| 185 | PORT_START("FAKE3") | |
| 186 | PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(4) | |
| 187 | PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(4) | |
| 179 | PORT_START("CTRL4") | |
| 180 | PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(4) | |
| 188 | 181 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) |
| 189 | 182 | INPUT_PORTS_END |
| 190 | 183 | |
| r9535 | r9536 | |
| 260 | 253 | { |
| 261 | 254 | copsnrob_state *state = machine->driver_data<copsnrob_state>(); |
| 262 | 255 | |
| 256 | state_save_register_global(machine, state->ic_h3_data); | |
| 263 | 257 | state_save_register_global(machine, state->misc); |
| 264 | 258 | } |
| 265 | 259 | |
| r9535 | r9536 | |
| 267 | 261 | { |
| 268 | 262 | copsnrob_state *state = machine->driver_data<copsnrob_state>(); |
| 269 | 263 | |
| 264 | state->ic_h3_data = 0; | |
| 270 | 265 | state->misc = 0; |
| 271 | 266 | } |
| 272 | 267 | |
| r9535 | r9536 | |
| 293 | 288 | |
| 294 | 289 | MDRV_PALETTE_INIT(copsnrob) |
| 295 | 290 | MDRV_VIDEO_UPDATE(copsnrob) |
| 291 | ||
| 292 | /* sound hardware */ | |
| 293 | MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") | |
| 294 | ||
| 295 | MDRV_SOUND_ADD("discrete", DISCRETE, 0) | |
| 296 | MDRV_SOUND_CONFIG_DISCRETE(copsnrob) | |
| 297 | MDRV_SOUND_ROUTE(0, "lspeaker", 1.0) | |
| 298 | MDRV_SOUND_ROUTE(1, "rspeaker", 1.0) | |
| 296 | 299 | MACHINE_CONFIG_END |
| 297 | 300 | |
| 298 | 301 | |
| r9535 | r9536 | |
| 341 | 344 | * |
| 342 | 345 | *************************************/ |
| 343 | 346 | |
| 344 | GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, 0, ROT0, "Atari", "Cops'n Robbers", GAME_ | |
| 347 | GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, 0, ROT0, "Atari", "Cops'n Robbers", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_copsnrob ) |
| r9535 | r9536 | |
|---|---|---|
| 636 | 636 | * |
| 637 | 637 | *************************************/ |
| 638 | 638 | |
| 639 | ROM_START( bigkarnk ) | |
| 639 | ROM_START( bigkarnk ) /* PCB silkscreened REF.901112 */ | |
| 640 | 640 | ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 code */ |
| 641 | 641 | ROM_LOAD16_BYTE( "d16", 0x000000, 0x040000, CRC(44fb9c73) SHA1(c33852b37afea15482f4a43cb045434660e7a056) ) |
| 642 | 642 | ROM_LOAD16_BYTE( "d19", 0x000001, 0x040000, CRC(ff79dfdd) SHA1(2bfa440299317967ba2018d3a148291ae0c144ae) ) |
| r9535 | r9536 | |
|---|---|---|
| 304 | 304 | |
| 305 | 305 | |
| 306 | 306 | 837-14114-01 171-8132B (C) Sega 2000 |
| 307 | |--------------------------------------------------------- | |
| 307 | |--------------------------------------------------------- | |
| 308 | 308 | | IC11 IC10 IC9 ----CN2---- -| |
| 309 | 309 | | 21/22 19/20 17/18 IC44 IC45 | |
| 310 | 310 | | IC27 | |
| r9535 | r9536 | |
| 342 | 342 | Derby Owners Club World Edition (Rev C) 840-0088C 22336C 7 (128Mb) 315-6319A 315-6213 not populated |
| 343 | 343 | Derby Owners Club World Edition (Rev D) 840-0088C 22336D 7 (128Mb) 315-6319A 315-6213 not populated 2 MaskROM are different from Rev C |
| 344 | 344 | Giga Wing 2 841-0014C 22270 5 (128Mb) 315-6319A 315-6213 317-5064-COM |
| 345 | Mobile Suit Gundam: Fed. VS Zeon (cart) 841-0017C 23638 10 (128Mb) ? ? ? | |
| 345 | 346 | Moero Justice Gakuen / Project Justice 841-0015C 23548A 11 (128Mb) 315-6319A 315-6213 317-5065-COM |
| 346 | 347 | Samba de Amigo Ver.2000 840-0047C 23600 ? (128Mb) 315-6319A 315-6213 317-0295-COM |
| 347 | 348 | The King of Route 66 (Rev A) 840-0087C 23819A ? (128Mb) ? ? ? |
| 348 | Wave Runner GP 840-0064B 24059 6 (128Mb) 315-6319A 315-6213 not populated | |
| 349 | Virtua Striker 3 (Rev B) 840-0061C 23663B 11 (128Mb) ? 315-6213 ? | |
| 350 | Virtua Striker 3 (Rev C) 840-0061C 23663C 11 (128Mb) ? 315-6213 ? | |
| 351 | Wave Runner GP 840-0064C 24059 6 (128Mb) 315-6319A 315-6213 not populated | |
| 349 | 352 | Wild Riders 840-0046C 23622 10 (128Mb) 315-6319A 315-6213 317-0301-COM |
| 350 | 353 | WWF Royal Rumble 840-0040C 22261 8 (128Mb) 315-6319 315-6213 317-0285-COM |
| 351 | 354 | Zero Gunner 2 841-0020C 23689 5 (128Mb) 315-6319A 315-6213 317-5073-COM |
| r9535 | r9536 | |
| 4492 | 4495 | NAOMI_BIOS |
| 4493 | 4496 | NAOMI_DEFAULT_EEPROM |
| 4494 | 4497 | |
| 4495 | ROM_REGION( 0x | |
| 4498 | ROM_REGION( 0x9 | |
| 4496 | 4499 | ROM_LOAD( "epr-24212.ic11", 0x0000000, 0x400000, CRC(935453e8) SHA1(b34b3ac976229cba941843ffac9db420068999de) ) |
| 4497 | ROM_LOAD32_WORD( "opr-24213a.ic17s", 0x0800000, 0x800000, CRC(2ea4810b) SHA1(67e6c4b246993ca775120d145e1b129cd743b358) ) | |
| 4498 | ROM_LOAD32_WORD( "opr-24214a.ic18", 0x0800002, 0x800000, CRC(0f574308) SHA1(699be7296650dcdb955048f2f5696a3b6d117afc) ) | |
| 4499 | ROM_LOAD32_WORD( "opr-24215a.ic19s", 0x1800000, 0x800000, CRC(e7fcb265) SHA1(ef05e330206adb0ebdba6df2ff7aaeb570c0c7e4) ) | |
| 4500 | ROM_LOAD32_WORD( "opr-24216a.ic20", 0x1800002, 0x800000, CRC(5101acc8) SHA1(2fbb4c8a450ecd070e2f18792a510e2cd4f7decb) ) | |
| 4501 | ROM_LOAD32_WORD( "opr-24224a.ic21s", 0x2800000, 0x800000, CRC(a5480237) SHA1(a250a45750d3d63428bf73c85cd510e4252da2c9) ) | |
| 4502 | ROM_LOAD32_WORD( "opr-24225a.ic22", 0x2800002, 0x800000, CRC(6b7e2856) SHA1(5b4a107ad654510b8282f4afe0c3856ca5a0fdf0) ) | |
| 4503 | ROM_LOAD32_WORD( "opr-24226a.ic23s", 0x3800000, 0x800000, CRC(5a7b85fa) SHA1(9b7ef6bbff01e83f14513d8ea42cdb66b74303d0) ) | |
| 4504 | ROM_LOAD32_WORD( "opr-24227a.ic24", 0x3800002, 0x800000, CRC(2b174c17) SHA1(9990268baf0091aef6cb3953b4da7fc2525d95af) ) | |
| 4505 | ROM_LOAD32_WORD( "opr-24228a.ic25s", 0x4800000, 0x800000, CRC(92690697) SHA1(5de562751305a385b929702fc3b3dfa4883be23b) ) | |
| 4506 | ROM_LOAD32_WORD( "opr-24229a.ic26", 0x4800002, 0x800000, CRC(fc3a6fbb) SHA1(1da1c011028c5b860a3d30e77a8dbdaabe997b63) ) | |
| 4507 | ROM_LOAD32_WORD( "opr-24230a.ic27s", 0x5800000, 0x800000, CRC(40da73c4) SHA1(c48e5d119f3f5c40cf78f6cc7fb5b62b153743a1) ) | |
| 4508 | ROM_LOAD32_WORD( "opr-24231a.ic28", 0x5800002, 0x800000, CRC(d04e33ec) SHA1(f7ed569bac47056955cb67f4ce0c1d36960f0c63) ) | |
| 4509 | ROM_LOAD32_WORD( "opr-24232a.ic29", 0x6800000, 0x800000, CRC(3bec96c6) SHA1(d228959dec168af1a1800e9b0f03692a68f10b99) ) | |
| 4510 | ROM_LOAD32_WORD( "opr-24233a.ic30s", 0x6800002, 0x800000, CRC(fc5bffec) SHA1(a6d63d80d11536c96d873c4ce492837ed83e3c9e) ) | |
| 4511 | ROM_LOAD32_WORD( "opr-24234a.ic31", 0x7800000, 0x800000, BAD_DUMP CRC(0dc58105) SHA1(524cad7019ba87db5ea13c3370082885fb09dd08) ) | |
| 4512 | ROM_LOAD32_WORD( "opr-24235a.ic32s", 0x7800002, 0x800000, BAD_DUMP CRC(1c55e3eb) SHA1(17a23c28d866b12f6249d513aea201edb2c43a68) ) | |
| 4500 | ROM_LOAD32_WORD( "opr-24213a.ic17s", 0x1000000, 0x800000, CRC(e24affe1) SHA1(5b4efbf9cdde8e49c26edba69b515d79b9b7acea) ) | |
| 4501 | ROM_LOAD32_WORD( "opr-24214a.ic18", 0x1000002, 0x800000, CRC(19bc5bca) SHA1(1c16ac929757a0c46456938bd9ccec7438130c66) ) | |
| 4502 | ROM_LOAD32_WORD( "opr-24215a.ic19s", 0x2000000, 0x800000, CRC(fed7750e) SHA1(61af9799a73ddc80e6763d44b23cbf8db497f144) ) | |
| 4503 | ROM_LOAD32_WORD( "opr-24216a.ic20", 0x2000002, 0x800000, CRC(635e5365) SHA1(e22f3fb0ac03963596e36592bfce791b0ee183e9) ) | |
| 4504 | ROM_LOAD32_WORD( "opr-24224a.ic21s", 0x3000000, 0x800000, CRC(a86b9368) SHA1(d73b8250700d368d3b194170b507a1ec1c818287) ) | |
| 4505 | ROM_LOAD32_WORD( "opr-24225a.ic22", 0x3000002, 0x800000, CRC(dbdebe45) SHA1(916897ea376175b48652efb58cdf22350d2a64cf) ) | |
| 4506 | ROM_LOAD32_WORD( "opr-24226a.ic23s", 0x4000000, 0x800000, CRC(43edd5a1) SHA1(0992c355d3d7d86dfe425de4b823fa4b64c0ee46) ) | |
| 4507 | ROM_LOAD32_WORD( "opr-24227a.ic24", 0x4000002, 0x800000, CRC(0e75009a) SHA1(f897ba64b6c6d98a080ee45a6a5f10cd6a764d61) ) | |
| 4508 | ROM_LOAD32_WORD( "opr-24228a.ic25s", 0x5000000, 0x800000, CRC(e1343e87) SHA1(8ea4eb85b9cbc1d1ef59c661357fc3dd473143d0) ) | |
| 4509 | ROM_LOAD32_WORD( "opr-24229a.ic26", 0x5000002, 0x800000, CRC(cca7f957) SHA1(8e2035c5d96fef849cf7517219dd6f1ae1e0f84b) ) | |
| 4510 | ROM_LOAD32_WORD( "opr-24230a.ic27s", 0x6000000, 0x800000, CRC(71f52068) SHA1(c21d2ce2fa2e83d0048cc52c8c7dbece11780e2f) ) | |
| 4511 | ROM_LOAD32_WORD( "opr-24231a.ic28", 0x6000002, 0x800000, CRC(16f3a1f1) SHA1(c3893d536ac0c16793accaa5aeb166fef4035630) ) | |
| 4512 | ROM_LOAD32_WORD( "opr-24232a.ic29", 0x7000000, 0x800000, CRC(4cdbd372) SHA1(745645c959689d4f2234aba37694e851b272528d) ) | |
| 4513 | ROM_LOAD32_WORD( "opr-24233a.ic30s", 0x7000002, 0x800000, CRC(70d638c6) SHA1(ef8bd9860a587dc76f3915047a5e408ab9f1f9b6) ) | |
| 4514 | ROM_LOAD32_WORD( "opr-24234a.ic31", 0x8000000, 0x800000, CRC(f78deb2a) SHA1(7103333c7f388545ebba8e8bb9443ec5ea90589b) ) | |
| 4515 | ROM_LOAD32_WORD( "opr-24235a.ic32s", 0x8000002, 0x800000, CRC(a2bb0d26) SHA1(bafd66250f8ad472eaa179bd73edc0dc22b681f5) ) | |
| 4516 | ROM_LOAD( "25lc040.ic13s", 0x9000000, 0x000084, CRC(19d77c96) SHA1(1d82af6b11f7fde93a3c4dd3561f1f2ab74c8d65) ) | |
| 4513 | 4517 | ROM_END |
| 4514 | 4518 | |
| 4515 | 4519 | ROM_START( wrungp ) |
| r9535 | r9536 | |
| 4577 | 4581 | ROM_LOAD( "mpr-22205.ic20", 0xa000000, 0x800000, CRC(7d523ae5) SHA1(7495082b7e83b6ee8f47660baba4c604d8ba2ff1) ) |
| 4578 | 4582 | ROM_END |
| 4579 | 4583 | |
| 4584 | ROM_START( zerogu2 ) | |
| 4585 | ROM_REGION( 0x200000, "maincpu", 0) | |
| 4586 | NAOMI_BIOS | |
| 4587 | NAOMI_DEFAULT_EEPROM | |
| 4588 | ||
| 4589 | ROM_REGION( 0x5800000, "user1", ROMREGION_ERASEFF) | |
| 4590 | ROM_LOAD( "epr23689.bin", 0x0000000, 0x0400000, CRC(ba42267c) SHA1(e8166e33cc2a4d9b2c57410235f531651b2e7f8a) ) | |
| 4591 | ROM_LOAD( "mpr23684.ic1", 0x0800000, 0x1000000, CRC(035aec98) SHA1(47ea834ca88aca3a72d2e7ef715a64603c40eacd) ) | |
| 4592 | ROM_LOAD( "mpr23685.ic2", 0x1800000, 0x1000000, CRC(d878ff99) SHA1(577be93d43f6113b91cf0967b710c6cf45131713) ) | |
| 4593 | ROM_LOAD( "mpr23686.ic3", 0x2800000, 0x1000000, CRC(a61b4d49) SHA1(842c54ad4e8192e491152ae5bb08daf5dd6b8c6c) ) | |
| 4594 | ROM_LOAD( "mpr23687.ic4", 0x3800000, 0x1000000, CRC(e125439a) SHA1(07e7339f3f53aeb0ebddf7a8ac3eb6d8f3fe9de6) ) | |
| 4595 | ROM_LOAD( "mpr23688.ic5", 0x4800000, 0x1000000, CRC(38412edf) SHA1(9cae06cf46e134531f47e64deedace449664f69a) ) | |
| 4596 | ROM_END | |
| 4597 | ||
| 4580 | 4598 | /* GD-ROM titles - a PIC supplies a decryption key |
| 4581 | 4599 | |
| 4582 | 4600 | PIC stuff |
| r9535 | r9536 | |
| 4738 | 4756 | /* 0043C */ GAME( 2000, crackndj, naomi, naomi, naomi, naomi, ROT0, "Sega", "Crackin' DJ", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4739 | 4757 | /* 0044C */ GAME( 2001, csmash, naomi, naomi, naomi, naomi, ROT0, "Sega", "Cosmic Smash (JPN, USA, EXP, KOR, AUS) (Rev A)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4740 | 4758 | /* 0044C */ GAME( 2001, csmasho, csmash, naomi, naomi, naomi, ROT0, "Sega", "Cosmic Smash (JPN, USA, EXP, KOR, AUS) (original)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4759 | /* 0064C */ GAME( 2001, wrungp, naomi, naomi, naomi, naomi, ROT0, "Sega", "Wave Runner GP", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) | |
| 4741 | 4760 | /* 0083C */ GAME( 2001, derbyoc2, naomi, naomi, naomi, naomi, ROT0, "Sega", "Derby Owners Club II (JPN, USA, EXP, KOR, AUS)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4742 | 4761 | /* 0084C */ GAME( 2001, vtenis2c, naomi, naomi, naomi, naomi, ROT0, "Sega", "Power Smash 2 / Virtua Tennis 2 (cartridge)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4743 | 4762 | /* 0088C */ GAME( 2001, derbyocw, naomi, naomi, naomi, naomi, ROT0, "Sega", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev C)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4744 | 4763 | /* 0098C */ GAME( 2001, shootopl, naomi, naomi, naomi, naomi, ROT0, "Sega", "Shootout Pool", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4745 | 4764 | /* 0128C */ GAME( 2001, shootpl, naomi, naomi, naomi, naomi, ROT0, "Sega", "Shootout Pool (JPN, USA, KOR, AUS) / Shootout Pool Prize (EXP)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4746 | /* 00??C */ GAME( 2001, wrungp, naomi, naomi, naomi, naomi, ROT0, "Sega", "Wave Runner GP", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) | |
| 4747 | 4765 | /* 0140C */ GAME( 2004, kick4csh, naomi, naomi, naomi, kick4csh, ROT0, "Sega", "Kick '4' Cash", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4748 | 4766 | |
| 4749 | 4767 | /* 841-xxxxx ("Licensed by Sega" games)*/ |
| r9535 | r9536 | |
| 4764 | 4782 | /* 0015C */ GAME( 2000, pjustic, naomi, naomi, naomi, naomi, ROT0, "Capcom", "Moero Justice Gakuen (JPN) / Project Justice (USA, EXP, KOR, AUS) (Rev A)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4765 | 4783 | /* 0016C */ GAME( 2000, deathcox, naomi, naomi, naomi, naomi, ROT0, "Ecole", "Death Crimson OX (JPN, USA, EXP, KOR, AUS)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4766 | 4784 | /* 0017C */ GAME( 2001, gundmct, naomi, naomi, naomi, naomi, ROT0, "Banpresto", "Mobile Suit Gundam: Federation vs. Zeon (2001-02-08)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4785 | /* ????? */ GAME( 2001, zerogu2, naomi, naomi, naomi, naomi, ROT0, "Psikyo", "Zero Gunner 2", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) | |
| 4767 | 4786 | /* HMG016007 */ GAME( 2001, hmgeo, naomi, naomi, naomi, naomi, ROT0, "Capcom", "Heavy Metal Geomatrix (JPN, USA, EUR, ASI, AUS) (Rev A)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 4768 | 4787 | |
| 4769 | 4788 | /* Games with incomplete dumps */ |
| r9535 | r9536 | |
| 6003 | 6022 | NAOMI_DEFAULT_EEPROM |
| 6004 | 6023 | |
| 6005 | 6024 | ROM_REGION( 0xb000000, "user1", ROMREGION_ERASEFF) |
| 6006 | ROM_LOAD("epr-23663.ic22", | |
| 6025 | ROM_LOAD( "epr-23663c.ic22", | |
| 6007 | 6026 | ROM_LOAD( "mpr-23652.ic1", 0x0800000, 0x1000000, CRC(992758a2) SHA1(5e2a25c520c1795128e5026fc00d355c24852ded) ) |
| 6008 | 6027 | ROM_LOAD( "mpr-23653.ic2", 0x1800000, 0x1000000, CRC(e210e932) SHA1(2f6f0a31c3e98b21f1ff3af1680e50b3535b130f) ) |
| 6009 | 6028 | ROM_LOAD( "mpr-23654.ic3", 0x2800000, 0x1000000, CRC(91335971) SHA1(fc7599b836fb7995dd7da940e64b08b3c09cb180) ) |
| r9535 | r9536 | |
| 6514 | 6533 | static const UINT32 salmankt_key = 0x34b74; |
| 6515 | 6534 | static const UINT32 maxspeed_key = 0x28dd6; |
| 6516 | 6535 | static const UINT32 ftspeed_key = 0x0762f; |
| 6536 | static const UINT32 kofxi_key = 0xa4be3; | |
| 6517 | 6537 | |
| 6518 | 6538 | static DRIVER_INIT( atomiswave ) |
| 6519 | 6539 | { |
| r9535 | r9536 | |
| 6554 | 6574 | AW_DRIVER_INIT(dolphin) |
| 6555 | 6575 | AW_DRIVER_INIT(rumblef) |
| 6556 | 6576 | AW_DRIVER_INIT(ngbc) |
| 6577 | AW_DRIVER_INIT(kofxi) | |
| 6557 | 6578 | AW_DRIVER_INIT(kofnw) |
| 6558 | 6579 | AW_DRIVER_INIT(kov7sprt) |
| 6559 | 6580 | AW_DRIVER_INIT(ggisuka) |
| r9535 | r9536 | |
| 6682 | 6703 | ROM_REGION( 0x200000, "awflash", 0) |
| 6683 | 6704 | AW_BIOS |
| 6684 | 6705 | |
| 6685 | ROM_REGION( 0x8000000, "user1", ROMREGION_ERASE) | |
| 6686 | ROM_LOAD( "ax3301p01.fmem1", 0x000000, 0x800000, CRC(f7e24e67) SHA1(8eef26d44b294faa509304b1b04f4d801337bc99) ) | |
| 6706 | ROM_REGION( 0xf000000, "user1", ROMREGION_ERASE) | |
| 6707 | ROM_LOAD( "ax3301p01.fmem1", 0x0000000, 0x0800000, CRC(6dd78275) SHA1(72d4cab58dbcebd666db21aeef190378ef447580) ) | |
| 6708 | ROM_LOAD( "ax3301m01.mrom1", 0x1000000, 0x2000000, CRC(e6013de9) SHA1(ccbc7c2e76153348646d75938d5c008dc80df17d) ) | |
| 6709 | ROM_LOAD( "ax3301m01.mrom2", 0x3000000, 0x2000000, CRC(f7cfef6c) SHA1(c9e6231499a9c9c8650d9e61f34ff1fcce8d442c) ) | |
| 6710 | ROM_LOAD( "ax3301m01.mrom3", 0x5000000, 0x2000000, CRC(0cdf8647) SHA1(0423f96842bef2c2ff454318dc6960b5052c0551) ) | |
| 6711 | ROM_LOAD( "ax3301m01.mrom4", 0x7000000, 0x2000000, CRC(2f031db0) SHA1(3214735f04fadf160137f0585bfc1a27eeecfac6) ) | |
| 6712 | ROM_LOAD( "ax3301m01.mrom5", 0x9000000, 0x2000000, CRC(f6668aaa) SHA1(6a78f8f0c7d7a71854ff87329290d38970cfb476) ) | |
| 6713 | ROM_LOAD( "ax3301m01.mrom6", 0xb000000, 0x2000000, CRC(5cf32fbd) SHA1(b6ae0abe5791b3d6f8db07b8c8ca22219a153801) ) | |
| 6714 | ROM_LOAD( "ax3301m01.mrom7", 0xd000000, 0x2000000, CRC(26d9da53) SHA1(0015b4be670005a451274de68279b4302fc42a97) ) | |
| 6687 | 6715 | ROM_END |
| 6688 | 6716 | |
| 6689 | 6717 | ROM_START( kofnw ) |
| r9535 | r9536 | |
| 6803 | 6831 | ROM_LOAD( "ax1706m01.ic16", 0x6000000, 0x1000000, CRC(804b2eb2) SHA1(fcca02a5a8c09eb16548255115fb105c9c49c4e0) ) |
| 6804 | 6832 | ROM_END |
| 6805 | 6833 | |
| 6834 | ROM_START( kofxi ) | |
| 6835 | ROM_REGION( 0x200000, "awflash", 0) | |
| 6836 | AW_BIOS | |
| 6837 | ||
| 6838 | ROM_REGION( 0xf000000, "user1", ROMREGION_ERASE) | |
| 6839 | ROM_LOAD( "ax3201p01.fmem1", 0x0000000, 0x0800000, CRC(6dbdd71b) SHA1(cce3897b104f5d923d8136485fc80eb9717ff4b5) ) | |
| 6840 | ROM_LOAD( "ax3201m01.mrom1", 0x1000000, 0x2000000, CRC(7f9d6af9) SHA1(001064ad1b8c3408efe799dc766c2728dc6512a9) ) | |
| 6841 | ROM_LOAD( "ax3202m01.mrom2", 0x3000000, 0x2000000, CRC(1ae40afa) SHA1(9ee7957c86cc3a71e6971ddcd906a82c5b1e16f1) ) | |
| 6842 | ROM_LOAD( "ax3203m01.mrom3", 0x5000000, 0x2000000, CRC(8c5e3bfd) SHA1(b5443e2a1b88642cc57c5287a3122376c2d48de9) ) | |
| 6843 | ROM_LOAD( "ax3204m01.mrom4", 0x7000000, 0x2000000, CRC(ba97f80c) SHA1(36f672fe833e13f0bab036b02c39123066327e20) ) | |
| 6844 | ROM_LOAD( "ax3205m01.mrom5", 0x9000000, 0x2000000, CRC(3c747067) SHA1(54b7ff73d618e2e4e40c125c6cfe99016e69ad1a) ) | |
| 6845 | ROM_LOAD( "ax3206m01.mrom6", 0xb000000, 0x2000000, CRC(cb81e5f5) SHA1(07faee02a58ac9c600ab3cdd525d22c16b35222d) ) | |
| 6846 | ROM_LOAD( "ax3207m01.mrom7", 0xd000000, 0x2000000, CRC(164f6329) SHA1(a72c8cbe4ac7b98edda3d4434f6c81a370b8c39b) ) | |
| 6847 | ROM_END | |
| 6848 | ||
| 6806 | 6849 | /* Atomiswave */ |
| 6807 | 6850 | GAME( 2001, awbios, 0, aw, aw, atomiswave, ROT0, "Sammy", "Atomiswave Bios", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT ) |
| 6808 | 6851 | |
| r9535 | r9536 | |
| 6818 | 6861 | GAME( 2004, kov7sprt, awbios, aw, aw, kov7sprt, ROT0, "Sammy / IGS", "Knights of Valour - The Seven Spirits", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) |
| 6819 | 6862 | GAME( 2005, vfurlong, awbios, aw, aw, vfurlong, ROT0, "Sammy", "Net Select Keiba Victory Furlong", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 6820 | 6863 | GAME( 2005, ngbc, awbios, aw, aw, ngbc, ROT0, "Sammy / SNK Playmore", "Neo-Geo Battle Coliseum", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 6864 | GAME( 2005, kofxi, awbios, aw, aw, kofxi, ROT0, "Sammy / SNK Playmore", "The King of Fighters XI", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) | |
| 6821 | 6865 | GAME( 2005, fotns, awbios, aw, aw, fotns, ROT0, "Sega / Arc System Works", "Fist Of The North Star", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 6822 | 6866 | GAME( 2005, kofnw, awbios, aw, aw, kofnw, ROT0, "Sammy / SNK Playmore", "The King of Fighters Neowave", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| 6823 | 6867 | GAME( 2005, kofnwj, kofnw, aw, aw, kofnw, ROT0, "Sammy / SNK Playmore", "The King of Fighters Neowave (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) |
| r9535 | r9536 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | CRT 260: |
| 40 | 40 | *Megatouch Video (c)1994? |
| 41 | | |
| 41 | | |
| 42 | 42 | Megatouch III (c)1995 |
| 43 | 43 | Megatouch III Tournament Edition (c)1996 |
| 44 | 44 | Megatouch IV (c)1996 |
| 45 | 45 | Megatouch IV Tournament Edition (c)1996 |
| 46 | 46 | Super Megatouch IV (c) 1996 (rom labels 9255-41-0x, see below) |
| 47 | 47 | Super Megatouch IV Tournament Edition (c) 1996 |
| 48 | *Megatouch 5 (c)1997 | |
| 49 | *Megatouch 5 Tournament Edition (c)1997 | |
| 48 | Megatouch 5 (c)1997 | |
| 49 | Megatouch 5 Tournament Edition (c)1997 | |
| 50 | 50 | Megatouch 6 (c)1998 |
| 51 | 51 | *Megatouch 7 Encore (c)2000 |
| 52 | 52 | |
| r9535 | r9536 | |
| 90 | 90 | |
| 91 | 91 | Notes/ToDo: |
| 92 | 92 | - offset for top V9938 layer is hardcoded, probably should be taken from V9938 setup |
| 93 | - blinking on Me | |
| 93 | - blinking on Me | |
| 94 | 94 | - clean up V9938 interrupt implementation |
| 95 | 95 | - finish inputs, dsw, outputs (lamps) |
| 96 | 96 | - problem with registering touches on the bottom of the screen (currently hacked to work) |
| r9535 | r9536 | |
| 1215 | 1215 | ROM_RELOAD( 0x70000, 0x10000) |
| 1216 | 1216 | |
| 1217 | 1217 | |
| 1218 | ROM_REGION( 0xc0000, "extra", 0 ) // e | |
| 1218 | ROM_REGION( 0xc0000, "extra", 0 ) // question | |
| 1219 | 1219 | ROM_LOAD( "qs9243-00-01_u7-r0", 0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */ |
| 1220 | 1220 | ROM_LOAD( "qs9243-00-01_u6-r0", 0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) ) |
| 1221 | 1221 | ROM_LOAD( "qs9243-00-01_u5-r0", 0x80000, 0x40000, CRC(590a1565) SHA1(b80ea967b6153847b2594e9c59bfe87559022b6c) ) |
| r9535 | r9536 | |
| 1233 | 1233 | ROM_RELOAD( 0x70000, 0x10000) |
| 1234 | 1234 | |
| 1235 | 1235 | |
| 1236 | ROM_REGION( 0xc0000, "extra", 0 ) // e | |
| 1236 | ROM_REGION( 0xc0000, "extra", 0 ) // question | |
| 1237 | 1237 | ROM_LOAD( "qs9243-00-01_u7-r0", 0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */ |
| 1238 | 1238 | ROM_LOAD( "qs9243-00-01_u6-r0", 0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) ) |
| 1239 | 1239 | ROM_LOAD( "qs9243-00-01_u5-r0", 0x80000, 0x40000, CRC(590a1565) SHA1(b80ea967b6153847b2594e9c59bfe87559022b6c) ) |
| r9535 | r9536 | |
| 1250 | 1250 | ROM_LOAD( "9234-10-01_u15-r0", 0x60000, 0x10000, CRC(9fbd8582) SHA1(c0f68c8a7cdca34c8736cefc71767c421bcaba8a) ) |
| 1251 | 1251 | |
| 1252 | 1252 | |
| 1253 | ROM_REGION( 0xc0000, "extra", 0 ) // e | |
| 1253 | ROM_REGION( 0xc0000, "extra", 0 ) // question | |
| 1254 | 1254 | ROM_LOAD( "qs9234-01_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */ |
| 1255 | 1255 | ROM_LOAD( "qs9234-01_u6-r0", 0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) ) |
| 1256 | 1256 | ROM_LOAD( "qs9234-01_u5-r0", 0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) ) |
| r9535 | r9536 | |
| 1267 | 1267 | ROM_LOAD( "9234-00-01_u15-r0a", 0x60000, 0x10000, CRC(f10f0d39) SHA1(2b5d5a93adb5251e09160b10c067b6e70289f608) ) |
| 1268 | 1268 | |
| 1269 | 1269 | |
| 1270 | ROM_REGION( 0xc0000, "extra", 0 ) // e | |
| 1270 | ROM_REGION( 0xc0000, "extra", 0 ) // question | |
| 1271 | 1271 | ROM_LOAD( "qs9234-01_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */ |
| 1272 | 1272 | ROM_LOAD( "qs9234-01_u6-r0", 0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) ) |
| 1273 | 1273 | ROM_LOAD( "qs9234-01_u5-r0", 0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) ) |
| r9535 | r9536 | |
| 1355 | 1355 | |
| 1356 | 1356 | */ |
| 1357 | 1357 | |
| 1358 | ROM_START( megat2 ) /* Dallas DS1204U-3 security key labeled 9255-10-01-U5-R0 */ | |
| 1359 | ROM_REGION( 0x400000, "maincpu", 0 ) | |
| 1360 | ROM_LOAD( "qs9235-01_u5oru32-r0b", 0x000000, 0x080000, CRC(f7ecd49b) SHA1(34c1293da7304e8a46a96f1dbd7add3291afe3fc) ) /* Location U32 */ | |
| 1361 | ROM_RELOAD( 0x080000, 0x080000) | |
| 1362 | ROM_LOAD( "qs9235-01_u6oru36-r0", 0x100000, 0x080000, CRC(0a358743) SHA1(cc7c1b75e391204a7bdae2e1cecd9b55b572f8d5) ) /* Location U36 */ | |
| 1363 | ROM_RELOAD( 0x180000, 0x080000) | |
| 1364 | ROM_LOAD( "qs9235-01_u7oru37-r0", 0x200000, 0x080000, CRC(16643f83) SHA1(347af99f535a8b473c8780067d5132add7fa0d8c) ) /* Location U37 */ | |
| 1365 | ROM_RELOAD( 0x280000, 0x080000) | |
| 1366 | ROM_LOAD( "9255-10-06_u38-r0g", 0x300000, 0x080000, CRC(51b8160a) SHA1(f2dd44ff3bd62c86c385b5e1438c560947f6c253) ) /* Location U38, 02/10/1995 10:03:52 - California version */ | |
| 1367 | ROM_RELOAD( 0x380000, 0x080000) | |
| 1368 | ROM_END | |
| 1369 | ||
| 1358 | 1370 | ROM_START( megat3 ) /* Dallas DS1204V security key at U5 labeled 9255-20-01 U5-RO1 C1995 MII */ |
| 1359 | 1371 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 1360 | 1372 | ROM_LOAD( "9255-20-01_u32-r0d", 0x000000, 0x080000, CRC(ac969296) SHA1(7e09e9141637339b83c21f2488560cdf8a460069) ) /* Location U32 */ |
| r9535 | r9536 | |
| 1684 | 1696 | |
| 1685 | 1697 | static DRIVER_INIT(pbst30b) |
| 1686 | 1698 | { |
| 1687 | static const UINT8 | |
| 1699 | static const UINT8 pbs | |
| 1688 | 1700 | { 0xf0, 0xaa, 0x0f, 0x0f, 0x55, 0x55, 0xff, 0xab }; |
| 1689 | 1701 | |
| 1690 | static const UINT8 | |
| 1702 | static const UINT8 pbs | |
| 1691 | 1703 | { 0xa9, 0xdb, 0x41, 0xf8, 0xe4, 0x42, 0x20, 0x6e, 0xde, 0xaf, 0x4f, 0x046, 0x3d, 0x55, 0x44, 0x00 }; |
| 1692 | 1704 | |
| 1693 | ds1204_init(machine, | |
| 1705 | ds1204_init(machine, pbs | |
| 1694 | 1706 | |
| 1695 | 1707 | }; |
| 1696 | 1708 | |
| 1709 | static DRIVER_INIT(megat2) | |
| 1710 | { | |
| 1711 | static const UINT8 pitbosmt_ds1204_key[8] = | |
| 1712 | { 0xf0, 0xaa, 0x0f, 0x0f, 0x55, 0x55, 0xff, 0xab }; | |
| 1713 | ||
| 1714 | static const UINT8 pitbosmt_ds1204_nvram[16] = | |
| 1715 | { 0x00, 0xfe, 0x03, 0x03, 0x08, 0x00, 0xa2, 0x03, 0x4b, 0x07, 0x00, 0xe6, 0x02, 0xd3, 0x05, 0x00 }; | |
| 1716 | ||
| 1717 | ds1204_init(machine, pitbosmt_ds1204_key, pitbosmt_ds1204_nvram); | |
| 1718 | ||
| 1719 | }; | |
| 1720 | ||
| 1697 | 1721 | static DRIVER_INIT(megat3) |
| 1698 | 1722 | { |
| 1699 | 1723 | static const UINT8 megat3_ds1204_key[8] = |
| r9535 | r9536 | |
| 1793 | 1817 | GAME( 1994, pitbossma, pitbossm, meritm_crt250_questions, pitbossa, 0, ROT0, "Merit", "Pit Boss Megastar (9243-00-01)", GAME_IMPERFECT_GRAPHICS ) |
| 1794 | 1818 | |
| 1795 | 1819 | /* CRT 260 */ |
| 1820 | GAME( 1994, megat2, 0, meritm_crt260, meritm_crt260, megat2, ROT0, "Merit", "Pit Boss Megatouch II (9255-10-06 ROG, California version)", GAME_IMPERFECT_GRAPHICS ) | |
| 1796 | 1821 | GAME( 1996, megat3, 0, meritm_crt260, meritm_crt260, megat3, ROT0, "Merit", "Megatouch III (9255-20-01 RON, Standard version)", GAME_IMPERFECT_GRAPHICS ) |
| 1797 | 1822 | GAME( 1995, megat3a, megat3, meritm_crt260, meritm_crt260, megat3, ROT0, "Merit", "Megatouch III (9255-20-01 ROF, Standard version)", GAME_IMPERFECT_GRAPHICS ) |
| 1798 | 1823 | GAME( 1996, megat3ca, megat3, meritm_crt260, meritm_crt260, megat3, ROT0, "Merit", "Megatouch III (9255-20-06 RON, California version)", GAME_IMPERFECT_GRAPHICS ) |
| r9535 | r9536 | |
|---|---|---|
| 424 | 424 | . MVS CHAFIO REV1.0 (KOF-2001) |
| 425 | 425 | . NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA |
| 426 | 426 | -- SNKPLAYMORE -- |
| 427 | . NEO-MVS CHAFIO (2003.7.24) | |
| 427 | . NEO-MVS CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050 | |
| 428 | 428 | |
| 429 | 429 | MVS PROG: |
| 430 | 430 | -- SNK -- |
| r9535 | r9536 | |
| 449 | 449 | . NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24) |
| 450 | 450 | . NEO-MVS PROGBK1 (1994) |
| 451 | 451 | . NEO-MVS PROGBK1 (2001) |
| 452 | . NEO-MVS PROGBK2 (2000.3.21) | |
| 452 | . NEO-MVS PROGBK2 (2000.3.21) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE) | |
| 453 | 453 | . MVS PROGBK2 REV1.0 (KOF-2001) |
| 454 | 454 | . NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA |
| 455 | 455 | -- SNKPLAYMORE -- |
| r9535 | r9536 | |
| 945 | 945 | |
| 946 | 946 | ROM_START( maglord ) /* MVS VERSION */ |
| 947 | 947 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 948 | ROM_LOAD16_WORD_SWAP( "005-pg1.bin", 0x000000, 0x080000, CRC( | |
| 948 | ROM_LOAD16_WORD_SWAP( "005-pg1.bin", 0x000000, 0x080000, CRC(bd | |
| 949 | 949 | |
| 950 | 950 | NEO_SFIX_128K( "005-s1.bin", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ |
| 951 | 951 | |
| r9535 | r9536 | |
| 969 | 969 | |
| 970 | 970 | ROM_START( maglordh ) /* AES VERSION */ |
| 971 | 971 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 972 | ROM_LOAD16_WORD_SWAP( "005-p1.bin", 0x000000, 0x080000, CRC( | |
| 972 | ROM_LOAD16_WORD_SWAP( "005-p1.bin", 0x000000, 0x080000, CRC(5990 | |
| 973 | 973 | |
| 974 | 974 | NEO_SFIX_128K( "005-s1.bin", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */ |
| 975 | 975 | |
| r9535 | r9536 | |
| 1800 | 1800 | ROM_LOAD16_BYTE( "038-c4.bin", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) /* Plane 2,3 */ /* TC534200 */ |
| 1801 | 1801 | ROM_END |
| 1802 | 1802 | |
| 1803 | ROM_START( kotm2 ) | |
| 1803 | ROM_START( kotm2 ) /* MVS AND AES VERSION */ | |
| 1804 | 1804 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 1805 | 1805 | ROM_LOAD16_WORD_SWAP( "039-p1.bin", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) ) /* TC534200 */ |
| 1806 | 1806 | ROM_LOAD16_WORD_SWAP( "039-p2.bin", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */ |
| r9535 | r9536 | |
| 1991 | 1991 | |
| 1992 | 1992 | ROM_START( tophuntr ) /* MVS VERSION */ |
| 1993 | 1993 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 1994 | ROM_LOAD16_WORD_SWAP( "046-p1.bin", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) | |
| 1995 | ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) | |
| 1994 | ROM_LOAD16_WORD_SWAP( "046-p1.bin", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) /* mask rom TC538200 */ | |
| 1995 | ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ | |
| 1996 | 1996 | |
| 1997 | NEO_SFIX_128K( "046-s1.bin", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) | |
| 1997 | NEO_SFIX_128K( "046-s1.bin", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) /* mask rom TC531000 */ | |
| 1998 | 1998 | |
| 1999 | NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) | |
| 1999 | NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ | |
| 2000 | 2000 | |
| 2001 | 2001 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 2002 | ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) | |
| 2003 | ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) | |
| 2004 | ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) | |
| 2005 | ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) | |
| 2002 | ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ | |
| 2003 | ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ | |
| 2004 | ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ | |
| 2005 | ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ | |
| 2006 | 2006 | |
| 2007 | 2007 | NO_DELTAT_REGION |
| 2008 | 2008 | |
| 2009 | 2009 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2010 | ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ | |
| 2011 | ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ | |
| 2012 | ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ | |
| 2013 | ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ | |
| 2014 | ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ | |
| 2015 | ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ | |
| 2016 | ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ | |
| 2017 | ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ | |
| 2010 | ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2011 | ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2012 | ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2013 | ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2014 | ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2015 | ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2016 | ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2017 | ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2018 | 2018 | ROM_END |
| 2019 | 2019 | |
| 2020 | 2020 | ROM_START( tophuntrh ) /* AES VERSION */ |
| 2021 | 2021 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2022 | ROM_LOAD16_WORD_SWAP( "046-pg1.bin",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) | |
| 2023 | ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) | |
| 2022 | ROM_LOAD16_WORD_SWAP( "046-pg1.bin",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) /* mask rom TC538200 */ | |
| 2023 | ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */ | |
| 2024 | 2024 | |
| 2025 | NEO_SFIX_128K( "046-sg1.bin", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) ) | |
| 2025 | NEO_SFIX_128K( "046-sg1.bin", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) ) /* mask rom TC531000 */ | |
| 2026 | 2026 | |
| 2027 | NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) | |
| 2027 | NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */ | |
| 2028 | 2028 | |
| 2029 | 2029 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 2030 | ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) | |
| 2031 | ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) | |
| 2032 | ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) | |
| 2033 | ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) | |
| 2030 | ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */ | |
| 2031 | ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */ | |
| 2032 | ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */ | |
| 2033 | ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */ | |
| 2034 | 2034 | |
| 2035 | 2035 | NO_DELTAT_REGION |
| 2036 | 2036 | |
| 2037 | 2037 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2038 | ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ | |
| 2039 | ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ | |
| 2040 | ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ | |
| 2041 | ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ | |
| 2042 | ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ | |
| 2043 | ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ | |
| 2044 | ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ | |
| 2045 | ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ | |
| 2038 | ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2039 | ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2040 | ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2041 | ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2042 | ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2043 | ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2044 | ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2045 | ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2046 | 2046 | ROM_END |
| 2047 | 2047 | |
| 2048 | 2048 | ROM_START( fatfury2 ) /* MVS AND AES VERSION */ |
| 2049 | 2049 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2050 | ROM_LOAD16_WORD_SWAP( "047-p1.bin", 0x000000, 0x080000, CRC(be40ea92) SHA1(958b891bb8beb6af122d5467257ab20cbc6cf574) ) | |
| 2051 | ROM_LOAD16_WORD_SWAP( "047-p2.bin", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) ) | |
| 2050 | ROM_LOAD16_WORD_SWAP( "047-p1.bin", 0x000000, 0x080000, CRC(be40ea92) SHA1(958b891bb8beb6af122d5467257ab20cbc6cf574) ) /* TC534200 */ | |
| 2051 | ROM_LOAD16_WORD_SWAP( "047-p2.bin", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) ) /* TC534200 */ | |
| 2052 | 2052 | |
| 2053 | NEO_SFIX_128K( "047-s1.bin", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) | |
| 2053 | NEO_SFIX_128K( "047-s1.bin", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */ | |
| 2054 | 2054 | |
| 2055 | NEO_BIOS_AUDIO_128K( "047-m1.bin", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) | |
| 2055 | NEO_BIOS_AUDIO_128K( "047-m1.bin", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */ | |
| 2056 | 2056 | |
| 2057 | 2057 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 2058 | ROM_LOAD( "047-v1.bin", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) | |
| 2059 | ROM_LOAD( "047-v2.bin", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) | |
| 2058 | ROM_LOAD( "047-v1.bin", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */ | |
| 2059 | ROM_LOAD( "047-v2.bin", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) /* TC5316200 */ | |
| 2060 | 2060 | |
| 2061 | 2061 | NO_DELTAT_REGION |
| 2062 | 2062 | |
| 2063 | 2063 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2064 | ROM_LOAD16_BYTE( "047-c1.bin", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ | |
| 2064 | ROM_LOAD16_BYTE( "047-c1.bin", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2065 | 2065 | ROM_CONTINUE( 0x400000, 0x100000 ) |
| 2066 | ROM_LOAD16_BYTE( "047-c2.bin", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ | |
| 2066 | ROM_LOAD16_BYTE( "047-c2.bin", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2067 | 2067 | ROM_CONTINUE( 0x400001, 0x100000 ) |
| 2068 | ROM_LOAD16_BYTE( "047-c3.bin", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ | |
| 2068 | ROM_LOAD16_BYTE( "047-c3.bin", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2069 | 2069 | ROM_CONTINUE( 0x600000, 0x100000 ) |
| 2070 | ROM_LOAD16_BYTE( "047-c4.bin", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ | |
| 2070 | ROM_LOAD16_BYTE( "047-c4.bin", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2071 | 2071 | ROM_CONTINUE( 0x600001, 0x100000 ) |
| 2072 | 2072 | ROM_END |
| 2073 | 2073 | |
| r9535 | r9536 | |
| 2245 | 2245 | |
| 2246 | 2246 | ROM_START( kof94 ) /* MVS AND AES VERSION */ |
| 2247 | 2247 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2248 | ROM_LOAD16_WORD_SWAP( "055-p1.bin", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) | |
| 2248 | ROM_LOAD16_WORD_SWAP( "055-p1.bin", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) /* mask rom TC5316200 */ | |
| 2249 | 2249 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 2250 | 2250 | |
| 2251 | NEO_SFIX_128K( "055-s1.bin", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) | |
| 2251 | NEO_SFIX_128K( "055-s1.bin", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) /* mask rom TC531000 */ | |
| 2252 | 2252 | |
| 2253 | NEO_BIOS_AUDIO_128K( "055-m1.bin", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) | |
| 2253 | NEO_BIOS_AUDIO_128K( "055-m1.bin", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) /* mask rom TC531001 */ | |
| 2254 | 2254 | |
| 2255 | 2255 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 2256 | ROM_LOAD( "055-v1.bin", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) | |
| 2257 | ROM_LOAD( "055-v2.bin", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) | |
| 2258 | ROM_LOAD( "055-v3.bin", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) | |
| 2256 | ROM_LOAD( "055-v1.bin", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) /* mask rom TC5316200 */ | |
| 2257 | ROM_LOAD( "055-v2.bin", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) /* mask rom TC5316200 */ | |
| 2258 | ROM_LOAD( "055-v3.bin", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) /* mask rom TC5316200 */ | |
| 2259 | 2259 | |
| 2260 | 2260 | NO_DELTAT_REGION |
| 2261 | 2261 | |
| 2262 | 2262 | ROM_REGION( 0x1000000, "sprites", 0 ) |
| 2263 | ROM_LOAD16_BYTE( "055-c1.bin", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ | |
| 2264 | ROM_LOAD16_BYTE( "055-c2.bin", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ | |
| 2265 | ROM_LOAD16_BYTE( "055-c3.bin", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ | |
| 2266 | ROM_LOAD16_BYTE( "055-c4.bin", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ | |
| 2267 | ROM_LOAD16_BYTE( "055-c5.bin", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ | |
| 2268 | ROM_LOAD16_BYTE( "055-c6.bin", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ | |
| 2269 | ROM_LOAD16_BYTE( "055-c7.bin", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ | |
| 2270 | ROM_LOAD16_BYTE( "055-c8.bin", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ | |
| 2263 | ROM_LOAD16_BYTE( "055-c1.bin", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2264 | ROM_LOAD16_BYTE( "055-c2.bin", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2265 | ROM_LOAD16_BYTE( "055-c3.bin", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2266 | ROM_LOAD16_BYTE( "055-c4.bin", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2267 | ROM_LOAD16_BYTE( "055-c5.bin", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2268 | ROM_LOAD16_BYTE( "055-c6.bin", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2269 | ROM_LOAD16_BYTE( "055-c7.bin", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2270 | ROM_LOAD16_BYTE( "055-c8.bin", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2271 | 2271 | ROM_END |
| 2272 | 2272 | |
| 2273 | 2273 | ROM_START( aof2 ) /* MVS AND AES VERSION */ |
| r9535 | r9536 | |
| 2350 | 2350 | |
| 2351 | 2351 | ROM_START( fatfursp ) /* MVS AND AES VERSION */ |
| 2352 | 2352 | ROM_REGION( 0x180000, "maincpu", 0 ) |
| 2353 | ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) | |
| 2354 | ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) | |
| 2353 | ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ | |
| 2354 | ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ | |
| 2355 | 2355 | |
| 2356 | NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) | |
| 2356 | NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ | |
| 2357 | 2357 | |
| 2358 | NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) | |
| 2358 | NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ | |
| 2359 | 2359 | |
| 2360 | 2360 | ROM_REGION( 0x500000, "ymsnd", 0 ) |
| 2361 | ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) | |
| 2362 | ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) | |
| 2363 | ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) | |
| 2361 | ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ | |
| 2362 | ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ | |
| 2363 | ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ | |
| 2364 | 2364 | |
| 2365 | 2365 | NO_DELTAT_REGION |
| 2366 | 2366 | |
| 2367 | 2367 | ROM_REGION( 0xc00000, "sprites", 0 ) |
| 2368 | ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ | |
| 2369 | ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ | |
| 2370 | ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ | |
| 2371 | ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ | |
| 2372 | ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ | |
| 2373 | ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ | |
| 2368 | ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2369 | ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2370 | ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2371 | ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2372 | ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2373 | ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2374 | 2374 | ROM_END |
| 2375 | 2375 | |
| 2376 | 2376 | ROM_START( fatfurspa ) /* MVS AND AES VERSION */ |
| 2377 | 2377 | ROM_REGION( 0x180000, "maincpu", 0 ) |
| 2378 | ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) | |
| 2379 | ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) | |
| 2378 | ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */ | |
| 2379 | ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */ | |
| 2380 | 2380 | /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ |
| 2381 | ROM_LOAD16_WORD_SWAP( "058-ep1.bin", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) | |
| 2381 | ROM_LOAD16_WORD_SWAP( "058-ep1.bin", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) /* M27C4002 */ | |
| 2382 | 2382 | |
| 2383 | NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) | |
| 2383 | NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */ | |
| 2384 | 2384 | |
| 2385 | NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) | |
| 2385 | NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */ | |
| 2386 | 2386 | |
| 2387 | 2387 | ROM_REGION( 0x500000, "ymsnd", 0 ) |
| 2388 | ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) | |
| 2389 | ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) | |
| 2390 | ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) | |
| 2388 | ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */ | |
| 2389 | ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */ | |
| 2390 | ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */ | |
| 2391 | 2391 | |
| 2392 | 2392 | NO_DELTAT_REGION |
| 2393 | 2393 | |
| 2394 | 2394 | ROM_REGION( 0xc00000, "sprites", 0 ) |
| 2395 | ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ | |
| 2396 | ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ | |
| 2397 | ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ | |
| 2398 | ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ | |
| 2399 | ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ | |
| 2400 | ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ | |
| 2395 | ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2396 | ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2397 | ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2398 | ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2399 | ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2400 | ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2401 | 2401 | ROM_END |
| 2402 | 2402 | |
| 2403 | 2403 | ROM_START( savagere ) |
| r9535 | r9536 | |
| 2474 | 2474 | |
| 2475 | 2475 | ROM_START( ssideki2 ) /* MVS AND AES VERSION */ |
| 2476 | 2476 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2477 | ROM_LOAD16_WORD_SWAP( "061-p1.bin", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) | |
| 2477 | ROM_LOAD16_WORD_SWAP( "061-p1.bin", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */ | |
| 2478 | 2478 | |
| 2479 | NEO_SFIX_128K( "061-s1.bin", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) | |
| 2479 | NEO_SFIX_128K( "061-s1.bin", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */ | |
| 2480 | 2480 | |
| 2481 | NEO_BIOS_AUDIO_128K( "061-m1.bin", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) | |
| 2481 | NEO_BIOS_AUDIO_128K( "061-m1.bin", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) /* mask rom TC531001 */ | |
| 2482 | 2482 | |
| 2483 | 2483 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 2484 | ROM_LOAD( "061-v1.bin", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) | |
| 2485 | ROM_LOAD( "061-v2.bin", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) | |
| 2484 | ROM_LOAD( "061-v1.bin", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) /* mask rom TC5316200 */ | |
| 2485 | ROM_LOAD( "061-v2.bin", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) /* mask rom TC5316200 */ | |
| 2486 | 2486 | |
| 2487 | 2487 | NO_DELTAT_REGION |
| 2488 | 2488 | |
| 2489 | 2489 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2490 | ROM_LOAD16_BYTE( "061-c1-16.bin", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ | |
| 2491 | ROM_LOAD16_BYTE( "061-c2-16.bin", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ | |
| 2492 | ROM_LOAD16_BYTE( "061-c3-16.bin", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ | |
| 2493 | ROM_LOAD16_BYTE( "061-c4-16.bin", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ | |
| 2490 | /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */ | |
| 2491 | ROM_LOAD16_BYTE( "061-c1-16.bin", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2492 | ROM_LOAD16_BYTE( "061-c2-16.bin", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2493 | ROM_LOAD16_BYTE( "061-c3-16.bin", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2494 | ROM_LOAD16_BYTE( "061-c4-16.bin", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2494 | 2495 | ROM_END |
| 2495 | 2496 | |
| 2496 | 2497 | ROM_START( spinmast ) |
| 2497 | 2498 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2498 | ROM_LOAD16_WORD_SWAP( "062-p1.bin", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) | |
| 2499 | ROM_LOAD16_WORD_SWAP( "062-p2.bin", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) | |
| 2499 | ROM_LOAD16_WORD_SWAP( "062-p1.bin", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) /* mask rom TC538200 */ | |
| 2500 | ROM_LOAD16_WORD_SWAP( "062-p2.bin", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) /* mask rom TC538200 */ | |
| 2500 | 2501 | |
| 2501 | NEO_SFIX_128K( "062-s1.bin", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) | |
| 2502 | NEO_SFIX_128K( "062-s1.bin", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) /* mask rom TC531000 */ | |
| 2502 | 2503 | |
| 2503 | NEO_BIOS_AUDIO_128K( "062-m1.bin", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) | |
| 2504 | NEO_BIOS_AUDIO_128K( "062-m1.bin", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) /* mask rom TC531001 */ | |
| 2504 | 2505 | |
| 2505 | 2506 | ROM_REGION( 0x100000, "ymsnd", 0 ) |
| 2506 | ROM_LOAD( "062-v1.bin", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) | |
| 2507 | ROM_LOAD( "062-v1.bin", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) /* mask rom TC538200 */ | |
| 2507 | 2508 | |
| 2508 | 2509 | NO_DELTAT_REGION |
| 2509 | 2510 | |
| 2510 | 2511 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2511 | ROM_LOAD16_BYTE( "062-c1.bin", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ | |
| 2512 | ROM_LOAD16_BYTE( "062-c2.bin", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ | |
| 2513 | ROM_LOAD16_BYTE( "062-c3.bin", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ | |
| 2514 | ROM_LOAD16_BYTE( "062-c4.bin", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ | |
| 2515 | ROM_LOAD16_BYTE( "062-c5.bin", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ | |
| 2516 | ROM_LOAD16_BYTE( "062-c6.bin", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ | |
| 2517 | ROM_LOAD16_BYTE( "062-c7.bin", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ | |
| 2518 | ROM_LOAD16_BYTE( "062-c8.bin", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ | |
| 2512 | ROM_LOAD16_BYTE( "062-c1.bin", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2513 | ROM_LOAD16_BYTE( "062-c2.bin", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2514 | ROM_LOAD16_BYTE( "062-c3.bin", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2515 | ROM_LOAD16_BYTE( "062-c4.bin", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2516 | ROM_LOAD16_BYTE( "062-c5.bin", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2517 | ROM_LOAD16_BYTE( "062-c6.bin", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2518 | ROM_LOAD16_BYTE( "062-c7.bin", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2519 | ROM_LOAD16_BYTE( "062-c8.bin", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2519 | 2520 | ROM_END |
| 2520 | 2521 | |
| 2521 | 2522 | ROM_START( samsho2 ) /* MVS AND AES VERSION */ |
| r9535 | r9536 | |
| 2606 | 2607 | |
| 2607 | 2608 | ROM_START( wjammers ) |
| 2608 | 2609 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2609 | ROM_LOAD16_WORD_SWAP( "065-p1.bin", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) | |
| 2610 | ROM_LOAD16_WORD_SWAP( "065-p1.bin", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) /* mask rom TC538200 */ | |
| 2610 | 2611 | |
| 2611 | NEO_SFIX_128K( "065-s1.bin", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) | |
| 2612 | NEO_SFIX_128K( "065-s1.bin", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) /* mask rom TC531000 */ | |
| 2612 | 2613 | |
| 2613 | NEO_BIOS_AUDIO_128K( "065-m1.bin", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) | |
| 2614 | NEO_BIOS_AUDIO_128K( "065-m1.bin", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) /* mask rom TC531001 */ | |
| 2614 | 2615 | |
| 2615 | 2616 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 2616 | ROM_LOAD( "065-v1.bin", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) | |
| 2617 | ROM_LOAD( "065-v2.bin", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) | |
| 2618 | ROM_LOAD( "065-v3.bin", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) | |
| 2619 | ROM_LOAD( "065-v4.bin", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) | |
| 2617 | ROM_LOAD( "065-v1.bin", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) /* mask rom TC538200 */ | |
| 2618 | ROM_LOAD( "065-v2.bin", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) /* mask rom TC538200 */ | |
| 2619 | ROM_LOAD( "065-v3.bin", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) /* mask rom TC538200 */ | |
| 2620 | ROM_LOAD( "065-v4.bin", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) /* mask rom TC538200 */ | |
| 2620 | 2621 | |
| 2621 | 2622 | NO_DELTAT_REGION |
| 2622 | 2623 | |
| 2623 | 2624 | ROM_REGION( 0x400000, "sprites", 0 ) |
| 2624 | ROM_LOAD16_BYTE( "065-c1.bin", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */ | |
| 2625 | ROM_LOAD16_BYTE( "065-c2.bin", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */ | |
| 2626 | ROM_LOAD16_BYTE( "065-c3.bin", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */ | |
| 2627 | ROM_LOAD16_BYTE( "065-c4.bin", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */ | |
| 2625 | ROM_LOAD16_BYTE( "065-c1.bin", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2626 | ROM_LOAD16_BYTE( "065-c2.bin", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2627 | ROM_LOAD16_BYTE( "065-c3.bin", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2628 | ROM_LOAD16_BYTE( "065-c4.bin", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2628 | 2629 | ROM_END |
| 2629 | 2630 | |
| 2630 | 2631 | ROM_START( karnovr ) |
| r9535 | r9536 | |
| 2669 | 2670 | |
| 2670 | 2671 | ROM_START( pspikes2 ) /* MVS ONLY RELEASE */ |
| 2671 | 2672 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2672 | ROM_LOAD16_WORD_SWAP( "068-pg1.bin", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) | |
| 2673 | ROM_LOAD16_WORD_SWAP( "068-pg1.bin", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) /* mask rom TC538200 */ | |
| 2673 | 2674 | |
| 2674 | NEO_SFIX_128K( "068-sg1.bin", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) | |
| 2675 | NEO_SFIX_128K( "068-sg1.bin", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) /* mask rom TC531000 */ | |
| 2675 | 2676 | |
| 2676 | NEO_BIOS_AUDIO_128K( "068-mg1.bin", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) | |
| 2677 | NEO_BIOS_AUDIO_128K( "068-mg1.bin", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) /* mask rom TC531001 */ | |
| 2677 | 2678 | |
| 2678 | 2679 | ROM_REGION( 0x300000, "ymsnd", 0 ) |
| 2679 | ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) | |
| 2680 | ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) | |
| 2681 | ROM_LOAD( "068-v3.bin", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) | |
| 2680 | ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* mask rom TC538200 */ | |
| 2681 | ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* mask rom TC538200 */ | |
| 2682 | ROM_LOAD( "068-v3.bin", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) /* mask rom TC538200 */ | |
| 2682 | 2683 | |
| 2683 | 2684 | NO_DELTAT_REGION |
| 2684 | 2685 | |
| 2685 | 2686 | ROM_REGION( 0x600000, "sprites", 0 ) |
| 2686 | ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ | |
| 2687 | ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ | |
| 2688 | ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ | |
| 2689 | ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ | |
| 2690 | ROM_LOAD16_BYTE( "068-c5.bin", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ | |
| 2691 | ROM_LOAD16_BYTE( "068-c6.bin", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ | |
| 2687 | ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2688 | ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2689 | ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2690 | ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2691 | ROM_LOAD16_BYTE( "068-c5.bin", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2692 | ROM_LOAD16_BYTE( "068-c6.bin", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2692 | 2693 | ROM_END |
| 2693 | 2694 | |
| 2694 | 2695 | ROM_START( fatfury3 ) /* MVS AND AES VERSION */ |
| 2695 | 2696 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 2696 | ROM_LOAD16_WORD_SWAP( "069-p1.bin", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) | |
| 2697 | ROM_LOAD16_WORD_SWAP( "069-sp2.bin", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) | |
| 2697 | ROM_LOAD16_WORD_SWAP( "069-p1.bin", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) /* TC538200 */ | |
| 2698 | ROM_LOAD16_WORD_SWAP( "069-sp2.bin", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) /* TC5316200 */ | |
| 2698 | 2699 | |
| 2699 | NEO_SFIX_128K( "069-s1.bin", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) | |
| 2700 | NEO_SFIX_128K( "069-s1.bin", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) /* TC531000 */ | |
| 2700 | 2701 | |
| 2701 | NEO_BIOS_AUDIO_128K( "069-m1.bin", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) | |
| 2702 | NEO_BIOS_AUDIO_128K( "069-m1.bin", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) /* TC531001 */ | |
| 2702 | 2703 | |
| 2703 | 2704 | ROM_REGION( 0xa00000, "ymsnd", 0 ) |
| 2704 | ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) | |
| 2705 | ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) | |
| 2706 | ROM_LOAD( "069-v3.bin", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) | |
| 2705 | ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ | |
| 2706 | ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ | |
| 2707 | ROM_LOAD( "069-v3.bin", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) /* TC5316200 */ | |
| 2707 | 2708 | |
| 2708 | 2709 | NO_DELTAT_REGION |
| 2709 | 2710 | |
| 2710 | 2711 | ROM_REGION( 0x1400000, "sprites", 0 ) |
| 2711 | ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ | |
| 2712 | ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ | |
| 2713 | ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ | |
| 2714 | ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ | |
| 2715 | ROM_LOAD16_BYTE( "069-c5.bin", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ | |
| 2716 | ROM_LOAD16_BYTE( "069-c6.bin", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ | |
| 2712 | ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 2713 | ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 2714 | ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 2715 | ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 2716 | ROM_LOAD16_BYTE( "069-c5.bin", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2717 | ROM_LOAD16_BYTE( "069-c6.bin", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2717 | 2718 | ROM_END |
| 2718 | 2719 | |
| 2719 | 2720 | ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */ |
| r9535 | r9536 | |
| 2743 | 2744 | |
| 2744 | 2745 | ROM_START( panicbom ) /* MVS ONLY RELEASE */ |
| 2745 | 2746 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2746 | ROM_LOAD16_WORD_SWAP( "073-p1.bin", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) ) | |
| 2747 | ROM_LOAD16_WORD_SWAP( "073-p1.bin", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) ) /* mask rom TC534200 */ | |
| 2747 | 2748 | |
| 2748 | NEO_SFIX_128K( "073-s1.bin", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) | |
| 2749 | NEO_SFIX_128K( "073-s1.bin", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) /* mask rom TC531000 */ | |
| 2749 | 2750 | |
| 2750 | NEO_BIOS_AUDIO_128K( "073-m1.bin", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) | |
| 2751 | NEO_BIOS_AUDIO_128K( "073-m1.bin", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) /* mask rom TC531001 */ | |
| 2751 | 2752 | |
| 2752 | 2753 | ROM_REGION( 0x300000, "ymsnd", 0 ) |
| 2753 | ROM_LOAD( "073-v1.bin", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) | |
| 2754 | ROM_LOAD( "073-v2.bin", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) | |
| 2754 | ROM_LOAD( "073-v1.bin", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) /* mask rom TC5316200 */ | |
| 2755 | ROM_LOAD( "073-v2.bin", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) /* mask rom TC538200 */ | |
| 2755 | 2756 | |
| 2756 | 2757 | NO_DELTAT_REGION |
| 2757 | 2758 | |
| 2758 | 2759 | ROM_REGION( 0x200000, "sprites", 0 ) |
| 2759 | ROM_LOAD16_BYTE( "073-c1.bin", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ | |
| 2760 | ROM_LOAD16_BYTE( "073-c2.bin", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ | |
| 2760 | ROM_LOAD16_BYTE( "073-c1.bin", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2761 | ROM_LOAD16_BYTE( "073-c2.bin", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2761 | 2762 | ROM_END |
| 2762 | 2763 | |
| 2763 | 2764 | ROM_START( aodk ) /* MVS AND AES VERSION */ |
| 2764 | 2765 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2765 | ROM_LOAD16_WORD_SWAP( "074-p1.bin", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) | |
| 2766 | ROM_LOAD16_WORD_SWAP( "074-p1.bin", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) /* TC5316200 */ | |
| 2766 | 2767 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 2767 | 2768 | |
| 2768 | NEO_SFIX_128K( "074-s1.bin", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) | |
| 2769 | NEO_SFIX_128K( "074-s1.bin", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) /* TC531000 */ | |
| 2769 | 2770 | |
| 2770 | NEO_BIOS_AUDIO_128K( "074-m1.bin", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) | |
| 2771 | NEO_BIOS_AUDIO_128K( "074-m1.bin", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) /* TC531001 */ | |
| 2771 | 2772 | |
| 2772 | 2773 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 2773 | ROM_LOAD( "074-v1.bin", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) | |
| 2774 | ROM_LOAD( "074-v2.bin", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) | |
| 2774 | ROM_LOAD( "074-v1.bin", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) /* TC5316200 */ | |
| 2775 | ROM_LOAD( "074-v2.bin", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) /* TC5316200 */ | |
| 2775 | 2776 | |
| 2776 | 2777 | NO_DELTAT_REGION |
| 2777 | 2778 | |
| 2778 | 2779 | ROM_REGION( 0x1000000, "sprites", 0 ) |
| 2779 | ROM_LOAD16_BYTE( "074-c1.bin", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ | |
| 2780 | ROM_LOAD16_BYTE( "074-c2.bin", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ | |
| 2781 | ROM_LOAD16_BYTE( "074-c3.bin", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ | |
| 2782 | ROM_LOAD16_BYTE( "074-c4.bin", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ | |
| 2783 | ROM_LOAD16_BYTE( "074-c5.bin", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ | |
| 2784 | ROM_LOAD16_BYTE( "074-c6.bin", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ | |
| 2785 | ROM_LOAD16_BYTE( "074-c7.bin", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ | |
| 2786 | ROM_LOAD16_BYTE( "074-c8.bin", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ | |
| 2780 | ROM_LOAD16_BYTE( "074-c1.bin", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2781 | ROM_LOAD16_BYTE( "074-c2.bin", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2782 | ROM_LOAD16_BYTE( "074-c3.bin", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2783 | ROM_LOAD16_BYTE( "074-c4.bin", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2784 | ROM_LOAD16_BYTE( "074-c5.bin", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2785 | ROM_LOAD16_BYTE( "074-c6.bin", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2786 | ROM_LOAD16_BYTE( "074-c7.bin", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2787 | ROM_LOAD16_BYTE( "074-c8.bin", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2787 | 2788 | ROM_END |
| 2788 | 2789 | |
| 2789 | 2790 | ROM_START( sonicwi2 ) |
| 2790 | 2791 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2791 | ROM_LOAD16_WORD_SWAP( "075-p1.bin", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) | |
| 2792 | ROM_LOAD16_WORD_SWAP( "075-p1.bin", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) /* mask rom TC5316200 */ | |
| 2792 | 2793 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 2793 | 2794 | |
| 2794 | NEO_SFIX_128K( "075-s1.bin", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) | |
| 2795 | NEO_SFIX_128K( "075-s1.bin", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) /* mask rom TC531000 */ | |
| 2795 | 2796 | |
| 2796 | NEO_BIOS_AUDIO_128K( "075-m1.bin", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) | |
| 2797 | NEO_BIOS_AUDIO_128K( "075-m1.bin", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) /* mask rom TC531001 */ | |
| 2797 | 2798 | |
| 2798 | 2799 | ROM_REGION( 0x300000, "ymsnd", 0 ) |
| 2799 | ROM_LOAD( "075-v1.bin", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) | |
| 2800 | ROM_LOAD( "075-v2.bin", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) | |
| 2800 | ROM_LOAD( "075-v1.bin", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) /* mask rom TC5316200 */ | |
| 2801 | ROM_LOAD( "075-v2.bin", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) /* mask rom TC538200 */ | |
| 2801 | 2802 | |
| 2802 | 2803 | NO_DELTAT_REGION |
| 2803 | 2804 | |
| 2804 | 2805 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2805 | ROM_LOAD16_BYTE( "075-c1.bin", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ | |
| 2806 | ROM_LOAD16_BYTE( "075-c2.bin", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ | |
| 2807 | ROM_LOAD16_BYTE( "075-c3.bin", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ | |
| 2808 | ROM_LOAD16_BYTE( "075-c4.bin", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ | |
| 2806 | ROM_LOAD16_BYTE( "075-c1.bin", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2807 | ROM_LOAD16_BYTE( "075-c2.bin", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2808 | ROM_LOAD16_BYTE( "075-c3.bin", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2809 | ROM_LOAD16_BYTE( "075-c4.bin", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2809 | 2810 | ROM_END |
| 2810 | 2811 | |
| 2811 | 2812 | ROM_START( zedblade ) /* MVS ONLY RELEASE */ |
| 2812 | 2813 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2813 | ROM_LOAD16_WORD_SWAP( "076-p1.bin", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) | |
| 2814 | ROM_LOAD16_WORD_SWAP( "076-p1.bin", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) /* mask rom TC538200 */ | |
| 2814 | 2815 | |
| 2815 | NEO_SFIX_128K( "076-s1.bin", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) | |
| 2816 | NEO_SFIX_128K( "076-s1.bin", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) /* mask rom TC531000 */ | |
| 2816 | 2817 | |
| 2817 | NEO_BIOS_AUDIO_128K( "076-m1.bin", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) | |
| 2818 | NEO_BIOS_AUDIO_128K( "076-m1.bin", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) /* mask rom TC531001 */ | |
| 2818 | 2819 | |
| 2819 | 2820 | ROM_REGION( 0x500000, "ymsnd", 0 ) |
| 2820 | ROM_LOAD( "076-v1.bin", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) | |
| 2821 | ROM_LOAD( "076-v2.bin", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) | |
| 2822 | ROM_LOAD( "076-v3.bin", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) | |
| 2821 | ROM_LOAD( "076-v1.bin", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) /* mask rom TC5316200 */ | |
| 2822 | ROM_LOAD( "076-v2.bin", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) /* mask rom TC5316200 */ | |
| 2823 | ROM_LOAD( "076-v3.bin", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) /* mask rom TC538200 */ | |
| 2823 | 2824 | |
| 2824 | 2825 | NO_DELTAT_REGION |
| 2825 | 2826 | |
| 2826 | 2827 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2827 | ROM_LOAD16_BYTE( "076-c1.bin", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ | |
| 2828 | ROM_LOAD16_BYTE( "076-c2.bin", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ | |
| 2829 | ROM_LOAD16_BYTE( "076-c3.bin", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ | |
| 2830 | ROM_LOAD16_BYTE( "076-c4.bin", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ | |
| 2828 | ROM_LOAD16_BYTE( "076-c1.bin", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2829 | ROM_LOAD16_BYTE( "076-c2.bin", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2830 | ROM_LOAD16_BYTE( "076-c3.bin", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2831 | ROM_LOAD16_BYTE( "076-c4.bin", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2831 | 2832 | ROM_END |
| 2832 | 2833 | |
| 2833 | 2834 | ROM_START( galaxyfg ) |
| 2834 | 2835 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2835 | ROM_LOAD16_WORD_SWAP( "078-p1.bin", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) | |
| 2836 | ROM_LOAD16_WORD_SWAP( "078-p1.bin", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) /* mask rom TC5316200 */ | |
| 2836 | 2837 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 2837 | 2838 | |
| 2838 | NEO_SFIX_128K( "078-s1.bin", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) | |
| 2839 | NEO_SFIX_128K( "078-s1.bin", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) /* mask rom TC531000 */ | |
| 2839 | 2840 | |
| 2840 | NEO_BIOS_AUDIO_128K( "078-m1.bin", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) | |
| 2841 | NEO_BIOS_AUDIO_128K( "078-m1.bin", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) /* mask rom TC531001 */ | |
| 2841 | 2842 | |
| 2842 | 2843 | ROM_REGION( 0x500000, "ymsnd", 0 ) |
| 2843 | ROM_LOAD( "078-v1.bin", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) | |
| 2844 | ROM_LOAD( "078-v2.bin", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) | |
| 2845 | ROM_LOAD( "078-v3.bin", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) | |
| 2844 | ROM_LOAD( "078-v1.bin", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) /* mask rom TC5316200 */ | |
| 2845 | ROM_LOAD( "078-v2.bin", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) /* mask rom TC5316200 */ | |
| 2846 | ROM_LOAD( "078-v3.bin", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) /* mask rom TC538200 */ | |
| 2846 | 2847 | |
| 2847 | 2848 | NO_DELTAT_REGION |
| 2848 | 2849 | |
| 2849 | 2850 | ROM_REGION( 0xe00000, "sprites", 0 ) |
| 2850 | ROM_LOAD16_BYTE( "078-c1.bin", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ | |
| 2851 | ROM_LOAD16_BYTE( "078-c2.bin", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ | |
| 2852 | ROM_LOAD16_BYTE( "078-c3.bin", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ | |
| 2853 | ROM_LOAD16_BYTE( "078-c4.bin", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ | |
| 2854 | ROM_LOAD16_BYTE( "078-c5.bin", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ | |
| 2855 | ROM_LOAD16_BYTE( "078-c6.bin", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ | |
| 2856 | ROM_LOAD16_BYTE( "078-c7.bin", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ | |
| 2857 | ROM_LOAD16_BYTE( "078-c8.bin", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ | |
| 2851 | ROM_LOAD16_BYTE( "078-c1.bin", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2852 | ROM_LOAD16_BYTE( "078-c2.bin", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2853 | ROM_LOAD16_BYTE( "078-c3.bin", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2854 | ROM_LOAD16_BYTE( "078-c4.bin", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2855 | ROM_LOAD16_BYTE( "078-c5.bin", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2856 | ROM_LOAD16_BYTE( "078-c6.bin", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2857 | ROM_LOAD16_BYTE( "078-c7.bin", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 2858 | ROM_LOAD16_BYTE( "078-c8.bin", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 2858 | 2859 | ROM_END |
| 2859 | 2860 | |
| 2860 | 2861 | ROM_START( strhoop ) |
| 2861 | 2862 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2862 | ROM_LOAD16_WORD_SWAP( "079-p1.bin", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) | |
| 2863 | ROM_LOAD16_WORD_SWAP( "079-p1.bin", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) /* mask rom TC538200 */ | |
| 2863 | 2864 | |
| 2864 | NEO_SFIX_128K( "079-s1.bin", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) | |
| 2865 | NEO_SFIX_128K( "079-s1.bin", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) /* mask rom TC531000 */ | |
| 2865 | 2866 | |
| 2866 | NEO_BIOS_AUDIO_128K( "079-m1.bin", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) ) | |
| 2867 | NEO_BIOS_AUDIO_128K( "079-m1.bin", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) ) /* mask rom TC531001 */ | |
| 2867 | 2868 | |
| 2868 | 2869 | ROM_REGION( 0x300000, "ymsnd", 0 ) |
| 2869 | ROM_LOAD( "079-v1.bin", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) | |
| 2870 | ROM_LOAD( "079-v2.bin", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) ) | |
| 2870 | ROM_LOAD( "079-v1.bin", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) /* mask rom TC5316200 */ | |
| 2871 | ROM_LOAD( "079-v2.bin", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) ) /* mask rom TC538200 */ | |
| 2871 | 2872 | |
| 2872 | 2873 | NO_DELTAT_REGION |
| 2873 | 2874 | |
| 2874 | 2875 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2875 | ROM_LOAD16_BYTE( "079-c1.bin", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ | |
| 2876 | ROM_LOAD16_BYTE( "079-c2.bin", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ | |
| 2877 | ROM_LOAD16_BYTE( "079-c3.bin", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ | |
| 2878 | ROM_LOAD16_BYTE( "079-c4.bin", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ | |
| 2876 | ROM_LOAD16_BYTE( "079-c1.bin", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2877 | ROM_LOAD16_BYTE( "079-c2.bin", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2878 | ROM_LOAD16_BYTE( "079-c3.bin", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2879 | ROM_LOAD16_BYTE( "079-c4.bin", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2879 | 2880 | ROM_END |
| 2880 | 2881 | |
| 2881 | 2882 | ROM_START( quizkof ) |
| 2882 | 2883 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2883 | ROM_LOAD16_WORD_SWAP( "080-p1.bin", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) | |
| 2884 | ROM_LOAD16_WORD_SWAP( "080-p1.bin", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) /* mask rom TC538200 */ | |
| 2884 | 2885 | |
| 2885 | NEO_SFIX_128K( "080-s1.bin", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) | |
| 2886 | NEO_SFIX_128K( "080-s1.bin", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) /* mask rom TC531000 */ | |
| 2886 | 2887 | |
| 2887 | NEO_BIOS_AUDIO_128K( "080-m1.bin", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) | |
| 2888 | NEO_BIOS_AUDIO_128K( "080-m1.bin", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) /* mask rom TC531001 */ | |
| 2888 | 2889 | |
| 2889 | 2890 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 2890 | ROM_LOAD( "080-v1.bin", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) | |
| 2891 | ROM_LOAD( "080-v2.bin", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) | |
| 2892 | ROM_LOAD( "080-v3.bin", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) | |
| 2891 | ROM_LOAD( "080-v1.bin", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */ | |
| 2892 | ROM_LOAD( "080-v2.bin", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) /* mask rom TC5316200 */ | |
| 2893 | ROM_LOAD( "080-v3.bin", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) /* mask rom TC5316200 */ | |
| 2893 | 2894 | |
| 2894 | 2895 | NO_DELTAT_REGION |
| 2895 | 2896 | |
| 2896 | 2897 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 2897 | ROM_LOAD16_BYTE( "080-c1.bin", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ | |
| 2898 | ROM_LOAD16_BYTE( "080-c2.bin", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */ | |
| 2899 | ROM_LOAD16_BYTE( "080-c3.bin", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ | |
| 2900 | ROM_LOAD16_BYTE( "080-c4.bin", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ | |
| 2898 | ROM_LOAD16_BYTE( "080-c1.bin", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2899 | ROM_LOAD16_BYTE( "080-c2.bin", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2900 | ROM_LOAD16_BYTE( "080-c3.bin", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 2901 | ROM_LOAD16_BYTE( "080-c4.bin", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 2901 | 2902 | ROM_END |
| 2902 | 2903 | |
| 2903 | 2904 | ROM_START( quizkofk ) /* KOREAN VERSION */ |
| r9535 | r9536 | |
| 2926 | 2927 | |
| 2927 | 2928 | ROM_START( ssideki3 ) |
| 2928 | 2929 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 2929 | ROM_LOAD16_WORD_SWAP( "081-p1.bin", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) | |
| 2930 | ROM_LOAD16_WORD_SWAP( "081-p1.bin", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) /* TC5316200 */ | |
| 2930 | 2931 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 2931 | 2932 | |
| 2932 | NEO_SFIX_128K( "081-s1.bin", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) | |
| 2933 | NEO_SFIX_128K( "081-s1.bin", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) /* TC531000 */ | |
| 2933 | 2934 | |
| 2934 | NEO_BIOS_AUDIO_128K( "081-m1.bin", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) | |
| 2935 | NEO_BIOS_AUDIO_128K( "081-m1.bin", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) /* TC531001 */ | |
| 2935 | 2936 | |
| 2936 | 2937 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 2937 | ROM_LOAD( "081-v1.bin", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) | |
| 2938 | ROM_LOAD( "081-v2.bin", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) | |
| 2939 | ROM_LOAD( "081-v3.bin", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) | |
| 2938 | ROM_LOAD( "081-v1.bin", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) /* TC5316200 */ | |
| 2939 | ROM_LOAD( "081-v2.bin", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) /* TC5316200 */ | |
| 2940 | ROM_LOAD( "081-v3.bin", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) /* TC5316200 */ | |
| 2940 | 2941 | |
| 2941 | 2942 | NO_DELTAT_REGION |
| 2942 | 2943 | |
| 2943 | 2944 | ROM_REGION( 0xc00000, "sprites", 0 ) |
| 2944 | ROM_LOAD16_BYTE( "081-c1.bin", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ | |
| 2945 | ROM_LOAD16_BYTE( "081-c2.bin", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ | |
| 2946 | ROM_LOAD16_BYTE( "081-c3.bin", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ | |
| 2947 | ROM_LOAD16_BYTE( "081-c4.bin", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ | |
| 2948 | ROM_LOAD16_BYTE( "081-c5.bin", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ | |
| 2949 | ROM_LOAD16_BYTE( "081-c6.bin", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ | |
| 2945 | ROM_LOAD16_BYTE( "081-c1.bin", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2946 | ROM_LOAD16_BYTE( "081-c2.bin", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2947 | ROM_LOAD16_BYTE( "081-c3.bin", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2948 | ROM_LOAD16_BYTE( "081-c4.bin", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2949 | ROM_LOAD16_BYTE( "081-c5.bin", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 2950 | ROM_LOAD16_BYTE( "081-c6.bin", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 2950 | 2951 | ROM_END |
| 2951 | 2952 | |
| 2952 | 2953 | ROM_START( doubledr ) |
| r9535 | r9536 | |
| 2981 | 2982 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 2982 | 2983 | ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) ) /* 27C240 */ |
| 2983 | 2984 | |
| 2984 | NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) | |
| 2985 | NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) /* mask rom TC531000 */ | |
| 2985 | 2986 | |
| 2986 | NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) | |
| 2987 | NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) /* mask rom TC531001 */ | |
| 2987 | 2988 | |
| 2988 | 2989 | ROM_REGION( 0x380000, "ymsnd", 0 ) |
| 2989 | ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */ | |
| 2990 | ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */ | |
| 2991 | ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) | |
| 2992 | ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) ) | |
| 2990 | ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */ /* mask rom TC538200 */ | |
| 2991 | ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */ /* mask rom TC538200 */ | |
| 2992 | ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) /* mask rom TC538200 */ | |
| 2993 | ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) ) /* mask rom TC534200 */ | |
| 2993 | 2994 | |
| 2994 | 2995 | NO_DELTAT_REGION |
| 2995 | 2996 | |
| 2996 | 2997 | ROM_REGION( 0x500000, "sprites", 0 ) |
| 2997 | ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */ | |
| 2998 | ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */ | |
| 2999 | ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */ | |
| 3000 | ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */ | |
| 3001 | ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ | |
| 3002 | ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ | |
| 2998 | ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */ /* mask rom TC538200 */ | |
| 2999 | ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */ /* mask rom TC538200 */ | |
| 3000 | ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */ /* mask rom TC538200 */ | |
| 3001 | ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */ /* mask rom TC538200 */ | |
| 3002 | ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ /* mask rom TC534200 */ | |
| 3003 | ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ /* mask rom TC534200 */ | |
| 3003 | 3004 | ROM_END |
| 3004 | 3005 | |
| 3005 | 3006 | ROM_START( kof95 ) |
| r9535 | r9536 | |
| 3063 | 3064 | |
| 3064 | 3065 | ROM_START( tws96 ) /* MVS ONLY RELEASE */ |
| 3065 | 3066 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 3066 | ROM_LOAD16_WORD_SWAP( "086-p1.bin", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) | |
| 3067 | ROM_LOAD16_WORD_SWAP( "086-p1.bin", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) /* mask rom TC538200 */ | |
| 3067 | 3068 | |
| 3068 | NEO_SFIX_128K( "086-s1.bin", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) | |
| 3069 | NEO_SFIX_128K( "086-s1.bin", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) /* mask rom TC531000 */ | |
| 3069 | 3070 | |
| 3070 | NEO_BIOS_AUDIO_128K( "086-m1.bin", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) ) | |
| 3071 | NEO_BIOS_AUDIO_128K( "086-m1.bin", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) ) /* mask rom TC531001 */ | |
| 3071 | 3072 | |
| 3072 | 3073 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 3073 | ROM_LOAD( "086-v1.bin", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) | |
| 3074 | ROM_LOAD( "086-v2.bin", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) | |
| 3074 | ROM_LOAD( "086-v1.bin", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) /* mask rom TC5316200 */ | |
| 3075 | ROM_LOAD( "086-v2.bin", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) /* mask rom TC5316200 */ | |
| 3075 | 3076 | |
| 3076 | 3077 | NO_DELTAT_REGION |
| 3077 | 3078 | |
| 3078 | 3079 | ROM_REGION( 0xa00000, "sprites", 0 ) |
| 3079 | ROM_LOAD16_BYTE( "086-c1.bin", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ | |
| 3080 | ROM_LOAD16_BYTE( "086-c2.bin", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ | |
| 3081 | ROM_LOAD16_BYTE( "086-c3.bin", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ | |
| 3082 | ROM_LOAD16_BYTE( "086-c4.bin", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ | |
| 3080 | ROM_LOAD16_BYTE( "086-c1.bin", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ /* mask rom TC5332205 */ | |
| 3081 | ROM_LOAD16_BYTE( "086-c2.bin", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ /* mask rom TC5332205 */ | |
| 3082 | ROM_LOAD16_BYTE( "086-c3.bin", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ /* mask rom TC538200 */ | |
| 3083 | ROM_LOAD16_BYTE( "086-c4.bin", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ /* mask rom TC538200 */ | |
| 3083 | 3084 | ROM_END |
| 3084 | 3085 | |
| 3085 | 3086 | ROM_START( samsho3 ) /* MVS VERSION */ |
| r9535 | r9536 | |
| 3113 | 3114 | |
| 3114 | 3115 | ROM_START( samsho3h ) /* AES VERSION */ |
| 3115 | 3116 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3116 | ROM_LOAD16_WORD_SWAP( "087-pg1.bin", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* Mask rom - TC538200 */ | |
| 3117 | ROM_LOAD16_WORD_SWAP( "087-p2.bin", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* Mask rom - TC5316200 */ | |
| 3117 | ROM_LOAD16_WORD_SWAP( "087-pg1.bin", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* mask rom - TC538200 */ | |
| 3118 | ROM_LOAD16_WORD_SWAP( "087-p2.bin", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom - TC5316200 */ | |
| 3118 | 3119 | |
| 3119 | 3120 | NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* T531000 */ |
| 3120 | 3121 | |
| r9535 | r9536 | |
| 3140 | 3141 | ROM_START( fswords ) /* KOREAN VERSION */ |
| 3141 | 3142 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3142 | 3143 | ROM_LOAD16_WORD_SWAP( "187-p1k.bin", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) ) |
| 3143 | ROM_LOAD16_WORD_SWAP( "087-p2.bin", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* | |
| 3144 | ROM_LOAD16_WORD_SWAP( "087-p2.bin", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom - TC5316200 */ | |
| 3144 | 3145 | |
| 3145 | 3146 | NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */ |
| 3146 | 3147 | |
| r9535 | r9536 | |
| 3165 | 3166 | |
| 3166 | 3167 | ROM_START( stakwin ) |
| 3167 | 3168 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 3168 | ROM_LOAD16_WORD_SWAP( "088-p1.bin", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) | |
| 3169 | ROM_LOAD16_WORD_SWAP( "088-p1.bin", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) /* TC5316200 */ | |
| 3169 | 3170 | ROM_CONTINUE( 0x000000, 0x100000) |
| 3170 | 3171 | |
| 3171 | NEO_SFIX_128K( "088-s1.bin", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) | |
| 3172 | NEO_SFIX_128K( "088-s1.bin", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) /* TC531000 */ | |
| 3172 | 3173 | |
| 3173 | NEO_BIOS_AUDIO_128K( "088-m1.bin", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) | |
| 3174 | NEO_BIOS_AUDIO_128K( "088-m1.bin", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) /* TC531001 */ | |
| 3174 | 3175 | |
| 3175 | 3176 | ROM_REGION( 0x200000, "ymsnd", 0 ) |
| 3176 | ROM_LOAD( "088-v1.bin", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) | |
| 3177 | ROM_LOAD( "088-v1.bin", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) /* TC5316200 */ | |
| 3177 | 3178 | |
| 3178 | 3179 | NO_DELTAT_REGION |
| 3179 | 3180 | |
| 3180 | 3181 | ROM_REGION( 0x800000, "sprites", 0 ) |
| 3181 | ROM_LOAD16_BYTE( "088-c1.bin", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ | |
| 3182 | ROM_LOAD16_BYTE( "088-c2.bin", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ | |
| 3183 | ROM_LOAD16_BYTE( "088-c3.bin", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ | |
| 3184 | ROM_LOAD16_BYTE( "088-c4.bin", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ | |
| 3182 | ROM_LOAD16_BYTE( "088-c1.bin", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3183 | ROM_LOAD16_BYTE( "088-c2.bin", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3184 | ROM_LOAD16_BYTE( "088-c3.bin", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3185 | ROM_LOAD16_BYTE( "088-c4.bin", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3185 | 3186 | ROM_END |
| 3186 | 3187 | |
| 3187 | 3188 | ROM_START( pulstar ) |
| r9535 | r9536 | |
| 3212 | 3213 | |
| 3213 | 3214 | ROM_START( whp ) |
| 3214 | 3215 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 3215 | ROM_LOAD16_WORD_SWAP( "090-p1.bin", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) | |
| 3216 | ROM_LOAD16_WORD_SWAP( "090-p1.bin", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) /* mask rom TC5316200 */ | |
| 3216 | 3217 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 3217 | 3218 | |
| 3218 | NEO_SFIX_128K( "090-s1.bin", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) | |
| 3219 | NEO_SFIX_128K( "090-s1.bin", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) /* mask rom TC531000 */ | |
| 3219 | 3220 | |
| 3220 | NEO_BIOS_AUDIO_128K( "090-m1.bin", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) | |
| 3221 | NEO_BIOS_AUDIO_128K( "090-m1.bin", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) /* mask rom TC531001 */ | |
| 3221 | 3222 | |
| 3222 | 3223 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 3223 | ROM_LOAD( "090-v1.bin", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) | |
| 3224 | ROM_LOAD( "064-v2.bin", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) | |
| 3225 | ROM_LOAD( "090-v3.bin", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) | |
| 3224 | ROM_LOAD( "090-v1.bin", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) /* mask rom TC5316200 */ | |
| 3225 | ROM_LOAD( "064-v2.bin", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* mask rom TC5316200 */ | |
| 3226 | ROM_LOAD( "090-v3.bin", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) /* mask rom TC5316200 */ | |
| 3226 | 3227 | |
| 3227 | 3228 | NO_DELTAT_REGION |
| 3228 | 3229 | |
| 3229 | 3230 | ROM_REGION( 0x1c00000, "sprites", 0 ) |
| 3230 | ROM_LOAD16_BYTE( "090-c1.bin", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */ | |
| 3231 | ROM_LOAD16_BYTE( "090-c2.bin", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */ | |
| 3232 | ROM_LOAD16_BYTE( "064-c3.bin", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ | |
| 3233 | ROM_LOAD16_BYTE( "064-c4.bin", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ | |
| 3231 | ROM_LOAD16_BYTE( "090-c1.bin", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */ /* mask rom TC5332205 */ | |
| 3232 | ROM_LOAD16_BYTE( "090-c2.bin", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */ /* mask rom TC5332205 */ | |
| 3233 | ROM_LOAD16_BYTE( "064-c3.bin", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 3234 | ROM_LOAD16_BYTE( "064-c4.bin", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 3234 | 3235 | /* 0c00000-0ffffff empty */ |
| 3235 | ROM_LOAD16_BYTE( "064-c5.bin", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ | |
| 3236 | ROM_LOAD16_BYTE( "064-c6.bin", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ | |
| 3236 | ROM_LOAD16_BYTE( "064-c5.bin", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 3237 | ROM_LOAD16_BYTE( "064-c6.bin", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 3237 | 3238 | /* 1400000-17fffff empty */ |
| 3238 | ROM_LOAD16_BYTE( "064-c7.bin", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ | |
| 3239 | ROM_LOAD16_BYTE( "064-c8.bin", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ | |
| 3239 | ROM_LOAD16_BYTE( "064-c7.bin", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* mask rom TC5316200 */ | |
| 3240 | ROM_LOAD16_BYTE( "064-c8.bin", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* mask rom TC5316200 */ | |
| 3240 | 3241 | ROM_END |
| 3241 | 3242 | |
| 3242 | 3243 | ROM_START( kabukikl ) |
| 3243 | 3244 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 3244 | ROM_LOAD16_WORD_SWAP( "092-p1.bin", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) | |
| 3245 | ROM_LOAD16_WORD_SWAP( "092-p1.bin", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) /* mask rom TC5316200 */ | |
| 3245 | 3246 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 3246 | 3247 | |
| 3247 | NEO_SFIX_128K( "092-s1.bin", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) | |
| 3248 | NEO_SFIX_128K( "092-s1.bin", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) /* mask rom TC531000 */ | |
| 3248 | 3249 | |
| 3249 | NEO_BIOS_AUDIO_128K( "092-m1.bin", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) | |
| 3250 | NEO_BIOS_AUDIO_128K( "092-m1.bin", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) /* mask rom TC531001 */ | |
| 3250 | 3251 | |
| 3251 | 3252 | ROM_REGION( 0x700000, "ymsnd", 0 ) |
| 3252 | ROM_LOAD( "092-v1.bin", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) | |
| 3253 | ROM_LOAD( "092-v2.bin", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) | |
| 3254 | ROM_LOAD( "092-v3.bin", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) | |
| 3255 | ROM_LOAD( "092-v4.bin", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) | |
| 3253 | ROM_LOAD( "092-v1.bin", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) /* mask rom TC5316200 */ | |
| 3254 | ROM_LOAD( "092-v2.bin", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) /* mask rom TC5316200 */ | |
| 3255 | ROM_LOAD( "092-v3.bin", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) /* mask rom TC5316200 */ | |
| 3256 | ROM_LOAD( "092-v4.bin", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) /* mask rom TC538200 */ | |
| 3256 | 3257 | |
| 3257 | 3258 | NO_DELTAT_REGION |
| 3258 | 3259 | |
| 3259 | 3260 | ROM_REGION( 0x1000000, "sprites", 0 ) |
| 3260 | ROM_LOAD16_BYTE( "092-c1.bin", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ | |
| 3261 | ROM_LOAD16_BYTE( "092-c2.bin", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ | |
| 3262 | ROM_LOAD16_BYTE( "092-c3.bin", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ | |
| 3263 | ROM_LOAD16_BYTE( "092-c4.bin", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ | |
| 3261 | ROM_LOAD16_BYTE( "092-c1.bin", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ /* mask rom TC5332205 */ | |
| 3262 | ROM_LOAD16_BYTE( "092-c2.bin", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ /* mask rom TC5332205 */ | |
| 3263 | ROM_LOAD16_BYTE( "092-c3.bin", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ /* mask rom TC5332205 */ | |
| 3264 | ROM_LOAD16_BYTE( "092-c4.bin", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ /* mask rom TC5332205 */ | |
| 3264 | 3265 | ROM_END |
| 3265 | 3266 | |
| 3266 | 3267 | ROM_START( neobombe ) /* MVS ONLY RELEASE */ |
| 3267 | 3268 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 3268 | ROM_LOAD16_WORD_SWAP( "093-p1.bin", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) | |
| 3269 | ROM_LOAD16_WORD_SWAP( "093-p1.bin", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) /* TC538200 */ | |
| 3269 | 3270 | |
| 3270 | NEO_SFIX_128K( "093-s1.bin", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) | |
| 3271 | NEO_SFIX_128K( "093-s1.bin", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) /* TC531000 */ | |
| 3271 | 3272 | |
| 3272 | NEO_BIOS_AUDIO_128K( "093-m1.bin", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) | |
| 3273 | NEO_BIOS_AUDIO_128K( "093-m1.bin", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) /* TC531001 */ | |
| 3273 | 3274 | |
| 3274 | 3275 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 3275 | ROM_LOAD( "093-v1.bin", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) | |
| 3276 | ROM_LOAD( "093-v2.bin", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) | |
| 3276 | ROM_LOAD( "093-v1.bin", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) /* TC5332204 */ | |
| 3277 | ROM_LOAD( "093-v2.bin", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) /* TC5316200 */ | |
| 3277 | 3278 | |
| 3278 | 3279 | NO_DELTAT_REGION |
| 3279 | 3280 | |
| 3280 | 3281 | ROM_REGION( 0x900000, "sprites", 0 ) |
| 3281 | ROM_LOAD16_BYTE( "093-c1.bin", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ | |
| 3282 | ROM_LOAD16_BYTE( "093-c2.bin", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ | |
| 3283 | ROM_LOAD16_BYTE( "093-c3.bin", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ | |
| 3284 | ROM_LOAD16_BYTE( "093-c4.bin", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ | |
| 3282 | ROM_LOAD16_BYTE( "093-c1.bin", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3283 | ROM_LOAD16_BYTE( "093-c2.bin", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3284 | ROM_LOAD16_BYTE( "093-c3.bin", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ /* TC534200 */ | |
| 3285 | ROM_LOAD16_BYTE( "093-c4.bin", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ /* TC534200 */ | |
| 3285 | 3286 | ROM_END |
| 3286 | 3287 | |
| 3287 | 3288 | ROM_START( gowcaizr ) |
| r9535 | r9536 | |
| 3313 | 3314 | |
| 3314 | 3315 | ROM_START( rbff1 ) /* MVS AND AES VERSION */ |
| 3315 | 3316 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3316 | ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) | |
| 3317 | ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) | |
| 3317 | ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ | |
| 3318 | ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ | |
| 3318 | 3319 | |
| 3319 | NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) | |
| 3320 | NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ | |
| 3320 | 3321 | |
| 3321 | NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) | |
| 3322 | NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ | |
| 3322 | 3323 | |
| 3323 | 3324 | ROM_REGION( 0xc00000, "ymsnd", 0 ) |
| 3324 | ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) | |
| 3325 | ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) | |
| 3326 | ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) | |
| 3325 | ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ | |
| 3326 | ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ | |
| 3327 | ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ | |
| 3327 | 3328 | |
| 3328 | 3329 | NO_DELTAT_REGION |
| 3329 | 3330 | |
| 3330 | 3331 | ROM_REGION( 0x1c00000, "sprites", 0 ) |
| 3331 | ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ | |
| 3332 | ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ | |
| 3333 | ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ | |
| 3334 | ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ | |
| 3335 | ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ | |
| 3336 | ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ | |
| 3337 | ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ | |
| 3338 | ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ | |
| 3332 | ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3333 | ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3334 | ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3335 | ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3336 | ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ | |
| 3337 | ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ | |
| 3338 | ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3339 | ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3339 | 3340 | ROM_END |
| 3340 | 3341 | |
| 3341 | 3342 | ROM_START( rbff1a ) /* MVS VERSION */ |
| 3342 | 3343 | /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */ |
| 3343 | 3344 | /* 512k ROM was added to replace the first 512k of P1. */ |
| 3344 | 3345 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3345 | ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) | |
| 3346 | ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) | |
| 3346 | ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */ | |
| 3347 | ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */ | |
| 3347 | 3348 | /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ |
| 3348 | 3349 | ROM_LOAD16_WORD_SWAP( "095-ep1.bin", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) ) |
| 3349 | 3350 | |
| 3350 | NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) | |
| 3351 | NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */ | |
| 3351 | 3352 | |
| 3352 | NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) | |
| 3353 | NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */ | |
| 3353 | 3354 | |
| 3354 | 3355 | ROM_REGION( 0xc00000, "ymsnd", 0 ) |
| 3355 | ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) | |
| 3356 | ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) | |
| 3357 | ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) | |
| 3356 | ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */ | |
| 3357 | ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */ | |
| 3358 | ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */ | |
| 3358 | 3359 | |
| 3359 | 3360 | NO_DELTAT_REGION |
| 3360 | 3361 | |
| 3361 | 3362 | ROM_REGION( 0x1c00000, "sprites", 0 ) |
| 3362 | ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ | |
| 3363 | ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ | |
| 3364 | ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ | |
| 3365 | ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ | |
| 3366 | ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ | |
| 3367 | ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ | |
| 3368 | ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ | |
| 3369 | ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ | |
| 3363 | ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3364 | ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3365 | ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3366 | ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3367 | ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */ | |
| 3368 | ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */ | |
| 3369 | ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3370 | ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3370 | 3371 | ROM_END |
| 3371 | 3372 | |
| 3372 | 3373 | ROM_START( aof3 ) |
| 3373 | 3374 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3374 | ROM_LOAD16_WORD_SWAP( "096-p1.bin", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) | |
| 3375 | ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) | |
| 3375 | ROM_LOAD16_WORD_SWAP( "096-p1.bin", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) /* TC538200 */ | |
| 3376 | ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ | |
| 3376 | 3377 | |
| 3377 | NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) | |
| 3378 | NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ | |
| 3378 | 3379 | |
| 3379 | NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) | |
| 3380 | NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ | |
| 3380 | 3381 | |
| 3381 | 3382 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 3382 | ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) | |
| 3383 | ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) | |
| 3384 | ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) | |
| 3383 | ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ | |
| 3384 | ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ | |
| 3385 | ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ | |
| 3385 | 3386 | |
| 3386 | 3387 | NO_DELTAT_REGION |
| 3387 | 3388 | |
| 3388 | 3389 | ROM_REGION( 0x1c00000, "sprites", 0 ) |
| 3389 | ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ | |
| 3390 | ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ | |
| 3391 | ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ | |
| 3392 | ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ | |
| 3393 | ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ | |
| 3394 | ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ | |
| 3395 | ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ | |
| 3396 | ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ | |
| 3390 | ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3391 | ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3392 | ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3393 | ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3394 | ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3395 | ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3396 | ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3397 | ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3397 | 3398 | ROM_END |
| 3398 | 3399 | |
| 3399 | 3400 | ROM_START( aof3k ) /* KOREAN VERSION */ |
| 3400 | 3401 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3401 | 3402 | ROM_LOAD16_WORD_SWAP( "196-p1k.bin", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) ) |
| 3402 | ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) | |
| 3403 | ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */ | |
| 3403 | 3404 | |
| 3404 | NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) | |
| 3405 | NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */ | |
| 3405 | 3406 | |
| 3406 | NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) | |
| 3407 | NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */ | |
| 3407 | 3408 | |
| 3408 | 3409 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 3409 | ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) | |
| 3410 | ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) | |
| 3411 | ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) | |
| 3410 | ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */ | |
| 3411 | ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */ | |
| 3412 | ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */ | |
| 3412 | 3413 | |
| 3413 | 3414 | NO_DELTAT_REGION |
| 3414 | 3415 | |
| 3415 | 3416 | ROM_REGION( 0x1c00000, "sprites", 0 ) |
| 3416 | ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ | |
| 3417 | ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ | |
| 3418 | ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ | |
| 3419 | ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ | |
| 3420 | ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ | |
| 3421 | ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ | |
| 3422 | ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ | |
| 3423 | ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ | |
| 3417 | ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3418 | ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3419 | ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3420 | ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3421 | ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3422 | ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3423 | ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3424 | ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3424 | 3425 | ROM_END |
| 3425 | 3426 | |
| 3426 | 3427 | ROM_START( sonicwi3 ) |
| 3427 | 3428 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 3428 | ROM_LOAD16_WORD_SWAP( "097-p1.bin", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) | |
| 3429 | ROM_LOAD16_WORD_SWAP( "097-p1.bin", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) /* TC5316200 */ | |
| 3429 | 3430 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 3430 | 3431 | |
| 3431 | NEO_SFIX_128K( "097-s1.bin", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) | |
| 3432 | NEO_SFIX_128K( "097-s1.bin", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) /* TC531000 */ | |
| 3432 | 3433 | |
| 3433 | NEO_BIOS_AUDIO_128K( "097-m1.bin", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) | |
| 3434 | NEO_BIOS_AUDIO_128K( "097-m1.bin", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) /* TC531001 */ | |
| 3434 | 3435 | |
| 3435 | 3436 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 3436 | ROM_LOAD( "097-v1.bin", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) | |
| 3437 | ROM_LOAD( "097-v2.bin", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) | |
| 3437 | ROM_LOAD( "097-v1.bin", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) /* TC5332201 */ | |
| 3438 | ROM_LOAD( "097-v2.bin", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) /* TC5316200 */ | |
| 3438 | 3439 | |
| 3439 | 3440 | NO_DELTAT_REGION |
| 3440 | 3441 | |
| 3441 | 3442 | ROM_REGION( 0xc00000, "sprites", 0 ) |
| 3442 | ROM_LOAD16_BYTE( "097-c1.bin", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ | |
| 3443 | ROM_LOAD16_BYTE( "097-c2.bin", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ | |
| 3444 | ROM_LOAD16_BYTE( "097-c3.bin", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ | |
| 3445 | ROM_LOAD16_BYTE( "097-c4.bin", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ | |
| 3443 | ROM_LOAD16_BYTE( "097-c1.bin", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ /* TC5332202 */ | |
| 3444 | ROM_LOAD16_BYTE( "097-c2.bin", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ /* TC5332202 */ | |
| 3445 | ROM_LOAD16_BYTE( "097-c3.bin", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3446 | ROM_LOAD16_BYTE( "097-c4.bin", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3446 | 3447 | ROM_END |
| 3447 | 3448 | |
| 3448 | 3449 | ROM_START( turfmast ) |
| r9535 | r9536 | |
| 3491 | 3492 | |
| 3492 | 3493 | ROM_START( puzzledp ) /* MVS ONLY RELEASE */ |
| 3493 | 3494 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 3494 | ROM_LOAD16_WORD_SWAP( "202-p1.bin", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) | |
| 3495 | ROM_LOAD16_WORD_SWAP( "202-p1.bin", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) /* TC534200 */ | |
| 3495 | 3496 | |
| 3496 | NEO_SFIX_128K( "202-s1.bin", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) | |
| 3497 | NEO_SFIX_128K( "202-s1.bin", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) /* TC531000 */ | |
| 3497 | 3498 | |
| 3498 | NEO_BIOS_AUDIO_128K( "202-m1.bin", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) | |
| 3499 | NEO_BIOS_AUDIO_128K( "202-m1.bin", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */ | |
| 3499 | 3500 | |
| 3500 | 3501 | ROM_REGION( 0x080000, "ymsnd", 0 ) |
| 3501 | ROM_LOAD( "202-v1.bin", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) | |
| 3502 | ROM_LOAD( "202-v1.bin", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */ | |
| 3502 | 3503 | |
| 3503 | 3504 | NO_DELTAT_REGION |
| 3504 | 3505 | |
| 3505 | 3506 | ROM_REGION( 0x200000, "sprites", 0 ) |
| 3506 | ROM_LOAD16_BYTE( "202-c1.bin", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ | |
| 3507 | ROM_LOAD16_BYTE( "202-c2.bin", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ | |
| 3507 | ROM_LOAD16_BYTE( "202-c1.bin", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */ | |
| 3508 | ROM_LOAD16_BYTE( "202-c2.bin", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */ | |
| 3508 | 3509 | ROM_END |
| 3509 | 3510 | |
| 3510 | 3511 | ROM_START( mosyougi ) |
| 3511 | 3512 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 3512 | ROM_LOAD16_WORD_SWAP( "203-p1.bin", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) | |
| 3513 | ROM_LOAD16_WORD_SWAP( "203-p1.bin", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) /* TC538200 */ | |
| 3513 | 3514 | |
| 3514 | NEO_SFIX_128K( "203-s1.bin", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) ) | |
| 3515 | NEO_SFIX_128K( "203-s1.bin", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) ) /* TC531000 */ | |
| 3515 | 3516 | |
| 3516 | NEO_BIOS_AUDIO_128K( "203-m1.bin", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) | |
| 3517 | NEO_BIOS_AUDIO_128K( "203-m1.bin", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) /* TC531001 */ | |
| 3517 | 3518 | |
| 3518 | 3519 | ROM_REGION( 0x200000, "ymsnd", 0 ) |
| 3519 | ROM_LOAD( "203-v1.bin", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) | |
| 3520 | ROM_LOAD( "203-v1.bin", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) /* TC5316200 */ | |
| 3520 | 3521 | |
| 3521 | 3522 | NO_DELTAT_REGION |
| 3522 | 3523 | |
| 3523 | 3524 | ROM_REGION( 0x400000, "sprites", 0 ) |
| 3524 | ROM_LOAD16_BYTE( "203-c1.bin", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ | |
| 3525 | ROM_LOAD16_BYTE( "203-c2.bin", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ | |
| 3525 | ROM_LOAD16_BYTE( "203-c1.bin", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3526 | ROM_LOAD16_BYTE( "203-c2.bin", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3526 | 3527 | ROM_END |
| 3527 | 3528 | |
| 3528 | 3529 | ROM_START( marukodq ) |
| r9535 | r9536 | |
| 3566 | 3567 | |
| 3567 | 3568 | ROM_START( sdodgeb ) /* MVS ONLY RELEASE */ |
| 3568 | 3569 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 3569 | ROM_LOAD16_WORD_SWAP( "208-p1.bin", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) | |
| 3570 | ROM_LOAD16_WORD_SWAP( "208-p1.bin", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) /* TC5316200 */ | |
| 3570 | 3571 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 3571 | 3572 | |
| 3572 | NEO_SFIX_128K( "208-s1.bin", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) | |
| 3573 | NEO_SFIX_128K( "208-s1.bin", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) /* TC531000 */ | |
| 3573 | 3574 | |
| 3574 | NEO_BIOS_AUDIO_128K( "208-m1.bin", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) | |
| 3575 | NEO_BIOS_AUDIO_128K( "208-m1.bin", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) /* TC531001 */ | |
| 3575 | 3576 | |
| 3576 | 3577 | ROM_REGION( 0x400000, "ymsnd", 0 ) |
| 3577 | ROM_LOAD( "208-v1.bin", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) ) | |
| 3578 | ROM_LOAD( "208-v1.bin", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) ) /* TC5332204 */ | |
| 3578 | 3579 | |
| 3579 | 3580 | NO_DELTAT_REGION |
| 3580 | 3581 | |
| 3581 | 3582 | ROM_REGION( 0x0c00000, "sprites", 0 ) |
| 3582 | ROM_LOAD16_BYTE( "208-c1.bin", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ | |
| 3583 | ROM_LOAD16_BYTE( "208-c2.bin", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ | |
| 3584 | ROM_LOAD16_BYTE( "208-c3.bin", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ | |
| 3585 | ROM_LOAD16_BYTE( "208-c4.bin", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ | |
| 3583 | ROM_LOAD16_BYTE( "208-c1.bin", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3584 | ROM_LOAD16_BYTE( "208-c2.bin", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3585 | ROM_LOAD16_BYTE( "208-c3.bin", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3586 | ROM_LOAD16_BYTE( "208-c4.bin", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3586 | 3587 | ROM_END |
| 3587 | 3588 | |
| 3588 | 3589 | ROM_START( goalx3 ) /* MVS ONLY RELEASE */ |
| r9535 | r9536 | |
| 3651 | 3652 | |
| 3652 | 3653 | ROM_START( kof96 ) /* MVS VERSION */ |
| 3653 | 3654 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3654 | ROM_LOAD16_WORD_SWAP( "214-p1.bin", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) | |
| 3655 | ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) | |
| 3655 | ROM_LOAD16_WORD_SWAP( "214-p1.bin", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */ | |
| 3656 | ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ | |
| 3656 | 3657 | |
| 3657 | NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) | |
| 3658 | NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ | |
| 3658 | 3659 | |
| 3659 | NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) | |
| 3660 | NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ | |
| 3660 | 3661 | |
| 3661 | 3662 | ROM_REGION( 0xa00000, "ymsnd", 0 ) |
| 3662 | ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) | |
| 3663 | ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) | |
| 3664 | ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) | |
| 3663 | ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ | |
| 3664 | ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ | |
| 3665 | ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ | |
| 3665 | 3666 | |
| 3666 | 3667 | NO_DELTAT_REGION |
| 3667 | 3668 | |
| 3668 | 3669 | ROM_REGION( 0x2000000, "sprites", 0 ) |
| 3669 | ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ | |
| 3670 | ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ | |
| 3671 | ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ | |
| 3672 | ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ | |
| 3673 | ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ | |
| 3674 | ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ | |
| 3675 | ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ | |
| 3676 | ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ | |
| 3670 | ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3671 | ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3672 | ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3673 | ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3674 | ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3675 | ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3676 | ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3677 | ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3677 | 3678 | ROM_END |
| 3678 | 3679 | |
| 3679 | 3680 | ROM_START( kof96h ) |
| 3680 | 3681 | ROM_REGION( 0x300000, "maincpu", 0 ) |
| 3681 | 3682 | ROM_LOAD16_WORD_SWAP( "214-pg1.bin",0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) ) |
| 3682 | ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) | |
| 3683 | ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */ | |
| 3683 | 3684 | |
| 3684 | NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) | |
| 3685 | NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */ | |
| 3685 | 3686 | |
| 3686 | NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) | |
| 3687 | NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */ | |
| 3687 | 3688 | |
| 3688 | 3689 | ROM_REGION( 0xa00000, "ymsnd", 0 ) |
| 3689 | ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) | |
| 3690 | ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) | |
| 3691 | ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) | |
| 3690 | ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */ | |
| 3691 | ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */ | |
| 3692 | ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */ | |
| 3692 | 3693 | |
| 3693 | 3694 | NO_DELTAT_REGION |
| 3694 | 3695 | |
| 3695 | 3696 | ROM_REGION( 0x2000000, "sprites", 0 ) |
| 3696 | ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ | |
| 3697 | ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ | |
| 3698 | ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ | |
| 3699 | ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ | |
| 3700 | ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ | |
| 3701 | ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ | |
| 3702 | ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ | |
| 3703 | ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ | |
| 3697 | ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3698 | ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3699 | ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3700 | ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3701 | ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3702 | ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3703 | ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3704 | ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3704 | 3705 | ROM_END |
| 3705 | 3706 | |
| 3706 | 3707 | ROM_START( ssideki4 ) |
| 3707 | 3708 | ROM_REGION( 0x200000, "maincpu", 0 ) |
| 3708 | ROM_LOAD16_WORD_SWAP( "215-p1.bin", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) | |
| 3709 | ROM_LOAD16_WORD_SWAP( "215-p1.bin", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) /* TC5316200 */ | |
| 3709 | 3710 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 3710 | 3711 | |
| 3711 | NEO_SFIX_128K( "215-s1.bin", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) | |
| 3712 | NEO_SFIX_128K( "215-s1.bin", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) /* TC531000 */ | |
| 3712 | 3713 | |
| 3713 | NEO_BIOS_AUDIO_128K( "215-m1.bin", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) | |
| 3714 | NEO_BIOS_AUDIO_128K( "215-m1.bin", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) /* TC531001 */ | |
| 3714 | 3715 | |
| 3715 | 3716 | ROM_REGION( 0x600000, "ymsnd", 0 ) |
| 3716 | ROM_LOAD( "215-v1.bin", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) | |
| 3717 | ROM_LOAD( "215-v2.bin", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) | |
| 3717 | ROM_LOAD( "215-v1.bin", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) /* TC5332204 */ | |
| 3718 | ROM_LOAD( "215-v2.bin", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) /* TC5316200 */ | |
| 3718 | 3719 | |
| 3719 | 3720 | NO_DELTAT_REGION |
| 3720 | 3721 | |
| 3721 | 3722 | ROM_REGION( 0x1400000, "sprites", 0 ) |
| 3722 | ROM_LOAD16_BYTE( "215-c1.bin", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ | |
| 3723 | ROM_LOAD16_BYTE( "215-c2.bin", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ | |
| 3724 | ROM_LOAD16_BYTE( "215-c3.bin", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ | |
| 3725 | ROM_LOAD16_BYTE( "215-c4.bin", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ | |
| 3726 | ROM_LOAD16_BYTE( "215-c5.bin", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ | |
| 3727 | ROM_LOAD16_BYTE( "215-c6.bin", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ | |
| 3723 | ROM_LOAD16_BYTE( "215-c1.bin", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3724 | ROM_LOAD16_BYTE( "215-c2.bin", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3725 | ROM_LOAD16_BYTE( "215-c3.bin", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3726 | ROM_LOAD16_BYTE( "215-c4.bin", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3727 | ROM_LOAD16_BYTE( "215-c5.bin", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ /* TC5316200 */ | |
| 3728 | ROM_LOAD16_BYTE( "215-c6.bin", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ /* TC5316200 */ | |
| 3728 | 3729 | ROM_END |
| 3729 | 3730 | |
| 3730 | 3731 | ROM_START( kizuna ) |
| r9535 | r9536 | |
| 3853 | 3854 | |
| 3854 | 3855 | ROM_START( samsho4 ) |
| 3855 | 3856 | ROM_REGION( 0x500000, "maincpu", 0 ) |
| 3856 | ROM_LOAD16_WORD_SWAP( "222-p1.bin", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) | |
| 3857 | ROM_LOAD16_WORD_SWAP( "222-p2.bin", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) | |
| 3857 | ROM_LOAD16_WORD_SWAP( "222-p1.bin", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) /* TC538200 */ | |
| 3858 | ROM_LOAD16_WORD_SWAP( "222-p2.bin", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */ | |
| 3858 | 3859 | |
| 3859 | NEO_SFIX_128K( "222-s1.bin", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) | |
| 3860 | NEO_SFIX_128K( "222-s1.bin", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) /* TC531000 */ | |
| 3860 | 3861 | |
| 3861 | NEO_BIOS_AUDIO_128K( "222-m1.bin", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) | |
| 3862 | NEO_BIOS_AUDIO_128K( "222-m1.bin", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */ | |
| 3862 | 3863 | |
| 3863 | 3864 | ROM_REGION( 0xa00000, "ymsnd", 0 ) |
| 3864 | ROM_LOAD( "222-v1.bin", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) | |
| 3865 | ROM_LOAD( "222-v2.bin", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) | |
| 3866 | ROM_LOAD( "222-v3.bin", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) | |
| 3865 | ROM_LOAD( "222-v1.bin", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */ | |
| 3866 | ROM_LOAD( "222-v2.bin", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */ | |
| 3867 | ROM_LOAD( "222-v3.bin", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */ | |
| 3867 | 3868 | |
| 3868 | 3869 | NO_DELTAT_REGION |
| 3869 | 3870 | |
| 3870 | 3871 | ROM_REGION( 0x2000000, "sprites", 0 ) |
| 3871 | ROM_LOAD16_BYTE( "222-c1.bin", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ | |
| 3872 | ROM_LOAD16_BYTE( "222-c2.bin", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ | |
| 3873 | ROM_LOAD16_BYTE( "222-c3.bin", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ | |
| 3874 | ROM_LOAD16_BYTE( "222-c4.bin", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ | |
| 3875 | ROM_LOAD16_BYTE( "222-c5.bin", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ | |
| 3876 | ROM_LOAD16_BYTE( "222-c6.bin", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ | |
| 3877 | ROM_LOAD16_BYTE( "222-c7.bin", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ | |
| 3878 | ROM_LOAD16_BYTE( "222-c8.bin", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ | |
| 3872 | ROM_LOAD16_BYTE( "222-c1.bin", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3873 | ROM_LOAD16_BYTE( "222-c2.bin", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3874 | ROM_LOAD16_BYTE( "222-c3.bin", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3875 | ROM_LOAD16_BYTE( "222-c4.bin", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3876 | ROM_LOAD16_BYTE( "222-c5.bin", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3877 | ROM_LOAD16_BYTE( "222-c6.bin", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3878 | ROM_LOAD16_BYTE( "222-c7.bin", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */ | |
| 3879 | ROM_LOAD16_BYTE( "222-c8.bin", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */ | |
| 3879 | 3880 | ROM_END |
| 3880 | 3881 | |
| 3881 | 3882 | ROM_START( samsho4k ) /* Uses PCBs "NEO-MVS PROGBK1" and "NEO-MVS CHA256 B" */ |
| r9535 | r9536 | |
| 4081 | 4082 | |
| 4082 | 4083 | NO_DELTAT_REGION |
| 4083 | 4084 | |
| 4084 | ROM_REGION( 0x | |
| 4085 | ROM_REGION( 0x600000, "sprites", 0 ) | |
| 4085 | 4086 | ROM_LOAD16_BYTE( "231-c1.bin", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) ) /* Plane 0,1 */ |
| 4086 | 4087 | ROM_LOAD16_BYTE( "231-c2.bin", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) ) /* Plane 2,3 */ |
| 4087 | ROM_LOAD16_BYTE( "231-c3.bin", 0x400000, 0x080000, CRC(14524eb5) SHA1(e090b99a1ee2cca4a7f7d5262e764d1cab6bada2) ) /* Plane 0,1 */ | |
| 4088 | ROM_LOAD16_BYTE( "231-c4.bin", 0x400001, 0x080000, CRC(1694f171) SHA1(a6af5d3f1e0b3f73da275e04d4434c6c9c7b9208) ) /* Plane 2,3 */ | |
| 4088 | ROM_LOAD16_BYTE( "231-c3.bin", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) ) /* Plane 0,1 */ | |
| 4089 | ROM_LOAD16_BYTE( "231-c4.bin", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) ) /* Plane 2,3 */ | |
| 4089 | 4090 | ROM_END |
| 4090 | 4091 | |
| 4091 | 4092 | ROM_START( kof97 ) /* MVS VERSION */ |
| r9535 | r9536 | |
| 4697 | 4698 | |
| 4698 | 4699 | ROM_START( flipshot ) /* MVS ONLY RELEASE */ |
| 4699 | 4700 | ROM_REGION( 0x100000, "maincpu", 0 ) |
| 4700 | ROM_LOAD16_WORD_SWAP( "247-p1.bin", 0x000000, 0x0 | |
| 4701 | ROM_LOAD16_WORD_SWAP( "247-p1.bin", 0x000000, 0x10 | |
| 4701 | 4702 | |
| 4702 | 4703 | NEO_SFIX_128K( "247-s1.bin", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) ) |
| 4703 | 4704 |
| r9535 | r9536 | |
|---|---|---|
| 9 | 9 | |
| 10 | 10 | Games running on this hardware: |
| 11 | 11 | |
| 12 | * Mega Double Poker (conversion kit). 1990, Blitz System Inc. | |
| 12 | * Mega Double Poker (conversion kit, set 1). 1990, Blitz System Inc. | |
| 13 | * Mega Double Poker (conversion kit, set 2). 1990, Blitz System Inc. | |
| 13 | 14 | |
| 14 | 15 | |
| 15 | 16 | ******************************************************************************* |
| r9535 | r9536 | |
| 154 | 155 | |
| 155 | 156 | CPU R6502AP (U6) |
| 156 | 157 | .--------\ /--------. |
| 157 | MCU (01-05-07), MEGA-2 (14-20), MEGA-3 (14-20) ---|01 VSS | |
| 158 | MCU (01-05-07), MEGA-2 (14-20), MEGA-3 (14-20) ---|01 VSS ' /RES 40|--- | |
| 158 | 159 | MCU (02) ---|02 RDY PH2(O) 39|--- |
| 159 | 160 | MCU (04) ---|03 PH1(O) /SO 38|--- |
| 160 | 161 | ---|04 /IRQ PH0(I) 37|--- |
| r9535 | r9536 | |
| 179 | 180 | |
| 180 | 181 | MCU MC68705P5S (U1) |
| 181 | 182 | .--------\ /--------. |
| 182 | MEGA-2 (12, 20), MEGA-3 (12, 20) ---|01 VSS | |
| 183 | MEGA-2 (12, 20), MEGA-3 (12, 20) ---|01 VSS ' /RES 28|--- | |
| 183 | 184 | CPU (02) ---|02 /INT PA7 27|--- |
| 184 | 185 | MEGA-2 (01, 28), MEGA-3 (01, 28) ---|03 VCC PA6 26|--- |
| 185 | 186 | CPU (03) ---|04 EXTAL PA5 25|--- |
| r9535 | r9536 | |
| 198 | 199 | |
| 199 | 200 | MEGA-2 27C256 (U2) |
| 200 | 201 | .-------\ /-------. |
| 201 | ---|01 VPP | |
| 202 | ---|01 VPP ' VCC 28|--- | |
| 202 | 203 | ---|02 A12 A14 27|--- |
| 203 | 204 | ---|03 A7 A13 26|--- |
| 204 | 205 | ---|04 A6 A8 25|--- |
| r9535 | r9536 | |
| 217 | 218 | |
| 218 | 219 | MEGA-3 27C256 (U3) |
| 219 | 220 | .-------\ /-------. |
| 220 | ---|01 VPP | |
| 221 | ---|01 VPP ' VCC 28|--- | |
| 221 | 222 | ---|02 A12 A14 27|--- |
| 222 | 223 | ---|03 A7 A13 26|--- |
| 223 | 224 | ---|04 A6 A8 25|--- |
| r9535 | r9536 | |
| 837 | 838 | ROM_LOAD( "m3-7611-5.7d", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) |
| 838 | 839 | ROM_END |
| 839 | 840 | |
| 841 | /* | |
| 840 | 842 | |
| 843 | manufacturer : Blitz system | |
| 844 | Game name : Mega Double Poker | |
| 845 | Platform : Bonanza golden poker interface | |
| 846 | ||
| 847 | ||
| 848 | BoardID | |
| 849 | BO-BL-01 | |
| 850 | ||
| 851 | Protection: U11 MC68705P5S microcontroller with window | |
| 852 | ||
| 853 | maincpu: | |
| 854 | U6 UM6502 | |
| 855 | U5 MK48T02B-15 time/clock backup ram | |
| 856 | ||
| 857 | U2.bin 27C256 ROM | |
| 858 | U3.bin 27C256 ROM | |
| 859 | ||
| 860 | Graphics ic | |
| 861 | car1_5a.bin 27C32 ROM | |
| 862 | car2_4a.bin 27C32 ROM | |
| 863 | car3_2a.bin 27C32 ROM | |
| 864 | ||
| 865 | ||
| 866 | note : MC68705P5S is protected | |
| 867 | ||
| 868 | */ | |
| 869 | ||
| 870 | ROM_START( megadpkrb ) | |
| 871 | ROM_REGION( 0x10000, "maincpu", 0 ) /* program ROM */ | |
| 872 | ROM_LOAD( "u2.bin", 0x8000, 0x8000, CRC(0efdf472) SHA1(4b1ae10427c2ae8d7cbbe525a6b30973372d4420) ) | |
| 873 | ||
| 874 | /* sharing the same space, but not totally understood... banked through MCU? */ | |
| 875 | ROM_REGION( 0x10000, "cpubank", 0 ) | |
| 876 | ROM_LOAD( "u3.bin", 0x8000, 0x8000, CRC(c973e345) SHA1(aae9da8cbaf0cf07086e5acacf9052e49fbdd896) ) | |
| 877 | ||
| 878 | ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the undumped 68705 microcontroller */ | |
| 879 | ROM_LOAD( "u11.bin", 0x0000, 0x0800, NO_DUMP ) | |
| 880 | ||
| 881 | ROM_REGION( 0x3000, "gfx1", 0 ) | |
| 882 | ROM_FILL( 0x0000, 0x2000, 0 ) /* filling the R-G bitplanes */ | |
| 883 | ROM_LOAD( "car1_5a.bin", 0x2000, 0x1000, CRC(29e244d2) SHA1(c309a5ee6922bf2752d218c134edb3ef5f808afa) ) /* text chars / cards deck gfx, bitplane3 */ | |
| 884 | ||
| 885 | ROM_REGION( 0x3000, "gfx2", 0 ) | |
| 886 | ROM_LOAD( "car3_2a.bin", 0x0000, 0x1000, CRC(819c06c4) SHA1(45b874554fb487173acf12daa4ff99e49e335362) ) /* cards deck gfx, bitplane1 */ | |
| 887 | ROM_LOAD( "car2_4a.bin", 0x1000, 0x1000, CRC(41eec680) SHA1(3723f66e1def3908f2e6ba2989def229d9846b02) ) /* cards deck gfx, bitplane2 */ | |
| 888 | ROM_COPY( "gfx1", 0x2800, 0x2000, 0x0800 ) /* cards deck gfx, bitplane3. found in the 2nd quarter of the chars rom */ | |
| 889 | ||
| 890 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 891 | ROM_LOAD( "m3-7611-5.7d", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) | |
| 892 | ROM_END | |
| 893 | ||
| 894 | ||
| 841 | 895 | /********************************************* |
| 842 | 896 | * Game Drivers * |
| 843 | 897 | *********************************************/ |
| 844 | 898 | |
| 845 | /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ | |
| 846 | GAME( 1990, megadpkr, 0, megadpkr, megadpkr, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit)", GAME_NO_SOUND | GAME_NOT_WORKING ) | |
| 899 | /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */ | |
| 900 | GAME( 1990, megadpkr, 0, megadpkr, megadpkr, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 1)", GAME_NO_SOUND | GAME_NOT_WORKING ) | |
| 901 | GAME( 1990, megadpkrb, megadpkr, megadpkr, megadpkr, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 2)", GAME_NO_SOUND | GAME_NOT_WORKING ) |
| r9535 | r9536 | |
|---|---|---|
| 8 | 8 | * Cheese Chase |
| 9 | 9 | * Ultimate Tennis |
| 10 | 10 | * Stone Ball |
| 11 | * Shooting Star (not emulated) | |
| 11 | 12 | |
| 12 | 13 | Known bugs: |
| 13 | 14 | * measured against a real PCB, the games run slightly too fast |
| r9535 | r9536 | |
| 24 | 25 | #include "emu.h" |
| 25 | 26 | #include "cpu/m68000/m68000.h" |
| 26 | 27 | #include "cpu/tms34010/tms34010.h" |
| 28 | #include "cpu/mcs51/mcs51.h" | |
| 27 | 29 | #include "video/tlc34076.h" |
| 28 | 30 | #include "includes/artmagic.h" |
| 29 | 31 | #include "sound/okim6295.h" |
| r9535 | r9536 | |
| 461 | 463 | AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w) |
| 462 | 464 | ADDRESS_MAP_END |
| 463 | 465 | |
| 466 | static READ16_HANDLER(unk_r) | |
| 467 | { | |
| 468 | return mame_rand(space->machine); | |
| 469 | } | |
| 464 | 470 | |
| 471 | static ADDRESS_MAP_START( shtstar_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 472 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 473 | AM_RANGE(0x200000, 0x27ffff) AM_RAM | |
| 474 | AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("nvram") | |
| 465 | 475 | |
| 476 | AM_RANGE(0x3c0000, 0x3c0001) AM_READ_PORT("3c0000") | |
| 477 | AM_RANGE(0x3c0002, 0x3c0003) AM_READ_PORT("3c0002") | |
| 478 | AM_RANGE(0x3c0004, 0x3c0005) AM_READ_PORT("3c0004") | |
| 479 | AM_RANGE(0x3c0006, 0x3c0007) AM_READ_PORT("3c0006") | |
| 480 | AM_RANGE(0x3c0008, 0x3c0009) AM_READ_PORT("3c0008") | |
| 481 | AM_RANGE(0x3c000a, 0x3c000b) AM_READ_PORT("3c000a") | |
| 482 | ||
| 483 | AM_RANGE(0x3c0012, 0x3c0013) AM_READ(unk_r) | |
| 484 | AM_RANGE(0x3c0014, 0x3c0015) AM_NOP | |
| 485 | ||
| 486 | AM_RANGE(0x300000, 0x300003) AM_WRITE(control_w) AM_BASE(&control) | |
| 487 | AM_RANGE(0x3c0004, 0x3c0007) AM_WRITE(protection_bit_w) | |
| 488 | AM_RANGE(0x340000, 0x340001) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff) | |
| 489 | AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w) | |
| 490 | ADDRESS_MAP_END | |
| 491 | ||
| 492 | ||
| 466 | 493 | /************************************* |
| 467 | 494 | * |
| 468 | 495 | * Slave CPU memory handlers |
| r9535 | r9536 | |
| 501 | 528 | AM_RANGE(0xffc00000, 0xffffffff) AM_RAM |
| 502 | 529 | ADDRESS_MAP_END |
| 503 | 530 | |
| 531 | /************************************* | |
| 532 | * | |
| 533 | * Extra CPU memory handlers | |
| 534 | * (Shooting Star) | |
| 535 | * | |
| 536 | *************************************/ | |
| 504 | 537 | |
| 538 | /* see adp.c */ | |
| 539 | static ADDRESS_MAP_START( shtstar_subcpu_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 540 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 541 | AM_RANGE(0xffc000, 0xffffff) AM_RAM | |
| 542 | ADDRESS_MAP_END | |
| 505 | 543 | |
| 544 | static ADDRESS_MAP_START( shtstar_guncpu_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 545 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 546 | ADDRESS_MAP_END | |
| 547 | ||
| 548 | static ADDRESS_MAP_START( shtstar_guncpu_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 549 | AM_RANGE(0xc000, 0xcfff) AM_RAM | |
| 550 | ADDRESS_MAP_END | |
| 551 | ||
| 552 | ||
| 506 | 553 | /************************************* |
| 507 | 554 | * |
| 508 | 555 | * Port definitions |
| r9535 | r9536 | |
| 700 | 747 | INPUT_PORTS_END |
| 701 | 748 | |
| 702 | 749 | |
| 750 | static INPUT_PORTS_START( shtstar ) | |
| 751 | ||
| 752 | PORT_START("3c0000") | |
| 753 | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) | |
| 754 | PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) | |
| 755 | PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) | |
| 756 | PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) | |
| 757 | PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START1 ) | |
| 758 | PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 759 | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 760 | PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 761 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 762 | ||
| 763 | PORT_START("3c0002") | |
| 764 | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) | |
| 765 | PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) | |
| 766 | PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) | |
| 767 | PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) | |
| 768 | PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START2 ) | |
| 769 | PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 770 | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 771 | PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 772 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 773 | ||
| 774 | PORT_START("3c0004") | |
| 775 | PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SWB:8" ) /* Listed as "Unused" */ | |
| 776 | PORT_DIPNAME( 0x0006, 0x0004, DEF_STR( Language ) ) PORT_DIPLOCATION("SWB:6,7") | |
| 777 | PORT_DIPSETTING( 0x0000, DEF_STR( French ) ) | |
| 778 | PORT_DIPSETTING( 0x0002, DEF_STR( Italian ) ) | |
| 779 | PORT_DIPSETTING( 0x0004, DEF_STR( English ) ) | |
| 780 | PORT_DIPSETTING( 0x0006, DEF_STR( German ) ) | |
| 781 | PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Lives )) PORT_DIPLOCATION("SWB:4,5") | |
| 782 | PORT_DIPSETTING( 0x0008, "3" ) | |
| 783 | PORT_DIPSETTING( 0x0018, "4" ) | |
| 784 | PORT_DIPSETTING( 0x0000, "5" ) | |
| 785 | PORT_DIPSETTING( 0x0010, "6" ) | |
| 786 | PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SWB:3") | |
| 787 | PORT_DIPSETTING( 0x0020, DEF_STR( Off )) | |
| 788 | PORT_DIPSETTING( 0x0000, DEF_STR( On )) | |
| 789 | PORT_DIPNAME( 0x00c0, 0x0040, DEF_STR( Difficulty )) PORT_DIPLOCATION("SWB:1,2") | |
| 790 | PORT_DIPSETTING( 0x00c0, DEF_STR( Easy ) ) | |
| 791 | PORT_DIPSETTING( 0x0040, DEF_STR( Normal ) ) | |
| 792 | PORT_DIPSETTING( 0x0080, DEF_STR( Hard ) ) | |
| 793 | PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) | |
| 794 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 795 | ||
| 796 | PORT_START("3c0006") | |
| 797 | PORT_DIPNAME( 0x0007, 0x0007, "Right Coinage" ) PORT_DIPLOCATION("SWA:6,7,8") | |
| 798 | PORT_DIPSETTING( 0x0002, DEF_STR( 6C_1C )) | |
| 799 | PORT_DIPSETTING( 0x0006, DEF_STR( 5C_1C )) | |
| 800 | PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C )) | |
| 801 | PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C )) | |
| 802 | PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C )) | |
| 803 | PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C )) | |
| 804 | PORT_DIPSETTING( 0x0004, DEF_STR( 1C_2C )) | |
| 805 | PORT_DIPSETTING( 0x0000, DEF_STR( 1C_4C )) | |
| 806 | PORT_DIPNAME( 0x0038, 0x0038, "Left Coinage" ) PORT_DIPLOCATION("SWA:3,4,5") | |
| 807 | PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C )) | |
| 808 | PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C )) | |
| 809 | PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C )) | |
| 810 | PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C )) | |
| 811 | PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C )) | |
| 812 | PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C )) | |
| 813 | PORT_DIPSETTING( 0x0030, DEF_STR( 1C_5C )) | |
| 814 | PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C )) | |
| 815 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play )) PORT_DIPLOCATION("SWA:2") | |
| 816 | PORT_DIPSETTING( 0x0040, DEF_STR( Off )) | |
| 817 | PORT_DIPSETTING( 0x0000, DEF_STR( On )) | |
| 818 | PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "SWA:1" ) | |
| 819 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 820 | ||
| 821 | PORT_START("3c0008") | |
| 822 | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN1 ) | |
| 823 | PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_COIN2 ) | |
| 824 | PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_COIN3 ) | |
| 825 | PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN4 ) | |
| 826 | PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 827 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 828 | ||
| 829 | PORT_START("3c000a") | |
| 830 | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL) /* protection data */ | |
| 831 | PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* protection ready */ | |
| 832 | PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 833 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 834 | INPUT_PORTS_END | |
| 835 | ||
| 836 | ||
| 703 | 837 | /************************************* |
| 704 | 838 | * |
| 705 | 839 | * Machine driver |
| r9535 | r9536 | |
| 758 | 892 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) |
| 759 | 893 | MACHINE_CONFIG_END |
| 760 | 894 | |
| 895 | static MACHINE_CONFIG_DERIVED( shtstar, artmagic ) | |
| 761 | 896 | |
| 897 | MDRV_CPU_MODIFY("maincpu") | |
| 898 | MDRV_CPU_PROGRAM_MAP(shtstar_map) | |
| 762 | 899 | |
| 900 | /* sub cpu*/ | |
| 901 | MDRV_CPU_ADD("subcpu", M68000, MASTER_CLOCK_25MHz/2) | |
| 902 | MDRV_CPU_PROGRAM_MAP(shtstar_subcpu_map) | |
| 903 | ||
| 904 | /*gun board cpu*/ | |
| 905 | MDRV_CPU_ADD("guncpu", I80C31, 6000000) | |
| 906 | MDRV_CPU_IO_MAP(shtstar_guncpu_io_map) | |
| 907 | MDRV_CPU_PROGRAM_MAP(shtstar_guncpu_map) | |
| 908 | ||
| 909 | MACHINE_CONFIG_END | |
| 910 | ||
| 911 | ||
| 912 | ||
| 763 | 913 | /************************************* |
| 764 | 914 | * |
| 765 | 915 | * ROM definition(s) |
| r9535 | r9536 | |
| 873 | 1023 | ROM_LOAD( "u1801.bin", 0x00000, 0x80000, CRC(d98f7378) SHA1(700df7f29c039b96791c2704a67f01a722dc96dc) ) |
| 874 | 1024 | ROM_END |
| 875 | 1025 | |
| 1026 | /* | |
| 876 | 1027 | |
| 1028 | Shooting Star: | |
| 877 | 1029 | |
| 1030 | - Small pcb "gewehr controller" (gun controller) adp 1994 | |
| 1031 | romless MCU 80c31BH-3 16P philips | |
| 1032 | 27c256 eprom "2207 7b42c5" | |
| 1033 | LC36648L-10 | |
| 1034 | 8 connectors | |
| 1035 | 3X led | |
| 1036 | osc 12.0000M | |
| 1037 | ||
| 1038 | - common adp cpu board adp 1994.12 | |
| 1039 | MC68ec0000FN8 | |
| 1040 | 2x 27c1001 eproms | |
| 1041 | 2x mk48t08b-15 timekeeper RAM | |
| 1042 | ||
| 1043 | - common adp i/o board (see adp.c ) with MC68681 an YM2149F | |
| 1044 | ||
| 1045 | - lamp board with triacs | |
| 1046 | ||
| 1047 | - a couple of tiny boards with some logic parts | |
| 1048 | ||
| 1049 | - Art & Magic jamma pcb, 11 connectors (jamma not connected) "am005c0494 0310" | |
| 1050 | MC68000p12 | |
| 1051 | TMS34010fnl-40 | |
| 1052 | fpga actel a1020a pl84c 16b.u110 | |
| 1053 | cpld xilinx xc7236a 0 25 15b.u111 | |
| 1054 | MC68681p | |
| 1055 | ramdac adv476kn80e 03-56 os | |
| 1056 | Oki M6295 | |
| 1057 | 25.000mhz | |
| 1058 | 40.000mhz | |
| 1059 | ||
| 1060 | 13 pals/gals (not dumped) labelled: | |
| 1061 | a&m005c0494 06a u126 | |
| 1062 | a&m005c0494 03a u125 | |
| 1063 | a&m005c0494 02a u307 | |
| 1064 | a&m005c0494 18a u306 | |
| 1065 | a&m005c0494 17a u305 | |
| 1066 | a&m005c0494 05a u206 | |
| 1067 | a&m005c0494 01a u205 | |
| 1068 | a&m005c0494 04a u601 | |
| 1069 | a&m005c0494 08a u916 | |
| 1070 | a&m005c0494 07a u705 | |
| 1071 | a&m005c0494 10a u917 | |
| 1072 | a&m005c0494 09a u903 | |
| 1073 | a&m005c0494 11a u112 | |
| 1074 | ||
| 1075 | 27c2001 near oki "a&m005c0494 12a" | |
| 1076 | 2x 27c010 68k labelled u101 and u102 | |
| 1077 | 2x 27c040 "a&m005c0494 13a" and "a&m005c0494 14a" | |
| 1078 | ||
| 1079 | ||
| 1080 | Shooting Star | |
| 1081 | Nova (Art & Magic ?), 1994 | |
| 1082 | ||
| 1083 | PCB No: AM005C0494 0310 | |
| 1084 | CPUs : TMS34010FNL-40, MC68000P12 | |
| 1085 | SND : OKI M6295 | |
| 1086 | OSC : 40.000MHz, 25.000MHz | |
| 1087 | ||
| 1088 | ||
| 1089 | */ | |
| 1090 | ||
| 1091 | ||
| 1092 | ROM_START( shtstar ) | |
| 1093 | ROM_REGION( 0x80000, "maincpu", 0 ) | |
| 1094 | ROM_LOAD16_BYTE( "rom.u102", 0x00000, 0x20000, CRC(cce9877e) SHA1(3e2b3b29d5dd73bfe0c7faf84309b50adbcded3b) ) | |
| 1095 | ROM_LOAD16_BYTE( "rom.u101", 0x00001, 0x20000, CRC(3a330d9d) SHA1(0f3cd75e9e5483e3cf51f0c4eb4f15b6c3b33b67) ) | |
| 1096 | ||
| 1097 | ROM_REGION( 0x40000, "subcpu", 0 ) | |
| 1098 | ROM_LOAD16_BYTE( "shooting_star_f1_i.u2", 0x00000, 0x20000, CRC(2780d8d6) SHA1(a8db3a9771f6918eb8bb3b94db82ca8ada2aae7d) ) | |
| 1099 | ROM_LOAD16_BYTE( "shooting_star_f1_ii.u7", 0x00001, 0x20000, CRC(0d127d9c) SHA1(e9d209901e55a743a4916c850083caa23c5ebb39) ) | |
| 1100 | ||
| 1101 | /* 80c31 MCU */ | |
| 1102 | ROM_REGION( 0x10000, "guncpu", 0 ) | |
| 1103 | ROM_LOAD( "2207_7b42c5.u6", 0x00000, 0x8000, CRC(6dd4b4ed) SHA1(b37e9e5ddfb5d88c5412dc79643adfc4362fbb46) ) | |
| 1104 | ||
| 1105 | ROM_REGION16_LE( 0x100000, "gfx1", 0 ) | |
| 1106 | ROM_LOAD( "a&m005c0494_13a.u134", 0x00000, 0x80000, CRC(f101136a) SHA1(9ff7275e0c1fc41f3d97ae0bd628581e2803910a) ) | |
| 1107 | ROM_LOAD( "a&m005c0494_14a.u135", 0x80000, 0x80000, CRC(3e847f8f) SHA1(c99159951303b7f752305fa8e7e6d4bfb4fc54ba) ) | |
| 1108 | ||
| 1109 | ROM_REGION( 0x80000, "oki", 0 ) | |
| 1110 | ROM_LOAD( "a&m005c0494_12a.u151", 0x00000, 0x40000, CRC(2df3db1e) SHA1(d2e588db577de6fd527cd496f5eae9964d557da3) ) | |
| 1111 | ||
| 1112 | ROM_REGION( 0x1a00, "plds", 0 ) | |
| 1113 | ROM_LOAD( "a&m005c0494_06a.u126", 0x0000, 0x0200, NO_DUMP ) | |
| 1114 | ROM_LOAD( "a&m005c0494_03a.u125", 0x0200, 0x0200, NO_DUMP ) | |
| 1115 | ROM_LOAD( "a&m005c0494_02a.u307", 0x0400, 0x0200, NO_DUMP ) | |
| 1116 | ROM_LOAD( "a&m005c0494_18a.u306", 0x0600, 0x0200, NO_DUMP ) | |
| 1117 | ROM_LOAD( "a&m005c0494_17a.u305", 0x0800, 0x0200, NO_DUMP ) | |
| 1118 | ROM_LOAD( "a&m005c0494_05a.u206", 0x0a00, 0x0200, NO_DUMP ) | |
| 1119 | ROM_LOAD( "a&m005c0494_01a.u205", 0x0c00, 0x0200, NO_DUMP ) | |
| 1120 | ROM_LOAD( "a&m005c0494_04a.u601", 0x0e00, 0x0200, NO_DUMP ) | |
| 1121 | ROM_LOAD( "a&m005c0494_08a.u916", 0x1000, 0x0200, NO_DUMP ) | |
| 1122 | ROM_LOAD( "a&m005c0494_07a.u705", 0x1200, 0x0200, NO_DUMP ) | |
| 1123 | ROM_LOAD( "a&m005c0494_10a.u917", 0x1400, 0x0200, NO_DUMP ) | |
| 1124 | ROM_LOAD( "a&m005c0494_09a.u903", 0x1600, 0x0200, NO_DUMP ) | |
| 1125 | ROM_LOAD( "a&m005c0494_11a.u112", 0x1800, 0x0200, NO_DUMP ) | |
| 1126 | ||
| 1127 | ROM_END | |
| 1128 | ||
| 1129 | ||
| 1130 | ||
| 878 | 1131 | /************************************* |
| 879 | 1132 | * |
| 880 | 1133 | * Driver initialization |
| r9535 | r9536 | |
| 939 | 1192 | protection_handler = stonebal_protection; |
| 940 | 1193 | } |
| 941 | 1194 | |
| 1195 | static DRIVER_INIT( shtstar ) | |
| 1196 | { | |
| 1197 | /* wrong */ | |
| 1198 | decrypt_ultennis(); | |
| 1199 | artmagic_is_stoneball =0; | |
| 1200 | protection_handler = stonebal_protection; | |
| 1201 | } | |
| 942 | 1202 | |
| 943 | 1203 | |
| 1204 | ||
| 944 | 1205 | /************************************* |
| 945 | 1206 | * |
| 946 | 1207 | * Game driver(s) |
| r9535 | r9536 | |
| 952 | 1213 | GAME( 1994, cheesech, 0, cheesech, cheesech, cheesech, ROT0, "Art & Magic", "Cheese Chase", GAME_SUPPORTS_SAVE ) |
| 953 | 1214 | GAME( 1994, stonebal, 0, stonebal, stonebal, stonebal, ROT0, "Art & Magic", "Stone Ball (4 Players)", GAME_SUPPORTS_SAVE ) |
| 954 | 1215 | GAME( 1994, stonebal2,stonebal, stonebal, stoneba2, stonebal, ROT0, "Art & Magic", "Stone Ball (2 Players)", GAME_SUPPORTS_SAVE ) |
| 1216 | GAME( 1994, shtstar, 0, shtstar, shtstar, shtstar, ROT0, "Nova", "Shooting Star", GAME_NOT_WORKING ) | |
| 1217 | ||
| 1218 |
| r9535 | r9536 | |
|---|---|---|
| 10 | 10 | Custom: TC17G032AP-0246 (blitter) |
| 11 | 11 | |
| 12 | 12 | --------------------------------------------------------------------------------------------------------------------- |
| 13 | Year + Game Main Board Sub Board CPU Sound Clock Color Notes | |
| 13 | Year + Game Main Board Sub Board CPU Sound Clock Color Notes | |
| 14 | 14 | --------------------------------------------------------------------------------------------------------------------- |
| 15 | 88 Hana no Mai D1610088L1 Z80 AY8912 YM2203 M5205 PROM | |
| 16 | 88 Hana Kochou D201901L2 D201901L1-0 Z80 AY8912 YM2203 M5205 PROM | |
| 17 | 89 Hana Oriduru D2304268L Z80 AY8912 YM2413 M5205 RAM | |
| 18 | 89 Dragon Punch D24? Z80 YM2203 PROM | |
| 19 | 89 Mj Friday D2607198L1 Z80 YM2413 PROM | |
| 20 | 89 Mj Gekisha D2809218L-1 D2809218L-2 TLCS YM2413 PROM Battery | |
| 21 | 89 Sports Match D31? Z80 YM2203 PROM | |
| 22 | 90 Jong Tou Ki D1505178-A D2711078L-B Z80*2 AY8912 YM2203 M5205 PROM 2 x Blitter | |
| 23 | 90 Mj Campus Hunting D3312108L1-1 D23SUB1 Z80 AY8912 YM2413 M5205 RAM | |
| 24 | 90 Hana Jingi no number D3312108L1-2 Z80 AY8912 YM2413 M5205 RAM | |
| 25 | 90 7jigen no Youseitachi D3707198L1 D23SUB1 Z80 AY8912 YM2413 M5205 RAM | |
| 26 | 90 Mj Electron Base Z80 AY8912 YM2413 RAM | |
| 27 | 90 Mj X-Tal/Diamond 7 D4005208L1-1 D23SUB Z80 AY8912 YM2413 M5205 RAM | |
| 28 | 90 Neruton Haikujiradan D4005208L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 RAM | |
| 29 | 91 Mj Dial Q2 D5212298L-1 Z80 YM2413 PROM | |
| 30 | 91 Mj Yarunara D5512068L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001 | |
| 31 | 91 Hana wo Yaraneba! D5512068L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001, Battery | |
| 32 | 91 Mj Angels D5512068L1-1 D6107068L-1 Z80 AY8912 YM2413 M5205 RAM | |
| 33 | 91 Mj Comic Gekijou V.1 D5512068L1-1 D6107068L-1 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001, Battery | |
| 34 | 91 Mj Tenkaigen TLCS AY8910 YM2413 M6242 RAM Protection, Battery | |
| 35 | 92 Quiz TV Gassyuukoku D5512068L1-2 D6410288L-1 Z80 AY8912 YM2413 M5205 RAM | |
| 36 | 92 Hanafuda Hana Tengoku D6502208L1 D6107068L-1 Z80 AY8910 YM2413 M6242 RAM | |
| 37 | 94 Mj Reach (bootleg) bootleg TLCS AY8910 YM2413 M6242 PROM Battery | |
| 38 | 94 Maya Z80 YM2203 PROM | |
| 39 | 96 Mj Raijinhai DX D10010318L1 D10502168 TLCS AY8910 M6242 PROM Undumped TMP91P640 Code, Battery | |
| 40 | 9? Inca Z80 YM2203 PROM | |
| 15 | 88 Hana no Mai D1610088L1 Z80 AY8912 YM2203 M5205 PROM | |
| 16 | 88 Hana Kochou D201901L2 D201901L1-0 Z80 AY8912 YM2203 M5205 PROM | |
| 17 | 89 Hana Oriduru D2304268L Z80 AY8912 YM2413 M5205 RAM | |
| 18 | 89 Dragon Punch D24? Z80 YM2203 PROM | |
| 19 | 89 Mj Friday D2607198L1 Z80 YM2413 PROM | |
| 20 | 89 Mj Gekisha D2809218L-1 D2809218L-2 TLCS YM2413 PROM Battery | |
| 21 | 89 Sports Match D31? Z80 YM2203 PROM | |
| 22 | 90 Jong Tou Ki D1505178-A D2711078L-B Z80*2 AY8912 YM2203 M5205 PROM 2 x Blitter | |
| 23 | 90 Mj Campus Hunting D3312108L1-1 D23SUB1 Z80 AY8912 YM2413 M5205 RAM | |
| 24 | 90 Hana Jingi no number D3312108L1-2 Z80 AY8912 YM2413 M5205 RAM | |
| 25 | 90 7jigen no Youseitachi D3707198L1 D23SUB1 Z80 AY8912 YM2413 M5205 RAM | |
| 26 | 90 Mj Electron Base Z80 AY8912 YM2413 RAM | |
| 27 | 90 Mj X-Tal/Diamond 7 D4005208L1-1 D23SUB Z80 AY8912 YM2413 M5205 RAM | |
| 28 | 90 Mj Neruton Haikujiradan D4005208L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 RAM | |
| 29 | 91 Mj Dial Q2 D5212298L-1 Z80 YM2413 PROM | |
| 30 | 91 Mj Yarunara D5512068L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001 | |
| 31 | 91 Hana wo Yaraneba! D5512068L1-1 D4508308L-2 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001, Battery | |
| 32 | 91 Mj Angels D5512068L1-1 D6107068L-1 Z80 AY8912 YM2413 M5205 RAM | |
| 33 | 91 Mj Comic Gekijou V.1 D5512068L1-1 D6107068L-1 Z80 AY8912 YM2413 M5205 M6242 RAM NL-001, Battery | |
| 34 | 91 Mj Tenkaigen TLCS AY8910 YM2413 M6242 RAM Protection, Battery | |
| 35 | 92 Quiz TV Gassyuukoku D5512068L1-2 D6410288L-1 Z80 AY8912 YM2413 M5205 RAM | |
| 36 | 92 Hanafuda Hana Tengoku D6502208L1 D6107068L-1 Z80 AY8910 YM2413 M6242 RAM | |
| 37 | 94 Mj Reach (bootleg) bootleg TLCS AY8910 YM2413 M6242 PROM Battery | |
| 38 | 94 Maya Z80 YM2203 PROM | |
| 39 | 96 Mj Raijinhai DX D10010318L1 D10502168 TLCS AY8910 M6242 PROM Undumped TMP91P640 Code, Battery | |
| 40 | 9? Inca Z80 YM2203 PROM | |
| 41 | 41 | --------------------------------------------------------------------------------------------------------------------- |
| 42 | 42 | |
| 43 | 43 | Notes: |
| r9535 | r9536 | |
| 6178 | 6178 | |
| 6179 | 6179 | /*************************************************************************** |
| 6180 | 6180 | |
| 6181 | Neruton Haikujiradan | |
| 6181 | Mahjong Neruton Haikujiradan (Rev. B?) | |
| 6182 | 6182 | (c)1990 Dynax / Yukiyoshi Tokoro (Illustration) |
| 6183 | 6183 | D4005208L1-1 |
| 6184 | 6184 | D4508308L-2 (sub board) |
| r9535 | r9536 | |
| 6225 | 6225 | |
| 6226 | 6226 | ROM_START( neruton ) |
| 6227 | 6227 | ROM_REGION( 0x50000, "maincpu", 0 ) // Z80 Code |
| 6228 | ROM_LOAD( "4501b.1a", 0x000000, 0x020000, CRC(0e53eeee) SHA1(883138618a11295bfac148da4a092e01d92229b3) ) | |
| 6229 | ROM_RELOAD( 0x010000, 0x020000 ) | |
| 6230 | ROM_LOAD( "4502.3a", 0x030000, 0x020000, CRC(c296293f) SHA1(466e87f7eca102568f1f00c6ba77dacc3df300dd) ) | |
| 6228 | ROM_LOAD( "4501b.1a", 0x00000, 0x20000, CRC(0e53eeee) SHA1(883138618a11295bfac148da4a092e01d92229b3) ) | |
| 6229 | ROM_RELOAD( 0x10000, 0x20000 ) | |
| 6230 | ROM_LOAD( "4502.3a", 0x30000, 0x20000, CRC(c296293f) SHA1(466e87f7eca102568f1f00c6ba77dacc3df300dd) ) | |
| 6231 | 6231 | |
| 6232 | 6232 | ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data |
| 6233 | 6233 | ROM_LOAD( "4511.11a", 0x00000, 0x20000, CRC(c4a96b6e) SHA1(15a6776509e0d30929f6a261798afe7dc0401d4e) ) |
| r9535 | r9536 | |
| 6254 | 6254 | ROM_LOAD( "4503.1a", 0xe0000, 0x20000, CRC(dcbe2805) SHA1(713edd2e3c950bc689446441eb85197bb7b1eb89) ) |
| 6255 | 6255 | ROM_END |
| 6256 | 6256 | |
| 6257 | /*************************************************************************** | |
| 6257 | 6258 | |
| 6259 | Mahjong Neruton Haikujiradan (Rev. A?) [Mahjong Crimson-Whales] | |
| 6260 | ||
| 6261 | Only one rom differs from neruton: 4501a.1a (4501b.1a in neruton) | |
| 6262 | ||
| 6263 | ***************************************************************************/ | |
| 6264 | ||
| 6265 | ROM_START( nerutona ) | |
| 6266 | ROM_REGION( 0x50000, "maincpu", 0 ) // Z80 Code | |
| 6267 | ROM_LOAD( "4501a.1a", 0x00000, 0x20000, CRC(82361a95) SHA1(360fa767dc1515bf853458e95e321fc66f8dcf47) ) | |
| 6268 | ROM_RELOAD( 0x10000, 0x20000 ) | |
| 6269 | ROM_LOAD( "4502.3a", 0x30000, 0x20000, CRC(c296293f) SHA1(466e87f7eca102568f1f00c6ba77dacc3df300dd) ) | |
| 6270 | ||
| 6271 | ROM_REGION( 0x100000, "gfx1", 0 ) // blitter data | |
| 6272 | ROM_LOAD( "4511.11a", 0x00000, 0x20000, CRC(c4a96b6e) SHA1(15a6776509e0d30929f6a261798afe7dc0401d4e) ) | |
| 6273 | ROM_LOAD( "4512.13a", 0x20000, 0x20000, CRC(d7ebbcb9) SHA1(b8edd8b93eca8d36056c02f8b69ff8313c9ab120) ) | |
| 6274 | ROM_LOAD( "4513.14a", 0x40000, 0x20000, CRC(e3bed454) SHA1(03a66d31b8f41abc4ce83ebe22f8d14414d92152) ) | |
| 6275 | ROM_LOAD( "4514.15a", 0x60000, 0x20000, CRC(ee258483) SHA1(8c685fee4eaff5978f0ec222c33d55123a8fa496) ) | |
| 6276 | ROM_LOAD( "4515.17a", 0x80000, 0x20000, CRC(3bce0ca1) SHA1(1d0bb379077c52a63aa982bbe77f89df7b5b7b14) ) | |
| 6277 | ROM_LOAD( "4516.18a", 0xa0000, 0x20000, CRC(ee6b7e3b) SHA1(5290fad850c7a52039cd9d26082bff8615bf3797) ) | |
| 6278 | ROM_LOAD( "4517.19a", 0xc0000, 0x20000, CRC(b31f9694) SHA1(f22fc44908be4f1ef8dada57860f95ee74495605) ) | |
| 6279 | ROM_LOAD( "4519.18c", 0xe0000, 0x20000, CRC(68aca5f3) SHA1(f03328362777e6d536f730bc3b52371d5daca54e) ) | |
| 6280 | ||
| 6281 | ROM_REGION( 0x40000, "gfx2", 0 ) // blitter data | |
| 6282 | ROM_LOAD( "4520.19c", 0x00000, 0x20000, CRC(7bb2b298) SHA1(643d21f6a45640bad5ec84af9745339487a7408c) ) | |
| 6283 | ROM_LOAD( "4518.17c", 0x20000, 0x20000, CRC(fa88668e) SHA1(fce80a8badacf39f30c36952cbe0a1491b8faef1) ) | |
| 6284 | ||
| 6285 | ROM_REGION( 0x100000, "gfx3", 0 ) // blitter data | |
| 6286 | ROM_LOAD( "4510.4b", 0x00000, 0x20000, CRC(455305a1) SHA1(103e1eaac485b37786a1d1d411819788ed385467) ) | |
| 6287 | ROM_LOAD( "4509.3b", 0x20000, 0x20000, CRC(4e1e6a2d) SHA1(04c71dd11594921142b6aa9554c0fe1b40254463) ) | |
| 6288 | ROM_LOAD( "4508.2b", 0x40000, 0x20000, CRC(5c451ed4) SHA1(59a27ddfae541cb61dafb32bdb5de8ddbc5abb8d) ) | |
| 6289 | ROM_LOAD( "4507.1b", 0x60000, 0x20000, CRC(106e6133) SHA1(d08deb17ea82fe43e458a11eea26ce98c26c51c1) ) | |
| 6290 | ROM_LOAD( "4506.4a", 0x80000, 0x20000, CRC(6eac8b3c) SHA1(70dbe3af582384571872e7b6b51df4192daed227) ) | |
| 6291 | ROM_LOAD( "4505.3a", 0xa0000, 0x20000, CRC(6f9fd275) SHA1(123a928dcb60624d61a55b2fef25156975ba26c9) ) | |
| 6292 | ROM_LOAD( "4504.2a", 0xc0000, 0x20000, CRC(7b3387af) SHA1(403cf67287469ae6ce9a7f662f6d82f62dac349b) ) | |
| 6293 | ROM_LOAD( "4503.1a", 0xe0000, 0x20000, CRC(dcbe2805) SHA1(713edd2e3c950bc689446441eb85197bb7b1eb89) ) | |
| 6294 | ROM_END | |
| 6295 | ||
| 6296 | ||
| 6258 | 6297 | /*************************************************************************** |
| 6259 | 6298 | |
| 6260 | 6299 | Mahjong Crystal 7 |
| r9535 | r9536 | |
| 7201 | 7240 | GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, alt., Japan)", GAME_SUPPORTS_SAVE ) |
| 7202 | 7241 | GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)", GAME_SUPPORTS_SAVE ) |
| 7203 | 7242 | GAME( 1990, majxtal7, 0, majxtal7, majxtal7, mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 7204 | GAME( 1990, neruton, 0, neruton, neruton, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) | |
| 7243 | GAME( 1990, neruton, 0, neruton, neruton, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) | |
| 7244 | GAME( 1990, nerutona, neruton, neruton, neruton, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) | |
| 7205 | 7245 | GAME( 1991, hanayara, 0, yarunara, hanayara, 0, ROT180, "Dynax", "Hana wo Yaraneba! (Japan)", GAME_SUPPORTS_SAVE ) |
| 7206 | 7246 | GAME( 1991, mjcomv1, 0, yarunara, yarunara, 0, ROT180, "Dynax", "Mahjong Comic Gekijou Vol.1 (Japan)", GAME_SUPPORTS_SAVE ) |
| 7207 | 7247 | GAME( 1991, tenkai, 0, tenkai, tenkai, 0, ROT0, "Dynax", "Mahjong Tenkaigen", GAME_SUPPORTS_SAVE ) |
| r9535 | r9536 | |
|---|---|---|
| 5005 | 5005 | |
| 5006 | 5006 | if(hock_cmd) |
| 5007 | 5007 | { |
| 5008 | // | |
| 5008 | // segacd_cdd.ctrl &= ~4; // clear HOCK flag | |
| 5009 | 5009 | |
| 5010 | 5010 | segacd_cdd_rx[0] = (segacd_cdd.buffer[0] & 0xf0) >> 4; |
| 5011 | 5011 | segacd_cdd_rx[1] = (segacd_cdd.buffer[0] & 0x0f) >> 0; |
| r9535 | r9536 | |
| 5545 | 5545 | segacd_cdd.buffer[1] = ((msf >> 16) & 0xff); |
| 5546 | 5546 | segacd_cdd.buffer[2] = ((msf >> 8) & 0xff); |
| 5547 | 5547 | segacd_cdd.buffer[3] = ((msf >> 0) & 0xff); |
| 5548 | segacd_cdd.buffer[4] = (track_num % 10) | (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x80 : 0x00); | |
| 5548 | segacd_cdd.buffer[4] = ((track_num) % 10) | (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x80 : 0x00); | |
| 5549 | 5549 | |
| 5550 | 5550 | printf("%02x %02x %02x %02x %02x\n",segacd_cdd.buffer[0],segacd_cdd.buffer[1],segacd_cdd.buffer[2],segacd_cdd.buffer[3],segacd_cdd.buffer[4]); |
| 5551 | 5551 | |
| r9535 | r9536 | |
| 5559 | 5559 | hock_cmd = 1; |
| 5560 | 5560 | } |
| 5561 | 5561 | |
| 5562 | #endif | |
| 5563 | ||
| 5564 | 5562 | static void segacd_cdd_seek(running_machine *machine) |
| 5565 | 5563 | { |
| 5566 | 5564 | UINT8 m,s,f; |
| r9535 | r9536 | |
| 5579 | 5577 | |
| 5580 | 5578 | track_num = cdrom_get_track(segacd.cd, frame); |
| 5581 | 5579 | segacd.current_frame = frame; |
| 5582 | // | |
| 5580 | // printf("%02x %02x %02x %02x\n",m,s,f,track_num); | |
| 5583 | 5581 | |
| 5584 | 5582 | segacd_cdd.ctrl &= 0xfeff; |
| 5585 | 5583 | segacd_cdd.ctrl |= (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x000 : 0x100); |
| r9535 | r9536 | |
| 5593 | 5591 | hock_cmd = 1; |
| 5594 | 5592 | } |
| 5595 | 5593 | |
| 5594 | #endif | |
| 5595 | ||
| 5596 | 5596 | static WRITE8_HANDLER( segacd_cdd_tx_w ) |
| 5597 | 5597 | { |
| 5598 | 5598 | //printf("CDD Communication write %02x -> [%02x]\n",data,offset); |
| r9535 | r9536 | |
|---|---|---|
| 57 | 57 | - Hi-scores, scores, and as a consequence bonus lives, have been divided by 10, |
| 58 | 58 | but it's only a cosmetical effect as data from 0xe200 to 0xe22f is unchanged. |
| 59 | 59 | |
| 60 | 4) 'bygone' | |
| 60 | 61 | |
| 62 | - is it prototype ? | |
| 63 | - MCU (same code as lkage) is not used | |
| 64 | - No music ? (could be emulation bug) (the 2nd YM is not used...) | |
| 65 | ||
| 61 | 66 | TODO: |
| 62 | 67 | |
| 63 | 68 | - The high score display uses a video attribute flag whose pupose isn't known. |
| r9535 | r9536 | |
| 84 | 89 | #include "sound/2203intf.h" |
| 85 | 90 | #include "includes/lkage.h" |
| 86 | 91 | |
| 92 | #define MAIN_CPU_CLOCK (XTAL_12MHz/2) | |
| 93 | #define SOUND_CPU_CLOCK (XTAL_8MHz/2) | |
| 94 | #define AUDIO_CLOCK (XTAL_8MHz/2) | |
| 95 | #define MCU_CLOCK (XTAL_12MHz/4) | |
| 87 | 96 | |
| 97 | ||
| 88 | 98 | static TIMER_CALLBACK( nmi_callback ) |
| 89 | 99 | { |
| 90 | 100 | lkage_state *state = machine->driver_data<lkage_state>(); |
| r9535 | r9536 | |
| 119 | 129 | } |
| 120 | 130 | } |
| 121 | 131 | |
| 132 | static READ8_HANDLER(sound_status_r) | |
| 133 | { | |
| 134 | return 0xff; | |
| 135 | } | |
| 136 | ||
| 122 | 137 | static ADDRESS_MAP_START( lkage_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 123 | 138 | AM_RANGE(0x0000, 0xdfff) AM_ROM |
| 124 | 139 | AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */ |
| 125 | 140 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE_GENERIC(paletteram) |
| 126 | 141 | AM_RANGE(0xf000, 0xf003) AM_RAM AM_BASE_MEMBER(lkage_state, vreg) /* video registers */ |
| 127 | 142 | AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w) |
| 128 | AM_RANGE(0xf061, 0xf061) AM_WRITENOP | |
| 143 | AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r) | |
| 129 | 144 | AM_RANGE(0xf062, 0xf062) AM_READWRITE(lkage_mcu_r,lkage_mcu_w) |
| 130 | 145 | AM_RANGE(0xf063, 0xf063) AM_WRITENOP /* pulsed; nmi on sound cpu? */ |
| 131 | 146 | AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1") |
| r9535 | r9536 | |
| 139 | 154 | AM_RANGE(0xf0c0, 0xf0c5) AM_RAM AM_BASE_MEMBER(lkage_state, scroll) |
| 140 | 155 | AM_RANGE(0xf0e1, 0xf0e1) AM_WRITENOP /* pulsed */ |
| 141 | 156 | AM_RANGE(0xf100, 0xf15f) AM_RAM AM_BASE_MEMBER(lkage_state, spriteram) |
| 157 | AM_RANGE(0xf160, 0xf1ff) AM_RAM /* unknown - no valid sprite data */ | |
| 142 | 158 | AM_RANGE(0xf400, 0xffff) AM_RAM_WRITE(lkage_videoram_w) AM_BASE_MEMBER(lkage_state, videoram) |
| 143 | 159 | ADDRESS_MAP_END |
| 144 | 160 | |
| 161 | ||
| 145 | 162 | static READ8_HANDLER( port_fetch_r ) |
| 146 | 163 | { |
| 147 | 164 | return memory_region(space->machine, "user1")[offset]; |
| r9535 | r9536 | |
| 175 | 192 | AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r) AM_WRITENOP /* ??? */ |
| 176 | 193 | AM_RANGE(0xb001, 0xb001) AM_READNOP /* ??? */ AM_WRITE(lkage_sh_nmi_enable_w) |
| 177 | 194 | AM_RANGE(0xb002, 0xb002) AM_WRITE(lkage_sh_nmi_disable_w) |
| 195 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP | |
| 178 | 196 | AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostic ROM? */ |
| 179 | 197 | ADDRESS_MAP_END |
| 180 | 198 | |
| r9535 | r9536 | |
| 311 | 329 | INPUT_PORTS_END |
| 312 | 330 | |
| 313 | 331 | |
| 332 | static INPUT_PORTS_START( bygone ) | |
| 333 | PORT_START("DSW1") | |
| 334 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) | |
| 335 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 336 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 337 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) | |
| 338 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 339 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 340 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) // | |
| 341 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 342 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 343 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) | |
| 344 | PORT_DIPSETTING( 0x18, "3" ) | |
| 345 | PORT_DIPSETTING( 0x10, "4" ) | |
| 346 | PORT_DIPSETTING( 0x08, "5" ) | |
| 347 | PORT_DIPSETTING( 0x00, "255 (Cheat)") | |
| 348 | PORT_DIPUNUSED( 0x20, IP_ACTIVE_LOW ) | |
| 349 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) | |
| 350 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) | |
| 351 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) | |
| 352 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) | |
| 353 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) | |
| 354 | PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) | |
| 355 | ||
| 356 | PORT_START("DSW2") | |
| 357 | PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) | |
| 358 | PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) ) | |
| 359 | PORT_DIPSETTING( 0x0e, DEF_STR( 8C_1C ) ) | |
| 360 | PORT_DIPSETTING( 0x0d, DEF_STR( 7C_1C ) ) | |
| 361 | PORT_DIPSETTING( 0x0c, DEF_STR( 6C_1C ) ) | |
| 362 | PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) ) | |
| 363 | PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) ) | |
| 364 | PORT_DIPSETTING( 0x09, DEF_STR( 3C_1C ) ) | |
| 365 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 366 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) | |
| 367 | PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) | |
| 368 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) | |
| 369 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) | |
| 370 | PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) | |
| 371 | PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) | |
| 372 | PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) | |
| 373 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) ) | |
| 374 | PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) ) | |
| 375 | PORT_DIPSETTING( 0xf0, DEF_STR( 9C_1C ) ) | |
| 376 | PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C ) ) | |
| 377 | PORT_DIPSETTING( 0xd0, DEF_STR( 7C_1C ) ) | |
| 378 | PORT_DIPSETTING( 0xc0, DEF_STR( 6C_1C ) ) | |
| 379 | PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) | |
| 380 | PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) ) | |
| 381 | PORT_DIPSETTING( 0x90, DEF_STR( 3C_1C ) ) | |
| 382 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 383 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) | |
| 384 | PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) | |
| 385 | PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) | |
| 386 | PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) | |
| 387 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) | |
| 388 | PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) | |
| 389 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) ) | |
| 390 | PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) ) | |
| 391 | ||
| 392 | PORT_START("DSW3") | |
| 393 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) | |
| 394 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 395 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 396 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) | |
| 397 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 398 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 399 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) | |
| 400 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 401 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 402 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) | |
| 403 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 404 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 405 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) | |
| 406 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 407 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 408 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) | |
| 409 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 410 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 411 | PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") | |
| 412 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) | |
| 413 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 414 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) | |
| 415 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 416 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 417 | ||
| 418 | ||
| 419 | PORT_START("SYSTEM") | |
| 420 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) | |
| 421 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) | |
| 422 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) | |
| 423 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) | |
| 424 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) | |
| 425 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) | |
| 426 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 427 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 428 | ||
| 429 | PORT_START("P1") | |
| 430 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 431 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 432 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 433 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 434 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 435 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 436 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 437 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 438 | ||
| 439 | PORT_START("P2") | |
| 440 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 441 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 442 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 443 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 444 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 445 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 446 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 447 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 448 | INPUT_PORTS_END | |
| 449 | ||
| 450 | ||
| 451 | ||
| 314 | 452 | static const gfx_layout tile_layout = |
| 315 | 453 | { |
| 316 | 454 | 8,8, |
| r9535 | r9536 | |
| 366 | 504 | |
| 367 | 505 | state_save_register_global(machine, state->bg_tile_bank); |
| 368 | 506 | state_save_register_global(machine, state->fg_tile_bank); |
| 507 | state_save_register_global(machine, state->tx_tile_bank); | |
| 369 | 508 | |
| 509 | state_save_register_global(machine, state->sprite_dx); | |
| 510 | ||
| 370 | 511 | state_save_register_global(machine, state->mcu_ready); |
| 371 | 512 | state_save_register_global(machine, state->mcu_val); |
| 372 | 513 | state_save_register_global(machine, state->sound_nmi_enable); |
| r9535 | r9536 | |
| 391 | 532 | { |
| 392 | 533 | lkage_state *state = machine->driver_data<lkage_state>(); |
| 393 | 534 | |
| 394 | state->bg_tile_bank = state->fg_tile_bank = 0; | |
| 535 | state->bg_tile_bank = state->fg_tile_bank = state->tx_tile_bank =0; | |
| 395 | 536 | |
| 396 | 537 | state->mcu_ready = 3; |
| 397 | 538 | state->mcu_val = 0; |
| r9535 | r9536 | |
| 413 | 554 | state->from_mcu = 0; |
| 414 | 555 | } |
| 415 | 556 | |
| 416 | ||
| 417 | 557 | static MACHINE_CONFIG_START( lkage, lkage_state ) |
| 418 | 558 | |
| 419 | 559 | /* basic machine hardware */ |
| 420 | MDRV_CPU_ADD("maincpu", Z80, | |
| 560 | MDRV_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK) | |
| 421 | 561 | MDRV_CPU_PROGRAM_MAP(lkage_map) |
| 422 | 562 | MDRV_CPU_IO_MAP(lkage_io_map) |
| 423 | 563 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 424 | 564 | |
| 425 | MDRV_CPU_ADD("audiocpu", Z80, | |
| 565 | MDRV_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) | |
| 426 | 566 | MDRV_CPU_PROGRAM_MAP(lkage_sound_map) |
| 427 | 567 | /* IRQs are triggered by the YM2203 */ |
| 428 | 568 | |
| 429 | MDRV_CPU_ADD("mcu", M68705, | |
| 569 | MDRV_CPU_ADD("mcu", M68705,MCU_CLOCK) | |
| 430 | 570 | MDRV_CPU_PROGRAM_MAP(lkage_m68705_map) |
| 431 | 571 | |
| 432 | 572 | MDRV_MACHINE_START(lkage) |
| r9535 | r9536 | |
| 449 | 589 | /* sound hardware */ |
| 450 | 590 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 451 | 591 | |
| 452 | MDRV_SOUND_ADD("ym1", YM2203, | |
| 592 | MDRV_SOUND_ADD("ym1", YM2203, AUDIO_CLOCK ) | |
| 453 | 593 | MDRV_SOUND_CONFIG(ym2203_config) |
| 454 | 594 | MDRV_SOUND_ROUTE(0, "mono", 0.15) |
| 455 | 595 | MDRV_SOUND_ROUTE(1, "mono", 0.15) |
| 456 | 596 | MDRV_SOUND_ROUTE(2, "mono", 0.15) |
| 457 | 597 | MDRV_SOUND_ROUTE(3, "mono", 0.40) |
| 458 | 598 | |
| 459 | MDRV_SOUND_ADD("ym2", YM2203, | |
| 599 | MDRV_SOUND_ADD("ym2", YM2203, AUDIO_CLOCK ) | |
| 460 | 600 | MDRV_SOUND_ROUTE(0, "mono", 0.15) |
| 461 | 601 | MDRV_SOUND_ROUTE(1, "mono", 0.15) |
| 462 | 602 | MDRV_SOUND_ROUTE(2, "mono", 0.15) |
| r9535 | r9536 | |
| 467 | 607 | static MACHINE_CONFIG_START( lkageb, lkage_state ) |
| 468 | 608 | |
| 469 | 609 | /* basic machine hardware */ |
| 470 | MDRV_CPU_ADD("maincpu", Z80, | |
| 610 | MDRV_CPU_ADD("maincpu", Z80,MAIN_CPU_CLOCK) | |
| 471 | 611 | MDRV_CPU_PROGRAM_MAP(lkage_map) |
| 472 | 612 | MDRV_CPU_IO_MAP(lkage_io_map) |
| 473 | 613 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 474 | 614 | |
| 475 | MDRV_CPU_ADD("audiocpu", Z80, | |
| 615 | MDRV_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) | |
| 476 | 616 | MDRV_CPU_PROGRAM_MAP(lkage_sound_map) |
| 477 | 617 | /* IRQs are triggered by the YM2203 */ |
| 478 | 618 | |
| r9535 | r9536 | |
| 496 | 636 | /* sound hardware */ |
| 497 | 637 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 498 | 638 | |
| 499 | MDRV_SOUND_ADD("ym1", YM2203, | |
| 639 | MDRV_SOUND_ADD("ym1", YM2203, AUDIO_CLOCK) | |
| 500 | 640 | MDRV_SOUND_CONFIG(ym2203_config) |
| 501 | 641 | MDRV_SOUND_ROUTE(0, "mono", 0.15) |
| 502 | 642 | MDRV_SOUND_ROUTE(1, "mono", 0.15) |
| 503 | 643 | MDRV_SOUND_ROUTE(2, "mono", 0.15) |
| 504 | 644 | MDRV_SOUND_ROUTE(3, "mono", 0.40) |
| 505 | 645 | |
| 506 | MDRV_SOUND_ADD("ym2", YM2203, | |
| 646 | MDRV_SOUND_ADD("ym2", YM2203, AUDIO_CLOCK) | |
| 507 | 647 | MDRV_SOUND_ROUTE(0, "mono", 0.15) |
| 508 | 648 | MDRV_SOUND_ROUTE(1, "mono", 0.15) |
| 509 | 649 | MDRV_SOUND_ROUTE(2, "mono", 0.15) |
| 510 | 650 | MDRV_SOUND_ROUTE(3, "mono", 0.40) |
| 511 | 651 | MACHINE_CONFIG_END |
| 512 | 652 | |
| 513 | ||
| 514 | 653 | ROM_START( lkage ) |
| 515 | 654 | ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */ |
| 516 | 655 | ROM_LOAD( "a54-01-2.37", 0x0000, 0x8000, CRC(60fd9734) SHA1(33b444b887d80acb3a63ca4534db65c4d8147712) ) |
| r9535 | r9536 | |
| 664 | 803 | ROM_LOAD( "a54-10.2", 0x0000, 0x0200, CRC(17dfbd14) SHA1(f8f0b6dfedd4ba108dad43ccc7697ef4ab9cbf86) ) /* unknown */ |
| 665 | 804 | ROM_END |
| 666 | 805 | |
| 806 | /* | |
| 807 | Bygone | |
| 808 | Taito, 1985? | |
| 809 | ||
| 810 | This is a rare prototype platform game conversion on a Legend Of Kage PCB. | |
| 811 | There are some wire mods on the video board. | |
| 812 | ||
| 813 | ||
| 814 | PCB Layouts | |
| 815 | ----------- | |
| 816 | ||
| 817 | K1100135A | |
| 818 | J1100057A | |
| 819 | CPU PCB | |
| 820 | M4300040A (sticker, also matches The Legend Of Kage) | |
| 821 | |------------------------------------------------------| | |
| 822 | | VOL LM324 TL074 PC040DA | | |
| 823 | | PC010SA YM3014 YM2203 PC040DA | | |
| 824 | | MB3731 PC040DA | | |
| 825 | | PC010SA YM3014 YM2203 MB2148 | | |
| 826 | | PC030CM MB2148 | | |
| 827 | | 8MHz MB2148 | | |
| 828 | | 6116 |-| | |
| 829 | |2 | | | |
| 830 | |2 A53_07.IC54 Z80A | | | |
| 831 | |W | | | |
| 832 | |A A51_09.IC53 | | | |
| 833 | |Y | | | |
| 834 | | | | | |
| 835 | | | | | |
| 836 | | A54-14.IC27 |-| | |
| 837 | | A53_08.IC51 A53_06.IC38 | | |
| 838 | | | | |
| 839 | | | | |
| 840 | | | | |
| 841 | | 6264 A53_05.IC37 Z80B | | |
| 842 | | DSW3 DSW2 DSW1 TL7700 | | |
| 843 | |------------------------------------------------------| | |
| 844 | Notes: | |
| 845 | Z80A - clock 4.000MHz [8/2] | |
| 846 | Z80B - clock 6.000MHz [12/2] | |
| 847 | YM2203 - clock 4.000MHz [8/2] | |
| 848 | A51_09 - MC68705P5 microcontroller, clock 3.000MHz [12/4]. | |
| 849 | It seems to be from Taito game A51, which is unknown? | |
| 850 | It was not protected ^_^ | |
| 851 | A54-14 - PAL16L8 | |
| 852 | A53* - 27C128 and 27C256 EPROMs | |
| 853 | 6264 - 8k x8 SRAM | |
| 854 | 6116 - 2k x8 SRAM | |
| 855 | 2148 - 1k x4 SRAM | |
| 856 | DIPs have 8 switches each | |
| 857 | ||
| 858 | ||
| 859 | K1100136A | |
| 860 | J1100058A | |
| 861 | VIDEO PCB | |
| 862 | |------------------------------------------------------| | |
| 863 | | 12MHz | | |
| 864 | | | | |
| 865 | | | | |
| 866 | | | | |
| 867 | | 6116 | | |
| 868 | | 6116 | | |
| 869 | | 6116 |-| | |
| 870 | |1 | | | |
| 871 | |8 | | | |
| 872 | |W | | | |
| 873 | |A A54-11.IC76 | | | |
| 874 | |Y 93422 93422 | | | |
| 875 | | | | | |
| 876 | | 93422 93422 | | | |
| 877 | | A53_04.IC87 MB112S146 MB112S146 A54-13.IC35 |-| | |
| 878 | | | | |
| 879 | | A53_03.IC86 MB112S146 MB112S146 A54-12.IC34 | | |
| 880 | | | | |
| 881 | | A53_02.IC85 MB112S146 MB112S146 | | |
| 882 | | | | |
| 883 | | A53_01.IC84 MB112S146 MB112S146 A54-10.IC2| | |
| 884 | |------------------------------------------------------| | |
| 885 | Notes: | |
| 886 | A54-10 - MB7122 PROM | |
| 887 | A54-11 - PAL16L8 | |
| 888 | A54-12 - PAL16L8 | |
| 889 | A54-13 - PAL16L8 | |
| 890 | 6116 - 2k x8 SRAM | |
| 891 | 93422 - 256b x4 SRAM | |
| 892 | A53* - 27C128 EPROMs | |
| 893 | ||
| 894 | */ | |
| 895 | ||
| 896 | ROM_START( bygone ) | |
| 897 | ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */ | |
| 898 | ROM_LOAD( "a53_05.ic37", 0x0000, 0x8000, CRC(63a3f08b) SHA1(781539077cb1d3b8eecc8bd3717330c0f281833d) ) | |
| 899 | ROM_LOAD( "a53_06.ic38", 0x8000, 0x8000, CRC(cb0dcb08) SHA1(6b12b018b983b8225b5f33fb9fcd8004a00fd8ff) ) | |
| 900 | ||
| 901 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code (sound CPU) */ | |
| 902 | ROM_LOAD( "a53_07.ic54", 0x0000, 0x8000, CRC(72f69a77) SHA1(dfc1050a4123b3c83ae733ece1b6fe2836beb901) ) | |
| 903 | ||
| 904 | ROM_REGION( 0x10000, "mcu", 0 ) /* 68705 MCU code */ | |
| 905 | ROM_LOAD( "a51_09.ic53", 0x0000, 0x0800, CRC(0e8b8846) SHA1(a4a105462b0127229bb7edfadd2e581c7e40f1cc) ) /* the same as lkage */ | |
| 906 | ||
| 907 | ROM_REGION( 0x4000, "user1", 0 ) /* data */ | |
| 908 | ROM_LOAD( "a53_08.ic51", 0x0000, 0x4000, CRC(f85139f9) SHA1(7e089d1dd5c5fa8abb396b44aa15aabcf8677940) ) | |
| 909 | ||
| 910 | ROM_REGION( 0x10000, "gfx1", 0 ) | |
| 911 | ROM_LOAD( "a53_01.ic84", 0x0000, 0x4000, CRC(38cf7fb2) SHA1(424efabe2386fa5f1c22444a53952d85c05c2d64) ) | |
| 912 | ROM_LOAD( "a53_02.ic85", 0x4000, 0x4000, CRC(dca7adfe) SHA1(83b159e92dab96d9e20fa3a9d1ce7a7d2e83b313) ) | |
| 913 | ROM_LOAD( "a53_03.ic86", 0x8000, 0x4000, CRC(af3eb997) SHA1(ba66ffb9d83f91c98446ac38bb0e712ec0800625) ) | |
| 914 | ROM_LOAD( "a53_04.ic87", 0xc000, 0x4000, CRC(65af72d3) SHA1(759a1dd7548075630ddb9c692bdb32ad4712c579) ) | |
| 915 | ||
| 916 | ROM_REGION( 0x0400, "proms", 0 ) | |
| 917 | ROM_LOAD( "a54-10.ic2", 0x0000, 0x0400, CRC(369722d9) SHA1(2df9932ad8ce87c0a9d2c89222a4cec12c29046d) ) /* unknown */ | |
| 918 | ROM_END | |
| 919 | ||
| 920 | ||
| 667 | 921 | /*Note: This probably uses another MCU dump,which is undumped.*/ |
| 668 | 922 | |
| 669 | 923 | static READ8_HANDLER( fake_mcu_r ) |
| r9535 | r9536 | |
| 714 | 968 | return state->mcu_ready; |
| 715 | 969 | } |
| 716 | 970 | |
| 971 | static DRIVER_INIT( lkage ) | |
| 972 | { | |
| 973 | lkage_state *state = machine->driver_data<lkage_state>(); | |
| 974 | state->sprite_dx=0; | |
| 975 | } | |
| 976 | ||
| 717 | 977 | static DRIVER_INIT( lkageb ) |
| 718 | 978 | { |
| 979 | lkage_state *state = machine->driver_data<lkage_state>(); | |
| 719 | 980 | memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf062, 0xf062, 0, 0, fake_mcu_r); |
| 720 | 981 | memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf087, 0xf087, 0, 0, fake_status_r); |
| 721 | 982 | memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf062, 0xf062, 0, 0, fake_mcu_w ); |
| 983 | state->sprite_dx=0; | |
| 722 | 984 | } |
| 723 | 985 | |
| 724 | GAME( 1984, lkage, 0, lkage, lkage, 0, ROT0, "Taito Corporation", "The Legend of Kage", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 725 | GAME( 1984, lkageo, lkage, lkage, lkage, 0, ROT0, "Taito Corporation", "The Legend of Kage (older)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 726 | GAME( 1984, lkageoo, lkage, lkage, lkage, 0, ROT0, "Taito Corporation", "The Legend of Kage (oldest)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 986 | static DRIVER_INIT( bygone ) | |
| 987 | { | |
| 988 | lkage_state *state = machine->driver_data<lkage_state>(); | |
| 989 | state->sprite_dx=1; | |
| 990 | } | |
| 991 | ||
| 992 | GAME( 1984, lkage, 0, lkage, lkage, lkage, ROT0, "Taito Corporation", "The Legend of Kage", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 993 | GAME( 1984, lkageo, lkage, lkage, lkage, lkage, ROT0, "Taito Corporation", "The Legend of Kage (older)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 994 | GAME( 1984, lkageoo, lkage, lkage, lkage, lkage, ROT0, "Taito Corporation", "The Legend of Kage (oldest)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 727 | 995 | GAME( 1984, lkageb, lkage, lkageb, lkageb, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 728 | 996 | GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 729 | 997 | GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 998 | GAME( 1985, bygone, 0, lkage, bygone, bygone, ROT0, "Taito Corporation", "Bygone", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 999 |
| r9535 | r9536 | |
|---|---|---|
| 1833 | 1833 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 1834 | 1834 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 1835 | 1835 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) |
| 1836 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_ | |
| 1836 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) | |
| 1837 | 1837 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 1838 | 1838 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 1839 | 1839 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| r9535 | r9536 | |
| 1843 | 1843 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 1844 | 1844 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 1845 | 1845 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 1846 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_ | |
| 1846 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) | |
| 1847 | 1847 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) |
| 1848 | 1848 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) |
| 1849 | 1849 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) |
| r9535 | r9536 | |
| 1853 | 1853 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) |
| 1854 | 1854 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) |
| 1855 | 1855 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) |
| 1856 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_ | |
| 1856 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE4 ) | |
| 1857 | 1857 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) |
| 1858 | 1858 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) |
| 1859 | 1859 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) |
| r9535 | r9536 | |
| 1870 | 1870 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1871 | 1871 | |
| 1872 | 1872 | PORT_START("COINAGE") |
| 1873 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 1873 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 1874 | 1874 | PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) |
| 1875 | 1875 | PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) |
| 1876 | 1876 | PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) |
| r9535 | r9536 | |
| 1887 | 1887 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) |
| 1888 | 1888 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) |
| 1889 | 1889 | PORT_DIPSETTING( 0x00, "Free Play (if Coin B too) or 1/1" ) |
| 1890 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 1891 | PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) | |
| 1892 | PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) | |
| 1893 | PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) | |
| 1894 | PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) | |
| 1895 | PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) | |
| 1896 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1897 | PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) | |
| 1898 | PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) | |
| 1899 | PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) | |
| 1900 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) | |
| 1901 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1902 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1903 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1904 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1905 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1906 | PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) | |
| 1907 | 1890 | |
| 1891 | /* 2nd Coin Slot listed as "Not Used" in Test Mode for Alien Storm Bootlegs */ | |
| 1892 | ||
| 1893 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" ) | |
| 1894 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:6" ) | |
| 1895 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW1:7" ) | |
| 1896 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW1:8" ) | |
| 1897 | ||
| 1908 | 1898 | PORT_START("DSW1") |
| 1909 | PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) | |
| 1910 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 1911 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1912 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 1899 | PORT_DIPNAME( 0x01, 0x01, "Start Credit" ) PORT_DIPLOCATION("SW2:1") | |
| 1900 | PORT_DIPSETTING( 0x01, "1" ) | |
| 1901 | PORT_DIPSETTING( 0x00, "2" ) | |
| 1902 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2") | |
| 1913 | 1903 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1914 | 1904 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1915 | PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) | |
| 1905 | PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4,5") | |
| 1916 | 1906 | PORT_DIPSETTING( 0x04, DEF_STR( Easiest ) ) |
| 1917 | 1907 | PORT_DIPSETTING( 0x08, DEF_STR( Easier ) ) |
| 1918 | 1908 | PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) |
| r9535 | r9536 | |
| 1921 | 1911 | PORT_DIPSETTING( 0x14, DEF_STR( Harder ) ) |
| 1922 | 1912 | PORT_DIPSETTING( 0x18, DEF_STR( Hardest ) ) |
| 1923 | 1913 | PORT_DIPSETTING( 0x00, "Special" ) |
| 1924 | PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" ) | |
| 1914 | PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" ) PORT_DIPLOCATION("SW2:6") | |
| 1925 | 1915 | PORT_DIPSETTING( 0x20, "3" ) |
| 1926 | 1916 | PORT_DIPSETTING( 0x00, "1" ) |
| 1927 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) | |
| 1928 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) | |
| 1929 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1930 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) | |
| 1931 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 1932 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1917 | PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) | |
| 1918 | PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) | |
| 1933 | 1919 | INPUT_PORTS_END |
| 1934 | 1920 | |
| 1935 | 1921 | static INPUT_PORTS_START( mwalkbl ) |
| 1936 | 1922 | PORT_INCLUDE( astormbl ) |
| 1937 | 1923 | |
| 1938 | ||
| 1924 | PORT_MODIFY("P3") | |
| 1939 | 1925 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) |
| 1940 | 1926 | |
| 1941 | 1927 | PORT_MODIFY("SERVICE") |
| 1942 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1943 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1944 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1928 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE4 ) | |
| 1945 | 1929 | |
| 1930 | PORT_MODIFY("COINAGE") | |
| 1931 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") PORT_CONDITION("DSW1",0x20,PORTCOND_EQUALS,0x20) | |
| 1932 | PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) | |
| 1933 | PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) | |
| 1934 | PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) | |
| 1935 | PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) | |
| 1936 | PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) | |
| 1937 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1938 | PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) | |
| 1939 | PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) | |
| 1940 | PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) | |
| 1941 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) | |
| 1942 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1943 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1944 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1945 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1946 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1947 | PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) | |
| 1948 | ||
| 1946 | 1949 | PORT_MODIFY("DSW1") |
| 1947 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) | |
| 1950 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3") | |
| 1948 | 1951 | PORT_DIPSETTING( 0x04, "2" ) |
| 1949 | 1952 | PORT_DIPSETTING( 0x00, "3" ) |
| 1950 | PORT_DIPNAME( 0x08, 0x08, "Player Vitality" ) | |
| 1953 | PORT_DIPNAME( 0x08, 0x08, "Player Vitality" ) PORT_DIPLOCATION("SW2:4") | |
| 1951 | 1954 | PORT_DIPSETTING( 0x08, DEF_STR( Low ) ) |
| 1952 | 1955 | PORT_DIPSETTING( 0x00, DEF_STR( High ) ) |
| 1953 | PORT_DIPNAME( 0x10, 0x00, "Play Mode" ) | |
| 1956 | PORT_DIPNAME( 0x10, 0x00, "Play Mode" ) PORT_DIPLOCATION("SW2:5") | |
| 1954 | 1957 | PORT_DIPSETTING( 0x10, "2 Players" ) |
| 1955 | 1958 | PORT_DIPSETTING( 0x00, "3 Players" ) |
| 1956 | PORT_DIPNAME( 0x20, 0x20, "Coin Mode" ) | |
| 1959 | PORT_DIPNAME( 0x20, 0x20, "Coin Mode" ) PORT_DIPLOCATION("SW2:6") | |
| 1957 | 1960 | PORT_DIPSETTING( 0x20, "Common" ) |
| 1958 | 1961 | PORT_DIPSETTING( 0x00, "Individual" ) |
| 1959 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) | |
| 1962 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8") | |
| 1960 | 1963 | PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) |
| 1961 | 1964 | PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) |
| 1962 | 1965 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
| 1963 | 1966 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 1964 | 1967 | INPUT_PORTS_END |
| 1965 | 1968 | |
| 1969 | static INPUT_PORTS_START( shdancbl ) | |
| 1970 | PORT_INCLUDE( astormbl ) | |
| 1966 | 1971 | |
| 1972 | PORT_MODIFY("P2") | |
| 1973 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1974 | ||
| 1975 | PORT_MODIFY("P3") | |
| 1976 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1977 | ||
| 1978 | PORT_MODIFY("COINAGE") | |
| 1979 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 1980 | PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) | |
| 1981 | PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) | |
| 1982 | PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) | |
| 1983 | PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) | |
| 1984 | PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) | |
| 1985 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1986 | PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) | |
| 1987 | PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) | |
| 1988 | PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) | |
| 1989 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) | |
| 1990 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1991 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1992 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1993 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1994 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1995 | PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) | |
| 1996 | ||
| 1997 | PORT_MODIFY("SERVICE") | |
| 1998 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1999 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 2000 | ||
| 2001 | PORT_MODIFY("DSW1") | |
| 2002 | PORT_DIPNAME( 0x0C, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4") | |
| 2003 | PORT_DIPSETTING( 0x00, "2" ) | |
| 2004 | PORT_DIPSETTING( 0x0c, "3" ) | |
| 2005 | PORT_DIPSETTING( 0x08, "4" ) | |
| 2006 | PORT_DIPSETTING( 0x04, "5" ) | |
| 2007 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,6") | |
| 2008 | PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) | |
| 2009 | PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) | |
| 2010 | PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) | |
| 2011 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) | |
| 2012 | PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" ) PORT_DIPLOCATION("SW2:7,8") | |
| 2013 | PORT_DIPSETTING( 0x80, "3:30" ) | |
| 2014 | PORT_DIPSETTING( 0xc0, "3:00" ) | |
| 2015 | PORT_DIPSETTING( 0x40, "2:40" ) | |
| 2016 | PORT_DIPSETTING( 0x00, "2:20" ) | |
| 2017 | INPUT_PORTS_END | |
| 2018 | ||
| 2019 | ||
| 1967 | 2020 | /************************************* |
| 1968 | 2021 | * |
| 1969 | 2022 | * Graphics definitions |
| r9535 | r9536 | |
| 3551 | 3604 | GAME( 1990, astormbl, astorm, astormbl, astormbl, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 3552 | 3605 | GAME( 1990, astormb2, astorm, astormbl, astormbl, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) |
| 3553 | 3606 | GAME( 1990, mwalkbl, mwalk, mwalkbl, mwalkbl, mwalkbl, ROT0, "bootleg", "Michael Jackson's Moonwalker (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 3554 | GAME( 1989, shdancbl, shdancer, shdancbl, | |
| 3607 | GAME( 1989, shdancbl, shdancer, shdancbl, shdancbl, |
| r9535 | r9536 | |
|---|---|---|
| 1010 | 1010 | ROM_LOAD16_BYTE( "tmaster_v300_euro.u52", 0x000001, 0x080000, CRC(e9fd30fc) SHA1(d91ea05d5f574603883336729fb9df705688945d) ) /* Ver: 3.00 Euro 11-25-96 */ |
| 1011 | 1011 | |
| 1012 | 1012 | ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE ) // Blitter gfx |
| 1013 | ROM_LOAD16_BYTE( "tmaster.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Same as U38 below */ | |
| 1014 | ROM_LOAD16_BYTE( "tmaster.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Same as U36 below */ | |
| 1013 | ROM_LOAD16_BYTE( "tmaster_v21.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */ | |
| 1014 | ROM_LOAD16_BYTE( "tmaster_v21.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */ | |
| 1015 | 1015 | // unused gap |
| 1016 | ROM_LOAD16_BYTE( "tmaster.u39", 0x300000, 0x080000, CRC(cbb716cb) SHA1(4e8d8f6cbfb25a8161ff8fe7505d6b209650dd2b) ) /* Different then U39 below, newer or region specific? */ | |
| 1017 | ROM_LOAD16_BYTE( "tmaster.u37", 0x300001, 0x080000, CRC(e0b6a9f7) SHA1(7e057ca87833c682e5be03668469259bbdefbf20) ) /* Different then U37 below, newer or region specific? */ | |
| 1016 | ROM_LOAD16_BYTE( "tmaster_v300.u39", 0x300000, 0x080000, CRC(cbb716cb) SHA1(4e8d8f6cbfb25a8161ff8fe7505d6b209650dd2b) ) /* Marked as Rev 3.00 */ | |
| 1017 | ROM_LOAD16_BYTE( "tmaster_v300.u37", 0x300001, 0x080000, CRC(e0b6a9f7) SHA1(7e057ca87833c682e5be03668469259bbdefbf20) ) /* Marked as Rev 3.00 */ | |
| 1018 | 1018 | |
| 1019 | 1019 | ROM_REGION( 0x100000, "oki", 0 ) // Samples |
| 1020 | ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* | |
| 1020 | ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as R | |
| 1021 | 1021 | ROM_CONTINUE( 0xc0000, 0x040000 ) |
| 1022 | 1022 | ROM_END |
| 1023 | 1023 | |
| r9535 | r9536 | |
| 1027 | 1027 | ROM_LOAD16_BYTE( "tmaster_v22-01.u52", 0x000001, 0x080000, CRC(6c2c643f) SHA1(8dd7930f4c499483ca46b0b97bde94cb8d6e06aa) ) /* Ver: 2.2-01 Standard 10-17-96 */ |
| 1028 | 1028 | |
| 1029 | 1029 | ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE ) // Blitter gfx |
| 1030 | ROM_LOAD16_BYTE( "tmaster.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */ | |
| 1031 | ROM_LOAD16_BYTE( "tmaster.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */ | |
| 1030 | ROM_LOAD16_BYTE( "tmaster_v21.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */ | |
| 1031 | ROM_LOAD16_BYTE( "tmaster_v21.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */ | |
| 1032 | 1032 | // unused gap |
| 1033 | 1033 | ROM_LOAD16_BYTE( "tmaster_v21.u39", 0x300000, 0x080000, CRC(a4445260) SHA1(915347f69d7ea45f8f299a67d77ff437983495d2) ) /* Marked as Rev 2.1 */ |
| 1034 | 1034 | ROM_LOAD16_BYTE( "tmaster_v21.u37", 0x300001, 0x080000, CRC(0e140a3e) SHA1(10a34e3b95c0d36fe687fe8c1124ef244a93d720) ) /* Marked as Rev 2.1 */ |
| r9535 | r9536 | |
|---|---|---|
| 1153 | 1153 | DISK_IMAGE_READONLY( "magicnumber", 0, SHA1(60e1fadc42694742d19cc0ac2b6e99e9e33faa3d) ) |
| 1154 | 1154 | ROM_END |
| 1155 | 1155 | |
| 1156 | ROM_START( odeontw2 ) | |
| 1157 | CD32_BIOS | |
| 1158 | ||
| 1159 | DISK_REGION( "cdrom" ) | |
| 1160 | DISK_IMAGE_READONLY( "odeontw2", 0, SHA1(f39e09f35b65a6ae9f1eba4a22f970626b7d3b71) ) | |
| 1161 | ROM_END | |
| 1162 | ||
| 1156 | 1163 | /***************************************************************************************************/ |
| 1157 | 1164 | |
| 1158 | 1165 | static DRIVER_INIT( cd32 ) |
| r9535 | r9536 | |
| 1343 | 1350 | GAME( 1995, lasstixx, cd32, cd32, lasstixx, lasstixx, ROT0, "CD Express", "Laser Strixx 2", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) |
| 1344 | 1351 | GAME( 1995, mgnumber, cd32, cd32, mgnumber, mgnumber, ROT0, "CD Express", "Magic Number", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) |
| 1345 | 1352 | GAME( 1996, mgprem11, cd32, cd32, mgprem11, mgprem11, ROT0, "CD Express", "Magic Premium (v1.1)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) |
| 1353 | GAME( 1999, odeontw2, cd32, cd32, cd32, cd32, ROT0, "CD Express", "Odeon Twister 2 (v202.19)", GAME_NOT_WORKING ) |
| r9535 | r9536 | |
|---|---|---|
| 137 | 137 | */ |
| 138 | 138 | |
| 139 | 139 | #include "emu.h" |
| 140 | #include "deprecat.h" | |
| 141 | 140 | #include "cpu/z80/z80.h" |
| 142 | 141 | #include "cpu/mcs51/mcs51.h" |
| 143 | 142 | #include "sound/2203intf.h" |
| r9535 | r9536 | |
| 513 | 512 | |
| 514 | 513 | /******************************************************************************/ |
| 515 | 514 | |
| 516 | static INTERRUPT_GEN( djboy_interrupt ) | |
| 517 | { /* CPU1 uses interrupt mode 2. For now, just alternate the two interrupts. */ | |
| 518 | djboy_state *state = device->machine->driver_data<djboy_state>(); | |
| 519 | state->addr ^= 0x02; | |
| 520 | cpu_set_input_line_and_vector(device, 0, HOLD_LINE, state->addr); | |
| 515 | /* Main Z80 uses IM2 */ | |
| 516 | static TIMER_DEVICE_CALLBACK( djboy_scanline ) | |
| 517 | { | |
| 518 | int scanline = param; | |
| 519 | ||
| 520 | if(scanline == 240) // vblank-out irq | |
| 521 | cputag_set_input_line_and_vector(timer.machine, "maincpu", 0, HOLD_LINE, 0xfd); | |
| 522 | ||
| 523 | /* Pandora "sprite end dma" irq? TODO: timing is clearly off, attract mode relies on this */ | |
| 524 | if(scanline == 64) | |
| 525 | cputag_set_input_line_and_vector(timer.machine, "maincpu", 0, HOLD_LINE, 0xff); | |
| 521 | 526 | } |
| 522 | 527 | |
| 523 | 528 | static const kaneko_pandora_interface djboy_pandora_config = |
| r9535 | r9536 | |
| 553 | 558 | state_save_register_global(machine, state->scrollx); |
| 554 | 559 | state_save_register_global(machine, state->scrolly); |
| 555 | 560 | |
| 556 | state_save_register_global(machine, state->addr); | |
| 557 | ||
| 558 | 561 | /* Kaneko BEAST */ |
| 559 | 562 | state_save_register_global(machine, state->data_to_beast); |
| 560 | 563 | state_save_register_global(machine, state->data_to_z80); |
| r9535 | r9536 | |
| 575 | 578 | state->scrollx = 0; |
| 576 | 579 | state->scrolly = 0; |
| 577 | 580 | |
| 578 | state->addr = 0xff; | |
| 579 | ||
| 580 | 581 | state->beast_int0_l = 1; |
| 581 | 582 | state->beast_to_z80_full = 0; |
| 582 | 583 | state->z80_to_beast_full = 0; |
| r9535 | r9536 | |
| 587 | 588 | MDRV_CPU_ADD("maincpu", Z80, 6000000) |
| 588 | 589 | MDRV_CPU_PROGRAM_MAP(cpu0_am) |
| 589 | 590 | MDRV_CPU_IO_MAP(cpu0_port_am) |
| 590 | MDRV_ | |
| 591 | MDRV_TIMER_ | |
| 591 | 592 | |
| 592 | 593 | MDRV_CPU_ADD("cpu1", Z80, 6000000) |
| 593 | 594 | MDRV_CPU_PROGRAM_MAP(cpu1_am) |
| r9535 | r9536 | |
|---|---|---|
| 40 | 40 | * Royal Card (austrian, set 4), TAB Austria, 1991. |
| 41 | 41 | * Royal Card (austrian, set 5), TAB Austria, 1991. |
| 42 | 42 | * Royal Card (austrian, set 6), TAB Austria, 1991. |
| 43 | * Royal Card (TAB original), TAB Austria, 1991. | |
| 43 | 44 | * Royal Card (slovak, encrypted), Evona Electronic, 1991. |
| 44 | 45 | * Royal Card Professional 2.0, Digital Dreams, 1993. |
| 45 | 46 | * Lucky Lady (3x3 deal), TAB Austria, 1991. |
| r9535 | r9536 | |
| 3271 | 3272 | |
| 3272 | 3273 | |
| 3273 | 3274 | /* |
| 3275 | Royal Card (TAB Austria original) | |
| 3276 | With respective original PLD properly dumped. | |
| 3277 | */ | |
| 3278 | ||
| 3279 | ROM_START( royalcrdt ) | |
| 3280 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 3281 | ROM_LOAD( "r1_0.bin", 0x8000, 0x8000, CRC(829a6a1d) SHA1(b7064e4d60e33d0875eb73525230ea3b99f10542) ) | |
| 3282 | ||
| 3283 | ROM_REGION( 0x10000, "gfx1", 0 ) | |
| 3284 | ROM_LOAD( "novr3_0.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) ) | |
| 3285 | ROM_LOAD( "novr2_0.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) ) | |
| 3286 | ||
| 3287 | ROM_REGION( 0x0200, "proms", 0 ) | |
| 3288 | ROM_LOAD( "jop1.bin", 0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) ) | |
| 3289 | ||
| 3290 | ROM_REGION( 0x0800, "nvram", 0 ) | |
| 3291 | ROM_LOAD( "royalcrdt_nv.bin", 0x0000, 0x0800, CRC(67a6e68b) SHA1(d7ab01c4d9bd4fe58b5d0f4a945c00c5c4906008) ) | |
| 3292 | ||
| 3293 | ROM_REGION( 0x0200, "plds", 0 ) /* Device type is 16L8 */ | |
| 3294 | ROM_LOAD( "tab01_3.bin", 0x0000, 0x0104, CRC(a13a7a0a) SHA1(28e918ece4dcfa3883d2439c226b2f125d43f386) ) | |
| 3295 | ROM_END | |
| 3296 | ||
| 3297 | ||
| 3298 | /* | |
| 3274 | 3299 | Royal Card (set 7, encrypted) |
| 3275 | 3300 | ----------------------------- |
| 3276 | 3301 | |
| r9535 | r9536 | |
| 3311 | 3336 | ROM_END |
| 3312 | 3337 | |
| 3313 | 3338 | |
| 3339 | ||
| 3314 | 3340 | ROM_START( royalcrdp ) |
| 3315 | 3341 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3316 | 3342 | ROM_LOAD( "u16_m27c256b.bin", 0x8000, 0x8000, CRC(162996ff) SHA1(122c13ee9842e692d31490f216eb972df2321b7f) ) |
| r9535 | r9536 | |
| 4323 | 4349 | GAMEL( 1991, royalcrdc, royalcrd, royalcd2, royalcrd, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 4)", GAME_IMPERFECT_GRAPHICS, layout_jollycrd ) |
| 4324 | 4350 | GAMEL( 1991, royalcrdd, royalcrd, royalcd1, royalcrd, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 5)", 0, layout_royalcrd ) |
| 4325 | 4351 | GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd, 0, ROT0, "TAB Austria", "Royal Card (Austrian, set 6)", 0, layout_jollycrd ) |
| 4352 | GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd, 0, ROT0, "TAB Austria", "Royal Card (TAB original)", 0, layout_jollycrd ) | |
| 4326 | 4353 | GAME( 1991, royalcrdf, royalcrd, royalcd1, royalcrd, royalcdc, ROT0, "Evona Electronic","Royal Card (Slovak, encrypted)", GAME_NOT_WORKING ) |
| 4327 | 4354 | GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, 0, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", GAME_NOT_WORKING ) |
| 4328 | 4355 | GAMEL( 1991, lluck3x3, royalcrd, cuoreuno, royalcrd, 0, ROT0, "TAB Austria", "Lucky Lady (3x3 deal)", 0, layout_jollycrd ) |
| r9535 | r9536 | |
| 4342 | 4369 | GAME( 199?, mongolnw, 0, royalcd1, royalcrd, 0, ROT0, "bootleg", "Mongolfier New (Italian)", GAME_NOT_WORKING ) |
| 4343 | 4370 | GAME( 199?, soccernw, 0, royalcd1, royalcrd, soccernw, ROT0, "bootleg", "Soccer New (Italian)", GAME_NOT_WORKING ) |
| 4344 | 4371 | GAME( 198?, saloon, 0, saloon, saloon, saloon, ROT0, "<unknown>", "Saloon (French, encrypted)", GAME_NOT_WORKING ) |
| 4345 | GAME( 198?, funquiz, 0, funquiz, funquiz, 0, ROT0, "Funworld | |
| 4372 | GAME( 198?, funquiz, 0, funquiz, funquiz, 0, ROT0, "Funworld | |
| 4346 | 4373 |
| r9535 | r9536 | |
|---|---|---|
| 1776 | 1776 | { |
| 1777 | 1777 | case 0x0000/2: |
| 1778 | 1778 | if (((state->mj_last_val ^ data) & 4) && (data & 4)) |
| 1779 | { | |
| 1780 | 1779 | state->mj_input_num = (state->mj_input_num + 1) % 6; |
| 1781 | state->mj_last_val = data; | |
| 1782 | } | |
| 1780 | ||
| 1781 | state->mj_last_val = data; | |
| 1783 | 1782 | break; |
| 1784 | 1783 | } |
| 1785 | 1784 | standard_io_w(space, offset, data, mem_mask); |
| r9535 | r9536 | |
| 4872 | 4871 | Golden Axe (Japan), Sega System 16B |
| 4873 | 4872 | CPU: FD1094 (317-0121) |
| 4874 | 4873 | ROM Board: 171-5704 |
| 4874 | Sega ID# for ROM board: 834-7002-04 | |
| 4875 | 4875 | */ |
| 4876 | 4876 | ROM_START( goldnaxej ) |
| 4877 | 4877 | ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 code */ |
| r9535 | r9536 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | CPU: Z80 or TLCS-90 |
| 9 | 9 | Video: Framebuffer |
| 10 | Sound: AY-3-8910 | |
| 10 | Sound: AY-3-8910 (or YM2149) | |
| 11 | 11 | OSC: 18.432MHz and 8MHz |
| 12 | 12 | |
| 13 | --------------------------------------------------------------------------------------------------------------------- | |
| 14 | Year + Game Board(s) CPU Company Notes | |
| 15 | --------------------------------------------------------------------------------------------------------------------- | |
| 16 | 81 Royal Mahjong Z80 Nichibutsu | |
| 17 | 81? Open Mahjong Z80 Sapporo Mechanic | |
| 18 | 82 Royal Mahjong ? + FRM-03 Z80 Falcon bootleg | |
| 19 | 83 Janyou Part II Z80 Cosmo Denshi | |
| 20 | 84? Jan Oh FRM-00? Z80 Toaplan Incomplete program roms | |
| 21 | 86 Ippatsu Gyakuten Z80 Public/Paradais | |
| 22 | 86 Don Den Mahjong D039198L-0 Z80 Dyna Electronics | |
| 23 | 86 Watashiha Suzumechan D8803288L1-0 Z80 Dyna Electronics | |
| 24 | 87 Mahjong Diplomat D0706088L1-0 Z80 Dynax | |
| 25 | 87 Mahjong Studio 101 D1708228L1 Z80 Dynax | |
| 26 | 87 Tonton D0908288L1-0 Z80 Dynax | |
| 27 | 88 Almond Pinky D1401128L-0 + RM-1D Z80 Dynax | |
| 28 | 89 Mahjong Shinkirou D210301BL2 + FRM-00? TLCS-90 Dynax | |
| 29 | 89 Mahjong Derringer D2203018L Z80 Dynax Larger palette | |
| 30 | 90 Mahjong If..? D2909278L TLCS-90 Dynax Larger palette | |
| 31 | 91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Undumped internal rom (mjvegas set) | |
| 32 | 92 Mahjong Cafe Time D6310128L1-1 TLCS-90 Dynax Larger palette, RTC | |
| 33 | 93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal rom | |
| 34 | 95 Mahjong Tensinhai D10010318L1 TLCS-90 Dynax Larger palette, RTC | |
| 35 | 96 Janputer '96 NS503X0727 Z80 Dynax Larger palette, RTC | |
| 36 | 99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal rom | |
| 37 | --------------------------------------------------------------------------------------------------------------------- | |
| 13 | ----------------------------------------------------------------------------------------------------------------------- | |
| 14 | Year + Game Board(s) CPU Company Notes | |
| 15 | ----------------------------------------------------------------------------------------------------------------------- | |
| 16 | 81 Royal Mahjong Z80 Nichibutsu | |
| 17 | 81? Open Mahjong Z80 Sapporo Mechanic | |
| 18 | 82 Royal Mahjong ? + FRM-03 Z80 Falcon bootleg | |
| 19 | 83 Janyou Part II Z80 Cosmo Denshi | |
| 20 | 84? Jan Oh FRM-00? Z80 Toaplan Incomplete program roms | |
| 21 | 86 Ippatsu Gyakuten Z80 Public/Paradais | |
| 22 | 86 Don Den Mahjong D039198L-0 Z80 Dyna Electronics | |
| 23 | 86 Watashiha Suzumechan D8803288L1-0 Z80 Dyna Electronics | |
| 24 | 87 Mahjong Diplomat D0706088L1-0 Z80 Dynax | |
| 25 | 87 Mahjong Studio 101 D1708228L1 Z80 Dynax | |
| 26 | 87 Tonton D0908288L1-0 Z80 Dynax | |
| 27 | 88 Almond Pinky D1401128L-0 + RM-1D Z80 Dynax | |
| 28 | 89 Mahjong Shinkirou D210301BL2 + FRM-00? TLCS-90 Dynax | |
| 29 | 89 Mahjong Derringer D2203018L Z80 Dynax Larger palette | |
| 30 | 90 Mahjong If..? D2909278L TLCS-90 Dynax Larger palette | |
| 31 | 91 Mahjong Vegas D5011308L1 + FRM-00 TLCS-90 Dynax Undumped internal rom (mjvegas set) | |
| 32 | 92 Mahjong Cafe Time D6310128L1-1 TLCS-90 Dynax Larger palette, RTC | |
| 33 | 93 Mahjong Cafe Doll D76052208L-2 TLCS-90 Dynax Larger palette, RTC, Undumped internal rom | |
| 34 | 95 Mahjong Tensinhai D10010318L1 TLCS-90 Dynax Larger palette, RTC | |
| 35 | 96 Janputer '96 NS503X0727 Z80 Dynax Larger palette, RTC | |
| 36 | 97 Janputer Special CS166P008 + NS5110207 Z80 Dynax Larger palette, RTC | |
| 37 | 99 Mahjong Cafe Break NS528-9812 TLCS-90 Nakanihon / Dynax Undumped internal rom | |
| 38 | ----------------------------------------------------------------------------------------------------------------------- | |
| 38 | 39 | |
| 39 | 40 | TODO: |
| 40 | 41 | |
| r9535 | r9536 | |
| 80 | 81 | front of a random combination. It's value remains *1 though. |
| 81 | 82 | Could it be a leftover from another game ('tontonb' for exemple) ? |
| 82 | 83 | |
| 83 | - janptr96: in service mode press in sequence N,Ron,Ron,N to access some | |
| 84 | - janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to access some | |
| 84 | 85 | hidden options. (thanks bnathan) |
| 85 | 86 | |
| 86 | 87 | 2009-03-25 FP: fixed verified DSW and default settings for mjclub (thanks to |
| r9535 | r9536 | |
| 3254 | 3255 | } |
| 3255 | 3256 | |
| 3256 | 3257 | static MACHINE_CONFIG_DERIVED( janptr96, mjderngr ) |
| 3257 | MDRV_CPU_REPLACE("maincpu",Z80, | |
| 3258 | MDRV_CPU_REPLACE("maincpu",Z80,XTAL_16MHz/2) /* 8 MHz? */ | |
| 3258 | 3259 | MDRV_CPU_PROGRAM_MAP(janptr96_map) |
| 3259 | 3260 | MDRV_CPU_IO_MAP(janptr96_iomap) |
| 3260 | 3261 | MDRV_CPU_VBLANK_INT_HACK(janptr96_interrupt,3) /* IM 2 needs a vector on the data bus */ |
| r9535 | r9536 | |
| 3710 | 3711 | |
| 3711 | 3712 | /*************************************************************************** |
| 3712 | 3713 | |
| 3713 | Colour proms are TBP28S42's | |
| 3714 | Janputer '96 | |
| 3715 | (c)1996 Dynax | |
| 3714 | 3716 | |
| 3717 | Colour proms are TBP28S42's | |
| 3718 | ||
| 3715 | 3719 | ***************************************************************************/ |
| 3716 | 3720 | |
| 3717 | 3721 | ROM_START( janptr96 ) |
| r9535 | r9536 | |
| 3731 | 3735 | |
| 3732 | 3736 | /*************************************************************************** |
| 3733 | 3737 | |
| 3738 | Janputer Special | |
| 3739 | (c)1997 Dynax | |
| 3740 | ||
| 3741 | Colour proms are TBP28642's | |
| 3742 | ||
| 3743 | ***************************************************************************/ | |
| 3744 | ||
| 3745 | ROM_START( janptrsp ) | |
| 3746 | ROM_REGION( 0x210000, "maincpu", 0 ) | |
| 3747 | ROM_LOAD( "ns51101.1h", 0x000000, 0x80000, CRC(44492ca1) SHA1(49e3dc9872a26e446599deb47161b8f52e4968c4) ) | |
| 3748 | /* bank switched ROMs follow */ | |
| 3749 | ROM_RELOAD( 0x010000, 0x80000 ) | |
| 3750 | ROM_LOAD( "ns51102.1g", 0x090000, 0x80000, CRC(01e6aa19) SHA1(a761fe69fb69c0bf101033e71813742c9fc2d747) ) | |
| 3751 | ROM_LOAD( "ns51103.1f", 0x110000, 0x80000, CRC(0fc94805) SHA1(035002e8354673a063faacd3cb91d0512cab677a) ) | |
| 3752 | ROM_LOAD( "ns51104.1e", 0x190000, 0x80000, CRC(00442508) SHA1(268cc0c76bb9c21213c941952dbc891778ad397e) ) | |
| 3753 | ||
| 3754 | ROM_REGION( 0x400, "proms", 0 ) | |
| 3755 | ROM_LOAD( "ns511b.3h", 0x000, 0x200, CRC(1286434f) SHA1(6818549d0e8b231d7071e67923f47b96fc6e1bb6) ) | |
| 3756 | ROM_LOAD( "ns511a.3j", 0x200, 0x200, CRC(26b6714c) SHA1(0d110c1e3f7050a3c4ecbed630a0a8b522f1b0b0) ) | |
| 3757 | ROM_END | |
| 3758 | ||
| 3759 | /*************************************************************************** | |
| 3760 | ||
| 3734 | 3761 | Mahjong Tensinhai |
| 3735 | 3762 | Dynax, 1995 |
| 3736 | 3763 | |
| r9535 | r9536 | |
| 4657 | 4684 | GAME( 1993, cafedoll, 0, mjifb, mjifb, 0, ROT0, "Dynax", "Mahjong Cafe Doll (Japan)", GAME_NOT_WORKING ) |
| 4658 | 4685 | GAME( 1995, mjtensin, 0, mjtensin, mjtensin, 0, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", GAME_NOT_WORKING ) |
| 4659 | 4686 | GAME( 1996, janptr96, 0, janptr96, janptr96, janptr96, ROT0, "Dynax", "Janputer '96 (Japan)", 0 ) |
| 4687 | GAME( 1997, janptrsp, 0, janptr96, janptr96, janptr96, ROT0, "Dynax", "Janputer Special (Japan)", 0 ) | |
| 4660 | 4688 | GAME( 1999, cafebrk, 0, mjifb, mjifb, 0, ROT0, "Nakanihon / Dynax", "Mahjong Cafe Break", GAME_NOT_WORKING ) |
| r9535 | r9536 | |
|---|---|---|
| 69 | 69 | // This function is responsible for initializing the OSD-specific |
| 70 | 70 | // video and input functionality, and registering that functionality |
| 71 | 71 | // with the MAME core. |
| 72 | // | |
| 72 | // | |
| 73 | 73 | // In terms of video, this function is expected to create one or more |
| 74 | 74 | // render_targets that will be used by the MAME core to provide graphics |
| 75 | 75 | // data to the system. Although it is possible to do this later, the |
| 76 | 76 | // assumption in the MAME core is that the user interface will be |
| 77 | 77 | // visible starting at init() time, so you will have some work to |
| 78 | 78 | // do to avoid these assumptions. |
| 79 | // | |
| 79 | // | |
| 80 | 80 | // In terms of input, this function is expected to enumerate all input |
| 81 | 81 | // devices available and describe them to the MAME core by adding |
| 82 | 82 | // input devices and their attached items (buttons/axes) via the input |
| 83 | 83 | // system. |
| 84 | // | |
| 84 | // | |
| 85 | 85 | // Beyond these core responsibilities, init() should also initialize |
| 86 | 86 | // any other OSD systems that require information about the current |
| 87 | 87 | // running_machine. |
| 88 | // | |
| 88 | // | |
| 89 | 89 | // This callback is also the last opportunity to adjust the options |
| 90 | 90 | // before they are consumed by the rest of the core. |
| 91 | // | |
| 91 | // | |
| 92 | 92 | // Future work/changes: |
| 93 | // | |
| 93 | // | |
| 94 | 94 | // Audio initialization may eventually move into here as well, |
| 95 | 95 | // instead of relying on independent callbacks from each system. |
| 96 | 96 | // |
| r9535 | r9536 | |
| 141 | 141 | // |
| 142 | 142 | // When implementing an OSD-driver debugger, this method should be |
| 143 | 143 | // overridden to wait for input, process it, and return. It will be |
| 144 | // called repeatedly until a command is issued that resumes | |
| 144 | // called repeatedly until a command is issued that resumes | |
| 145 | 145 | // execution. |
| 146 | 146 | // |
| 147 | 147 | } |
| r9535 | r9536 | |
| 169 | 169 | void osd_interface::set_mastervolume(int attenuation) |
| 170 | 170 | { |
| 171 | 171 | // |
| 172 | // Attenuation is the attenuation in dB (a negative number). | |
| 172 | // Attenuation is the attenuation in dB (a negative number). | |
| 173 | 173 | // To convert from dB to a linear volume scale do the following: |
| 174 | 174 | // volume = MAX_VOLUME; |
| 175 | 175 | // while (attenuation++ < 0) |
| r9535 | r9536 | |
| 222 | 222 | //------------------------------------------------- |
| 223 | 223 | // font_get_bitmap - allocate and populate a |
| 224 | 224 | // BITMAP_FORMAT_ARGB32 bitmap containing the |
| 225 | // pixel values MAKE_ARGB(0xff,0xff,0xff,0xff) | |
| 225 | // pixel values MAKE_ARGB(0xff,0xff,0xff,0xff) | |
| 226 | 226 | // or MAKE_ARGB(0x00,0xff,0xff,0xff) for each |
| 227 | 227 | // pixel of a black & white font |
| 228 | 228 | //------------------------------------------------- |
| r9535 | r9536 | |
|---|---|---|
| 53 | 53 | // construction/destruction |
| 54 | 54 | mini_osd_interface(); |
| 55 | 55 | virtual ~mini_osd_interface(); |
| 56 | ||
| 56 | ||
| 57 | 57 | // general overridables |
| 58 | 58 | virtual void init(running_machine &machine); |
| 59 | 59 | virtual void update(bool skip_redraw); |
| 60 | 60 | |
| 61 | 61 | // debugger overridables |
| 62 | // virtual void init_debugger(); | |
| 63 | // virtual void wait_for_debugger(device_t &device, bool firststop); | |
| 64 | ||
| 62 | // virtual void init_debugger(); | |
| 63 | // virtual void wait_for_debugger(device_t &device, bool firststop); | |
| 64 | ||
| 65 | 65 | // audio overridables |
| 66 | 66 | virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame); |
| 67 | 67 | virtual void set_mastervolume(int attenuation); |
| 68 | 68 | |
| 69 | 69 | // input overridables |
| 70 | 70 | virtual void customize_input_type_list(input_type_desc *typelist); |
| 71 | ||
| 71 | ||
| 72 | 72 | private: |
| 73 | 73 | static void osd_exit(running_machine &machine); |
| 74 | 74 | }; |
| r9535 | r9536 | |
|---|---|---|
| 183 | 183 | result->name = (char *)(result + 1); |
| 184 | 184 | result->type = ENTTYPE_NONE; |
| 185 | 185 | result->size = 0; |
| 186 | ||
| 186 | ||
| 187 | 187 | FILE *f = fopen(path, "rb"); |
| 188 | 188 | if (f != NULL) |
| 189 | 189 | { |
| r9535 | r9536 | |
|---|---|---|
| 128 | 128 | // construction/destruction |
| 129 | 129 | sdl_osd_interface(); |
| 130 | 130 | virtual ~sdl_osd_interface(); |
| 131 | ||
| 131 | ||
| 132 | 132 | // general overridables |
| 133 | 133 | virtual void init(running_machine &machine); |
| 134 | 134 | virtual void update(bool skip_redraw); |
| r9535 | r9536 | |
| 136 | 136 | // debugger overridables |
| 137 | 137 | virtual void init_debugger(); |
| 138 | 138 | virtual void wait_for_debugger(device_t &device, bool firststop); |
| 139 | ||
| 139 | ||
| 140 | 140 | // audio overridables |
| 141 | 141 | virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame); |
| 142 | 142 | virtual void set_mastervolume(int attenuation); |
| 143 | 143 | |
| 144 | 144 | // input overridables |
| 145 | 145 | virtual void customize_input_type_list(input_type_desc *typelist); |
| 146 | ||
| 146 | ||
| 147 | 147 | private: |
| 148 | 148 | static void osd_exit(running_machine &machine); |
| 149 | 149 | }; |
| r9535 | r9536 | |
|---|---|---|
| 66 | 66 | // construction/destruction |
| 67 | 67 | osd_interface(); |
| 68 | 68 | virtual ~osd_interface(); |
| 69 | ||
| 69 | ||
| 70 | 70 | // getters |
| 71 | 71 | running_machine &machine() const { assert(m_machine != NULL); return *m_machine; } |
| 72 | 72 | |
| r9535 | r9536 | |
| 77 | 77 | // debugger overridables |
| 78 | 78 | virtual void init_debugger(); |
| 79 | 79 | virtual void wait_for_debugger(device_t &device, bool firststop); |
| 80 | ||
| 80 | ||
| 81 | 81 | // audio overridables |
| 82 | 82 | virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame); |
| 83 | 83 | virtual void set_mastervolume(int attenuation); |
| 84 | 84 | |
| 85 | 85 | // input overridables |
| 86 | 86 | virtual void customize_input_type_list(input_type_desc *typelist); |
| 87 | ||
| 87 | ||
| 88 | 88 | // font overridables |
| 89 | 89 | virtual osd_font font_open(const char *name, int &height); |
| 90 | 90 | virtual void font_close(osd_font font); |
| r9535 | r9536 | |
|---|---|---|
| 693 | 693 | _tcsncpy(logfont.lfFaceName, face, sizeof(logfont.lfFaceName) / sizeof(TCHAR)); |
| 694 | 694 | logfont.lfFaceName[sizeof(logfont.lfFaceName) / sizeof(TCHAR) - 1] = 0; |
| 695 | 695 | osd_free(face); |
| 696 | ||
| 696 | ||
| 697 | 697 | // create the font |
| 698 | 698 | height = logfont.lfHeight; |
| 699 | 699 | osd_font font = reinterpret_cast<osd_font>(CreateFontIndirect(&logfont)); |
| 700 | 700 | if (font == NULL) |
| 701 | 701 | return NULL; |
| 702 | ||
| 702 | ||
| 703 | 703 | // select it into a temp DC and get the real font name |
| 704 | 704 | HDC dummyDC = CreateCompatibleDC(NULL); |
| 705 | 705 | HGDIOBJ oldfont = SelectObject(dummyDC, reinterpret_cast<HGDIOBJ>(font)); |
| r9535 | r9536 | |
| 707 | 707 | GetTextFace(dummyDC, ARRAY_LENGTH(realname), realname); |
| 708 | 708 | SelectObject(dummyDC, oldfont); |
| 709 | 709 | DeleteDC(dummyDC); |
| 710 | ||
| 710 | ||
| 711 | 711 | // if it doesn't match our request, fail |
| 712 | 712 | char *utf = utf8_from_tstring(realname); |
| 713 | 713 | int result = mame_stricmp(utf, name); |
| 714 | 714 | osd_free(utf); |
| 715 | 715 | |
| 716 | // if we didn't match, nuke our font and fall back | |
| 716 | // if we didn't match, nuke our font and fall back | |
| 717 | 717 | if (result != 0) |
| 718 | 718 | { |
| 719 | 719 | DeleteObject(reinterpret_cast<HFONT>(font)); |
| r9535 | r9536 | |
| 739 | 739 | //------------------------------------------------- |
| 740 | 740 | // font_get_bitmap - allocate and populate a |
| 741 | 741 | // BITMAP_FORMAT_ARGB32 bitmap containing the |
| 742 | // pixel values MAKE_ARGB(0xff,0xff,0xff,0xff) | |
| 742 | // pixel values MAKE_ARGB(0xff,0xff,0xff,0xff) | |
| 743 | 743 | // or MAKE_ARGB(0x00,0xff,0xff,0xff) for each |
| 744 | 744 | // pixel of a black & white font |
| 745 | 745 | //------------------------------------------------- |
| r9535 | r9536 | |
| 749 | 749 | // create a dummy DC to work with |
| 750 | 750 | HDC dummyDC = CreateCompatibleDC(NULL); |
| 751 | 751 | HGDIOBJ oldfont = SelectObject(dummyDC, reinterpret_cast<HGDIOBJ>(font)); |
| 752 | ||
| 752 | ||
| 753 | 753 | // get the text metrics |
| 754 | 754 | TEXTMETRIC metrics = { 0 }; |
| 755 | 755 | GetTextMetrics(dummyDC, &metrics); |
| r9535 | r9536 | |
| 763 | 763 | GetCharWidth32(dummyDC, chnum, chnum, reinterpret_cast<LPINT>(&abc.abcB)); |
| 764 | 764 | } |
| 765 | 765 | width = abc.abcA + abc.abcB + abc.abcC; |
| 766 | ||
| 766 | ||
| 767 | 767 | // determine desired bitmap size |
| 768 | 768 | int bmwidth = (50 + abc.abcA + abc.abcB + abc.abcC + 50 + 31) & ~31; |
| 769 | 769 | int bmheight = 50 + metrics.tmHeight + 50; |
| 770 | ||
| 770 | ||
| 771 | 771 | // describe the bitmap we want |
| 772 | 772 | BYTE bitmapinfodata[sizeof(BITMAPINFOHEADER) + 2 * sizeof(RGBQUAD)] = { 0 }; |
| 773 | 773 | BITMAPINFO &info = *reinterpret_cast<BITMAPINFO *>(bitmapinfodata); |
| r9535 | r9536 | |
| 784 | 784 | info.bmiHeader.biClrImportant = 0; |
| 785 | 785 | info.bmiColors[0].rgbBlue = info.bmiColors[0].rgbGreen = info.bmiColors[0].rgbRed = 0x00; |
| 786 | 786 | info.bmiColors[1].rgbBlue = info.bmiColors[1].rgbGreen = info.bmiColors[1].rgbRed = 0xff; |
| 787 | ||
| 787 | ||
| 788 | 788 | // create a DIB to render to |
| 789 | 789 | BYTE *bits; |
| 790 | 790 | HBITMAP dib = CreateDIBSection(dummyDC, &info, DIB_RGB_COLORS, reinterpret_cast<VOID **>(&bits), NULL, 0); |
| r9535 | r9536 | |
| 793 | 793 | // clear the bitmap |
| 794 | 794 | int rowbytes = bmwidth / 8; |
| 795 | 795 | memset(bits, 0, rowbytes * bmheight); |
| 796 | ||
| 796 | ||
| 797 | 797 | // now draw the character |
| 798 | 798 | WCHAR tempchar = chnum; |
| 799 | 799 | SetTextColor(dummyDC, RGB(0xff,0xff,0xff)); |
| r9535 | r9536 | |
| 804 | 804 | rectangle actbounds; |
| 805 | 805 | actbounds.min_y = 50; |
| 806 | 806 | actbounds.max_y = 50 + metrics.tmHeight - 1; |
| 807 | ||
| 807 | ||
| 808 | 808 | // determine the actual left of the character |
| 809 | 809 | for (actbounds.min_x = 0; actbounds.min_x < rowbytes; actbounds.min_x++) |
| 810 | 810 | { |
| r9535 | r9536 | |
| 825 | 825 | break; |
| 826 | 826 | } |
| 827 | 827 | } |
| 828 | ||
| 828 | ||
| 829 | 829 | // determine the actual right of the character |
| 830 | 830 | for (actbounds.max_x = rowbytes - 1; actbounds.max_x >= 0; actbounds.max_x--) |
| 831 | 831 | { |
| r9535 | r9536 | |
| 846 | 846 | break; |
| 847 | 847 | } |
| 848 | 848 | } |
| 849 | ||
| 849 | ||
| 850 | 850 | // allocate a new bitmap |
| 851 | 851 | bitmap_t *bitmap = NULL; |
| 852 | 852 | if (actbounds.max_x >= actbounds.min_x && actbounds.max_y >= actbounds.min_y) |
| r9535 | r9536 | |
| 864 | 864 | dstrow[x] = ((srcrow[effx / 8] << (effx % 8)) & 0x80) ? MAKE_ARGB(0xff,0xff,0xff,0xff) : MAKE_ARGB(0x00,0xff,0xff,0xff); |
| 865 | 865 | } |
| 866 | 866 | } |
| 867 | ||
| 867 | ||
| 868 | 868 | // set the final offset values |
| 869 | 869 | xoffs = actbounds.min_x - (50 + abc.abcA); |
| 870 | 870 | yoffs = actbounds.max_y - (50 + metrics.tmAscent); |
| r9535 | r9536 | |
|---|---|---|
| 140 | 140 | // construction/destruction |
| 141 | 141 | windows_osd_interface(); |
| 142 | 142 | virtual ~windows_osd_interface(); |
| 143 | ||
| 143 | ||
| 144 | 144 | // general overridables |
| 145 | 145 | virtual void init(running_machine &machine); |
| 146 | 146 | virtual void update(bool skip_redraw); |
| 147 | 147 | |
| 148 | 148 | // debugger overridables |
| 149 | // | |
| 149 | // virtual void init_debugger(); | |
| 150 | 150 | virtual void wait_for_debugger(device_t &device, bool firststop); |
| 151 | ||
| 151 | ||
| 152 | 152 | // audio overridables |
| 153 | 153 | virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame); |
| 154 | 154 | virtual void set_mastervolume(int attenuation); |
| 155 | 155 | |
| 156 | 156 | // input overridables |
| 157 | 157 | virtual void customize_input_type_list(input_type_desc *typelist); |
| 158 | ||
| 158 | ||
| 159 | 159 | // font overridables |
| 160 | 160 | virtual osd_font font_open(const char *name, int &height); |
| 161 | 161 | virtual void font_close(osd_font font); |
| 162 | 162 | virtual bitmap_t *font_get_bitmap(osd_font font, unicode_char chnum, INT32 &width, INT32 &xoffs, INT32 &yoffs); |
| 163 | ||
| 163 | ||
| 164 | 164 | private: |
| 165 | 165 | static void osd_exit(running_machine &machine); |
| 166 | ||
| 166 | ||
| 167 | 167 | static const int DEFAULT_FONT_HEIGHT = 200; |
| 168 | 168 | }; |
| 169 | 169 |
| r9535 | r9536 | |
|---|---|---|
| 114 | 114 | |
| 115 | 115 | // operators |
| 116 | 116 | operator error_code() const { return m_code; } |
| 117 | ||
| 117 | ||
| 118 | 118 | // getters |
| 119 | 119 | error_code code() const { return m_code; } |
| 120 | 120 | int offset() const { return m_offset; } |
| r9535 | r9536 | |
| 134 | 134 | { |
| 135 | 135 | friend class tagged_list<symbol_entry>; |
| 136 | 136 | |
| 137 | protected: | |
| 137 | protected: | |
| 138 | 138 | // symbol types |
| 139 | 139 | enum symbol_type |
| 140 | 140 | { |
| r9535 | r9536 | |
| 150 | 150 | // getters |
| 151 | 151 | symbol_entry *next() const { return m_next; } |
| 152 | 152 | const char *name() const { return m_name; } |
| 153 | ||
| 153 | ||
| 154 | 154 | // type checking |
| 155 | 155 | bool is_function() const { return (m_type == SMT_FUNCTION); } |
| 156 | ||
| 156 | ||
| 157 | 157 | // symbol access |
| 158 | 158 | virtual bool is_lval() const = 0; |
| 159 | 159 | virtual UINT64 value() const = 0; |
| r9535 | r9536 | |
| 179 | 179 | // callback functions for getting/setting a symbol value |
| 180 | 180 | typedef UINT64 (*getter_func)(symbol_table &table, void *symref); |
| 181 | 181 | typedef void (*setter_func)(symbol_table &table, void *symref, UINT64 value); |
| 182 | ||
| 182 | ||
| 183 | 183 | // callback functions for function execution |
| 184 | 184 | typedef UINT64 (*execute_func)(symbol_table &table, void *symref, int numparams, const UINT64 *paramlist); |
| 185 | 185 | |
| r9535 | r9536 | |
| 196 | 196 | |
| 197 | 197 | // construction/destruction |
| 198 | 198 | symbol_table(void *globalref, symbol_table *parent = NULL); |
| 199 | ||
| 199 | ||
| 200 | 200 | // getters |
| 201 | 201 | symbol_entry *first() const { return m_symlist.first(); } |
| 202 | 202 | symbol_table *parent() const { return m_parent; } |
| 203 | 203 | void *globalref() const { return m_globalref; } |
| 204 | ||
| 204 | ||
| 205 | 205 | // setters |
| 206 | 206 | void configure_memory(void *param, valid_func valid, read_func read, write_func write); |
| 207 | ||
| 207 | ||
| 208 | 208 | // symbol access |
| 209 | 209 | void add(const char *name, read_write rw, UINT64 *ptr = NULL); |
| 210 | 210 | void add(const char *name, UINT64 constvalue); |
| 211 | 211 | void add(const char *name, void *ref, getter_func getter, setter_func setter = NULL); |
| 212 | 212 | void add(const char *name, void *ref, int minparams, int maxparams, execute_func execute); |
| 213 | 213 | symbol_entry *find(const char *name) { return m_symlist.find(name); } |
| 214 | ||
| 214 | symbol_entry *find_deep(const char *name); | |
| 215 | ||
| 215 | 216 | // value getter/setter |
| 216 | 217 | UINT64 value(const char *symbol); |
| 217 | 218 | void set_value(const char *symbol, UINT64 value); |
| r9535 | r9536 | |
| 252 | 253 | const char *original_string() const { return m_original_string; } |
| 253 | 254 | symbol_table *symbols() const { return m_symtable; } |
| 254 | 255 | |
| 255 | // setters | |
| 256 | // setters | |
| 256 | 257 | void set_symbols(symbol_table *symtable) { m_symtable = symtable; } |
| 257 | 258 | |
| 258 | 259 | // execution |
| r9535 | r9536 | |
| 264 | 265 | class parse_token |
| 265 | 266 | { |
| 266 | 267 | friend class simple_list<parse_token>; |
| 267 | ||
| 268 | ||
| 268 | 269 | // operator flags |
| 269 | 270 | enum |
| 270 | 271 | { |
| r9535 | r9536 | |
| 296 | 297 | public: |
| 297 | 298 | // construction/destruction |
| 298 | 299 | parse_token(int offset = 0); |
| 299 | ||
| 300 | ||
| 300 | 301 | // getters |
| 301 | 302 | parse_token *next() const { return m_next; } |
| 302 | 303 | int offset() const { return m_offset; } |
| r9535 | r9536 | |
| 327 | 328 | parse_token &configure_string(const char *string) { m_type = STRING; m_string = string; return *this; } |
| 328 | 329 | parse_token &configure_memory(UINT32 address, parse_token &memoryat) { m_type = MEMORY; m_value = address; m_flags = memoryat.m_flags; m_string = memoryat.m_string; return *this; } |
| 329 | 330 | parse_token &configure_symbol(symbol_entry &symbol) { m_type = SYMBOL; m_symbol = &symbol; return *this; } |
| 330 | parse_token &configure_operator(UINT8 optype, UINT8 precedence) | |
| 331 | parse_token &configure_operator(UINT8 optype, UINT8 precedence) | |
| 331 | 332 | { m_type = OPERATOR; m_flags = ((optype << TIN_OPTYPE_SHIFT) & TIN_OPTYPE_MASK) | ((precedence << TIN_PRECEDENCE_SHIFT) & TIN_PRECEDENCE_MASK); return *this; } |
| 332 | 333 | |
| 333 | 334 | parse_token &set_function_separator() { assert(m_type == OPERATOR); m_flags |= TIN_FUNCTION_MASK; return *this; } |
| r9535 | r9536 | |
| 335 | 336 | parse_token &set_memory_space(expression_space space) { assert(m_type == OPERATOR || m_type == MEMORY); m_flags = (m_flags & ~TIN_MEMORY_SPACE_MASK) | ((space << TIN_MEMORY_SPACE_SHIFT) & TIN_MEMORY_SPACE_MASK); return *this; } |
| 336 | 337 | parse_token &set_memory_size(int log2ofbits) { assert(m_type == OPERATOR || m_type == MEMORY); m_flags = (m_flags & ~TIN_MEMORY_SIZE_MASK) | ((log2ofbits << TIN_MEMORY_SIZE_SHIFT) & TIN_MEMORY_SIZE_MASK); return *this; } |
| 337 | 338 | parse_token &set_memory_source(const char *string) { assert(m_type == OPERATOR || m_type == MEMORY); m_string = string; return *this; } |
| 338 | ||
| 339 | ||
| 339 | 340 | // access |
| 340 | 341 | UINT64 get_lval_value(symbol_table *symtable); |
| 341 | 342 | void set_lval_value(symbol_table *symtable, UINT64 value); |
| r9535 | r9536 | |
| 350 | 351 | const char * m_string; // associated string |
| 351 | 352 | symbol_entry * m_symbol; // symbol pointer |
| 352 | 353 | }; |
| 353 | ||
| 354 | ||
| 354 | 355 | // an expression_string holds an indexed string parsed from the expression |
| 355 | 356 | class expression_string |
| 356 | 357 | { |
| 357 | 358 | friend class simple_list<expression_string>; |
| 358 | ||
| 359 | ||
| 359 | 360 | public: |
| 360 | 361 | // construction/destruction |
| 361 | 362 | expression_string(const char *string, int length = 0) |
| 362 | 363 | : m_next(NULL), |
| 363 | 364 | m_string(string, (length == 0) ? strlen(string) : length) { } |
| 364 | ||
| 365 | ||
| 365 | 366 | // operators |
| 366 | 367 | operator const char *() { return m_string; } |
| 367 | 368 | operator const char *() const { return m_string; } |
| 368 | ||
| 369 | ||
| 369 | 370 | private: |
| 370 | 371 | // internal state |
| 371 | 372 | expression_string * m_next; // next string in list |
| r9535 | r9536 | |
| 375 | 376 | // internal helpers |
| 376 | 377 | void copy(const parsed_expression &src); |
| 377 | 378 | void print_tokens(FILE *out); |
| 378 | ||
| 379 | ||
| 379 | 380 | // parsing helpers |
| 380 | 381 | void parse_string_into_tokens(); |
| 381 | 382 | void parse_symbol_or_number(parse_token &token, const char *&string); |
| r9535 | r9536 | |
|---|---|---|
| 154 | 154 | |
| 155 | 155 | /* create a global symbol table */ |
| 156 | 156 | global->symtable = global_alloc(symbol_table(machine)); |
| 157 | ||
| 157 | ||
| 158 | 158 | // configure our base memory accessors |
| 159 | 159 | debug_cpu_configure_memory(*machine, *global->symtable); |
| 160 | 160 |
| r9535 | r9536 | |
|---|---|---|
| 97 | 97 | int m_index; // user reported index |
| 98 | 98 | UINT8 m_enabled; // enabled? |
| 99 | 99 | offs_t m_address; // execution address |
| 100 | parsed_expression | |
| 100 | parsed_expression | |
| 101 | 101 | astring m_action; // action |
| 102 | 102 | }; |
| 103 | 103 |
| r9535 | r9536 | |
|---|---|---|
| 581 | 581 | |
| 582 | 582 | void debug_view_expression::set_context(symbol_table *context) |
| 583 | 583 | { |
| 584 | m_parsed.set_symbols((context != NULL) ? context : debug_cpu_get_global_symtable(&m_machine)); | |
| 584 | m_parsed.set_symbols((context != NULL) ? context : debug_cpu_get_global_symtable(&m_machine)); | |
| 585 | 585 | m_dirty = true; |
| 586 | 586 | } |
| 587 | 587 |
| r9535 | r9536 | |
|---|---|---|
| 1163 | 1163 | |
| 1164 | 1164 | static void execute_bpset(running_machine *machine, int ref, int params, const char *param[]) |
| 1165 | 1165 | { |
| 1166 | parsed_expression condition(debug_cpu_get_global_symtable(machine)); | |
| 1167 | 1166 | device_t *cpu; |
| 1168 | 1167 | const char *action = NULL; |
| 1169 | 1168 | UINT64 address; |
| 1170 | 1169 | int bpnum; |
| 1171 | 1170 | |
| 1171 | /* CPU is implicit */ | |
| 1172 | if (!debug_command_parameter_cpu(machine, NULL, &cpu)) | |
| 1173 | return; | |
| 1174 | ||
| 1172 | 1175 | /* param 1 is the address */ |
| 1173 | 1176 | if (!debug_command_parameter_number(machine, param[0], &address)) |
| 1174 | 1177 | return; |
| 1175 | 1178 | |
| 1176 | 1179 | /* param 2 is the condition */ |
| 1180 | parsed_expression condition(&cpu->debug()->symtable()); | |
| 1177 | 1181 | if (!debug_command_parameter_expression(machine, param[1], condition)) |
| 1178 | 1182 | return; |
| 1179 | 1183 | |
| r9535 | r9536 | |
| 1181 | 1185 | if (!debug_command_parameter_command(machine, action = param[2])) |
| 1182 | 1186 | return; |
| 1183 | 1187 | |
| 1184 | /* CPU is implicit */ | |
| 1185 | if (!debug_command_parameter_cpu(machine, NULL, &cpu)) | |
| 1186 | return; | |
| 1187 | ||
| 1188 | 1188 | /* set the breakpoint */ |
| 1189 | 1189 | bpnum = cpu->debug()->breakpoint_set(address, (condition.is_empty()) ? NULL : condition.original_string(), action); |
| 1190 | 1190 | debug_console_printf(machine, "Breakpoint %X set\n", bpnum); |
| r9535 | r9536 | |
| 1303 | 1303 | |
| 1304 | 1304 | static void execute_wpset(running_machine *machine, int ref, int params, const char *param[]) |
| 1305 | 1305 | { |
| 1306 | parsed_expression condition(debug_cpu_get_global_symtable(machine)); | |
| 1307 | 1306 | address_space *space; |
| 1308 | 1307 | const char *action = NULL; |
| 1309 | 1308 | UINT64 address, length; |
| 1310 | 1309 | int type = 0; |
| 1311 | 1310 | int wpnum; |
| 1312 | 1311 | |
| 1312 | /* CPU is implicit */ | |
| 1313 | if (!debug_command_parameter_cpu_space(machine, NULL, ref, &space)) | |
| 1314 | return; | |
| 1315 | ||
| 1313 | 1316 | /* param 1 is the address */ |
| 1314 | 1317 | if (!debug_command_parameter_number(machine, param[0], &address)) |
| 1315 | 1318 | return; |
| r9535 | r9536 | |
| 1332 | 1335 | } |
| 1333 | 1336 | |
| 1334 | 1337 | /* param 4 is the condition */ |
| 1338 | parsed_expression condition(&space->cpu->debug()->symtable()); | |
| 1335 | 1339 | if (!debug_command_parameter_expression(machine, param[3], condition)) |
| 1336 | 1340 | return; |
| 1337 | 1341 | |
| r9535 | r9536 | |
| 1339 | 1343 | if (!debug_command_parameter_command(machine, action = param[4])) |
| 1340 | 1344 | return; |
| 1341 | 1345 | |
| 1342 | /* CPU is implicit */ | |
| 1343 | if (!debug_command_parameter_cpu_space(machine, NULL, ref, &space)) | |
| 1344 | return; | |
| 1345 | ||
| 1346 | 1346 | /* set the watchpoint */ |
| 1347 | 1347 | wpnum = space->cpu->debug()->watchpoint_set(*space, type, address, length, (condition.is_empty()) ? NULL : condition.original_string(), action); |
| 1348 | 1348 | debug_console_printf(machine, "Watchpoint %X set\n", wpnum); |
| r9535 | r9536 | |
|---|---|---|
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | |
| 3 | 3 | express.c |
| 4 | ||
| 4 | ||
| 5 | 5 | Generic expressions engine. |
| 6 | 6 | |
| 7 | 7 | **************************************************************************** |
| r9535 | r9536 | |
| 37 | 37 | |
| 38 | 38 | **************************************************************************** |
| 39 | 39 | |
| 40 | Operator precedence | |
| 41 | =================== | |
| 42 | 0x0000 ( ) | |
| 43 | 0x0001 ++ (postfix), -- (postfix) | |
| 44 | 0x0002 ++ (prefix), -- (prefix), ~, !, - (unary), + (unary), b@, w@, d@, q@ | |
| 45 | 0x0003 *, /, % | |
| 46 | 0x0004 + - | |
| 47 | 0x0005 << >> | |
| 48 | 0x0006 < <= > >= | |
| 49 | 0x0007 == != | |
| 50 | 0x0008 & | |
| 51 | 0x0009 ^ | |
| 52 | 0x000a | | |
| 53 | 0x000b && | |
| 54 | 0x000c || | |
| 55 | 0x000d = *= /= %= += -= <<= >>= &= |= ^= | |
| 56 | 0x000e , | |
| 57 | 0x000f func() | |
| 40 | Operator precedence | |
| 41 | =================== | |
| 42 | 0x0000 ( ) | |
| 43 | 0x0001 ++ (postfix), -- (postfix) | |
| 44 | 0x0002 ++ (prefix), -- (prefix), ~, !, - (unary), + (unary), b@, w@, d@, q@ | |
| 45 | 0x0003 *, /, % | |
| 46 | 0x0004 + - | |
| 47 | 0x0005 << >> | |
| 48 | 0x0006 < <= > >= | |
| 49 | 0x0007 == != | |
| 50 | 0x0008 & | |
| 51 | 0x0009 ^ | |
| 52 | 0x000a | | |
| 53 | 0x000b && | |
| 54 | 0x000c || | |
| 55 | 0x000d = *= /= %= += -= <<= >>= &= |= ^= | |
| 56 | 0x000e , | |
| 57 | 0x000f func() | |
| 58 | 58 | |
| 59 | 59 | ***************************************************************************/ |
| 60 | 60 | |
| r9535 | r9536 | |
| 155 | 155 | static UINT64 internal_getter(symbol_table &table, void *symref); |
| 156 | 156 | static void internal_setter(symbol_table &table, void *symref, UINT64 value); |
| 157 | 157 | |
| 158 | // internal state | |
| 159 | symbol_table::getter_func m_getter; | |
| 160 | symbol_table::setter_func m_setter; | |
| 158 | // internal state | |
| 159 | symbol_table::getter_func m_getter; | |
| 160 | symbol_table::setter_func m_setter; | |
| 161 | 161 | UINT64 m_value; |
| 162 | 162 | }; |
| 163 | 163 | |
| r9535 | r9536 | |
| 191 | 191 | //************************************************************************** |
| 192 | 192 | |
| 193 | 193 | //------------------------------------------------- |
| 194 | // code_string - return a friendly string for a | |
| 194 | // code_string - return a friendly string for a | |
| 195 | 195 | // given expression error |
| 196 | 196 | //------------------------------------------------- |
| 197 | 197 | |
| r9535 | r9536 | |
| 321 | 321 | |
| 322 | 322 | |
| 323 | 323 | //------------------------------------------------- |
| 324 | // internal_getter - internal helper for | |
| 324 | // internal_getter - internal helper for | |
| 325 | 325 | // returning the value of a variable |
| 326 | 326 | //------------------------------------------------- |
| 327 | 327 | |
| r9535 | r9536 | |
| 425 | 425 | |
| 426 | 426 | |
| 427 | 427 | //------------------------------------------------- |
| 428 | // add - add a new UINT64 pointer symbol | |
| 428 | // add - add a new UINT64 pointer symbol | |
| 429 | 429 | //------------------------------------------------- |
| 430 | 430 | |
| 431 | 431 | void symbol_table::configure_memory(void *param, valid_func valid, read_func read, write_func write) |
| r9535 | r9536 | |
| 438 | 438 | |
| 439 | 439 | |
| 440 | 440 | //------------------------------------------------- |
| 441 | // add - add a new UINT64 pointer symbol | |
| 441 | // add - add a new UINT64 pointer symbol | |
| 442 | 442 | //------------------------------------------------- |
| 443 | 443 | |
| 444 | 444 | void symbol_table::add(const char *name, read_write rw, UINT64 *ptr) |
| r9535 | r9536 | |
| 449 | 449 | |
| 450 | 450 | |
| 451 | 451 | //------------------------------------------------- |
| 452 | // add - add a new value symbol | |
| 452 | // add - add a new value symbol | |
| 453 | 453 | //------------------------------------------------- |
| 454 | 454 | |
| 455 | 455 | void symbol_table::add(const char *name, UINT64 value) |
| r9535 | r9536 | |
| 460 | 460 | |
| 461 | 461 | |
| 462 | 462 | //------------------------------------------------- |
| 463 | // add - add a new register symbol | |
| 463 | // add - add a new register symbol | |
| 464 | 464 | //------------------------------------------------- |
| 465 | 465 | |
| 466 | 466 | void symbol_table::add(const char *name, void *ref, getter_func getter, setter_func setter) |
| r9535 | r9536 | |
| 471 | 471 | |
| 472 | 472 | |
| 473 | 473 | //------------------------------------------------- |
| 474 | // add - add a new function symbol | |
| 474 | // add - add a new function symbol | |
| 475 | 475 | //------------------------------------------------- |
| 476 | 476 | |
| 477 | 477 | void symbol_table::add(const char *name, void *ref, int minparams, int maxparams, execute_func execute) |
| r9535 | r9536 | |
| 482 | 482 | |
| 483 | 483 | |
| 484 | 484 | //------------------------------------------------- |
| 485 | // value - return the value of a symbol | |
| 485 | // find_deep - do a deep search for a symbol, | |
| 486 | // looking in the parent if needed | |
| 486 | 487 | //------------------------------------------------- |
| 487 | 488 | |
| 488 | ||
| 489 | symbol_entry *symbol_table::find_deep(const char *symbol) | |
| 489 | 490 | { |
| 490 | 491 | // walk up the table hierarchy to find the owner |
| 491 | 492 | for (symbol_table *symtable = this; symtable != NULL; symtable = symtable->m_parent) |
| 492 | 493 | { |
| 493 | 494 | symbol_entry *entry = symtable->find(symbol); |
| 494 | 495 | if (entry != NULL) |
| 495 | return entry | |
| 496 | return entry | |
| 496 | 497 | } |
| 497 | return | |
| 498 | return NULL; | |
| 498 | 499 | } |
| 499 | 500 | |
| 500 | 501 | |
| 501 | 502 | //------------------------------------------------- |
| 502 | // | |
| 503 | // | |
| 503 | 504 | //------------------------------------------------- |
| 504 | 505 | |
| 506 | UINT64 symbol_table::value(const char *symbol) | |
| 507 | { | |
| 508 | symbol_entry *entry = find_deep(symbol); | |
| 509 | return (entry != NULL) ? entry->value() : 0; | |
| 510 | } | |
| 511 | ||
| 512 | ||
| 513 | //------------------------------------------------- | |
| 514 | // set_value - set the value of a symbol | |
| 515 | //------------------------------------------------- | |
| 516 | ||
| 505 | 517 | void symbol_table::set_value(const char *symbol, UINT64 value) |
| 506 | 518 | { |
| 507 | // walk up the table hierarchy to find the owner | |
| 508 | for (symbol_table *symtable = this; symtable != NULL; symtable = symtable->m_parent) | |
| 509 | { | |
| 510 | symbol_entry *entry = symtable->find(symbol); | |
| 511 | if (entry != NULL) | |
| 512 | { | |
| 513 | entry->set_value(value); | |
| 514 | return; | |
| 515 | } | |
| 516 | } | |
| 519 | symbol_entry *entry = find_deep(symbol); | |
| 520 | if (entry != NULL) | |
| 521 | entry->set_value(value); | |
| 517 | 522 | } |
| 518 | 523 | |
| 519 | 524 | |
| r9535 | r9536 | |
| 588 | 593 | // if we got an expression parse it |
| 589 | 594 | if (expression != NULL) |
| 590 | 595 | parse(expression); |
| 591 | ||
| 596 | ||
| 592 | 597 | // if we get a result pointer, execute it |
| 593 | 598 | if (result != NULL) |
| 594 | 599 | *result = execute(); |
| r9535 | r9536 | |
| 951 | 956 | // if we have an 0x prefix, we must be a hex value |
| 952 | 957 | if (buffer[0] == '0' && buffer[1] == 'x') |
| 953 | 958 | return parse_number(token, &buffer[2], 16, expression_error::INVALID_NUMBER); |
| 954 | ||
| 959 | ||
| 955 | 960 | // if we have a # prefix, we must be a decimal value |
| 956 | 961 | if (buffer[0] == '#') |
| 957 | 962 | return parse_number(token, &buffer[1], 10, expression_error::INVALID_NUMBER); |
| r9535 | r9536 | |
| 959 | 964 | // if we have a $ prefix, we are a hex value |
| 960 | 965 | if (buffer[0] == '$') |
| 961 | 966 | return parse_number(token, &buffer[1], 16, expression_error::INVALID_NUMBER); |
| 962 | ||
| 967 | ||
| 963 | 968 | // check for a symbol match |
| 964 | symbol_entry *symbol = m_symtable->find(buffer); | |
| 969 | symbol_entry *symbol = m_symtable->find_deep(buffer); | |
| 965 | 970 | if (symbol != NULL) |
| 966 | 971 | { |
| 967 | 972 | token.configure_symbol(*symbol); |
| r9535 | r9536 | |
| 974 | 979 | } |
| 975 | 980 | return; |
| 976 | 981 | } |
| 977 | ||
| 982 | ||
| 978 | 983 | // attempt to parse as a number in the default base |
| 979 | 984 | parse_number(token, buffer, DEFAULT_BASE, expression_error::UNKNOWN_SYMBOL); |
| 980 | 985 | } |
| r9535 | r9536 | |
| 1001 | 1006 | int digit = ptr - numbers; |
| 1002 | 1007 | if (digit >= base) |
| 1003 | 1008 | break; |
| 1004 | ||
| 1009 | ||
| 1005 | 1010 | // shift previous digits up and add in new digit |
| 1006 | 1011 | value = (value * (UINT64)base) + digit; |
| 1007 | 1012 | string++; |
| r9535 | r9536 | |
| 1218 | 1223 | if (peek == NULL) |
| 1219 | 1224 | break; |
| 1220 | 1225 | |
| 1221 | // if we hit an execute function operator, or else a left parenthesis that is | |
| 1226 | // if we hit an execute function operator, or else a left parenthesis that is | |
| 1222 | 1227 | // already tagged, then tag us as well |
| 1223 | 1228 | if (peek->is_operator(TVL_EXECUTEFUNC) || (peek->is_operator(TVL_LPAREN) && peek->is_function_separator())) |
| 1224 | 1229 | { |
| r9535 | r9536 | |
| 1247 | 1252 | { |
| 1248 | 1253 | // pre-determine our next token |
| 1249 | 1254 | next = token->next(); |
| 1250 | ||
| 1255 | ||
| 1251 | 1256 | // if the character is an operand, append it to the result string |
| 1252 | 1257 | if (token->is_number() || token->is_symbol() || token->is_string()) |
| 1253 | 1258 | m_tokenlist.append(*token); |
| r9535 | r9536 | |
| 1681 | 1686 | //------------------------------------------------- |
| 1682 | 1687 | |
| 1683 | 1688 | parsed_expression::parse_token::parse_token(int offset) |
| 1684 | : m_next(NULL), | |
| 1689 | : m_next(NULL), | |
| 1685 | 1690 | m_type(INVALID), |
| 1686 | 1691 | m_offset(offset), |
| 1687 | 1692 | m_value(0), |
| r9535 | r9536 | |
| 1721 | 1726 | // set the value of a symbol |
| 1722 | 1727 | if (is_symbol()) |
| 1723 | 1728 | m_symbol->set_value(value); |
| 1724 | ||
| 1729 | ||
| 1725 | 1730 | // or set the value via the memory callbacks |
| 1726 | 1731 | else if (is_memory() && table != NULL) |
| 1727 | 1732 | table->set_memory_value(m_string, memory_space(), address(), 1 << memory_size(), value); |
| r9535 | r9536 | |
|---|---|---|
| 925 | 925 | bool decode(const UINT16 word0, const UINT16 word1) |
| 926 | 926 | { |
| 927 | 927 | /* Note: This is a JJJF limited in the docs, but other opcodes sneak |
| 928 | ||
| 928 | in before cmp, so the same decode function can be used. */ | |
| 929 | 929 | decode_JJJF_table(BITSn(word0,0x07), BITSn(word0,0x08), |
| 930 | 930 | m_source, m_destination); |
| 931 | 931 | return true; |
| r9535 | r9536 | |
| 950 | 950 | bool decode(const UINT16 word0, const UINT16 word1) |
| 951 | 951 | { |
| 952 | 952 | /* Note: This is a JJJF limited in the docs, but other opcodes sneak |
| 953 | ||
| 953 | in before cmp, so the same decode function can be used. */ | |
| 954 | 954 | decode_JJJF_table(BITSn(word0,0x07), BITSn(word0,0x08), |
| 955 | 955 | m_source, m_destination); |
| 956 | 956 | return true; |
| r9535 | r9536 | |
| 2676 | 2676 | bool decode(const UINT16 word0, const UINT16 word1) |
| 2677 | 2677 | { |
| 2678 | 2678 | /* There are inconsistencies with the S1 & S2 operand ordering in the docs, |
| 2679 | ||
| 2679 | but since it's a multiply it doesn't matter */ | |
| 2680 | 2680 | decode_QQQF_table(BITSn(word0,0x07), BITSn(word0,0x08), |
| 2681 | 2681 | m_source, m_source2, m_destination); |
| 2682 | 2682 | |
| r9535 | r9536 | |
| 2772 | 2772 | bool decode(const UINT16 word0, const UINT16 word1) |
| 2773 | 2773 | { |
| 2774 | 2774 | /* There are inconsistencies with the S1 & S2 operand ordering in the docs, |
| 2775 | ||
| 2775 | but since it's a multiply it doesn't matter */ | |
| 2776 | 2776 | decode_QQQF_table(BITSn(word0,0x07), BITSn(word0,0x08), |
| 2777 | 2777 | m_source, m_source2, m_destination); |
| 2778 | 2778 |
| r9535 | r9536 | |
|---|---|---|
| 2300 | 2300 | //case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX: |
| 2301 | 2301 | //case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X: |
| 2302 | 2302 | //case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX: |
| 2303 | // | |
| 2303 | // break; | |
| 2304 | 2304 | |
| 2305 | 2305 | case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_NOX: |
| 2306 | 2306 | out = 1; |
| r9535 | r9536 | |
| 2308 | 2308 | |
| 2309 | 2309 | case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX: |
| 2310 | 2310 | /* |
| 2311 | * in0 1 ------ | |
| 2312 | * 0 ------- | |
| 2313 | * ...^....^... | |
| 2314 | * | |
| 2315 | * in1 1 ------------- | |
| 2316 | * 0 | |
| 2317 | * ...^....^... | |
| 2318 | * | |
| 2319 | * out 1 ------ | |
| 2320 | * 0 ------ | |
| 2321 | * ...^....^... | |
| 2322 | */ | |
| 2311 | * in0 1 ------ | |
| 2312 | * 0 ------- | |
| 2313 | * ...^....^... | |
| 2314 | * | |
| 2315 | * in1 1 ------------- | |
| 2316 | * 0 | |
| 2317 | * ...^....^... | |
| 2318 | * | |
| 2319 | * out 1 ------ | |
| 2320 | * 0 ------ | |
| 2321 | * ...^....^... | |
| 2322 | */ | |
| 2323 | 2323 | x_time = x_time0; |
| 2324 | 2324 | break; |
| 2325 | 2325 | |
| 2326 | 2326 | case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_X: |
| 2327 | 2327 | /* |
| 2328 | * in0 1 ------------- | |
| 2329 | * 0 | |
| 2330 | * ...^....^... | |
| 2331 | * | |
| 2332 | * in1 1 ------ | |
| 2333 | * 0 ------- | |
| 2334 | * ...^....^... | |
| 2335 | * | |
| 2336 | * out 1 ------ | |
| 2337 | * 0 ------ | |
| 2338 | * ...^....^... | |
| 2339 | */ | |
| 2328 | * in0 1 ------------- | |
| 2329 | * 0 | |
| 2330 | * ...^....^... | |
| 2331 | * | |
| 2332 | * in1 1 ------ | |
| 2333 | * 0 ------- | |
| 2334 | * ...^....^... | |
| 2335 | * | |
| 2336 | * out 1 ------ | |
| 2337 | * 0 ------ | |
| 2338 | * ...^....^... | |
| 2339 | */ | |
| 2340 | 2340 | x_time = x_time1; |
| 2341 | 2341 | break; |
| 2342 | 2342 | |
| 2343 | 2343 | case XTIME__IN0_0__IN1_0__IN0_X__IN1_X: |
| 2344 | 2344 | /* |
| 2345 | * in0 1 ----- ------- | |
| 2346 | * 0 -------- ------ | |
| 2347 | * ...^....^... ...^....^... | |
| 2348 | * | |
| 2349 | * in1 1 ------- ----- | |
| 2350 | * 0 ------ -------- | |
| 2351 | * ...^....^... ...^....^... | |
| 2352 | * | |
| 2353 | * out 1 ----- ----- | |
| 2354 | * 0 ------- ------- | |
| 2355 | * ...^....^... ...^....^... | |
| 2356 | */ | |
| 2345 | * in0 1 ----- ------- | |
| 2346 | * 0 -------- ------ | |
| 2347 | * ...^....^... ...^....^... | |
| 2348 | * | |
| 2349 | * in1 1 ------- ----- | |
| 2350 | * 0 ------ -------- | |
| 2351 | * ...^....^... ...^....^... | |
| 2352 | * | |
| 2353 | * out 1 ----- ----- | |
| 2354 | * 0 ------- ------- | |
| 2355 | * ...^....^... ...^....^... | |
| 2356 | */ | |
| 2357 | 2357 | // use x_time of input that went to 0 first/longer |
| 2358 | 2358 | if (x_time0 >= x_time1) |
| 2359 | 2359 | x_time = x_time0; |
| r9535 | r9536 | |
| 2363 | 2363 | |
| 2364 | 2364 | case XTIME__IN0_0__IN1_1__IN0_X__IN1_X: |
| 2365 | 2365 | /* |
| 2366 | * in0 1 ------- ----- | |
| 2367 | * 0 ----- ------- | |
| 2368 | * ...^....^... ...^....^... | |
| 2369 | * | |
| 2370 | * in1 1 ------- ----- | |
| 2371 | * 0 ----- ------- | |
| 2372 | * ...^....^... ...^....^... | |
| 2373 | * | |
| 2374 | * out 1 -- | |
| 2375 | * 0 ----- ----- ------------ | |
| 2376 | * ...^....^... ...^....^... | |
| 2377 | */ | |
| 2366 | * in0 1 ------- ----- | |
| 2367 | * 0 ----- ------- | |
| 2368 | * ...^....^... ...^....^... | |
| 2369 | * | |
| 2370 | * in1 1 ------- ----- | |
| 2371 | * 0 ----- ------- | |
| 2372 | * ...^....^... ...^....^... | |
| 2373 | * | |
| 2374 | * out 1 -- | |
| 2375 | * 0 ----- ----- ------------ | |
| 2376 | * ...^....^... ...^....^... | |
| 2377 | */ | |
| 2378 | 2378 | // may have went high for a bit in this cycle |
| 2379 | 2379 | //if (x_time0 < x_time1) |
| 2380 | // | |
| 2380 | // x_time = time1 - x_time0; | |
| 2381 | 2381 | break; |
| 2382 | 2382 | |
| 2383 | 2383 | case XTIME__IN0_1__IN1_0__IN0_X__IN1_X: |
| 2384 | 2384 | /* |
| 2385 | * in0 1 ------- ----- | |
| 2386 | * 0 ----- ------- | |
| 2387 | * ...^....^... ...^....^... | |
| 2388 | * | |
| 2389 | * in1 1 ------- ----- | |
| 2390 | * 0 ----- ------- | |
| 2391 | * ...^....^... ...^....^... | |
| 2392 | * | |
| 2393 | * out 1 -- | |
| 2394 | * 0 ----- ----- ------------ | |
| 2395 | * ...^....^... ...^....^... | |
| 2396 | */ | |
| 2385 | * in0 1 ------- ----- | |
| 2386 | * 0 ----- ------- | |
| 2387 | * ...^....^... ...^....^... | |
| 2388 | * | |
| 2389 | * in1 1 ------- ----- | |
| 2390 | * 0 ----- ------- | |
| 2391 | * ...^....^... ...^....^... | |
| 2392 | * | |
| 2393 | * out 1 -- | |
| 2394 | * 0 ----- ----- ------------ | |
| 2395 | * ...^....^... ...^....^... | |
| 2396 | */ | |
| 2397 | 2397 | // may have went high for a bit in this cycle |
| 2398 | 2398 | //if (x_time0 > x_time1) |
| 2399 | // | |
| 2399 | // x_time = x_time0 - x_time1; | |
| 2400 | 2400 | break; |
| 2401 | 2401 | |
| 2402 | 2402 | case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X: |
| 2403 | 2403 | /* |
| 2404 | * in0 1 ------------ | |
| 2405 | * 0 | |
| 2406 | * ...^....^... | |
| 2407 | * | |
| 2408 | * in1 1 ------ | |
| 2409 | * 0 ------ | |
| 2410 | * ...^....^... | |
| 2411 | * | |
| 2412 | * out 1 ------ | |
| 2413 | * 0 ------ | |
| 2414 | * ...^....^... | |
| 2415 | */ | |
| 2404 | * in0 1 ------------ | |
| 2405 | * 0 | |
| 2406 | * ...^....^... | |
| 2407 | * | |
| 2408 | * in1 1 ------ | |
| 2409 | * 0 ------ | |
| 2410 | * ...^....^... | |
| 2411 | * | |
| 2412 | * out 1 ------ | |
| 2413 | * 0 ------ | |
| 2414 | * ...^....^... | |
| 2415 | */ | |
| 2416 | 2416 | out = 1; |
| 2417 | 2417 | x_time = x_time1; |
| 2418 | 2418 | break; |
| 2419 | 2419 | |
| 2420 | 2420 | case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX: |
| 2421 | 2421 | /* |
| 2422 | * in1 0 ------ | |
| 2423 | * 0 ------ | |
| 2424 | * ...^....^... | |
| 2425 | * | |
| 2426 | * in1 1 ------------ | |
| 2427 | * 0 | |
| 2428 | * ...^....^... | |
| 2429 | * | |
| 2430 | * out 1 ------ | |
| 2431 | * 0 ------ | |
| 2432 | * ...^....^... | |
| 2433 | */ | |
| 2422 | * in1 0 ------ | |
| 2423 | * 0 ------ | |
| 2424 | * ...^....^... | |
| 2425 | * | |
| 2426 | * in1 1 ------------ | |
| 2427 | * 0 | |
| 2428 | * ...^....^... | |
| 2429 | * | |
| 2430 | * out 1 ------ | |
| 2431 | * 0 ------ | |
| 2432 | * ...^....^... | |
| 2433 | */ | |
| 2434 | 2434 | out = 1; |
| 2435 | 2435 | x_time = x_time0; |
| 2436 | 2436 | break; |
| 2437 | 2437 | |
| 2438 | 2438 | case XTIME__IN0_1__IN1_1__IN0_X__IN1_X: |
| 2439 | 2439 | /* |
| 2440 | * in0 1 ------ -------- | |
| 2441 | * 0 ------ ---- | |
| 2442 | * ...^....^... ...^....^... | |
| 2443 | * | |
| 2444 | * in1 1 -------- ------ | |
| 2445 | * 0 ---- ------ | |
| 2446 | * ...^....^... ...^....^... | |
| 2447 | * | |
| 2448 | * out 1 ------ ------ | |
| 2449 | * 0 ------ ------ | |
| 2450 | * ...^....^... ...^....^... | |
| 2451 | */ | |
| 2440 | * in0 1 ------ -------- | |
| 2441 | * 0 ------ ---- | |
| 2442 | * ...^....^... ...^....^... | |
| 2443 | * | |
| 2444 | * in1 1 -------- ------ | |
| 2445 | * 0 ---- ------ | |
| 2446 | * ...^....^... ...^....^... | |
| 2447 | * | |
| 2448 | * out 1 ------ ------ | |
| 2449 | * 0 ------ ------ | |
| 2450 | * ...^....^... ...^....^... | |
| 2451 | */ | |
| 2452 | 2452 | out = 1; |
| 2453 | 2453 | if (x_time0 < x_time1) |
| 2454 | 2454 | x_time = x_time0; |
| r9535 | r9536 | |
| 2520 | 2520 | //case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX: |
| 2521 | 2521 | //case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X: |
| 2522 | 2522 | //case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX: |
| 2523 | // | |
| 2523 | // break; | |
| 2524 | 2524 | |
| 2525 | 2525 | case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_NOX: |
| 2526 | 2526 | out = 0; |
| r9535 | r9536 | |
| 2528 | 2528 | |
| 2529 | 2529 | case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_X: |
| 2530 | 2530 | /* |
| 2531 | * in0 1 | |
| 2532 | * 0 ------------- | |
| 2533 | * ...^....^... | |
| 2534 | * | |
| 2535 | * in1 1 ------ | |
| 2536 | * 0 ------- | |
| 2537 | * ...^....^... | |
| 2538 | * | |
| 2539 | * out 1 ------ | |
| 2540 | * 0 ------ | |
| 2541 | * ...^....^... | |
| 2542 | */ | |
| 2531 | * in0 1 | |
| 2532 | * 0 ------------- | |
| 2533 | * ...^....^... | |
| 2534 | * | |
| 2535 | * in1 1 ------ | |
| 2536 | * 0 ------- | |
| 2537 | * ...^....^... | |
| 2538 | * | |
| 2539 | * out 1 ------ | |
| 2540 | * 0 ------ | |
| 2541 | * ...^....^... | |
| 2542 | */ | |
| 2543 | 2543 | out = 0; |
| 2544 | 2544 | x_time = x_time1; |
| 2545 | 2545 | break; |
| 2546 | 2546 | |
| 2547 | 2547 | case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX: |
| 2548 | 2548 | /* |
| 2549 | * in0 1 ------ | |
| 2550 | * 0 ------- | |
| 2551 | * ...^....^... | |
| 2552 | * | |
| 2553 | * in1 1 | |
| 2554 | * 0 ------------- | |
| 2555 | * ...^....^... | |
| 2556 | * | |
| 2557 | * out 1 ------ | |
| 2558 | * 0 ------ | |
| 2559 | * ...^....^... | |
| 2560 | */ | |
| 2549 | * in0 1 ------ | |
| 2550 | * 0 ------- | |
| 2551 | * ...^....^... | |
| 2552 | * | |
| 2553 | * in1 1 | |
| 2554 | * 0 ------------- | |
| 2555 | * ...^....^... | |
| 2556 | * | |
| 2557 | * out 1 ------ | |
| 2558 | * 0 ------ | |
| 2559 | * ...^....^... | |
| 2560 | */ | |
| 2561 | 2561 | out = 0; |
| 2562 | 2562 | x_time = x_time0; |
| 2563 | 2563 | break; |
| 2564 | 2564 | |
| 2565 | 2565 | case XTIME__IN0_0__IN1_0__IN0_X__IN1_X: |
| 2566 | 2566 | /* |
| 2567 | * in0 1 ----- ------- | |
| 2568 | * 0 -------- ------ | |
| 2569 | * ...^....^... ...^....^... | |
| 2570 | * | |
| 2571 | * in1 1 ------- ----- | |
| 2572 | * 0 ------ -------- | |
| 2573 | * ...^....^... ...^....^... | |
| 2574 | * | |
| 2575 | * out 1 ------- ------- | |
| 2576 | * 0 ----- ----- | |
| 2577 | * ...^....^... ...^....^... | |
| 2578 | */ | |
| 2567 | * in0 1 ----- ------- | |
| 2568 | * 0 -------- ------ | |
| 2569 | * ...^....^... ...^....^... | |
| 2570 | * | |
| 2571 | * in1 1 ------- ----- | |
| 2572 | * 0 ------ -------- | |
| 2573 | * ...^....^... ...^....^... | |
| 2574 | * | |
| 2575 | * out 1 ------- ------- | |
| 2576 | * 0 ----- ----- | |
| 2577 | * ...^....^... ...^....^... | |
| 2578 | */ | |
| 2579 | 2579 | out = 0; |
| 2580 | 2580 | // use x_time of input that was 1 last/longer |
| 2581 | 2581 | // this means at 0 for less x_time |
| r9535 | r9536 | |
| 2587 | 2587 | |
| 2588 | 2588 | case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X: |
| 2589 | 2589 | /* |
| 2590 | * in0 1 | |
| 2591 | * 0 ------------ | |
| 2592 | * ...^....^... | |
| 2593 | * | |
| 2594 | * in1 1 ------ | |
| 2595 | * 0 ------ | |
| 2596 | * ...^....^... | |
| 2597 | * | |
| 2598 | * out 1 ------ | |
| 2599 | * 0 ------ | |
| 2600 | * ...^....^... | |
| 2601 | */ | |
| 2590 | * in0 1 | |
| 2591 | * 0 ------------ | |
| 2592 | * ...^....^... | |
| 2593 | * | |
| 2594 | * in1 1 ------ | |
| 2595 | * 0 ------ | |
| 2596 | * ...^....^... | |
| 2597 | * | |
| 2598 | * out 1 ------ | |
| 2599 | * 0 ------ | |
| 2600 | * ...^....^... | |
| 2601 | */ | |
| 2602 | 2602 | x_time = x_time1; |
| 2603 | 2603 | break; |
| 2604 | 2604 | |
| 2605 | 2605 | case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX: |
| 2606 | 2606 | /* |
| 2607 | * in0 1 ------ | |
| 2608 | * 0 ------ | |
| 2609 | * ...^....^... | |
| 2610 | * | |
| 2611 | * in1 1 | |
| 2612 | * 0 ------------ | |
| 2613 | * ...^....^... | |
| 2614 | * | |
| 2615 | * out 1 ------ | |
| 2616 | * 0 ------ | |
| 2617 | * ...^....^... | |
| 2618 | */ | |
| 2607 | * in0 1 ------ | |
| 2608 | * 0 ------ | |
| 2609 | * ...^....^... | |
| 2610 | * | |
| 2611 | * in1 1 | |
| 2612 | * 0 ------------ | |
| 2613 | * ...^....^... | |
| 2614 | * | |
| 2615 | * out 1 ------ | |
| 2616 | * 0 ------ | |
| 2617 | * ...^....^... | |
| 2618 | */ | |
| 2619 | 2619 | x_time = x_time0; |
| 2620 | 2620 | break; |
| 2621 | 2621 | |
| 2622 | 2622 | case XTIME__IN0_0__IN1_1__IN0_X__IN1_X: |
| 2623 | 2623 | /* |
| 2624 | * in0 1 ------- ----- | |
| 2625 | * 0 ----- ------- | |
| 2626 | * ...^....^... ...^....^... | |
| 2627 | * | |
| 2628 | * in1 1 ------- ----- | |
| 2629 | * 0 ----- ------- | |
| 2630 | * ...^....^... ...^....^... | |
| 2631 | * | |
| 2632 | * out 1 ------------ ----- ----- | |
| 2633 | * 0 -- | |
| 2634 | * ...^....^... ...^....^... | |
| 2635 | */ | |
| 2624 | * in0 1 ------- ----- | |
| 2625 | * 0 ----- ------- | |
| 2626 | * ...^....^... ...^....^... | |
| 2627 | * | |
| 2628 | * in1 1 ------- ----- | |
| 2629 | * 0 ----- ------- | |
| 2630 | * ...^....^... ...^....^... | |
| 2631 | * | |
| 2632 | * out 1 ------------ ----- ----- | |
| 2633 | * 0 -- | |
| 2634 | * ...^....^... ...^....^... | |
| 2635 | */ | |
| 2636 | 2636 | // if (x_time0 > x_time1) |
| 2637 | 2637 | /* Not sure if it is better to use 1 |
| 2638 | * or the total energy which would smear the switch points together. | |
| 2639 | * Let's try just using 1 */ | |
| 2638 | * or the total energy which would smear the switch points together. | |
| 2639 | * Let's try just using 1 */ | |
| 2640 | 2640 | //x_time = xtime_0 - xtime_1; |
| 2641 | 2641 | break; |
| 2642 | 2642 | |
| 2643 | 2643 | case XTIME__IN0_1__IN1_0__IN0_X__IN1_X: |
| 2644 | 2644 | /* |
| 2645 | * in0 1 ------- ----- | |
| 2646 | * 0 ----- ------- | |
| 2647 | * ...^....^... ...^....^... | |
| 2648 | * | |
| 2649 | * in1 1 ------- ----- | |
| 2650 | * 0 ----- ------- | |
| 2651 | * ...^....^... ...^....^... | |
| 2652 | * | |
| 2653 | * out 1 ------------ ----- ----- | |
| 2654 | * 0 -- | |
| 2655 | * ...^....^... ...^....^... | |
| 2656 | */ | |
| 2645 | * in0 1 ------- ----- | |
| 2646 | * 0 ----- ------- | |
| 2647 | * ...^....^... ...^....^... | |
| 2648 | * | |
| 2649 | * in1 1 ------- ----- | |
| 2650 | * 0 ----- ------- | |
| 2651 | * ...^....^... ...^....^... | |
| 2652 | * | |
| 2653 | * out 1 ------------ ----- ----- | |
| 2654 | * 0 -- | |
| 2655 | * ...^....^... ...^....^... | |
| 2656 | */ | |
| 2657 | 2657 | //if (x_time0 < x_time1) |
| 2658 | 2658 | /* Not sure if it is better to use 1 |
| 2659 | * or the total energy which would smear the switch points together. | |
| 2660 | * Let's try just using 1 */ | |
| 2659 | * or the total energy which would smear the switch points together. | |
| 2660 | * Let's try just using 1 */ | |
| 2661 | 2661 | //x_time = xtime_1 - xtime_0; |
| 2662 | 2662 | break; |
| 2663 | 2663 | |
| 2664 | 2664 | case XTIME__IN0_1__IN1_1__IN0_X__IN1_X: |
| 2665 | 2665 | /* |
| 2666 | * in0 1 ------ -------- | |
| 2667 | * 0 ------ ---- | |
| 2668 | * ...^....^... ...^....^... | |
| 2669 | * | |
| 2670 | * in1 1 -------- ------ | |
| 2671 | * 0 ---- ------ | |
| 2672 | * ...^....^... ...^....^... | |
| 2673 | * | |
| 2674 | * out 1 -------- -------- | |
| 2675 | * 0 ---- ---- | |
| 2676 | * ...^....^... ...^....^... | |
| 2677 | */ | |
| 2666 | * in0 1 ------ -------- | |
| 2667 | * 0 ------ ---- | |
| 2668 | * ...^....^... ...^....^... | |
| 2669 | * | |
| 2670 | * in1 1 -------- ------ | |
| 2671 | * 0 ---- ------ | |
| 2672 | * ...^....^... ...^....^... | |
| 2673 | * | |
| 2674 | * out 1 -------- -------- | |
| 2675 | * 0 ---- ---- | |
| 2676 | * ...^....^... ...^....^... | |
| 2677 | */ | |
| 2678 | 2678 | if (x_time0 > x_time1) |
| 2679 | 2679 | x_time = x_time0; |
| 2680 | 2680 | else |
| r9535 | r9536 | |
| 2740 | 2740 | // these are all 1 |
| 2741 | 2741 | //case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_NOX: |
| 2742 | 2742 | //case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_NOX: |
| 2743 | // | |
| 2743 | // break; | |
| 2744 | 2744 | |
| 2745 | 2745 | case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_NOX: |
| 2746 | 2746 | case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_NOX: |
| r9535 | r9536 | |
| 2749 | 2749 | |
| 2750 | 2750 | case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX: |
| 2751 | 2751 | /* |
| 2752 | * in0 1 ------ | |
| 2753 | * 0 ------ | |
| 2754 | * ...^....^... | |
| 2755 | * | |
| 2756 | * in1 1 | |
| 2757 | * 0 ------------ | |
| 2758 | * ...^....^... | |
| 2759 | * | |
| 2760 | * out 1 ------ | |
| 2761 | * 0 ------ | |
| 2762 | * ...^....^... | |
| 2763 | */ | |
| 2752 | * in0 1 ------ | |
| 2753 | * 0 ------ | |
| 2754 | * ...^....^... | |
| 2755 | * | |
| 2756 | * in1 1 | |
| 2757 | * 0 ------------ | |
| 2758 | * ...^....^... | |
| 2759 | * | |
| 2760 | * out 1 ------ | |
| 2761 | * 0 ------ | |
| 2762 | * ...^....^... | |
| 2763 | */ | |
| 2764 | 2764 | case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX: |
| 2765 | 2765 | /* |
| 2766 | * in0 1 ------ | |
| 2767 | * 0 ------- | |
| 2768 | * ...^....^... | |
| 2769 | * | |
| 2770 | * in1 1 ------------- | |
| 2771 | * 0 | |
| 2772 | * ...^....^... | |
| 2773 | * | |
| 2774 | * out 1 ------ | |
| 2775 | * 0 ------ | |
| 2776 | * ...^....^... | |
| 2777 | */ | |
| 2766 | * in0 1 ------ | |
| 2767 | * 0 ------- | |
| 2768 | * ...^....^... | |
| 2769 | * | |
| 2770 | * in1 1 ------------- | |
| 2771 | * 0 | |
| 2772 | * ...^....^... | |
| 2773 | * | |
| 2774 | * out 1 ------ | |
| 2775 | * 0 ------ | |
| 2776 | * ...^....^... | |
| 2777 | */ | |
| 2778 | 2778 | x_time = x_time0; |
| 2779 | 2779 | break; |
| 2780 | 2780 | |
| 2781 | 2781 | case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X: |
| 2782 | 2782 | /* |
| 2783 | * in0 1 | |
| 2784 | * 0 ------------ | |
| 2785 | * ...^....^... | |
| 2786 | * | |
| 2787 | * in1 1 ------ | |
| 2788 | * 0 ------ | |
| 2789 | * ...^....^... | |
| 2790 | * | |
| 2791 | * out 1 ------ | |
| 2792 | * 0 ------ | |
| 2793 | * ...^....^... | |
| 2794 | */ | |
| 2783 | * in0 1 | |
| 2784 | * 0 ------------ | |
| 2785 | * ...^....^... | |
| 2786 | * | |
| 2787 | * in1 1 ------ | |
| 2788 | * 0 ------ | |
| 2789 | * ...^....^... | |
| 2790 | * | |
| 2791 | * out 1 ------ | |
| 2792 | * 0 ------ | |
| 2793 | * ...^....^... | |
| 2794 | */ | |
| 2795 | 2795 | case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_X: |
| 2796 | 2796 | /* |
| 2797 | * in0 1 ------------- | |
| 2798 | * 0 | |
| 2799 | * ...^....^... | |
| 2800 | * | |
| 2801 | * in1 1 ------ | |
| 2802 | * 0 ------- | |
| 2803 | * ...^....^... | |
| 2804 | * | |
| 2805 | * out 1 ------ | |
| 2806 | * 0 ------ | |
| 2807 | * ...^....^... | |
| 2808 | */ | |
| 2797 | * in0 1 ------------- | |
| 2798 | * 0 | |
| 2799 | * ...^....^... | |
| 2800 | * | |
| 2801 | * in1 1 ------ | |
| 2802 | * 0 ------- | |
| 2803 | * ...^....^... | |
| 2804 | * | |
| 2805 | * out 1 ------ | |
| 2806 | * 0 ------ | |
| 2807 | * ...^....^... | |
| 2808 | */ | |
| 2809 | 2809 | x_time = x_time1; |
| 2810 | 2810 | break; |
| 2811 | 2811 | |
| 2812 | 2812 | case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX: |
| 2813 | 2813 | /* |
| 2814 | * in0 1 ------ | |
| 2815 | * 0 ------ | |
| 2816 | * ...^....^... | |
| 2817 | * | |
| 2818 | * in1 1 | |
| 2819 | * 0 ------------ | |
| 2820 | * ...^....^... | |
| 2821 | * | |
| 2822 | * out 1 ------ | |
| 2823 | * 0 ------ | |
| 2824 | * ...^....^... | |
| 2825 | */ | |
| 2814 | * in0 1 ------ | |
| 2815 | * 0 ------ | |
| 2816 | * ...^....^... | |
| 2817 | * | |
| 2818 | * in1 1 | |
| 2819 | * 0 ------------ | |
| 2820 | * ...^....^... | |
| 2821 | * | |
| 2822 | * out 1 ------ | |
| 2823 | * 0 ------ | |
| 2824 | * ...^....^... | |
| 2825 | */ | |
| 2826 | 2826 | case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX: |
| 2827 | 2827 | /* |
| 2828 | * in1 0 ------ | |
| 2829 | * 0 ------ | |
| 2830 | * ...^....^... | |
| 2831 | * | |
| 2832 | * in1 1 ------------ | |
| 2833 | * 0 | |
| 2834 | * ...^....^... | |
| 2835 | * | |
| 2836 | * out 1 ------ | |
| 2837 | * 0 ------ | |
| 2838 | * ...^....^... | |
| 2839 | */ | |
| 2828 | * in1 0 ------ | |
| 2829 | * 0 ------ | |
| 2830 | * ...^....^... | |
| 2831 | * | |
| 2832 | * in1 1 ------------ | |
| 2833 | * 0 | |
| 2834 | * ...^....^... | |
| 2835 | * | |
| 2836 | * out 1 ------ | |
| 2837 | * 0 ------ | |
| 2838 | * ...^....^... | |
| 2839 | */ | |
| 2840 | 2840 | out = 0; |
| 2841 | 2841 | x_time = x_time0; |
| 2842 | 2842 | break; |
| 2843 | 2843 | |
| 2844 | 2844 | case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_X: |
| 2845 | 2845 | /* |
| 2846 | * in0 1 | |
| 2847 | * 0 ------------ | |
| 2848 | * ...^....^... | |
| 2849 | * | |
| 2850 | * in1 1 ------ | |
| 2851 | * 0 ------ | |
| 2852 | * ...^....^... | |
| 2853 | * | |
| 2854 | * out 1 ------ | |
| 2855 | * 0 ------ | |
| 2856 | * ...^....^... | |
| 2857 | */ | |
| 2846 | * in0 1 | |
| 2847 | * 0 ------------ | |
| 2848 | * ...^....^... | |
| 2849 | * | |
| 2850 | * in1 1 ------ | |
| 2851 | * 0 ------ | |
| 2852 | * ...^....^... | |
| 2853 | * | |
| 2854 | * out 1 ------ | |
| 2855 | * 0 ------ | |
| 2856 | * ...^....^... | |
| 2857 | */ | |
| 2858 | 2858 | case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X: |
| 2859 | 2859 | /* |
| 2860 | * in0 1 ------------ | |
| 2861 | * 0 | |
| 2862 | * ...^....^... | |
| 2863 | * | |
| 2864 | * in1 1 ------ | |
| 2865 | * 0 ------ | |
| 2866 | * ...^....^... | |
| 2867 | * | |
| 2868 | * out 1 ------ | |
| 2869 | * 0 ------ | |
| 2870 | * ...^....^... | |
| 2871 | */ | |
| 2860 | * in0 1 ------------ | |
| 2861 | * 0 | |
| 2862 | * ...^....^... | |
| 2863 | * | |
| 2864 | * in1 1 ------ | |
| 2865 | * 0 ------ | |
| 2866 | * ...^....^... | |
| 2867 | * | |
| 2868 | * out 1 ------ | |
| 2869 | * 0 ------ | |
| 2870 | * ...^....^... | |
| 2871 | */ | |
| 2872 | 2872 | out = 0; |
| 2873 | 2873 | x_time = x_time1; |
| 2874 | 2874 | break; |
| 2875 | 2875 | |
| 2876 | 2876 | case XTIME__IN0_0__IN1_0__IN0_X__IN1_X: |
| 2877 | 2877 | /* |
| 2878 | * in0 1 ----- ------- | |
| 2879 | * 0 ------- ----- | |
| 2880 | * ...^....^... ...^....^... | |
| 2881 | * | |
| 2882 | * in1 1 ------- ----- | |
| 2883 | * 0 ----- ------- | |
| 2884 | * ...^....^... ...^....^... | |
| 2885 | * | |
| 2886 | * out 1 -- -- | |
| 2887 | * 0 ----- ----- ----- ----- | |
| 2888 | * ...^....^... ...^....^... | |
| 2889 | */ | |
| 2878 | * in0 1 ----- ------- | |
| 2879 | * 0 ------- ----- | |
| 2880 | * ...^....^... ...^....^... | |
| 2881 | * | |
| 2882 | * in1 1 ------- ----- | |
| 2883 | * 0 ----- ------- | |
| 2884 | * ...^....^... ...^....^... | |
| 2885 | * | |
| 2886 | * out 1 -- -- | |
| 2887 | * 0 ----- ----- ----- ----- | |
| 2888 | * ...^....^... ...^....^... | |
| 2889 | */ | |
| 2890 | 2890 | case XTIME__IN0_1__IN1_1__IN0_X__IN1_X: |
| 2891 | 2891 | /* |
| 2892 | * in0 1 ------ -------- | |
| 2893 | * 0 ------ ---- | |
| 2894 | * ...^....^... ...^....^... | |
| 2895 | * | |
| 2896 | * in1 1 -------- ------ | |
| 2897 | * 0 ---- ------ | |
| 2898 | * ...^....^... ...^....^... | |
| 2899 | * | |
| 2900 | * out 1 -- -- | |
| 2901 | * 0 ---- ------ ---- ------ | |
| 2902 | * ...^....^... ...^....^... | |
| 2903 | */ | |
| 2892 | * in0 1 ------ -------- | |
| 2893 | * 0 ------ ---- | |
| 2894 | * ...^....^... ...^....^... | |
| 2895 | * | |
| 2896 | * in1 1 -------- ------ | |
| 2897 | * 0 ---- ------ | |
| 2898 | * ...^....^... ...^....^... | |
| 2899 | * | |
| 2900 | * out 1 -- -- | |
| 2901 | * 0 ---- ------ ---- ------ | |
| 2902 | * ...^....^... ...^....^... | |
| 2903 | */ | |
| 2904 | 2904 | out = 0; |
| 2905 | 2905 | /* Not sure if it is better to use 0 |
| 2906 | * or the total energy which would smear the switch points together. | |
| 2907 | * Let's try just using 0 */ | |
| 2906 | * or the total energy which would smear the switch points together. | |
| 2907 | * Let's try just using 0 */ | |
| 2908 | 2908 | // x_time = abs(x_time0 - x_time1); |
| 2909 | 2909 | break; |
| 2910 | 2910 | |
| 2911 | 2911 | case XTIME__IN0_0__IN1_1__IN0_X__IN1_X: |
| 2912 | 2912 | /* |
| 2913 | * in0 1 ------- ----- | |
| 2914 | * 0 ----- ------- | |
| 2915 | * ...^....^... ...^....^... | |
| 2916 | * | |
| 2917 | * in1 1 ------- ----- | |
| 2918 | * 0 ----- ------- | |
| 2919 | * ...^....^... ...^....^... | |
| 2920 | * | |
| 2921 | * out 1 ----- ----- ----- ----- | |
| 2922 | * 0 -- -- | |
| 2923 | * ...^....^... ...^....^... | |
| 2924 | */ | |
| 2913 | * in0 1 ------- ----- | |
| 2914 | * 0 ----- ------- | |
| 2915 | * ...^....^... ...^....^... | |
| 2916 | * | |
| 2917 | * in1 1 ------- ----- | |
| 2918 | * 0 ----- ------- | |
| 2919 | * ...^....^... ...^....^... | |
| 2920 | * | |
| 2921 | * out 1 ----- ----- ----- ----- | |
| 2922 | * 0 -- -- | |
| 2923 | * ...^....^... ...^....^... | |
| 2924 | */ | |
| 2925 | 2925 | case XTIME__IN0_1__IN1_0__IN0_X__IN1_X: |
| 2926 | 2926 | /* |
| 2927 | * in0 1 ------- ----- | |
| 2928 | * 0 ----- ------- | |
| 2929 | * ...^....^... ...^....^... | |
| 2930 | * | |
| 2931 | * in1 1 ------- ----- | |
| 2932 | * 0 ----- ------- | |
| 2933 | * ...^....^... ...^....^... | |
| 2934 | * | |
| 2935 | * out 1 ----- ----- ----- ----- | |
| 2936 | * 0 -- -- | |
| 2937 | * ...^....^... ...^....^... | |
| 2938 | */ | |
| 2927 | * in0 1 ------- ----- | |
| 2928 | * 0 ----- ------- | |
| 2929 | * ...^....^... ...^....^... | |
| 2930 | * | |
| 2931 | * in1 1 ------- ----- | |
| 2932 | * 0 ----- ------- | |
| 2933 | * ...^....^... ...^....^... | |
| 2934 | * | |
| 2935 | * out 1 ----- ----- ----- ----- | |
| 2936 | * 0 -- -- | |
| 2937 | * ...^....^... ...^....^... | |
| 2938 | */ | |
| 2939 | 2939 | /* Not sure if it is better to use 1 |
| 2940 | * or the total energy which would smear the switch points together. | |
| 2941 | * Let's try just using 1 */ | |
| 2940 | * or the total energy which would smear the switch points together. | |
| 2941 | * Let's try just using 1 */ | |
| 2942 | 2942 | // x_time = 1.0 - abs(x_time0 - x_time1); |
| 2943 | 2943 | break; |
| 2944 | 2944 | } |
| r9535 | r9536 | |
|---|---|---|
| 547 | 547 | if (UNEXPECTED(DSD_555_MSTBL__C == 0)) |
| 548 | 548 | { |
| 549 | 549 | /* The trigger voltage goes high because the cap circuit is open. |
| 550 | ||
| 550 | * and the cap discharges */ | |
| 551 | 551 | v_cap = info->v_pos; /* needed for cap output type */ |
| 552 | 552 | context->cap_voltage = 0; |
| 553 | 553 |
| r9535 | r9536 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | Apple Sound Chip (ASC) 344S0063 |
| 6 | 6 | Enhanced Apple Sound Chip (EASC) 343S1063 |
| 7 | ||
| 7 | ||
| 8 | 8 | Emulation by R. Belmont |
| 9 | 9 | |
| 10 | 10 | Registers: |
| r9535 | r9536 | |
| 212 | 212 | m_fifo_a_rdptr &= 0x3ff; |
| 213 | 213 | m_fifo_cap_a--; |
| 214 | 214 | } |
| 215 | ||
| 215 | ||
| 216 | 216 | if (m_fifo_cap_b) |
| 217 | 217 | { |
| 218 | 218 | m_fifo_b_rdptr++; |
| r9535 | r9536 | |
| 283 | 283 | INT8 smpl; |
| 284 | 284 | |
| 285 | 285 | mixL = mixR = 0; |
| 286 | ||
| 286 | ||
| 287 | 287 | // update channel pointers |
| 288 | 288 | for (ch = 0; ch < 4; ch++) |
| 289 | 289 | { |
| r9535 | r9536 | |
| 309 | 309 | break; |
| 310 | 310 | } |
| 311 | 311 | |
| 312 | // | |
| 312 | // printf("rdA %04x rdB %04x wrA %04x wrB %04x (capA %04x B %04x)\n", m_fifo_a_rdptr, m_fifo_b_rdptr, m_fifo_a_wrptr, m_fifo_b_wrptr, m_fifo_cap_a, m_fifo_cap_b); | |
| 313 | 313 | } |
| 314 | 314 | |
| 315 | 315 | //------------------------------------------------- |
| r9535 | r9536 | |
| 320 | 320 | { |
| 321 | 321 | UINT8 rv; |
| 322 | 322 | |
| 323 | // | |
| 323 | // printf("ASC: read at %x\n", offset); | |
| 324 | 324 | |
| 325 | 325 | // not sure what actually happens when the CPU reads the FIFO... |
| 326 | 326 | if (offset < 0x400) |
| r9535 | r9536 | |
| 394 | 394 | rv = m_regs[R_FIFOSTAT-0x800]; |
| 395 | 395 | } |
| 396 | 396 | |
| 397 | // | |
| 397 | // printf("Read FIFO stat = %02x\n", rv); | |
| 398 | 398 | |
| 399 | 399 | // reading this register clears all bits |
| 400 | 400 | m_regs[R_FIFOSTAT-0x800] = 0; |
| r9535 | r9536 | |
| 454 | 454 | |
| 455 | 455 | WRITE8_MEMBER( asc_device::write ) |
| 456 | 456 | { |
| 457 | // | |
| 457 | // printf("ASC: write %02x to %x\n", data, offset); | |
| 458 | 458 | |
| 459 | 459 | if (offset < 0x400) |
| 460 | 460 | { |
| r9535 | r9536 | |
| 488 | 488 | } |
| 489 | 489 | |
| 490 | 490 | m_fifo_b_wrptr &= 0x3ff; |
| 491 | } | |
| 491 | } | |
| 492 | 492 | else |
| 493 | 493 | { |
| 494 | 494 | m_fifo_b[offset-0x400] = data; |
| r9535 | r9536 | |
| 496 | 496 | } |
| 497 | 497 | else |
| 498 | 498 | { |
| 499 | // | |
| 499 | // printf("ASC: %02x to %x (was %x)\n", data, offset, m_regs[offset-0x800]); | |
| 500 | 500 | |
| 501 | 501 | stream_update(m_stream); |
| 502 | 502 | switch (offset) |
| r9535 | r9536 | |
| 531 | 531 | break; |
| 532 | 532 | |
| 533 | 533 | case R_WTCONTROL: |
| 534 | // | |
| 534 | // printf("One-shot wavetable %02x\n", data); | |
| 535 | 535 | break; |
| 536 | 536 | |
| 537 | case 0x811: | |
| 537 | case 0x811: | |
| 538 | 538 | m_phase[0] &= 0x00ffff; |
| 539 | 539 | m_phase[0] |= data<<16; |
| 540 | 540 | break; |
| r9535 | r9536 | |
| 549 | 549 | m_phase[0] |= data; |
| 550 | 550 | break; |
| 551 | 551 | |
| 552 | case 0x815: | |
| 552 | case 0x815: | |
| 553 | 553 | m_incr[0] &= 0x00ffff; |
| 554 | 554 | m_incr[0] |= data<<16; |
| 555 | 555 | break; |
| r9535 | r9536 | |
| 564 | 564 | m_incr[0] |= data; |
| 565 | 565 | break; |
| 566 | 566 | |
| 567 | case 0x819: | |
| 567 | case 0x819: | |
| 568 | 568 | m_phase[1] &= 0x00ffff; |
| 569 | 569 | m_phase[1] |= data<<16; |
| 570 | 570 | break; |
| r9535 | r9536 | |
| 579 | 579 | m_phase[1] |= data; |
| 580 | 580 | break; |
| 581 | 581 | |
| 582 | case 0x81d: | |
| 582 | case 0x81d: | |
| 583 | 583 | m_incr[1] &= 0x00ffff; |
| 584 | 584 | m_incr[1] |= data<<16; |
| 585 | 585 | break; |
| r9535 | r9536 | |
| 594 | 594 | m_incr[1] |= data; |
| 595 | 595 | break; |
| 596 | 596 | |
| 597 | case 0x821: | |
| 597 | case 0x821: | |
| 598 | 598 | m_phase[2] &= 0x00ffff; |
| 599 | 599 | m_phase[2] |= data<<16; |
| 600 | 600 | break; |
| r9535 | r9536 | |
| 609 | 609 | m_phase[2] |= data; |
| 610 | 610 | break; |
| 611 | 611 | |
| 612 | case 0x825: | |
| 612 | case 0x825: | |
| 613 | 613 | m_incr[2] &= 0x00ffff; |
| 614 | 614 | m_incr[2] |= data<<16; |
| 615 | 615 | break; |
| r9535 | r9536 | |
| 624 | 624 | m_incr[2] |= data; |
| 625 | 625 | break; |
| 626 | 626 | |
| 627 | case 0x829: | |
| 627 | case 0x829: | |
| 628 | 628 | m_phase[3] &= 0x00ffff; |
| 629 | 629 | m_phase[3] |= data<<16; |
| 630 | 630 | break; |
| r9535 | r9536 | |
| 639 | 639 | m_phase[3] |= data; |
| 640 | 640 | break; |
| 641 | 641 | |
| 642 | case 0x82d: | |
| 642 | case 0x82d: | |
| 643 | 643 | m_incr[3] &= 0x00ffff; |
| 644 | 644 | m_incr[3] |= data<<16; |
| 645 | 645 | break; |
| r9535 | r9536 | |
|---|---|---|
| 741 | 741 | // textures |
| 742 | 742 | render_texture *texture_alloc(texture_scaler_func scaler = NULL, void *param = NULL); |
| 743 | 743 | void texture_free(render_texture *texture); |
| 744 | ||
| 744 | ||
| 745 | 745 | // fonts |
| 746 | 746 | render_font *font_alloc(const char *filename = NULL); |
| 747 | 747 | void font_free(render_font *font); |
| r9535 | r9536 | |
|---|---|---|
| 173 | 173 | m_minval = number_and_format(xml_get_attribute_int(¶mnode, "min", 0), xml_get_attribute_int_format(¶mnode, "min")); |
| 174 | 174 | m_maxval = number_and_format(xml_get_attribute_int(¶mnode, "max", 0), xml_get_attribute_int_format(¶mnode, "max")); |
| 175 | 175 | m_stepval = number_and_format(xml_get_attribute_int(¶mnode, "step", 1), xml_get_attribute_int_format(¶mnode, "step")); |
| 176 | ||
| 176 | ||
| 177 | 177 | // iterate over items |
| 178 | 178 | for (xml_data_node *itemnode = xml_get_sibling(paramnode.child, "item"); itemnode != NULL; itemnode = xml_get_sibling(itemnode->next, "item")) |
| 179 | 179 | { |
| r9535 | r9536 | |
| 184 | 184 | // check for non-existant value |
| 185 | 185 | if (xml_get_attribute(itemnode, "value") == NULL) |
| 186 | 186 | throw emu_fatalerror("%s.xml(%d): item is value\n", filename, itemnode->line); |
| 187 | ||
| 187 | ||
| 188 | 188 | // extract the parameters |
| 189 | 189 | UINT64 value = xml_get_attribute_int(itemnode, "value", 0); |
| 190 | 190 | int format = xml_get_attribute_int_format(itemnode, "value"); |
| 191 | ||
| 191 | ||
| 192 | 192 | // allocate and append a new item |
| 193 | 193 | item &curitem = m_itemlist.append(*auto_alloc(&manager.machine(), item(itemnode->value, value, format))); |
| 194 | 194 | |
| r9535 | r9536 | |
| 210 | 210 | // are we a value cheat? |
| 211 | 211 | if (!has_itemlist()) |
| 212 | 212 | m_curtext.format("%d (0x%X)", UINT32(m_value), UINT32(m_value)); |
| 213 | ||
| 213 | ||
| 214 | 214 | // if not, we're an item cheat |
| 215 | 215 | else |
| 216 | 216 | { |
| r9535 | r9536 | |
| 280 | 280 | bool cheat_parameter::set_prev_state() |
| 281 | 281 | { |
| 282 | 282 | UINT64 origvalue = m_value; |
| 283 | ||
| 283 | ||
| 284 | 284 | // are we a value cheat? |
| 285 | 285 | if (!has_itemlist()) |
| 286 | 286 | { |
| r9535 | r9536 | |
| 289 | 289 | else |
| 290 | 290 | m_value -= m_stepval; |
| 291 | 291 | } |
| 292 | ||
| 292 | ||
| 293 | 293 | // if not, we're an item cheat |
| 294 | 294 | else |
| 295 | 295 | { |
| r9535 | r9536 | |
| 300 | 300 | if (previtem != NULL) |
| 301 | 301 | m_value = previtem->value(); |
| 302 | 302 | } |
| 303 | ||
| 303 | ||
| 304 | 304 | return (m_value != origvalue); |
| 305 | 305 | } |
| 306 | 306 | |
| r9535 | r9536 | |
| 312 | 312 | bool cheat_parameter::set_next_state() |
| 313 | 313 | { |
| 314 | 314 | UINT64 origvalue = m_value; |
| 315 | ||
| 315 | ||
| 316 | 316 | // are we a value cheat? |
| 317 | 317 | if (!has_itemlist()) |
| 318 | 318 | { |
| r9535 | r9536 | |
| 321 | 321 | else |
| 322 | 322 | m_value += m_stepval; |
| 323 | 323 | } |
| 324 | ||
| 324 | ||
| 325 | 325 | // if not, we're an item cheat |
| 326 | 326 | else |
| 327 | 327 | { |
| r9535 | r9536 | |
| 332 | 332 | if (curitem != NULL && curitem->next() != NULL) |
| 333 | 333 | m_value = curitem->next()->value(); |
| 334 | 334 | } |
| 335 | ||
| 335 | ||
| 336 | 336 | return (m_value != origvalue); |
| 337 | 337 | } |
| 338 | 338 | |
| r9535 | r9536 | |
| 477 | 477 | for (xml_data_node *argnode = xml_get_sibling(entrynode.child, "argument"); argnode != NULL; argnode = xml_get_sibling(argnode->next, "argument")) |
| 478 | 478 | { |
| 479 | 479 | output_argument &curarg = m_arglist.append(*auto_alloc(&manager.machine(), output_argument(manager, symbols, filename, *argnode))); |
| 480 | ||
| 480 | ||
| 481 | 481 | // verify we didn't overrun the argument count |
| 482 | 482 | totalargs += curarg.count(); |
| 483 | 483 | if (totalargs > MAX_ARGUMENTS) |
| r9535 | r9536 | |
| 887 | 887 | |
| 888 | 888 | |
| 889 | 889 | //------------------------------------------------- |
| 890 | // select_default_state - select the default | |
| 890 | // select_default_state - select the default | |
| 891 | 891 | // state for a cheat, or activate a oneshot cheat |
| 892 | 892 | //------------------------------------------------- |
| 893 | 893 | |
| r9535 | r9536 | |
| 908 | 908 | |
| 909 | 909 | |
| 910 | 910 | //------------------------------------------------- |
| 911 | // select_previous_state - select the previous | |
| 911 | // select_previous_state - select the previous | |
| 912 | 912 | // state for a cheat |
| 913 | 913 | //------------------------------------------------- |
| 914 | 914 | |
| r9535 | r9536 | |
| 947 | 947 | |
| 948 | 948 | |
| 949 | 949 | //------------------------------------------------- |
| 950 | // select_next_state - select the next state for | |
| 950 | // select_next_state - select the next state for | |
| 951 | 951 | // a cheat |
| 952 | 952 | //------------------------------------------------- |
| 953 | 953 | |
| r9535 | r9536 | |
| 972 | 972 | changed = set_state(SCRIPT_STATE_RUN); |
| 973 | 973 | m_parameter->set_minimum_state(); |
| 974 | 974 | } |
| 975 | ||
| 975 | ||
| 976 | 976 | // otherwise, switch to the next state |
| 977 | 977 | else |
| 978 | 978 | changed = m_parameter->set_next_state(); |
| 979 | ||
| 979 | ||
| 980 | 980 | // if we changed, signal a state change |
| 981 | 981 | if (changed && !is_oneshot_parameter()) |
| 982 | 982 | execute_change_script(); |
| r9535 | r9536 | |
| 986 | 986 | |
| 987 | 987 | |
| 988 | 988 | //------------------------------------------------- |
| 989 | // menu_text - return the text needed to display | |
| 989 | // menu_text - return the text needed to display | |
| 990 | 990 | // this cheat in a menu item |
| 991 | 991 | //------------------------------------------------- |
| 992 | 992 | |
| r9535 | r9536 | |
| 1118 | 1118 | |
| 1119 | 1119 | |
| 1120 | 1120 | //------------------------------------------------- |
| 1121 | // set_enable - globally enable or disable the | |
| 1121 | // set_enable - globally enable or disable the | |
| 1122 | 1122 | // cheat engine |
| 1123 | 1123 | //------------------------------------------------- |
| 1124 | 1124 | |
| r9535 | r9536 | |
| 1165 | 1165 | |
| 1166 | 1166 | // free everything |
| 1167 | 1167 | m_cheatlist.reset(); |
| 1168 | ||
| 1168 | ||
| 1169 | 1169 | // reset state |
| 1170 | 1170 | m_framecount = 0; |
| 1171 | 1171 | m_numlines = 0; |
| r9535 | r9536 | |
| 1213 | 1213 | // if that failed, return nothing |
| 1214 | 1214 | if (filerr != FILERR_NONE) |
| 1215 | 1215 | return false; |
| 1216 | ||
| 1216 | ||
| 1217 | 1217 | // wrap the rest of catch errors |
| 1218 | 1218 | try |
| 1219 | 1219 | { |
| r9535 | r9536 | |
| 1231 | 1231 | mame_fclose(cheatfile); |
| 1232 | 1232 | return true; |
| 1233 | 1233 | } |
| 1234 | ||
| 1234 | ||
| 1235 | 1235 | // catch errors and cleanup |
| 1236 | 1236 | catch (emu_fatalerror &err) |
| 1237 | 1237 | { |
| r9535 | r9536 | |
| 1244 | 1244 | |
| 1245 | 1245 | |
| 1246 | 1246 | //------------------------------------------------- |
| 1247 | // render_text - called by the UI system to | |
| 1247 | // render_text - called by the UI system to | |
| 1248 | 1248 | // render text |
| 1249 | 1249 | //------------------------------------------------- |
| 1250 | 1250 | |
| r9535 | r9536 | |
| 1265 | 1265 | |
| 1266 | 1266 | //------------------------------------------------- |
| 1267 | 1267 | // get_output_astring - return a reference to |
| 1268 | // the given row's string, and set the | |
| 1268 | // the given row's string, and set the | |
| 1269 | 1269 | // justification |
| 1270 | 1270 | //------------------------------------------------- |
| 1271 | 1271 | |
| r9535 | r9536 | |
| 1277 | 1277 | |
| 1278 | 1278 | // remember the last request |
| 1279 | 1279 | m_lastline = row; |
| 1280 | ||
| 1280 | ||
| 1281 | 1281 | // invert if negative |
| 1282 | 1282 | row = (row < 0) ? m_numlines + row : row - 1; |
| 1283 | ||
| 1283 | ||
| 1284 | 1284 | // clamp within range |
| 1285 | 1285 | row = MAX(row, 0); |
| 1286 | 1286 | row = MIN(row, m_numlines - 1); |
| r9535 | r9536 | |
| 1398 | 1398 | |
| 1399 | 1399 | |
| 1400 | 1400 | //------------------------------------------------- |
| 1401 | // load_cheats - load a cheat file into memory | |
| 1401 | // load_cheats - load a cheat file into memory | |
| 1402 | 1402 | // and create the cheat entry list |
| 1403 | 1403 | //------------------------------------------------- |
| 1404 | 1404 | |
| r9535 | r9536 | |
| 1467 | 1467 | filerr = mame_fclose_and_open_next(&cheatfile, fname, OPEN_FLAG_READ); |
| 1468 | 1468 | } |
| 1469 | 1469 | } |
| 1470 | ||
| 1470 | ||
| 1471 | 1471 | // handle errors cleanly |
| 1472 | 1472 | catch (emu_fatalerror &err) |
| 1473 | 1473 | { |
| r9535 | r9536 | |
|---|---|---|
| 83 | 83 | // pass-through to look like a regular number |
| 84 | 84 | operator UINT64 &() { return m_value; } |
| 85 | 85 | operator const UINT64 &() const { return m_value; } |
| 86 | ||
| 86 | ||
| 87 | 87 | // format the number according to its format |
| 88 | 88 | const char *format(astring &string) const; |
| 89 | 89 | |
| r9535 | r9536 | |
| 116 | 116 | |
| 117 | 117 | // actions |
| 118 | 118 | void save(mame_file &cheatfile) const; |
| 119 | ||
| 119 | ||
| 120 | 120 | private: |
| 121 | 121 | // a single item in a parameter item list |
| 122 | 122 | class item |
| 123 | 123 | { |
| 124 | 124 | friend class simple_list<item>; |
| 125 | ||
| 125 | ||
| 126 | 126 | public: |
| 127 | 127 | // construction/destruction |
| 128 | 128 | item(const char *text, UINT64 value, int valformat) |
| r9535 | r9536 | |
| 130 | 130 | m_text(text), |
| 131 | 131 | m_value(value, valformat) { } |
| 132 | 132 | |
| 133 | // getters | |
| 133 | // getters | |
| 134 | 134 | item *next() const { return m_next; } |
| 135 | 135 | const number_and_format &value() const { return m_value; } |
| 136 | 136 | const char *text() const { return m_text; } |
| 137 | ||
| 137 | ||
| 138 | 138 | private: |
| 139 | 139 | // internal state |
| 140 | 140 | item * m_next; // next item in list |
| r9535 | r9536 | |
| 148 | 148 | number_and_format m_stepval; // step value |
| 149 | 149 | UINT64 m_value; // live value of the parameter |
| 150 | 150 | astring m_curtext; // holding for a value string |
| 151 | simple_list<item> | |
| 151 | simple_list<item> | |
| 152 | 152 | }; |
| 153 | 153 | |
| 154 | 154 | |
| r9535 | r9536 | |
| 204 | 204 | |
| 205 | 205 | // actions |
| 206 | 206 | void save(mame_file &cheatfile) const; |
| 207 | ||
| 207 | ||
| 208 | 208 | private: |
| 209 | 209 | // internal state |
| 210 | 210 | output_argument * m_next; // link to next argument |
| 211 | parsed_expression | |
| 211 | parsed_expression | |
| 212 | 212 | UINT64 m_count; // number of repetitions |
| 213 | 213 | }; |
| 214 | 214 | |
| r9535 | r9536 | |
| 217 | 217 | |
| 218 | 218 | // internal state |
| 219 | 219 | script_entry * m_next; // link to next entry |
| 220 | parsed_expression m_condition; // condition under which this is executed | |
| 221 | parsed_expression m_expression; // expression to execute | |
| 220 | parsed_expression m_condition; // condition under which this is executed | |
| 221 | parsed_expression m_expression; // expression to execute | |
| 222 | 222 | astring m_format; // string format to print |
| 223 | 223 | simple_list<output_argument> m_arglist; // list of arguments |
| 224 | 224 | INT8 m_line; // which line to print on |
| r9535 | r9536 | |
| 227 | 227 | // constants |
| 228 | 228 | static const int MAX_ARGUMENTS = 32; |
| 229 | 229 | }; |
| 230 | ||
| 230 | ||
| 231 | 231 | // internal state |
| 232 | 232 | simple_list<script_entry> m_entrylist; // list of actions to perform |
| 233 | 233 | script_state m_state; // which state this script is for |
| r9535 | r9536 | |
| 240 | 240 | class cheat_entry |
| 241 | 241 | { |
| 242 | 242 | friend class simple_list<cheat_entry>; |
| 243 | ||
| 243 | ||
| 244 | 244 | public: |
| 245 | 245 | // construction/destruction |
| 246 | 246 | cheat_entry(cheat_manager &manager, symbol_table &globaltable, const char *filename, xml_data_node &cheatnode); |
| 247 | 247 | ~cheat_entry(); |
| 248 | ||
| 248 | ||
| 249 | 249 | // getters |
| 250 | 250 | cheat_manager &manager() const { return m_manager; } |
| 251 | 251 | cheat_entry *next() const { return m_next; } |
| r9535 | r9536 | |
| 283 | 283 | // UI helpers |
| 284 | 284 | void menu_text(astring &description, astring &state, UINT32 &flags); |
| 285 | 285 | |
| 286 | // per-frame update | |
| 286 | // per-frame update | |
| 287 | 287 | void frame_update() { if (m_state == SCRIPT_STATE_RUN) execute_run_script(); } |
| 288 | 288 | |
| 289 | 289 | private: |
| r9535 | r9536 | |
| 319 | 319 | public: |
| 320 | 320 | // construction/destruction |
| 321 | 321 | cheat_manager(running_machine &machine); |
| 322 | ||
| 322 | ||
| 323 | 323 | // getters |
| 324 | 324 | running_machine &machine() const { return m_machine; } |
| 325 | 325 | bool enabled() const { return !m_disabled; } |
| 326 | 326 | cheat_entry *first() const { return m_cheatlist.first(); } |
| 327 | ||
| 327 | ||
| 328 | 328 | // setters |
| 329 | 329 | void set_enable(bool enable = true); |
| 330 | ||
| 330 | ||
| 331 | 331 | // actions |
| 332 | 332 | void reload(); |
| 333 | 333 | bool save_all(const char *filename); |
| 334 | 334 | void render_text(render_container &container); |
| 335 | ||
| 335 | ||
| 336 | 336 | // output helpers |
| 337 | 337 | astring &get_output_astring(int row, int justify); |
| 338 | 338 | |
| r9535 | r9536 | |
| 346 | 346 | static void frame_update_static(running_machine &machine); |
| 347 | 347 | void frame_update(); |
| 348 | 348 | void load_cheats(const char *filename); |
| 349 | ||
| 349 | ||
| 350 | 350 | // internal state |
| 351 | 351 | running_machine & m_machine; // reference to our machine |
| 352 | 352 | simple_list<cheat_entry> m_cheatlist; // cheat list |
| r9535 | r9536 | |
| 357 | 357 | INT8 m_lastline; // last line used for output |
| 358 | 358 | bool m_disabled; // true if the cheat engine is disabled |
| 359 | 359 | symbol_table m_symtable; // global symbol table |
| 360 | ||
| 360 | ||
| 361 | 361 | // constants |
| 362 | 362 | static const int CHEAT_VERSION = 1; |
| 363 | 363 | }; |
| r9535 | r9536 | |
|---|---|---|
| 79 | 79 | inline render_font::glyph &render_font::get_char(unicode_char chnum) |
| 80 | 80 | { |
| 81 | 81 | static glyph dummy_glyph; |
| 82 | ||
| 82 | ||
| 83 | 83 | // grab the table; if none, return the dummy character |
| 84 | 84 | glyph *glyphtable = m_glyphs[chnum / 256]; |
| 85 | 85 | if (glyphtable == NULL && m_format == FF_OSD) |
| r9535 | r9536 | |
| 117 | 117 | m_osdfont(NULL) |
| 118 | 118 | { |
| 119 | 119 | memset(m_glyphs, 0, sizeof(m_glyphs)); |
| 120 | ||
| 120 | ||
| 121 | 121 | // if this is an OSD font, we're done |
| 122 | 122 | if (filename != NULL) |
| 123 | 123 | { |
| r9535 | r9536 | |
| 129 | 129 | return; |
| 130 | 130 | } |
| 131 | 131 | } |
| 132 | ||
| 132 | ||
| 133 | 133 | // if the filename is 'default' default to 'ui.bdf' for backwards compatibility |
| 134 | 134 | if (filename != NULL && mame_stricmp(filename, "default") == 0) |
| 135 | 135 | filename = "ui.bdf"; |
| r9535 | r9536 | |
| 173 | 173 | |
| 174 | 174 | // free the raw data and the size itself |
| 175 | 175 | auto_free(&m_manager.machine(), m_rawdata); |
| 176 | ||
| 176 | ||
| 177 | 177 | // release the OSD font |
| 178 | 178 | if (m_osdfont != NULL) |
| 179 | 179 | m_manager.machine().osd().font_close(m_osdfont); |
| r9535 | r9536 | |
| 181 | 181 | |
| 182 | 182 | |
| 183 | 183 | //------------------------------------------------- |
| 184 | // char_expand - expand the raw data for a | |
| 184 | // char_expand - expand the raw data for a | |
| 185 | 185 | // character into a bitmap |
| 186 | 186 | //------------------------------------------------- |
| 187 | 187 | |
| r9535 | r9536 | |
| 193 | 193 | // we set bmwidth to -1 if we've previously queried and failed |
| 194 | 194 | if (gl.bmwidth == -1) |
| 195 | 195 | return; |
| 196 | ||
| 196 | ||
| 197 | 197 | // attempt to get the font bitmap; if we fail, set bmwidth to -1 |
| 198 | 198 | gl.bitmap = m_manager.machine().osd().font_get_bitmap(m_osdfont, chnum, gl.width, gl.xoffs, gl.yoffs); |
| 199 | 199 | if (gl.bitmap == NULL) |
| r9535 | r9536 | |
| 206 | 206 | gl.bmwidth = gl.bitmap->width; |
| 207 | 207 | gl.bmheight = gl.bitmap->height; |
| 208 | 208 | } |
| 209 | ||
| 209 | ||
| 210 | 210 | // other formats need to parse their data |
| 211 | 211 | else |
| 212 | 212 | { |
| r9535 | r9536 | |
| 282 | 282 | |
| 283 | 283 | |
| 284 | 284 | //------------------------------------------------- |
| 285 | // get_char_texture_and_bounds - return the | |
| 286 | // texture for a character and compute the | |
| 285 | // get_char_texture_and_bounds - return the | |
| 286 | // texture for a character and compute the | |
| 287 | 287 | // bounds of the final bitmap |
| 288 | 288 | //------------------------------------------------- |
| 289 | 289 | |
| r9535 | r9536 | |
| 351 | 351 | |
| 352 | 352 | |
| 353 | 353 | //------------------------------------------------- |
| 354 | // char_width - return the width of a character | |
| 354 | // char_width - return the width of a character | |
| 355 | 355 | // at the given height |
| 356 | 356 | //------------------------------------------------- |
| 357 | 357 | |
| r9535 | r9536 | |
| 362 | 362 | |
| 363 | 363 | |
| 364 | 364 | //------------------------------------------------- |
| 365 | // string_width - return the width of a string | |
| 365 | // string_width - return the width of a string | |
| 366 | 366 | // at the given height |
| 367 | 367 | //------------------------------------------------- |
| 368 | 368 | |
| r9535 | r9536 | |
| 379 | 379 | |
| 380 | 380 | |
| 381 | 381 | //------------------------------------------------- |
| 382 | // utf8string_width - return the width of a | |
| 382 | // utf8string_width - return the width of a | |
| 383 | 383 | // UTF8-encoded string at the given height |
| 384 | 384 | //------------------------------------------------- |
| 385 | 385 | |
| r9535 | r9536 | |
| 406 | 406 | |
| 407 | 407 | |
| 408 | 408 | //------------------------------------------------- |
| 409 | // load_cached_bdf - attempt to load a cached | |
| 410 | // version of the BDF font 'filename'; if that | |
| 411 | // fails, fall back on the regular BDF loader | |
| 409 | // load_cached_bdf - attempt to load a cached | |
| 410 | // version of the BDF font 'filename'; if that | |
| 411 | // fails, fall back on the regular BDF loader | |
| 412 | 412 | // and create a new cached version |
| 413 | 413 | //------------------------------------------------- |
| 414 | 414 | |
| r9535 | r9536 | |
| 431 | 431 | mame_fclose(file); |
| 432 | 432 | return false; |
| 433 | 433 | } |
| 434 | ||
| 434 | ||
| 435 | 435 | // has the chunk |
| 436 | 436 | UINT32 hash = crc32(0, (const UINT8 *)data, bytes) ^ (UINT32)m_rawsize; |
| 437 | 437 | |
| r9535 | r9536 | |
| 456 | 456 | return true; |
| 457 | 457 | } |
| 458 | 458 | } |
| 459 | ||
| 459 | ||
| 460 | 460 | // read in the rest of the font |
| 461 | 461 | if (bytes < m_rawsize) |
| 462 | 462 | { |
| r9535 | r9536 | |
|---|---|---|
| 55 | 55 | { |
| 56 | 56 | friend class render_manager; |
| 57 | 57 | friend resource_pool_object<render_font>::~resource_pool_object(); |
| 58 | ||
| 58 | ||
| 59 | 59 | // construction/destruction |
| 60 | 60 | render_font(render_manager &manager, const char *filename); |
| 61 | 61 | virtual ~render_font(); |
| r9535 | r9536 | |
| 63 | 63 | public: |
| 64 | 64 | // getters |
| 65 | 65 | render_manager &manager() const { return m_manager; } |
| 66 | ||
| 66 | ||
| 67 | 67 | // size queries |
| 68 | 68 | INT32 pixel_height() const { return m_height; } |
| 69 | 69 | float char_width(float height, float aspect, unicode_char ch); |
| r9535 | r9536 | |
|---|---|---|
| 68 | 68 | #define UTF8_MULTIPLY "\xc3\x97" /* multiplication symbol */ |
| 69 | 69 | #define UTF8_DEGREES "\xc2\xb0" /* degrees symbol */ |
| 70 | 70 | |
| 71 | #define a_RING "\xc3\xa5" /* small a with a ring */ | |
| 72 | #define a_UMLAUT "\xc3\xa4" /* small a with an umlaut */ | |
| 73 | #define o_UMLAUT "\xc3\xb6" /* small o with an umlaut */ | |
| 74 | #define u_UMLAUT "\xc3\xbc" /* small u with an umlaut */ | |
| 71 | #define a_RING "\xc3\xa5" /* small a with a ring */ | |
| 72 | #define a_UMLAUT "\xc3\xa4" /* small a with an umlaut */ | |
| 73 | #define o_UMLAUT "\xc3\xb6" /* small o with an umlaut */ | |
| 74 | #define u_UMLAUT "\xc3\xbc" /* small u with an umlaut */ | |
| 75 | 75 | #define e_ACUTE "\xc3\xa9" /* small e with an acute */ |
| 76 | 76 | |
| 77 | #define A_RING "\xc3\x85" /* capital A with a ring */ | |
| 78 | #define A_UMLAUT "\xc3\x84" /* capital A with an umlaut */ | |
| 79 | #define O_UMLAUT "\xc3\x96" /* capital O with an umlaut */ | |
| 80 | #define U_UMLAUT "\xc3\x9c" /* capital U with an umlaut */ | |
| 77 | #define A_RING "\xc3\x85" /* capital A with a ring */ | |
| 78 | #define A_UMLAUT "\xc3\x84" /* capital A with an umlaut */ | |
| 79 | #define O_UMLAUT "\xc3\x96" /* capital O with an umlaut */ | |
| 80 | #define U_UMLAUT "\xc3\x9c" /* capital U with an umlaut */ | |
| 81 | 81 | #define E_ACUTE "\xc3\x89" /* capital E with an acute */ |
| 82 | 82 | |
| 83 | 83 | #define UTF8_LEFT "\xe2\x86\x90" /* cursor left */ |
| r9535 | r9536 | |
|---|---|---|
| 131 | 131 | #CPUS += MN10200 |
| 132 | 132 | CPUS += COSMAC |
| 133 | 133 | CPUS += UNSP |
| 134 | CPUS += COSMAC | |
| 135 | 134 | |
| 136 | 135 | #------------------------------------------------- |
| 137 | 136 | # specify available sound cores; some of these are |
| r9535 | r9536 | |
|---|---|---|
| 34 | 34 | |
| 35 | 35 | Source Changes: |
| 36 | 36 | ---------------- |
| 37 | - The core is based on MAME 0.140u1. This incorporates all features of the | |
| 38 | update to this core. [MAME team] | |
| 39 | ||
| 37 | 40 | - Added UTF-8 constants for Swedish/Finnish keyboard accented |
| 38 | 41 | characters, and cursor key arrows. Refactored drivers to |
| 39 | 42 | use these constants. [Curt Coder] |
| 43 | ||
| 40 | 44 | - Rewrite of the system architecture of all systems of the TI-99 |
| 41 | 45 | family (TI-99/4(A)/8, SGCPU, Geneve), now more closely |
| 42 | 46 | representing the real hardware. Using device structures for |
| 43 | 47 | all hardware parts now. Redundant code removed. [Michael Zapf] |
| 44 | 48 | |
| 45 | 49 | |
| 50 | ||
| 46 | 51 | 0.140 |
| 47 | 52 | |
| 48 | 53 | New System Drivers Supported: |
| Previous | 15994 Revisions | Next |