Skip to content

casio/pv1000.cpp: Three tiny changes #12570

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

Merged
merged 3 commits into from
Jul 23, 2024
Merged

casio/pv1000.cpp: Three tiny changes #12570

merged 3 commits into from
Jul 23, 2024

Conversation

lidnariq
Copy link
Contributor

  • ioFF has a toggle that just draws border color instead of tiles, so that the CPU runs faster.
  • The pixel clock is slow, so the pixel aspect is noticeably wide - about 4:3
  • ioFF supports drawing tile data from all eight 8KiB windows out of the 64KiB address space; add support for the easy bottom four

@rb6502
Copy link
Contributor

rb6502 commented Jul 12, 2024

I don't think the aspect part of this can be right. The real PV-1000 was used on 4:3 NTSC TVs, so the final output image should be 4:3 and you shouldn't care about the individual pixel shape. We don't for extreme cases like 640x240 on the PlayStation and it works out fine.

@lidnariq
Copy link
Contributor Author

What's the desired behavior for things that are extremely overscanned?

The PV-1000 uses a pixel clock that is NTSC x 5/4, 4.47MHz. Per rec.701 for digitizing SDTV, that works out to an exact PAR of 48:35. The PV-1000 generates a raw image that is 224 pixels by 244 scanlines, which when scaled by that 48:35 works out to roughly 307 x 244 square pixels. The TV then crops that down to somewhere around 290 x 215 square pixels: video of real hardware show the left-most and right-most tiles in the tilemap are often partially lost to overscan.

For comparison, a real NTSC NES generates a 284 x 242 image, much of which is also border. Early emulators pretended it's 256x240, but real TVs show somewhere around 250 x 215 ish.

@cuavas
Copy link
Member

cuavas commented Jul 12, 2024

I think all you can do is set the default position/scaling so that it will be cropped the way it would be on a TV – see screen_device::set_default_position.

@lidnariq
Copy link
Contributor Author

is this now ok?

@angelosa angelosa merged commit 9f31d42 into mamedev:master Jul 23, 2024
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.

4 participants