diff options
author | Aaron Giles <aaron@aarongiles.com> | 2009-01-15 07:57:19 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2009-01-15 07:57:19 +0000 |
commit | db8a1fc7485c1c511733a91404e443b0daf23078 (patch) | |
tree | d17ea1642e65b8e7399c0d56380cf62012fcdc8e /src | |
parent | 94d1eb4440f25091c72794dc9805a662bed9dd99 (diff) |
New games added or promoted from GAME_NOT_WORKING status
--------------------------------------------------------------------------------------------------
Trivia Hangup [Mariusz Wojcieszek]
Sure Shot [Mariusz Wojcieszek]
Mariusz.
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/sms.c | 862 | ||||
-rw-r--r-- | src/mame/drivers/smstrv.c | 515 | ||||
-rw-r--r-- | src/mame/mame.mak | 2 | ||||
-rw-r--r-- | src/mame/mamedriv.c | 4 |
4 files changed, 866 insertions, 517 deletions
diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c new file mode 100644 index 00000000000..ff79dd7c462 --- /dev/null +++ b/src/mame/drivers/sms.c @@ -0,0 +1,862 @@ +/* + SMS Manufacturing Corp hardware + + Driver by Mariusz Wojcieszek + + Preliminary driver by Reip + Schematics provided by Exodus + Sure Shot board provided by ranger_lennier + Notes by Lord Nightmare + + Notes/ToDo: + - pit8254 is not accessed by z80 (and there is no interrupt service routine), so + it is not fitted in the driver + - video registers can be read (to read framebuffer contents), this is not emulated + as software does not use this feature + - I8088 clock may be incorrect + - Video Blanking Zone input - probably hblank or vblank + - game speed may be not 100% correct - software does not use interrupts and + Video Blanking Zone is not emulated (which is required to get proper timings) + - implement video raw parameters + +*/ + +/* +smssshot (Lord Nightmare) +SMS Sure Shot (poker?) +* Same exact board as sms trivia, but "COMPONENT SIDE REV 01" + instead of rev 02. +* 3 chips were removed from the board; two are shown as removed + in the schematic, one was removed later (an apparently + unnecessary data buffer on one of the z80 external latches) +* Does NOT have a daughterboard with additional roms; in fact, + connector J1 for the ribbon cable to the daughterboard isn't + populated with pins at all +* Serial Number A-108 etched in board, on back. + + +smsbingo (Lord Nightmare) +SMS Bingo +Someone on the MW forums has this iirc, but it isn't dumped yet - LN + + + +**** Notes from schematics (applies to all drivers): +Framebuffer is six tms4416 16384*4 chips; chips are arranged as three +planes of 16384*8 bits per plane, one plane per color channel. +Screen resolution is probably either 212x256 (two bits per plane, per +pixel) or 424x256 (one bit per plane per pixel), depending on the pals +installed. See schematics on page 6. The counters at U137 and U139 +compare against binary 0b110101 (53) in comparitor at U138, and as soon +as it hits that, HDONE is pulled high on the next MCLR clock. +This means there will be 53 (0-52) counts in the X counter before HDONE; +as each count refers to one 8 bit address, and the addressed 4416 rams +have between all of them 24 bits of output (8 per plane), the minimum +horizontal displayed resolution is 53x256 (8 bits per color per pixel), +and maximum is 8 times that. With proper pals (and proper mixing +resistors or other PWM fun) it should be possible to get: +53x256 8,8,8 RGB +106x256 4,4,4 RGB +212x256 2,2,2 RGB <- this seems the most likely to me (LN) +424x256 1,1,1 RGB + + +* The socket at U50 and the 3 pin connector J3 is for an + undumped intel 8050 MCU used for rs232 serial communication, + for either linking together machines, or more likely for factory + testing. The function of this internal rom is probably simple + enough to HLE or to even rewrite from scratch, but I doubt the code + on any of the dumped games even touches it, it was probably for use + with a specific game or for a set of hardware test roms to report + errors. + (schematic page 4) + The pinout of J3 is: + pin 1 (toward bottom of pcb): rs232 input to pcb + (pre-level shifted to 5v i.e. with a max232 or mc1489) + pin 2 : ground + pin 3 : rs232 output to elsewhere (to be sent to a max232 or + mc1488 to shift to rs232 voltage levels) + +* The 8255 PPI at U13 (connected to the 8088) is connected to 75451 + drivers on all pins EXCEPT pins PC3 thru PC0. + (schematic page 3) + PA7 - Display Light 1 + PA6 - Display Light 2 + PA5 - Display Light 3 + PA4 - Display Light 4 + PA3 - Display Light 5 + PA2 - Bet Light + PA1 - Deal Light + PA0 - Draw Light + PB7 - Stand Light + PB6 - Cancel Light + PB5 - Coin Lock out A + PB4 - Coin Lock out B + PB3 - Setup Light + PB2 - Hopper Motor + PB1 - Coin in Counter (mechanical counter inside the machine) + PB0 - Knock off Counter (tilt? probably also a mechanical counter) + PC7 - unused + PC6 - unused + PC5 - unused + PC4 - Battery Charge control (for 8088 ram backup 3.6v Nicad) + PC3 - (pulled high externally, input) - unused? possibly for an ABC hopper + PC2 - (pulled high externally, input) - unused? possibly for an ABC hopper + PC1 - (pulled high externally, input) - "Hopper Count", + probably a beam to check the hopper coin out + PC0 - "Video BZ" (Video Blanking Zone, is an input) + +* The 8255 PPI at U2 (connected to the z80) is unused and not populated. + (All 3 ports have +5V pullups on all pins) + +* The 8255 PPI at U1 (connected to the z80) is used as follows: + (All 3 ports have +5V pullups on all pins) + PA7 - Lighted Button 1 (input) + PA6 - Lighted Button 2 (input) + PA5 - Lighted Button 3 (input) + PA4 - Lighted Button 4 (input) + PA3 - Lighted Button 5 (input) + PA2 - Bet Button (input) + PA1 - Deal Button (input) + PA0 - Draw Button (input) + PB7 - Stand Button (input) + PB6 - Cancel Button (input) + PB5 - Alt Coin (input) + PB4 - Remote Knockoff (tilt? input) + PB3 - Operator Mode (input) + PB2 - Coin Error reset (input) + PB1 - unused + PB0 - unused + PC7 - unused + PC6 - unused + PC5 - unused + PC4 - unused + PC3 - unused + PC2 - unused + PC1 - unused + PC0 - Coin (input) + + +* The function of the pals is: +LOCATION DOTS TYPE PURPOSE +U32 1Green DMPAL10L8NC Decodes the gated by U33/U34) + high address lines of the 8088, for mainboard ROM mapping. A + different pal is probably used depending on whether the + mainboard has 2764 or 27128 roms installed. + SMS Sure Shot: dumped ok as truth table, mainboard has 4 2764s + SMS Trivia: bad (chip shorted internally), mainboard has 2 27128s + SMS Bingo: not dumped + (schematic page 2) +U38 3Blue PAL10L8CN Decodes the (gated by U36) + high address lines of the z80 address bus, for mapping of the z80 + ROM, RAM, Counter control, 4 z80-to-8088 ports (2 one direction, + 2 the other), the ay-3-8910, and the two 8255 PPIs. + (schematic page 10) +U39 3Green PAL10L8CN Accessory decoder to U38, helps + with the 4 z80-to-8088 ports. + (schematic page 10) +U40 1Red PAL10L8CN Connects to the low bits of the + 8088 address bus for decoding writing to/reading from the 8088 side of + the 4 z80-to-8088 ports. + (schematic page 10, note this chip is mismarked as U9 on the page, + it is the chip in the lower left) +U52 1Blue PAL10L8CN Decodes the (gated by U33/U34) + high address lines of the 8088, for main memory mapping of ram, + z80 communication, video, serial I/O (to U50), and the output-only + 8255 at U13 (which controls button lights and the coin hopper) + SMS Sure Shot: dumped ok as truth table + SMS Trivia: checksum 0, probably bad + SMS Bingo: not dumped + (schematic page 1) +U58 3Brown DMPAL10H8NC Controls BDIR and BC1 on the + ay-3-8910 given the low two address bits of the z80 bits, the + ay-3-8910 enable line, and the buffered z80 RD and WR lines. + (schematic page 12) +U80 2Blue PAL10H8CN State machine which controls StartH, + StartV, and the related functions involving the shifters for framebuffer + address and framebuffer output. Also lets framebuffer know when in hblank + or vblank. Is separate from the other "Video BZ" thing. + (schematic page 6) +U94 2Green PAL14H4CN State machine controls the + read-modify-write logic for accessing the frame buffer (while outside + of vblank and hblank?), may allow writing red green and blue plane bytes + all to one address, one after the other + (schematic page 7) +U109 2Brown PAL14H4CN Determines next state of the + 'Pixel control' hardware, i.e. H and V current line counters + Also determines VBLANK/"Video BZ" + (schematic page 5) +U110 2Red PAL10L8CN Translates output of U109 + before being sent to counters/color reg latch/etc. + (schematic page 5) +U128 Blue-Brown-Blue PAL10H8CN One of three 'sync' pals which + control the memory and other timing subsystem, fed by a 4 bit counter. + this particular pal has one external feedback bit. + (schematic page 6) +U129 Red-Green-Red DMPAL10H8NC Second of three 'sync' pals + This one has 2 external feedback bits. + (schematic page 6) +U130 3Red PAL10H8CN Third of three 'sync' pals' + This one has 3 external feedback bits plus three extra inputs from elsewhere + which are not readable on the schematic. Will trace them later. + (schematic page 6) +U140 1Brown PAL14H4CN This and the next 5 pals are used + to shift the framebuffer data, 4 bits at a time. This is done in parallel + (8 bits per channel) for output. all 6 pals are the same. + (schematic page 7) +U141 1Brown PAL14H4CN +U142 1Brown PAL14H4CN +U143 1Brown PAL14H4CN +U144 1Brown PAL14H4CN +U145 1Brown PAL14H4CN + + +*/ +#include "driver.h" +#include "cpu/i86/i86.h" +#include "cpu/z80/z80.h" +#include "sound/ay8910.h" +#include "machine/8255ppi.h" + +/************************************* + * + * Bankswitching (for trivia question roms) + * + *************************************/ + +static WRITE8_HANDLER(bankswitch_w) +{ + memory_set_bank(space->machine, 1, data); +} + +/************************************* + * + * 8088 <-> Z80 communication + * + *************************************/ + +static UINT8 communication_port[4]; +static UINT8 communication_port_status = 0; + +static READ8_HANDLER(link_r) +{ + switch(offset) + { + case 0: + communication_port_status &= ~0x01; + return communication_port[0]; + case 1: + communication_port_status &= ~0x02; + return communication_port[1]; + case 2: + return communication_port_status; + } + return 0; +}; + +static WRITE8_HANDLER(link_w) +{ + switch(offset) + { + case 0: + communication_port_status |= 0x08; + communication_port[3] = data; + break; + case 1: + communication_port_status |= 0x04; + communication_port[2] = data; + break; + } +} + +static READ8_HANDLER(z80_8088_r) +{ + return communication_port_status; +} + +static READ8_HANDLER(p03_r) +{ + switch(offset) + { + case 0: + communication_port_status &= ~0x08; + return communication_port[3]; + case 1: + communication_port_status &= ~0x04; + return communication_port[2]; + } + return 0; +} + +static WRITE8_HANDLER(p03_w) +{ + switch(offset) + { + case 0: + communication_port_status |= 0x01; + communication_port[0] = data; + break; + case 1: + communication_port_status |= 0x02; + communication_port[1] = data; + break; + } +} + + +/************************************* + * + * Input ports + * + *************************************/ + +INPUT_PORTS_START(sms) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Draw") /* Draw Button */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Deal") /* Deal Button */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Bet") /* Bet Button */ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* Lighted Button 5 */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* Lighted Button 4 */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Lighted Button 3 */ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* Lighted Button 2 */ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* Lighted Button 1 */ + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Coin Error reset */ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) /* Operator Mode */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Remote Knockoff */ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Cancel") /* Cancel Button */ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Stand") /* Stand Button */ + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) /* Coin */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + +/************************************* + * + * 8255 PPIs + * + *************************************/ + +static READ8_DEVICE_HANDLER(ppi0_c_r) +{ +/* + PC7 - unused + PC6 - unused + PC5 - unused + PC4 - Battery Charge control (for 8088 ram backup 3.6v Nicad) + PC3 - (pulled high externally, input) - unused? possibly for an ABC hopper + PC2 - (pulled high externally, input) - unused? possibly for an ABC hopper + PC1 - (pulled high externally, input) - "Hopper Count", + probably a beam to check the hopper coin out + PC0 - "Video BZ" (Video Blanking Zone, is an input) + it's probably vblank or hblank, 0 is always returned, games wait for this bit + to become 0 before accesing video +*/ + return 0; +} + +static WRITE8_DEVICE_HANDLER(ppi0_a_w) +{ + //popmessage("Lamps: %d %d %d %d %d %d %d", BIT(data,7), BIT(data,6), BIT(data,5), BIT(data,4), BIT(data,3), BIT(data,2), BIT(data,1) ); + output_set_lamp_value(0, !BIT(data,7)); /* Display Light 1 */ + output_set_lamp_value(1, !BIT(data,6)); /* Display Light 2 */ + output_set_lamp_value(2, !BIT(data,5)); /* Display Light 3 */ + output_set_lamp_value(3, !BIT(data,4)); /* Display Light 4 */ + output_set_lamp_value(4, !BIT(data,3)); /* Display Light 5 */ + output_set_lamp_value(5, !BIT(data,2)); /* Bet Light */ + output_set_lamp_value(6, !BIT(data,1)); /* Deal Light */ + output_set_lamp_value(7, !BIT(data,0)); /* Draw Light */ +} + +static WRITE8_DEVICE_HANDLER(ppi0_b_w) +{ + output_set_lamp_value(8, !BIT(data,7)); /* Stand Light */ + output_set_lamp_value(9, !BIT(data,6)); /* Cancel Light */ + + coin_counter_w(0, BIT(data,1)); + coin_lockout_w(0, BIT(data,5)); + coin_lockout_w(1, BIT(data,4)); +} + +static const ppi8255_interface ppi8255_intf[2] = +{ + { + 0, /* Port A read */ + 0, /* Port B read */ + ppi0_c_r, /* Port C read */ + ppi0_a_w, /* Port A write */ + ppi0_b_w, /* Port B write */ + 0 /* Port C write */ + }, + { + DEVICE8_PORT("IN0"), /* Port A read */ + DEVICE8_PORT("IN1"), /* Port B read */ + DEVICE8_PORT("IN2"), /* Port C read */ + 0, /* Port A write */ + 0, /* Port B write */ + 0 /* Port C write */ + } +}; + +/************************************* + * + * Video + * + *************************************/ + +static bitmap_t *sms_bitmap; + +static UINT8 vid_regs[7]; + +WRITE8_HANDLER(video_w) +{ + vid_regs[offset] = data; + if ( offset == 5 ) + { + int x,y; + int xstart = vid_regs[0] + vid_regs[1]*256; + int width = vid_regs[2]; + int ystart = vid_regs[3]; + int height = vid_regs[4]; + int color = vid_regs[5]; + + if ( height == 0 ) + height = 256; + + if ( width == 0 ) + width = 256; + + for ( y = ystart; y < ystart + height; y++ ) + { + for ( x = xstart; x < xstart + width; x++ ) + { + if ( y < 256 ) + *BITMAP_ADDR16(sms_bitmap, y, x) = color; + } + } + } +} + +static VIDEO_START( sms ) +{ + sms_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen); + + state_save_register_global_array(machine, vid_regs); + state_save_register_global_bitmap(machine, sms_bitmap); +} + +static VIDEO_UPDATE( sms ) +{ + copybitmap(bitmap, sms_bitmap, 0, 0, 0, 0, cliprect); + return 0; +} + +static PALETTE_INIT( sms ) +{ + int i; + + for (i = 0; i < 8; i++ ) + { + palette_set_color(machine, i, MAKE_RGB(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i))); + } +} + +/************************************* + * + * Memory maps + * + *************************************/ + +static ADDRESS_MAP_START( sms_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) + AM_RANGE(0x00800, 0x00803) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0x01000, 0x01007) AM_WRITE(video_w) + AM_RANGE(0x01800, 0x01803) AM_READWRITE(link_r, link_w) + AM_RANGE(0x04000, 0x07fff) AM_ROMBANK(1) + AM_RANGE(0x04000, 0x04000) AM_WRITE(bankswitch_w) + AM_RANGE(0x08000, 0x0ffff) AM_ROM + AM_RANGE(0xf8000, 0xfffff) AM_ROM // mirror for vectors +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sureshot_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) + AM_RANGE(0x02000, 0x02007) AM_WRITE(video_w) + AM_RANGE(0x03000, 0x03003) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0x03800, 0x03803) AM_READWRITE(link_r, link_w) + AM_RANGE(0x08000, 0x0ffff) AM_ROM + AM_RANGE(0xf8000, 0xfffff) AM_ROM // mirror for vectors +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x1fff) AM_ROM + AM_RANGE(0x2000, 0x27ff) AM_RAM + AM_RANGE(0x3100, 0x3103) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0x3381, 0x3381) AM_WRITE(ay8910_write_port_0_w) + AM_RANGE(0x3382, 0x3382) AM_WRITE(ay8910_control_port_0_w) + AM_RANGE(0x3400, 0x3400) AM_READ(z80_8088_r) + AM_RANGE(0x3500, 0x3501) AM_READWRITE(p03_r, p03_w) +ADDRESS_MAP_END + +/************************************* + * + * Machine + * + *************************************/ + +static MACHINE_START( sms ) +{ + memory_configure_bank(machine, 1, 0, 16, memory_region(machine, "questions"), 0x4000); +} + +static MACHINE_START( sureshot ) +{ +} + +static MACHINE_RESET( sms ) +{ + communication_port_status = 0; + + state_save_register_global(machine, communication_port_status); + state_save_register_global_array(machine, communication_port); +} + +static MACHINE_DRIVER_START( sms ) + MDRV_CPU_ADD("main", I8088, XTAL_24MHz/8) + MDRV_CPU_PROGRAM_MAP(sms_map,0) + + MDRV_CPU_ADD("sound", Z80, XTAL_16MHz/8) + MDRV_CPU_PROGRAM_MAP(sub_map, 0) + + MDRV_QUANTUM_TIME(HZ(6000)) + + MDRV_MACHINE_START(sms) + MDRV_MACHINE_RESET(sms) + + MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) + MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + + MDRV_NVRAM_HANDLER(generic_0fill) + + /* video hardware */ + MDRV_SCREEN_ADD("main", RASTER) + MDRV_SCREEN_REFRESH_RATE(60) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) + MDRV_SCREEN_SIZE(0x1b0, 0x100) + MDRV_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff) + + MDRV_PALETTE_LENGTH(8) + + MDRV_PALETTE_INIT(sms) + MDRV_VIDEO_START(sms) + MDRV_VIDEO_UPDATE(sms) + + /* sound hardware */ + MDRV_SPEAKER_STANDARD_MONO("mono") + + MDRV_SOUND_ADD("ay", AY8910, XTAL_16MHz/8) + MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_DRIVER_END + +static MACHINE_DRIVER_START(sureshot) + MDRV_IMPORT_FROM(sms) + + MDRV_CPU_MODIFY("main") + MDRV_CPU_PROGRAM_MAP(sureshot_map,0) + + MDRV_MACHINE_START(sureshot) +MACHINE_DRIVER_END + +/************************************* + * + * ROM definitions + * + *************************************/ + +/* +Triva looking board +Silk screened on front... + P/N 1001 +Etched in copper on font... + COMPONENT SIDE REV 02 +Etched in copper on back... + COPYRIGHT SMS 1983 S/N MADE IN USA + mfg corp + +Serial number A4675 etched in board + +Large chips + P8088 + AY-3-8910 + CDM6116 x2 + P8255A-5 + P8254 + D8255AC-5 + D780C-1 + +16 Mhz crystal by D780C (U21) +24 Mhz crystal by P8088 (u53) + +Open sockets at U50 (40 pin), U15 (24 pin), U2 (40 pin), U25 (24 pin) + +Bottom Board +.U17 - 27128 +.U16 - 27128 +.U26 - 2732 - stickered #26 073184 +.U38 - DMPAL10L8NC - 3 blue dots on it - saved in jedec format +.U39 - DMPAL10L8NC - 3 green dots on it - saved in jedec format +.U40 - DMPAL10L8NC - 1 pink dot on it - saved in jedec format +.U110 - DMPAL10L8NC - 2 pink dots on it - saved in jedec format +.U52 - DMPAL10L8NC - not labeled - checksum was 0 +.U32 - DMPAL10L8NC - stickered trivia U32 - couldn't read "device overcurrent" +.U58 - DMPAL10H8NC - 3 brown dots on it - saved in jedec format +.U80 - DMPAL10H8NC - 2 blue dots on it - saved in jedec format +.U130 - DMPAL10H8NC - 3 pink dots on it - saved in jedec format +.U129 - DMPAL10H8NC - pink-green-pink dots on it - saved in jedec format +.U128 - DMPAL10H8NC - blue-brown-blue dots on it - saved in jedec format +.U145 - DMPAL14H4NC - brown dot on it - saved in jedec format +.U144 - DMPAL14H4NC - brown dot on it - saved in jedec format +.U143 - DMPAL14H4NC - brown dot on it - saved in jedec format +.U142 - DMPAL14H4NC - brown dot on it - saved in jedec format +.U141 - DMPAL14H4NC - brown dot on it - saved in jedec format +.U140 - DMPAL14H4NC - brown dot on it - saved in jedec format + U.145-U.140 had the same checksum + +.U94 - DMPAL14H4NC - 2 green dots on it - saved in jedec format +.U109 - DMPAL14H4NC - 2 brown dots on it - saved in jedec format + +Daughter Board +Etched in copper on top... + SMS MFG M?I 2685 ? = a cage looking symbol + +Read starting at top row, closest to connector to main board +.D0 - DMPAL10L8NC - 1 orange dot on it - saved in jedec format +.D1 - 27128 - couldn't read sticker - +.D2 - 27128 - couldn't read sticker - +.D3 - 27128 - couldn't read sticker - +.D4 - 27128 - stickered 4 MOVIES .1 ?2485 ? = can't read +.D5 - 27128 - stickered 3 ANYTHING .4 042485 +.D6 - 27128 - stickered 2 ANYTHING .3 042485 +.D7 - 27128 - stickered 1 ANYTHING .2 042485 +.D8 - 27128 - stickered 0 ANYTHING .1 042485 + +2nd row - left to right +.D9 - 27128 - stickered 12 MUSIC .1 042485 +.D10 - 27128 - stickered 13 MUSIC .1 042485 +.D11 - 27128 - stickered 14 MUSIC .1 042485 +.D12 - 27128 - stickered 15 MUSIC .1 042485 + +3rd row - left to right +.D13 - 27128 - stickered 11 SPORTS .4 042485 +.D14 - 27128 - stickered 10 SPORTS .3 042485 +.D15 - 27128 - stickered 9 SPORTS .2 042485 +.D16 - 27128 - stickered 8 SPORTS .1 042485 +.D17 - DMPAL10L8NC - 1 white dot on it - saved in jedec format + + +ROM text showed... + COPYRIGHT 1984 SMS MFG CORP + TRIVIA HANGUP + SMART ALECS +*/ + +ROM_START( trvhang ) + ROM_REGION( 0x100000, "main", 0 ) + ROM_LOAD( "sms.17", 0xf8000, 0x04000, CRC(af6ef980) SHA1(f0f98d1f91de718a63b87c5f1c6ee3bd854d1c1b) ) + ROM_LOAD( "sms.16", 0xfc000, 0x04000, CRC(b827d883) SHA1(68d6c2127ef9e537471c414ca7baa89c63997bbb) ) + ROM_COPY( "main", 0xf8000, 0x08000, 0x8000 ) + + ROM_REGION( 0x10000, "sound", 0 ) + ROM_LOAD( "sms.26", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) ) + ROM_RELOAD( 0x1000, 0x1000 ) + + ROM_REGION( 0x40000, "questions", 0 ) + // anything + ROM_LOAD( "0anything1.d8", 0x00000, 0x4000, CRC(80096807) SHA1(a38b1b13365577c0c588b8e196ee1a6c774ce3a3) ) + ROM_LOAD( "1anything2.d7", 0x04000, 0x4000, CRC(d09946b6) SHA1(b5827945ce380f09ee758c4296f06f00ef3cbd0a) ) + ROM_LOAD( "2anything3.d6", 0x08000, 0x4000, CRC(5b12fd09) SHA1(15804480e65bfb3207d24a1679bb78d1ad491d70) ) + ROM_LOAD( "3anything4.d5", 0x0c000, 0x4000, CRC(f1a37ed7) SHA1(687a610319b21091cbc53232b47eb99dabe12f02) ) + // movies + ROM_LOAD( "4movies1.d4", 0x10000, 0x4000, CRC(76993bd1) SHA1(b9a97ab7c6d35f5fdda04342e0b3773618deedef) ) + ROM_LOAD( "5movies1.d3", 0x14000, 0x4000, CRC(8c5f62ef) SHA1(34ac235358a71620a6619dbb16255c363f34df53) ) + ROM_LOAD( "6movies1.d2", 0x18000, 0x4000, CRC(13c9fe08) SHA1(6b7d055621ce578446d320f98f7a4cd095e756b0) ) + ROM_LOAD( "7movies1.d1", 0x1c000, 0x4000, CRC(04f627c0) SHA1(c656b66c60059a1b068c4a7262f07f4c136c34c1) ) + // sports + ROM_LOAD( "8sports1.d16", 0x20000, 0x4000, CRC(b700e7e6) SHA1(42b2c12c6af5f15d909e15ee3e7ca2e13e0142c2) ) + ROM_LOAD( "9sports2.d15", 0x24000, 0x4000, CRC(bec225fe) SHA1(13252894eca30e06354885a21ecad43965cfd3ef) ) + ROM_LOAD( "10sports3.d14", 0x28000, 0x4000, CRC(3bfe9b52) SHA1(0cdd9ec6ed784fab9272d50821994be5b0fd0532) ) + ROM_LOAD( "11sports4.d13", 0x2c000, 0x4000, CRC(9bb8dbad) SHA1(0dd9ed23e6794a86a12906b326e984a2d58cc4c6) ) + // music + ROM_LOAD( "12music1.d9", 0x30000, 0x4000, CRC(c1691ec9) SHA1(95725fa315944c0786e2a32d483703173eb2e730) ) + ROM_LOAD( "13music1.d10", 0x34000, 0x4000, CRC(df0da39f) SHA1(29103dca8b0c1967791e8ddd722153874e16bbda) ) + ROM_LOAD( "14music1.d11", 0x38000, 0x4000, CRC(114b4aa6) SHA1(2621d1042b0774d60be88cc8d62613aa07c12552) ) + ROM_LOAD( "15music1.d12", 0x3c000, 0x4000, CRC(59a40e4f) SHA1(e726ce624c76ee527edc51c1e5757b7d433dcf8c) ) + + + ROM_REGION( 0x1000, "plds", 0 ) + ROM_LOAD( "dmpal10l8nc.d17.bin", 0x000000, 0x0001f3, CRC(e9eb78e7) SHA1(688e854e82c230d367c211f611e9a8298ab64399) ) + ROM_LOAD( "dmpal10l8nc.38.bin", 0x000000, 0x0001f3, CRC(be17ebde) SHA1(22c05eeafeadc8f55b55951c2060fb4873146cba) ) + ROM_LOAD( "dmpal10l8nc.39.bin", 0x000000, 0x0001f3, CRC(3299e803) SHA1(12f361d27497f6347ee26838fa9f675f6aac12c2) ) + ROM_LOAD( "dmpal10l8nc.40.bin", 0x000000, 0x0001f3, CRC(22881f1c) SHA1(646fdc4e4a423e1432b448140f2d92dd2304ff71) ) + ROM_LOAD( "dmpal10l8nc.52.bin", 0x000000, 0x0001f3, CRC(2e43ba5f) SHA1(8b87ee8ce21f5241260f2d0de4878096d8ecb5f5) ) + ROM_LOAD( "dmpal10h8nc.58.bin", 0x000000, 0x0001f3, CRC(020b5108) SHA1(f3221fbce40a9d6fdc2eece606e4eded3faf5f02) ) + ROM_LOAD( "dmpal10h8nc.80.bin", 0x000000, 0x0001f3, CRC(66e21ee5) SHA1(31c29a250f50dcdf531810e59068adfea4d2d9a3) ) + ROM_LOAD( "dmpal14h4nc.94.bin", 0x000000, 0x000283, CRC(c5fda3df) SHA1(4fdd597d25ed893cb005165b68e48567fbd2b1ce) ) + ROM_LOAD( "dmpal14h4nc.109.bin", 0x000000, 0x000283, CRC(15d05aaa) SHA1(57500b4825a1da943d79ee7df657efed56c4320e) ) + ROM_LOAD( "dmpal10l8nc.110.bin", 0x000000, 0x0001f3, CRC(6263b1e1) SHA1(6c8d92bcbbc2d196b5ac7765888eaf171671d651) ) + ROM_LOAD( "dmpal10h8nc.128.bin", 0x000000, 0x0001f3, CRC(fbaea5b0) SHA1(85a757485c26304d4ce718fd954aa4736cdc4752) ) + ROM_LOAD( "dmpal10h8nc.129.bin", 0x000000, 0x0001f3, CRC(4722fb3b) SHA1(adc0a3c0721acaa5b447c7aee771703caab80dd9) ) + ROM_LOAD( "dmpal10h8nc.130.bin", 0x000000, 0x0001f3, CRC(d3f0a6a5) SHA1(5e08b6104dfd3e463031b2b12619589a8f7b453c) ) + ROM_LOAD( "dmpal14h4nc.140.bin", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) + ROM_LOAD( "dmpal14h4nc.141.bin", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) + ROM_LOAD( "dmpal14h4nc.142.bin", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) + ROM_LOAD( "dmpal14h4nc.143.bin", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) + ROM_LOAD( "dmpal14h4nc.144.bin", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) + ROM_LOAD( "dmpal14h4nc.145.bin", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) + ROM_LOAD( "dmpal10l8nc.d0.bin", 0x000000, 0x0001f3, CRC(b1c221a7) SHA1(f63a022199a2d7b52c4c4827b170d49aae85e4e3) ) +ROM_END + +/* +Etched in copper on back COPYRIGHT SMS 1983 + mfg corp. S/N A-2043 + A-2043 was hand etched + +16MHz Crystal +24MHz Crystal +D780C +D8255AC-5 +P8255A-5 +P8088 +AY-3-8910 +6116 x2 +P8254 + +Empty 40 pin socket at U2 and U50 +Empty 24 pin socket at U25 +Empty 28 pin socket at U18 + + + +.u16 28128 stickered U-16 + TRIVIA -2 + 011586 + +.u17 28128 stickered U-16 + TRIVIA -2 + 011586 + +.u19 28128 stickered U-16 + TRIVIA DLXE + 021281 + +.u26 2732 stickered #26 + 073184 + + +the pal's had colored dots on them +saved in JEDEC format +.32 dmpal10l8nc red red blue +.52 dmpal10l8nc red red white +.38 dmpal10l8nc blue blue blue +.39 dmpal10l8nc green green green +.40 dmpal10l8nc pink +.110 dmpal10l8nc pink pink +.58 dmpal10h8nc brown brown brown +.80 dmpal10h8nc blue blue +.128 dmpal10h8nc blue brown blue +.129 dmpal10h8nc pink green pink +.130 dmpal10h8nc pink scratched off +.94 dmpal14h4nc green green +.109 dmpal14h4nc brown brown +.140 dmpal14h4nc brown +.141 dmpal14h4nc brown +.142 dmpal14h4nc brown +.143 dmpal14h4nc brown +.144 dmpal14h4nc brown +.145 dmpal14h4nc brown +*/ + +ROM_START( trvhanga ) + ROM_REGION( 0x100000, "main", 0 ) + ROM_LOAD( "sms2.u17", 0xf8000, 0x04000, CRC(e5c880a1) SHA1(da777c4e126da2f03a663f8c8f565bda8520c883) ) + ROM_LOAD( "sms2.16", 0xfc000, 0x04000, CRC(85484aee) SHA1(7c282bd208bd644d5d57ac399942c95211e87bf4) ) + ROM_COPY( "main", 0xf8000, 0x08000, 0x8000 ) + + ROM_REGION( 0x10000, "sound", 0 ) + ROM_LOAD( "sms2.26", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) ) + ROM_RELOAD( 0x1000, 0x1000 ) + + ROM_REGION( 0x4000, "user", 0 ) + ROM_LOAD( "sms2.u19", 0x00000, 0x04000, CRC(5e10059b) SHA1(f0eb490d41009ffe1c80216f699557480110954b) ) // unknown rom (leftover from conversion?) + + ROM_REGION( 0x40000, "questions", 0 ) + // sex + ROM_LOAD( "0sex1.d8", 0x00000, 0x4000, NO_DUMP ) + ROM_LOAD( "1sex2.d7", 0x04000, 0x4000, NO_DUMP ) + ROM_LOAD( "2sex3.d6", 0x08000, 0x4000, NO_DUMP ) + ROM_LOAD( "3sex4.d5", 0x0c000, 0x4000, NO_DUMP ) + // movies + ROM_LOAD( "4movies1.d4", 0x10000, 0x4000, NO_DUMP ) + ROM_LOAD( "5movies1.d3", 0x14000, 0x4000, NO_DUMP ) + ROM_LOAD( "6movies1.d2", 0x18000, 0x4000, NO_DUMP ) + ROM_LOAD( "7movies1.d1", 0x1c000, 0x4000, NO_DUMP ) + // sports + ROM_LOAD( "8sports1.d16", 0x20000, 0x4000, NO_DUMP ) + ROM_LOAD( "9sports2.d15", 0x24000, 0x4000, NO_DUMP ) + ROM_LOAD( "10sports3.d14", 0x28000, 0x4000, NO_DUMP ) + ROM_LOAD( "11sports4.d13", 0x2c000, 0x4000, NO_DUMP ) + // music + ROM_LOAD( "12music1.d9", 0x30000, 0x4000, NO_DUMP ) + ROM_LOAD( "13music1.d10", 0x34000, 0x4000, NO_DUMP ) + ROM_LOAD( "14music1.d11", 0x38000, 0x4000, NO_DUMP ) + ROM_LOAD( "15music1.d12", 0x3c000, 0x4000, NO_DUMP ) + + ROM_REGION( 0x1000, "plds", 0 ) + ROM_LOAD( "dmpal10l8nc.32.bin", 0x000000, 0x00002c, CRC(558ca47e) SHA1(4612e5dd9832bcbf6d7b3bce803f92ea2ee03b98) ) + ROM_LOAD( "dmpal10l8nc.38.bin", 0x000000, 0x00002c, CRC(84c39631) SHA1(8aa28be5418dd119883a9d400f23927e0cf8d7b4) ) + ROM_LOAD( "dmpal10l8nc.39.bin", 0x000000, 0x00002c, CRC(ab950780) SHA1(73e8eb8050ca337e58b34513a9cf522e4fb43b5d) ) + ROM_LOAD( "dmpal10l8nc.40.bin", 0x000000, 0x00002c, CRC(a2de5f30) SHA1(ea2293f6b979aa16ccf1c8d6c88ea484ef45ea6b) ) + ROM_LOAD( "dmpal10l8nc.52.bin", 0x000000, 0x00002c, CRC(5d09ff76) SHA1(0b977db9dc465a36975b935d3585f404b86de293) ) + ROM_LOAD( "dmpal10h8nc.58.bin", 0x000000, 0x00002c, CRC(3df46d79) SHA1(606040b69908635ab5166193c53557ffa524c9d3) ) + ROM_LOAD( "dmpal10h8nc.80.bin", 0x000000, 0x00002c, CRC(7bd4fbf5) SHA1(a2951bcf6af2a6d0211070c2dc49b8c1e9b78b9b) ) + ROM_LOAD( "dmpal14h4nc.94.bin", 0x000000, 0x00003c, CRC(43a4e3f1) SHA1(afc530cc52ac04abce33b7c61e256da1cb30eb23) ) + ROM_LOAD( "dmpal14h4nc.109.bin", 0x000000, 0x00003c, CRC(98542c78) SHA1(282d06701da1130d9ca0fcbd81ea89f1462693e2) ) + ROM_LOAD( "dmpal10l8nc.110.bin", 0x000000, 0x00002c, CRC(f59c1868) SHA1(cc75ce71057360e62ea3ea929f241dc6105f1362) ) + ROM_LOAD( "dmpal10h8nc.128.bin", 0x000000, 0x00002c, CRC(083cd773) SHA1(70a49a53d549b90c7a036f4afaf92759bf8e20c9) ) + ROM_LOAD( "dmpal10h8nc.129.bin", 0x000000, 0x00002c, CRC(c5841a1a) SHA1(f2929321b041114f771e9fba4cbe2fb36c26a053) ) + ROM_LOAD( "dmpal10h8nc.130.bin", 0x000000, 0x00002c, CRC(a4051372) SHA1(23b200f3950e583cc40b3cc82d62e274294e5593) ) + ROM_LOAD( "dmpal14h4nc.140.bin", 0x000000, 0x00003c, CRC(c921d183) SHA1(db7be592058456e83a8603cf839f5664ea0a0f76) ) + ROM_LOAD( "dmpal14h4nc.141.bin", 0x000000, 0x00003c, CRC(c921d183) SHA1(db7be592058456e83a8603cf839f5664ea0a0f76) ) + ROM_LOAD( "dmpal14h4nc.142.bin", 0x000000, 0x00003c, CRC(c921d183) SHA1(db7be592058456e83a8603cf839f5664ea0a0f76) ) + ROM_LOAD( "dmpal14h4nc.143.bin", 0x000000, 0x00003c, CRC(c921d183) SHA1(db7be592058456e83a8603cf839f5664ea0a0f76) ) + ROM_LOAD( "dmpal14h4nc.144.bin", 0x000000, 0x00003c, CRC(c921d183) SHA1(db7be592058456e83a8603cf839f5664ea0a0f76) ) + ROM_LOAD( "dmpal14h4nc.145.bin", 0x000000, 0x00003c, CRC(ab2af8de) SHA1(775495d47435c23eecf3defba15f5ca890836354) ) +ROM_END + +ROM_START( sureshot ) + ROM_REGION( 0x100000, "main", 0 ) + ROM_LOAD( "u-19 hldly s.shot 020687.u19.a12.bin", 0xf8000, 0x02000, CRC(028bdb61) SHA1(e39c27cc6dec12de5a5e60d544f35448e49baee1) ) + ROM_LOAD( "u-18 hldly s.shot 020687.u18.a11.bin", 0xfa000, 0x02000, CRC(5aa083f1) SHA1(3eed1a7421e7abcc41a1bddf655b1e777d843898) ) + ROM_LOAD( "u-17 hldly s.shot 020687.u17.a10.bin", 0xfc000, 0x02000, CRC(a37432d6) SHA1(398462642ab0b34efdb6ff4756758057b9833e10) ) + ROM_LOAD( "u-16 hldly s.shot 020687.u16.a9.bin", 0xfe000, 0x02000, CRC(d7f756d5) SHA1(5c7f62b02b4d4836881c3da0604448c34ede674b) ) + ROM_COPY( "main", 0xf8000, 0x08000, 0x8000 ) + + ROM_REGION( 0x10000, "sound", 0 ) + ROM_LOAD( "26 404 073184.u26.b5.bin", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) ) + ROM_RELOAD( 0x1000, 0x1000 ) +ROM_END + +GAME( 1984, trvhang, 0, sms, sms, 0, ROT0, "SMS MFG CORP", "Trivia Hangup (Question Set 1)", GAME_SUPPORTS_SAVE ) /* Version Trivia-1-050185 */ +GAME( 1984, trvhanga, 0, sms, sms, 0, ROT0, "SMS MFG CORP", "Trivia Hangup (Question Set 2)", GAME_NOT_WORKING ) /* Version Trivia-2-011586 */ +GAME( 1985, sureshot, 0, sureshot, sms, 0, ROT0, "SMS MFG CORP", "Sure Shot", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/smstrv.c b/src/mame/drivers/smstrv.c deleted file mode 100644 index fc3f0201ab4..00000000000 --- a/src/mame/drivers/smstrv.c +++ /dev/null @@ -1,515 +0,0 @@ -/* -SMS Manufacturing PCB Driver -By Reip - - -smstrv (Reip): -Triva looking board -Silk screened on front... - P/N 1001 -Etched in copper on font... - COMPONENT SIDE REV 02 -Etched in copper on back... - COPYRIGHT SMS 1983 S/N MADE IN USA - mfg corp - -Serial number A4675 etched in board - -Large chips - P8088 - AY-3-8910 - CDM6116 x2 - P8255A-5 - P8254 - D8255AC-5 - D780C-1 (Z80A) - -16 Mhz crystal by D780C (U21) -24 Mhz crystal by P8088 (u53) - -Open sockets at U50 (40 pin), U15 (24 pin), U2 (40 pin), U25 (24 pin) - -Bottom Board -.U17 - 27128 -.U16 - 27128 -.U26 - 2732 - stickered #26 073184 -.U38 - DMPAL10L8NC - 3 blue dots on it - saved in jedec format -.U39 - DMPAL10L8NC - 3 green dots on it - saved in jedec format -.U40 - DMPAL10L8NC - 1 pink dot on it - saved in jedec format -.U110 - DMPAL10L8NC - 2 pink dots on it - saved in jedec format -.U52 - DMPAL10L8NC - not labeled - checksum was 0 -.U32 - DMPAL10L8NC - stickered trivia U32 - couldn't read "device overcurrent" -.U58 - DMPAL10H8NC - 3 brown dots on it - saved in jedec format -.U80 - DMPAL10H8NC - 2 blue dots on it - saved in jedec format -.U130 - DMPAL10H8NC - 3 pink dots on it - saved in jedec format -.U129 - DMPAL10H8NC - pink-green-pink dots on it - saved in jedec format -.U128 - DMPAL10H8NC - blue-brown-blue dots on it - saved in jedec format -.U145 - DMPAL14H4NC - brown dot on it - saved in jedec format -.U144 - DMPAL14H4NC - brown dot on it - saved in jedec format -.U143 - DMPAL14H4NC - brown dot on it - saved in jedec format -.U142 - DMPAL14H4NC - brown dot on it - saved in jedec format -.U141 - DMPAL14H4NC - brown dot on it - saved in jedec format -.U140 - DMPAL14H4NC - brown dot on it - saved in jedec format - U.145-U.140 had the same checksum - -.U94 - DMPAL14H4NC - 2 green dots on it - saved in jedec format -.U109 - DMPAL14H4NC - 2 brown dots on it - saved in jedec format - -Daughter Board -Etched in copper on top... - SMS MFG M?I 2685 ? = a cage looking symbol - -Read starting at top row, closest to connector to main board -.D0 - DMPAL10L8NC - 1 orange dot on it - saved in jedec format -.D1 - 27128 - couldn't read sticker - -.D2 - 27128 - couldn't read sticker - -.D3 - 27128 - couldn't read sticker - -.D4 - 27128 - stickered 4 MOVIES .1 ?2485 ? = can't read -.D5 - 27128 - stickered 3 ANYTHING .4 042485 -.D6 - 27128 - stickered 2 ANYTHING .3 042485 -.D7 - 27128 - stickered 1 ANYTHING .2 042485 -.D8 - 27128 - stickered 0 ANYTHING .1 042485 - -2nd row - left to right -.D9 - 27128 - stickered 12 MUSIC .1 042485 -.D10 - 27128 - stickered 13 MUSIC .1 042485 -.D11 - 27128 - stickered 14 MUSIC .1 042485 -.D12 - 27128 - stickered 15 MUSIC .1 042485 - -3rd row - left to right -.D13 - 27128 - stickered 11 SPORTS .4 042485 -.D14 - 27128 - stickered 10 SPORTS .3 042485 -.D15 - 27128 - stickered 9 SPORTS .2 042485 -.D16 - 27128 - stickered 8 SPORTS .1 042485 -.D17 - DMPAL10L8NC - 1 white dot on it - saved in jedec format - - -ROM text showed... - COPYRIGHT 1984 SMS MFG CORP - TRIVIA HANGUP - SMART ALECS - - - - -smssshot (Lord Nightmare) -SMS Sure Shot (poker?) -* Same exact board as sms trivia, but "COMPONENT SIDE REV 01" - instead of rev 02. -* 3 chips were removed from the board; two are shown as removed - in the schematic, one was removed later (an apparently - unnecessary data buffer on one of the z80 external latches) -* Does NOT have a daughterboard with additional roms; in fact, - connector J1 for the ribbon cable to the daughterboard isn't - populated with pins at all -* Serial Number A-108 etched in board, on back. - - -smsbingo (Lord Nightmare) -SMS Bingo -Someone on the MW forums has this iirc, but it isn't dumped yet - LN - - - -**** Notes from schematics (applies to all drivers): -Framebuffer is six tms4416 16384*4 chips; chips are arranged as three -planes of 16384*8 bits per plane, one plane per color channel. -Screen resolution is probably either 212x256 (two bits per plane, per -pixel) or 424x256 (one bit per plane per pixel), depending on the pals -installed. See schematics on page 6. The counters at U137 and U139 -compare against binary 0b110101 (53) in comparitor at U138, and as soon -as it hits that, HDONE is pulled high on the next MCLR clock. -This means there will be 53 (0-52) counts in the X counter before HDONE; -as each count refers to one 8 bit address, and the addressed 4416 rams -have between all of them 24 bits of output (8 per plane), the minimum -horizontal displayed resolution is 53x256 (8 bits per color per pixel), -and maximum is 8 times that. With proper pals (and proper mixing -resistors or other PWM fun) it should be possible to get: -53x256 8,8,8 RGB -106x256 4,4,4 RGB -212x256 2,2,2 RGB <- this seems the most likely to me (LN) -424x256 1,1,1 RGB - - -* The socket at U50 and the 3 pin connector J3 is for an - undumped intel 8050 MCU used for rs232 serial communication, - for either linking together machines, or more likely for factory - testing. The function of this internal rom is probably simple - enough to HLE or to even rewrite from scratch, but I doubt the code - on any of the dumped games even touches it, it was probably for use - with a specific game or for a set of hardware test roms to report - errors. - (schematic page 4) - The pinout of J3 is: - pin 1 (toward bottom of pcb): rs232 input to pcb - (pre-level shifted to 5v i.e. with a max232 or mc1489) - pin 2 : ground - pin 3 : rs232 output to elsewhere (to be sent to a max232 or - mc1488 to shift to rs232 voltage levels) - -* The 8255 PPI at U13 (connected to the 8088) is connected to 75451 - drivers on all pins EXCEPT pins PC3 thru PC0. - (schematic page 3) - PA7 - Display Light 1 - PA6 - Display Light 2 - PA5 - Display Light 3 - PA4 - Display Light 4 - PA3 - Display Light 5 - PA2 - Bet Light - PA1 - Deal Light - PA0 - Draw Light - PB7 - Stand Light - PB6 - Cancel Light - PB5 - Coin Lock out A - PB4 - Coin Lock out B - PB3 - Setup Light - PB2 - Hopper Motor - PB1 - Coin in Counter (mechanical counter inside the machine) - PB0 - Knock off Counter (tilt? probably also a mechanical counter) - PC7 - unused - PC6 - unused - PC5 - unused - PC4 - Battery Charge control (for 8088 ram backup 3.6v Nicad) - PC3 - (pulled high externally, input) - unused? possibly for an ABC hopper - PC2 - (pulled high externally, input) - unused? possibly for an ABC hopper - PC1 - (pulled high externally, input) - "Hopper Count", - probably a beam to check the hopper coin out - PC0 - "Video BZ" (Video Blanking Zone, is an input) - -* The 8255 PPI at U2 (connected to the z80) is unused and not populated. - (All 3 ports have +5V pullups on all pins) - -* The 8255 PPI at U1 (connected to the z80) is used as follows: - (All 3 ports have +5V pullups on all pins) - PA7 - Lighted Button 1 (input) - PA6 - Lighted Button 2 (input) - PA5 - Lighted Button 3 (input) - PA4 - Lighted Button 4 (input) - PA3 - Lighted Button 5 (input) - PA2 - Bet Button (input) - PA1 - Deal Button (input) - PA0 - Draw Button (input) - PB7 - Stand Button (input) - PB6 - Cancel Button (input) - PB5 - Alt Coin (input) - PB4 - Remote Knockoff (tilt? input) - PB3 - Operator Mode (input) - PB2 - Coin Error reset (input) - PB1 - unused - PB0 - unused - PC7 - unused - PC6 - unused - PC5 - unused - PC4 - unused - PC3 - unused - PC2 - unused - PC1 - unused - PC0 - Coin (input) - - -* The function of the pals is: -LOCATION DOTS TYPE PURPOSE -U32 1Green DMPAL10L8NC Decodes the gated by U33/U34) - high address lines of the 8088, for mainboard ROM mapping. A - different pal is probably used depending on whether the - mainboard has 2764 or 27128 roms installed. - SMS Sure Shot: dumped ok as truth table, mainboard has 4 2764s - SMS Trivia: bad (chip shorted internally), mainboard has 2 27128s - SMS Bingo: not dumped - (schematic page 2) -U38 3Blue PAL10L8CN Decodes the (gated by U36) - high address lines of the z80 address bus, for mapping of the z80 - ROM, RAM, Counter control, 4 z80-to-8088 ports (2 one direction, - 2 the other), the ay-3-8910, and the two 8255 PPIs. - (schematic page 10) -U39 3Green PAL10L8CN Accessory decoder to U38, helps - with the 4 z80-to-8088 ports. - (schematic page 10) -U40 1Red PAL10L8CN Connects to the low bits of the - 8088 address bus for decoding writing to/reading from the 8088 side of - the 4 z80-to-8088 ports. - (schematic page 10, note this chip is mismarked as U9 on the page, - it is the chip in the lower left) -U52 1Blue PAL10L8CN Decodes the (gated by U33/U34) - high address lines of the 8088, for main memory mapping of ram, - z80 communication, video, serial I/O (to U50), and the output-only - 8255 at U13 (which controls button lights and the coin hopper) - SMS Sure Shot: dumped ok as truth table - SMS Trivia: checksum 0, probably bad - SMS Bingo: not dumped - (schematic page 1) -U58 3Brown DMPAL10H8NC Controls BDIR and BC1 on the - ay-3-8910 given the low two address bits of the z80 bits, the - ay-3-8910 enable line, and the buffered z80 RD and WR lines. - (schematic page 12) -U80 2Blue PAL10H8CN State machine which controls StartH, - StartV, and the related functions involving the shifters for framebuffer - address and framebuffer output. Also lets framebuffer know when in hblank - or vblank. Is separate from the other "Video BZ" thing. - (schematic page 6) -U94 2Green PAL14H4CN State machine controls the - read-modify-write logic for accessing the frame buffer (while outside - of vblank and hblank?), may allow writing red green and blue plane bytes - all to one address, one after the other - (schematic page 7) -U109 2Brown PAL14H4CN Determines next state of the - 'Pixel control' hardware, i.e. H and V current line counters - Also determines VBLANK/"Video BZ" - (schematic page 5) -U110 2Red PAL10L8CN Translates output of U109 - before being sent to counters/color reg latch/etc. - (schematic page 5) -U128 Blue-Brown-Blue PAL10H8CN One of three 'sync' pals which - control the memory and other timing subsystem, fed by a 4 bit counter. - this particular pal has one external feedback bit. - (schematic page 6) -U129 Red-Green-Red DMPAL10H8NC Second of three 'sync' pals - This one has 2 external feedback bits. - (schematic page 6) -U130 3Red PAL10H8CN Third of three 'sync' pals' - This one has 3 external feedback bits plus three extra inputs from elsewhere - which are not readable on the schematic. Will trace them later. - (schematic page 6) -U140 1Brown PAL14H4CN This and the next 5 pals are used - to shift the framebuffer data, 4 bits at a time. This is done in parallel - (8 bits per channel) for output. all 6 pals are the same. - (schematic page 7) -U141 1Brown PAL14H4CN -U142 1Brown PAL14H4CN -U143 1Brown PAL14H4CN -U144 1Brown PAL14H4CN -U145 1Brown PAL14H4CN - - - -*/ - -#include "driver.h" -#include "cpu/i86/i86.h" -#include "sound/ay8910.h" -#include "machine/8255ppi.h" - -INPUT_PORTS_EXTERN(ettrivia); - - -static READ8_DEVICE_HANDLER( r1 ) -{ - int pc = cpu_get_pc(device->machine->cpu[0]); - if(pc != 0x81cb) - printf("r1 @ %X\n",pc); - return mame_rand(device->machine); -} -static READ8_DEVICE_HANDLER( r2 ) -{ - int pc = cpu_get_pc(device->machine->cpu[0]); - if(pc != 0x81cb) - printf("r2 @ %X\n",pc); - return mame_rand(device->machine); -} -static READ8_DEVICE_HANDLER( r3 ) -{ - int pc = cpu_get_pc(device->machine->cpu[0]); - if(pc != 0x81cb && pc != 0x90fa && pc != 0x911b && pc != 0x90d3 && pc != 0x90c4) - printf("r3 @ %X\n",pc); - return mame_rand(device->machine) & ~1; //with 1 jumps back (infinite loop): a status ready for something? -} -static READ8_DEVICE_HANDLER( r4 ) -{ - int pc = cpu_get_pc(device->machine->cpu[0]); - if(pc != 0x81cb) - printf("r4 @ %X\n",pc); - return mame_rand(device->machine); -} -static READ8_DEVICE_HANDLER( r5 ) -{ - int pc = cpu_get_pc(device->machine->cpu[0]); - if(pc != 0x81cb) - printf("r5 @ %X\n",pc); - return mame_rand(device->machine); -} -static READ8_DEVICE_HANDLER( r6 ) -{ - int pc = cpu_get_pc(device->machine->cpu[0]); - if(pc != 0x81cb) - printf("r6 @ %X\n",pc); - - return mame_rand(device->machine); -} - -static WRITE8_DEVICE_HANDLER( w1 ) -{ - /* - static int old = 0; - if(data != old) - printf("w1 = %02X\n",old=data); - */ -} -static WRITE8_DEVICE_HANDLER( w2 ) -{ - /* - static int old = 0; - if(data != old) - printf("w2 = %02X\n",old=data); - */ -} -static WRITE8_DEVICE_HANDLER( w3 ) -{ - /* - static int old = 0; - if(data != old) - printf("w3 = %02X\n",old=data); - */ -} -static WRITE8_DEVICE_HANDLER( w4 ) -{ - /* - static int old = 0; - if(data != old) - printf("w4 = %02X\n",old=data); - */ -} -static WRITE8_DEVICE_HANDLER( w5 ) -{ - /* - static int old = 0; - if(data != old) - printf("w5 = %02X\n",old=data); - */ -} -static WRITE8_DEVICE_HANDLER( w6 ) -{ - /* - static int old = 0; - if(data != old) - printf("w6 = %02X\n",old=data); - */ -} - -static ADDRESS_MAP_START( smstrv_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x007ff) AM_RAM - AM_RANGE(0x00800, 0x00803) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0x01000, 0x01005) AM_RAM - AM_RANGE(0x01800, 0x01803) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w) - AM_RANGE(0x08000, 0x0ffff) AM_ROM - AM_RANGE(0xf8000, 0xfffff) AM_ROM // mirror for vectors -ADDRESS_MAP_END - - -static VIDEO_START( smstrv ) -{ -} - -static VIDEO_UPDATE( smstrv ) -{ - return 0; -} - -static const ppi8255_interface ppi8255_intf[2] = -{ - { - r1, /* Port A read */ - r2, /* Port B read */ - r3, /* Port C read */ - w1, /* Port A write */ - w2, /* Port B write */ - w3 /* Port C write */ - }, - { - r4, /* Port A read */ - r5, /* Port B read */ - r6, /* Port C read */ - w4, /* Port A write */ - w5, /* Port B write */ - w6 /* Port C write */ - } -}; - - -static MACHINE_DRIVER_START( smstrv ) - MDRV_CPU_ADD("main", I8088,24000000/2) - MDRV_CPU_PROGRAM_MAP(smstrv_map,0) -// MDRV_CPU_IO_MAP(io_map,0) - MDRV_CPU_VBLANK_INT("main", nmi_line_pulse) - -// MDRV_NVRAM_HANDLER(generic_0fill) - - MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) - - /* video hardware */ - MDRV_SCREEN_ADD("main", RASTER) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - - MDRV_PALETTE_LENGTH(256) - -// MDRV_PALETTE_INIT(naughtyb) - MDRV_VIDEO_START(smstrv) - MDRV_VIDEO_UPDATE(smstrv) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD("ay", AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -ROM_START( smstrv ) - ROM_REGION( 0x100000, "main", 0 ) - ROM_LOAD( "sms.17", 0xf8000, 0x04000, CRC(af6ef980) SHA1(f0f98d1f91de718a63b87c5f1c6ee3bd854d1c1b) ) - ROM_LOAD( "sms.16", 0xfc000, 0x04000, CRC(b827d883) SHA1(68d6c2127ef9e537471c414ca7baa89c63997bbb) ) - ROM_COPY( "main", 0xf8000, 0x08000, 0x8000 ) - - ROM_REGION( 0x10000, "cpu1", 0 ) - ROM_LOAD( "sms.26", 0x0000, 0x1000, CRC(e04bb922) SHA1(1df90720f11a5b736273f43272d7727b3020f848) ) - - ROM_REGION( 0x4000, "user1", 0 ) - ROM_LOAD( "sms.d1", 0x000000, 0x4000, CRC(04f627c0) SHA1(c656b66c60059a1b068c4a7262f07f4c136c34c1) ) - ROM_LOAD( "sms.d2", 0x000000, 0x4000, CRC(13c9fe08) SHA1(6b7d055621ce578446d320f98f7a4cd095e756b0) ) - ROM_LOAD( "sms.d3", 0x000000, 0x4000, CRC(8c5f62ef) SHA1(34ac235358a71620a6619dbb16255c363f34df53) ) - ROM_LOAD( "sms.d4", 0x000000, 0x4000, CRC(76993bd1) SHA1(b9a97ab7c6d35f5fdda04342e0b3773618deedef) ) - ROM_LOAD( "sms.d5", 0x000000, 0x4000, CRC(f1a37ed7) SHA1(687a610319b21091cbc53232b47eb99dabe12f02) ) - ROM_LOAD( "sms.d6", 0x000000, 0x4000, CRC(5b12fd09) SHA1(15804480e65bfb3207d24a1679bb78d1ad491d70) ) - ROM_LOAD( "sms.d7", 0x000000, 0x4000, CRC(d09946b6) SHA1(b5827945ce380f09ee758c4296f06f00ef3cbd0a) ) - ROM_LOAD( "sms.d8", 0x000000, 0x4000, CRC(80096807) SHA1(a38b1b13365577c0c588b8e196ee1a6c774ce3a3) ) - ROM_LOAD( "sms.d9", 0x000000, 0x4000, CRC(c1691ec9) SHA1(95725fa315944c0786e2a32d483703173eb2e730) ) - ROM_LOAD( "sms.d10", 0x000000, 0x4000, CRC(df0da39f) SHA1(29103dca8b0c1967791e8ddd722153874e16bbda) ) - ROM_LOAD( "sms.d11", 0x000000, 0x4000, CRC(114b4aa6) SHA1(2621d1042b0774d60be88cc8d62613aa07c12552) ) - ROM_LOAD( "sms.d12", 0x000000, 0x4000, CRC(59a40e4f) SHA1(e726ce624c76ee527edc51c1e5757b7d433dcf8c) ) - ROM_LOAD( "sms.d13", 0x000000, 0x4000, CRC(9bb8dbad) SHA1(0dd9ed23e6794a86a12906b326e984a2d58cc4c6) ) - ROM_LOAD( "sms.d14", 0x000000, 0x4000, CRC(3bfe9b52) SHA1(0cdd9ec6ed784fab9272d50821994be5b0fd0532) ) - ROM_LOAD( "sms.d15", 0x000000, 0x4000, CRC(bec225fe) SHA1(13252894eca30e06354885a21ecad43965cfd3ef) ) - ROM_LOAD( "sms.d16", 0x000000, 0x4000, CRC(b700e7e6) SHA1(42b2c12c6af5f15d909e15ee3e7ca2e13e0142c2) ) - - - - - -/* - ROM_LOAD( "sms.d17", 0x000000, 0x0001f3, CRC(e9eb78e7) SHA1(688e854e82c230d367c211f611e9a8298ab64399) ) - ROM_LOAD( "sms.38", 0x000000, 0x0001f3, CRC(be17ebde) SHA1(22c05eeafeadc8f55b55951c2060fb4873146cba) ) - ROM_LOAD( "sms.39", 0x000000, 0x0001f3, CRC(3299e803) SHA1(12f361d27497f6347ee26838fa9f675f6aac12c2) ) - ROM_LOAD( "sms.40", 0x000000, 0x0001f3, CRC(22881f1c) SHA1(646fdc4e4a423e1432b448140f2d92dd2304ff71) ) - ROM_LOAD( "sms.52", 0x000000, 0x0001f3, CRC(2e43ba5f) SHA1(8b87ee8ce21f5241260f2d0de4878096d8ecb5f5) ) - ROM_LOAD( "sms.58", 0x000000, 0x0001f3, CRC(020b5108) SHA1(f3221fbce40a9d6fdc2eece606e4eded3faf5f02) ) - ROM_LOAD( "sms.80", 0x000000, 0x0001f3, CRC(66e21ee5) SHA1(31c29a250f50dcdf531810e59068adfea4d2d9a3) ) - ROM_LOAD( "sms.94", 0x000000, 0x000283, CRC(c5fda3df) SHA1(4fdd597d25ed893cb005165b68e48567fbd2b1ce) ) - ROM_LOAD( "sms.109", 0x000000, 0x000283, CRC(15d05aaa) SHA1(57500b4825a1da943d79ee7df657efed56c4320e) ) - ROM_LOAD( "sms.110", 0x000000, 0x0001f3, CRC(6263b1e1) SHA1(6c8d92bcbbc2d196b5ac7765888eaf171671d651) ) - ROM_LOAD( "sms.128", 0x000000, 0x0001f3, CRC(fbaea5b0) SHA1(85a757485c26304d4ce718fd954aa4736cdc4752) ) - ROM_LOAD( "sms.129", 0x000000, 0x0001f3, CRC(4722fb3b) SHA1(adc0a3c0721acaa5b447c7aee771703caab80dd9) ) - ROM_LOAD( "sms.130", 0x000000, 0x0001f3, CRC(d3f0a6a5) SHA1(5e08b6104dfd3e463031b2b12619589a8f7b453c) ) - ROM_LOAD( "sms.140", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) - ROM_LOAD( "sms.141", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) - ROM_LOAD( "sms.142", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) - ROM_LOAD( "sms.143", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) - ROM_LOAD( "sms.144", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) - ROM_LOAD( "sms.145", 0x000000, 0x000283, CRC(031f662d) SHA1(6fa072db3203cdb95262d7778a6ee8310423b3df) ) - ROM_LOAD( "sms.d0", 0x000000, 0x0001f3, CRC(b1c221a7) SHA1(f63a022199a2d7b52c4c4827b170d49aae85e4e3) ) -*/ -ROM_END - -GAME( 1984, smstrv, 0, smstrv, ettrivia, 0, ROT0, "SMS MFG CORP", "Trivia (sms)", GAME_NOT_WORKING ) diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 1b99e73f821..5aa24148407 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -1642,7 +1642,7 @@ $(MAMEOBJ)/misc.a: \ $(DRIVERS)/skylncr.o \ $(DRIVERS)/sliver.o \ $(DRIVERS)/slotcarn.o \ - $(DRIVERS)/smstrv.o \ + $(DRIVERS)/sms.o \ $(DRIVERS)/snookr10.o $(VIDEO)/snookr10.o \ $(DRIVERS)/spool99.o \ $(DRIVERS)/sprcros2.o $(VIDEO)/sprcros2.o \ diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c index 3d5e89171ce..8a4a9cccb4c 100644 --- a/src/mame/mamedriv.c +++ b/src/mame/mamedriv.c @@ -8374,7 +8374,9 @@ Other Sun games DRIVER( draco ) /* (c) 1981 Cidelsa */ DRIVER( rockduck ) /* (c) 1983 Datel SAS */ DRIVER( tetriskr ) /* (c) 1988? bootleg */ - DRIVER( smstrv ) /* (c) 1984 SMS MFG CORP */ + DRIVER( trvhang ) /* (c) 1984 SMS MFG CORP */ + DRIVER( trvhanga ) /* (c) 1984 SMS MFG CORP */ + DRIVER( sureshot ) /* (c) 1985 SMS MFG CORP */ DRIVER( skylncr ) /* (c) 1995 Bordun International */ DRIVER( butrfly ) /* (c) 1995 Bordun International */ DRIVER( madzoo ) /* (c) 1995 Bordun International */ |