Thursday, December 23, 2010

Oh yes I'm working on new stuff...

No updates for a while, its because I can't disclose my new stuff yet.
Sad because theres LOTS of research in there.

I'm hoping to post a glimpse at NAMM 2011.

Friday, November 5, 2010

New research on the SID ADSR

My previous post on the SID ADSR tables on the SID DIE left a question unanswered about the exact method by which the chip manages to apply the level changes in the envelopes at certain points in its decay/release stages.

Lucky for us, Frank Wolf took upon the challenge, and I'm quite priviledge to be allowed to publish his research on this blog.

So here is his analysis of that problem....

(high res)

6581 Envelope Generator (26.10.2010)
----------------------------------

In the upper part you can see the R-2R ladder; on the left is the MSB (Bit 7) of the 8 Bit counter.

Logarithmic Table
-----------------

Now take a look a the Table part! Here's the table in ASCII Form and reduced to the values on 'B' lines (please note the every second bit of the 8Bit counter is negated, i.e. the signal line is mirrored A<->B!)

B7 |B6 |B5 |B4 |B3 |B2 |B1 |B0  |Fixpoint|Signal line*
0   0   0   0   0   0   0   0     = 0x00    5
0   0   0   0   0   1   1   0     = 0x06    4
0   0   0   0   1   1   1   0     = 0x0E    3
0   0   0   1   1   0   1   0     = 0x1A    2
0   0   1   1   0   1   1   0     = 0x36    1
0   1   0   1   1   1   0   1     = 0x5D    0
1   1   1   1   1   1   1   1     = 0xFF    6

*The numbers of the signal lines have been chosen to match the numbers of the selector bits!

Every possible "Fixpoint" is compared to the 8 bit counter value keeping only one(!) of the seven signal lines "high" in case of equality. To be more exact: The lines are pulled down in case of inequality.
















The 5 selector bits for the logarithmic table are generated by feeding each of the the signal lines 0 to 4 into a simple flip-flop to "set" it. Output of the flip-flops is active "low"!) Additionally both adjacent signal lines are also fed into the flip-flip to "reset" it; resulting in a "high" level output.


Example:

Selector bit|
Signal line | "Reset" signal lines
0             1, 6
1             0, 2
2             1, 3
3             2, 4
4             3, 5

Sustain value
-------------

The 4 bits from the sustain value register are connected to:

Sustain bit 0 to Counter bit compare 0 + 4
Sustain bit 1 to Counter bit compare 1 + 5
Sustain bit 2 to Counter bit compare 2 + 6
Sustain bit 3 to Counter bit compare 3 + 7

So they are (as already known and verified through tests) compared like:

0x0 (S) == 0x00 (Cnt)
0x1 (S) == 0x11 (Cnt)
0x2 (S) == 0x22 (Cnt)
.
.
.
0xE (S) == 0xEE (Cnt)
0xF (S) == 0xFF (Cnt)

Friday, September 10, 2010

VIC-20 (CR)'s bad waveform clipping.

Poor MOS6560, it could so much better outside a VIC-20!

For chipsounds 1.0, I got the help of eslapion from the Denial forum to analyze the RC filter output of the VIC-20. Eslapion got me to learn how to understand the link between the resistors and capacitors and how to extract the exact low pass filter coefficients that was needed to implement in DSP. It simply turns out to be a 1.6Khz one pole low pass filter. (third party confirmation here).

Such a low cutoff makes for one REALLY DULL sounding chip

But that's not the only sound coloration present on the real VIC. There is also quite a bit of clipping going on when all voices play at once. This clipping does add quite a bit of character when there are a combination of more than one pulse voices playing, as well as the noise channel.

Lets look at the phenomenon on a scope:







Quoting Eslapion:

"The specs sheet of the 6560 specifies the audio pin has an output impedance of 1kOhms. This impedance interacts with C9 (0.01uF) to create a 1st order low pass filter of 15.9kHz.

