Jump to content
IGNORED

Classic computers emulated and dispalyed on a CRT TV


youxia

Recommended Posts

Hi folks, my first post on this venerable forum. My teenage self from ~3 decades ago would probably be dismayed by knowing I've joined something with "Atari" in its name - I was a die hard ZX Spectrum/Commodore fan - but hey, times, they're a-changin' ;)

 

Anyway, I was wondering if anybody else here has experience with using CRT TVs for emulated micros. I'm using mostly libretro versions of assorted emus (Retropie on RPi 3B+) and it's a bit puzzling getting the display right - I'm confined to composite (I also do have an RGB mod but no compatible TV at the moment), and also to add to the problem, it's a NTSC set.

 

I'm not 100% sure what are correct resolutions to use in the configs. I'm aiming for 1:1 pixels and artifact-free display - so far using these...

 

Atari 800 - 640x480- native libretro setting: this looks pretty good actually

Amstrad: 768x544 - it works fairly well despite being bigger than RPi 720x480 output, the border is sacrificed

C64: lr-vice same as Amstrad: 768x544. Seems ok.

ZX Spectrum: 640x480: this resolution kicks in when I disable border (to get rid of heavy NTSC artifacting)

 

While these look reasonably good, they do not really match the resolutions from real machines I read about, eg C64 displaying 402x292 (or 320x200 with no border) http://codebase64.org/doku.php?id=base:visible_area

Could this be improved somehow? Or are these really real resolutions?

 

Is there any sort of way to display these without problems on NTSC as well? Games are either too fast in NTSC or jerky in PAL, plus on some micros the colours are out of whack. Even though some of the emus have option for NTSC machines.

Link to comment
Share on other sites

The emulated picture is scaled to the operating system resolution, so getting a 1:1 pixel match is not obvious. On a crt you also have to deal with overscan. Raspbian has overscan settings. You can disable/enable overscan and adjust the amount of overscan. The other issue is that by default the raspberry pi composite output is 480i. That should be set to 240p for these systems. And while these settings might be good for the emulator. They might not be best for the front-end software.

 

Isn't it normal for ntsc to run fast compared to pal with some of these systems.

Link to comment
Share on other sites

Thanks, but I do have the basic settings covered, outputting 240p and no overscan. And the res settings I quoted are hardcoded into libretro cores (I think that's how it works). It's possible to change them but then often you will get artifacting like shimmer or "rolling".

 

I do actually have it set up pretty much all-right, but also an OCD and intrinsic curiosity when it comes to CRTs and "settings" in general, so just wanted to compare notes.

 

Problem with micros and NTSC is that games are usually not marked for region as is the case with console roms. So it's sometimes hard to tell. I'm using Gamebases to check, but these are not always accurate.

Link to comment
Share on other sites

The RPi itself is set to output progressive NTSC in the config. I'm not using strictly "PAL resolutions", only the ones provided by the core itself - whatever they might be when switching between PAL/NTSC depending on game. Eg C64 in (NTSC model) defaults to 384x247 (x2) and 384x277 (x2) (PAL), which, while looking pretty 1:1 (-ish, at least), and not being far off, are not exacty the "original" resolutions I read about (nevermind its difficult to find a definitive answer for that too).

 

ZX Spectrum defaults to 640x480. Not sure why. And so on...

 

Overall, Retropie is great, but also fairly confusing with its multum of configs and options. It's nowhere near as straighforward as "put this resolution in this config and it will work". Or maybe it is, but I'm doing something wrong. Which is why I was hoping to hear from others with similar experience.

Link to comment
Share on other sites

A pal signal has 625 lines of which 576 lines are usually visable leaving about 288 lines max for a progressive display.

An ntsc signal has 525 lines and about 480 lines are visable leaving about 240 lines max for a progressive display.

 

A Commodore 64 uses 200 lines for its graphics the rest is its border. Not sure exactly how many lines including the visible border a real C64 displays but it should be about 240 for ntsc and 288 for pal.

 

The 247x2 and and 277x2 for the emulators, I assume are visible lines including border. A little high for ntsc and a little low for pal.

 

The raspberry pi ntsc composite video in progressive mode should have about 240 lines visible. My understanding is that it starts with a 480 line picture and sends half the lines for the 240p picture. The 247x2 resolution of the emulator actually means it is a 494 line image, a few more lines than a normal ntsc display. The 277x2 is 554 lines and is less than an expected 576 line pal display.

 

The ZX Spectrum emulator at 480 lines will result in a 240 line image, Since it only uses 192 lines for graphics, the rest is border.

 

What do you feel is wrong with your setup? If the Raspberry Pi is displaying the 247 lines of the emulator and not scaling than it should be doing what you want. The 277 line image I expect would have to be scaled.

Link to comment
Share on other sites

Well, again, I'm not saying there's anything particularly wrong - I did not start this topic to seek help with some particular issue.I just wanted to compare notes with somebody who has similar setup. Overall, I'm happy with the IQ, as for composite it's not too bad and as for scaling the cores are doing pretty good work, much better than of previous 4.3 version anyway.

 

Being curious though, I wonder how do they arrive at the numbers for scaling, as you can see yourself they do not exactly match for Commodore (if we assume that visible it's 402x292 as per previous link, or no, wait, perhaps it's 403 x 284 if you lisen to the good folks at progettogemma :D). Since there's border it does not matter anyway because they made it so vert 320x2 "game space" area fills my 640 vert CRT okay. Though that leaves bars at top and bottom of course (480-2x200...)

 

I wonder if anybody managed to get non-libretro Vice displaying properly - that's what I was using before last update and had like 384x240 in the settings, which looked okay-ish, but there's so many different video settings in this emu I could not ever get it right with even those "official" values.

 

Spectrum shows the same values - 640x480 - for both border and no border. Then sometimes when in "no border" the Integer will default to 192x3 values. Sometimes, that is. Best of all, border version produces quite surreal NTSC colour artifacts, but when in no border mode these disappear. It's all rather bizarre.

 

The core provided values were never 100% certain anyway, it took me some time to figure out there's an error in vertical ones for SNES and PCE, causing awful "rolling" artifacts, but I was convinced this was a fault of something else and wasted lots of time trying to fix it.

Edited by youxia
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...