Giter Site home page Giter Site logo

emu8950's People

Contributors

okaxaki 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

Watchers

 avatar  avatar  avatar

emu8950's Issues

Nuked-OPL3 drop-in replacement

hello, i am biting my teeth out trying to make emu8950 a drop-in replacement for nuked-opl3 in this simple app: https://github.com/cmdrf/droplay .
it is a player for dosbox' OPL captures in DRO format, so what it does is basically just feeding any recorded raw OPL commands to the OPL "chip", which in nuked's case is blackbox-like: the only interface are register writes whereas emu8950 has a way more sophisticated (and complicated) API. The reason i want to use emu8950 there is three-fold: 1) nuked produces a heavy CPU load, 2) it uses a LGPL license 3) my favorite tune https://github.com/Malvineous/dro2midi/blob/master/testcases/sango_fighter_title_drov2.dro plays some drums at about 0:22 which sound very bad with nuked, so i need to figure out whether the culprit is dosbox capturing an insufficient amount of state or nuked messing up the output due to some bug.

as for the difficulties i have with emu8950:

  1. it's unclear why OPL_calcStereo returns 2 int32_t whereas OPL_calc returns an int16_t as expected and what to do to convert those into 16 bit samples
  2. it's unclear what the difference between OPL_writeIO and OPL_writeReg is (at least to someone like me not very familiar with the intrinsics of sound chips)
  3. how delays are to be treated and when to feed/read data into or out from the chip. i suspect i'll have to emulate the clock cycle timing of an MSX and in case of delays just grab a sample from the chip every X nanoseconds.
  4. whether emu8950 needs additional setup data like this: https://github.com/Wohlstand/scc/blob/master/emidi_alpha/device/2413tone.h (the dosbox DRO format contains a capture of initial state of the OPL registers, so theoretically this should be sufficient)

i'd be glad for any hints you can provide, thanks!

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.