GithubHelp home page GithubHelp logo

tommitytom / retroplug Goto Github PK

View Code? Open in Web Editor NEW
280.0 17.0 13.0 130.51 MB

A frontend for the SameBoy GameBoy emulator, with a focus on music creation. It runs standalone and can be used as an audio plugin (VST) in your favourite DAW!

License: MIT License

Makefile 0.08% C 16.99% Inno Setup 0.69% Rich Text Format 0.19% TeX 0.01% Shell 0.05% Batchfile 0.08% C++ 57.57% Lua 24.26% Objective-C++ 0.09%
lsdj arduinoboy gameboy mgb vst sameboy iplug2

retroplug's People

Contributors

defensem3ch avatar tommitytom 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

retroplug's Issues

FL Studio reads RetroPlug as an error.

Hello. I've recently downloaded RetroPlug and put it in my VST2 folder, but it won't work and it's detected by FL Studio as an error. Know that I haven't downloaded or done anything else aside from downloading and placing this .DLL file in my VST2 folder. I hope someone can help me. Sorry for any inconvenience.

Button input sticks in Ableton

Using Ableton on Windows, there's an issue where the A button gets stuck down - i.e. the emulator receives the button press, but not the button release.

Project files cannnot load that has a path included 2-byte characters

I cannot load a project file from D:\GB関連\lsdj\saves\test.retroplug .
"関連" are Japanese Kanji.

In the project file, "GB関連" are transformed to "GB関係". This charactors HEX code is "47 42 E9 96 A2 E4 BF 82". ("47 42 E9 96" are "GB".)
I don't know what the character code of this. For example, UTF-8's "GB関連" HEX code is "47 42 E9 96 A2 E9 80 A3". That wrong code is not a Shift-JIS too.

Finally I can load this project file after I remove 2-byte characters from the file used HEX Editor and fixed the file places.
Can you add multi byte support for project file?

Under/Overclocking

LSDj is able to achieve different pitch range on different clock speeds (like lower pulse pitch when underclocked) so having option to change it per instance would be very welcome!

Req: Easy ROM reload for quick development cycles

I'm developing GB software that receives MIDI. I find RP to be incredibly useful for quick testing as it cuts out the cycle of burning a ROM to a flashcart, or developing some solution to fake MIDI data over the serial port. However, it's still slightly annoying that in order to reload ROM (as far as I can tell) you need to system, load ROM, and use the file dialog to select the same ROM file. It would be useful if there was a quicker way. Here are a couple of possible ways this could be achieved.

  • Assign some simple way to reload the file through a GUI shortcut, for example double or triple clicking the window. Or use the topmost item in the right click menu (the one that shows the ROM name) to reload the ROM.
  • Let the plugin look for changes to the loaded file and reload if it's rewritten.
  • Make the process listen for some signal that can be triggered from a build script, for example listening to a TCP port and opening a connection to that ports reloads.

If for example double clicking the window would be considered possibly confusing for users, this might be a feature that needs to be enabled in the config file.

Thanks for the consideration.

RetroPlug is crashing in FL Studio 20

When I try to load a RetroPlug in my FL Studio i receive message:
`The Fruity Wrapper plugin has caused a critical error while loading its state.

It is strongly advised to close the application and restart it, without trying to save your project.
You will find a backup history of your projects in the Backup folder in the browser.

Please contact your plugin's manufacturer about this problem.`

Any ideas what could go wrong?

Req: Midi Map buttons and actions

It would be cool to map controls and the save state toggle via midi, then I can make a cool midi controller definition for my controller. Also would be nice to be able to assign a cc to toggle the save in the SRAM context menu.

Accessibility for limited vision users

Thanks to RetroPlug LSDj could be easily designed to be accessible if reading out names of parameters and cursor position would be available to visually impared, and/or through some other solution compatible with open source screen reader, NVDA!

lsdj arduinoboy midiout

First of all: thanks for this great piece of software!

I'm trying to send MIDI notes from LSDJ to my keyboard, but it doesn't seem to work.
I have selected the output device from the preferences panel and "all" as output channel and "MIDI-Sync (Arduinoboy)" in the custom lsdj panel.
In lsdj I selected the midi-out synchronization option
Am I doing something wrong or this feature is not implemented?

My configuration:
Windows 10
RetroPlug_standalone-Win64-v0.1.0
lsdj8_3_1-arduinoboy
Akai MPK249 keyboard as a midi receiver

Thanks in advance!

