MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-ROM

A place that you can discuss reproduction of classic titles or "licensed-for-reproduction" homebrew for personal use.

Moderators: B00daW, Moderators

Forum rules
1. NO BLATANT PIRACY. This includes reproducing homebrew less than 10 years old, with the exception of free software.
2. No advertising your reproductions, with the exception of free software.
3. Be nice. See RFC 1855 if you aren't sure what this means.
yogi
Posts: 133
Joined: Sun Nov 17, 2013 8:14 pm
Location: Bowie, Maryland

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by yogi »

qbradq wrote:Yogi,

Using the original Kazzo board with the original firmware and client software, you could read and write SRAM on unmodified NES carts. Based on those reports, and the assumption that INL's programmer is 100% backwards-compatible with the Kazzo, you should be able to buy one of his programmers and boards and do the following:

1. Flash the programmer with INL-Retro firmware
2. Use the INL-Retro software (or the inlprog Linux utility) to flash the program and / or character ROM area(s)
3. Flash the programmer with Kazzo firmware
4. Use the Anago software (or the Linux port) to read or write the SRAM area

I will try to confirm this tonight if I have time.
Thanks for your help/testing, qbradq. I do remember seeing a post in this thread (? or may be the Kazzo one) that touched on writing Saves to WRam with Anago, but no how to. Last night I read the Anago readme, it shows an example of this; so I'm feeling sheepish, should have started there.
Having this ability on non-flash carts is HUGE for me, rechipping a SNROM with Neil B's NTRQ ATM.
Yogi
User avatar
qbradq
Posts: 952
Joined: Wed Oct 15, 2008 11:50 am

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by qbradq »

Right, so the Anago software that I ported does not have SRAM read function, and the Unagi software that does have that option is not finding the board. Not sure what's going on there, and I can't test it on Windows.
yogi
Posts: 133
Joined: Sun Nov 17, 2013 8:14 pm
Location: Bowie, Maryland

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by yogi »

qbradq wrote:Right, so the Anago software that I ported does not have SRAM read function, and the Unagi software that does have that option is not finding the board. Not sure what's going on there, and I can't test it on Windows.
I know I read it somewhere, may have been the Unagi readme. At this point I've been reading all I can find and getting a bit crossed eyed.
You're running Linux, right? I'm still holding onto XP for dev and such; so I'll be working it out when my stuff shows up, no biggie for now.
The bottom line is that the hardware is capable and the orig AVR firmware should be capable also. Not sure about the differences between Anago and Unagi, the latter being enhanced. Are they GUIs that use the same firmware, or are these two separate firmwares!?! Back to the downloaded zips to check this.
Thanks again qbradq
Yogi
EDIT: Ok so checked the packages for Anago and Unagi downloads, there two anago_en.txt readmes that are almost the same but only one mentions the ram saves, so may be in one but not in the other. Very confusing. Will have to install both and check them out I guess.
User avatar
qbradq
Posts: 952
Joined: Wed Oct 15, 2008 11:50 am

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by qbradq »

Unagi is the legacy software that supports a number of older parallel port programmers in addition to the Kazzo. Anago is a stripped-down version of Unagi that only supports Kazzo, but left out the SRAM function. The Kazzo firmware supports this, however.
yogi
Posts: 133
Joined: Sun Nov 17, 2013 8:14 pm
Location: Bowie, Maryland

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by yogi »

Cool, thanks. Clears things up for me.
Yogi
User avatar
HardWareMan
Posts: 206
Joined: Mon Jan 01, 2007 11:12 am

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by HardWareMan »

My MMC1clone with state display, lol.
Image
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by infiniteneslives »

Looking good! Also very impressive that it plays DVDs, VCDs, and mp3s. ;)
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
User avatar
HardWareMan
Posts: 206
Joined: Mon Jan 01, 2007 11:12 am

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by HardWareMan »

infiniteneslives wrote:Looking good! Also very impressive that it plays DVDs, VCDs, and mp3s. ;)
That's CTRL register status. :3
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by tepples »

But using a DVD as a background, as in the old LaserDisc games and Beatmania IIDX, would be sort of cool in its own way. "Write to this register to select a chapter, then poll this register to synchronize with the frame number..." Even just an MP3 player interface would work as a poor man's MSU1 on any Famicom or audio-modded NES.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by infiniteneslives »

New (3rd) revision of the boards in today! :)

Nothing drastic changed, but there were a number of tweaks and improvements:

*Support for surface mount CHR-ROM flash (PLCC-32)
*Changed packages on chr-ram as I'm retiring the original soic-28 packaged SRAM
*Increased PRG-ROM flash to 1MB
*Increased WRAM from 32KB to 128KB
*Cut support for DIP WRAM to gain some space, I'm pretty sure it was never used by anyone on earlier revisions
*Added jumpers to support for color dreams, VRC family, and a stripped down nsf mapper
*Added jumpers to simplify assembly of MMC2/4 mappers so I can finally fully release these
*fixed multiple minor errors, silk, etc.


Image
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
yogi
Posts: 133
Joined: Sun Nov 17, 2013 8:14 pm
Location: Bowie, Maryland

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by yogi »

