Gradius 2 with VRC6 music?

Discuss NSF files, FamiTracker, MML tools, or anything else related to NES music.

Moderator: Moderators

Post Reply
HenrikoMagnifico
Posts: 4
Joined: Sat Aug 31, 2024 9:36 am

Gradius 2 with VRC6 music?

Post by HenrikoMagnifico »

Hello guys, this is my first post here. I've recently found out someone called Yone2008 remixed the entire Gradius 2 soundtrack in the 2A03+VRC6 format, including the Famicom-only tracks, and it's utterly amazing. You can find it here https://www.youtube.com/watch?v=JngrkD6iP1s
Anyway, I was wondering if it could be added to the game's ROM proper? I know the cartridge memory will have to be expanded in some way, but what does it take to completely change the mapper to a different one?
User avatar
Ben Boldt
Posts: 1243
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Gradius 2 with VRC6 music?

Post by Ben Boldt »

It isn't generally too hard to switch a game to use a different mapper. That part is very doable. However, it could be very difficult to get the VRC6 music coded into the game due to the following challenges:
  • It needs a music engine efficient enough to run concurrently with the game. (Guessing this was composed in Famitracker, and I don't think it gives you that.)
  • Understanding of how the original game runs its original music engine, changes tracks, plays sound effects, and how to redirect that to your new music engine.
  • It needs logic for properly handling sound effects; existing sound effects may need to be redesigned to support the new music engine.
  • If a hack like this is successful and lots of people love it, it causes cannibalization of real VRC6 carts as people want it running on genuine hardware.
I worked on a Final Fantasy Namco-163 mod with the late Disch. He coded a music engine into the game and I wrote most of the music scores running on his engine. We faced problems with sound effects. The original sound effects still played but the music engine wasn't aware that it was happening so they were both poking at sound registers at the same time, leaving stuck notes or wrong pitch notes playing. We didn't solve that. We also found problems with ALL emulators at the time, not supporting large samples, not playing some glitches correctly that we heard on real hardware, etc. We also ran into issues where different parts of the game tied into the sound engine in different ways. Cutscenes did not play music with the correct tempo when visual effects were happening, etc. These were difficult problems to solve and I found that Disch really deeply lost interest in it. Hopefully it did not feed into his decline but I am guessing that it did.

Possible, yes it is, but it is not easy.
Last edited by Ben Boldt on Sat Aug 31, 2024 4:28 pm, edited 2 times in total.
User avatar
Memblers
Posts: 4055
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Gradius 2 with VRC6 music?

Post by Memblers »

Enjoyable remix, for sure. As for changing mappers, it might be difficult in this case, without making extensive changes to the game. VRC4 uses 8KB PRG bank size, while VRC6 has a 16kB bank size, just that difference alone might be a huge obstacle.
HenrikoMagnifico
Posts: 4
Joined: Sat Aug 31, 2024 9:36 am

Re: Gradius 2 with VRC6 music?

Post by HenrikoMagnifico »

Memblers wrote: Sat Aug 31, 2024 4:19 pm Enjoyable remix, for sure. As for changing mappers, it might be difficult in this case, without making extensive changes to the game. VRC4 uses 8KB PRG bank size, while VRC6 has a 16kB bank size, just that difference alone might be a huge obstacle.
I know this will be a naive question, but isn't a bigger bank size generally good? Or if the game really depends on those 8KB PRG banks, I guess you could just use half the space available and leave the rest empty
User avatar
Ben Boldt
Posts: 1243
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Gradius 2 with VRC6 music?

Post by Ben Boldt »

HenrikoMagnifico wrote: Sat Aug 31, 2024 4:32 pm
Memblers wrote: Sat Aug 31, 2024 4:19 pm Enjoyable remix, for sure. As for changing mappers, it might be difficult in this case, without making extensive changes to the game. VRC4 uses 8KB PRG bank size, while VRC6 has a 16kB bank size, just that difference alone might be a huge obstacle.
I know this will be a naive question, but isn't a bigger bank size generally good? Or if the game really depends on those 8KB PRG banks, I guess you could just use half the space available and leave the rest empty
No, not in this case. Memblers is making a very valid point.

The way a memory mapper works is, it takes a large ROM chip, and it splits it up into pieces. It inserts those pieces into windows that are visible to the Nintendo. The Nintendo can write to the mapper to change which piece of the large ROM chip is visible in each window. What Memblers is saying is that VRC6 basically has a larger window where VRC4 has 2 smaller windows. The game's code MIGHT be changing the 2 smaller windows independently in a more specific way that can't be done with the VRC6's 1 big window. We don't know that for sure until looking more at the original game how it is using the VRC4.
HenrikoMagnifico
Posts: 4
Joined: Sat Aug 31, 2024 9:36 am

Re: Gradius 2 with VRC6 music?

Post by HenrikoMagnifico »

Ben Boldt wrote: Sat Aug 31, 2024 5:02 pm
HenrikoMagnifico wrote: Sat Aug 31, 2024 4:32 pm
Memblers wrote: Sat Aug 31, 2024 4:19 pm Enjoyable remix, for sure. As for changing mappers, it might be difficult in this case, without making extensive changes to the game. VRC4 uses 8KB PRG bank size, while VRC6 has a 16kB bank size, just that difference alone might be a huge obstacle.
I know this will be a naive question, but isn't a bigger bank size generally good? Or if the game really depends on those 8KB PRG banks, I guess you could just use half the space available and leave the rest empty
No, not in this case. Memblers is making a very valid point.

The way a memory mapper works is, it takes a large ROM chip, and it splits it up into pieces. It inserts those pieces into windows that are visible to the Nintendo. The Nintendo can write to the mapper to change which piece of the large ROM chip is visible in each window. What Memblers is saying is that VRC6 basically has a larger window where VRC4 has 2 smaller windows. The game's code MIGHT be changing the 2 smaller windows independently in a more specific way that can't be done with the VRC6's 1 big window. We don't know that for sure until looking more at the original game how it is using the VRC4.
So unless someone manages to make a disassebly out of this game, we'll never know the contents of its code for sure? Well...it's kind of a bummer, to be honest
Catyak
Posts: 55
Joined: Mon Apr 25, 2022 4:33 pm

Re: Gradius 2 with VRC6 music?

Post by Catyak »

HenrikoMagnifico wrote: Sat Aug 31, 2024 4:32 pm
Memblers wrote: Sat Aug 31, 2024 4:19 pm Enjoyable remix, for sure. As for changing mappers, it might be difficult in this case, without making extensive changes to the game. VRC4 uses 8KB PRG bank size, while VRC6 has a 16kB bank size, just that difference alone might be a huge obstacle.
I know this will be a naive question, but isn't a bigger bank size generally good? Or if the game really depends on those 8KB PRG banks, I guess you could just use half the space available and leave the rest empty
Smaller banks are more desirable because they allow you to more efficiently use the cartridge space. VRC6 is weird in that it has both a 16K bank and a 8K bank, with one 8K fixed bank. VRC4 has two 8K banks and a 16K fixed bank. Porting a game that uses a smaller bank size to a larger bank size is generally non-trivial.

If you want more information on this, here's a relevant video by Displaced Gamers:

https://www.youtube.com/watch?v=gOwhDcI3oMA
HenrikoMagnifico
Posts: 4
Joined: Sat Aug 31, 2024 9:36 am

Re: Gradius 2 with VRC6 music?

Post by HenrikoMagnifico »

I just realized something, wouldn't it be possible to check the game's code via Mesen to see any VRC4-specific stuff? Or does it not give enough info? It's just a debugging tool, but maybe it's better than nothing at all
User avatar
Ben Boldt
Posts: 1243
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Gradius 2 with VRC6 music?

Post by Ben Boldt »

Yes, absolutely. You can use the debugger to set breakpoints at each mapper register write. You can get a general idea how it is using the mapper this way. I did this actually and I noticed that in some cases, it writes the 8k bank, then +1 to the other 8k bank, so this is treating it just like a 16k bank. However, there was a different spot that did appear to have the ability to treat them independently. I didn’t dig any deeper to observe that happen but I am guessing that it could.

You should play with the debugger. It is the best way to get started and it is really fun, dare I say more fun than playing the games. :mrgreen:
Post Reply