This is followed by R8 (1kOhms) and C10 (0.1uF) which combine to create another 1st order filter of 1.6kHz.


In other words, these two filters combine to provide a 20dB/decade attenuation from 1.6kHz to 16Khz and then 40 dB/decade above that.

Q1 acts as a current multiplier to ensure enough driving power on the final output but, as we can see, R27 acts as a pull down only device and there is no biasing. The output of the 6560, multiplied by Q1 pulls up and R27 pulls down.

Add to that, the fact that the volume control induces a DC offset.

DC offset values for register 36878: (average) (values picked after R8)
0:4.06
1:4.17
2:4.28
3:4.41
4:4.53
5:4.64
6:4.76
7:4.86
8:4.95
9:5.06
10:5.17
11:5.27
12:5.37
13:5.47
14:5.56
15:5.64

This DC offset, on the final output, is cancelled out by C11 which combines with R27 to create a high pass filter of 339Hz with 20dB/decade attenuation. Therefore, when no sound is playing there is no way to tell on the output that a DC level forms on the base input of Q1 as the volume is increased.

If the 6560 is going to pull up in DC when the volume rises then the maximum excursion of a sound wave is limited by a combination of the pull down current (set by R27) as well as the voltage feed which, in this specific case is 0 to 5volts. When the volume goes above a certain level, clipping of the positive side of the wave occurs as the 6560 attempts to pull up above 5V.

This clipping effect is even more intense when playing multiple voices simultaneously as their combined excursion adds to each other.

Obviously, the smallest amount of clipping occurs when the DC offset provides a DC level of 2.5V on the base of Q1. This is achieved when setting the volume level to 8.


Now, looking at the rise and fall time of the signal taken directly at pin 19 of the 6560, we see that the rise time is much greater than the fall time. Considering the effect of Q1, as seen by the 6560, R27 should appear as about 100 times greater.

This asymetrical voltage change is caused by the diode in the base of Q1 which can draw current on voltage rise but not give back any on the falling edge. This causes C9 and C10 to charge slowly as Q1 "steals" current used to charge these capacitors but not restore it when the 6560 discharges them. This assymetrical time constant is less dramatic on the actual output as C10 and C11 are still discharging at the very instant C9 appears to be empty.
"


Heres an audio capture form the final analog output of the VIC-20 CR:

Clipping sound

So there you have it!

The VIC emulation im working on for 2.0 includes that clipping and filtering and is starting to sound very close to the real thing.... stay tuned

Saturday, August 21, 2010

X marks the spot!

People following my twitter might have been wondering what that Canadiana Road Trip stuff was a'boot yesterday. It was about salvaging a pile of 50 arcade boards from certain death.

My Pirate Map pointed to a secret location near Ottawa, Ontario, so went, dug up, and found the treasure!

(yes that's the trunk of MY CAR)

A quick evaluation can be made to about 65 soundchips on these. (some boards do have more than one). I don't know WHEN I'll get time to go through the good, the bad and the awesome. What works and whats useless, but there you go.
Each board is different (except two MS Pacman boards, but i will NOT complain here, lets just hope I can get one running, even it if means cannibalizing the other)

chipsounds 2.0 R&D really REALLY doesn't need more chips at this point....

well there's ... oh hell...

Friday, August 6, 2010

30 Minute JAMMA SuperGun Audio test

I use MAME differently than you I'm pretty sure. You can sort games by name, company, date, but usually I sort entries by 'sound'. For a guy like me, its both salivating and dangerous... for my finances.



There are a few sound chip gems that are only found on obscure PCBs. However, a side effect of the omnipresence of MAME is to somewhat lower the price on used game PCBs on Ebay. Why would you have this 20+ year old board around in a wooden box when you can play the game on your PC or some MAME'ed cabinet?

When you're a sound chip freak its not a question of course. Since I cant put myself to loan a van just to shove an Arcade cabinet into the office (not that it wouldn't be nice to have a Shinobi or Splatterhouse around). It just wouldn't be convenient.

