ChanServ changed the topic of ##yamahasynths to: Channel dedicated to questions and discussion of Yamaha FM Synthesizer internals and corresponding REing. Discussion of synthesis methods similar to the Yamaha line of chips, Sound Blasters + clones, PCM chips like RF5C68, and CD theory of operation are also on-topic. Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynths
Xyz39808 has quit [Ping timeout: 260 seconds]
Xyz_39808 has joined ##yamahasynths
Sarayan has quit [Ping timeout: 252 seconds]
Sarayan has joined ##yamahasynths
<cr1901_modern> grauw: How'd you get your PDF of the YM2151 manuals if you remember?
<grauw> ahh I remember it like yesterday, it was on a beautiful spring day on the 10th or March in the year 2014 AC
<grauw> Google? :) it was already on the internet, I didn’t source it myself
<grauw> or cx5m.net perhaps
<cr1901_modern> lmao
<cr1901_modern> I thought maybe you had a physical copy of the manual
<grauw> lists it as added in 2003
<grauw> alas :)
<grauw> I would’ve made a better scan if I did
<cr1901_modern> although that's a nice resource you linked
<grauw> tis the hidden MSX archive that we never speak about ’cause it’s cool for preservation but not so cool if it is ever taken down :)
<grauw> used to be on funet
<cr1901_modern> Ppl still cold-DM me on hellsite or IRC asking for the "Oman Archive" because I once linked my copy in ##openfpga
<grauw> :)
<cr1901_modern> I provide it when asked, b/c "sharing is caring", but weird that ppl still reach out
<grauw> haha if you go to ftp://ftp.funet.fi/pub/msx/ they were nice enough to set up a redirect if you access it through http :)
<grauw> anyway
<grauw> sleep time
grauw has quit []
<KitsuWhooa> I wonder if this is intentional https://tasossah.com/s/67569afd0324.png :p
Xyz_39808 has quit [Ping timeout: 260 seconds]
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
futarisIRCcloud has joined ##yamahasynths
andlabs has joined ##yamahasynths
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mz` has quit [Ping timeout: 250 seconds]
andlabs has joined ##yamahasynths
mz` has joined ##yamahasynths
cr1901_modern has quit [Read error: Connection reset by peer]
cr1901_modern has joined ##yamahasynths
ej5 has joined ##yamahasynths
<cr1901_modern> ej5: I don't have the parts yet, but I _almost_ have a space cleared for doing retro dev again w/ my spare 5150 board. You know what that means :D? Super Blooper build time!
<cr1901_modern> Well, soon anyway
<ej5> yay
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
Xyz_39808 has joined ##yamahasynths
<KillaMaaki2> wee, sounds like fun! :)
ej5 has quit [Read error: Connection reset by peer]
Xyz39808 has joined ##yamahasynths
Xyz_39808 has quit [Ping timeout: 260 seconds]
<whitequark> hmmmm
<whitequark> i can't seem to get my YM2151 to work
<whitequark> it gets very hot with just GND and VCC connected and doesn't produce any music, though it does produce *some* output
<whitequark> ESD?
<cr1901_modern> getting very hot w/o a clock is very normal
<whitequark> oh, hm
<whitequark> i didn't realize that when writing the glasgow applet; it stops the clock for a number of reasons
<whitequark> so it might *not* be toasted
<whitequark> i'm really at a loss of what goes wrong here though
<whitequark> it produces... awful bleeping
<cr1901_modern> Oh it'll run just fine- I've powered it w/o a clock for a day before. But some of the NMOS pullups are always on when its unclocked.
<cr1901_modern> and it generates heat
<whitequark> wait
<whitequark> it consumes 120 fucking milliamps?!
<whitequark> it dissipates HALF A WATT?!
<cr1901_modern> Something like that... the 64-pin chips are worse
<cr1901_modern> I dare not power those from USB
<whitequark> jesus fucking christ??
<whitequark> okay hm
* whitequark notices that the datasheet lists the minimum level for "1" level as twenty volts
<cr1901_modern> typo
<whitequark> yes
<whitequark> funny though
<whitequark> does ~IC, ~RD, etc have internal pullups?
<cr1901_modern> I don't know offhand
<whitequark> I mean, does the process imply them?
<whitequark> I think it does but I'm not actually sure
<cr1901_modern> Looking at the I/O drivers, I don't really see anything on those huge transistors indicating pullups, but I should really vectorize and see.
<whitequark> it has huge transistors on inputs?
<whitequark> wait, take a look at fig 6 in the datashet
<whitequark> seems like IC alone has a pullup
* cr1901_modern is checking
<whitequark> hm, if it's NMOS, that means it's not super ESD sensitive right?
<whitequark> I'm so confused
<cr1901_modern> yup that is a pullup
<cr1901_modern> good eye
<whitequark> it used to work; I even checked out the Glasgow commit that introduced it
<whitequark> and YMF262 works with that very commit so it's not Glasgow
<whitequark> I checked the pinout like 10 times and the first few times I even connected it via a special jig with inline resistors for extra idiot resistance
<cr1901_modern> I've left it running for about a day without a clock. It wasn't on purpose but the chip survived basic testing.
<whitequark> I actually don't think I did anything wrong with it before. I unplugged it and put it in a box
<whitequark> I never bought 1 of any synth so I definitely have more of them, but this is just baffling
<cr1901_modern> re: ESD, follow basic procedures of course, but I would not think ESD ruined a chip
<whitequark> to my knowledge I've never killed anything with ESD before
<whitequark> there's always a first time of course, but
<cr1901_modern> "It worked with the original Glasgow commit but not anymore" is weird b/c it means my first guess- Is /IC being driven at boot- won't be right
<whitequark> I don't drive /IC at all I think
<whitequark> I do clear the registers in software
<whitequark> we discussed this and the conclusion was that it's fine to do it either way
* cr1901_modern nods
<whitequark> I'm kinda concerned how hot it is tbh
<cr1901_modern> without a clock still?
<cr1901_modern> It should not be smoking but it'll be uncomfortable to touch
<whitequark> "uncomfortable to touch" is how I would describe it exactly
<whitequark> hm
<whitequark> alrighty
<whitequark> I guess my sense is just not calibrated for 1991 tech
<cr1901_modern> FWIW I thought I killed it the first time I drove it w/o a clock too
<cr1901_modern> Just to humor me, when you clock the chip, what's the frequency that's being input (I know you don't run it at the recommended freqs, but I am curious anyway)?
<whitequark> 4M, which is within the range
<whitequark> I turned off overclocking by default because it gave inconsistent results
<cr1901_modern> right, that's fine. Does pin 23 measure 2 MHz?
<whitequark> lemme grab my scope, sec
<cr1901_modern> Pin 23 is the DAC clock... I wonder if that's okay
<whitequark> it is okay because I actually get audio from it
<whitequark> except it's all wrong
<whitequark> well, the freq could be off, let me check.
<cr1901_modern> "it's all wrong" in pitch? Or "it's all wrong" as in "the instruments are cursed and calling forth the abyss"?
<whitequark> there are no instruments per se
<whitequark> it's producing ... tones
<whitequark> like DTMF tones
<whitequark> hm, why the fuck is the clock at 4.35 MHz
<whitequark> uhhhh
<cr1901_modern> (If it was "it's all wrong" in pitch, I would know what the problem was. But the web applet might account for that already.)
<KillaMaaki2> Are they consistent or semi-random on reset? FWIW when I was having audio problems in my case it would produce inconsistent noises with each reset ranging from low hums to loud beeps to irritating buzzes, but that was because I was bypassing the intended DACs and instead piping the serial output directly into my own custom I2C solution and I had failed to correctly synchronize the start/end of each LR sample.
<whitequark> cr1901_modern: ok, so, I definitely have a clock and it's still super hot
<cr1901_modern> Hrm, now that doesn't sound right.
<whitequark> https://gateway.whitequark.org/yamaha/ try playing anything
<whitequark> pin 1 does have the clock divided by 2
<cr1901_modern> pin 1? Do you mean phi 1?
<whitequark> er, yes
<cr1901_modern> I would be very concerned if GND pin had a clock on it
<whitequark> what
* cr1901_modern is getting a VGM file
<whitequark> oh, yeah
<cr1901_modern> I moved everything to a new drive so my VGMs are on backup storage... sec
<cr1901_modern> err, I am using a new drive*
<whitequark> oh god
<whitequark> the ~RD is low for some cursed reason
<whitequark> it's a bus conflict
<whitequark> but... why
<cr1901_modern> Before you fix it, let me play something please >>
<whitequark> sure, go ahead
<cr1901_modern> I have an OPL board w/ a bunch of issues, and I wonder if the output sounds anything like yours
<cr1901_modern> I took a break diagnosing the problem, but this might give me a hint
<whitequark> I guess it doesn't get any deader than it is right now, assuming that killed it
<whitequark> and I'm pretty sure I have more, anyway
<cr1901_modern> Okay, I hear an occassional pop, but that's about it
<whitequark> yeah it does that too
<whitequark> not sure when it does the tone thing and when the occasional pop thing
<cr1901_modern> not like the glitches I'm seeing on my OPL board, where the music sounds correct briefly and then goes completely to hell as reg writes are garbled up
<whitequark> ah
<cr1901_modern> Played it again, popping sounds again. When that one is done, I'll do one more
<cr1901_modern> (a different vgm)
<superctr> it's quite silent
<cr1901_modern> Oooor the gateway could complain that there's no OKIM6258 support
<cr1901_modern> :P
<cr1901_modern> Yea there are only pops and clicks for me, no dtmf tones or anything of the sort
<whitequark> it's a bit random
<whitequark> ok let me stop the bus conflict
<cr1901_modern> I think you might be alright... I've setup up two ISA cards from the same era w/ the same I/O addresses by accident; the worst that's happened is that I had to do a power-on reset
<whitequark> oh my GOD
<whitequark> I forgot :(
<whitequark> I plugged it into the glasgow that has one of the output drivers dead
<whitequark> and the fault is a short to ground :(
<whitequark> I'm an idiot
<whitequark> I should have clearly marked it somehow
<cr1901_modern> I mean, I enjoyed the journey of your debugging woes. Isn't that what counts :)?
<whitequark> poor synth :( :(
<cr1901_modern> Oh, it died :(?
<whitequark> i don't know yet
<whitequark> but uh
<whitequark> Glasgow has nice low-impedance outputs
<whitequark> that's about 50 ohms into ground on each IO pin
<whitequark> or vcc
<whitequark> so that's a pretty rude thing to do to a chip
<whitequark> yeah still bleeps with a working glasgow
<whitequark> try again, i seem to be getting bleeps now
Patater_ has joined ##yamahasynths
<whitequark> *squint* hang on
<whitequark> did I connect half the data bus backwards
<whitequark> hm
<whitequark> it makes some utterly cursed noise now
<whitequark> but it's like, yamaha noise
<whitequark> oh wait
<whitequark> I connected the other half of the data bus backwards too
<whitequark> well i'll be damned, it still works
<Lord_Nightmare> that's a relief
<Lord_Nightmare> you should desolder the dead bus driver chip so it can't happen again
<whitequark> good idea
<Lord_Nightmare> or at least, the pins will just be floating instead of pulled to gnd
<whitequark> unfortunately it's fucking SOT523
<whitequark> yes, there really was no saner choice for the package
<whitequark> hm
<whitequark> you know what, let me make a bus conflict *on purpose* and see if it still works
<whitequark> it's been driving that bus into a short for a long time, what's a few more second
andlabs has quit [*.net *.split]
cr1901_modern has quit [*.net *.split]
doppler has quit [*.net *.split]
akacastor has quit [*.net *.split]
Nerionaya has quit [*.net *.split]
Patater has quit [*.net *.split]
cnomad has quit [*.net *.split]
<whitequark> ....
<whitequark> it still works
<whitequark> no actual difference
* Lord_Nightmare is tracing the hc55516 die, slowly. its not too complex
<Lord_Nightmare> but what i could use some help with is identifying the various cmos gate cells
<Lord_Nightmare> its not a standard cell library that harris used... or if it is, its not public
<Lord_Nightmare> https://nc.rysk.us/s/MKZeticKzGx6AbC is what i have so far
<Lord_Nightmare> the only 2 cells I know for sure are: I is a plain old inverter, and J is a 2-input NAND gate
<Lord_Nightmare> K *MIGHT* be a buffer but i'm not 100% sure
<Lord_Nightmare> and i have nfi for the more complex cells
cr1901_modern has joined ##yamahasynths
andlabs has joined ##yamahasynths
cnomad has joined ##yamahasynths
doppler has joined ##yamahasynths
Nerionaya has joined ##yamahasynths
akacastor has joined ##yamahasynths
<Lord_Nightmare> looking at the "H" cell... I'm sort of stumped...
<Lord_Nightmare> it has what looks like 11 transistors, 6 PMOS and 5 NMOS
<whitequark> cr1901_modern: i'm really impressed that it still produces music correctly *with the bus conflict*
<whitequark> I'm not sure if it turns off the drivers if \WR is active, or if Glasgow just forces it into submission
<whitequark> could probably check with a scope
<Lord_Nightmare> ok, i'm getting close to figuring out 'H' now
<Lord_Nightmare> i have the diagram done
<cr1901_modern> whitequark: So a short bus conflict, the chip still makes music... a continuous bus conflict and the chip gives up?
<cr1901_modern> natarii: Unironically, Vapor Trail has one of my favorite Genesis soundtracks. Pity it only has like 9 songs
<cr1901_modern> It's also the only arcade game I 1cc'd
<Lord_Nightmare> if B is low, /B is high, and /Y equals whatver /A is. if B is high, /B is low, and /Y is high. if A is low, /A is high, and /Y is whatever /B is. if A is high, /A is low, and if B is also low, /Y is low. however if B is high, /B is low, and /Y is high. what gate am i?
<cr1901_modern> the hell?
<cr1901_modern> Using the symbol "/" is reserved for "inverted input or output"
<cr1901_modern> which is it in this case?
<cr1901_modern> (and I don't know)
<Lord_Nightmare> its the output of a 2-gate inverter attached to the a and b inputs
<Lord_Nightmare> er
<Lord_Nightmare> 2-transistor
<cr1901_modern> I'm writing down the truth table now
<Lord_Nightmare> i think i have at least one error
<Lord_Nightmare> or else this isn't a standard gate, might be one of the weird ones like IMP or NIMP
<cr1901_modern> And your gate seems to be overly specified
<Lord_Nightmare> i figure its supposed to be a 2-input OR gate
<cr1901_modern> I ran into a contradiction trying to write it down
<Sarayan> conventionally, A-H/X are inputs, O/Y are outputs
<cr1901_modern> if B is low, /B is high, and /Y equals whatver /A is
<cr1901_modern> if A is low, /A is high, and /Y is whatever /B is
<Lord_Nightmare> /y is not an output, Y is. /Y is an internal signal run through another inverter before being output
<cr1901_modern> /B => (/Y == /A)
<cr1901_modern> /A => (/Y == /B)
<Sarayan> simpler than that, B=0 => Y=A, B=1 => Y=0
<cr1901_modern> I don't believe that's true for all values of /A and /B
<Lord_Nightmare> i'm stumped with this thing, to be honest. i'm pretty sure my diagram has a bunch of mistakes, or this thing probably has a state that shorts vcc to gnd
<whitequark> cr1901_modern: no it doesn't give up
<whitequark> the problem was that I accidentally wired the entire data bus in reverse
<Sarayan> no, there's a mistake in the text
<Sarayan> if A is low, /Y is whatever /B is |vs| if B is high, /Y is high
<Sarayan> A=0, B=1 is contradictory
<cr1901_modern> Thanks, it's 5am here and I'm not a human SAT solver
<Lord_Nightmare> indeed. i should't trace gate cells at 5am
<Sarayan> othre than that, it smells like an or gate
<cr1901_modern> whitequark: Ack. I read that and thought wiring the bus in reverse only applied _after_ you diagnosed the dead output buffer
<Sarayan> btw, hi everyone
<cr1901_modern> yes, hello Sarayan!
<cr1901_modern> And goodnight (soon!)
<cr1901_modern> In between helping wq diagnose her YM2151 woes, I decided to clean up my workbench... and made _massive_ progress!
<cr1901_modern> And that was probably not a great idea during the night
<cr1901_modern> now I'll sleep most of the day
<Sarayan> btw wq, opened the envelope yet? :-)
<whitequark> sorry, not yet :(
<whitequark> working on not starving
<Sarayan> wq: that indeed takes priority
<Sarayan> is it going reasonably ok?
<whitequark> somewhat ok
<Sarayan> that's at least that :-)
<natarii> cr1901_modern: yeah same
KillaMaaki2 has quit [Read error: Connection reset by peer]
Xyz_39808 has joined ##yamahasynths
Xyz39808 has quit [Ping timeout: 260 seconds]
Xyz_39808 has quit [Ping timeout: 245 seconds]
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
andlabs has quit [Ping timeout: 260 seconds]
grauw has joined ##yamahasynths
andlabs has joined ##yamahasynths
KillaMaaki2 has joined ##yamahasynths
Xyz_39808 has joined ##yamahasynths
<Lord_Nightmare> gates identified so far: H: ??2-input OR??; I: 2-gate inverter: J: 2-input NAND; K: 4-gate high-capacity inverter?
<Lord_Nightmare> looking at L now, it seems simple-ish, simpler than H for sure
<Lord_Nightmare> so simple i can flat out identify it: L is a 2-input NOT
<Lord_Nightmare> er
<Lord_Nightmare> so simple i can flat out identify it: L is a 2-input NOR
<Lord_Nightmare> typo
Xyz_39808 has quit [Ping timeout: 260 seconds]
<Lord_Nightmare> G is for sure a 4-input NAND
Xyz_39808 has joined ##yamahasynths
<Lord_Nightmare> N is for sure a 4-input OR, though with a slight change it could just as easily be a NOR gate, but this one is an OR
<Lord_Nightmare> its a NOR with an inverter slapped on the output
<cr1901_modern> Lord_Nightmare: What chip is this again? Can't find it in my backscroll
<Lord_Nightmare> hc55516 16khz CVSD codec chip, circa 1976-1977
<Lord_Nightmare> early CMOS
<cr1901_modern> Wow, that's ancient CMOS ._.
<Lord_Nightmare> also sometimes called hc1-55516 or hci-55516
<Lord_Nightmare> but its all the same chip
<cr1901_modern> Ahh Harris... I have a few static 286s from them
<cr1901_modern> Are you vectorizing it?
<cr1901_modern> Or skipping that stage to analyze it
<Lord_Nightmare> A: 6-t ???
<Lord_Nightmare> C: 3-t ???
<Lord_Nightmare> B: 5-t ???
<Lord_Nightmare> D: 3-t ???
<Lord_Nightmare> E: 5-t ???
<Lord_Nightmare> F: 4-t ??? (3-input ???) (3-input XOR?)
<Lord_Nightmare> G: 5-t cmos 4-input NAND
<Lord_Nightmare> H: 3-t ??cmos 2-input OR??
<Lord_Nightmare> I: 2-t cmos inverter
<Lord_Nightmare> J: 3-t cmos 2-input NAND
<Lord_Nightmare> K: 2-t cmos inverter with high drive power
<Lord_Nightmare> L: 3-t cmos 2-input NOR
<Lord_Nightmare> M: 5-t ???
<Lord_Nightmare> N: 5-t cmos 4-input OR
<Lord_Nightmare> some of the 5 and 6 terminal devices are really complex, like A, B, E and M
<Lord_Nightmare> vectorizing this thing would be a lesson in pain and carpal tunnel
<Lord_Nightmare> there's got to be an easier way to do it
<Lord_Nightmare> i'm probably going to figure out some way to mark terminals, and draw sort of 'wires' between each of the gate cells
<Lord_Nightmare> as for which cells are which, see https://nc.rysk.us/s/7JEr7WPMKJCqTpm
<Lord_Nightmare> gtg, be back tomorrow
emily has quit [Quit: Updating details, brb]
emily has joined ##yamahasynths
Xyz_39808 has quit [Ping timeout: 260 seconds]
Xyz_39808 has joined ##yamahasynths
nukeykt has joined ##yamahasynths
brezza_dsa has joined ##yamahasynths
brezza_dsa has quit [Quit: Leaving...]
Xyz39808 has joined ##yamahasynths
Xyz_39808 has quit [Ping timeout: 260 seconds]