Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nec/pce*.cpp: Move super system card and arcade card emulation into its own files #11726

Merged
merged 31 commits into from Jan 25, 2024

Conversation

cam900
Copy link
Contributor

@cam900 cam900 commented Nov 12, 2023

Use address_space instead read/write handler, Add primary Arcade Card Duo support
pce_cd.cpp: Use devcb for interrupt callback

hash/pce.xml Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_rom.cpp Outdated Show resolved Hide resolved
@cam900 cam900 changed the title nec/pce*.cpp: Move super system card and arcade card emulation into bus/pce/pce_rom.cpp nec/pce*.cpp: Move super system card and arcade card emulation into its own files Nov 13, 2023
src/mame/nec/pce_m.cpp Outdated Show resolved Hide resolved
hash/pce.xml Outdated
Comment on lines 4505 to 4515
<software name="acardduo" supported="no">
<description>Arcade Card Duo</description>
<year>1994</year>
<publisher>NEC</publisher>
<part name="cart" interface="pce_cart">
<feature name="slot" value="acard_duo" />
<dataarea name="rom" size="262144">
<!-- bios not included -->
</dataarea>
</part>
</software>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lacking a BIOS means this option cannot be emulated. You shouldn't guess, given your past history makes me wonder if you even tested all this stuff.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Arcade Card Duo only contains the RAM needed for the Arcade titles as the Duo/Super CD System² came with the System Card 3.0 inbuilt.

Probably means the rom dataarea shouldn't be part of the entry

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That again implies the Arcade Card Duo is an option slot for a base system there's no real handling for.
I also have my doubts wrt this kind of fake entry in the SW list, looks an unnecessary bridge for something doable with -listslots alone.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see no reason why not to have it, as it'd take up the cart slot on the console much like RAM carts for like the Saturn

Copy link
Member

@angelosa angelosa Nov 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well it doesn't do anything to begin with, it needs a base machine for the Duo that internalizes the CD System Card and make sure it overrides the mapping if a card is present, or overlays in the case you want Arcade stuff.
https://nicole.express/2020/why-do-you-need-an-arcade-card.html

ETA: it also fails mame -validate anyway.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The software item can be marginally if there are multiple ROM versions for the card as it avoids needing to use the kind of ugly slot card BIOS syntax. I wouldn’t have a problem if it became a slot option only, though.

I don’t have a problem with letting people plug an Arcade Card Duo into a system where it’s useless. You can do it in real life, it just won’t boot anything. Let it do the same in MAME.

hash/pce.xml Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_slot.h Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_scdsys.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_scdsys.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_scdsys.h Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.h Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_scdsys.cpp Outdated Show resolved Hide resolved
Copy link
Member

@angelosa angelosa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1004x

mame pce sapphire now punts instead of detecting Arcade Card off the bat.

Copy link
Member

@cuavas cuavas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks mostly OK now. Getting this stuff into slot devices rather than machine configuration switches is a step forward.

@cam900 how many of the games that depend on the Arcade Cards have you tested? How extensively have you tested them?

@angelosa did you have any other issues with this? I think at this point it’s an improvement over what we’ve already got, and makes the Arcade Cards more self-contained so it’s easier to work on them in the future.

src/devices/bus/pce/pce_slot.h Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_slot.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_scdsys.h Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.h Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
src/devices/bus/pce/pce_acard.cpp Outdated Show resolved Hide resolved
@cuavas
Copy link
Member

cuavas commented Jan 23, 2024

@cam900 can you please give a brief explanation of what you’ve tested to ensure the changes are working?

@angelosa can you please grab a CI build of this (or compile it yourself) and give it a bit of a test?

If testing looks OK, we can merge it after the freeze this month.

@cam900
Copy link
Contributor Author

cam900 commented Jan 24, 2024

@cuavas it's implements bit rotate register in Arcade Card, but only sapphire is tested and confirmed works fine.

@angelosa
Copy link
Member

angelosa commented Jan 24, 2024

1004x

mame pce sapphire now punts instead of detecting Arcade Card off the bat.

This still happens btw, I'm not even gonna bother with a full regtest until it's fixed.
ETA: I forgot I also need to update hashes for this, never mind ...

@cuavas
Copy link
Member

cuavas commented Jan 24, 2024

There are some titles that can run with the Super CD system card, but will take advantage of the Arcade Card if it is available for enhancements. With the current state of this pull request, these games use the Super CD system card by default.

@cam900 can you please try to identify the software items that can take advantage of an Arcade Card and update them to use an arcade card by default? This will give a better experience.

@angelosa angelosa self-requested a review January 24, 2024 22:27
@cuavas
Copy link
Member

cuavas commented Jan 25, 2024

Let’s YOLO this in and hope it makes the release. If there are CD titles that need their default system card changed, that’s easy to get in before the release goes out. If someone finds something horribly broken that we overlooked, we can fix it or back it out temporarily.

@cuavas cuavas merged commit 8bf993c into mamedev:master Jan 25, 2024
6 checks passed
MooglyGuy pushed a commit to MooglyGuy/mame that referenced this pull request Jan 28, 2024
mamedev#11726)

* Moved expansion card emulation out of the system into card devices.
* Removed machine configuration settings for expansion settings.
* Started to modernise the HuCard slot interface.

New working software list items (pce.xml)
------------------------
Arcade Card Pro
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants