TAG Posted May 8, 2015 Report Share 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? Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted May 8, 2015 Report Share Posted May 8, 2015 I think that was on Opencores.com, let me do a search again. Jack. Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted May 8, 2015 Report Share 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 Quote Link to comment Share on other sites More sharing options...
TAG Posted May 11, 2015 Author Report Share Posted May 11, 2015 Thanks, I'll dig in and see if I can make use of it Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted May 11, 2015 Report Share Posted May 11, 2015 Awesome, please keep us posted on the results. Jack. Quote Link to comment Share on other sites More sharing options...
james1095 Posted May 12, 2015 Report Share 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. Quote Link to comment Share on other sites More sharing options...
TAG Posted May 14, 2015 Author Report Share 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 Quote Link to comment Share on other sites More sharing options...
TAG Posted July 29, 2015 Author Report Share Posted July 29, 2015 Just saw this: https://github.com/gtaylormb/opl3_fpga Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted July 29, 2015 Report Share Posted July 29, 2015 That looks promising! Quote Link to comment Share on other sites More sharing options...
synthop Posted August 7, 2015 Report Share Posted August 7, 2015 Hi, I wrote opl3_fpga. Let me know if you have any questions. I love this stuff. Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted August 10, 2015 Report Share Posted August 10, 2015 Hey Synthop, We would love to get your core setup to work in DesignLab. Jack. Quote Link to comment Share on other sites More sharing options...
synthop Posted August 10, 2015 Report Share 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. Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted August 10, 2015 Report Share 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. Quote Link to comment Share on other sites More sharing options...
synthop Posted September 30, 2015 Report Share 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! Quote Link to comment Share on other sites More sharing options...
offroad Posted September 30, 2015 Report Share 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. Quote Link to comment Share on other sites More sharing options...
synthop Posted October 1, 2015 Report Share 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. Quote Link to comment Share on other sites More sharing options...
offroad Posted October 2, 2015 Report Share 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 Quote Link to comment Share on other sites More sharing options...
mkarlsson Posted October 9, 2018 Report Share 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 Quote Link to comment Share on other sites More sharing options...
mkarlsson Posted October 9, 2018 Report Share 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 Quote Link to comment Share on other sites More sharing options...
TAG Posted October 10, 2018 Author Report Share Posted October 10, 2018 Awesome! Thanks for sharing, I'll have to give it a try. Quote Link to comment Share on other sites More sharing options...
mkarlsson Posted October 10, 2018 Report Share 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.