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

Miscellaneous late 90s Jaleco HW fixes and cleanups #7445

Merged
merged 44 commits into from
Nov 25, 2020
Merged

Conversation

angelosa
Copy link
Member

@angelosa angelosa commented Nov 6, 2020

ms32.cpp, bnstars.cpp, tetrisp2.cpp: wrote a Jaleco MS32 System Control Unit device [Angelo Salese, Alex Marshall]

  • Internalize both CRTC and irq generation, overall timings should be more accurate;

Additionally removed a plethora of kludges, most notably:

  • ms32.cpp: Fix sprite transfer direction bit, removes an ugly per-game table;
  • ms32.cpp: Fix drawing honoring the wrong variable and causing a segmentation fault;
  • ms32.cpp: Correct palette size;
  • ms32sprite.cpp: Move optional features (YUV, zooming) at init time;
  • tetrisp2.cpp: Fix extra screens in stepstag/vjdash to run at 60 Hz instead of 30;
  • tetrisp2.cpp: Fix rightmost screen in stepstag/vjdash bitmap configuration (thanks to Osso for catching it)
  • bnstars.cpp: Fix machine configuration and proper split for sprite and gfxdecode devices;

Also added a bare-bones Python script for generating new device file
defs to src/mame/etc
…e 30 Hz irq to behave like one.

(Note: very untested, feedback is appreciated)
src/mame/drivers/bnstars.cpp Outdated Show resolved Hide resolved
src/mame/drivers/bnstars.cpp Outdated Show resolved Hide resolved
src/mame/drivers/bnstars.cpp Outdated Show resolved Hide resolved
src/mame/machine/jaleco_ms32_sysctrl.cpp Outdated Show resolved Hide resolved
src/mame/machine/jaleco_ms32_sysctrl.cpp Outdated Show resolved Hide resolved
src/mame/machine/jaleco_ms32_sysctrl.h Outdated Show resolved Hide resolved
src/mame/video/ms32.cpp Outdated Show resolved Hide resolved
@angelosa
Copy link
Member Author

angelosa commented Nov 7, 2020

Looks like with bleeding edge I need to update all the pointers to use memory_share_creator. causing a crash at access time otherwise. Given also the problem with bnstars1 I may as well just split & subclass core state into something more reusable.

src/mame/drivers/bnstars.cpp Outdated Show resolved Hide resolved
src/mame/video/ms32.cpp Outdated Show resolved Hide resolved
Move m_irqreg save state from video_start to machine_start fn;
Fix embarassing palette overflow bug in ms32.cpp;
Add bitswap for bnstars1 mahjong panel;
.bytes() -> .length() for objectram_size;
@angelosa
Copy link
Member Author

All that's left for this branch is make some merging between memory maps (especially for bnstars.cpp), separate F1 Super Battle to use its own state machine (derived from ms32_state), and of course convert configure_scanline to use an emu_timer instead.

Of course it's not "completely clean" but I really like to rename bnstars.cpp to ms32_bnstars.cpp from master branch because that bothers me as well.

@angelosa
Copy link
Member Author

Ready for primetime imho, given it also fixes current ms32.cpp driver breakage on master branch.

@cuavas cuavas merged commit b88fe8a into master Nov 25, 2020
@angelosa angelosa deleted the ms32_untangle branch December 27, 2020 18:48
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.

5 participants