Giter VIP home page Giter VIP logo

opl3_fpga's People

Contributors

gtaylormb avatar stohrendorf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opl3_fpga's Issues

Compile in Windows...?

When I finally got my zynq-7000 FPGA, I knew this would be the first community project I had to try out. Only problem is, I have windows, and I technically do have linux installed, but I don't like the idea of taking up another 30GB on my nearly full internal hard drive when I already have Vivado (for Windows) installed on my plenty-of-space external hard drive. Is there a way I could compile this in Windows?

Short/long disortion on left channel

This might because this is a bug in opl3_fpga-apps or I'm using an older version, but on certain music, the left audio disorts a bit or a lot (especially when there's more than two sound channels being played in MONOTONE).

Improved sound output references/examples

Just stumbled upon this project, something I've been wanting to do for a while, and it looks great! Thanks for putting this out there.

Now, listening to the examples you've provided I believe these don't really do the OPL3 or your work justice, as these are mostly OPL2-based sounds. I would really recommend something like Adlib Tracker II (also runs in DOSBox) for testing sound output - https://github.com/subz3ro-altair/at2 - as it exposes much more of the OPL3's specific capabilities and allows for easy testing of the individual modes of synthesis you've also documented in the README.

Anyway, not really an issue but more of a suggestion. Don't have a ZYBO here but I'll definitely try this once I get my hands on one of them.

FPGA based 486 integration?

Any chance of integrating this into: https://github.com/alfikpl/ao486 it's a 486 implemented in verilog. It's got an OPL2 implementation but it's incomplete in the FM synthesis. Since this project is doing OPL3... would it be possible to implement the OPL3 engine on ao486 instead?

Small optimization in calc_rhythm_phase.sv?

May be wrong here, but looks like it's possible to make rand_num one bit smaller by XORing in the (rightshifted) polynomial after the right shift.

        if (sample_clk_en && bank_num == 0 && op_num == 0)
            if (rand_num & 1)
                rand_num <= (rand_num ^ RAND_POLYNOMIAL) >> 1;
            else
                rand_num <= rand_num >> 1;

port to cheaper fpga?

this dev board is hard to find and if you made an opl3 board this would be very hard to solder a port to a cheaper fpga would be very useful

what I am trying to say is that an fpga functioning identically* as a ymf262 (pinout of fpga ymf262 exposed) is the real deal, so things like the commander x16 don't have to source old stock of opl3s

like a modern replacement, you solder an fpga on a board then solder the board to the place where the opl3 should go

[feature request] Better dual-OPL2 compatibility mode

One of the major incompatibility problems between the OPL3 and the dual-OPL2 from SoundBlaster Pro software was that the second set of channels of the OPL3 didn't feature the rhythm mode and the timers.

It would nice to implement support for two rhythm modes and the two missing timers in this OPL3 core, improving compatibility with dual-OPL2 software.

[feature request] User-defined waveforms

The OPL3 core has 8 hardcoded waveforms in ROM. It would be great if a small improvement could be done to this core: to allow the programmer to rewrite the waveforms with new ones at any given time, just like the Konami SCC/SCC+ soundchips (and the similar PC-Engine soundchip). This way much richer sounds could be created at very little additional cost.

Expand E0h~F5h register to allow 16 waveforms, or even 256 waveforms wouldn't be bad too.

Backwards compatibility would be maintained, since the usual waveforms would be loaded on reset, and existing software could even take advantage of the new waveforms if the user loads a new set of waveforms before running the old software.

References:
http://en.wikipedia.org/wiki/Konami_SCC
http://en.wikipedia.org/wiki/Konami_Sound_Cartridge
http://bifi.msxnet.org/msxnet/tech/scc
http://bifi.msxnet.org/msxnet/tech/soundcartridge

[Feature request] OPL4-wavetable support

The OPL4 (aka YMF278) was the last and most powerful sounchip of the OPL family. But now they seem to have been depleted and are becoming increasingly hard to find.

This feature request is then to add support for the OPL4-wavetable feature and the dual-DAC output. The FM block is exactly the same as the OPL3, but with a slightly different sample rate and is able to output to the 2nd DAC too.

Note: the 2nd DAC output was usually connected to a sound FX processor, like the YSS225.

References:
http://en.wikipedia.org/wiki/Yamaha_YMF278

PS: I'm aware that this isn't easy at all to do, so this request will probably receive a low priority. But it's good to keep it registered though.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.