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
<whitequark> cr1901_modern: the sdcc assembler seems essentially ok to me?
<whitequark> if you're willing to use the upstream version of its assembler it's a lot more powerful in terms of metaprogramming
<whitequark> the one packaged with sdcc still has macros and stuff but somewhat less control flow operators
<cr1901_modern> I'm fine w/ the upstream assembler
<cr1901_modern> the insistence on assembler seems to be that ej5 doesn't believe a C version will fit into the relevant 8051
<cr1901_modern> not necessarily me having a particular interest in being that low level :P
* ej5 is in the throes of disassembling the creative code. it's VERY compact
<cr1901_modern> AIUI the four main objectives of the Creative DSP are:
<cr1901_modern> * Do successive approx ADC for recording
<cr1901_modern> * Respond to API requests from the 8088/whatever
<cr1901_modern> * Emulate 8237 DMA bus cycles in software
<cr1901_modern> * Dump an 8-bit sample for playing
<cr1901_modern> ej5: How much more compact compared to the clone code?
<ej5> it's about 75% the size
<cr1901_modern> So I have a 25% oversize budget compared to creative's impl
<cr1901_modern> Assuming the clone is the same amount of ROM
<ej5> clone fills 93% of the 4K ROM space. original fills 69% of the 4K ROM space
<cr1901_modern> I'm not gonna say it
<cr1901_modern> Someone else want to say it?
<whitequark> nice.
<cr1901_modern> Ty :)
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
Xyz39808 has joined ##yamahasynths
Xyz_39808 has quit [Ping timeout: 248 seconds]
<ej5> hmm, found some weird mystery SB 2.0 DSP commands
<ej5> 0x51, 0x58, and 0x59. not sure what they do yet.
ej5 has quit [Quit: Leaving]
cr1901 has joined ##yamahasynths
nukeykt has joined ##yamahasynths
futarisIRCcloud has joined ##yamahasynths
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
futarisIRCcloud has joined ##yamahasynths
ne0npunk has quit [Ping timeout: 248 seconds]
l_oliveira has joined ##yamahasynths
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
andlabs has quit [Ping timeout: 248 seconds]
andlabs has joined ##yamahasynths
andlabs has quit [Ping timeout: 248 seconds]
andlabs has joined ##yamahasynths
nukeykt has quit [Quit: Page closed]
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
andlabs has quit [Ping timeout: 248 seconds]
ne0npunk has joined ##yamahasynths
andlabs has joined ##yamahasynths
mangelis has joined ##yamahasynths
<mangelis> hi
<mangelis> does anyone know where I can find opl3 instruments that were used by windows 95?
<mangelis> ie, not some soundfont but the actual register values
<cr1901_modern> cc: Foone_
<mangelis> specifically sound blaster 16 :)
<mangelis> i don't even know if those general midi patches came with windows, card drivers, and in which format they were
<mangelis> i assume they are just raw register data with some headers
<cr1901_modern> Someone indeed can find these patches/reg values for you, as I've seen them. I just don't remember where :P.
<cr1901_modern> But anyways yes you'll find what you need if you stick around
<mangelis> cool, thanks
andlabs has quit [Ping timeout: 248 seconds]
ej5 has joined ##yamahasynths
<ej5> anyone have ideas about my SB DSP mystery commands 0x51, 0x58, and 0x59?
<ej5> ooh figured out some other undocumented commands. 0xf8 does a ram test, 0xf4 outputs a 2-byte ROM checksum!
<cr1901_modern> which CRC16? :P
<ej5> ok so the commands in the 0x5_ series are for playing back samples from the 80C51's internal memory. it can handle up to 64 samples.
<ej5> 0x58 loads an arbitrary number of samples into the sram. 0x59 does the same but then plays back the samples right away. 0x51 plays back whatever samples are in memory.
<ej5> 0x50 stops playback
<ej5> the routines seem to have some bugs, so this may not have worked well or worked at all.
<ej5> cr1901_modern, it's a 16-bit sum of all the bytes in the ROM, not CRC
<cr1901_modern> ahhh
<cr1901_modern> Can't wait for the clean room doc :D... so exciting
<cr1901_modern> (I know I know, it'll take a while)