Pixel FX Year in Review

Formation

In the summer of 2020, Woozle began working on a new video scaler PCB with high ambitions. This scaler, the "Morph" would work with the most commonly used video inputs, those being composite, s-video, component, SCART, and VGA along with HDMI input. Meanwhile Dan and Christof, of Black Dog Tech, had just finished development and production of their PS1Digital HDMI upgrade kit. The PS1Digital raised the bar of what a console mod kit could do, with modern system software features such as WiFi updates, WebUI control, and a capable on-screen display.

Woozle's experience was primarily in PCB design and low-level FPGA video coding, which served well on the GBA Consolizer project, but the Morph could clearly benefit from the software finesse shown in the PS1Digital. Woozle and Black Dog Tech began talks of how to combine their expertise to form a video hardware company that would explore new frontiers in the video scaler market. The three joined together to create Pixel FX, with the first product in development being the Morph scaler.


The first prototype of the Morph.

As a new company with limited resources, and the high up front costs of a product such as the Morph, we needed to start smaller and turned our eyes towards familiar territory, the console HDMI upgrade kit market. We decided to start with the N64Digital, an HDMI video upgrade kit for the Nintendo 64. Dan began PCB work in November 2020 and by January 2021 we had the first hardware prototype in our hands. On January 30th 2021, Pixel FX was officially created and we announced the N64Digital on Twitter.


Pixel FX's first tweet.

Road to Product Launch

We gave ourselves a challenge, take a product from concept to production in 6 months. Many long nights were spent writing code for the FPGA and ESP32, along with careful attention to PCB layout and revisions. HDMI upgrade kits of the past used basic scalers, capable of only zooming the image to integer factors like 4x or 5x. While in some cases interpolation was possible, it was always very simple implementations. The N64Digital would be designed with an any-zoom polyphase scaler and a scaling engine that could be changed on the fly from the OSD.

By April 2021 we started production of the N64Digital circuit boards, and in May had our first sale with a large quantity of units selling out in under an hour. In an industry where long pre-order cycles are common, we managed to start shipping orders in June. Despite the chip shortage we secured another large quantity of FPGA chips and used those to produce another large batch of N64Digitals in September 2021.


Panels of N64Digital circuit boards, ready for programming and testing.

N64Digitals packed and ready to ship.

Product Evolution and the FX-Framework

The N64Digital launched with a firmware, that while basic in some ways, was a preview of things to come in terms of innovative FPGA video designs in the Retro market. It launched with the first FPGA scanline generator to give good results at non-integer scale factors, thanks in part to it's powerful 1024-phase polyphase scaler. Free-zoom was also supported, allowing the image size to be dialed in precisely to remove black borders.


Wave Race 64 leaves much of the screen unused at 4x zoom.

With nearly 6x zoom the N64Digital is able to cleanly remove dark borders.

We continued what Black Dog Tech started with the Game-ID system, where the N64Digital can load video settings on a per-game basis. Per-game settings shines on a console like the Nintendo 64 where the picture size varies from game to game, making it a truly set and forget experience. To implement Game-ID we wrote Nintendo 64 game code which sends a custom data packet down the controller bus, similar to how the console communicates with a memory card or other peripherals. We made this code open-source and it was used as a reference for the Everdrive 64 Game-ID function, to allow the flash cart to broadcast the game being played on the N64 to the N64Digital.


The Web User Interface makes uploading custom image filters and profiles easier than ever.

While the N64Digital was loaded with features, there was something missing, the promised smoothing filter. We had promoted it as a launch feature, but it simply wasn't ready in time. We don't cut corners in our designs, and shipping yet another HQ2x or basic smoothing implementation wouldn't suffice. In another first for the retro video market, we created an FPGA XBR-class smoothing filter in a shipped product. This was a challenge due to the complexity of the smoothing filter hardware, but we were able to have it run flawlessly at 1440p clock rates on the N64Digital FPGA.

Now that the original feature goals of the N64Digital had been achieved, there was more time for exploratory work specifically with better ways to simulate CRT visual effects. Along with the MiSTer FPGA project we pushed the capabilities of FPGA shadow/slot mask filter design, culminating in our MaskFX format and WebUI based Mask editor. The MaskFX format, like our other feature implementations, cuts no corners and supports full 24-bit RGB, brightness compensation, and subpixel layout compensation. Combined with our brightness adaptive polyphase scaler, the CRT filters are truly stunning.


