MCS48-based slots by Recreativos Franco driver: Made some subtle corrections.

This commit is contained in:
Roberto Fresca 2023-11-04 00:02:41 +01:00
parent 64105fa176
commit 524f9e2bb6

View File

@ -1,9 +1,12 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders: Roberto Fresca, Grull Osgo // copyright-holders: Roberto Fresca, Grull Osgo
/*************************************************************************** /******************************************************************************************
Driver for MCS48-based slots by Recreativos Franco.
Driver for MCS48-based slots by Recreativos Franco.
*******************************************************************************************
Recreativos Franco PCB "RF-3115" Recreativos Franco PCB "RF-3115"
.--------------------------------------------------------------------------------------. .--------------------------------------------------------------------------------------.
@ -32,18 +35,21 @@
'--------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------'
**************************************************************************** *******************************************************************************************
TODO: TODO:
- Discover and emulate 100 Pts. coin in action, done by an owner hack in mainboard with a 74ls164. - Discover and emulate 100 Pts. coin in action, done by an owner hack in mainboard
This 100 Pts. hack accepts this coin and gives back three 25 Pts. coins as change, then only plays 25 Pts. as bet. with a 74ls164. This 100 Pts. hack accepts this coin and gives back three 25 Pts.
coins as change, then only plays 25 Pts. as bet.
- Complete Baby Fruits 25 pts. emulation, partially emulated due to a bad dump of the main CPU ROM. - Complete Baby Fruits 25 pts. emulation, partially emulated due to a bad dump of the
- Complete Ajofrin emulation, partially emulated due to a bad dump of of the main CPU ROM. main CPU ROM.
- Complete Ajofrin emulation, partially emulated due to a bad dump of the main CPU ROM.
***************************************************************************/ ******************************************************************************************/
#include "emu.h" #include "emu.h"
#include "cpu/mcs48/mcs48.h" #include "cpu/mcs48/mcs48.h"
@ -739,26 +745,26 @@ void rfslotsmcs48_state::babyfrts(machine_config &config)
m_sndbfcpu->p1_out_cb().set(FUNC(rfslotsmcs48_state::sound_p1_w)); m_sndbfcpu->p1_out_cb().set(FUNC(rfslotsmcs48_state::sound_p1_w));
m_sndbfcpu->p2_in_cb().set(FUNC(rfslotsmcs48_state::sound_p2_r)); m_sndbfcpu->p2_in_cb().set(FUNC(rfslotsmcs48_state::sound_p2_r));
I8243(config.replace(), m_ioexp[0]); // PIA 1: fruits projectors // I8243, m_ioexp[0]; PIA 1: fruits projectors
m_ioexp[0]->p4_out_cb().set(FUNC(rfslotsmcs48_state::proy_1_w)); // left m_ioexp[0]->p4_out_cb().set(FUNC(rfslotsmcs48_state::proy_1_w)); // left
m_ioexp[0]->p5_out_cb().set(FUNC(rfslotsmcs48_state::proy_2_w)); // center m_ioexp[0]->p5_out_cb().set(FUNC(rfslotsmcs48_state::proy_2_w)); // center
m_ioexp[0]->p6_out_cb().set(FUNC(rfslotsmcs48_state::proy_3_w)); // right m_ioexp[0]->p6_out_cb().set(FUNC(rfslotsmcs48_state::proy_3_w)); // right
m_ioexp[0]->p7_out_cb().set(FUNC(rfslotsmcs48_state::exp1_p7_w)); // sound Reset + Int m_ioexp[0]->p7_out_cb().set(FUNC(rfslotsmcs48_state::exp1_p7_w)); // sound Reset + Int
I8243(config.replace(), m_ioexp[1]); // PIA 2 // I8243, m_ioexp[1]; PIA 2
m_ioexp[1]->p4_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p4_w)); // coils and EM counters m_ioexp[1]->p4_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p4_w)); // coils and EM counters
m_ioexp[1]->p5_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p5_w)); // game lights m_ioexp[1]->p5_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p5_w)); // game lights
m_ioexp[1]->p6_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p6_w)); // push buttons lights m_ioexp[1]->p6_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p6_w)); // push buttons lights
m_ioexp[1]->p7_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p7_w)); // sound codes m_ioexp[1]->p7_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p7_w)); // sound codes
m_ioexp[1]->p7_in_cb().set(FUNC(rfslotsmcs48_state::exp2_p7_r)); // sound handshake m_ioexp[1]->p7_in_cb().set(FUNC(rfslotsmcs48_state::exp2_p7_r)); // sound handshake
I8243(config.replace(), m_ioexp[3]); // PIA 4 // I8243, m_ioexp[3]; PIA 4
m_ioexp[3]->p4_in_cb().set_ioport("IN0"); m_ioexp[3]->p4_in_cb().set_ioport("IN0");
m_ioexp[3]->p5_in_cb().set_ioport("IN1"); m_ioexp[3]->p5_in_cb().set_ioport("IN1");
m_ioexp[3]->p6_in_cb().set_ioport("IN4"); // SWA m_ioexp[3]->p6_in_cb().set_ioport("IN4"); // SWA
m_ioexp[3]->p7_in_cb().set_ioport("IN2"); m_ioexp[3]->p7_in_cb().set_ioport("IN2");
I8243(config.replace(), m_ioexp[4]); // PIA 5 // I8243, m_ioexp[4]; PIA 5
m_ioexp[4]->p4_out_cb().set(FUNC(rfslotsmcs48_state::exp5_p4_w)); // Selector 1-16 m_ioexp[4]->p4_out_cb().set(FUNC(rfslotsmcs48_state::exp5_p4_w)); // Selector 1-16
m_ioexp[4]->p5_in_cb().set_ioport("IN5"); // SWB m_ioexp[4]->p5_in_cb().set_ioport("IN5"); // SWB
m_ioexp[4]->p7_in_cb().set_ioport("IN3"); m_ioexp[4]->p7_in_cb().set_ioport("IN3");
@ -781,26 +787,26 @@ void rfslotsmcs48_state::ajofrin(machine_config &config)
m_sndajcpu->p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w)); m_sndajcpu->p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w));
m_sndajcpu->p2_in_cb().set(FUNC(rfslotsmcs48_state::sound_p2_r)); m_sndajcpu->p2_in_cb().set(FUNC(rfslotsmcs48_state::sound_p2_r));
I8243(config.replace(), m_ioexp[0]); // PIA 1 // I8243, m_ioexp[0]; PIA 1
m_ioexp[0]->p4_out_cb().set(FUNC(rfslotsmcs48_state::proy_1_w)); // to verify left projector m_ioexp[0]->p4_out_cb().set(FUNC(rfslotsmcs48_state::proy_1_w)); // to verify left projector
m_ioexp[0]->p5_out_cb().set(FUNC(rfslotsmcs48_state::proy_2_w)); // to verify center projector m_ioexp[0]->p5_out_cb().set(FUNC(rfslotsmcs48_state::proy_2_w)); // to verify center projector
m_ioexp[0]->p6_out_cb().set(FUNC(rfslotsmcs48_state::proy_3_w)); // to verify right projector - There is an extra projector. To be found. m_ioexp[0]->p6_out_cb().set(FUNC(rfslotsmcs48_state::proy_3_w)); // to verify right projector - There is an extra projector. To be found.
m_ioexp[0]->p7_out_cb().set(FUNC(rfslotsmcs48_state::aj_exp1_p7_w)); // sound+int to verify m_ioexp[0]->p7_out_cb().set(FUNC(rfslotsmcs48_state::aj_exp1_p7_w)); // sound + int to verify
I8243(config.replace(), m_ioexp[1]); // PIA 2 // I8243, m_ioexp[1]; PIA 2
m_ioexp[1]->p4_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p4_w)); // coils and EM counters - idem bfr m_ioexp[1]->p4_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p4_w)); // coils and EM counters - idem bfr
m_ioexp[1]->p5_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p5_w)); // game lights - idem bfr m_ioexp[1]->p5_out_cb().set(FUNC(rfslotsmcs48_state::exp2_p5_w)); // game lights - idem bfr
I8243(config.replace(), m_ioexp[2]); // PIA 3 // I8243, m_ioexp[2]; PIA 3
m_ioexp[2]->p7_in_cb().set_ioport("IN0"); m_ioexp[2]->p7_in_cb().set_ioport("IN0");
I8243(config.replace(), m_ioexp[3]); // PIA 4 // I8243, m_ioexp[3]; PIA 4
m_ioexp[3]->p4_in_cb().set_ioport("IN1"); m_ioexp[3]->p4_in_cb().set_ioport("IN1");
m_ioexp[3]->p5_in_cb().set_ioport("IN2"); m_ioexp[3]->p5_in_cb().set_ioport("IN2");
m_ioexp[3]->p6_in_cb().set_ioport("IN3"); m_ioexp[3]->p6_in_cb().set_ioport("IN3");
m_ioexp[3]->p7_in_cb().set_ioport("IN4"); m_ioexp[3]->p7_in_cb().set_ioport("IN4");
I8243(config.replace(), m_ioexp[4]); // PIA 5 // I8243, m_ioexp[4]; PIA 5
m_ioexp[4]->p5_in_cb().set_ioport("IN5"); m_ioexp[4]->p5_in_cb().set_ioport("IN5");
m_ioexp[4]->p6_out_cb().set(FUNC(rfslotsmcs48_state::aj_exp5_p6_w)); m_ioexp[4]->p6_out_cb().set(FUNC(rfslotsmcs48_state::aj_exp5_p6_w));