Skip to main content
Topic: foo_input_zxtune (Read 5846 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

foo_input_zxtune

Allows you to play various ZX Spectrum, Amiga, PC, Atari, Acorn chip / digital / fm tunes.

Download version 0.0.6 based on r3750 (dec 06 2016) here: foo_input_zxtune.fb2k-component

Changelog:
    Preferences page with handled formats added
    Samples for DAC-based modules are copied from input data instead of sharing
    Added support of HivelyTracker (HVL)
    Moved to C++11
    Improved support of SNA128 snapshots
    Improved support of DST tracks
    Fixed multitrack SAP files processing
    Improved okim6295 support for VGM
    Fixed some crashes in MsPack decoder
    Speedup applications initialization
    Improved support of KSSX files with single track (BB#59)
    Fixed crashes while KSS seeking
    Improved AY format detection
    Use mono channels layout for AHX playback
    Added KSS format support
    Decreased size of binaries and packages
    Fixed playback of some HES files
    Fixed playback of arpeggio effect in tf0/tfe formats playback
    Support additional module strings retrieval (e.g. samples/instruments names)

Project home page
Fork with foobar2000 plugin source code (full changelog)

ZX Tunes archive, Latest ZX Spectrum music
ModLand
High Voltage SID Collection

foo_input_zxtune

Reply #1
Hi djdron.
Above list does not contain information about Super Nintendo's .SPC files.
And these files has lead me here. I would like to ask you for some bothersome work. Something that is included in foo_gep. A config page, with lots of checkboxes, next to certain files extensions, which allows to disable or enable support of certain formats in your plugin. This is a must - in my opinion - for all non exclusive formats present in your plugin (.SPC, .VTX and .YM are those which I am aware of). Why?
Since very long time I use foo_gep on a daily basis for several formats:
AY, SPC, GBS, VGM, NSF. It also supports HES, SAP, KSS, SFM, GYM, SGC. In "Playback/Input" section it has its entrance with config options - selection of formats, some format specific functionalities / DSP tweaks.
Not so long time ago there was another SPC-able plugin published - foo_snesapu. I wanted to use it and check how this differ from the other ones. And after several tests it turned out that it doesn't make any change. Now I know why - because whenever I disabled foo_GEP, then foo_zxtune took over playback of SPC... Foobar itself doesn't have any logic for controlling which plugin opens certain format if it is supported by more than one. So it is random which plugin is used... In this case I have to remove/disable whole foo_zxtune just to test foo_snesapu, which is kind inconvenient for me. Also I got impression (but I may be wrong here), that waveform seekbar (foo_wave_seekbar) not necessarily uses the same SPC plugin as main audio output.
That's why there should be an option to choose which formats supported by foo_zxtune are currently enabled - to allow general use of this plugin while prevent from strange interferences with other useful plugins.

foo_input_zxtune

Reply #2
Hi, EpicForever!

Just uploaded plugin based on latest ZXTune version.
It includes Game Emu Player and supports almost all formats (look at fist post in topic for download).

I'm thinking of preferences page implementation.
After GEP including in ZXTune do you really need disabling supported formats option?

foo_input_zxtune

Reply #3
Yes, as for example for SPC files I like SNESAPU more than other plugs... it is always good to allow users to choose if there are overlapping capabilities between various plugins. There is no much sense in making big preferences page that will allow to enable/disable every possible format, but for those overlapping - definitely is something useful.

Re: foo_input_zxtune

Reply #4
My apologies for digging up the old thread, but I'd like to vote for the preferences page. For example I like how foo_dumb handles modules, it allows to see all the things module authors usually write instead of the instruments/samples names. Or maybe someone like foo_openmpt as their default player. Just a little freedom, you know  ;)

Re: foo_input_zxtune

Reply #5
Version 0.0.6 with latest bugfixes/features released.
Preferences page added with ability to enable/disable handled formats.

Re: foo_input_zxtune

Reply #6
Version 0.0.6 with latest bugfixes/features released.
Preferences page added with ability to enable/disable handled formats.
Thanks a bunch!
Everything works as intended so far.

Re: foo_input_zxtune

Reply #7
Version 0.0.7 is hosted on fb2k components site.
Functionality is same as 0.0.6, but supported formats in preferences page slightly re-arranged.

Re: foo_input_zxtune

Reply #8
Hi djdron,
Have you been thinking about updating foo_zxtune to be compatible with v 1.4 SDK and thus with decoder order plus with dynamic CRT linking?

Re: foo_input_zxtune

Reply #9
Dynamic CRT linking is not advised until 1.4 reaches a stable release, especially that you'll be automatically updating your users' components to the newer version even if they're on 1.3, which does not bundle the runtime.

Re: foo_input_zxtune

Reply #10
Any plans for an update? This plugin is now crashing on me when I flip to a tab that contains an autoplaylist of all of my mods, and when I then do a search for anything. F2k 1.5.1b4.

Snip as follows
---
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 0C42EFBAh
Access violation, operation: read, address: 676E696Bh

Call path not available.

Code bytes (0C42EFBAh):
0C42EF7Ah:  8B 41 30 2B 41 2C C1 F8 05 3B D0 76 1C 8D 8D D8
0C42EF8Ah:  FE FF FF E8 39 AF FF FF 68 54 CE 67 0C 8D 85 D8
0C42EF9Ah:  FE FF FF 50 E8 23 05 0E 00 8B 41 2C C1 E2 05 89
0C42EFAAh:  95 D4 FE FF FF 8B 4C 10 E0 8D 95 DC FE FF FF 52
0C42EFBAh:  8B 01 8B 40 04 FF D0 50 8D 8D C0 FE FF FF E8 F3
0C42EFCAh:  E9 FF FF 8B 8D E0 FE FF FF 83 CE FF 89 8D 00 FF
0C42EFDAh:  FF FF 85 C9 74 21 8B C6 F0 0F C1 41 04 75 18 8B
0C42EFEAh:  01 FF 10 8B 8D 00 FF FF FF 8B C6 F0 0F C1 41 08

Stack (1AFBFA04h):
1AFBF9E4h:  0021453D FFFFFFFF 1AFBFA30 000E91E3
1AFBF9F4h:  1AFBFB3C 1F7130F8 000E91F9 0027A9C8
1AFBFA04h:  1AFBFA3C 62429012 0C42C760 1F7130F8
1AFBFA14h:  00000001 06809C08 00000000 00000000
1AFBFA24h:  00000000 00000000 00000000 004F0000
1AFBFA34h:  00000000 00000000 102500F0 756F7AA1
1AFBFA44h:  1F7130FC 2AAF0810 00000000 1AFBFB3C
1AFBFA54h:  0FF200F1 756F7AA1 FFFFFFFF 1AFBFA9C
1AFBFA64h:  004F9FB8 1AFBFB3C 00000188 00000000
1AFBFA74h:  00000000 1E653F30 004F9CA8 004F9E5C
1AFBFA84h:  1F10DFE0 004FB078 1AFBFB3C 1AFBFA24
1AFBFA94h:  00214B10 1AFBFB9C 77B34DCD 34658CE2
1AFBFAA4h:  FFFFFFFE 77AEE434 77AEE192 1F266990
1AFBFAB4h:  004F0000 2AAF0810 2AAF0810 067AF0A9
1AFBFAC4h:  1AFBFB98 1AFBFB3C 1AFBFB3C 0027A9C8
1AFBFAD4h:  0027A9C8 1AFBFB14 067F5E64 FFFFFFFF
1AFBFAE4h:  1AFBFB20 067AF217 1AFBFB3C 1AFBFB14
1AFBFAF4h:  00000000 03A6E100 00000000 00000000
1AFBFB04h:  2AAF0810 067AF226 00000002 00000000
1AFBFB14h:  00000190 067AF304 1AFBFB38 74E95600

Registers:
EAX: 22EBD910, EBX: 1F10DFF0, ECX: 676E696B, EDX: 1AFBFA3C
ESI: 1F7130F8, EDI: 1F10DFF0, EBP: 1AFBFB60, ESP: 1AFBFA04

Crash location:
Module: foo_input_zxtune
Offset: 14EFBAh
Symbol: "foobar2000_get_interface" (+442Ah)
-- Dean-Ryan Stone

Re: foo_input_zxtune

Reply #11
Hi there!
@Dhry, I had the crashes of foo_input_zxtune previously when turning on the Activity panel of foo_youtube component.
The problem was resolved after update foo_youtube. Perhaps this is your case.


 

Re: foo_input_zxtune

Reply #13
Hello. I and another person run a shared folder which is a compilation of various chip formats, and .ay is one of them. I had a few questions for the developer of zxtune, since his plugin seems to be a great player for these kind of things.
1. Why is it when the AY chip is being played from ay files the channels are panned out? This is all kinds of annoying for me, and as far as I know not the case on the original hardware, weren't the outputs summed together and output on a mono DAC?
2. Our archive of ay files comes from AYGOR (http://abrimaal.pro-e.pl/aygor/) and we've been having some problems with the plugin.
The maintainer of AYGOR seems to have squished Sam Coupe files using the SAA1099 into the .ay format, but this plugin is unable to handle them. With older versions of the plugin I was able to rename these files to .cop and while the metadata wouldn't display correctly I could still play a great many of them, though not all. Now it seems with whatever file extension I use I get pure silence, even though a length is displayed. You can find such files in the "scene_sam" folder of the compilation. Some near the top of that list like Blue Drummer wouldn't play even with this hack, but most of the ETunes stuff should, and now doesn't. The metadata displays correctly which leads me to believe that the plugin is reading the AY header and thus not reading the commands sent to this sound chip, I guess because it's an unofficial extension of the format?
What can be done about this? While the SAA1099 thing might be a big rabbit hole, can anything be done about the stereo panning of the channels? Also now that we're on 1.5, and the 1.4 change has already happened, this plugin needs to be updated to comply with the decoding panel.

 
SimplePortal 1.0.0 RC1 © 2008-2020