I'm contemplating starting a collection of PCBs, to get new chips, but also just to get a few spares. Recently I acquired a 10$ game from a local Ebay seller, a really crappy Jap quiz game to get an extra YM2413.

Friday after work, bored, Ok should I trash this board and get the chip from it? Or, wait a minute... there must be something to play this thing for cheap! And of course there is ... A SuperGun!

Two minute googling and I found this very well done document on building a home made JAMMA harness. Cool, but i just want to HEAR the intro tune, not to see and play it!

I had about 5 more or less useless PC casings at home, so I looked around for one which had a suitable PSU (read working +5v,-5v +12v). (it allowed me to sort through them at last and thrash two deabeats, ... missus is happy)

15 Minutes soldering and it worked.



That is JUST a test of course, I'll surely hook all that with two joysticks an fake coin slots on the PC case in the future. And of course proper video outs.
Or.. maybe I should go back to sound R&D...

More later

Friday, June 18, 2010

ZIF socketed C64 for SID chip swap

ZIF (Zero insertion force) sockets are a great way to reduce the wear on chip pins when you need to swap them often, which is as you've guessed  what I need.

A simple 28PIN ZIF socket like this:




Can be used to quickly swap SIDs to run tests.




Video:

Friday, June 4, 2010

Monday, May 31, 2010

I'll get you 1771!


A full day spent figuring that chip's sound generation again. Recorded the two separate output pins in a multitude of ways, but there seems to be signal bleed whatever I try (even removing the chip and lifting one of the pins of its socket from the circuit)

This is not your typical PSG.

Friday, May 28, 2010

uPD1771C noise puzzle



LFSR feeding a delta-modulated logarithmic DAC???
Evil 80's reverse engineering protection???
Alien message?

Wednesday, May 26, 2010

.plan (audio version)

Anyone old enough to remember what a .plan file is?

I just got the idea of making a status update on what im working on, in audio form. These will not come with any explanations whatsoever. They might be current bugs, new features, tests or experiments from code im currently working on...

Here's the second one.

I'll twitter any updates to it as I go along (twitter.com/plgDavid)

Thursday, May 13, 2010

The one page BASIC SID Benchmark.

How do you make sure the SIDs you bought from Ebay are fully working before giving feedback?

Or, you are the seller and you want to claim "100% fully working SID all voices. All Filters guaranteed!" and double check your stuff before you send the chips?

How do you make sure the SIDs that are in the old C64 in your dad's basement works before attempting a MIDIBox SID, sammichSID or other similar project? (Or midway through the project your dodgy soldering skills makes you wonder if you just blew out your 50$ SID?)

You find certain .sid files sound ODD on your setup and you want to be sure all waveforms of all channels sound good across the entire frequency range?

You want to make sure the filters are behaving within tolerance, or you want to quickly compare its frequency response with a third party?

or...

You are a nerd that does SID research, collect SIDs like Pokemons and compare each of them with scopes and frequency analyzers?


A: Sure I'm interested, but I don't have any fancy cart, X1541 transfer hardware. I only a bare C64 and a TV!

Then welcome to the world of BASIC program retyping!


This plays a sweep of every waveform on every channel like this:
___T (voice1, voice2, voice3)
__S_ (voice1, voice2, voice3)
__ST (etc...)
_P__
_P_T
_PS_
_PST
N___

Note: (T=Triangle, S=Saw, P=Pulse, N=Noise)

Next it does a filter sweep(resonance off) from all three channels with Noise
Low Pass (voice1, voice2, voice3)
Band Pass (etc)
High Pass

To my knowledge there is no other SID benchmark that is both relatively thorough and fast to type. This however does not test Pulse Width Modulation sweeps, ring mod or hard sync, and these could be part of a more in depth Benchmark, which I could code in assembler directly, and if there is enough demand, even make a 8KB ROM image in order to quickly use it with the various EPROM carts on sale on Ebay.

Closest thing I found is referenced from here. But it doesn't test sweeps nor all waveforms.

