randyrossi / bmc64

A bare metal Commodore 64 emulator for the Raspberry Pi with true 50hz/60hz smooth scrolling, low input latency and better audio/video sync.
GNU General Public License v3.0
488 stars 59 forks source link

Using BMC64 with 1084 monitor #85

Closed CemTezcan closed 4 years ago

CemTezcan commented 4 years ago

Default PAL screen resolution of BMC64 is not compatible with 1084 monitor when it's used through composite video output of raspberry pi.

Screen pixels doesn't perfectly match to the 1084 scanlines.

As a workaround, I was using these parameters on config.txt on the 2.0 version.

framebuffer_aspect=0x00050006 overscan_scale=1 disable_overscan=1 sdtv_mode=18 overscan_left=2 overscan_right=-2 overscan_top=2 overscan_bottom=-1

I matched these overscan values by trial and error. This is not the perfect match btw. Vertically around 8 percent of the bottom part of the screen is not matched to the scanlines. But most of this part is consumed by the border of the C64, so it's acceptable.

Anyway, after the version 2.0 those parameters are not working because there came new parameters through the emulator menu. H border trim % V border trim %.

Since these values are not defined as negative, there is no way to match the screen scanlines by faking 1 (or 0.5?) pixel shift vertically. Possibly alowing negative values for vertical trim may solve the problem.

bad_scanline_alignment

better_scanline_alignment

randyrossi commented 4 years ago

Does the vertical adjust help (under video)? You can shift the image up or down by 1 pixel.

On Tue, Nov 26, 2019 at 2:41 AM CemTezcan notifications@github.com wrote:

Default PAL screen resolution of BMC64 is not compatible with 1084 monitor when it's used through composite video output of raspberry pi.

Screen pixels doesn't perfectly match to the 1084 scanlines.

As a workaround, I was using these parameters on config.txt on the 2.0 version.

framebuffer_aspect=0x00050006 overscan_scale=1 disable_overscan=1 sdtv_mode=18 overscan_left=2 overscan_right=-2 overscan_top=2 overscan_bottom=-1

I matched these overscan values by trial and error. This is not the perfect match btw. Vertically around 8 percent of the bottom part of the screen is not matched to the scanlines. But most of this part is consumed by the border of the C64, so it's acceptable.

Anyway, after the version 2.0 those parameters are not working because there came new parameters through the emulator menu. H border trim % V border trim %.

Since these values are not defined as negative, there is no way to match the screen scanlines by faking 1 (or 0.5?) pixel shift vertically. Possibly alowing negative values for vertical trim may solve the problem.

[image: bad_scanline_alignment] https://user-images.githubusercontent.com/53312532/69608666-fc941e80-1038-11ea-9623-5b0bd23bb9c8.jpg

[image: better_scanline_alignment] https://user-images.githubusercontent.com/53312532/69608593-d79fab80-1038-11ea-97ce-421179e6c372.jpg

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/randyrossi/bmc64/issues/85?email_source=notifications&email_token=AAI3HKH5A4THIFJHX6BJ2DDQVTHJTA5CNFSM4JRTZT72YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H4A63LA, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI3HKEWM3ARHSUENQKZD6LQVTHJTANCNFSM4JRTZT7Q .

-- Randy Rossi

C:(+1)416-605-5112 (Canada)

CemTezcan commented 4 years ago

Does the vertical adjust help (under video)? You can shift the image up or down by 1 pixel.

Sadly no. One of the reason of this problem is, on the new version, vertical height is already too high. I mean, if you check my previous photos, you can see that "s" letter has 6+ scanlines height, and on the 2.0 version "s" letter has 5 scanline height. On my real C64 lower case s letter has 5 scanlines height too. So best way is to squeze the frame vertically to align with scanlines.

But I must tell that, on the 2.0 version even height is true, scanlines doesn't match. So I used the asymmetrical overlaying parameters: overscan_top=2 overscan_bottom=-1

randyrossi commented 4 years ago

Interesting. I'll give this a try tonight with my monitor. I have a 1802 monitor I can try.

On Tue, Nov 26, 2019 at 11:47 AM CemTezcan notifications@github.com wrote:

Does the vertical adjust help (under video)? You can shift the image up or down by 1 pixel. … <#m-6931313957810037361> On Tue, Nov 26, 2019 at 2:41 AM CemTezcan @.***> wrote: Default PAL screen resolution of BMC64 is not compatible with 1084 monitor when it's used through composite video output of raspberry pi. Screen pixels doesn't perfectly match to the 1084 scanlines. As a workaround, I was using these parameters on config.txt on the 2.0 version. framebuffer_aspect=0x00050006 overscan_scale=1 disable_overscan=1 sdtv_mode=18 overscan_left=2 overscan_right=-2 overscan_top=2 overscan_bottom=-1 I matched these overscan values by trial and error. This is not the perfect match btw. Vertically around 8 percent of the bottom part of the screen is not matched to the scanlines. But most of this part is consumed by the border of the C64, so it's acceptable. Anyway, after the version 2.0 those parameters are not working because there came new parameters through the emulator menu. H border trim % V border trim %. Since these values are not defined as negative, there is no way to match the screen scanlines by faking 1 (or 0.5?) pixel shift vertically. Possibly alowing negative values for vertical trim may solve the problem. [image: bad_scanline_alignment] https://user-images.githubusercontent.com/53312532/69608666-fc941e80-1038-11ea-9623-5b0bd23bb9c8.jpg [image: better_scanline_alignment] https://user-images.githubusercontent.com/53312532/69608593-d79fab80-1038-11ea-97ce-421179e6c372.jpg — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#85 https://github.com/randyrossi/bmc64/issues/85?email_source=notifications&email_token=AAI3HKH5A4THIFJHX6BJ2DDQVTHJTA5CNFSM4JRTZT72YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4H4A63LA>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI3HKEWM3ARHSUENQKZD6LQVTHJTANCNFSM4JRTZT7Q . -- Randy Rossi C:(+1)416-605-5112 (Canada) - "There are only two things that are hard about computer science; Naming things, Cache Invalidation, and Off-by-one errors."

Sadly no. One of the reason of this problem is, on the new version, vertical height is already too high. I mean, if you check my previous photos, you can see that "s" letter has 6+ scanlines height, and on the 2.0 version "s" letter has 5 scanline height. On my real C64 lower case s letter has 5 scanlines height too. So best way is to squeze the frame vertically to align with scanlines.

But I must tell that, on the 2.0 version even height is true, scanlines doesn't match. So I used the asymmetrical overlaying parameters: overscan_top=2 overscan_bottom=-1

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/randyrossi/bmc64/issues/85?email_source=notifications&email_token=AAI3HKAUPCF3JRROTCIEAWTQVVHKLA5CNFSM4JRTZT72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFGV3EQ#issuecomment-558718354, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI3HKDU2U53OL5U52T6DMLQVVHKLANCNFSM4JRTZT7Q .

-- Randy Rossi

C:(+1)416-605-5112 (Canada)

randyrossi commented 4 years ago

I added a vertical stretch option in 3.4 so you should be able to match scanlines better.

CemTezcan commented 4 years ago

Thanks so much for this! For the perfect scanline alignment on my "PAL" 1084 monitor, those are my settings:

H Center 0 V Center 1 H Border Trim % 0 V Border Trim % 0 H Scretch Factor 1.110 V scretch Factor 0.945

P.S. since those settings doesn't affect menu scaling, scanlines still doesn't match on the menu. it's not necessery though.