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

konami/konamigv: Add printer support for Tokimeki Memorial Oshiete Your Heart #12233

Merged
merged 5 commits into from
Apr 13, 2024

Conversation

987123879113
Copy link
Contributor

HLE implementation of the printer Sony UP-1200 analog video printer used by Tokimeki Memorial Oshiete Your Heart. The printer receives an S-Video signal from the subboard PCB and separately a communication line to control the machine. tmosh and tmoshs only take and print one picture, but tmoshsp takes 16 different pictures and uses the 16 image layout setting of the printer.

The printer output is shown as a second screen as can be seen in the example pictures below.

tmosh (1 large image):
0022

tmoshs (Konami logo position changes, text and icon in the very center of the picture):
0007

tmoshsp (Konami logo and Tokimeki Memorial logo are always in the same spot):
0059

Here's a picture of multiple prints from both the tmosh version and the tmoshsp version for layout reference.
image

This PR also promotes the games to working, except for the tmoshspa clone which has a note about the CD being damaged.

Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)
Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)
Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)

…ur Heart

Machines promoted to working
--------------------------
Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)
Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)
Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)
src/mame/konami/konamigv.cpp Outdated Show resolved Hide resolved
src/mame/konami/konamigv.cpp Outdated Show resolved Hide resolved
Comment on lines +930 to +931
else if (m_printer_data[0] == 0x10)
{
Copy link
Member

Choose a reason for hiding this comment

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

My gut feel is that this should wait for vertical blanking to ensure it gets a properly rendered frame. Can you start a timer on receiving this message to wait until some arbitrary point early in the vertical blanking interval to ensure you grab a frame after the final screen update for the frame happens?

In real life, the printer is going to have to see a complete frame after receiving this command (i.e. wait for current frame to complete, then start capturing at the top of the next frame).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Does this seem sane for what you're suggesting? eab9298

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, looks about right.

src/mame/konami/konamigv.cpp Outdated Show resolved Hide resolved
Comment on lines 387 to 389
bool m_printer_is_manual_layout;
bool m_printer_page_is_dirty;
int m_printer_video_last_vblank_state;
Copy link
Member

Choose a reason for hiding this comment

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

m_printer_video_last_vblank_state is registered for save states, so it should be an explicitly sized integer or bool.

@cuavas cuavas merged commit d4cd52e into mamedev:master Apr 13, 2024
2 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.

2 participants