Screen is blank

Hi,

I had previously used RetroPlug with no issues, but now after a few months and after reinstalling Windows 10 on my machine, RetroPlug doesn't work anymore. Whenever I load a ROM, the screen remains blank and there's no sound or input at all. The program seems to work fine and it recognizes LSDJ ROMs, as well as the .sav files, their included songs, etc., but the ROM itself doesn't play.

This happens both in the app version and the dll version. I've tried loading many versions of LSDJ (in case that was the issue) to no avail.

I know that the latest RetroPlug version is a bit old and I might not get any feedback, but this software is quite unique, extremely useful, and I'm hoping that we will get another release at some point.

Thank you.

Suddenly unable to load ROMS

I'm sure I'm doing something incorrectly, but spontaneously I'm no longer able to load .gb roms with the standalone or VST version of Retroplug. I'm just stuck on the "DOUBLE CLICK TO LOAD ROM" page. Thankfully I only lost some unimportant things that hadn't been written to .savs, but I'm not sure what's going on. Wasn't sure if a git issue was the right place to post this, but I can't find a social that you're active on. Am I correct in thinking I shouldn't have to build any of the dependencies if I'm just downloading the VST? I don't remember doing that the first time I installed, and it's been working for years.

I'm on windows 10.

I love the plugin btw.

MacOS Support

This is an issue to track MacOS support for RetroPlug.

What's involved in building for MacOS? I see there's an xcode project file in the repo, but it fails to build on my system because I'm missing the AAX SDK. What is that?

Linux support

Hi!

First of all thank you for your hard work. I’m currently using Linux (Ubuntu 20.10 more precisely) as my primary OS for making music. I’m also a programmer, so I’m opening this issue mostly for tracking purpose as I’ll be able to work on my own.

VSTs are supported on this platform so a major refactoring shouldn’t be needed. I have access to multiple Linux distributions too so I will be able to test other popular ones like Archlinux, and maybe package it as well so people could install it from their package manager. I could loo into CI/CD to streamline the building process too.

I’ll keep you updated :)

Using ZIP format for plugin chunk data is problematic

Hello. I'm developing OpenMPT, and one of our users had trouble using this VST plugin in OpenMPT: After using it in a track and then trying to reload the track, the whole track failed load. This happens because OpenMPT can load zipped module files, so it first tries to read a file as a ZIP file, and if successful it tries to load a file from that ZIP file as a module. If the file wasn't a ZIP file, it will directly try to load it as a module instead.

What's the problem? Well, ZIP is a peculiar format. Some background information on that, in case you weren't aware: Most people would probably expect that a ZIP file must start with the "PK" magic bytes, but they don't really need to be at the start of the file. To read a ZIP file, you start by finding the central directory, which is placed towards the end of the file. It may not be at the exact end, because a comment text up to 64KB in length may follow. So a typical implementation will seek backwards within the last 64KB of the file to find the central directory (and it seems like many if not all ZIP libraries don't check if the declared length of that comment is actually identical to the number of byte past the end of the central directory). This mechanism is also the reason why you can open a self-extracting ZIP file (i.e. an EXE with embedded ZIP) in pretty much any software that can handle ZIP files - it will simply not care that there's an EXE stub in front of the ZIP.

As a consequence of this design, any music project file of any DAW where the plugin chunk dump by this plugin is placed close to the last 64KB of the project file is at the same time by definition also a valid ZIP file! And as a result of that, any software that, like OpenMPT, can open both regular ZIP files and also its own music project files will end up in a situation where a file is technically both a ZIP file and a music project file. I will try to find a workaround for OpenMPT, but as other DAWs could still encounter similar issues.

As a conclusion, I think it would make sense if RetroPlug didn't give a complete ZIP file as plugin chunk data to the host. I could think of several workarounds:

  • XOR-"encrypt" the chunk data. Not very nice but it would avoid being detected as a ZIP file.
  • Use a different standard archival container format that cannot be placed in the middle of another file, for example tar.gz
  • Just don't use a container format at all and write your own (e.g. zero-terminated filename followed by compressed and uncompressed size fields, followed by zlib-compressed data).
  • For backwards compatibility, the plugin should of course still try to load the plugin chunk as a ZIP file.

Analog sync

Normal LSDJ sync fails to sync versions that are software overclocked (LSDJ running 4x tempo while on normal clockspeed) and those that have different clock speed. I think problem would be easily solved with analog sync between each instance, or just using analog sync in particular!

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.