Nice! You caught my attention with NSF mapping and VRC support :)
I've been on a OPLL tear last few days (week), dropped a little money on EBay for a few YM2413s (prob clones but were very cheap to mess around with) mainly for adding FM to GameGear. But also interested in VRC7 sound; which brings me to a thread that may be old news here:
http://www.famicomworld.com/forum/index ... pic=8888.0
Not that I am too interested in the FC Basic patch but the YM mod does seem cool.
So one thing leads to another:
1 Do you plan support for VRC7 sound? Verilog/VHDL IP core?
2 Could there be a config on the rev3 board somewhat like your Sunsoft 5B but with a YM2413 chip. CPLD doing the VRC7 mapping and interfacing to a YM chip. Just the proto space and mapper would be good too, I could mount the YM and mixer components, given access to the data and control pins.
I know there are issues/differences with the ROM instruments and channel count but it seems like the YM2413 would be somewhat backwards compatible, to a point. The other issue would be emu/tracker support, but I feel this is not too big of an issue.
With only one game ever using the VRC7 sound, the expanded audio from the YM chip would mainly affect new music titles. Seems like the chiptune community would welcome the added hardware sound for new compos, even if it's not 'authentic' Nintendo.
Yogi
User avatar
rainwarrior
Posts: 8062
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by rainwarrior »

VRC7 is a little problematic, since the VRC7 has a custom patch set that is not shared by the YM2413. You can put a YM2143 on an NES board, but it wouldn't be great for a Lagrange Point repro. All of the tunes will sound at least a little off, some a lot.

It might be a fun board to play with, but you could put any popular FM chip on there, really. Why stick with the YM2413 specifically? Why not stick something better on there? OPL2? OPL3?

Another approach might be to try and replicate the digital logic and patches of the VRC7 with a CPLD but I imagine this would be difficult, since it is quite complex.

The VRC7 is well liked by a small portion of the chiptune community, especially since Famitracker supports it well. A few of us have played new tunes through a Lagrange Point cartridge now and then.
lidnariq
Posts: 10677
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by lidnariq »

Forever ago, I bought a sound blaster clone card that had implemented the OPL2 in an 8051 clocked at 12MHz (≈ 500KIpS) with an 8 bit R-2R-4R-&c resistor DAC.

We should be able to reimplement the VRC7's synthesizer in a fast modern microcontroller just fine, especially given that the Lagrange Point code waits at least 6µs between writes. The original implementation uses two lookup tables ( log(sin(x)) and exp(x) ) and an adder, so it's not like a multiplier is needed.

Anyway, it doesn't make any sense to enshrine the YM2413 as an "officially allowed" wrong way for the VRC7 to sound.
yogi
Posts: 133
Joined: Sun Nov 17, 2013 8:14 pm
Location: Bowie, Maryland

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by yogi »

rainwarrior wrote:VRC7 is a little problematic, since the VRC7 has a custom patch set that is not shared by the YM2413. You can put a YM2143 on an NES board, but it wouldn't be great for a Lagrange Point repro. All of the tunes will sound at least a little off, some a lot.

It might be a fun board to play with, but you could put any popular FM chip on there, really. Why stick with the YM2413 specifically? Why not stick something better on there? OPL2? OPL3?

Another approach might be to try and replicate the digital logic and patches of the VRC7 with a CPLD but I imagine this would be difficult, since it is quite complex.

The VRC7 is well liked by a small portion of the chiptune community, especially since Famitracker supports it well. A few of us have played new tunes through a Lagrange Point cartridge now and then.
See your point but putting aside the only produced cart, LP, all other titles are 'new' compos, not that 'new' is bad but there isn't a huge repo lib to support. So for me, compatibility isn't too much of an issue. Yes it would be a new Expo SND board that is 'very similar' to VRC7, so it may not appeal to everyone.
The similarity to VRC7 would help ease the hardware side as well as the software. With an OPl2/3 there is the external dac as well as the more complex control/patch software. At least with the YM2413, the reg structure is the same; so the changes for tools supporting VRC7 to adding support for the OPLL should be slight. Of course the sonic possibilities are so much greater with an OPL, but it's hard to see the NES competing with AdLib Tracker ][ . For me, the YM2413 makes more sense on a small system, ala MSX.
I'd love to have a CPLD/FPGA VRC7 cart but till one is available this kind of hack could be very fun.
And OT, been enjoying your ref recordings Thank You!
Yogi
yogi
Posts: 133
Joined: Sun Nov 17, 2013 8:14 pm
Location: Bowie, Maryland

Re: MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-R

Post by yogi »

lidnariq wrote:Forever ago, I bought a sound blaster clone card that had implemented the OPL2 in an 8051 clocked at 12MHz (≈ 500KIpS) with an 8 bit R-2R-4R-&c resistor DAC.

We should be able to reimplement the VRC7's synthesizer in a fast modern microcontroller just fine, especially given that the Lagrange Point code waits at least 6µs between writes. The original implementation uses two lookup tables ( log(sin(x)) and exp(x) ) and an adder, so it's not like a multiplier is needed.

Anyway, it doesn't make any sense to enshrine the YM2413 as an "officially allowed" wrong way for the VRC7 to sound.
I've been thinking along similar lines for awhile. Have seen/heard some amazing work on dsPICs over at electro-music.com. As well as this:
http://www.roninsynth.com/
Which is a dsPIC synth shield for the Arduino, but the basic dsPIC hardware/firmware could be used.
Anyway I'm just looking for an easy fit, I feel like new synth HW should be developed on new platforms. For me, one could go all out trying to turn a NES into a Shruti synth, but would probably be better just making a better Shruti in the first place.
VRC7 seems to be a subset of the OPLL so it's not too alien and INL's board may be able to host it with minor effort. Just seems like a good fit ATM if there is mapper support.
Yogi
Post Reply