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)