The new mask editor was a step forward in retro FPGA based GUIs.

The WebUI mask editor provides more comprehensive capabilites for mask developers.

Slot mask+polyphase scanlines: Aperture Grill simulation (left) and shadow mask simulation (right).

Throughout the 6 months after the N64Digital launch we released 30 firmware updates, almost one a week, with many significant feature additions. While this all may seem like overkill for a console upgrade kit, features which go beyond what even standalone scalers can do, in actuality we were creating a reusable video framework. This video framework, known as the FX-Framework, serves as the foundation for all of our future products.

Redefining the Video Scaler With the Morph

The chip shortage has proven to be an extreme challenge for electronic design and production. This caused us to re-evaluate our Morph video scaler design. Early in 2021 we re-designed the Morph PCB to work around chip availibility. Throughout the redesign we realized that other scalers were missing several critical features that could improve the overall experience. Things like video input ports that work with all signal types, expansive system software (OSD/Web Interface/CEC/Dynamic firmware loading), and awareness to the console that is connected to the scaler. This was our goal and the new Morph would be how we achieve it.


Powered by USB-C, the new Morph uses pro-grade BNC video input connectors which can accept a wide range of input signal formats.

Each console has its own quirks, and often the best experience is provided by automatically tuning the video settings to that console via profiles versus the user manually configuring the scaler each time they change consoles. From an ease-of-use perspective, the end-user shouldn't be bothered with figuring out when and where a signal converter is needed. This is all harder to achieve with a scaler that has limited signal type support on the inputs, such as RCA inputs that only accept Component YPrPb video and SCART RGB or sync inputs that can't accept both 75 Ohm and TTL signal levels. The problem is made worse with current video switchers that only work with one connector type and/or limited input signals, requiring many video adapters and signal converters, making the overall user experience far from what it could be.

This led to the development of a new product, to launch alongside the powerful Morph scaler, called the "Infinity Switch". The Infinity Switch addresses the need for an integrated scaler and video switch ecosystem. It is a modular video input switch where the end-user can build a switch with any number of inputs and combinations of input types. The Infinity Switch and the Morph can communicate with each other through a protocol known as the Infinity-Net, allowing for a seamless user experience where the Morph knows exactly what console is plugged into the Infinity Switch. Through the Morph OSD you can control the Infinity Switch and customize how it operates, which enables the Morph to load custom video profiles on a per-input basis. Analogous to per-game settings, this would bring per-console settings to the scaler market.


An Infinity Switch with 4 SCART, 3 Component, and 1 VGA input module.

The Morph OSD can select the input on the Infinity Switch and load a unique settings profile, making for a seamless experience between the video switch and scaler.

The Infinity Switch is constructed from various modules, which are: the base module, 5-BNC, VGA, 5-RCA + S-Video, SCART, and HDMI. The base module contains the processing heart of the switch which communicates over the Infinity-Net with the Morph, along with two analog outputs making it easy to connect the switch to both a digital video scaler and a CRT. The modules are plug-n-play, requiring only a screwdriver, and can be connected inline to form a rigid body switch similar in form to the GSCARTSW, or through an extension module you can have groups of modules placed around your room/TV stand.


Infinity Switch modules: base unit, 4x HDMI input, SCART, Component/S-Video, VGA, 5-BNC.

The Infinity Switch supports auto-switching, which can be enabled on a per-input basis, manual switching with a button, control via the Morph OSD, or a Web-Interface. By default the Infinity Switch does not modify the input signals, and performs no transcoding, this way the Morph receives the signal in its native format with no conversion losses. However, due to its modular design, it is possible to expand its capabilities beyond input type, with processing modules such as RGB to Component, Component to RGB, and Sync restoration modules which will provide useful when using the Infinity Switch with other scalers or CRTs.

What's Next?

With it being the one year anniversary of our company launch and the announcement of our first product, we found it fitting to reflect on the past year with this article. For our 2nd year, we will be launching the Morph and Infinity Switch in Summer 2022. We see an exciting future for the Morph as a complete product family thanks to the flexibility of the FX-Framework. After the Morph and Infinity Switch launch, we'll finish up the fun upgrade kits everyone has been waiting on for the PS2, Dreamcast, Xbox, Gamecube, Wii, and other game consoles. This really is just the beginning for Pixel FX and we look forward to see what lies ahead.