I wrote a PAL emulator to complement my NTSC emulator. Like the NTSC emulator, it is a software implementation written in C using integers only.
GitHub Link:
https://github.com/LMP88959/PAL-CRT
Acknowledgements:
Thank you to the NESDev Discord server for help.
And thank you to the following people (in no particular order):
lidnariq
Persune
Eugene.S
L. Spiro
org
feos
Full PAL Emulation w/ NES pixel decoding (Integer-only)
Moderator: Moderators
Re: Full PAL Emulation w/ NES pixel decoding (Integer-only)
Chroma patterns:
Thanks to HardWareMan and feos for helping me with understanding this issue.
Thanks to HardWareMan and feos for helping me with understanding this issue.
Re: Full PAL Emulation w/ NES pixel decoding (Integer-only)
Here are screenshots.
L. Spiro
L. Spiro
Re: Full PAL Emulation w/ NES pixel decoding (Integer-only)
Very nice! I've been using https://github.com/libretro/common-shad ... 57shell.cg so far but I'm very curious to see how this compares.
Re: Full PAL Emulation w/ NES pixel decoding (Integer-only)
Weirdly enough, in captures of NES video (at least on NTSC), vertical edges between two monochrome colors (such as white or gray on black) look artifact-free, and don't have the jagged edges that you see on colored vertical edges. Might just be the capture device at work here.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
-
- Posts: 611
- Joined: Mon Jan 23, 2006 7:47 am
- Location: Germany
- Contact:
Re: Full PAL Emulation w/ NES pixel decoding (Integer-only)
Brightness is encoded differently from color, which NTSC was created for, and "can go anywhere up to about 4x [of the color bandwidth]"[1].
Artifacts can still occur when there are fine details in brightness and the video encoder sends a color burst before the actual image data (which afaik can't be disabled on most consoles).
The jagged edges are usually there because the NES alternates between ending a line after 227 1/3 color clock cycles, not 227.5 (NTSC standard) or 227 or 228. They're also averaged over time because one out of two NES fields is slightly shorter.
[1] [2] [3] [4]
Artifacts can still occur when there are fine details in brightness and the video encoder sends a color burst before the actual image data (which afaik can't be disabled on most consoles).
The jagged edges are usually there because the NES alternates between ending a line after 227 1/3 color clock cycles, not 227.5 (NTSC standard) or 227 or 228. They're also averaged over time because one out of two NES fields is slightly shorter.
[1] [2] [3] [4]
My current setup:
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10
Re: Full PAL Emulation w/ NES pixel decoding (Integer-only)
Thank you! puNES just recently added both my NTSC and PAL filters (called the LMP88959 filters) so they should be easy to try out now!cmr wrote: ↑Wed Oct 25, 2023 12:34 pm Very nice! I've been using https://github.com/libretro/common-shad ... 57shell.cg so far but I'm very curious to see how this compares.