I hope I didn't give the impression that I was criticizing, it really wasn't my intent. I'm very impressed with your work and want to see a midi synth happen.
infiniteneslives wrote:Well the project isn't intended to be a mapper development tool, the intent is for me to design the mapper and supply it for game development.
Understood. I wasn't really thinking about re-inventing the mapper wheel. Just seeing a really great platform to develop a midi synth on.
For my limited tunnel vision, an 'Ideal' platform provides enough rom and ram area for a basic NES UI and sound engine, with a memory mapped data port for a midi synth/bridge controller. As far as mappers go MMC1 is probably over kill, just as long as there is expanded WRAM for processing note and effects data. As I look at the V2 board all the elements are in place!
I totally understand your POV, the majority of this community has a very different focus, but there are a great many folks that would welcome an alternative to the midiNES. There was a bit of a let down with the Chip Maestro project, because hopes were very high, even though Jarek's design is pretty good and worked as planned. I see a lot more possibilities with your board.
That said, I'd be more than willing to help someone who wanted to develop their own mapper using the board by providing pinouts and schematics and such. But developing a mapper of this nature isn't a simple task, I'd expect someone interesting in doing something like that to want to take off the arduino training wheels and develop for the raw atmega. I'm not very savvy in the arduino ways, but as I understand the idea of cycle counting and writing assembly for time critical operations is beyond the scope of most arduino users.
I think I have you schematics that you posted a one point (but could've been the Kazzo), just need to load the CAD package that you use, only have Eagle installed ATM.
You're right in that trying to run C or C++ on a 8 bit mcu has lots of limits, but Arduino code isn't much worse than AVR C. In line assembly is allowed but few people use it, true. With a cart specific lib to handle the NES interface, a developer could get about their project a little quicker.
The advantage is the abundance of code examples with the Arduino; finding AVR assembly examples would be difficult in comparison. So getting a project off the ground would be faster, but more limited; although at almost 16 MIPS the hit isn't to bad. And sharing the note processing on the 2A03 helps as well. There are tons of midi related projects that are pure Arduino so performance wise it's not TOO bad.
That and the arduino requires a separate mcu just to program the thing, where V-usb only needs a set of diodes and some resistors.
Well, yes and no. The Uno (based on the ATMega 328) uses the UART, regular old TTL RS232; but to add USB, a FTDI chip is needed. An external USB/serial dongle would do; could be switched out for 5 pin midi din dongle depending on the user's setup.
The serial/USB connection can also be used for console IO or midi over USB at runtime, and in the context of a synth would be useful. I could see Famitracker redirecting it's output to a NES for live play.
As I understand, V-usb is bit banged? This could be a problem for use with a real time midi app. Using the HW UART takes a tremendous burden off the uC.
What part is incompatible? AFAIK once the code is on the mcu and up and running it really isn't an arduino anymore, it's just a standard avr. Arduino is the IDE and means of getting your compiled code onto the avr. If someone knew what they were doing I'm pretty sure they could take a synth developed on an arduino and get it up and running on this board just as long as they didn't rely on the TTL serial port while operating. Either that or just convert it to the arduino means of programming yourself.
Well, the xtal (don't know what clock speed you are planning on), bootloader and the HW UART with a CTS/RTS controlled reset are really the only 'Arduino' specific elements, so lets say closer to 98%
I'm not an expert on the Arduino firmware's internals, but I think there are runtime accessible communication routines the IDE expects to be there, so it's a little more than just a boot loader AFAIK. But no it's not byte-code like a Basic.
Goes without saying that there isn't anything magic about the Arduino. Anything that can be done in C++ can be optimized in assembly, it's just a matter of skill and time available.
Your board is a great platform as is and will make a good synth in the right hands. But finding people that are AVR/6502/Midi competent programmers and motivated to spend the time on this kind of project, is a challenge. The net is just wider by including the Arduino community is my only point.
Tell ya what. I need to move things around on the ports anyways after realizing I don't want the data bus on PORT D (which is where the Rx/Tx pins are). So that works out nicely. I'll ensure that those pins are available for use buy a developer via solder pad. So you'd have to attach your own TTL serial programmer, but there wouldn't be any pcb hacking necessary to do so. I'm not going to say it's an arduino, but I'll make it as easy as I can for someone to convert it to one on their own.
YES That would work very well. Whenever the redesigned boards are available I'll definitely have a go at one.