TAG 2 Report post Posted May 8, 2015 On this page: http://audio.gadgetfactory.net/index.php?n=Main.YM2149MIDISynthesizer there is this quote: "There is open source VHDL for NES, Atari 2600, SoundBlaster FM synth, and other sound chips that is available." I have found HDL for NES and Atari 2600, haven't been able to find any FM chips. Anybody have a link? Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted May 8, 2015 I think that was on Opencores.com, let me do a search again. Jack. Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted May 8, 2015 Ah, its in in pacedev.net. Not sure what the license is:https://github.com/wsoltys/pacedev/tree/master/sw/src/component/sound/sb16 Here is something on OpenCores:http://opencores.org/project,ao486 Share this post Link to post Share on other sites
TAG 2 Report post Posted May 11, 2015 Thanks, I'll dig in and see if I can make use of it Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted May 11, 2015 Awesome, please keep us posted on the results. Jack. Share this post Link to post Share on other sites
james1095 13 Report post Posted May 12, 2015 Pacedev is open source IIRC, I've been in contact with the owner off and on discussing FPGA related things. The forum was still down last I checked but I did get him to bring the repository back up. If it's gone now I did clone the whole thing so I could post it elsewhere. Share this post Link to post Share on other sites
TAG 2 Report post Posted May 14, 2015 It looks to me like the code on OpenCores is more complete even though it specifically calls out the OPL2 as not fully working Share this post Link to post Share on other sites
TAG 2 Report post Posted July 29, 2015 Just saw this: https://github.com/gtaylormb/opl3_fpga Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted July 29, 2015 That looks promising! Share this post Link to post Share on other sites
synthop 0 Report post Posted August 7, 2015 Hi, I wrote opl3_fpga. Let me know if you have any questions. I love this stuff. Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted August 10, 2015 Hey Synthop, We would love to get your core setup to work in DesignLab. Jack. Share this post Link to post Share on other sites
synthop 0 Report post Posted August 10, 2015 I'm not familiar with DesignLab, but I assume it uses ISE/XST as the underlying synthesizer as you would be targeting the Spartan 6. As ISE/XST doesn't support the newer SystemVerilog features the code will have to be back-ported to Verilog2001, but that should be fairly easy. The only device specific construct in the code is the MMCM, which will have to be regenerated for the Spartan and the clock frequency of the external clock on the board. If the design doesn't fit the Spartan, you could pretty easily trim off the second bank of registers and essentially have an OPL2. The last sort of difficult part would be porting the CPU interface to whatever you are using on that board. But definitely doable. Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted August 10, 2015 The DesignLab format is pretty much just making your core Wishbone compatible and then we convert it to schematic format and concatenate all of the Wishbone signals together to make it easy to connect in the schematic editor. Yes, it is indeed using ISE/XST for synthesis on the Spartan 6. So if you are willing to make your core fit (OPL2) and give it a Whishbone interface then I can do the rest to bring it into DesignLab so people can then use it with the RetroCade synth! Does that sound good? Thanks!Jack. Share this post Link to post Share on other sites
synthop 0 Report post Posted September 30, 2015 Sounds like a great project for someone with motivation. I'll help out as much as I can but this is a decently substantial project that I don't have time for. I bet someone in your user base has the know how and motivation to do this. Another alternative to converting to Verilog... if someone has access to Synopsis Synplify, they could generate a netlist with the existing SystemVerilog that could be imported by ISE. Orrr, sounds like you guys are VHDL people so just convert to that. As VHDL people you're already used to lots of typing! Share this post Link to post Share on other sites
offroad 14 Report post Posted September 30, 2015 Thanks for the link. Interesting read.So they use sin(x)*a = exp(log(sin(x)) + log(a)), with ROMs for log(sin(x)) and exp(), avoiding the multiplication with the envelope.Interesting that 8 bit phase resolution is enough. I still own my first two synths, Korg 707 and Yamahaha DX7 II, the former being a clone of the latter with improved aerodynamics...FM rules, even if it sounds horrible I used the 2x6 operators mainly for additive synthesis as wannabe fake Hammond organ. Share this post Link to post Share on other sites
synthop 0 Report post Posted October 1, 2015 Well, just to clarify, frequency resolution is 20 bits or about 0.047Hz, determined by the width of the phase accumulator and the sample rate. The phase input to the ROMs is truncated as is typical with NCOs but this doesn't affect the frequency accuracy. Even though the input to the sine ROM is 8 bits, phase resolution is actually 10 bits, as only a quarter of the sine wave is stored and symmetry used to translate it to all 4 quadrants. But yes this truncation does cause periodic phase error that typically shows up as spurious products in the frequency domain. Not sure if they're audible. Yeah the OPL3 has some additive synthesis modes too. Share this post Link to post Share on other sites
offroad 14 Report post Posted October 2, 2015 >> phase resolution is actually 10 bits, good point.I was just surprised that this works with such simple hardware. Artifacts are part of the sound Share this post Link to post Share on other sites
mkarlsson 34 Report post Posted October 9, 2018 Bringing this old thread back to life... In my quest to get a fully working version of Doom (including music) running on Pipistrello I found Greg's OPL3 project and decided to port it to Verilog as he mentioned above, and got it running on Pipistrello, as well as an OPL2 version running on Pepino LX9 (100% of slices occupied!). It uses a Microblaze_mcs processor with 32K ram to play .dro files. Here is a link to a zip file with the Pepino_lx9 project (including Verilog sources and a simple dro-file player): http://www.saanlima.com/download/pepino-v1.1/opl2_pepino_lx9.zip Video of it running on Pipistrello: http://www.saanlima.com/videos/IMG_4880.mov Cheers, Magnus Share this post Link to post Share on other sites
mkarlsson 34 Report post Posted October 9, 2018 Here is a video of it running on a Pepino LX9 board: http://www.saanlima.com/videos/IMG_4882.mov If you have a Pepino LX9 board and want to try it, here is how: Download the zip file opl2_pepino_lx9.zip and unzip it somewhere Place the files in the dro directory on a micro-sd card and put it in the sd-card socket on Pepino Open up a terminal (like Putty) at 115200 baud connected to the Pepino board Load or flash the bitfile opl2player.bit in the opl2player director At the promt on the terminal, enter the name of the dro-file you want to play (it will loop forever). Stop it by entering S. BTW, the code should work on a Papilio Pro by modifying the .ucf file to match the pins for the sd-card and audio wings and re-synthesize. Magnus Share this post Link to post Share on other sites
TAG 2 Report post Posted October 10, 2018 Awesome! Thanks for sharing, I'll have to give it a try. Share this post Link to post Share on other sites
mkarlsson 34 Report post Posted October 10, 2018 I think I nuked too many files in the ipcore_dir folder for it to compile so I just downloaded the whole project again, this time with all the files. If you have problems building it just re-download the zip file. Magnus Share this post Link to post Share on other sites