diff options
author | RobertoFresca <robertofresca@recreativas.org> | 2021-01-20 19:27:58 +0100 |
---|---|---|
committer | RobertoFresca <robertofresca@recreativas.org> | 2021-01-20 19:27:58 +0100 |
commit | 42a36976f1770be0cc7973e9776bc21bca677325 (patch) | |
tree | 57b121e0e2950aad8257cc8aea8241713682c60f | |
parent | e669b5ef466f5f83fb3b10e61752fad467fc1582 (diff) |
Forte Card improvements: Added a default serial EEPROM after an exhaustive
reverse-engineering work of Grull Osgo. Refactored and cleaned up the sets
and driver. Added technical notes.
Clones promoted to working
--------------------------
Forte Card (Ver 103, English) [Grull Osgo, Roberto Fresca]
-rw-r--r-- | src/mame/drivers/fortecar.cpp | 205 | ||||
-rw-r--r-- | src/mame/mame.lst | 2 |
2 files changed, 99 insertions, 108 deletions
diff --git a/src/mame/drivers/fortecar.cpp b/src/mame/drivers/fortecar.cpp index e37bea077cc..f105c2109d2 100644 --- a/src/mame/drivers/fortecar.cpp +++ b/src/mame/drivers/fortecar.cpp @@ -6,17 +6,27 @@ 1994, Fortex Ltd. Driver by Angelo Salese. - Additional work by Roberto Fresca & Rob Ragon. + Additional work by Roberto Fresca. + + + Supported sets: + + * Forte Card (Ver 110, Spanish), 1994, Fortex Ltd. + * Forte Card (Ver 103, English), 1994, Fortex Ltd. + + + Special thanks to Grull Osgo for his exhaustive reverse engineering that allowed to recreate + the original default serial EEPROM contents for the english set, critical to get it working. + + Special thanks to Rob Ragon for dump the spanish set, and all the tests on the real hardware. + +------------------------------------------------------------------------------------------------- Notes: - NMI mask and vblank bit are made thru SW usage of the I register (that is unused if the z80 is in IM 1). - - TODO: - - fortecar requires a proper EEPROM dump, doesn't start due of it. - - fortecrd has non-default data in the default EEPROM. - + Debug notes: English set: bp 512 do pc=53e Spanish set: bp 512 do pc=562 @@ -86,6 +96,8 @@ Game Notes... + The game takes some seconds to boot, due to a lot of complex checks at begining. + NVRAM is created automatically. There are 3 keys for service modes: @@ -331,10 +343,10 @@ #define AY_CLOCK (MASTER_CLOCK/8) -class fortecar_state : public driver_device +class fortecrd_state : public driver_device { public: - fortecar_state(const machine_config &mconfig, device_type type, const char *tag) : + fortecrd_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this,"maincpu"), m_watchdog(*this, "watchdog"), @@ -345,9 +357,7 @@ public: m_lamps(*this, "lamp%u", 0U) { } - void fortecar(machine_config &config); - - void init_fortecar(); + void fortecrd(machine_config &config); protected: virtual void machine_start() override; @@ -367,11 +377,11 @@ private: void ayporta_w(uint8_t data); void ayportb_w(uint8_t data); - void fortecar_palette(palette_device &palette) const; + void fortecrd_palette(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void fortecar_map(address_map &map); - void fortecar_ports(address_map &map); + void fortecrd_map(address_map &map); + void fortecrd_ports(address_map &map); }; @@ -379,12 +389,12 @@ private: * Video Hardware * ***********************************/ -void fortecar_state::machine_start() +void fortecrd_state::machine_start() { m_lamps.resolve(); } -uint32_t fortecar_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t fortecrd_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int count = 0; @@ -408,7 +418,7 @@ uint32_t fortecar_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm return 0; } -void fortecar_state::fortecar_palette(palette_device &palette) const +void fortecrd_state::fortecrd_palette(palette_device &palette) const { /* Video resistors... @@ -463,7 +473,7 @@ R = 82 Ohms Pull Down. * Misc R/W Handlers * ***********************************/ -void fortecar_state::ppi0_portc_w(uint8_t data) +void fortecrd_state::ppi0_portc_w(uint8_t data) { /* NM93CS56N Serial EEPROM @@ -478,13 +488,13 @@ DOUT PPI_PC4 m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); } -uint8_t fortecar_state::ppi0_portc_r() +uint8_t fortecrd_state::ppi0_portc_r() { // popmessage("%s",machine().describe_context()); return ((m_eeprom->do_read() << 4) & 0x10); } -void fortecar_state::ayporta_w(uint8_t data) +void fortecrd_state::ayporta_w(uint8_t data) { /* System Lamps... @@ -514,7 +524,7 @@ void fortecar_state::ayporta_w(uint8_t data) } -void fortecar_state::ayportb_w(uint8_t data) +void fortecrd_state::ayportb_w(uint8_t data) { /* @@ -529,12 +539,10 @@ trigger a reset. Seems to work properly, but must be checked closely... */ - if (((data >> 7) & 0x01) == 0) /* check for bit7 */ + if (((data >> 7) & 0x01) == 0) // check for bit7 { m_watchdog->watchdog_reset(); } - -// logerror("AY port B write %02x\n",data); } @@ -542,22 +550,21 @@ Seems to work properly, but must be checked closely... * Memory Map Information * ***********************************/ -void fortecar_state::fortecar_map(address_map &map) +void fortecrd_state::fortecrd_map(address_map &map) { - map(0x0000, 0xbfff).rom(); - map(0xc000, 0xc7ff).rom(); + map(0x0000, 0xc7ff).rom(); map(0xd000, 0xd7ff).ram().share("nvram"); map(0xd800, 0xffff).ram().share("vram"); } -void fortecar_state::fortecar_ports(address_map &map) +void fortecrd_state::fortecrd_ports(address_map &map) { map.global_mask(0xff); map(0x20, 0x20).w("crtc", FUNC(mc6845_device::address_w)); // pc=444 map(0x21, 0x21).w("crtc", FUNC(mc6845_device::register_w)); map(0x40, 0x40).r("aysnd", FUNC(ay8910_device::data_r)); map(0x40, 0x41).w("aysnd", FUNC(ay8910_device::address_data_w)); - map(0x60, 0x63).rw("fcppi0", FUNC(i8255_device::read), FUNC(i8255_device::write));//M5L8255AP + map(0x60, 0x63).rw("fcppi0", FUNC(i8255_device::read), FUNC(i8255_device::write)); // M5L8255AP // map(0x80, 0x81) //8251A UART map(0xa0, 0xa0).rw("rtc", FUNC(v3021_device::read), FUNC(v3021_device::write)); map(0xa1, 0xa1).portr("DSW"); @@ -572,6 +579,7 @@ Error messages: "FALSA PRUEBA NVR" (NVRAM new, no serial EEPROM connected) "FALLO EN NVR" (NVRAM ok, no serial EEPROM connected) "FALSA PRUEBA NVRAM PERMANENTE" (NVRAM new, serial EEPROM connected) +"FALSA PRUEBA BOTONES" (Input ports error ) */ @@ -580,8 +588,28 @@ Error messages: * Input Ports * ***********************************/ -static INPUT_PORTS_START( fortecar ) - PORT_START("DSW") /* 8bit */ +static INPUT_PORTS_START( fortecrd ) + PORT_START("INPUT") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Red / Bet") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Black") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) + + PORT_START("SYSTEM") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Rear Door") PORT_CODE(KEYCODE_D) PORT_TOGGLE + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Payout") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin In") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // to trace + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Note In") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Credits Key") PORT_CODE(KEYCODE_Q) PORT_TOGGLE + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Owner Key") PORT_CODE(KEYCODE_0) PORT_TOGGLE + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Rental Key") PORT_CODE(KEYCODE_9) PORT_TOGGLE + + PORT_START("DSW") PORT_DIPNAME( 0x01, 0x01, "DSW-1" ) PORT_DIPLOCATION("DSW:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -606,26 +634,6 @@ static INPUT_PORTS_START( fortecar ) PORT_DIPNAME( 0x80, 0x80, "DSW-8" ) PORT_DIPLOCATION("DSW:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START("INPUT") /* 8bit */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Red / Bet") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Black") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) - - PORT_START("SYSTEM") /* 8bit */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Rear Door") PORT_CODE(KEYCODE_D) PORT_TOGGLE - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Payout") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin In") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* to trace */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Note In") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Credits Key") PORT_CODE(KEYCODE_Q) PORT_TOGGLE - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Owner Key") PORT_CODE(KEYCODE_0) PORT_TOGGLE - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Rental Key") PORT_CODE(KEYCODE_9) PORT_TOGGLE INPUT_PORTS_END @@ -660,7 +668,7 @@ static const gfx_layout tiles8x8_layout_6bpp = * Graphics Decode Information * ****************************************/ -static GFXDECODE_START( gfx_fortecar ) +static GFXDECODE_START( gfx_fortecrd ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout_3bpp, 0x000, 0x20 ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout_6bpp, 0x100, 0x04 ) GFXDECODE_END @@ -670,9 +678,9 @@ GFXDECODE_END * Machine Start & Reset * ***********************************/ -void fortecar_state::machine_reset() +void fortecrd_state::machine_reset() { - /* apparently there's a random fill in there (checked thru trojan TODO: extract proper algorithm) */ + // apparently there's a random fill in there (checked thru trojan) for (int i = 0; i < m_vram.bytes(); i++) m_vram[i] = machine().rand(); } @@ -682,41 +690,41 @@ void fortecar_state::machine_reset() * Machine Drivers * ***********************************/ -void fortecar_state::fortecar(machine_config &config) +void fortecrd_state::fortecrd(machine_config &config) { - /* basic machine hardware */ - Z80(config, m_maincpu, CPU_CLOCK); /* 3 MHz, measured */ - m_maincpu->set_addrmap(AS_PROGRAM, &fortecar_state::fortecar_map); - m_maincpu->set_addrmap(AS_IO, &fortecar_state::fortecar_ports); + // basic machine hardware + Z80(config, m_maincpu, CPU_CLOCK); // 3 MHz, measured + m_maincpu->set_addrmap(AS_PROGRAM, &fortecrd_state::fortecrd_map); + m_maincpu->set_addrmap(AS_IO, &fortecrd_state::fortecrd_ports); - WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(200)); /* guess */ + WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(200)); // guess NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - /* video hardware */ + // 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(640, 256); - screen.set_visarea(0, 600-1, 0, 240-1); /* driven by CRTC */ - screen.set_screen_update(FUNC(fortecar_state::screen_update)); + screen.set_visarea(0, 600-1, 0, 240-1); // driven by CRTC + screen.set_screen_update(FUNC(fortecrd_state::screen_update)); EEPROM_93C56_16BIT(config, "eeprom").default_value(0); i8255_device &fcppi0(I8255A(config, "fcppi0")); - /* Init with 0x9a... A, B and high C as input - Serial Eprom connected to Port C */ +// PPI init with 0x9a... A, B and high C as input. +// Serial Eprom connected to Port C. fcppi0.in_pa_callback().set_ioport("SYSTEM"); fcppi0.in_pb_callback().set_ioport("INPUT"); - fcppi0.in_pc_callback().set(FUNC(fortecar_state::ppi0_portc_r)); - fcppi0.out_pc_callback().set(FUNC(fortecar_state::ppi0_portc_w)); + fcppi0.in_pc_callback().set(FUNC(fortecrd_state::ppi0_portc_r)); + fcppi0.out_pc_callback().set(FUNC(fortecrd_state::ppi0_portc_w)); V3021(config, "rtc"); - GFXDECODE(config, m_gfxdecode, m_palette, gfx_fortecar); - PALETTE(config, m_palette, FUNC(fortecar_state::fortecar_palette), 0x200); + GFXDECODE(config, m_gfxdecode, m_palette, gfx_fortecrd); + PALETTE(config, m_palette, FUNC(fortecrd_state::fortecrd_palette), 0x200); - mc6845_device &crtc(MC6845(config, "crtc", CRTC_CLOCK)); /* 1.5 MHz, measured */ + mc6845_device &crtc(MC6845(config, "crtc", CRTC_CLOCK)); // 1.5 MHz, measured crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); @@ -724,9 +732,9 @@ void fortecar_state::fortecar(machine_config &config) SPEAKER(config, "mono").front_center(); - ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); /* 1.5 MHz, measured */ - aysnd.port_a_write_callback().set(FUNC(fortecar_state::ayporta_w)); - aysnd.port_b_write_callback().set(FUNC(fortecar_state::ayportb_w)); + ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); // 1.5 MHz, measured + aysnd.port_a_write_callback().set(FUNC(fortecrd_state::ayporta_w)); + aysnd.port_b_write_callback().set(FUNC(fortecrd_state::ayportb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); } @@ -737,58 +745,41 @@ void fortecar_state::fortecar(machine_config &config) ROM_START( fortecrd ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "forte_card.u7", 0x00000, 0x010000, CRC(79fc6dd3) SHA1(5454f2ee12b62d573b61c54e48398f43332b000e) ) + ROM_LOAD( "forte_card_sp.u7", 0x00000, 0x010000, CRC(79fc6dd3) SHA1(5454f2ee12b62d573b61c54e48398f43332b000e) ) ROM_REGION( 0x30000, "gfx1", 0 ) - ROM_LOAD( "forte_card.u38", 0x00000, 0x10000, CRC(258fb7bf) SHA1(cd75001fe40836b2dc229caddfc38f6076df7a79) ) - ROM_LOAD( "forte_card.u39", 0x10000, 0x10000, CRC(3d9c478e) SHA1(eb86115d1c36038f2c80cd116f5aeddd94036424) ) - ROM_LOAD( "forte_card.u40", 0x20000, 0x10000, CRC(9693bb83) SHA1(e3e3bc750c89a1edd1072ce3890b2ce498dec633) ) - - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ - ROM_LOAD( "fortecrd_nvram.u6", 0x0000, 0x0800, CRC(7d3e7eb5) SHA1(788fe7adc381bcc6eaefed33f5aa1081340608a0) ) + ROM_LOAD( "forte_card_sp.u38", 0x00000, 0x10000, CRC(258fb7bf) SHA1(cd75001fe40836b2dc229caddfc38f6076df7a79) ) + ROM_LOAD( "forte_card_sp.u39", 0x10000, 0x10000, CRC(3d9c478e) SHA1(eb86115d1c36038f2c80cd116f5aeddd94036424) ) + ROM_LOAD( "forte_card_sp.u40", 0x20000, 0x10000, CRC(9693bb83) SHA1(e3e3bc750c89a1edd1072ce3890b2ce498dec633) ) // identical to the english version - ROM_REGION16_BE( 0x0100, "eeprom", 0 ) /* default serial EEPROM */ - ROM_LOAD16_WORD_SWAP( "forte_card_93cs56_serial_12345678.u13", 0x0000, 0x0100, CRC(2fc5961d) SHA1(f958c8b2b4e48cc6e5a607a6751acde5592bd27f) ) + ROM_REGION16_BE( 0x0100, "eeprom", 0 ) // default serial EEPROM + ROM_LOAD16_WORD_SWAP( "forte_card_sp_93cs56_serial_12345678.u13", 0x0000, 0x0100, CRC(2fc5961d) SHA1(f958c8b2b4e48cc6e5a607a6751acde5592bd27f) ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "forte_card_82s147.u47", 0x0000, 0x0200, CRC(7e631818) SHA1(ac08b0de30260278af3a1c5dee5810d4304cb9ca) ) ROM_END -ROM_START( fortecar ) +ROM_START( fortecrde ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "fortecar.u7", 0x00000, 0x010000, CRC(2a4b3429) SHA1(8fa630dac949e758678a1a36b05b3412abe8ae16) ) + ROM_LOAD( "forte_card_en.u7", 0x00000, 0x010000, CRC(2a4b3429) SHA1(8fa630dac949e758678a1a36b05b3412abe8ae16) ) ROM_REGION( 0x30000, "gfx1", 0 ) - ROM_LOAD( "fortecar.u38", 0x00000, 0x10000, CRC(c2090690) SHA1(f0aa8935b90a2ab6043555ece69f926372246648) ) - ROM_LOAD( "fortecar.u39", 0x10000, 0x10000, CRC(fc3ddf4f) SHA1(4a95b24c4edb67f6d59f795f86dfbd12899e01b0) ) - ROM_LOAD( "fortecar.u40", 0x20000, 0x10000, CRC(9693bb83) SHA1(e3e3bc750c89a1edd1072ce3890b2ce498dec633) ) + ROM_LOAD( "forte_card_en.u38", 0x00000, 0x10000, CRC(c2090690) SHA1(f0aa8935b90a2ab6043555ece69f926372246648) ) + ROM_LOAD( "forte_card_en.u39", 0x10000, 0x10000, CRC(fc3ddf4f) SHA1(4a95b24c4edb67f6d59f795f86dfbd12899e01b0) ) + ROM_LOAD( "forte_card_en.u40", 0x20000, 0x10000, CRC(9693bb83) SHA1(e3e3bc750c89a1edd1072ce3890b2ce498dec633) ) - /* taken from the Spanish version, these are likely to be identical anyway */ - ROM_REGION( 0x0800, "nvram", 0 ) /* default NVRAM */ - ROM_LOAD( "fortecrd_nvram.u6", 0x0000, 0x0800, BAD_DUMP CRC(7d3e7eb5) SHA1(788fe7adc381bcc6eaefed33f5aa1081340608a0) ) - - ROM_REGION16_BE( 0x0100, "eeprom", 0 ) /* default serial EEPROM */ - ROM_LOAD16_WORD_SWAP( "forte_card_93cs56_serial_12345678.u13", 0x0000, 0x0100, BAD_DUMP CRC(2fc5961d) SHA1(f958c8b2b4e48cc6e5a607a6751acde5592bd27f) ) + ROM_REGION16_BE( 0x0100, "eeprom", 0 ) // default serial EEPROM + ROM_LOAD16_WORD_SWAP( "forte_card_en_93cs56_serial_12345678.u13", 0x0000, 0x0100, CRC(2f546bcd) SHA1(ffd610aa60515eda91bfbbeab8b4f88491f79fcf) ) ROM_REGION( 0x200, "proms", 0 ) - ROM_LOAD( "forte_card_82s147.u47", 0x0000, 0x0200, BAD_DUMP CRC(7e631818) SHA1(ac08b0de30260278af3a1c5dee5810d4304cb9ca) ) + ROM_LOAD( "forte_card_82s147.u47", 0x0000, 0x0200, CRC(7e631818) SHA1(ac08b0de30260278af3a1c5dee5810d4304cb9ca) ) ROM_END /*********************************** -* Driver Init * -***********************************/ - -void fortecar_state::init_fortecar() -{ - // ... -} - - -/*********************************** * Game Drivers * ***********************************/ -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT -GAMEL( 1994, fortecrd, 0, fortecar, fortecar, fortecar_state, init_fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 110, Spanish)", 0, layout_fortecrd ) -GAMEL( 1994, fortecar, fortecrd, fortecar, fortecar, fortecar_state, init_fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 103, English)", MACHINE_NOT_WORKING, layout_fortecrd ) +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAMEL( 1994, fortecrd, 0, fortecrd, fortecrd, fortecrd_state, empty_init, ROT0, "Fortex Ltd.", "Forte Card (Ver 110, Spanish)", 0, layout_fortecrd ) +GAMEL( 1994, fortecrde, fortecrd, fortecrd, fortecrd, fortecrd_state, empty_init, ROT0, "Fortex Ltd.", "Forte Card (Ver 103, English)", 0, layout_fortecrd ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3e2fd42afc6..8f5016a7122 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -13866,7 +13866,7 @@ pesadelo // (c) 1989 Forte II Games @source:fortecar.cpp fortecrd // (c) 1994, Fortex Ltd. -fortecar // (c) 1994, Fortex Ltd. +fortecrde // (c) 1994, Fortex Ltd. @source:fp1100.cpp fp1100 // |