{"id":272,"date":"2025-12-21T15:31:56","date_gmt":"2025-12-21T20:31:56","guid":{"rendered":"https:\/\/baumwire.com\/?p=272"},"modified":"2025-12-21T19:27:14","modified_gmt":"2025-12-22T00:27:14","slug":"480p-is-not-a-single-resolution-and-thats-the-trap","status":"publish","type":"post","link":"https:\/\/baumwire.com\/index.php\/2025\/12\/21\/480p-is-not-a-single-resolution-and-thats-the-trap\/","title":{"rendered":"480p Is Not a Single Resolution \u2014 and That\u2019s the Trap"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One of the biggest realizations I\u2019ve had continuing down the rabbit hole of retro video scaling is this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201c480p\u201d does <em>not<\/em> mean one fixed resolution.<\/strong><br>It only means <em>480 vertical pixels<\/em>. Everything else is negotiable\u2014and modern scalers absolutely hate that ambiguity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is where a lot of retro setups quietly go sideways.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What \u201c480p\u201d Actually Means (and Why It\u2019s Confusing)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When people say <em>480p<\/em>, they usually assume a single, standardized format. In reality, there are <strong>multiple valid 480p formats<\/strong>, each tied to different eras, aspect ratios, and expectations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The two most common 480p variants<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/unisystem.com\/wp-content\/uploads\/2023\/09\/resolutions-1024x438.png?utm_source=chatgpt.com\" alt=\"https:\/\/unisystem.com\/wp-content\/uploads\/2023\/09\/resolutions-1024x438.png?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/polymoa.wordpress.com\/wp-content\/uploads\/2019\/02\/16-9-resolutions-chart1.png?utm_source=chatgpt.com\" alt=\"https:\/\/polymoa.wordpress.com\/wp-content\/uploads\/2019\/02\/16-9-resolutions-chart1.png?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/home-cdn.reolink.us\/wp-content\/uploads\/2024\/08\/43-vs-169.jpg?utm_source=chatgpt.com\" alt=\"https:\/\/home-cdn.reolink.us\/wp-content\/uploads\/2024\/08\/43-vs-169.jpg?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>640 \u00d7 480 (4:3)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Classic PC and early progressive video resolution<\/li>\n\n\n\n<li>Pixel-perfect upscale from <strong>240p \u2192 480p<\/strong><\/li>\n\n\n\n<li>This is what devices like the RetroScaler 2X output when line-doubling NES, SNES, Genesis, etc.<\/li>\n\n\n\n<li>Mathematically clean, historically correct<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>854 \u00d7 480 (16:9)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Widescreen DVD era<\/li>\n\n\n\n<li>Often mislabeled as \u201c480p widescreen\u201d<\/li>\n\n\n\n<li>Non-square pixel heritage<\/li>\n\n\n\n<li>Exists mostly to fill modern 16:9 displays<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both are \u201c480p.\u201d<br>They are <strong>not interchangeable<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why Retro Consoles Naturally Land at 640\u00d7480<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/consolemods.org\/wiki\/images\/a\/ac\/240pCompare01-zoom.jpg?utm_source=chatgpt.com\" alt=\"https:\/\/consolemods.org\/wiki\/images\/a\/ac\/240pCompare01-zoom.jpg?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ebayimg.com\/images\/g\/4bwAAOSwyJ5nhU7G\/s-l1600.jpg?utm_source=chatgpt.com\" alt=\"https:\/\/i.ebayimg.com\/images\/g\/4bwAAOSwyJ5nhU7G\/s-l1600.jpg?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/cdn.retrorgb.com\/images\/240pCompare03-small.jpg?utm_source=chatgpt.com\" alt=\"https:\/\/cdn.retrorgb.com\/images\/240pCompare03-small.jpg?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The NES (and most early consoles) rendered at <strong>240p<\/strong>, locked to <strong>4:3<\/strong> CRTs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A line doubler does the most honest thing possible:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>240p \u00d7 2 = <strong>480p<\/strong><\/li>\n\n\n\n<li>Maintains original aspect ratio<\/li>\n\n\n\n<li>Produces <strong>640 \u00d7 480<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is <em>correct<\/em>.<br>This is <em>expected<\/em>.<br>This is <em>pixel-perfect<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And yet\u2026 modern scalers often don\u2019t like it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Modern Scaler Problem: \u201cValid\u201d \u2260 \u201cExpected\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s where things get ugly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>EDID correctly reports <strong>640\u00d7480<\/strong><\/li>\n\n\n\n<li>A custom EDID is created<\/li>\n\n\n\n<li>The RetroScaler 2X explicitly outputs 640\u00d7480<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Some scalers (including Extron units) still <strong>fight it<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Why?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because many professional and modern scalers internally <strong>expect 720\u00d7480<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why 720\u00d7480 keeps showing up<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/ab\/Resolution_chart.svg?utm_source=chatgpt.com\" alt=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/ab\/Resolution_chart.svg?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.newimagemedia.com\/portfolioimages\/aspectratio.png?utm_source=chatgpt.com\" alt=\"https:\/\/www.newimagemedia.com\/portfolioimages\/aspectratio.png?utm_source=chatgpt.com\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>720\u00d7480 is the <strong>DVD \/ SD broadcast standard<\/strong><\/li>\n\n\n\n<li>It assumes <strong>non-square pixels<\/strong><\/li>\n\n\n\n<li>Scalers treat it as \u201csafe\u201d SD video<\/li>\n\n\n\n<li>Anything else starts triggering:\n<ul class=\"wp-block-list\">\n<li>Subtle horizontal scaling<\/li>\n\n\n\n<li>Phase misalignment<\/li>\n\n\n\n<li>Edge shimmer<\/li>\n\n\n\n<li>Pixel crawl<\/li>\n\n\n\n<li>Geometry drift<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So even when the EDID says <em>\u201c640\u00d7480 is allowed\u201d<\/em>, the scaler\u2019s internal pipeline is still nudging things toward what it <em>expects<\/em> SD video to be.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Result:<br><strong>The math is right, but the picture isn\u2019t.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why This Breaks Alignment and Sharpness<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Retro video relies on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Integer scaling<\/li>\n\n\n\n<li>Square pixels<\/li>\n\n\n\n<li>Exact sampling points<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When a scaler assumes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>720 horizontal samples<\/li>\n\n\n\n<li>Non-square pixel math<\/li>\n\n\n\n<li>Broadcast-era timing models<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You get:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Softened pixels<\/li>\n\n\n\n<li>Uneven columns<\/li>\n\n\n\n<li>Shimmering edges<\/li>\n\n\n\n<li>Circles that aren\u2019t round<\/li>\n\n\n\n<li>Text that looks <em>almost<\/em> sharp but never locks in<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is why it feels like:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u201cEverything is technically correct\u2026 but visually wrong.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Because it is.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Bigger Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ve spent the last 15\u201320 years standardizing around:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>16:9<\/li>\n\n\n\n<li>720p<\/li>\n\n\n\n<li>1080p<\/li>\n\n\n\n<li>4K<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Those formats line up neatly.<br>Retro formats <strong>do not<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">480p sits right in the middle of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CRT assumptions<\/li>\n\n\n\n<li>Broadcast standards<\/li>\n\n\n\n<li>PC resolutions<\/li>\n\n\n\n<li>Early widescreen transitions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">And modern gear often collapses all of that nuance into:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u201cEh\u2026 close enough.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">For retro gaming, <em>close enough is not good enough<\/em>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why This Matters for Retro Purists (and Why It\u2019s Hard)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the real conundrum of modern retro gaming:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <strong>signal is valid<\/strong><\/li>\n\n\n\n<li>The <strong>math checks out<\/strong><\/li>\n\n\n\n<li>The <strong>EDID is correct<\/strong><\/li>\n\n\n\n<li>The <strong>display accepts it<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">But the <strong>scaler pipeline was never designed for 240p lineage<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s why devices like the RetroScaler 2X, OSSC, and RetroTINK exist\u2014and why they still hit walls once you bring professional or modern AV gear into the chain.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Final blunt truth<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>480p isn\u2019t broken.<br>Modern expectations of 480p are.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And retro gaming sits right at the fault line between those two worlds.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the biggest realizations I\u2019ve had continuing down the rabbit hole of retro video scaling is this: \u201c480p\u201d does not mean one fixed resolution.It only means 480 vertical pixels. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":273,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-techie"],"_links":{"self":[{"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/posts\/272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/comments?post=272"}],"version-history":[{"count":2,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/posts\/272\/revisions"}],"predecessor-version":[{"id":275,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/posts\/272\/revisions\/275"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/media\/273"}],"wp:attachment":[{"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/media?parent=272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/categories?post=272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/baumwire.com\/index.php\/wp-json\/wp\/v2\/tags?post=272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}