Also Mssiah users have access to a built in "Audio Test" which tries all voices and filter modes. But again, no help to you if you dont have that cartridge.

Proper steps for non C64-literate people:

Make sure nothing previously ran on your C64, or hit run/stop restore to make sure and type the following in:
120 v(0)=54272:v(1)=54279:v(2)=54286
130 poke54296,15:fori=0to2
140 pokev(i)+3,8:pokev(i)+1,0
150 pokev(i)+5,8:pokev(i)+6,198:next
160 fora=16to128step16:fori=0to2
170 if a>64 then pokev(i)+3,0
180 pokev(i)+4,a+1
190 forf=0to254step2:pokev(i)+1,f:nextf
200 pokev(i)+4,a:forw=0to200:nextw
210 pokev(i)+4,8:pokev(i)+1,0
220 nexti,a:a=1
230 fori=0to2:pokev(i)+1,255
240 poke54296,(a*16)+15:poke54295,2^i
250 pokev(i)+4,129
260 forf=0to255:poke54294,f:nextf
270 pokev(i)+4,136:nexti
280 a=a*2:if a<8 then goto 230
310 poke54295,0
(note at the end of line 240, the "^" character is a arrow pointing up on a C64, check listing picture)

type 'run'

If the test goes through without errors, it means you've probably typed it properly. Maybe its time to SAVE it! (You don't want to type this for all your SIDs right?)

using a 1541:
save"sidbench1",8,1
using a datasette:
save"sidbench"
and follow the instructions.

Note If you want better audio quality you can add these lines which will turn off the VIC chip (thanks to Lord Nightmare's SID Filter measurement code for the tip)
100 poke53280,0: poke53281,0
110 poke53265,11
290 poke53265,27
300 poke53280,254:poke53281,246

Alternatively:

If you have a X1541 transfer cable, get the D64 image

If you own a Commodore datasette, you can record this WAV file onto a cassette deck and play it on your c64. (note might have to invert phase in your favorite sound editor depending on your setup).

IMHO it surely beats randomly playing a few SIDs and affirming your chip is right.

Bonus points: you can test it in your favorite emulator to see how much aliasing it adds to the normal SID waveform generation's natural aliasing. Compare the audio results of the various SID settings in your emulator, etc.

So this post would not be complete without a few reference runs from some of my own chips.

Correct chips (NOTE these are NTSC recordings, PAL will have slightly different pitch):

6581R4AR (6581R4 AR 3086 S PHILIPPINES - see picture) Notes: (Brown C64) My 6581 reference for heavy filters.

6581CBM (6581CBM AR 2485 KOREA AH224867) Notes: (Brown 250407 C64) weird amplitude modulation in _PS_ wavform (seen this a few times on R2 and R3s)

8580R5 (8580R5 4887 25 HONG KONG HH465216 HC-30 - not pictured)
) Notes: (9V C64C) typical 8580, combined waveform are all audible, smooth filter.

Faulty chips:

