This album is excellent!

Excellent stuff man - I could never find a straight answer for all of the models!

Unfortunately those commercial USB to parallel port adapters typically don't provide (I haven't seen one that does yet) a fully compliant port - they are basically stripped down to work with legacy printers.
Also, any code I've dealt with so far needs a physical address (LPT1/0x378) in order to work. I found this out the hard way when I did some development a few years ago.
You're welcome to try it, but just a fair warning before you buy anything!

84

(224 replies, posted in Nintendo Consoles)

ant1 wrote:

Someone missed some sarcasm I think tongue

Big time smile

85

(20 replies, posted in Nintendo Consoles)

Looks sharp! Nicely done man.

86

(8 replies, posted in Releases)

YES

Modified version of FCEUX that dumps all of the serial writes over to the NES, does .nsf and ROMs. I haven't seen any lag, no samples yet, maybe later.

For all you guys that are too hardcore to emulate the sound, but not hardcore enough to buy the games wink


Also modified famitracker to do the same!


Back to FaMI..

88

(105 replies, posted in General Discussion)

likeluke wrote:
herr_prof wrote:

Internet streaming NSF server that streams nsf data to HARDWARE. Maybe using this?

http://www.batslyadams.com/2009/12/nes- … video.html

like an NES disklavier! i would be down with this!


Since I'm a fan of you both (herr_prof & likeluke).


Modified version of FCEUX dumps all sound register writes and passes them to the NES via serial. Working on a version that plays nsfs at random, maybe one that responds to tweets and plays a random song from a game when someone does an @mention?
No slowdowns / hiccups. No samples either, but maybe later?

mr.spastic wrote:

this looks like a really amazing tool. i look forward to experimenting with it. great job.

Thanks man! I'm really sorry I missed you at 8static, I really dig your music.

nitro2k01 wrote:

The Atmega168 has hardware support for SPI, which might or might not be abusable for faster Arduino->Controller port speeds.

Ah yeah I tried that on my initial approach! After fixing (speeding) up the arduino core source code I found that it was even faster to have the interrupts respond to the "clocks". The SPI stuff uses digitalWrite(n) as far as I can remember which is fine for most applications, but accessing the port directly makes a huge difference in speed. PM me if you're interested the gory details, I'll release my code soon and show you what I mean smile

I'm going to put up a couple of videos tonight of some other stuff I've done with the interface. Then more work on FaMI!

90

(224 replies, posted in Nintendo Consoles)

Outstanding!

Neil: I still have some of the videos from the original tests, do you want me to upload them?

Outstanding! Please continue working on it.

92

(29 replies, posted in Nintendo Consoles)

Congratulations on a tremendous release!
Here is the arduino setup in action -  sliders control MIDI CC messages in glitchNES.


You can take advantage of "analog" values this way!
CC01: Delay speed (0-127)
CC02: Bank select (0-7)
CC03: Nametable select (0-7)

I'll post a full list when it's finalized. I'll be posting the source/schematic for the modified version of glitchNES + arduino code in the next week or so. If you use a laptop for performances I'm writing a GUI that you can use to control a real NES without picking up a gamepad.


The music in the is video courtesy of the amazing animalstyle.

akira^8GB wrote:

What do you think about my MIDI instruments idea, batsley?

I totally dig it - I'm trying to get all of the basic MIDI features to be perfect (velocity is working now - next is a smooth pitch bend!). I'll probably release it once those are working even though the sounds might be kind of boring. I'd love feedback from musicians as to what kind of stuff I can add for the next version - do you have a powerpak/devcart by the way (akira)?

blargg wrote:

We're talking broadband, man!

I like the way you think!

animalstyle wrote:

$111111111111111K
$H17
Y0


Bought a KORG nanokontroller today - modified the great logoNES to take CC messages!


Things are coming together nicely.

Blargg - you're exactly right.

I do save the incoming data to two registers (command & value). That explains the ~100kbps rate in the picture - I had to slow it down a bit for the arduino. The reason I chose the arduino was that most people already have it and it seemed to be just fast enough to pull this off. It hasn't been all that pleasant though - there are a bunch of background timers that trigger an overflow interrupt routine (that I can't seem to disable)  - if it happens within the sending routine it causes a random delay. The best case I've seen from a response time from a LDA $4017 is ~2 usec but the worst case has always been <10us - which makes the previous stuff okay. I may create a board using a PIC that would give me greater control and would let me approach those ~400kbps speeds- but I wanted to make this stuff as accessible to as many people as possible (which is why I chose the simple opcode routine).

I'm super impressed that you got 115kbps working with software serial - it was clever to use the CTS line - I hadn't thought of that on my initial approach. I'm a big fan of your other work (the DMC saw stuff is amazing) - if you ever want to talk code I PM'd you my email.

Hey guys - made some major progress today.

I've sped up the transfer rate considerably (>100Kbps) by optimizing the arduino code / unrolling the NES controller loop.

I'm hoping that people will develop stuff for this. You really only need to be able to program something that can write to the serial port which can be done really easily with something like processing. Everything works on 2 byte messages formatted as ([command] [value])- I've put up a list of the ones I'm using so far.
PC->NES Transfer Tool Opcode List
For instance - some pseudo code for writing a message to the screen.

String message = "Hello world!"
// Set the VRAM address to the top left of the name table (0x2000)
Serialport.write(0x01, 0x20); // 0x01 -> Set PPU MSB
Serialport.write(0x02, 0x00); // 0x02 -> Set PPU LSB
for(int i=0; i < message.length; i++)
{
    Serialport.write(0x04, message[i]); // 0x04 -> Write tile to screen with blip - increment to next position
}

That's it - the program gives you full access to the PPU/APU  (sort of like an API) so you can pretty much do whatever you want with it. Should be handy for VJ applications - back to working on FaMI!