Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08663 Misc. Minor Always Jun 16, 2023, 01:57 Jun 24, 2023, 22:32
Tester Balthier View Status Public Platform MAME (Official Binary)
Assigned To hap Resolution Fixed OS Windows 10/11 (64-bit)
Status [?] Resolved Driver
Version 0.255 Fixed in Version 0.256 Build 64-bit
Fixed in Git Commit c1ceb6e Github Pull Request #
Summary 08663: All sets in namcos1.cpp: Coin counters increase at each boot up even though credits are not being added
Description When running any game on the namcos1.cpp driver, the coin counters numbers in the machine's cfg file will increase by 3 on each start up even though credits are not being added by the user.
Steps To Reproduce 1. run any game on the namcos1.cpp driver ( ).
2. let the game run for a little bit, just don't add any credits.
3. exit the game, go to your cfg directory and examine the game's cfg file. The coin counter numbers should be at 3 now.
4. run the same game and repeat step 2.
5. repeat step 3, and the counters will now be at 6.
Additional Information Here's the splatter.cfg as an example:
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
    <system name="splatter">
            <coins index="0" number="3" />
            <coins index="1" number="3" />

Not all of the games add 3 credits to the counters at each start. A handful only add 1 or 2 (berabohm for example).

I traced this all the way back to mame 0.142 where it first started. 0.141 and prior are okay.
Github Commit
Regression Version
Affected Sets / Systems All sets in namcos1.cpp
Attached Files
There are no relationship linked to this issue.
User avatar
Jun 16, 2023, 08:00
Probably tri-state (high impedance) related in cpu/m6800/m6801.cpp.
I don't think this is right:
m_out_port_func[0](0, (m_port_data[0] & m_port_ddr[0]) | (m_port_ddr[0] ^ 0xff), m_port_ddr[0]);

and more likely should be something like:
m_out_port_func[0](0, (m_port_data[0] & m_port_ddr[0]) | (~m_port_ddr[0] & m_tristate_port_func[0]()), m_port_ddr[0]);
User avatar
Jun 16, 2023, 13:38
The reason the output drive state is passed to the port output handler is so that whatever’s attached to it can so something special if necessary for lines that aren’t being driven. Adding an extra callback complicates the device and adds overhead for all users.
User avatar
Jun 16, 2023, 14:34
Sure, I suppose it can be done that way.
User avatar
Jun 16, 2023, 15:26
edited on: Jun 16, 2023, 15:27
That was fast, gentlemen. Thank you. I'll be rechecking this one on the next release in 2 weeks but I have faith that it is resolved for now.
User avatar
Senior Tester
Jun 24, 2023, 19:47
Fixed Git Commit link -->