6581_remarked2 (see remarked sid #2 in image) Notes: (Brown 250407 C64) quiet Low Pass filter, Near pass-through BP/HP

6581_remarked3 (see remarked sid #3 in image) Notes: (Brown 250407 C64) quiet LP/HP. Near pass-through HP.

EDIT January 2013: More Tests:
http://www.lemon64.com/forum/viewtopic.php?t=45909

Sad thing those remarked SIDs, I guess a whole subject in itself. People: there are no NOS SID chips anywhere now get it? Anything you buy as such should be taken with extreme caution. Please use this benchmark as a guide.

I agree with Wilba here, if the SIDs are FULLY tested, then I don't care if they are remarked or not "new old stock" as long as they are sold as such. SIDs are getting rare, this might be the only chance for some people to get their hands on SIDs...

Well not counting cannibalizing one of the 30 million C64's sold that is...

Monday, April 19, 2010

BLIP 2009 Presentation now online!

Hi

Here is the presentation I made at the 2009 edition of BLIP Festival, in Brooklyn New York last December. I've tried to squeeze as much info as possible in there, so it might be a challenge to follow especially considering I didnt have a microphone, so the camera just picked lots of ambiant noise (most of which has been DSP'ed out fwiw)

Thanks a lot for Max Deland for the video editing, and of for his fabulous Prezi presentation work.

PART1:


PART2:


PART3:


PART4:


We also have a yet to edit [XC3N] presetation of chipsounds been put at test in the Renoise Tracker. We will add it to the playlist when its edited and cleaned.

Thursday, April 1, 2010

Next Bidule version has something special....



You will be able to reproduce pretty much any type of LFSR based noises and tones. From simple Atari TIA tones to the more complex Noise waveform of the SID, as documented by Marko Makela and Asger Alstrup, in an interactive way.

Friday, March 26, 2010

SID waveform captures


Well well well, I knew that the 6581 and the 8580/6582 generated different combined waveforms, but I didn't know that not only each single chip generates slightly different bits from each other, but you also wont get twice the exact same waveform on two separate playbacks on a single chip.

This is a binary diff of two OSC3 sampling runs of a combined waveform on a 6581 CBM (r3) chip:


Thanks for kevtris again for the tip (but no thanks in a way, since I had to spend lots of evenings to make the code to generate these data files on a real c64 lol.)

I took care in recording the normal triangular and saw waveforms in each session for comparisons, and they match across all chips.

You can basically think of the SID chip as a 4096 (4kb) sized wavetable synthesizer with each entry being 12bits in precision, only instead of actually indexing a table (which would have been too long to do with the tight schedule given to Yannes when working at MOS), each index in the table is given to a function that generates output "samples" ; A simple counter in the case of the SAW, a comparator for the Pulse+PW, etc.  Only later did Yannes/Ensoniq actually implement this as a real wavetable in the DOC chip used in the ESQ-1.

The combined waveforms are still a matter of study as to how they are generated, (see the work of Antti Lankila) . After recording a huge bunch of very different ones however I cant help but feel that
there is no "perfect" way to go at this. As each SID will generate something different, why not add some non-deterministic aspects into the generation?

In the mean time we can reasonably emulate the combined waveforms of the SID (which are really a odd mixture of bits in the analog world) by indexing a pre recorded table such as the one I've captured using the SID's 3rd oscillator "read" functionality. As you know the C64 is an 8 bit machine so we only can read a approximation of the real result (8 most significant bits out of the 'real' 12) but it doesn't really matter, since even at 8bits, we can prove that no two reads are the same, so who cares really if we lose 4bits of precision. Those data files for those combined waveforms will be included in my new emu code and you will be able to choose the version of the chip you want. That way you could simulate a wide range of different "runs".


Note1: the waveforms are $11,$21,(...)$81,
           frequency=1, CIA timer=$FFF

Note2: I don't know what is "wrong" with that r2's P_T waveform. seems like its phase starts halfway compared to R3,R4 and 6582... I'm waiting for other R2's from Ebay so I'll retry when I get them.

Note3: The 6582's noise captures are all in phase, but not with my 6581 recordings... weird


more notes to come...

Monday, March 15, 2010

SID 6581R3 ADSR tables, up close.

In the center of any SID emulation there is the bare waveform generation, and a very accurate explanation of how the this works internally has been published through an interview with its creator, which can be read here. Fascinating read for any geek head!

However some very important details are missing, including the exact maths behind the main ADSR clocking but also its pseudo exponential decay/release stages.

It was time to have a look at the SID's DIE itself!
This is exaclty what kevtris and Lord Nightmare have done here

The SID chip has two obvious ROM based lookup tables on the DIE,  for each voice. Here is the bigger one, as described in kevtris's blog entry:


I basically just cropped parts of the picture of the chip, which is available here, and placed the bit values on top of it.

However the blog post doesnt mention, nor explain the purpose of the second table, which I assumed was one of the "exp" tables, as mentionned in the Yannes Interview:

Yannes: "In order to more closely model the exponential decay of sounds, another look-up table on the output of the Envelope Generator would sequentially divide the clock to the Envelope Generator by two at specific counts in the Decay and Release cycles. This created a piece-wise linear approximation of an exponential. I was particularly happy how well this worked considering the simplicity of the circuitry.".

The SID patent's figure 10 mentions the following dividers are used: 30,16,4,2,1 . Hum not quite divide by two heh? 32,16,8,4,2,1 would have been more logical!

So lets try to decode the exact table on the DIE...

Well I didnt have a big clue myself, as reading bits of a DIE is all new to me, but after discussing with Lord Nightmare and kevtris, it appears this is also a LFSR counting trick, this time with a 5bit long LFSR and taps on bits 2 and 4:


Here is that table in plain ascii:
SSSSS  A B  A B  A B  A B  A B
00100  0 1  0 1  1 0  0 1  0 1    
00001  0 1  0 1  0 1  0 1  1 0    
01000  0 1  1 0  1 0  1 0  0 1    
00010  1 0  1 0  1 0  0 1  1 0    
10000  1 0  1 0  0 1  0 1  0 1    

Kevtris explained that the left hand part is a "Selector" of sorts, since there is only one bit active on each line/column. The second part seems to contain inverted pairs of bits..... hmm puzzling...

Using similar code to what they provided, this time for the second table, and only taking the 'B' bits as LSB:

const unsigned short exp_lfsr[5] = {
    0x1B, 0x0F, 0x11 , 0x08 ,0x1C
};

for (size_t i=0;i<5;i++){   
  unsigned int LFSR=0x1F;   
  size_t c=0;   
  while(1){     
    if (LFSR == exp_lfsr[i]){            
       exptable[i]= c;       
       break;     
     }     
     else{       
        c++;
        LFSR = ((LFSR << 1) | (((LFSR >> 2) 
          ^ (LFSR >> 4)) & 1)) & 0x1F;
     }
   }
}

the results in exptable is 8,30,4,16,2, (which mostly matches the numbers in SID patent, except for the missing 8... and the weird order.

Ok so we know that at some points in the decay of the envelope, the clock divider changes... what does that mean exaclty and what are those "points"????

Heres what we can try:

We know the SID chip has two readable registers which are tied to the 3rd voice: One for the 8bit ENV value ($D41C) and the other for the 8 most significant bits of the waveform generator (which is 12 bits internally) at $D41B

So by setting the 3rd SID Oscillator's release at longest rate ($F), and by hooking up a CIA Timer to callback at each $7a13 cycles (which comes from the phase2 counter lenght for release 'F' according to kevtris/LN), we can, in theory, get a synchronized sampling of the envelope and store the results for analysis. As im lasy and that seeing is believing, I just programmed to display the values on the screen while the note decays.

Here is a live capture of that code running on a BreadBox c64 stuffed with a 6581R4AR:



If you know your Screen Codes, you can see that the envelope goes from 255 to 0, and that some values start to repeat at certain points...

The chars to look for are:
"|": (93)  switches to 2  waits before a drop
"6": (54)  switches to 4  waits before a drop 
"Z": (26)  switches to 8  waits before a drop
"N": (14)  switches to 16 waits before a drop (Thanks Frank!)
"F": (06)  switches to 30 waits before a drop

So while I can now go on with my emu code, knowing what happens, I'm still clueless on WHERE/HOW this comparison happens on the DIE. So if you have a clue, or spot anything wrong in my logic, please add a comment!

Sunday, March 14, 2010

MESS 0.137 is out!

Hi

I'm proud to announce my little personal contribution to the best emulator project in the world.

Since a bit after chipsounds 1.0 was released, I started contributing some of my recent research to the open source 'MESS' project on the sound front. My contributions are "without strings attached" as I feel that the research in MAME/MESS is crucial to the good preservation of the history of computing. Besides, the accumulated knowledge in there will surely outlive me :)

"0.137

New System Drivers Supported:
-----------------------------
- Casio PV-1000 [Wilbert Pol, plgDavid]
(...)

System Driver Changes:
----------------------
- [SCV] Implemented upd177c audio. [plgDavid]"


The SCV audio still needs work, so that's not the last effort I will put into it. I've also tweaked the Arcadia 2001 audio code and made it much closer to the real thing. I also plan on revisiting a few other "drivers", when I get the chance, namely the VIC-20.

The MAME/MESS Teams members are very passionate and knowledgeable. I want to take the moment to greet Wilbert Pol, kevtris and Lord Nightmare especially, and to thank them for their time and near infinite knowledge.

Get it NOW

Thursday, February 25, 2010

Monday, February 1, 2010

Ultimate 2532(or 2352) PROM MegaCart!!! ... kinda



While visiting my favorite local Electronics Surplus Store I came across this odd 24 pin fake IC to IC cable, which gave me a cool idea. One very common (and boring) tasks in my line of work is doing adapters to run ROMs (custom and whatnot) on the real hardware for analysis. This setup makes it pretty easy (and solderless) to try stuff around, especially difference in CPU<->BUS<->ROM handshaking signals like !CS !CE, !E whatever, and also configuration of adress lines.

Systems that typically use such 24pin ROMs include
VIC-20
ATARI 2600
MPT-03 - Arcadia 2001 clone(pictured)
Odyssey2

This particular breadbreadboard setup allows me to quickly "audition" up to 16 different 4KB Arcadia ROMs using DIP switches.

Sunday, January 17, 2010

Analyse.. don't Destroy (a Casio PV-1000)

I'm not a console collector nut, I'm a audio chip collector nut. There are countless game consoles and computers out there that I dont care much about because they all contain the same chips. (AY-3-8910 is nice, but you can only have so many of them).

What I'm looking to acquire at this point are the most obscure ones which contain custom/unique sound generating chips. You've heard about the CASIO PV-1000 before?



Don't worry, only the most die hard console collectors did. And they would die for it too. There are very very few such consoles out there and I got mine a bit by chance, and it was an impulse buy.

At 300$ (ebay), you just can't afford to ruin it can you? (I'm not a movie producer). And I look forward to its resell value once im done with it. Thats where the challenge comes in... how do I take a device that comes with just a NTSC-J RF adapter and get good enough audio results with it? (the RF channels on North american and Japan dont match... dont try)

