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

jaleco/megasys1.cpp - use dumped MCU for bigstrik [Sergio Galiano, Recreativos Piscis, David Haywood] #11629

Merged
merged 15 commits into from Oct 21, 2023

Conversation

mamehaze
Copy link
Contributor

@mamehaze mamehaze commented Oct 18, 2023

  • updated tlcs90 port / irq handling to match hardware, implemented halt support [Sergio Galiano, Recreativos Piscis]
  • hooked up MCU support in megasys1 driver [Sergio Galiano, Recreativos Piscis, David Haywood]
  • started splitting megasys1 driver into subclasses [David Haywood]
  • added 2 clones [unknown]

the clone sets have been kicking around in unemulated sets since the late 90s, probably Arcade ROMs from Japan or Romlist dumps / stuff that was sent to RAINEdev or similar.

@mamehaze mamehaze changed the title jaleco/megasys1.cpp - use dumped MCU for bigstrik [Sergio Galiano, Recreativos Piscis, David Haywood, hammy] jaleco/megasys1.cpp - use dumped MCU for bigstrik [Sergio Galiano, Recreativos Piscis, David Haywood] Oct 18, 2023
@mamehaze
Copy link
Contributor Author

mamehaze commented Oct 20, 2023

FWIW I'm done with this PR for now and feel overall it's an improvement on the existing code / driver.

Further work may be needed on cleaning up the existing driver though (but that will come later, in a separate PR once more research has been performed)

The 'Type A' "MCU" appears to not be an MCU at all for example, but an NEC Gate Array. This actually makes sense, because a gate array is much faster at the specific tasks it's programmed to perform, and anything providing a ROM overlay would need to be able to do so as fast as the 68k demanded it.

This also means the OKI status register thing is unlikely protection related (maybe a design fault on some motherboard revisions?)

Furthermore it means it's unlikely to be involved in interrupt handling (so the old Ninja Kazan solution will need revisiting)

Also at some point the sprite code needs rewriting to use the real priority PROM, not an approximation of it calculated in code.

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.

It looks like this hacks the TLCS90 core to disable edge detection on input lines to avoid needing to deassert interrupt inputs. That’s going to break other things. It would be less evil to use pulse_input_line or HOLD_LINE in the driver.

src/devices/cpu/tlcs90/tlcs90.cpp Outdated Show resolved Hide resolved
src/mame/jaleco/megasys1.h Outdated Show resolved Hide resolved
src/mame/jaleco/ms1_tmap.cpp Outdated Show resolved Hide resolved
src/mame/jaleco/megasys1.cpp Show resolved Hide resolved
src/mame/jaleco/megasys1.cpp Outdated Show resolved Hide resolved
src/mame/jaleco/megasys1.cpp Outdated Show resolved Hide resolved
src/mame/jaleco/megasys1.cpp Outdated Show resolved Hide resolved
src/mame/jaleco/megasys1.cpp Outdated Show resolved Hide resolved
src/mame/jaleco/megasys1.cpp Outdated Show resolved Hide resolved
@mamehaze
Copy link
Contributor Author

all feedback should be addressed

@cuavas
Copy link
Member

cuavas commented Oct 21, 2023

all feedback should be addressed

Indeed, it appears so.

@cuavas cuavas merged commit 8d1c7fc into mamedev:master Oct 21, 2023
3 of 5 checks passed
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