Skip to content

'YMT2' YM format support #84

@cyberic99

Description

@cyberic99

I have been trying to use ym2wav with several songs, and pym2149 crashed with some of them:

http://antarctica.no/stuff/atari/YM2/Whittacker.David/Xenon%202/Xenon2_digi.ym

$ ym2wav "Xenon2_digi.ym" o.wav
[DEBUG] > Request: pym2149.iface.Config
[DEBUG] > Fabricate: pym2149.iface.Config
[WARNING] Settings not found: [Errno 2] No such file or directory: '/home/eric/.settings.arid'
[DEBUG] > Request: Started[pym2149.ymformat.YMOpen](Started)
[DEBUG] >> Request: pym2149.ymformat.YMOpen
[DEBUG] >> Instantiate: pym2149.ymformat.YMOpen
[DEBUG] > Instantiate: Started[pym2149.ymformat.YMOpen]
xenon2.ym	- Melted   :  oooooooooooooo
[DEBUG] Deleting temporary folder: /tmp/tmpvg2ppnzp
Traceback (most recent call last):
  File "/home/eric/tmp/pym/bin/ym2wav", line 8, in <module>
    sys.exit(main_ym2wav())
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/pym2149/main.py", line 258, in main_ym2wav
    di.all(Started)
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/diapyr.py", line 106, in all
    return AllInstancesOf(type).getall(self, self.depthunit)
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/match.py", line 26, in getall
    return [source.make(depth, self.clazz) for source in di.typetosources.get(self.clazz, [])]
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/match.py", line 26, in <listcomp>
    return [source.make(depth, self.clazz) for source in di.typetosources.get(self.clazz, [])]
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/source.py", line 61, in make
    instance = self.callable(*args)
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/start.py", line 35, in __init__
    startable.start()
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/pym2149/ymformat.py", line 319, in start
    self.startimpl()
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/pym2149/ymformat.py", line 337, in startimpl
    self.ym = self.impls[self.f.read(4)](self.f, self.once)
KeyError: b'MIX1'

Startpaws_digital and Ace_2_digital can be downloaded here:

The stack trace is the same for Ace2.

http://antarctica.no/stuff/atari/YM2/Hippel.Jochen%20(Mad%20Max)/Big%20Demo/

$ ym2wav "Starpaws_Digital.ym" o.wav
[DEBUG] > Request: pym2149.iface.Config
[DEBUG] > Fabricate: pym2149.iface.Config
[WARNING] Settings not found: [Errno 2] No such file or directory: '/home/eric/.settings.arid'
[DEBUG] > Request: Started[pym2149.ymformat.YMOpen](Started)
[DEBUG] >> Request: pym2149.ymformat.YMOpen
[DEBUG] >> Instantiate: pym2149.ymformat.YMOpen
[DEBUG] > Instantiate: Started[pym2149.ymformat.YMOpen]
bigtune6	- Melted   :  ooooooooooooooooooooooooooooooooooooooooo
[DEBUG] Deleting temporary folder: /tmp/tmpl2nhfnwb
Traceback (most recent call last):
  File "/home/eric/tmp/pym/bin/ym2wav", line 8, in <module>
    sys.exit(main_ym2wav())
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/pym2149/main.py", line 258, in main_ym2wav
    di.all(Started)
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/diapyr.py", line 106, in all
    return AllInstancesOf(type).getall(self, self.depthunit)
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/match.py", line 26, in getall
    return [source.make(depth, self.clazz) for source in di.typetosources.get(self.clazz, [])]
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/match.py", line 26, in <listcomp>
    return [source.make(depth, self.clazz) for source in di.typetosources.get(self.clazz, [])]
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/source.py", line 61, in make
    instance = self.callable(*args)
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/diapyr/start.py", line 35, in __init__
    startable.start()
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/pym2149/ymformat.py", line 319, in start
    self.startimpl()
  File "/home/eric/tmp/pym/lib/python3.9/site-packages/pym2149/ymformat.py", line 337, in startimpl
    self.ym = self.impls[self.f.read(4)](self.f, self.once)
KeyError: b'YMT2'

It seems pym2149 fail to recognize 'YMT2' and 'MIX1' YM formats

There is some info here:

https://github.com/arnaud-carre/StSound/blob/main/StSoundLibrary/Ymload.cpp

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    defectnot quite a bug but clearly lacking

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions