What's the last challenge for the Super Nintendo emulator that aims for '100% reproducibility'?


Nicholas Wang

' Bsnes ' is Super Nintendo Entertainment System , and is a Super Nintendo Entertainment System of the overseas version of Super Nintendo Entertainment System is the emulator to reproduce the behavior of (SNES) on the PC. Mr. BYUU, who has been developing bsnes for 15 years, explains the 'last wall' that comes up to complete the emulator with 100% reproducibility.

How SNES emulators got a few pixels from complete perfection | Ars Technica

The Super Nintendo, launched in November 1990, celebrated its 30th anniversary in 2020, and many volunteers have been developing emulators behind its long history.

BYUU's emulators for Super Nintendo are roughly divided into two types: higan, which aims for absolute reproducibility, and bsnes, which focuses on performance, functionality, and ease of use. And BYUU says both can play almost all of the officially released SNES and SNES titles. Exceptions are the full-fledged golf simulator game `` Laser Birdy '' which selects the flight distance and ball type with the laser beam emitted from the tip of the club, ` ` The Super Nintendo LifeCycle Exertainment Bike '' integrated with the exercise bike, service until 2015 It uses peripheral devices that are difficult to emulate, such as Super Nintendo betting ticket purchase software ' JRA-PAT '.

Once it was said to be impossible Super FX chip emulation, in the HD image quality mode 7 to the corresponding , widescreen support , further reduction of the delay , such as, is BYUU, who said, 'bsnes has been achieved in recent years remarkable progress' One of the biggest challenges in pursuing the 'perfection of 100% faithful emulation' was the image processing unit (PPU), which generates the video frames sent to the screen.

The following image shows the component diagram of SNES, where the arrows indicate that the processors can communicate with each other, and the dashed line is the connection by the memory chip . Mr. BYUU points out that `` Video output (Video Output) is output directly from PPU and audio output (Audio Output) is output directly from DSP which is a sound source chip '', what is happening inside PPU and DSP That it functions as a black box that can't be figured out.

SNES is equipped with a crystal clock that operates at about 21 MHz and a ceramic resonator that operates at about 24 MHz. The crystal clock controls the CPU and PPU, and the ceramic resonator controls the DSP and SMP, its control chip. Clocks are an important factor in determining timing in various systems, and game software is designed to perform various tasks according to this frequency. Emulators are required to handle tasks exactly like hardware, so the timing of this clock must be reproduced in software.

The timing of voice processing by the DSP and task processing by the Super FX chip took enormous development costs and time, and succeeded in reverse engineering of the chip. However, according to BYUU, PPU is a 'true black box' and has a very hard time because there is no way to directly monitor the content being processed in it.

As to why PPU emulation is important in pursuing the accuracy of the SNES emulator, BYUU cites the shooting game ' Desert Fighter: Storm of the Storm ' released by Seta in February 1994 as an example.

In the movie below, you can see what kind of game Desert Fighter: Sand Storm is like.

[SFC] Desert Fighter (J)-Intro & Demo Play-YouTube

The game is said to make the emulator cry, and one of the reasons is the shadow of a fighter drawn down in the desert. This shadow is five scanning lines because they are represented by changing the brightness of the screen display on, looking at the play of the game, the shadow of movement and shape will be slightly unstable. This shadow is not just an effect, but a guide for fighters to bomb ground facilities. Therefore, it is very important to grasp the shadow to play the game satisfactorily, but it is very difficult to reproduce this shadow with the emulator.

Also, the Desert Fighter: Sand Storm pause screen uses a technique that draws a gray line on the screen by enabling background layer 3 on the left side of the pop-up window and turning it off on the right side. You. Then, by switching the scanning line that displays this gray line alternately every other frame, the overlay swings.

Desert Fighter: The moment you paused in Operation Sand Storm can be seen in the following movie at around 6:05.

[Jikkatsu NES Vol.238] Desert Fighter Sand Storm Strategy (Super NES / SNES)-YouTube

The technique of obtaining a special effect by scrolling or expanding and contracting the screen according to the timing of the scanning line is called raster scrolling , because it creates a 3D simulation in a game before polygons are adopted. Was used for Raster scrolling games are rendered in hardware, so it is very difficult to reproduce them with an emulator that performs complete software rendering. The timing of processing differs depending on the software, and it is not known what kind of processing is being performed by the PPU, so it seems that some conventional emulators could not reproduce this raster scroll sufficiently depending on the software.

Therefore, BYUU seems to be trying to analyze the PPU used for SNES by connecting it to a logic analyzer . However, the logic analyzer is difficult to control and is not practical.

by Billie Grace Ward

BYUU says that PPU analysis has taken a step further by scanning the SNES PPU dies in recent years. However, according to BYUU's rough estimate, it takes 600 hours to map two PPUs from a scanned image and reproduce them with software. 'This is well above the level of donation alone, and we've reached the territory where we expect people with very high levels of skill to volunteer to work on our projects,' says BYUU. He says.

BYUU said, `` I've done everything I can with my SNES emulator project, but I need help to get this last challenge done, '' says bsnes' contribution to the GitHub project and PPU. We are looking for cooperation, such as research discussions on the internal mechanism of.

in Software,   Hardware,   Video,   Game, Posted by log1i_yk