summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/aristmk4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/aristmk4.cpp')
-rw-r--r--src/mame/drivers/aristmk4.cpp2554
1 files changed, 0 insertions, 2554 deletions
diff --git a/src/mame/drivers/aristmk4.cpp b/src/mame/drivers/aristmk4.cpp
deleted file mode 100644
index f9faaf5c073..00000000000
--- a/src/mame/drivers/aristmk4.cpp
+++ /dev/null
@@ -1,2554 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Angelo Salese, Palindrome, FraSher, Roberto Fresca
-/***********************************************************************************************************************************************
-
- Driver: aristmk4
-
- Manufacturer: Aristocrat Leisure Industries ( aka Ainsworth Nominees P.L. )
- Platform: Aristocrat 540 Video ( MK 2.5 Video / MK IV )
- Driver by Palindrome & FraSher
-
- original 86lions.c driver by Chris Hardy, Angelo Salese & Roberto Fresca
-
-
- ***************** INITIALISATION *********************************************************************
-
- Method 1 :
- * Key in with the Jackpot Key followed by the Audit Key (F1 then F2 keys)
- * Hit UP (W key) twice (for gunnrose only)
- * Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
- * A value (displayed below) will appear next to RF/AMT on the right of the screen
- * Key out both the Jackpot and Audit Keys
-
- This method works with the following games:
- 3bagflnz 200
- 3bagflvt 200
- autmoon 200
- blkrhino 200
- cgold 500
- coralr2 200
- eforesta 200
- eforestb 200
- ffortune 200
- fvrpitch 200
- gldnpkr 400
- goldenc 200
- gtroppo 500
- kgbird 200
- kgbirda 200
- phantomp 200
- swtht2nz 200
- wildone 200
- wtigernz 200
- gunnrose N/A (no hopper to refill)
-
- Method 2 :
- * Key in with the Jackpot Key followed by the Audit Key
- * Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
- * This will enter the cashcade screen and increment $100 to the maximum.
- * Press PLAY 2 LINES [listed as BET 2 on the screen] to increment the minimum cashcade value by $5.
- - (optionally, you can decrement with the PLAY 1 LINE [BET 1] button, but you must first increment
- the $5 to start with above or the game won't initialise)
- * A value (displayed below) will appear on the right as RF/AMT when you key in again (not visible
- until you key out and back in again with the Audit Key)
- * Key out both the Jackpot and Audit Keys
-
- This method works with the following games:
- topgear 500
-
- Method 3 :
- * cgold2, fhunter and fhuntera ONLY: DIP labeled "5201-5" switch to ON
- This allows setup procedure to complete properly and game to play (if disabled, it acts as a
- 'freeze' switch and the games don't accept inputs).
- * Key in with the Jackpot Key followed by the Audit Key.
- * Press PB4, PB5 and PB6 keys simultaneously (Z+X+C keys by default)
- * Press Service (default A) 4 times until you are in the Setup Screen, showing Printer Pay Limit etc.
- * Press Bet 2 (default D) to change the Jackpot Win Limit. A higher value is better (3000 max)
- * Key out both the Jackpot and Audit Keys
-
- This method works with the following games:
- arcwins
- cgold2
- eforest
- fhunter
- fhuntera
-
-
-**********************************************************************************************************
-
- Technical Notes:
-
- 68B09EP Motorola Processor
- R6545AP for CRT video controller
- UPD43256BCZ-70LL for 32kb of static ram used for 3 way electronic meters / 3 way memory
- U6264A for Standard 8K x 8 bit SRAM used for video buffer
- 1 x R65C21P2 PIA - Peripheral Interface Adapter, connects to RTC and sends pulses to mechanical meters
- 1 x 6522 VIA - 1 x Rockwell - Versatile Interface Adapter.
- 2 x WF19054 = AY3-8910 sound chips driven by the 6522 VIA
- 1 x PML 2852 ( programmable logic ) used as address decoder.
- 1 x PML 2852 programmed as a PIA
-
- PIA provides output signals to six mechanical meters.
- It also provides the real time clock DS1287 to the CPU.
-
- VIA drives the programmable sound generators and generates
- a timing interrupt to the CPU (M6809_FIRQ_LINE)
-
- The VIA uses Port A to write to the D0-D7 on the AY8910s. Port B hooks first 4 bits up to BC1/BC2/BDIR and A9 on AY1 and A8 on AY2
- The remaining 4 bits are connected to other hardware, read via the VIA.
-
- The AY8910 named ay1 has writes on PORT B to the ZN434 DA converter.
- The AY8910 named ay2 has writes to lamps and the light tower on Port A and B. these are implemented via the layout
-
-
-**********************************************************************************************************
-
- Updates....
-
- 27/04/10 - FrasheR
- 2 x Sound Chips connected to the 6522 VIA.
-
- 16/05/10 - FrasheR
- Fixed VIA for good. 5010 - 501F.
- Hooked up push button inputs - FrasheR
- Hooked up ports for the PML 2852 U3 - FrasheR
-
- 16/05/10 - Palindrome
- Lamp outputs and layout added - Palindrome
- NVRAM backup - Palindrome
-
- 20/05/10 - Palindrome
- Connected SW7 for BGCOLOUR map select
- Added LK13. 3Mhz or 1.5 Mhz CPU speed select
- Added sound sample for mechanical meter pulse ( aristmk4.zip ).
-
- 30/5/10 - Palindrome
- Now using mc146818 rtc driver instead of rtc_get_reg.
-
- The mc146818 driver has issues and is not working correctly.
- MESS developers are looking at it.
-
- - day of week is incorrect
- - day of month is incorrect ( code is using day instead of mday ).
- - hours are not showing up correct in PM and 12 hour mode
- - rtc causes game to freeze if the game is left in audit mode with continuous writes
- to 0xA reg - 0x80 data )
-
- 9/7/2010 - Palindrome
- Robot Test added
- Default Jackpot key re-assigned to 'I'
- Work around for topgear & cashcade games
- Improved coininput - force CBOPT1 to detect passing coin
- Added new game Golden Poker ( Aristocrat version ) [ bad dump ]
- Added new game Gone Troppo
- Added new game Wild One
- Misc improvements
-
- 12/12/2010 - Palindrome and Heihachi_73
- Updated source to 0.140u2 standards
- Disabled real time clock to stop games from hanging. This causes a graphics glitch
- on the month display but makes the games more reliable in audit mode.
- Fixed ROM names
- Added new game Arctic Wins
- Added new game Caribbean Gold 2 (missing 2 gfx roms, still boots)
- Added new game Clockwise (program ROM nodump, all other roms fine)
- Added new game Fortune Hunter (2 sets)
-
- 06/06/2011 - Heihachi_73
- Added button panel artwork for all games, and renamed the in-game buttons to match
- the artwork and/or Robot Test description.
- Remapped Jackpot Key to 'L'
- Remapped 'power fail' key to ',' (comma)
- Remapped the video poker buttons; holds are now keys S,D,F,G,H
- Un-mapped the unused inputs
-
- 06/08/2011 - FrasheR
- Implement 'Printer Fault' fix.
-
- 08/08/2011 - FrasheR
- Implement Port '5005' for eforest. Changing this only works after performing memory reset.(delete nvram file)
- First 3 bits
- 000 = $100 / Credit
- 001 = 50c / Credit
- 010 = $5 / Credit
- 011 = 10c / Credit
- 100 = $10 / Credit
- 101 = 25c / Credit
- 110 = $1 / Credit
- 111 = 5c / Credit (default)
- Implement Bill Acceptor for eforest to add credits.
- arcwins and eforest are now working.
-
- 21/02/2013 - Heihachi_73
- Added new game Caribbean Gold (cgold), however it is not a straight swap as it has slightly different input locations:
- - With unmodified 0.148 source, game complains about logic door being open,
- which is seemingly tied to the current coin input.
- - When HOPCO2 is toggled off/on quickly (default is on otherwise it will
- cause a note acceptor error), the note acceptor works, adding 4 credits ($1?).
- This is seemingly a quarter slot (25c). Not sure if other notes are possible.
- - Same gameplay as Gone Troppo, one interesting thing about this game is that
- the KQJ symbols have actual faces instead of plain letters. These symbols were also found on some mechanical reel slots.
-
- 08/03/2013 - Heihachi_73
- Cleaned up comments and erroneous ROM names (e.g. graphics ROMs named after the program ROM).
- Caribbean Gold II - copied cgold graphics ROMs u8+u11 (aka u20+u45) to cgold2, game now playable.
- Tiles 0x64 and 0x65 are used to show the game's denomination (credit value), however cgold does
- not use these tiles (there are seemingly unused line/bet/number tiles in this location), this
- causes a graphics glitch on the $/cent signs.
- Promoted Fortune Hunter and clone to working status, as they were in fact working for quite a while.
- Fixed ROM names for kgbird/kgbirda; 5c and 10c variants were mixed up.
-
- 11/12/2014 - Lord-Data
- Added hopper and meter outputs.
-
- 27/03/2014
- Added new game: Guns and Roses Poker - gunnrose
-
- 13/11/2015 - Roberto Fresca
- Added new game: Fever Pitch (2VXEC534, NSW, 90.36%).
-
- 26/04/2017 - Heihachi_73
- Added button labels and layout to gunnrose, position of buttons is guesswork at this stage.
- This game does not have a cashout button. Credits are paid out using the jackpot key.
- Changed jackpot and audit keys to F1 and F2 respectively.
- Renamed nodump program ROM in clkwise as it had the wrong EPROM number.
-
-
-*************************************************************************************************************
-
- When the games first power on (or when reset), they will display a TILT message on the screen.
- This doesn't affect gameplay, and if there are no pending errors the game should coin up and/or play immediately.
-
- The tilt message will also appear when an error code is displayed, such as the main door being opened/closed, or
- a hardware error/fault (such as hopper empty, coin yoyo, printer errors; none of which should happen in MAME however).
-
- The tilt message will disappear if you turn the Audit Key on and off, or after you start playing.
- Despite the name, there is no 'tilt' mechanism in the machine and there is nothing to worry about.
- The first Aristocrat system to have a tilt mechanism was the MK5, which will cause the machine to reset abruptly
- if the player is too rough (e.g. hitting the screen or bumping the machine).
-
- These games do not feature a backup mechanism in case of power faults or system crashes requiring a reboot;
- if the player was in the middle of a spin or watching a win count up, any credits won on that spin will be voided.
- On the machine's artwork, this is reflected with text reading 'Malfunction voids all pays and plays', of which
- the text has also been carried onto later machines. The Aristocrat MK5 and later systems however feature backup
- mechanisms and will repeat the last game (including free game features and/or gamble selection) when powered on,
- to where the player had left off.
-
- Gone Troppo and Caribbean Gold 1 and 2 require DIP SW7 to be set to off/off or else the second screen will be broken.
- This is possibly true to the original machine.
-
- A similar thing happens with Top Gear, the drag cars' tyres will only be the correct colour (grey) if SW7 is off/off.
-
- In Wild One, the dollar sign on the Insert $2 graphic is the wrong colour on other settings as well. It only appears
- correct when SW7 is off/off. This is probably a bug in the original game, where the graphic designers have used the
- wrong palette for the background of the dollar sign.
-
- From these findings, it is noted that the off/off setting may in fact be the default background setting of all games.
-
- cgold, gtroppo and topgear are non-multiplier, 5 payline games, therefore, you cannot bet higher than 5 credits on these machines.
-
- cgold can be set to credit play or coin play by toggling SW1-5. If SW1-5 is on, game is in credit mode; if SW1-5 is off,
- wins and remaining credits will be automatically paid out as coins.
-
- Non-US games can enable/disable the double up (gamble) option by toggling the SW1-8 switch. Turning SW1-8 off will enable
- the double up option (default); turning SW1-8 on will disable double up and enable auto-spin on some games (so far, only
- eforesta and 3bagflvt allow this; other games simply ignore the buttons). The games respond slightly faster between games
- with double up disabled.
-
- 3 Bags Full, Fortune Hunter, Fever Pitch, Caribbean Gold 1 and 2, Gone Troppo and Top Gear do not have a double up option,
- and US-based games ignore this switch setting (double up is always enabled on US games which support it).
-
-
- TODO:
-
- 1. ROMs need redumping for the following games:
- - White Tiger has bad graphics ROMs.
- - Caribbean Gold 2 is missing two graphics chips.
- - Clockwise needs its program ROM redumped, original dump was 32K of 0xFF's. Graphics and video/sound ROM are OK.
- - PROM dumps needed for Top Gear (2CM33), Caribbean Gold (1CM12), Caribbean Gold 2 (unknown), Clockwise (2CM18),
- Golden Poker (unknown), and Fever Pitch (unknown).
-
- 2. Video poker and Keno button panels needed. 06/06/11: Video poker panels done, however they need confirmation
- with a real machine.
-
- 3. Extend the driver to use the keno keyboard input for keno games (no MK2.5/MKIV Keno games dumped yet as of 28/02/2010).
-
- 4. Provide complete cashcade emulation
-
- 5. Look into what the hopper probe signal is for.
-
- 6. Investigate issues with the Poker style games as described below.
-
- 7. When DIP SW7 is set to off/off, speed is dramatically reduced (noticeable on older Pentium 4-based systems).
-
- 8. Rewrite video emulation by using custom drawing code.
-
- 9. Check what type of mc6845 this HW uses on real PCB, and hook it up properly.
-
- 10. Fix 86 Lions (pre-Aristocrat Mk-4 HW, without prom and dunno what else).
-
- 11. Fix coin input for the US games. Currently, only the note acceptor works. The reverse is true for cgold.
-
-
- ***************** POKER GAMES ************************************************************************
-
- Wild One & Golden Poker have a problem where the second branch condition is always true, see assembler below for
- example of Wild One.
-
- 907D BITA $1800 ( crtc )
- 9080 BNE $907D ; is zero
- 9082 BITA $1800
- 9085 BEQ $9082 ; branches to 9082 indefinitely, value is always zero.
- 9087 LDA #$40
-
- If the PC ( program counter ) is set to 9087 then the game runs.
-
- Bug in the 6845 crtc core ? Seems like some kind of logic there not working.
-
- EDIT: it's a vblank check, BITA opcode checks bit 5 in A register and compares it with the contents of 0x1800
- (that is vblank in mc6845_status_r). Checking if a bit goes low then high it usually means that is moaning for
- a vblank. ;-)
- But now there is a new question: what kind of mc6845 clone this HW uses? It's clearly not standard mc6845,
- since that version doesn't support vblank reading. The vblank bit can be read only on C6545-1, R6545-1, SY6545-1
- and SY6845E subvariants, so it all lies to those. -AS
-
-
-***********************************************************************************************************************************************/
-
-#define MAIN_CLOCK 12_MHz_XTAL
-
-#include "emu.h"
-#include "cpu/m6809/m6809.h"
-#include "video/mc6845.h"
-#include "sound/ay8910.h"
-#include "machine/6522via.h"
-#include "machine/6821pia.h"
-#include "machine/i8255.h"
-#include "sound/samples.h"
-#include "machine/mc146818.h" // DALLAS1287 is functionally compatible.
-#include "machine/nvram.h"
-#include "machine/timer.h"
-#include "emupal.h"
-#include "screen.h"
-#include "speaker.h"
-
-// Button panel and lamps
-#include "aristmk4.lh" // AU 90cr with gamble
-#include "arimk4nz.lh" // NZ 45cr with double up
-#include "3bagflnz.lh" // NZ 45cr without gamble
-#include "3bagflvt.lh" // AU 90cr without gamble
-#include "arcwins.lh" // US 25cr with gamble
-#include "cgold2.lh" // US 25cr without gamble
-#include "eforest.lh" // US 45cr with gamble
-#include "fhunter.lh" // US 45cr without gamble
-#include "fvrpitch.lh" // AU 25cr without gamble
-#include "goldenc.lh" // NZ 90cr with double up
-#include "kgbird.lh" // NZ 25cr with double up
-#include "topgear.lh" // NZ 5 line without gamble
-#include "gldnpkr.lh" // Video poker
-#include "gunnrose.lh" // Video poker
-#include "wildone.lh" // Video poker
-
-uint8_t crtc_cursor_index = 0;
-uint8_t crtc_reg = 0;
-
-class aristmk4_state : public driver_device
-{
-public:
- aristmk4_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_rtc(*this, "rtc"),
- m_ay1(*this, "ay1"),
- m_ay2(*this, "ay2"),
- m_samples(*this, "samples"),
- m_mkiv_vram(*this, "mkiv_vram"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_credit_spend_meter(*this, "creditspendmeter"),
- m_credit_out_meter(*this, "creditoutmeter"),
- m_hopper_motor_out(*this, "hopper_motor"),
- m_lamps(*this, "lamp%u", 0U)
- { }
-
- void aristmk4_poker(machine_config &config);
- void aristmk4(machine_config &config);
- void _86lions(machine_config &config);
-
- void init_aristmk4();
-
-private:
- enum
- {
- TIMER_POWER_FAIL
- };
-
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
- required_device<cpu_device> m_maincpu;
- required_device<mc146818_device> m_rtc;
- required_device<ay8910_device> m_ay1;
- required_device<ay8910_device> m_ay2;
- required_device<samples_device> m_samples;
-
- required_shared_ptr<uint8_t> m_mkiv_vram;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
-
- output_finder<> m_credit_spend_meter;
- output_finder<> m_credit_out_meter;
- output_finder<> m_hopper_motor_out;
- output_finder<21> m_lamps;
-
- int m_rtc_address_strobe;
- int m_rtc_data_strobe;
- uint8_t *m_shapeRomPtr;
- uint8_t m_shapeRom[0xc000];
- std::unique_ptr<uint8_t[]> m_nvram;
- uint8_t m_psg_data;
- int m_ay8910_1;
- int m_ay8910_2;
- int m_u3_p0_w;
- uint8_t m_cgdrsw;
- uint8_t m_ripple;
- int m_hopper_motor;
- int m_inscrd;
- int m_insnote;
- int m_cashcade_c;
- int m_printer_motor;
- emu_timer *m_power_timer;
-
- DECLARE_READ8_MEMBER(ldsw);
- DECLARE_READ8_MEMBER(cgdrr);
- DECLARE_WRITE8_MEMBER(cgdrw);
- DECLARE_WRITE8_MEMBER(u3_p0);
- DECLARE_READ8_MEMBER(u3_p2);
- DECLARE_READ8_MEMBER(u3_p3);
- DECLARE_READ8_MEMBER(bv_p0);
- DECLARE_READ8_MEMBER(bv_p1);
- DECLARE_READ8_MEMBER(mkiv_pia_ina);
- DECLARE_WRITE8_MEMBER(mkiv_pia_outa);
- DECLARE_WRITE8_MEMBER(mlamps);
- DECLARE_READ8_MEMBER(cashcade_r);
- DECLARE_WRITE8_MEMBER(mk4_printer_w);
- DECLARE_READ8_MEMBER(mk4_printer_r);
- DECLARE_WRITE_LINE_MEMBER(mkiv_pia_ca2);
- DECLARE_WRITE_LINE_MEMBER(mkiv_pia_cb2);
- DECLARE_WRITE8_MEMBER(mkiv_pia_outb);
- DECLARE_READ8_MEMBER(via_a_r);
- DECLARE_READ8_MEMBER(via_b_r);
- DECLARE_WRITE8_MEMBER(via_a_w);
- DECLARE_WRITE8_MEMBER(via_b_w);
- DECLARE_WRITE_LINE_MEMBER(via_ca2_w);
- DECLARE_WRITE_LINE_MEMBER(via_cb2_w);
- DECLARE_WRITE8_MEMBER(pblp_out);
- DECLARE_WRITE8_MEMBER(pbltlp_out);
- DECLARE_WRITE8_MEMBER(zn434_w);
- DECLARE_READ8_MEMBER(pa1_r);
- DECLARE_READ8_MEMBER(pb1_r);
- DECLARE_READ8_MEMBER(pc1_r);
-
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
- void aristmk4_palette(palette_device &palette) const;
- void lions_palette(palette_device &palette) const;
- uint32_t screen_update_aristmk4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- TIMER_CALLBACK_MEMBER(note_input_reset);
- TIMER_CALLBACK_MEMBER(coin_input_reset);
- TIMER_CALLBACK_MEMBER(hopper_reset);
- void power_fail();
- inline void uBackgroundColour();
-
- void slots_mem(address_map &map);
- void poker_mem(address_map &map);
-};
-
-/* Partial Cashcade protocol */
-static const uint8_t cashcade_p[] ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0};
-
-void aristmk4_state::video_start()
-{
- int tile;
- for (tile = 0; tile < m_gfxdecode->gfx(0)->elements(); tile++)
- {
- m_gfxdecode->gfx(0)->get_data(tile);
- }
-}
-
-void aristmk4_state::uBackgroundColour()
-{
- /* SW7 can be set when the main door is open, this allows the colours for the background
- to be adjusted whilst the machine is running.
-
- There are 4 possible combinations for colour select via SW7, colours vary based on software installed.
- */
-
- switch(ioport("SW7")->read())
- {
- case 0x00:
- // restore defaults
- memcpy(m_shapeRomPtr,m_shapeRom, sizeof(m_shapeRom)); // restore defaults, both switches off
- // OE enabled on both shapes
- break;
- case 0x01:
- // unselect U22 via SW7. OE on U22 is low.
- memset(&m_shapeRomPtr[0x4000],0xff,0x2000); // fill unused space with 0xff
- memcpy(&m_shapeRomPtr[0xa000],&m_shapeRom[0xa000], 0x2000); // restore defaults here
- break;
- case 0x02:
- // unselect U47 via SW7. OE on U47 is low.
- memcpy(&m_shapeRomPtr[0x4000],&m_shapeRom[0x4000], 0x2000);
- memset(&m_shapeRomPtr[0xa000],0xff,0x2000);
- break;
- case 0x03:
- // unselect U47 & U22 via SW7. Both output enable low.
- memset(&m_shapeRomPtr[0x4000],0xff,0x2000);
- memset(&m_shapeRomPtr[0xa000],0xff,0x2000);
- break;
- }
-}
-
-uint32_t aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
-{
- gfx_element *gfx = m_gfxdecode->gfx(0);
- int x,y;
- int count = 0;
- int color;
- int tile;
- int bgtile;
- int flipx;
- int flipy;
-
- for (y=27;y--;)
- {
- for (x=38;x--;)
- {
- color = ((m_mkiv_vram[count]) & 0xe0) >> 5;
- tile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0x3ff;
- bgtile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles
- uBackgroundColour(); // read sw7
- gfx->mark_dirty(bgtile); // force the machine to update only the first 256 tiles.
- // as we only update the background, not the entire display.
- flipx = ((m_mkiv_vram[count]) & 0x04);
- flipy = ((m_mkiv_vram[count]) & 0x08);
- gfx->opaque(bitmap,cliprect,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3);
- count+=2;
- }
- }
- return 0;
-}
-
-READ8_MEMBER(aristmk4_state::ldsw)
-{
- int U3_p2_ret= ioport("5002")->read();
- if(U3_p2_ret & 0x1)
- {
- return 0;
- }
- return m_cgdrsw = ioport("5005")->read();
-}
-
-READ8_MEMBER(aristmk4_state::cgdrr)
-{
- if(m_cgdrsw) // is the LC closed
- {
- return m_ripple; // return a positive value from the ripple counter
- }
- return 0x0; // otherwise the counter outputs are set low.
-}
-
-WRITE8_MEMBER(aristmk4_state::cgdrw)
-{
- m_ripple = data;
-}
-
-WRITE8_MEMBER(aristmk4_state::u3_p0)
-{
- m_u3_p0_w = data;
-
- if ((data&0x80)==0) //Printer Motor Off
- {
- m_printer_motor = 1; // Set this so the next read of u3_p3 returns PTRHOM as OFF.
- }
-
- //logerror("u3_p0_w: %02X\n",m_u3_p0_w);
-}
-
-READ8_MEMBER(aristmk4_state::u3_p2)
-{
- int u3_p2_ret= ioport("5002")->read();
- int u3_p3_ret= ioport("5003")->read();
-
- m_lamps[19] = BIT(u3_p2_ret, 4);
- m_lamps[20] = BIT(u3_p3_ret, 2);
-
- if (m_u3_p0_w&0x20) // DOPTE on
- {
- if (u3_p3_ret&0x02) // door closed
- u3_p2_ret = u3_p2_ret^0x08; // DOPTI on
- }
-
- if (m_inscrd==0)
- {
- m_inscrd=ioport("insertcoin")->read();
- }
-
- if (m_inscrd==1)
- u3_p2_ret=u3_p2_ret^0x02;
-
- return u3_p2_ret;
-}
-
-READ8_MEMBER(aristmk4_state::u3_p3)
-{
- int u3_p3_ret= ioport("5003")->read();
-
- if ((m_printer_motor)==1) // Printer Motor Off
-
- {
- u3_p3_ret = u3_p3_ret^0x80; // Printer Home Off
- m_printer_motor=0;
-
- }
-
- return u3_p3_ret;
-
-}
-
-TIMER_CALLBACK_MEMBER(aristmk4_state::note_input_reset)
-{
- m_insnote=0; //reset note input after 150msec
-}
-
-READ8_MEMBER(aristmk4_state::bv_p0)
-{
- int bv_p0_ret=0x00;
-
- switch(m_insnote)
- {
- case 0x01:
- bv_p0_ret=ioport("NS")->read()+0x81; //check note selector
- m_insnote++;
- break;
- case 0x02:
- bv_p0_ret=0x89;
- m_insnote++;
- machine().scheduler().timer_set(attotime::from_msec(150), timer_expired_delegate(FUNC(aristmk4_state::note_input_reset),this));
- break;
- default:
- break; //timer will reset the input
- }
-
- return bv_p0_ret;
-
-}
-
-READ8_MEMBER(aristmk4_state::bv_p1)
-{
- int bv_p1_ret=0x00;
-
- if (m_insnote==0)
- m_insnote=ioport("insertnote")->read();
-
- if (m_insnote==1)
- bv_p1_ret=0x08;
-
- if (m_insnote==2)
- bv_p1_ret=0x08;
-
- return bv_p1_ret;
-
-}
-
-
-/******************************************************************************
-
-PERIPHERAL INTERFACE ADAPTER CONFIGURATION
-
-PORTA - DALLAS DS1287 RTC
-PORTB - MECHANICAL METERS
-
-******************************************************************************/
-
-/*****************************************************************************/
-/* DALLAS DS1287 OR mc146818
-******************************************************************************/
-
-//input a
-READ8_MEMBER(aristmk4_state::mkiv_pia_ina)
-{
- /* uncomment this code once RTC is fixed */
-
- //return m_rtc->read(1);
- return 0; // OK for now, the aussie version has no RTC on the MB so this is valid.
-}
-
-//output a
-WRITE8_MEMBER(aristmk4_state::mkiv_pia_outa)
-{
- if(m_rtc_data_strobe)
- {
- m_rtc->write(1,data);
- //logerror("rtc protocol write data: %02X\n",data);
- }
- else
- {
- m_rtc->write(0,data);
- //logerror("rtc protocol write address: %02X\n",data);
- }
-}
-
-//output ca2
-WRITE_LINE_MEMBER(aristmk4_state::mkiv_pia_ca2)
-{
- m_rtc_address_strobe = state;
- // logerror("address strobe %02X\n", address_strobe);
-}
-
-//output cb2
-WRITE_LINE_MEMBER(aristmk4_state::mkiv_pia_cb2)
-{
- m_rtc_data_strobe = state;
- //logerror("data strobe: %02X\n", data);
-}
-
-//output b
-WRITE8_MEMBER(aristmk4_state::mkiv_pia_outb)
-{
- uint8_t emet[5];
- int i = 0;
- //pia_data = data;
- emet[0] = data & 0x01; /* emet1 - bit 1 - PB0 */
- /* seren1 - bit 2 - PB1 */
- emet[1] = data & 0x04; /* emet3 - bit 3 - PB2 */
- emet[2] = data & 0x08; /* emet4 - bit 4 - PB3 */
- emet[3] = data & 0x10; /* emet5 - bit 5 - PB4 */
- emet[4] = data & 0x20; /* emet6 - bit 6 - PB5 */
-
- for(i = 0;i<sizeof(emet);i++)
- {
- if(emet[i])
- {
- //logerror("Mechanical meter %d pulse: %02d\n",i+1, emet[i]);
- // Output Physical Meters
- switch(i+1)
- {
- case 4:
- m_credit_spend_meter = emet[i];
- break;
- case 5:
- m_credit_out_meter = emet[i];
- break;
- default:
- printf("Unhandled Mechanical meter %d pulse: %02d\n",i+1, emet[i]);
- break;
- }
-
- m_samples->start(i,0); // pulse sound for mechanical meters
- }
- else
- {
- // if there is not a value set, this meter is not active, reset output to 0
- switch(i+1)
- {
- case 4:
- m_credit_spend_meter = 0;
- break;
- case 5:
- m_credit_out_meter = 0;
- break;
- default:
- break;
- }
- }
- }
-}
-
-/* sound interface for playing mechanical meter sound */
-
-static const char *const meter_sample_names[] =
-{
- "*3bagflvt",
- "tick",
- nullptr
-};
-
-/******************************************************************************
-
-VERSATILE INTERFACE ADAPTER CONFIGURATION
-
-******************************************************************************/
-
-TIMER_CALLBACK_MEMBER(aristmk4_state::coin_input_reset)
-{
- m_inscrd=0; //reset credit input after 150msec
-}
-
-TIMER_CALLBACK_MEMBER(aristmk4_state::hopper_reset)
-{
- m_hopper_motor = 0x01;
- m_hopper_motor_out = 1;
-}
-
-// Port A read (SW1)
-READ8_MEMBER(aristmk4_state::via_a_r)
-{
- int psg_ret=0;
-
- if (m_ay8910_1&0x03) // SW1 read.
- {
- psg_ret = m_ay1->data_r();
- //logerror("PSG porta ay1 returned %02X\n",psg_ret);
- }
-
- else if (m_ay8910_2&0x03) //i don't think we read anything from Port A on ay2, Can be removed once game works ok.
- {
- psg_ret = m_ay2->data_r();
- //logerror("PSG porta ay2 returned %02X\n",psg_ret);
- }
- return psg_ret;
-}
-
-READ8_MEMBER(aristmk4_state::via_b_r)
-{
- int ret=ioport("via_port_b")->read();
-
-// Not expecting to read anything from port B on the AY8910's ( controls BC1, BC2 and BDIR )
-// However there are extra 4 bits not going to the AY8910's on the schematics, which get read from here.
-// OPTA1 - Bit4 - Coin optics - A
-// OPTB1 - Bit5 - Coin optics - B
-// HOPCO1 - Bit6 - Hopper counter
-// CBOPT1 - Bit7 - Cash box optics
-/* Coin input... CBOPT2 goes LOW, then the optic detectors OPTA1 / OPTB1 detect the coin passing */
-/* The timer causes one credit, per 150ms or so... */
-
- switch(m_inscrd)
- {
- case 0x00:
- break;
- case 0x01:
- ret=ret^0x10;
- m_inscrd++;
- break;
- case 0x02:
- ret=ret^0x20;
- m_inscrd++;
- machine().scheduler().timer_set(attotime::from_msec(150), timer_expired_delegate(FUNC(aristmk4_state::coin_input_reset),this));
- break;
- default:
- break; //timer will reset the input
- }
-
-// if user presses collect.. send coins to hopper.
-
- switch(m_hopper_motor)
- {
- case 0x00:
- ret=ret^0x40;
- machine().scheduler().timer_set(attotime::from_msec(175), timer_expired_delegate(FUNC(aristmk4_state::hopper_reset),this));
- m_hopper_motor = 0x02;
- m_hopper_motor_out = 2;
- break;
- case 0x01:
- break; //default
- case 0x02:
- ret=ret^0x40;
- break;
- default:
- break;
- }
- return ret;
-}
-
-WRITE8_MEMBER(aristmk4_state::via_a_w)
-{
- //logerror("VIA port A write %02X\n",data);
- m_psg_data = data;
-}
-
-WRITE8_MEMBER(aristmk4_state::via_b_w)
-{
- m_ay8910_1 = ( data & 0x0F ) ; //only need first 4 bits per schematics
- //NOTE: when bit 4 is off, we write to AY1, when bit 4 is on, we write to AY2
- m_ay8910_2 = m_ay8910_1;
-
- if ( m_ay8910_2 & 0x08 ) // is bit 4 on ?
- {
- m_ay8910_2 = (m_ay8910_2 | 0x02) ; // bit 2 is turned on as bit 4 hooks to bit 2 in the schematics
- m_ay8910_1 = 0x00; // write only to ay2
- }
- else
- {
- m_ay8910_2 = 0x00; // write only to ay1
- }
-
- //only need bc1/bc2 and bdir so drop bit 4.
-
- m_ay8910_1 = (m_ay8910_1 & 0x07);
- m_ay8910_2 = (m_ay8910_2 & 0x07);
-
- //PSG ay1
-
- switch(m_ay8910_1)
- {
- case 0x00: //INACT -Nothing to do here. Inactive PSG
- break;
- case 0x03: //READ - Nothing to do here. The read happens in via_a_r
- break;
- case 0x06: //WRITE
- {
- m_ay1->data_w(m_psg_data);
- //logerror("VIA Port A write data ay1: %02X\n",m_psg_data);
- break;
- }
- case 0x07: //LATCH Address (set register)
- {
- m_ay1->address_w(m_psg_data);
- //logerror("VIA Port B write register ay1: %02X\n",m_psg_data);
- break;
- }
- default:
- //logerror("Unknown PSG state on ay1: %02X\n",m_ay8910_1);
- break;
- }
-
- //PSG ay2
-
- switch(m_ay8910_2)
- {
- case 0x00: //INACT - Nothing to do here. Inactive PSG
- break;
- case 0x02: //INACT - '010' Nothing to do here. Inactive PSG. this will only happen on ay2 due to the bit 2 swap on 'inactive'
- break;
- case 0x03: //READ - Nothing to do here. The read happens in via_a_r
- break;
- case 0x06: //WRITE
- {
- m_ay2->data_w(m_psg_data);
- //logerror("VIA Port A write data ay2: %02X\n",m_psg_data);
- break;
- }
- case 0x07: //LATCH Address (set register)
- {
- m_ay2->address_w(m_psg_data);
- //logerror("VIA Port B write register ay2: %02X\n",m_psg_data);
- break;
- }
- default:
- //logerror("Unknown PSG state on ay2: %02X\n",m_ay8910_2);
- break;
- }
-}
-
-WRITE_LINE_MEMBER(aristmk4_state::via_ca2_w)
-{
- // CA2 is connected to CDSOL1 on schematics ?
- //logerror("Via Port CA2 write %02X\n",data) ;
-}
-
-WRITE_LINE_MEMBER(aristmk4_state::via_cb2_w)
-{
- // CB2 = hopper motor (HOPMO1). When it is 0x01, it is not running (active low)
- // when it goes to 0, we're expecting to coins to be paid out, handled in via_b_r
- // as soon as it is 1, HOPCO1 to remain 'ON'
-
- if (state == 0x01)
- m_hopper_motor = state;
- else if (m_hopper_motor < 0x02)
- m_hopper_motor = state;
-
- m_hopper_motor_out = m_hopper_motor;
-}
-
-// Lamp output
-
-WRITE8_MEMBER(aristmk4_state::pblp_out)
-{
- m_lamps[ 1] = BIT(data, 0);
- m_lamps[ 5] = BIT(data, 1);
- m_lamps[ 9] = BIT(data, 2);
- m_lamps[11] = BIT(data, 3);
- m_lamps[ 3] = BIT(data, 4);
- m_lamps[ 4] = BIT(data, 5);
- m_lamps[ 2] = BIT(data, 6);
- m_lamps[10] = BIT(data, 7);
- //logerror("Lights port A %02X\n",data);
-}
-
-WRITE8_MEMBER(aristmk4_state::pbltlp_out)
-{
- m_lamps[ 8] = BIT(data, 0);
- m_lamps[12] = BIT(data, 1);
- m_lamps[ 6] = BIT(data, 2);
- m_lamps[ 7] = BIT(data, 3);
- m_lamps[14] = BIT(data, 4); // light tower
- m_lamps[15] = BIT(data, 5); // light tower
- m_lamps[16] = BIT(data, 6); // light tower
- m_lamps[17] = BIT(data, 7); // light tower
- //logerror("Lights port B: %02X\n",data);
-}
-
-WRITE8_MEMBER(aristmk4_state::mlamps)
-{
- /* TAKE WIN AND GAMBLE LAMPS */
- m_lamps[18] = BIT(data, 5);
- m_lamps[13] = BIT(data, 6);
-}
-
-WRITE8_MEMBER(aristmk4_state::zn434_w)
-{
- // Introducted to prevent warning in log for write to AY1 PORT B
- // this is a write to the ZN434 DA convertors..
-}
-
-
-READ8_MEMBER(aristmk4_state::cashcade_r)
-{
- /* work around for cashcade games */
- return cashcade_p[(m_cashcade_c++)%15];
-}
-
-WRITE8_MEMBER(aristmk4_state::mk4_printer_w)
-{
- //logerror("Printer: %c %d\n",data,data);
-}
-
-READ8_MEMBER(aristmk4_state::mk4_printer_r)
-{
- return 0;
-}
-
-/******************************************************************************
-
-ADDRESS MAP - SLOT GAMES
-
-******************************************************************************/
-
-void aristmk4_state::slots_mem(address_map &map)
-{
- map(0x0000, 0x07ff).ram().share("mkiv_vram"); // video ram - chips U49 / U50
- map(0x0800, 0x17ff).ram();
- map(0x1800, 0x1800).rw("crtc", FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
- map(0x1801, 0x1801).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
- map(0x1c00, 0x1cff).w(FUNC(aristmk4_state::mk4_printer_w));
- map(0x1900, 0x19ff).r(FUNC(aristmk4_state::mk4_printer_r));
- map(0x2000, 0x3fff).rom(); // graphics rom map
- map(0x4000, 0x4fff).bankrw("bank1").share("nvram");
-
- map(0x5000, 0x5000).w(FUNC(aristmk4_state::u3_p0));
- map(0x5002, 0x5002).r(FUNC(aristmk4_state::u3_p2));
- map(0x5003, 0x5003).r(FUNC(aristmk4_state::u3_p3));
- map(0x5005, 0x5005).r(FUNC(aristmk4_state::ldsw));
- map(0x500d, 0x500d).portr("500d");
- map(0x500e, 0x500e).portr("500e");
- map(0x500f, 0x500f).portr("500f");
- map(0x5010, 0x501f).m("via6522_0", FUNC(via6522_device::map));
- map(0x5200, 0x5200).r(FUNC(aristmk4_state::cashcade_r));
- map(0x5201, 0x5201).portr("5201");
- map(0x52c0, 0x52c0).r(FUNC(aristmk4_state::bv_p0));
- map(0x52c1, 0x52c1).r(FUNC(aristmk4_state::bv_p1));
- map(0x527f, 0x5281).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0x5300, 0x5300).portr("5300");
- map(0x5380, 0x5383).rw("pia6821_0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // RTC data - PORT A , mechanical meters - PORTB ??
- map(0x5440, 0x5440).w(FUNC(aristmk4_state::mlamps)); // take win and gamble lamps
- map(0x5468, 0x5468).rw(FUNC(aristmk4_state::cgdrr), FUNC(aristmk4_state::cgdrw)); // 4020 ripple counter outputs
- map(0x6000, 0xffff).rom(); // game roms
-}
-
-/******************************************************************************
-
-ADDRESS MAP - VIDEO POKER GAMES
-
-******************************************************************************/
-
-/*
-Poker card style games seem to have different address mapping
-
-The graphics rom is mapped from 0x4000 - 0x4fff
-
-The U87 personality rom is not required, therefore game rom code mapping is from 0x8000-0xffff
-*/
-
-void aristmk4_state::poker_mem(address_map &map)
-{
- map(0x0000, 0x07ff).ram().share("mkiv_vram"); // video ram - chips U49 / U50
- map(0x0800, 0x17ff).ram();
- map(0x1800, 0x1800).rw("crtc", FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
- map(0x1801, 0x1801).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
- map(0x1c00, 0x1cff).w(FUNC(aristmk4_state::mk4_printer_w));
- map(0x1900, 0x19ff).r(FUNC(aristmk4_state::mk4_printer_r));
- map(0x4000, 0x4fff).bankrw("bank1").share("nvram");
-
- map(0x5000, 0x5000).w(FUNC(aristmk4_state::u3_p0));
- map(0x5002, 0x5002).r(FUNC(aristmk4_state::u3_p2));
- map(0x5003, 0x5003).portr("5003");
- map(0x5005, 0x5005).r(FUNC(aristmk4_state::ldsw));
- map(0x500d, 0x500d).portr("500d");
- map(0x500e, 0x500e).portr("500e");
- map(0x500f, 0x500f).portr("500f");
- map(0x5010, 0x501f).m("via6522_0", FUNC(via6522_device::map));
- map(0x5200, 0x5200).r(FUNC(aristmk4_state::cashcade_r));
- map(0x5201, 0x5201).portr("5201");
- map(0x52c0, 0x52c0).r(FUNC(aristmk4_state::bv_p0));
- map(0x52c1, 0x52c1).r(FUNC(aristmk4_state::bv_p1));
- map(0x527f, 0x5281).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0x5300, 0x5300).portr("5300");
- map(0x5380, 0x5383).rw("pia6821_0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // RTC data - PORT A , mechanical meters - PORTB ??
- map(0x5440, 0x5440).w(FUNC(aristmk4_state::mlamps)); // take win and gamble lamps
- map(0x5468, 0x5468).rw(FUNC(aristmk4_state::cgdrr), FUNC(aristmk4_state::cgdrw)); // 4020 ripple counter outputs
- map(0x6000, 0x7fff).rom(); // graphics rom map
- map(0x8000, 0xffff).rom(); // game roms
-}
-
-/******************************************************************************
-
-INPUT PORTS
-
-******************************************************************************/
-
-static INPUT_PORTS_START(aristmk4)
-
- PORT_START("via_port_b")
- PORT_DIPNAME( 0x10, 0x00, "Coin Optic 1" ) // "COIN FAULT"
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) ) PORT_DIPLOCATION("AY:1")
- PORT_DIPNAME( 0x20, 0x00, "Coin Optic 2" ) // "COIN FAULT"
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_DIPLOCATION("AY:2")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Hopper Coin Release") PORT_CODE(KEYCODE_BACKSLASH) // "ILLEGAL COIN PAID"
- PORT_DIPNAME( 0x80, 0x00, "CBOPT1" ) // Cashbox Optic, enable for 3bagflvt and eforesta or they will give a coin divertor error on the 5th coin, turn off for US games
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPLOCATION("AY:4")
-
- PORT_START("5002")
- PORT_DIPNAME( 0x01, 0x00, "HOPCO2") // coins out hopper 2, why does it trigger logic door?
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5002:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "CBOPT2") // coin in cash box 2 off = "34 - COIN VALIDATOR FAULT"
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5002:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "HOPHI2") // hopper 2 full
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5002:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "DOPTI") // photo optic door DOOR OPEN SENSE SWITCH
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_NAME("Audit Key") PORT_TOGGLE PORT_CODE(KEYCODE_F2) // AUDTSW
- PORT_DIPNAME( 0x20, 0x00, "HOPLO1") // hopper 1 low
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5002:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "HOPLO2") // hopper 2 low
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5002:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_NAME("Robot Test / Hopper Reset") PORT_CODE(KEYCODE_Z) // PB6
-
- PORT_START("5003")
- PORT_DIPNAME( 0x01, 0x00, "OPTAUI") // opto audit in
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5003:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Main Door") PORT_TOGGLE PORT_CODE(KEYCODE_M) // DSWDT
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_NAME("Jackpot Key") PORT_TOGGLE PORT_CODE(KEYCODE_F1) // JKPTSW
- PORT_DIPNAME( 0x08, 0x08, "HOPHI1") // hopper 1 full
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5003:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "OPTA2") // coin in a2
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5003:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "OPTB2") // coin in b2
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5003:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "PTRTAC") // printer taco
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5003:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "PTRHOM") // printer home, must be on
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5003:8")
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("5005")
- PORT_DIPNAME( 0x01, 0x01, "CREDIT SELECT 1")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "CREDIT SELECT 2")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "CREDIT SELECT 3")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "5005-4")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "CGDRSW") // Logic door (Security Cage)
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "5005-6")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "5005-7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "5005-8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5005:8")
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("5300")
- PORT_DIPNAME( 0x01, 0x00, "5300-1")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "5300-2")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "5300-3")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "5300-4")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "5300-5")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "5300-6")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:6") // bill validator d/c, must be on for US games
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "5300-7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "5300-8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5300:8") // mechanical meters, must be on
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("5 Credits Per Line") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("10 Credits Per Line") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Collect") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Reserve") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Gamble") PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Win") PORT_CODE(KEYCODE_J)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-7 UNUSED")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-8 UNUSED")
-
- PORT_START("500e")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("1 Credit Per Line") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Play 1 Line / Red") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("2 Credits Per Line") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 9 Lines / Black") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("3 Credits Per Line") PORT_CODE(KEYCODE_R)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 7 Lines") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 5 Lines") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_D)
-
- PORT_START("500f")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("2-1 UNUSED")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("2-2 UNUSED")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("2-3 UNUSED")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON12 ) PORT_NAME("AUX1") PORT_CODE(KEYCODE_X) // PB5
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_CODE(KEYCODE_C) // PB4
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON14 ) PORT_NAME("Hopper Test") PORT_CODE(KEYCODE_V) // PB3
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON15 ) PORT_NAME("Print Data") PORT_CODE(KEYCODE_B) // PB2
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON16 ) PORT_NAME("Clock Init") PORT_CODE(KEYCODE_N) // PB1
-
- PORT_START("5200")
- PORT_DIPNAME( 0x01, 0x00, "5200-1")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "5200-2")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "5200-3")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "5200-4")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "5200-5")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "5200-6")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "5200-7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "5200-8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5200:8")
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("5201")
- PORT_DIPNAME( 0x01, 0x00, "5201-1")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "5201-2")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "5201-3")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "5201-4") // fixes link offline error
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "5201-5") // freeze switch? only affects fhunter(a) and cgold2
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "5201-6")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "5201-7")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "5201-8")
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:8")
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("insertcoin")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Insert Credit")
-
- PORT_START("insertnote")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Insert Note")
-
- PORT_START("powerfail")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Power Fail / Shutdown") PORT_CODE(KEYCODE_COMMA)
-
- /************************************** LINKS ***************************************************************/
-
- PORT_START("LK13")
- PORT_DIPNAME( 0x10, 0x10, "Speed Select" ) PORT_DIPLOCATION("LK13:1")
- PORT_DIPSETTING( 0x00, "3 Mhz" )
- PORT_DIPSETTING( 0x10, "1.5 Mhz" )
-
- /********************************* Dip switch for background color *************************************************/
-
- PORT_START("SW7")
- PORT_DIPNAME( 0x01, 0x01, "SW7 - U22 BG COLOR" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW7:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "SW7 - U47 BG COLOR" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW7:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
-
- /********************************* 9 way control rotary switches ***************************************************/
-
- PORT_START("SW3")
- PORT_DIPNAME( 0x0f, 0x00, "SW3 - M/C NO" )
- PORT_DIPSETTING( 0x00, "0" )
- PORT_DIPSETTING( 0x01, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x05, "5" )
- PORT_DIPSETTING( 0x06, "6" )
- PORT_DIPSETTING( 0x07, "7" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x09, "9" )
-
- PORT_START("SW4")
- PORT_DIPNAME( 0x0f, 0x00, "SW4 - M/C NO" )
- PORT_DIPSETTING( 0x00, "0" )
- PORT_DIPSETTING( 0x01, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x05, "5" )
- PORT_DIPSETTING( 0x06, "6" )
- PORT_DIPSETTING( 0x07, "7" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x09, "9" )
-
- PORT_START("SW5")
- PORT_DIPNAME( 0x0f, 0x00, "SW5 - M/C NO" )
- PORT_DIPSETTING( 0x00, "0" )
- PORT_DIPSETTING( 0x01, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x05, "5" )
- PORT_DIPSETTING( 0x06, "6" )
- PORT_DIPSETTING( 0x07, "7" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x09, "9" )
-
- PORT_START("SW6")
- PORT_DIPNAME( 0x0f, 0x00, "SW6 - M/C NO" )
- PORT_DIPSETTING( 0x00, "0" )
- PORT_DIPSETTING( 0x01, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x05, "5" )
- PORT_DIPSETTING( 0x06, "6" )
- PORT_DIPSETTING( 0x07, "7" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x09, "9" )
-
- /***************** DIP SWITCHES **********************************************************************/
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x00, "DSW1 - Maxbet rejection" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "DSW1 - Hopper pay limit - S1" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "DSW1 - Hopper pay limit - S2" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "DSW1 - Hopper pay limit - S3" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, "DSW1 - Cash credit option" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, "DSW1 - Link Jackpot - S1" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "DSW1 - Link Jackpot - S2" ) // Cash credit option in fvrpitch/eforesta
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "DSW1 - Auto spin" ) // Disables double up, only eforesta supports auto spin with double up disabled
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x00, "DSW2 - Maximum credit - S1" ) // Cash credit option in topgear
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:1")
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "DSW2 - Maximum credit - S2" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:2")
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x00, "DSW2 - Maximum credit - S3" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:3")
- PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x00, "DSW2 - Jackpot limit - S1" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:4")
- PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "DSW2 - Jackpot limit - S2" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "DSW2 - Jackpot limit - S3" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:6")
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x00, "DSW2 - Auto J/P payout" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:7")
- PORT_DIPSETTING( 0x40, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x00, "DSW2 - Unconnected" )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-
- /* Rotary switch for Note selection. I've done it like this so we can use 1 keyboard command (IPT_COIN2) to feed the bill acceptor */
- PORT_START("NS")
- PORT_DIPNAME( 0x0f, 0x00, "Note Selector" )
- PORT_DIPSETTING( 0x00, "$1" )
- PORT_DIPSETTING( 0x01, "$2" )
- PORT_DIPSETTING( 0x02, "$5" )
- PORT_DIPSETTING( 0x03, "$10" )
- PORT_DIPSETTING( 0x04, "$20" )
- PORT_DIPSETTING( 0x05, "$50" )
- PORT_DIPSETTING( 0x06, "$100" )
-
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(3bagflvt)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Max Bet") PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Auto Play") PORT_CODE(KEYCODE_J)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Play 1 Line") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 9 Lines") PORT_CODE(KEYCODE_H)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(3bagflnz)
- PORT_INCLUDE(3bagflvt)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("4 Credits Per Line") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("5 Credits Per Line") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-5 UNUSED")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-6 UNUSED")
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(eforest)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 7 Lines") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 9 Lines / Black") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Cashout") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_CODE(KEYCODE_A)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Play 1 Line / Red") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("1 Credit Per Line") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("5 Credits Per Line") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 5 Lines") PORT_CODE(KEYCODE_R)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("4 Credits Per Line") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("3 Credits Per Line") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("2 Credits Per Line") PORT_CODE(KEYCODE_D)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(arcwins)
- PORT_INCLUDE(eforest)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 4 Lines") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 5 Lines / Black") PORT_CODE(KEYCODE_Y)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 2 Lines") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_R)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(cgold2)
- PORT_INCLUDE(arcwins)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 5 Lines") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-5 UNUSED")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-6 UNUSED")
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Play 1 Line") PORT_CODE(KEYCODE_W)
-
- PORT_MODIFY("5201")
- PORT_DIPNAME( 0x10, 0x10, "5201-5") // Must be "on" otherwise the game will not respond
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPLOCATION("5201:5")
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(fhunter)
- PORT_INCLUDE(cgold2)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 7 Lines") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 9 Lines") PORT_CODE(KEYCODE_Y)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 5 Lines") PORT_CODE(KEYCODE_R)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(arimk4nz)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("4 Credits Per Line") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("5 Credits Per Line") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_U)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(goldenc)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_U)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(kgbird)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("4 Credits Per Line") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("5 Credits Per Line") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_U)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 5 Lines / Black") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 4 Lines") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 2 Lines") PORT_CODE(KEYCODE_D)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(topgear)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-1 UNUSED")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-2 UNUSED")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Collect") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Change") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-5 UNUSED")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-6 UNUSED")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-7 UNUSED")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-8 UNUSED")
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("1-1 UNUSED")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Play 1 Line") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Max Bet") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 5 Lines") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("1-5 UNUSED")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 4 Lines") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 2 Lines") PORT_CODE(KEYCODE_D)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(gunnrose)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Red") PORT_CODE(KEYCODE_R)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Draw") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Bet 2 / Hold 2") PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Bet 3 / Hold 3") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-5 UNUSED")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-6 UNUSED")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-7 UNUSED")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-8 UNUSED")
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Half Gamble") PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Reserve") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Full Gamble") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Bet 1 / Hold 1") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Bet 5 / Hold 5") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Bet 4 / Hold 4") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Black") PORT_CODE(KEYCODE_T)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Win") PORT_CODE(KEYCODE_A)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(wildone)
- PORT_INCLUDE(aristmk4)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Bet 2 / Hold 2") PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Bet 3 / Hold 3") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-5 UNUSED")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-6 UNUSED")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-7 UNUSED")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-8 UNUSED")
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Collect") PORT_CODE(KEYCODE_Q)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Black") PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Red") PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Bet 1 / Hold 1") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("High 5 / Hold 5") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Big 5 / Hold 4") PORT_CODE(KEYCODE_G) // no bet 4 button
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take Win") PORT_CODE(KEYCODE_J)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Draw") PORT_CODE(KEYCODE_R)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(gldnpkr)
- PORT_INCLUDE(wildone)
-
- PORT_MODIFY("500d")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("0-1 UNUSED")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Gamble") PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_CODE(KEYCODE_F)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_BET ) PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Change") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Red") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Black") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Draw") PORT_CODE(KEYCODE_R)
-INPUT_PORTS_END
-
-static INPUT_PORTS_START(fvrpitch)
- PORT_INCLUDE(3bagflnz)
-
- PORT_MODIFY("500e")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Play 5 Lines") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Play 4 Lines") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Play 3 Lines") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Play 2 Lines") PORT_CODE(KEYCODE_D)
-INPUT_PORTS_END
-
-
-static const gfx_layout layout8x8x6 =
-{
- 8,8,
- RGN_FRAC(1,6),
- 6,
- {
- RGN_FRAC(5,6),
- RGN_FRAC(2,6),
- RGN_FRAC(4,6),
- RGN_FRAC(1,6),
- RGN_FRAC(3,6),
- RGN_FRAC(0,6)
- },
- { STEP8(0,1) },
- { STEP8(0,8) },
- 8*8
-};
-
-static GFXDECODE_START(gfx_aristmk4)
- GFXDECODE_ENTRY("tile_gfx",0x0,layout8x8x6, 0, 8 )
-GFXDECODE_END
-
-/* read m/c number */
-
-READ8_MEMBER(aristmk4_state::pa1_r)
-{
- return (ioport("SW3")->read() << 4) + ioport("SW4")->read();
-}
-
-READ8_MEMBER(aristmk4_state::pb1_r)
-{
- return (ioport("SW5")->read() << 4) + ioport("SW6")->read();
-}
-
-READ8_MEMBER(aristmk4_state::pc1_r)
-{
- return 0;
-}
-
-/* same as Casino Winner HW */
-void aristmk4_state::aristmk4_palette(palette_device &palette) const
-{
- const uint8_t *color_prom = memregion("proms")->base();
-
- for (int i = 0; i < palette.entries(); i++)
- {
- const uint8_t data = color_prom[i];
- const int b = 0x4f * BIT(data, 0) + 0xa8 * BIT(data, 1);
- const int g = 0x21 * BIT(data, 2) + 0x47 * BIT(data, 3) + 0x97 * BIT(data, 4);
- const int r = 0x21 * BIT(data, 5) + 0x47 * BIT(data, 6) + 0x97 * BIT(data, 7);
-
- palette.set_pen_color(i, rgb_t(r, g, b));
- }
-}
-
-void aristmk4_state::init_aristmk4()
-{
- m_shapeRomPtr = (uint8_t *)memregion("tile_gfx")->base();
- memcpy(m_shapeRom,m_shapeRomPtr,sizeof(m_shapeRom)); // back up
- m_nvram = std::make_unique<uint8_t[]>(0x1000);
-}
-
-void aristmk4_state::machine_start()
-{
- save_pointer(NAME(m_nvram), 0x1000); // m_nvram
- m_credit_spend_meter.resolve();
- m_credit_out_meter.resolve();
- m_hopper_motor_out.resolve();
- m_lamps.resolve();
- m_power_timer = timer_alloc(TIMER_POWER_FAIL);
-}
-
-void aristmk4_state::machine_reset()
-{
- /* mark 4 has a link on the motherboard to switch between 1.5MHz and 3MHz clock speed */
- switch(ioport("LK13")->read()) // CPU speed control... 3mhz or 1.5MHz
- {
- case 0x00:
- m_maincpu->set_unscaled_clock(MAIN_CLOCK/4); // 3 MHz
- break;
- case 0x10:
- m_maincpu->set_unscaled_clock(MAIN_CLOCK/8); // 1.5 MHz
- break;
- }
-
- m_power_timer->adjust(attotime::from_hz(1), 0, attotime::from_hz(1));
-}
-
-void aristmk4_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
-{
- switch (id)
- {
- case TIMER_POWER_FAIL: power_fail(); break;
- default: throw emu_fatalerror("Unknown id in aristmk4_state::device_timer");
- }
-}
-
-void aristmk4_state::power_fail()
-{
- /*
- IRQ generator pulses the NMI signal to CPU in the event of power down or power failure.
- This event is recorded in NVRAM to facilitate the Robot Test.
-
- Would be ideal to use this in our add_exit_callback instead of using a timer but it doesn't seem to
- save the power down state in nvram. Is there a cleaner way to do this?
-
- To enter the robot test
-
- 1. Open the main door
- 2. Trigger powerfail / NMI by pressing ',' for at least 1 second, the game will freeze.
- 3. Press F3 ( reset ) whilst holding down robot/hopper test button ( Z )
-
- Note: The use of 1 Hz in the timer is to avoid unintentional triggering the NMI ( ie.. hold down ',' for at least 1 second )
- */
-
- if(ioport("powerfail")->read()) // send NMI signal if L pressed
- {
- m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
- }
-}
-
-void aristmk4_state::aristmk4(machine_config &config)
-{
- /* basic machine hardware */
- MC6809E(config, m_maincpu, MAIN_CLOCK/8); // M68B09E @ 1.5 MHz
- m_maincpu->set_addrmap(AS_PROGRAM, &aristmk4_state::slots_mem);
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(320, 256);
- screen.set_visarea(0, 304-1, 0, 216-1); /* from the crtc registers... updated by crtc */
- screen.set_screen_update(FUNC(aristmk4_state::screen_update_aristmk4));
- screen.screen_vblank().set_inputline(m_maincpu, M6809_IRQ_LINE, HOLD_LINE);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_aristmk4);
- PALETTE(config, m_palette, FUNC(aristmk4_state::aristmk4_palette), 512);
-
- i8255_device &ppi(I8255A(config, "ppi8255_0"));
- ppi.in_pa_callback().set(FUNC(aristmk4_state::pa1_r));
- ppi.in_pb_callback().set(FUNC(aristmk4_state::pb1_r));
- ppi.in_pc_callback().set(FUNC(aristmk4_state::pc1_r));
-
- via6522_device &via(VIA6522(config, "via6522_0", MAIN_CLOCK/8)); // R65C22P2
- via.readpa_handler().set(FUNC(aristmk4_state::via_a_r));
- via.readpb_handler().set(FUNC(aristmk4_state::via_b_r));
- via.writepa_handler().set(FUNC(aristmk4_state::via_a_w));
- via.writepb_handler().set(FUNC(aristmk4_state::via_b_w));
- via.ca2_handler().set(FUNC(aristmk4_state::via_ca2_w));
- via.cb2_handler().set(FUNC(aristmk4_state::via_cb2_w));
- via.irq_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE);
- // CA1 is connected to +5V, CB1 is not connected.
-
- pia6821_device &pia(PIA6821(config, "pia6821_0", 0));
- pia.readpa_handler().set(FUNC(aristmk4_state::mkiv_pia_ina));
- pia.writepa_handler().set(FUNC(aristmk4_state::mkiv_pia_outa));
- pia.writepb_handler().set(FUNC(aristmk4_state::mkiv_pia_outb));
- pia.ca2_handler().set(FUNC(aristmk4_state::mkiv_pia_ca2));
- pia.cb2_handler().set(FUNC(aristmk4_state::mkiv_pia_cb2));
-
- mc6845_device &crtc(C6545_1(config, "crtc", MAIN_CLOCK/8)); // TODO: type is unknown
- crtc.set_screen("screen");
- /* in fact is a mc6845 driving 4 pixels by memory address.
- that's why the big horizontal parameters */
- crtc.set_show_border_area(false);
- crtc.set_char_width(4);
-
- MC146818(config, m_rtc, 4.194304_MHz_XTAL);
-
- SPEAKER(config, "mono").front_center();
-
- // the Mark IV has X 2 AY8910 sound chips which are tied to the VIA
- AY8910(config, m_ay1, MAIN_CLOCK/8);
- m_ay1->port_a_read_callback().set_ioport("DSW1");
- m_ay1->port_b_write_callback().set(FUNC(aristmk4_state::zn434_w)); // Port write to set Vout of the DA convertors ( 2 x ZN434 )
- m_ay1->add_route(ALL_OUTPUTS, "mono", 0.40);
-
- AY8910(config, m_ay2, MAIN_CLOCK/8);
- m_ay2->port_a_write_callback().set(FUNC(aristmk4_state::pblp_out)); // Port A write - goes to lamps on the buttons x8
- m_ay2->port_b_write_callback().set(FUNC(aristmk4_state::pbltlp_out)); // Port B write - goes to lamps on the buttons x4 and light tower x4
- m_ay2->add_route(ALL_OUTPUTS, "mono", 0.40);
-
- SAMPLES(config, m_samples);
- m_samples->set_channels(5); /* one for each meter - can pulse simultaneously */
- m_samples->set_samples_names(meter_sample_names);
- m_samples->add_route(ALL_OUTPUTS, "mono", 0.05);
-}
-
-void aristmk4_state::aristmk4_poker(machine_config &config)
-{
- aristmk4(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &aristmk4_state::poker_mem);
-}
-
-/* same as Aristocrat Mark-IV HW color offset 7 */
-void aristmk4_state::lions_palette(palette_device &palette) const
-{
- for (int i = 0; i < palette.entries(); i++)
- {
- const int b = 0x4f * BIT(i, 0) + 0xa8 * BIT(i, 1);
- const int g = 0x4f * BIT(i, 2) + 0xa8 * BIT(i, 3);
- const int r = 0x4f * BIT(i, 4) + 0xa8 * BIT(i, 5);
-
- palette.set_pen_color(i, rgb_t(r, g, b));
- }
-}
-
-void aristmk4_state::_86lions(machine_config &config)
-{
- aristmk4(config);
- m_palette->set_init(FUNC(aristmk4_state::lions_palette));
-}
-
-ROM_START( 3bagflvt )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("5vxfc790.u87", 0x06000, 0x2000, CRC(79ee932f) SHA1(de85de107310315b69bd7564f1921c7501b679b2))
- ROM_LOAD("5vxfc790.u86", 0x08000, 0x8000, CRC(b6185f3b) SHA1(db642d7b1d1fd93483642bae518eb99a3e99aec9))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh224.u20", 0x00000, 0x2000, CRC(b02d4ce8) SHA1(eace41f870bfbc253124efd72f1c7d6021f2e99f))
- ROM_LOAD("1vlsh224.u21", 0x02000, 0x2000, CRC(06218c95) SHA1(cbda8e50fd4e9c8a3c51a006921a85d4bfaa6f78))
- ROM_LOAD("1vlsh224.u22", 0x04000, 0x2000, CRC(191e73f1) SHA1(e6d510b155f9cd3427a70346e5ff28969309be4e))
- ROM_LOAD("1vlsh224.u45", 0x06000, 0x2000, CRC(054c55cb) SHA1(3df1893095f867220f3d6a52a40bcdffbfc8b529))
- ROM_LOAD("1vlsh224.u46", 0x08000, 0x2000, CRC(f33970b3) SHA1(8814a4d29383545c7c48e5b44f16a53e38b67fc3))
- ROM_LOAD("1vlsh224.u47", 0x0a000, 0x2000, CRC(609ecf9e) SHA1(9d819bb71f62eb4dd1b3d71748e87c7d77e2afe6))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm48.u71", 0x0000, 0x0200, CRC(81daeeb0) SHA1(7dfe198c6def5c4ae4ecac488d65c2911fb3a890))
-ROM_END
-
-ROM_START( 3bagflnz )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("3vxfc5345.u87", 0x06000, 0x2000, CRC(ba97a469) SHA1(fee56fe7116d1f1aab2b0f2526101d4eb87f0bf1))
- ROM_LOAD("3vxfc5345.u86", 0x08000, 0x8000, CRC(c632c7c7) SHA1(f3090d037f71a0cf099bb55abbc509cf95f0cbba))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh224.u20", 0x00000, 0x2000, CRC(b02d4ce8) SHA1(eace41f870bfbc253124efd72f1c7d6021f2e99f)) // original graphics ROMs were bad,
- ROM_LOAD("1vlsh224.u21", 0x02000, 0x2000, CRC(06218c95) SHA1(cbda8e50fd4e9c8a3c51a006921a85d4bfaa6f78)) // using 3bagflvt ROMs for now although
- ROM_LOAD("1vlsh224.u22", 0x04000, 0x2000, CRC(191e73f1) SHA1(e6d510b155f9cd3427a70346e5ff28969309be4e)) // some unused tiles differ between sets
- ROM_LOAD("1vlsh224.u45", 0x06000, 0x2000, CRC(054c55cb) SHA1(3df1893095f867220f3d6a52a40bcdffbfc8b529))
- ROM_LOAD("1vlsh224.u46", 0x08000, 0x2000, CRC(f33970b3) SHA1(8814a4d29383545c7c48e5b44f16a53e38b67fc3))
- ROM_LOAD("1vlsh224.u47", 0x0a000, 0x2000, CRC(609ecf9e) SHA1(9d819bb71f62eb4dd1b3d71748e87c7d77e2afe6))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm48.u71", 0x0000, 0x0200, CRC(81daeeb0) SHA1(7dfe198c6def5c4ae4ecac488d65c2911fb3a890))
-ROM_END
-
-ROM_START( blkrhino )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("3vxfc5344.u87", 0x06000, 0x2000, CRC(7aed16f5) SHA1(0229387e352da8e7278e5bc5c61079742d05d900))
- ROM_LOAD("3vxfc5344.u86", 0x08000, 0x8000, CRC(4739f0f0) SHA1(231b6ad26b6b5d413dbd0a23257e86814978449b))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh236.u20", 0x00000, 0x2000, CRC(0559fe98) SHA1(2ffb7b3ce3b7ba3bd846cae514b66b1c1a3be91f))
- ROM_LOAD("1vlsh236.u21", 0x02000, 0x2000, CRC(c0b94f7b) SHA1(8fc3bc53c532407b77682e5e9ac6a625081d22a3))
- ROM_LOAD("1vlsh236.u22", 0x04000, 0x2000, CRC(2f4f0fe5) SHA1(b6c75bd3b6281a2de7bfea8162c39d58b0e8fa32))
- ROM_LOAD("1vlsh236.u45", 0x06000, 0x2000, CRC(e483b4cd) SHA1(1cb3f77e7d470d7dcd8e50a0f59298d5546e8b58))
- ROM_LOAD("1vlsh236.u46", 0x08000, 0x2000, CRC(4a0ce91d) SHA1(e2f853c69fb256870c9809cdfbba2b40b47a0004))
- ROM_LOAD("1vlsh236.u47", 0x0a000, 0x2000, CRC(b265276e) SHA1(8fc0b7a0c12549b4138c51eb91b74f13282909dd))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( coralr2 )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("1vxfc5472.u87", 0x06000, 0x2000, CRC(f51e541b) SHA1(00f5b9019cdae77d4b5745156b92343d22ad3a6e))
- ROM_LOAD("1vxfc5472.u86", 0x08000, 0x8000, CRC(d8d27f65) SHA1(19aec2a29e9d3ecbd8ecfd74ae60cfbf197d2faa))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh385.u20", 0x00000, 0x2000, CRC(5156f5ec) SHA1(8b4d0699b4477531d513e21f549fcc0ee6ea82ee))
- ROM_LOAD("1vlsh385.u21", 0x02000, 0x2000, CRC(bf27732a) SHA1(9383dfc37c5c3ad0d628f2134f010e977e25ef39))
- ROM_LOAD("1vlsh385.u22", 0x04000, 0x2000, CRC(a563c2fa) SHA1(10dab35515e2d8332d114a5f103343403334a65f))
- ROM_LOAD("1vlsh385.u45", 0x06000, 0x2000, CRC(73814767) SHA1(91c77d7b634bd8a5c32e0ceeb54a8bbeedfe8130))
- ROM_LOAD("1vlsh385.u46", 0x08000, 0x2000, CRC(e13ec0ed) SHA1(80d5ef2d980a8fe1f2bb28b512022518ffc82de1))
- ROM_LOAD("1vlsh385.u47", 0x0a000, 0x2000, CRC(30e88bb4) SHA1(dfcd21c6fc50123dfcc0e60429948c650a6de625))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( eforest )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("12xf528902.u87", 0x06000, 0x2000, CRC(b2f79725) SHA1(66842130b49276bda91e211514af0ab074d2c283))
- ROM_LOAD("12xf528902.u86", 0x08000, 0x8000, CRC(547207f3) SHA1(aedae50abb4cffa0434abfe606a11fbbba037197))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh230.u20", 0x00000, 0x2000, CRC(00446ff1) SHA1(e37e2782669667efab07ab3cd4e2c9f87770add5))
- ROM_LOAD("1vlsh230.u21", 0x02000, 0x2000, CRC(75670af6) SHA1(c6ce3dcc9e46ebdee65220cc0e0c8b43ee786ec0))
- ROM_LOAD("1vlsh230.u22", 0x04000, 0x2000, CRC(531378f3) SHA1(7ce52ccfb38c8078eeb77e43cff8e426bd8d4d0f))
- ROM_LOAD("1vlsh230.u45", 0x06000, 0x2000, CRC(e4dd4c72) SHA1(caeb1f754bcb7304b9a61786fb818eea7714808f))
- ROM_LOAD("1vlsh230.u46", 0x08000, 0x2000, CRC(75ad8e3f) SHA1(87812850f08f8ad3057d0e5a2a20ad8acba01a26))
- ROM_LOAD("1vlsh230.u47", 0x0a000, 0x2000, CRC(af9f9869) SHA1(1dac81470889a5fc5b58f3ad0c8dfa1369a800e8))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( eforesta )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("4vxfc818.u87", 0x06000, 0x2000, CRC(03c2890f) SHA1(10d479b7ccece813676ad815a96169bbf259c49d))
- ROM_LOAD("4vxfc818.u86", 0x08000, 0x8000, CRC(36125194) SHA1(dc681dc60b25893ca3ee101f6813c22b914771f5))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh230.u20", 0x00000, 0x2000, CRC(00446ff1) SHA1(e37e2782669667efab07ab3cd4e2c9f87770add5))
- ROM_LOAD("1vlsh230.u21", 0x02000, 0x2000, CRC(75670af6) SHA1(c6ce3dcc9e46ebdee65220cc0e0c8b43ee786ec0))
- ROM_LOAD("1vlsh230.u22", 0x04000, 0x2000, CRC(531378f3) SHA1(7ce52ccfb38c8078eeb77e43cff8e426bd8d4d0f))
- ROM_LOAD("1vlsh230.u45", 0x06000, 0x2000, CRC(e4dd4c72) SHA1(caeb1f754bcb7304b9a61786fb818eea7714808f))
- ROM_LOAD("1vlsh230.u46", 0x08000, 0x2000, CRC(75ad8e3f) SHA1(87812850f08f8ad3057d0e5a2a20ad8acba01a26))
- ROM_LOAD("1vlsh230.u47", 0x0a000, 0x2000, CRC(af9f9869) SHA1(1dac81470889a5fc5b58f3ad0c8dfa1369a800e8))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( eforestb )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("3vxfc5343.u87", 0x06000, 0x2000, CRC(49b9c5ef) SHA1(bd1761f41ddb3f19b6b923de77743a2b5ec078e1))
- ROM_LOAD("3vxfc5343.u86", 0x08000, 0x8000, CRC(a3eb0c09) SHA1(5a0947f2f36a87dffe4041fbaebaabb1c694bafe))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh230_a.u20", 0x00000, 0x2000, CRC(bf3a23b0) SHA1(00405e0c0ac03ecffba1077bacf61265cca72130)) // alternate graphics EPROMs, same part number
- ROM_LOAD("1vlsh230_a.u21", 0x02000, 0x2000, CRC(ba171964) SHA1(7d43559965f467f07419f77d07d7d34ae60d2e90))
- ROM_LOAD("1vlsh230.u22", 0x04000, 0x2000, CRC(531378f3) SHA1(7ce52ccfb38c8078eeb77e43cff8e426bd8d4d0f))
- ROM_LOAD("1vlsh230.u45", 0x06000, 0x2000, CRC(e4dd4c72) SHA1(caeb1f754bcb7304b9a61786fb818eea7714808f))
- ROM_LOAD("1vlsh230_a.u46", 0x08000, 0x2000, CRC(a3ca69b0) SHA1(c4bdd8afbb4d076f07d4a14a7e7ac8907a0cb7ec))
- ROM_LOAD("1vlsh230.u47", 0x0a000, 0x2000, CRC(af9f9869) SHA1(1dac81470889a5fc5b58f3ad0c8dfa1369a800e8))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( goldenc )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("1vxfc5462.u87", 0x06000, 0x2000, CRC(11b569f7) SHA1(270e1be6bf2a75400af174ceb65436bb6a381a62))
- ROM_LOAD("1vxfc5462.u86", 0x08000, 0x8000, CRC(9714b080) SHA1(41c7d840f600ddff31794ebe949f89c89bd4f2ad))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh231.u20", 0x00000, 0x2000, CRC(d4b18412) SHA1(a42a06dbfc55730b27b3857646bfa34ae0e3cb32))
- ROM_LOAD("1vlsh231.u21", 0x02000, 0x2000, CRC(80e22d51) SHA1(5e187070d300209e31f603aa561011e17d4305d2))
- ROM_LOAD("1vlsh231.u22", 0x04000, 0x2000, CRC(1f84ed74) SHA1(df2af247972d6540fd4aac31b51f3aa44248061c))
- ROM_LOAD("1vlsh231.u45", 0x06000, 0x2000, CRC(9d267ef1) SHA1(3781e63552036dc7613b21704a4456ddfb67433f))
- ROM_LOAD("1vlsh231.u46", 0x08000, 0x2000, CRC(a3ca369e) SHA1(e3076c9f3017991b93214bebf7f5227d995eeda1))
- ROM_LOAD("1vlsh231.u47", 0x0a000, 0x2000, CRC(844fa43b) SHA1(b8ef6cc2aca955f41b15cd8e3c281eee4b611e80))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( swtht2nz )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("1vxfc5461.u87", 0x06000, 0x2000, CRC(ae10c63f) SHA1(80e5aca4dec7d2503bf7be81ed8b761ebbe4c174))
- ROM_LOAD("1vxfc5461.u86", 0x08000, 0x8000, CRC(053e71f0) SHA1(4a45bd11b53347be90402cea7bd94a648d6b8129))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", ROMREGION_ERASEFF)
- ROM_LOAD("1vlsh237.u20", 0x00000, 0x2000, CRC(1e38dfc3) SHA1(40a75fc35ebd49ea9c21cb42c30a2aba988c3139))
- ROM_LOAD("1vlsh237.u21", 0x02000, 0x2000, CRC(77caf3fa) SHA1(559898ccffffd8f59c555722dea75600c823997f))
- ROM_LOAD("1vlsh237.u22", 0x04000, 0x2000, CRC(76babc55) SHA1(0902497ad2222490a690fe77feacc350d2997403))
- ROM_LOAD("1vlsh237.u45", 0x06000, 0x2000, CRC(da9514b5) SHA1(d63562095cec463864dfd2c580aa93f45adef853))
- ROM_LOAD("1vlsh237.u46", 0x08000, 0x2000, CRC(4d03c73f) SHA1(7ae629a90feb87019cc01ecef804c5ba28861f00))
- ROM_LOAD("1vlsh237.u47", 0x0a000, 0x2000, CRC(c51e37bb) SHA1(8f3d9b61926fe21089559736b3458fe3b84618f2))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( kgbird )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("4vxfc5341.u87", 0x06000, 0x2000, CRC(5e7c1762) SHA1(2e80be06c7737aca304d46f3c3f1efd24c570cfd))
- ROM_LOAD("4vxfc5341.u86", 0x08000, 0x8000, CRC(3450c544) SHA1(f8883ce3b4bd9073ec6bc985f4666b46f17de092))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh159.u20", 0x00000, 0x2000, CRC(df737d57) SHA1(2ec7efe55938ee11376d12d51516c4094ad3fc01))
- ROM_LOAD("1vlsh159.u21", 0x02000, 0x2000, CRC(8e9a65d9) SHA1(e305b8d75b9666377498abf3e2801033effb969b))
- ROM_LOAD("1vlsh159.u22", 0x04000, 0x2000, CRC(5614ee55) SHA1(3eb3872aa8d2b8c2bd798fd46cc715c64bf35714))
- ROM_LOAD("1vlsh159.u45", 0x06000, 0x2000, CRC(cf496cf2) SHA1(cf097835b5f3d5a656ff84063c54d6b1d40703cd))
- ROM_LOAD("1vlsh159.u46", 0x08000, 0x2000, CRC(e155c8d4) SHA1(9c50152dd420d545a88eaea98c2dd2ef49cf056a))
- ROM_LOAD("1vlsh159.u47", 0x0a000, 0x2000, CRC(f91b66ba) SHA1(4f5d0f0562c6a6029ad6d76507091a159983d6f4))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm29.u71", 0x0000, 0x0200, CRC(ef25f5cc) SHA1(51d12f4b8b8712cbd18ec97ec04e1340cd85fc67))
-ROM_END
-
-ROM_START( kgbirda )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("4vxfc5341_10c.u87", 0x06000, 0x2000, CRC(21c05874) SHA1(9ddcd34817bc6f88cb2a94374e492d29dd56fb9a))
- ROM_LOAD("4vxfc5341.u86", 0x08000, 0x8000, CRC(3450c544) SHA1(f8883ce3b4bd9073ec6bc985f4666b46f17de092))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh159.u20", 0x00000, 0x2000, CRC(df737d57) SHA1(2ec7efe55938ee11376d12d51516c4094ad3fc01))
- ROM_LOAD("1vlsh159.u21", 0x02000, 0x2000, CRC(8e9a65d9) SHA1(e305b8d75b9666377498abf3e2801033effb969b))
- ROM_LOAD("1vlsh159.u22", 0x04000, 0x2000, CRC(5614ee55) SHA1(3eb3872aa8d2b8c2bd798fd46cc715c64bf35714))
- ROM_LOAD("1vlsh159.u45", 0x06000, 0x2000, CRC(cf496cf2) SHA1(cf097835b5f3d5a656ff84063c54d6b1d40703cd))
- ROM_LOAD("1vlsh159.u46", 0x08000, 0x2000, CRC(e155c8d4) SHA1(9c50152dd420d545a88eaea98c2dd2ef49cf056a))
- ROM_LOAD("1vlsh159.u47", 0x0a000, 0x2000, CRC(f91b66ba) SHA1(4f5d0f0562c6a6029ad6d76507091a159983d6f4))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm29.u71", 0x0000, 0x0200, CRC(ef25f5cc) SHA1(51d12f4b8b8712cbd18ec97ec04e1340cd85fc67))
-ROM_END
-
-ROM_START( phantomp )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("4vxfc5431.u87", 0x06000, 0x2000, CRC(84e8eeb5) SHA1(95dcbae79b42463480fb3dd2594570070ba1a3ef))
- ROM_LOAD("4vxfc5431.u86", 0x08000, 0x8000, CRC(a6aa3d6f) SHA1(64d97c52355d5d0faebe1ee704f6ad46cc90f0f1))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh266.u20", 0x00000, 0x2000, CRC(0f73cf57) SHA1(f99aa9671297d8cefeff86e642af5ea3e7f6f6fb))
- ROM_LOAD("1vlsh266.u21", 0x02000, 0x2000, CRC(2449d69e) SHA1(181d7d093dce1acc332255cab5d56a9043bcab47))
- ROM_LOAD("1vlsh266.u22", 0x04000, 0x2000, CRC(5cb0f179) SHA1(041f7baa5a36f544a98832753ff54ca5238f12c5))
- ROM_LOAD("1vlsh266.u45", 0x06000, 0x2000, CRC(75f94143) SHA1(aac2b0bee1a0d83b25c6fd21f00803209b621543))
- ROM_LOAD("1vlsh266.u46", 0x08000, 0x2000, CRC(6ead5ffc) SHA1(1611d5e2dd5ea06525b6079577a45e713a8065d5))
- ROM_LOAD("1vlsh266.u47", 0x0a000, 0x2000, CRC(c1fb4f23) SHA1(6c9a4e52bd0312c9b49f91a1f563fecd87e5bb82))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( topgear )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("4vxfc969.u87", 0x06000, 0x2000, CRC(5628f477) SHA1(8517905b4d4174fea79e2e3ed38c80fcc6506c6a))
- ROM_LOAD("4vxfc969.u86", 0x08000, 0x8000, CRC(d5afa54e) SHA1(4268c0ddb9beab68348ba520d47bea64b875d8a7))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh154.u20", 0x00000, 0x2000, CRC(e3163956) SHA1(b3b55be33fad96858dc683860d72c81ed02b3d97))
- ROM_LOAD("1vlsh154.u21", 0x02000, 0x2000, CRC(9ce936cb) SHA1(cca6ec0190a61cb0b52fbe1b11fb678f5e0960df))
- ROM_LOAD("1vlsh154.u22", 0x04000, 0x2000, CRC(972f091a) SHA1(b94a04e9503fb6f1a687c854076cfc9629ed7b6a))
- ROM_LOAD("1vlsh154.u45", 0x06000, 0x2000, CRC(27fd4204) SHA1(0d082a4297a384c992188dd43be0ecb706117c13))
- ROM_LOAD("1vlsh154.u46", 0x08000, 0x2000, CRC(186f3e3b) SHA1(57f82a79a3d24090f33f5525207d6697e954cdf5))
- ROM_LOAD("1vlsh154.u47", 0x0a000, 0x2000, CRC(dc7d2dab) SHA1(16d223f28b377fafb478d6124fc0eb6d7dd7d591))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm33.u71", 0x0000, 0x0200, BAD_DUMP CRC(ef25f5cc) SHA1(51d12f4b8b8712cbd18ec97ec04e1340cd85fc67)) // Using kgbird's 1CM29 PROM until topgear's 2CM33 PROM is dumped
-ROM_END
-
-ROM_START( wtigernz )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("3vxfc5342.u87", 0x06000, 0x2000, CRC(9492b242) SHA1(26bb14cba8e8c3cdbcb4b4903da9592b0a1f8cb3))
- ROM_LOAD("3vxfc5342.u86", 0x08000, 0x8000, CRC(f639ef56) SHA1(5d49deee95df29cd4f5c69fea01bb752aaf2ce99))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh157.u20", 0x00000, 0x2000, BAD_DUMP CRC(08624625) SHA1(3c052220b171f8ef009484f0ea38074b538f542b))
- ROM_LOAD("1vlsh157.u21", 0x02000, 0x2000, BAD_DUMP CRC(4bce2fa1) SHA1(8c25cd51ea61a4a9ff1238d1617e38b2cd298c53))
- ROM_LOAD("1vlsh157.u22", 0x04000, 0x2000, BAD_DUMP CRC(da141f20) SHA1(e0ebeeff2e085a30032d29748f5aa6116428aaa8))
- ROM_LOAD("1vlsh157.u45", 0x06000, 0x2000, BAD_DUMP CRC(13783f87) SHA1(662f6afdd027c3d139d7dfcd45a4a2a5a2bf2101))
- ROM_LOAD("1vlsh157.u46", 0x08000, 0x2000, BAD_DUMP CRC(7dfd06ec) SHA1(51fbc3d24e270edb8de432a99ca28695e42e72a6))
- ROM_LOAD("1vlsh157.u47", 0x0a000, 0x2000, BAD_DUMP CRC(177a45ea) SHA1(6b044f88c79de571a007fb71ff2f99587babe474))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( ffortune )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("1vxfc5460.u87", 0x06000, 0x2000, CRC(45047c35) SHA1(4af572a23bca33a360c4711f24fb113167f90447))
- ROM_LOAD("1vxfc5460.u86", 0x08000, 0x8000, CRC(9a8b0eae) SHA1(ffd0419566c2352e3d750040405a760bd75c87d5))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh228.u20", 0x00000, 0x2000, CRC(f8bad3c2) SHA1(c3cffeaa34c9c7e8127f69cd1dcbc9d56bd32ed9))
- ROM_LOAD("1vlsh228.u21", 0x02000, 0x2000, CRC(7caba194) SHA1(b0f3f4464ba6a89b572c257b87939457d4f0b2d4))
- ROM_LOAD("1vlsh228.u22", 0x04000, 0x2000, CRC(195967f0) SHA1(f76ba3c4e8b12d480ab1e4c1147bd7971ce8d688))
- ROM_LOAD("1vlsh228.u45", 0x06000, 0x2000, CRC(dc44c3ab) SHA1(74f6230798832f321f7c53c161eac6c552689113))
- ROM_LOAD("1vlsh228.u46", 0x08000, 0x2000, CRC(b0a04c83) SHA1(57247867db6417c525c4c3cdcc409523037e00fd))
- ROM_LOAD("1vlsh228.u47", 0x0a000, 0x2000, CRC(cd24ee39) SHA1(12798e14f7f6308e130da824ffc7c577a36cef04))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm48.u71", 0x0000, 0x0200, CRC(81daeeb0) SHA1(7dfe198c6def5c4ae4ecac488d65c2911fb3a890))
-ROM_END
-
-ROM_START( autmoon )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("1vxfc5488.u87", 0x06000, 0x2000, CRC(30ca1eed) SHA1(540635a8b94c14aefa1d8404226d9e1046776111))
- ROM_LOAD("1vxfc5488.u86", 0x08000, 0x8000, CRC(8153a60b) SHA1(54b8a0467645161d827bf8cb9fbceb0d00f9639f))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vxfc5488.u20", 0x00000, 0x2000, CRC(fcbbc62e) SHA1(794a7d974e67183468a77a6a81a6f05e0569e229)) // unknown EPROM names, should contain VLSH or VL/SH letters on sticker
- ROM_LOAD("1vxfc5488.u21", 0x02000, 0x2000, CRC(9e6f940e) SHA1(1ad9e7c6231a8d16e868a79d313efccbd1ff58ee))
- ROM_LOAD("1vxfc5488.u22", 0x04000, 0x2000, CRC(1a2ff3a9) SHA1(bddfc3eedcdf9237a31a4b42d062e986beafed39))
- ROM_LOAD("1vxfc5488.u45", 0x06000, 0x2000, CRC(c8d29af8) SHA1(e35f67d6708b26c93617c967aa50c629f7019788))
- ROM_LOAD("1vxfc5488.u46", 0x08000, 0x2000, CRC(fa126a77) SHA1(31d6096c58653a45176b6373835f83c8f2c46f80))
- ROM_LOAD("1vxfc5488.u47", 0x0a000, 0x2000, CRC(50307da0) SHA1(6418a51cf915b37fa11f47d000e4229dacf95951))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm34.u71", 0x0000, 0x0200, CRC(75814247) SHA1(9d123dadba3b5a1fd1c7f0100b255c4dd4f7e04f))
-ROM_END
-
-ROM_START( gtroppo ) // MK2.5
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("3vas003.u7", 0x06000, 0x2000, CRC(fe7d0ea4) SHA1(3f3f4809534065c33eca2cfff0d1d2a3e3992406))
-
- /* GAME EPROMs */
- ROM_LOAD("1vxec542.u9", 0x08000, 0x8000, CRC(09654256) SHA1(234cb74cac92a715f8913b740e69afa57b9b39e8))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("gtroppo.u8", 0x00000, 0x2000, CRC(28ccc30d) SHA1(30f8c44c0b830c81734f515724ba02bb253a956b)) // unknown EPROM names, should contain VLSH or VL/SH letters on sticker
- ROM_LOAD("gtroppo.u10", 0x02000, 0x2000, CRC(fe3cb62a) SHA1(e7e879520b02b50fc0ff8b2c63ae16605cd61f9b)) // reverted to romname.location for now
- ROM_LOAD("gtroppo.u12", 0x04000, 0x2000, CRC(62208b7f) SHA1(c36e6c8ffd05a429251ff39853c0981ec6688a91)) // to avoid duplicate names (there are two U9s as the MK2.5 has graphics ROMs on a separate PCB)
- ROM_LOAD("gtroppo.u9", 0x06000, 0x2000, CRC(79ab593b) SHA1(87408022093542f10890fca027a097cd15dd8039))
- ROM_LOAD("gtroppo.u11", 0x08000, 0x2000, CRC(87ed6fab) SHA1(72428b66d6186dea3bd1f9cfe215341e6b29b3c2))
- ROM_LOAD("gtroppo.u13", 0x0a000, 0x2000, CRC(673a129d) SHA1(cb1ae12e43993bfe399595a8778888eb5a264ec1))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("gtroppo.u40", 0x0000, 0x0200, CRC(918cb0ab) SHA1(2ec37abae2ecae2f0f525daf6fafd03789fca20b))
-ROM_END
-
-ROM_START( clkwise ) // MK2.5
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("3vas003.u7", 0x06000, 0x2000, CRC(fe7d0ea4) SHA1(3f3f4809534065c33eca2cfff0d1d2a3e3992406))
-
- /* GAME EPROMs */
- ROM_LOAD("clkwise.u9", 0x08000, 0x8000, NO_DUMP) // dead on arrival or blank chip (0xFFFFFFFF throughout ROM)
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlsh101.u8", 0x00000, 0x2000, CRC(424c1e0e) SHA1(168baaa92dd08b58738b491c24b2534d30b770e9))
- ROM_LOAD("1vlsh101.u10", 0x02000, 0x2000, CRC(64792c3a) SHA1(15aa1463c93ed45ca227766e639ff643f1c23f33))
- ROM_LOAD("1vlsh101.u12", 0x04000, 0x2000, CRC(a31bd619) SHA1(60296cf1fa35337076809e827375166340917f01))
- ROM_LOAD("1vlsh101.u9", 0x06000, 0x2000, CRC(59348a2a) SHA1(84c99db54bd75cf9414f306959e7b2c3d7bf9715))
- ROM_LOAD("1vlsh101.u11", 0x08000, 0x2000, CRC(362867bb) SHA1(aba3a74b3bf2a96d8bda4deacada56c5d531bcb4))
- ROM_LOAD("1vlsh101.u13", 0x0a000, 0x2000, CRC(649fbc77) SHA1(22bd81b39279dc393bd791e2e1a2999215581e2b))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm18.u40", 0x0000, 0x0200, BAD_DUMP CRC(918cb0ab) SHA1(2ec37abae2ecae2f0f525daf6fafd03789fca20b)) // Using gtroppo's PROM until clkwise's 2CM18 PROM is dumped
-ROM_END
-
-ROM_START( cgold ) // MK2.5
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("3vas003.u7", 0x06000, 0x2000, CRC(fe7d0ea4) SHA1(3f3f4809534065c33eca2cfff0d1d2a3e3992406)) // 3VA/S003/MEM.or 7 Video Sound CARNAVAL
- /* This chip was physically broken in half on arrival, the sticker was the only thing holding it together; luckily this chip is already dumped */
-
- /* GAME EPROMs */
- ROM_LOAD("3vxec449.u9", 0x08000, 0x8000, CRC(e6643751) SHA1(6eb89fea85bea162fd74888d9efc227cfde25e59)) // original label missing, blank label across EPROM window
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("3vlsh076.u8", 0x00000, 0x2000, CRC(b1eedcd4) SHA1(dcde9cf16da5f361361be45ba134dda084a416fa)) // C-GOLD BLU-L 3VL/SH076/8 C313/D33E GLI-1/95
- ROM_LOAD("3vlsh076.u10", 0x02000, 0x2000, CRC(c1b84d5f) SHA1(898fc03903ec87bf0dc965fa3e90472238df2a98)) // C-GOLD GRN-L 3VL/SH076/10 7691/642B
- ROM_LOAD("3vlsh076.u12", 0x04000, 0x2000, CRC(ec08e24b) SHA1(9dce6952e92c8d10a1722ec0a394b93be6bc7cea)) // C-GOLD RED-L 3VL/SH076/12 UA95/674F
- ROM_LOAD("3vlsh076.u9", 0x06000, 0x2000, CRC(10eff444) SHA1(4658b346add14010efa797ad9d31b6673e8e2526)) // C-GOLD BLU-M 3VL/SH076/9 C41A/C9B3
- ROM_LOAD("3vlsh076.u11", 0x08000, 0x2000, CRC(db156395) SHA1(39439a9610dda608af0a8277728d1fa28f3733bd)) // C-GOLD GRN-M 3VL/SH076/11 348P/3509
- ROM_LOAD("3vlsh076.u13", 0x0a000, 0x2000, CRC(f3cb845a) SHA1(288f7fe991bb60194a9ef9e8c9b2b18ebbd3b49c)) // C-GOLD RED-M 3VL/SH076/13 1CA1/2BB3
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm12.u40", 0x0000, 0x0200, BAD_DUMP CRC(918cb0ab) SHA1(2ec37abae2ecae2f0f525daf6fafd03789fca20b)) // Using gtroppo's PROM until cgold's 1CM12 PROM is dumped; EPROM reader couldn't identify chip
- // 1CM12/40 MV2033*CGOLD/TISLE 943D-GLI 8/93 */
-ROM_END
-
-ROM_START( cgold2 )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe)) // unverified, was missing from original dump
-
- /* GAME EPROMs */
- ROM_LOAD("3xf5182h04.u87", 0x06000, 0x2000, CRC(070a02b2) SHA1(872621275e51c5dca371861a9b9f3038f0dbc8aa))
- ROM_LOAD("3xf5182h04.u86", 0x08000, 0x8000, CRC(5ac1d424) SHA1(42bb8b5eb163a04054621bbcba5cf8203a661baf))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("3vlsh076.u20", 0x00000, 0x2000, BAD_DUMP CRC(b1eedcd4) SHA1(dcde9cf16da5f361361be45ba134dda084a416fa)) // using cgold ROM for now
- ROM_LOAD("3vlsh076_a.u21", 0x02000, 0x2000, CRC(8bf50f7c) SHA1(17705de695d43fa4fa6f1e7afc5c19ecf6f75e35))
- ROM_LOAD("3vlsh076.u22", 0x04000, 0x2000, CRC(ec08e24b) SHA1(9dce6952e92c8d10a1722ec0a394b93be6bc7cea)) // matches cgold
- ROM_LOAD("3vlsh076.u45", 0x06000, 0x2000, BAD_DUMP CRC(10eff444) SHA1(4658b346add14010efa797ad9d31b6673e8e2526)) // using cgold ROM for now
- ROM_LOAD("3vlsh076_a.u46", 0x08000, 0x2000, CRC(9580c2c2) SHA1(8a010fb9e349c066e1af53ed9aa659dbf7dbf17e))
- ROM_LOAD("3vlsh076.u47", 0x0a000, 0x2000, CRC(f3cb845a) SHA1(288f7fe991bb60194a9ef9e8c9b2b18ebbd3b49c)) // matches cgold
-
- // Note: cgold tiles are not a perfect match, cgold2 needs dollar and cent signs in tiles 0x64 and 0x65 respectively, which cgold does not have. This causes a garbled graphics in the denomination.
- // Tiles 0x27F and 0x280 are cent and dollar signs, but these are unused by the game.
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm12.u71", 0x0000, 0x0200, BAD_DUMP CRC(918cb0ab) SHA1(2ec37abae2ecae2f0f525daf6fafd03789fca20b)) // Using gtroppo's PROM for now, assuming both games use 1CM12 as they are almost identical
-ROM_END
-
-ROM_START( fhunter )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("2xf5196i01.u87", 0x06000, 0x2000, CRC(f9e6b760) SHA1(af7f16727e84ba8f07400f7f02302862e02d1af4))
- ROM_LOAD("2xf5196i01.u86", 0x08000, 0x8000, CRC(6971ccee) SHA1(1292cfa8125cbaec3bcd9d136cb385a3574bfa4a))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("2xf5196.u20", 0x00000, 0x2000, CRC(96c81134) SHA1(e5e75e8b4897ee7cd9c27b0546fe4006cf384cba)) // unknown EPROM names, should contain VLSH or VL/SH letters on sticker
- ROM_LOAD("2xf5196.u21", 0x02000, 0x2000, CRC(ad7bc6a0) SHA1(145e9a094212841e8a684136ea813bd1bea070fb))
- ROM_LOAD("2xf5196.u22", 0x04000, 0x2000, CRC(450d47bb) SHA1(219a0eeca3989da8cec68405466c9a20f2ee9bfa))
- ROM_LOAD("2xf5196.u45", 0x06000, 0x2000, CRC(560b2417) SHA1(1ed26ceaff87150d2f0115825f952348e34e0414))
- ROM_LOAD("2xf5196.u46", 0x08000, 0x2000, CRC(7704c13f) SHA1(4cfca6ee9e2e543714e8bf0c6de4d9e9406ce250))
- ROM_LOAD("2xf5196.u47", 0x0a000, 0x2000, CRC(a9e6da98) SHA1(3b7d8920d3ef4ae17a55d2e1968318eb3c70264d))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm48.u71", 0x0000, 0x0200, CRC(81daeeb0) SHA1(7dfe198c6def5c4ae4ecac488d65c2911fb3a890))
-ROM_END
-
-ROM_START( fhuntera )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("2xf5196i02.u87", 0x06000, 0x2000, CRC(4b532a14) SHA1(98d1753ad1d0d041f81a535947ed501d0eb1d85c))
- ROM_LOAD("2xf5196i01.u86", 0x08000, 0x8000, CRC(6971ccee) SHA1(1292cfa8125cbaec3bcd9d136cb385a3574bfa4a))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("2xf5196.u20", 0x00000, 0x2000, CRC(96c81134) SHA1(e5e75e8b4897ee7cd9c27b0546fe4006cf384cba)) // unknown EPROM names, should contain VLSH or VL/SH letters on sticker
- ROM_LOAD("2xf5196.u21", 0x02000, 0x2000, CRC(ad7bc6a0) SHA1(145e9a094212841e8a684136ea813bd1bea070fb))
- ROM_LOAD("2xf5196.u22", 0x04000, 0x2000, CRC(450d47bb) SHA1(219a0eeca3989da8cec68405466c9a20f2ee9bfa))
- ROM_LOAD("2xf5196.u45", 0x06000, 0x2000, CRC(560b2417) SHA1(1ed26ceaff87150d2f0115825f952348e34e0414))
- ROM_LOAD("2xf5196.u46", 0x08000, 0x2000, CRC(7704c13f) SHA1(4cfca6ee9e2e543714e8bf0c6de4d9e9406ce250))
- ROM_LOAD("2xf5196.u47", 0x0a000, 0x2000, CRC(a9e6da98) SHA1(3b7d8920d3ef4ae17a55d2e1968318eb3c70264d))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm48.u71", 0x0000, 0x0200, CRC(81daeeb0) SHA1(7dfe198c6def5c4ae4ecac488d65c2911fb3a890))
-ROM_END
-
-ROM_START( arcwins )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("2vas004.u59", 0x02000, 0x2000, CRC(84226547) SHA1(df9c2c01a7ac4d930c06a8c4863853ddb1a2adbe))
-
- /* GAME EPROMs */
- ROM_LOAD("4xf5227h03.u87", 0x06000, 0x2000, CRC(eec47dcf) SHA1(9d9d56310fc2c69c56aee961d1881328e3aa32d2))
- ROM_LOAD("4xf5227h03.u86", 0x08000, 0x8000, CRC(4e2b955a) SHA1(66202e1c7fe52f706c809d6aa8aa649b54dca4d2))
-
- /* SHAPE EPROMs */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("4xf5227.u20", 0x00000, 0x2000, CRC(f0438b40) SHA1(cead72e988e8973d95312d62ffd45cb51c982551)) // unknown EPROM names, should contain VLSH or VL/SH letters on sticker
- ROM_LOAD("4xf5227.u21", 0x02000, 0x2000, CRC(0e4c817c) SHA1(dc142d4cf5227496d1e6b82368a8fa186b6372c7))
- ROM_LOAD("4xf5227.u22", 0x04000, 0x2000, CRC(fef65b79) SHA1(38562221ff0513ab973ac96a6ff1e70f0d4e6436))
- ROM_LOAD("4xf5227.u45", 0x06000, 0x2000, CRC(bf7bf9e2) SHA1(32cc8428281f57280ba7aeb7b9a30c51b3a5bec8))
- ROM_LOAD("4xf5227.u46", 0x08000, 0x2000, CRC(c4b2ec7c) SHA1(db0bef392e83a1fb9b1d2255b36a3ec12e73ee1c))
- ROM_LOAD("4xf5227.u47", 0x0a000, 0x2000, CRC(6608d05a) SHA1(7a4014d4dbc8ec6b3dcf14df5a5149696c7ce45e))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("1cm29.u71", 0x0000, 0x0200, CRC(ef25f5cc) SHA1(51d12f4b8b8712cbd18ec97ec04e1340cd85fc67))
-ROM_END
-
-/* Fever Pitch (2VXEC534, 90.36%)
- Unhandled Mechanical meter 2 pulse: 04 --> Payout pulse.
-*/
-ROM_START( fvrpitch ) // MK2.5
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("3vas003.u7", 0x06000, 0x2000, CRC(fe7d0ea4) SHA1(3f3f4809534065c33eca2cfff0d1d2a3e3992406))
-
- /* GAME EPROMS */
- ROM_LOAD("2vxec534.u9", 0x08000, 0x8000, CRC(6f8780e8) SHA1(ebf1bfdf2ad727caa2fee34a6ae645ddba42f1cb)) // 90.36%
-
- /* SHAPE EPROMS */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("1vlbh1299.u8", 0x00000, 0x2000, CRC(8d6294d2) SHA1(819ab872a3ea99801350dd7bdf07011cbc7689e0)) // is it VLBH instead of VLSH or a typo?
- ROM_LOAD("1vlbh1299.u10", 0x02000, 0x2000, CRC(939b30af) SHA1(0253c6b1d336ad589322ee9058c1da68ac1e714a))
- ROM_LOAD("1vlbh1299.u12", 0x04000, 0x2000, CRC(81913322) SHA1(4ed8b678e38784a41c1a46809a5ecb14256b4c75))
- ROM_LOAD("1vlbh1299.u9", 0x06000, 0x2000, CRC(e0937d74) SHA1(19f567620e095b10f1d4f2a524331737bfa628b7))
- ROM_LOAD("1vlbh1299.u11", 0x08000, 0x2000, CRC(bfa3bb9e) SHA1(610de284004906af5a5b594256e7d7ec846afff2))
- ROM_LOAD("1vlbh1299.u13", 0x0a000, 0x2000, CRC(6d8fb9a6) SHA1(1d8b667eea57f5a4ce173af55f58b9bf56aaa05e))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 ) // Using kgbird's 1CM29 PROM (colors seems correct) until original PROM is dumped.
- ROM_LOAD("1cm29.u40", 0x0000, 0x0200, BAD_DUMP CRC(ef25f5cc) SHA1(51d12f4b8b8712cbd18ec97ec04e1340cd85fc67))
-ROM_END
-
-/* Video poker games */
-
-ROM_START( wildone )
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("3vas003.u59", 0x06000, 0x2000, CRC(fe7d0ea4) SHA1(3f3f4809534065c33eca2cfff0d1d2a3e3992406))
-
- /* GAME EPROMS */
- ROM_LOAD("4vxec5357.u86", 0x08000, 0x8000, CRC(ad0311b6) SHA1(182efb32556c36f2b6a0fddecc991bc3b0e21dc5))
-
- /* SHAPE EPROMS */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("8vlsh007.u20", 0x00000, 0x2000, CRC(ff776acb) SHA1(d08a42e72ee639e4303dad3045038c2634d6fba9))
- ROM_LOAD("8vlsh007.u21", 0x02000, 0x2000, CRC(a55dec6f) SHA1(ed19a6d979f6831185d6548c1f12724d3a714854))
- ROM_LOAD("8vlsh007.u22", 0x04000, 0x2000, CRC(6fba7bf3) SHA1(c94ccfb80b51bd1df3da831a7789114b12ac01af))
- ROM_LOAD("8vlsh007.u45", 0x06000, 0x2000, CRC(01c6d826) SHA1(d03dd9843e6666eb4cc90c3fae4de019a1b1611f))
- ROM_LOAD("8vlsh007.u46", 0x08000, 0x2000, CRC(a3bc50dc) SHA1(8cfa4a3415e060be89eb4727eaddb3d64d5f87cb))
- ROM_LOAD("8vlsh007.u47", 0x0a000, 0x2000, CRC(2ba003ea) SHA1(9e4dff2f5d3645ab918b3cc766ca6f5689fc517e))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm07.u71", 0x0000, 0x0200, CRC(1e3f402a) SHA1(f38da1ad6607df38add10c69febf7f5f8cd21744))
-ROM_END
-
-ROM_START( gldnpkr ) // MK2.5
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("vidsnd.u7", 0x06000, 0x2000, CRC(568bd63f) SHA1(128b0b085c8b97d1c90baeab4886c522c0bc9a0e)) // unknown EPROM name
-
- /* GAME EPROMS */
- ROM_LOAD("8vxec037.u9", 0x08000, 0x8000, CRC(a75276b1) SHA1(13950bd26c5f0a26f0dee5938eeee0c16a3119df))
-
- /* SHAPE EPROMS */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("gldnpkr.u8", 0x00000, 0x2000, CRC(9ebed6c9) SHA1(75741b2f00f6eb1830bf1c5a013fb83e0f0a97b8)) // unknown EPROM names, should contain VLSH or VL/SH letters on sticker
- ROM_LOAD("gldnpkr.u10", 0x02000, 0x2000, CRC(20b58fda) SHA1(9a3441c18f93a6d97637e1b78fd7537b174575fd))
- ROM_LOAD("gldnpkr.u12", 0x04000, 0x2000, CRC(edaa713a) SHA1(61996281ff8e29af058934ee6197bef253c706e6))
- ROM_LOAD("gldnpkr.u9", 0x06000, 0x2000, CRC(d5788ddc) SHA1(f307c179a49d23a0144dfdea69fa4e65c6821032))
- ROM_LOAD("gldnpkr.u11", 0x08000, 0x2000, CRC(e056af8c) SHA1(1ff67c5aed19219a65c1562a971e9968a7e78fad))
- ROM_LOAD("gldnpkr.u13", 0x0a000, 0x2000, CRC(d97876cd) SHA1(23f8b1632c19f2f0a6918a6e4aa987c0feda5cd4))
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 )
- ROM_LOAD("2cm07.u40", 0x0000, 0x0200, CRC(1e3f402a) SHA1(f38da1ad6607df38add10c69febf7f5f8cd21744)) // Using 2CM07 until a correct PROM is confirmed
-ROM_END
-
-/* Guns & Roses
- Unhandled Mechanical meter 2 pulse: 04
-*/
-ROM_START( gunnrose ) // MK2.5
- ROM_REGION(0x10000, "maincpu", 0 )
- /* VIDEO AND SOUND EPROM */
- ROM_LOAD("gnr.u7", 0x06000, 0x2000, CRC(fe7d0ea4) SHA1(3f3f4809534065c33eca2cfff0d1d2a3e3992406)) // 1VL/SH136 RED AND BLACK
-
- /* GAME EPROMS */
- ROM_LOAD("gnr.u9", 0x08000, 0x8000, CRC(4fb5f757) SHA1(a4129bca7e573faac0d11de41a9bf8ea144091ee)) // E/C606191SMP
-
- /* SHAPE EPROMS */
- ROM_REGION(0xc000, "tile_gfx", 0 )
- ROM_LOAD("gnr.u8", 0x00000, 0x2000, CRC(dec9e695) SHA1(a596c4243d6d39e0611ff714e19e14188c90b6f1)) // 1VL/SH136 RED AND BLACK
- ROM_LOAD("gnr.u10", 0x02000, 0x2000, CRC(e83b8e79) SHA1(595f41a5f59f938581a57b445370aa716c6b1409)) // 1VL/SH136 RED AND BLACK
- ROM_LOAD("gnr.u12", 0x04000, 0x2000, CRC(9134d029) SHA1(d698fb91d8f5fa78ffd056149421008d3f12c456)) // 1VL/SH136 RED AND BLACK
- ROM_LOAD("gnr.u9t", 0x06000, 0x2000, CRC(73a0c2cd) SHA1(662056d570eaa069483d378b77efcfb42eff6d0d)) // 1VL/SH136 RED AND BLACK
- ROM_LOAD("gnr.u11", 0x08000, 0x2000, CRC(c50adffe) SHA1(a7c4a3cdd4d5d31a1420e47859408caa75ce2636)) // 1VL/SH136 RED AND BLACK
- ROM_LOAD("gnr.u13", 0x0a000, 0x2000, CRC(e0a6bfc5) SHA1(07e4c8191503f0ea2de4f7ce18fe6290d20ef80e)) // 1VL/SH136 RED AND BLACK
-
- /* COLOR PROM */
- ROM_REGION(0x200, "proms", 0 ) /* are either of these correct? They are taken from different games */
- //ROM_LOAD("2cm07.u40", 0x0000, 0x0200, CRC(1e3f402a) SHA1(f38da1ad6607df38add10c69febf7f5f8cd21744)) // Using 2CM07 until a correct PROM is confirmed
- ROM_LOAD("1cm48.u40", 0x0000, 0x0200, BAD_DUMP CRC(81daeeb0) SHA1(7dfe198c6def5c4ae4ecac488d65c2911fb3a890))
-
-ROM_END
-
-/* 86 Lions */
-
-ROM_START( 86lions )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "lion_std.u9", 0xe000, 0x2000, CRC(994842b0) SHA1(72fc31c577ee70b07ce9a4f2e864fe113d32affe) )
-
- ROM_REGION( 0xc000, "tile_gfx", ROMREGION_ERASE00 )
- ROM_LOAD( "bl0.u8", 0x00000, 0x1000, CRC(00ef4724) SHA1(714fafd035e2befbb35c6d00df52845745e58a93) )
- ROM_LOAD( "gn0.u10", 0x02000, 0x1000, CRC(80dce6f4) SHA1(bf953eba9cb270297b0d0efffe15b926e94dfbe7) )
- ROM_LOAD( "rd1.u12", 0x04000, 0x1000, CRC(350dd017) SHA1(ba273d4231e7e4c44922898cf5a70e8b1d6e2f9d) )
- ROM_LOAD( "bl1.u9", 0x06000, 0x1000, CRC(675e164a) SHA1(99346ca70bfe673b31d71dc6b3bbc3b8f961e87f) )
- ROM_LOAD( "gn1.u11", 0x08000, 0x1000, CRC(80dce6f4) SHA1(bf953eba9cb270297b0d0efffe15b926e94dfbe7) )
- ROM_LOAD( "rd0.u13", 0x0a000, 0x1000, CRC(38c57504) SHA1(cc3ac1df644abc4586fc9f0e88531ba146b86b48) )
-
- // ROM_REGION( 0x200, "proms", 0 )
- // ROM_LOAD( "prom.x", 0x00, 0x20, NO_DUMP )
-ROM_END
-
-GAMEL( 1985, 86lions, 0, _86lions, aristmk4, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "86 Lions", MACHINE_NOT_WORKING, layout_topgear )
-GAMEL( 1996, eforest, 0, aristmk4, eforest, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Enchanted Forest (12XF528902, US)", 0, layout_eforest ) // 92.778%
-GAMEL( 1995, eforesta, eforest, aristmk4, aristmk4, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Enchanted Forest (4VXFC818, NSW)", 0, layout_aristmk4 ) // 10c, $1 = 10 credits, 90.483%
-GAMEL( 1996, eforestb, eforest, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Enchanted Forest (3VXFC5343, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits, 88.43%
-GAMEL( 1996, 3bagflvt, 0, aristmk4, 3bagflvt, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "3 Bags Full (5VXFC790, Victoria)", 0, layout_3bagflvt ) // 5c, $1 = 20 credits, 90.018%
-GAMEL( 1996, 3bagflnz, 3bagflvt, aristmk4, 3bagflnz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "3 Bags Full (3VXFC5345, New Zealand)", 0, layout_3bagflnz ) // 5c, $2 = 40 credits, 88.22%
-GAMEL( 1996, kgbird, 0, aristmk4, kgbird, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "K.G. Bird (4VXFC5341, New Zealand, 5c)", 0, layout_kgbird ) // 5c, $2 = 40 credits, 87.98%
-GAMEL( 1996, kgbirda, kgbird, aristmk4, kgbird, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "K.G. Bird (4VXFC5341, New Zealand, 10c)", 0, layout_kgbird ) // 10c, $2 = 20 credits, 91.97%
-GAMEL( 1996, blkrhino, 0, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Black Rhino (3VXFC5344, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits, 91.96%
-GAMEL( 1996, topgear, 0, aristmk4, topgear, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Top Gear (4VXFC969, New Zealand)", 0, layout_topgear ) // 10c, 10c = 1 credit, 87.471%
-GAMEL( 1996, wtigernz, 0, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "White Tiger (3VXFC5342, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits, 91.99%
-GAMEL( 1998, phantomp, 0, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Phantom Pays (4VXFC5431, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits, 91.95%
-GAMEL( 1998, ffortune, 0, aristmk4, goldenc, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Fantasy Fortune (1VXFC5460, New Zealand)", 0, layout_goldenc ) // 5c, $2 = 40 credits, 87.90%
-GAMEL( 1998, swtht2nz, 0, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Sweethearts II (1VXFC5461, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits, 87.13%
-GAMEL( 1996, goldenc, 0, aristmk4, goldenc, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Golden Canaries (1VXFC5462, New Zealand)", 0, layout_goldenc ) // 2c, $2 = 100 credits, 87.30%
-GAMEL( 1999, autmoon, 0, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Autumn Moon (1VXFC5488, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits, 87.27%
-GAMEL( 2000, coralr2, 0, aristmk4, arimk4nz, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Coral Riches II (1VXFC5472, New Zealand)", 0, layout_arimk4nz ) // 2c, $2 = 100 credits, 87.13%
-GAMEL( 1995, cgold2, 0, aristmk4, cgold2, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Caribbean Gold II (3XF5182H04, USA)", 0, layout_cgold2 ) // 92.858%
-GAMEL( 1996, fhunter, 0, aristmk4, fhunter, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Fortune Hunter (2XF5196I01, USA)", 0, layout_fhunter ) // 90.018%
-GAMEL( 1996, fhuntera, fhunter, aristmk4, fhunter, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Fortune Hunter (2XF5196I02, USA)", 0, layout_fhunter ) // 92.047%
-GAMEL( 1996, arcwins, 0, aristmk4, arcwins, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Arctic Wins (4XF5227H03, USA)", 0, layout_arcwins ) // 90.361%
-GAMEL( 1997, wildone, 0, aristmk4_poker, wildone, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Wild One (4VXEC5357, New Zealand)", 0, layout_wildone ) // 20c, $2 = 10 credits, video poker, 88.00%
-GAMEL( 1993, gunnrose, 0, aristmk4_poker, gunnrose, aristmk4_state, init_aristmk4, ROT0, "Aristocrat", "Guns and Roses (C606191SMP, NSW)", MACHINE_WRONG_COLORS, layout_gunnrose ) // 20c, $1 = 5 credits
-GAMEL( 1986, gldnpkr, 0, aristmk4_poker, gldnpkr, aristmk4_state, init_aristmk4, ROT0, "Ainsworth Nominees P.L.", "Golden Poker (8VXEC037, New Zealand)", 0, layout_gldnpkr ) // 20c, 20c = 1 credit, video poker
-GAMEL( 1986, gtroppo, 0, aristmk4, topgear, aristmk4_state, init_aristmk4, ROT0, "Ainsworth Nominees P.L.", "Gone Troppo (1VXEC542, New Zealand)", 0, layout_topgear ) // 20c, 20c = 1 credit, 87.138%
-GAMEL( 1986, clkwise, 0, aristmk4, topgear, aristmk4_state, init_aristmk4, ROT0, "Ainsworth Nominees P.L.", "Clockwise (1VXEC534, New Zealand)", MACHINE_NOT_WORKING, layout_topgear )
-GAMEL( 1986, cgold, 0, aristmk4, topgear, aristmk4_state, init_aristmk4, ROT0, "Ainsworth Nominees P.L.", "Caribbean Gold (3VXEC449, USA)", 0, layout_topgear ) // 25c, 25c = 1 credit
-GAMEL( 1986, fvrpitch, 0, aristmk4, fvrpitch, aristmk4_state, init_aristmk4, ROT0, "Ainsworth Nominees P.L.", "Fever Pitch (2VXEC534, NSW)", 0, layout_fvrpitch ) // 5c, $1 = 20 credits, 90.360%