Concept for actually making VIN useful - "MBC-5B"
Posted: Mon Jun 19, 2017 8:39 pm
After some extremely crude fun messing around with LSDJ and enabling VIN to play Famicom expansion chips behind LSDJ tracks, I got to talking with B00daW and others to see about making an MBC5-compatible cart with an on-board sound chip that people could actually use. I don't have any hardware prototypes out and probably won't for a bit, mainly because I want to know if it's possible and need help getting it out of my head.
When I first mentioned it in a Discord server, someone mentioned possibly making a special version of their sound driver that was compatible with the new sound chip, the only thing they needed was for it to show up in a predictable memory location. Looking at these wiki'd Pan Docs pages, the area from $6000-7FFF isn't mentioned, so assuming it's not mirrored from $4000-5FFF (I honestly don't know), it could be used. Me being a massive Sunsoft 5B fanboy, I elected to try using the YMZ284 since it's bigger brothers are extremely well-known and documented (also where the tentative "MBC-5B" name comes from. I'm not aware of an actual B-revision of the MBC5 so it's perfect!). Taking from this, I looked at the 5B Audio page on the NESDev Wiki and saw that the 5B uses a space twice as large for its control on the Famicom, namely $C000-DFFF and $E000-FFFF. This is where my problem is.
The YMZ284 is a very straightforward chip to wire up, but for me not being SUPER into hardware, the addressing is a bit tricky. All the data lines are obvious, GB /WR can go to YMZ /WR (reads don't work on the YMZ anyway), /IC to RESET, and all that's left are Vcc/Vdd, OUT, /CS, and A0, the YMZ's sole addressing pin. These last two are my issue.
1. Can the area from $6000-7FFF be used for this with the MBC5?
2. If it can, can the YMZ be controlled with $6000 (SN5B equivalent $C000) for Address Select, and $7000 for Address Write (SN5B equivalent $E000)?
3. How would the wiring for such a scheme be?
In my opinion, VIN is the last "well-known" Cool ThingTM about the GB that I don't think's been taken advantage of enough, or at all really. Implemented and used, yes, but not taken advantage of. Nanoloop 1.5's phase square and Mono's drum synth are cool and all, but not very practical or "useful" in my mind as 1.5's implementation is a simple extension of ONE hardware channel, Mono doesn't let you use the internal sound, and neither one can be used for anything other than their namesake program's purpose, simple 16-step loops. I hope this concept can reach a stage where people can use it to its full potential. Since the aim is to be MBC5-compatible (first by using a real MBC5), it can be used as-is, but if someone wants to make a homebrew program to take advantage of 3 new channels, the option will be there too. Thank you in advance for any help.
When I first mentioned it in a Discord server, someone mentioned possibly making a special version of their sound driver that was compatible with the new sound chip, the only thing they needed was for it to show up in a predictable memory location. Looking at these wiki'd Pan Docs pages, the area from $6000-7FFF isn't mentioned, so assuming it's not mirrored from $4000-5FFF (I honestly don't know), it could be used. Me being a massive Sunsoft 5B fanboy, I elected to try using the YMZ284 since it's bigger brothers are extremely well-known and documented (also where the tentative "MBC-5B" name comes from. I'm not aware of an actual B-revision of the MBC5 so it's perfect!). Taking from this, I looked at the 5B Audio page on the NESDev Wiki and saw that the 5B uses a space twice as large for its control on the Famicom, namely $C000-DFFF and $E000-FFFF. This is where my problem is.
The YMZ284 is a very straightforward chip to wire up, but for me not being SUPER into hardware, the addressing is a bit tricky. All the data lines are obvious, GB /WR can go to YMZ /WR (reads don't work on the YMZ anyway), /IC to RESET, and all that's left are Vcc/Vdd, OUT, /CS, and A0, the YMZ's sole addressing pin. These last two are my issue.
1. Can the area from $6000-7FFF be used for this with the MBC5?
2. If it can, can the YMZ be controlled with $6000 (SN5B equivalent $C000) for Address Select, and $7000 for Address Write (SN5B equivalent $E000)?
3. How would the wiring for such a scheme be?
In my opinion, VIN is the last "well-known" Cool ThingTM about the GB that I don't think's been taken advantage of enough, or at all really. Implemented and used, yes, but not taken advantage of. Nanoloop 1.5's phase square and Mono's drum synth are cool and all, but not very practical or "useful" in my mind as 1.5's implementation is a simple extension of ONE hardware channel, Mono doesn't let you use the internal sound, and neither one can be used for anything other than their namesake program's purpose, simple 16-step loops. I hope this concept can reach a stage where people can use it to its full potential. Since the aim is to be MBC5-compatible (first by using a real MBC5), it can be used as-is, but if someone wants to make a homebrew program to take advantage of 3 new channels, the option will be there too. Thank you in advance for any help.