The closest I got to getting a picture/sound from the default unit as is was to use a ANALOG/DIGITAL USB TV tuner, which had by chance a NTSC-J mode:




Not that bad, but, the audio was horrendous, and really not usable for my tests. However I've hacked nearly all my consoles in order to have separate composite video/audio from RCA jacks, so on top of some test equipement, i've got a few hunches on how to solve this cleanly.

the RF box is tied to the main motherboard in a very clean way:

A few minutes with my multimeter, from top to bottom:
1)9VDC (current for the amplifiers in the RF sections i assume)
2)GND
3)Composite Video Out.. YAY!
4)GND (same as 2)
5)Audio Out...  w00t!

Connecting Aligator jumpers to truncated ends of a RCA and to the pins 3,4 and 5 did provide me with a temporary solution, but surely isnt very practical for a longer term analysis.


Oups, where did the RF box go? (in a safe place in case I resell it and the buyer really is after lots of  pain and suffering).



Much better.
 From the outside:


Enjoy the OK quality outputs:

Saturday, January 9, 2010

Meet my new friend the logic analyser!

Its time to step my game up. So I've decided to acquire the immese value for money Saleae Logic Analyser. This baby will allow me to analyse and record a bunch of stuff that really cant be handled with a sound card and an oscilloscope alone. (namely serial digital audio prior to being sent to DACs)

As a test to see if everything works, and that i can get sufficient time resolution on this, ive done a simple setup which consists in a 4Mhz clock and a Hex inverter (74LS04). I done my recording test using 24Mhz on my MacBookPro's USB2 port. And im quite happy with the results. Not bad for 15 minutes of unboxing the thing!