そんなやつに食べさせないでください
It’s also currently on sale at the moment, and since I had it wishlisted I went ahead and bought it. It’s an XBox play anywhere so I can play it on my PC or an XBox (though I haven’t touched my Series X in almost a year and the X1X in the bedroom in probably longer, for #reasons). Won’t be playing along with you folks here unfortunately, time constraints and backlog, but I’ll probably get to it at some point and check back in with the threads then.
Wow it looks good
This is objectively the only correct way to play Final Fantasy VII as proven by science and maths.
“You gotta use them CRT shaders bro” – Albert Einstein
Jokes aside my issue with the various ports/remasters of the PS1 Final Fantasy is that the 3D model over 2D backgrounds looks a bit odd when upscaled because high-res 3D stuff really stands out in front of the low-res 2D images.
See for instance:
Notice how in this latest screenshot the treasure chest really stands out in front of the low-res background because it’s 3D. In the original resolution it all blends much more naturally.
I agree that scanlines make the models blend in better… but they also look horrible on LCDs.
I was tempted to try CRT Simulation in a GPU Shader, Looks Better Than BFI - Blur Busters but it requires a really fast display – my 144 Hz wasn’t enough.
So that’s what “Mako” meant – 魔晄!
Devil (magic) that is so Clear!
And Shinra co. is 神羅, although I think it’s mainly meant to sound like a “real” Japanese/Chinese company name. The presence of the 神 kanji is ominous, however.
It’s more of a resolution and contrast issue than framerate IMO (especially for slow-moving games like FF). On 4k displays CRT Royale shaders look pretty convincing IMO, although it would look even better if I had an OLED with decent blacks and contrast.
I had to downscale and compress the images to post them here on discourse so they don’t look as good as they should.
Please spoiler that stuff, filthy preplayer.
@trunklayer the filthy preplayer
Square needs to simply upscale the images for the backgrounds as well. They were all made using the 3D software they had at the time so it’d be trivial to just take new pictures of the 3D models and make new backgrounds at higher resolutions. Right…?
Oh those files. They’re gone, to shreds, and the backups? Also deleted. And the ps1 source code? In the void.
Clearly the cheapest option is to make 3 entirely new games as a trilogy in a more modern style over the course of about 10-15 years depending on where you count production as starting. Square enix is very responsible with their money and would never use the MMOs for fundraising while their other projects suffer financially.
This loss is of a similar magnitude as that of the Tyrrhenika for me.
While we’re talking about old-school tech, and as an appetizer before we start the club at the end of next month, I’d like to talk about the way the music of the original Final Fantasy was made.
The composer is Nobuo Uematsu who made all the music for every Final Fantasy up to IX (and worked other Square games from the golden age like Chrono Trigger, SaGa, Front Mission and more). An absolutely incredible output that’s going to accompany us throughout this club.
So where am I going with that? Well I want to talk about my favorite track in the Final Fantasy 1 OST: the Chaos Shrine theme. Here’s the GBA version:
Most of you are probably going to play with the rearranged score: by default in the Pixel Remaster uses a modernized orchestral version (different from the GBA version posted above), although you can toggle the original music back if you want. But the version of this track that I really enjoy is the original Famicom/NES version. But before I post it here, I want to give proper context so that Uematsu’s work can be appreciated with the right context:
Modern background music in games
Since the time of the PlayStation 2/GameCube, game music is generally
handled basically by playing a music file (like an MP3, OGG, WAV…) in the
background. It’s very straightforward and extremely flexible: you can play
absolutely any kind of music from a very simple tune to a complex 5.1 surround
orchestral score, it’s just a music file.
Some modern games get fancier than that with dynamic scores that react to the
action which are usually handled with layered tracks that can be shifted in real
time, but the vast majority of modern games just play music file the way you
would in Spotify:
Sample-based BGM
This wasn’t really possible on older consoles however. Consider that the FFXVI music above takes over 3MB for a few minutes of music. Consider also
that a console like the PlayStation 1 had a grand total of 0.5MB of sound
memory. And that’s for all the sounds in the game, not just the music.
So consoles like the PlayStation or the Super Nintendo/Super Famicom do
something a bit trickier but more efficient: instead of just playing back a
recording of the entire music track, they instead had short samples for every
instrument/sound effect they wanted to use to recreate the music (and all other
SFX). So for instance you would have one very short audio file containing one
piano note, another for one drum kick, yet another for a guitar riff, one for a gunshot, etc.
Then, in order to play the music, the game just follows a partition and plays
every note for every instrument in the right order by firing hardware “voices”
that just playback one of the small samples. These voices can also change the
playback frequency (therefore allowing the same sound file to play multiple
notes by shifting the pitch up and down) and potentially loop the samples to sustain a note for instance. This is sometimes (somewhat abusively) called MIDI music.
So it basically works like a simple synthesizer where every key is bound to a
small audio sample and with the game code pressing the keys with the right
timing in order to play the music.
Here’s an illustration of it in action: I modified the emulator to display the
state of the 24 PlayStation voices in real time as I play through the intro of
Final Fantasy VII, notice how voices keep firing to play the notes of the
soundtrack, as well as every time a sound effect needs to trigger (cursor noise,
attacks, spells etc…):
This system is not as flexible as simply playing audio files because you’re
limited by the quality of the samples (remember, only 0.5MB total, so you have
to compress a lot!) and how many samples you can play at once. It still lets you
do a lot though, and as a result the soundtrack of games of that era are still
pretty complex and sound rather decent.
Waveform-based BGM
But we have to go further back. Final Fantasy 1 was released on the NES/Famicom,
and that’s significantly more primitive. For one thing, instead of the 24 voices
of the PlayStation or even the eight voices of the Super Nintendo, the NES only had
four. But actually it’s a lot worse than it sounds because the NES also couldn’t
store samples[1]. RAM was too expensive back then, the
entire system had about 5kilobytes of RAM, you’re not going to add hundreds of
kilobytes just to store audio samples.
So how is it done? By generating the sounds on the fly using simple hardware. A
very simple way to do this is simply to have a hardware counter on the CPU
clock. Then every time the counter reaches 0 to drive a “high” level on the
speakers and you reset the counter to the initial value. Then when it returns to
0 you drive a “low” level on the speakers and repeat. This generates a square
wave on the speakers whose frequency depends on the value of the counter at
initialization:
(Don’t listen to this at high volume, especially with headphones, unless you
really enjoy tinnitus)
So here we go, with a simple hardware counter we can generate arbitrary
frequencies. It sounds terrible, but if you can play arbitrary frequencies, then
you can make music. Also the NES has a few more tricks like envelopes and swipes that let you fade the voices in and out or distort the frequencies.
I said that the NES/Famicom has 4 voices: 2 of them are square waves as
described above, the third one is a triangle wave (a little better than square
waves but also more expensive in hardware) and the 4th one is a Linear Feedback
Shift Register which is basically just a way to generate white noise (think
sound effects like explosions, wind, etc.).
The LFSR channel can’t easily be used for music since it’s just noise. Sometimes it’s used for percussion sounds but that’s about it. That leaves you with 3 voices to make all of your game music: 2 square waves and 1 triangular wave. Good luck.
So the reason I wanted to make this lengthy intro is because it’s absolutely
amazing to me that Nobuo Uematsu was able to compose such compelling music given
the atrocious technical limitations of the hardware. And the theme of the Chaos
Shrine is one of my favourite bits of 8bit music ever composed, which I think you can know appreciate fully:
I think it’s amazing how moody this sounds given how simplistic the audio hardware was. Uematsu must have felt like a weight was lifted from his shoulders when he was finally allowed to compose music for more advanced hardware.
If you’re curious, I’ve extracted the individual 3 channels in this video to demonstrate how the track is composed:
ok that’s not entirely true because there’s a fifth “DMC” voice
that could play samples from the cartridge, but it was tricky to use and
therefore irrelevant to my point here ↩︎
Wow thanks for the great writeup! I was loosely aware of how the NES sound system worked, but I thought it actually had more voices. Composing with essentially only 3 very limited instruments is crazy. You can’t feel the limitation at all in Chaos Shrine. What a track.
And just for fun, here’s the same song arranged for the Tokyo Symphony Orchestra all the way back in 1989. It’s interesting to see how far it strays from the more subdued modern arrangements, immediately blasting you with those horns instead.
I can’t say I fully understand, but it sounds very impressive.
What a wonderful write up. There are quite a few FF1 songs that I prefer with the original sound as well. Chaos Shrine is a true FF1 musical masterpiece.
Too bad I read this after I already hit play.
(Thankfully I didn’t have my headphone on too high).
Speaking of CRT filters, the best ones I’ve found so far (for emulators) are these filters from CyberLabSystems. They work as filters for Retroarch, and they have presets for 1080p displays all the way to 4k displays. They do look much better on a 4k display (especially OLEDs) but are serviceable enough for a 1080p display. The built in CRT-Royale filters (especially the kurozumi filter to emulate a PVM) are not bad either, but they were a bit hard on the eyes for me.