jpage8580 / gtultra Goto Github PK
View Code? Open in Web Editor NEWGTUltra - Extensively modified GoatTracker Stereo (2.76) version. With many new features. See the GTUltra.PDF file for full details
License: GNU General Public License v2.0
GTUltra - Extensively modified GoatTracker Stereo (2.76) version. With many new features. See the GTUltra.PDF file for full details
License: GNU General Public License v2.0
To fix my issue Delete the cfg and then you can load GTUltra without ptns looking fucky
When saving with Ctrl+S, GTU says the project was saved, but it isn't.
Pressing Ctrl+K to split a pattern at the cursor position doesn't seem to have an effect anymore.
GTU doesn't delete its autosaves, leading to .sngs building up in the gtbackup folder. I think GTU should delete its previous autosaves once a project is saved manually, or just have one autosave and overwrite it.
so i finished a 3sid song, but then i tried to export it, BUT, it gives me this error "ILLEGAL SONG RESTART POSITION! (SUBTUNE 01, CHANNEL 4)" it thinks i have the 4th sid on. i dont. imma send you (jason page) the sng file
Interested in better SIDBlaster USB support? I would provide two kits or devices to the developers for free. The hardsid.dll was already ported for Linux and Mac by Ken Handel.
Apologies for this, I thought there was a problem when there wasn't.
$ make
./bme/dat2inc gt2stereo.dat goatdata.c
cc `sdl-config --cflags` -Ibme -Iasm -O3 -fpermissive -c -o goatdata.o goatdata.c
cc1: Warnung: Kommandozeilenoption »-fpermissive« ist gültig für C++/ObjC++, aber nicht für C
cc `sdl-config --cflags` -Ibme -Iasm -O3 -fpermissive -c -o gt2stereo.o gt2stereo.c
cc1: Warnung: Kommandozeilenoption »-fpermissive« ist gültig für C++/ObjC++, aber nicht für C
In Datei, eingebunden von bme/SDL/SDL_stdinc.h:30,
von bme/SDL/SDL_main.h:26,
von bme/SDL/SDL.h:30,
von bme/bme.h:6,
von goattrk2.h:12,
von gt2stereo.c:26:
bme/SDL/SDL_config.h:42:10: schwerwiegender Fehler: SDL_config_minimal.h: Datei oder Verzeichnis nicht gefunden
42 | #include "SDL_config_minimal.h"
| ^~~~~~~~~~~~~~~~~~~~~~
Kompilierung beendet.
After copying the missing file from a random source on my hd (which may or may not be correct, this file doesnt exist in my system libs) and creating a "linux" directory in the tree, it goes further until the linking stage - which then craps out with a ton of undefined and duplicate symbols.
cc `sdl-config --cflags` -Ibme -Iasm -O3 -fpermissive -c -o bme/bme.o bme/bme.c
cc1: Warnung: Kommandozeilenoption »-fpermissive« ist gültig für C++/ObjC++, aber nicht für C
c++ -o ../linux/gt2stereo goatdata.o gt2stereo.o gsong.o gorder.o gpattern.o ginstr.o gtable.o gplay.o gdisplay.o gfile.o greloc.o ghelp.o gsound.o gconsole.o gsid.o resid/envelope.o resid/extfilt.o resid/filter.o resid/pot.o resid/sid.o resid/wave.o resid/wave6581__ST.o resid/wave6581_P_T.o resid/wave6581_PS_.o resid/wave6581_PST.o resid/wave8580__ST.o resid/wave8580_P_T.o resid/wave8580_PS_.o resid/wave8580_PST.o resid/voice.o resid-fp/envelopefp.o resid-fp/extfiltfp.o resid-fp/filterfp.o resid-fp/potfp.o resid-fp/sidfp.o resid-fp/wavefp.o resid-fp/voicefp.o asm/asmtab.o asm/chnkpool.o asm/expr.o asm/lexyy.o asm/log.o asm/membuf.o asm/membufio.o asm/namedbuf.o asm/parse.o asm/pc.o asm/vec.o bme/bme_gfx.o bme/bme_snd.o bme/bme_win.o bme/bme_mou.o bme/bme_kbd.o bme/bme_io.o bme/bme_end.o bme/bme.o `sdl-config --libs`
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8b40): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8940): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8960): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8a60): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8a80): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8c00): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o:(.bss+0x1fd8c80): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0xd740): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0x440): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0xd660): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0xd664): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0xd680): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0xd800): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o:(.bss+0xd880): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0xd40): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0x1c0): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0xb44): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0xb60): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0xc60): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0xc80): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:(.bss+0xe00): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x200): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x1c): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x20): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x120): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x140): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x2c0): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ginstr.o:(.bss+0x340): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x420): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x340): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x360): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x220): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x240): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x4e0): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gtable.o:(.bss+0x560): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x4560): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x4378): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x4380): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x4480): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x44a0): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x4620): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gplay.o:(.bss+0x46a0): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x6a0): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x4c0): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x4a4): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x5c0): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x5e0): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x760): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o:(.bss+0x7e0): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x40000): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x40020): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x40120): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x40140): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x40200): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x402c0): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gfile.o:(.bss+0x40340): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x1778): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x1780): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x1880): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x18a0): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x1960): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x1a20): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: greloc.o:(.bss+0x1aa0): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x200): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x0): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x20): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x120): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x140): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x2c0): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: ghelp.o:(.bss+0x340): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x50): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x60): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x160): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x180): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x240): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x300): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsound.o:(.bss+0x380): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x120): multiple definition of `undoBufferSize'; gt2stereo.o:(.bss+0x239c): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x140): multiple definition of `instrumentCount'; gt2stereo.o:(.bss+0x23a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x240): multiple definition of `disableEnterToReturnToLastPos'; gt2stereo.o:(.bss+0x24a0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x260): multiple definition of `editorInfoBackup'; gt2stereo.o:(.bss+0x24c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x320): multiple definition of `editorInfo'; gt2stereo.o:(.bss+0x2580): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x3e0): multiple definition of `keyOffsetText'; gt2stereo.o:(.bss+0x2640): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gconsole.o:(.bss+0x460): multiple definition of `jdebug'; gt2stereo.o:(.bss+0x26c0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o: warning: relocation against `jcounter' in read-only section `.text'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.o: in function `waitkeymouse':
gt2stereo.c:(.text+0x727): undefined reference to `lastMS'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x72d): undefined reference to `msDelta'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x73f): undefined reference to `lastMS'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x7cb): undefined reference to `checkForMidiInput'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x83c): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x84a): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x862): undefined reference to `lastInfoPatternCh'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x86e): undefined reference to `displayPatternInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x8a4): undefined reference to `checkForMidiInput'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.o: in function `load':
gt2stereo.c:(.text+0x2c62): undefined reference to `undoInitAllAreas'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.o: in function `mouseTransportBar':
gt2stereo.c:(.text+0x3b23): undefined reference to `msDelta'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x3d3c): undefined reference to `msDelta'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x4013): undefined reference to `displayCharWindow'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.o: in function `docommand':
gt2stereo.c:(.text+0x687a): undefined reference to `undoCreateEditorInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x68be): undefined reference to `displayInstrumentInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x68d0): undefined reference to `undoFreeUndoObject'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x68e1): undefined reference to `undoValidateUndoAreas'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x68ed): undefined reference to `undoFreeUndoObject'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6922): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6948): undefined reference to `displayOrderTableInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6a4a): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6a5b): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6a71): undefined reference to `displayPatternInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6abf): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6ad7): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6ae7): undefined reference to `displayTableInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text+0x6b19): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.o: in function `generalcommands':
gt2stereo.c:(.text+0x328d): undefined reference to `undoPerform'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.o: in function `main':
gt2stereo.c:(.text.startup+0x2a): undefined reference to `initMidi'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text.startup+0x615): undefined reference to `initAreaListFlag'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text.startup+0x61f): undefined reference to `initUndoBufferFlag'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gt2stereo.c:(.text.startup+0x628): undefined reference to `undoInitAllAreas'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gsong.o: in function `clearsong.part.0':
gsong.c:(.text+0x1f2e): undefined reference to `undoInitAllAreas'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.o: in function `songchange':
gorder.c:(.text+0x113c): undefined reference to `lastInfoPatternCh'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gorder.c:(.text+0x1145): undefined reference to `displayPatternInfo'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o: in function `keyOff':
gpattern.c:(.text+0x1674): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.c:(.text+0x16ab): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.c:(.text+0x16df): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.c:(.text+0x1717): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.c:(.text+0x174f): undefined reference to `clearInfoLine'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o:gpattern.c:(.text+0x1787): more undefined references to `clearInfoLine' follow
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o: in function `autoPitchbendToNextNote':
gpattern.c:(.text+0x3352): undefined reference to `jcounter'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.o: in function `patterncommands':
gpattern.c:(.text+0x5b33): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.c:(.text+0x5b47): undefined reference to `undoAreaSetCheckForChange'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gpattern.c:(.text+0x5b56): undefined reference to `refreshVariables'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: gdisplay.o: in function `displayTransportBar':
gdisplay.c:(.text+0x26cd): undefined reference to `jcounter'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: Fehler: ld gab 1 als Ende-Status zurück
make: *** [makefile.common:25: ../linux/gt2stereo] Fehler 1
what kind of environment is this supposed to work in?
(replaces everything with 0s)
The title is rather self-explanitory. It would be very nice if the things that you mentioned in the manual PDF included in the source were added to the F12 help screen so more users of GT2 will be able to find the new stuff that got added. :)
The instrument names all have the first letter of the name of the first instrument at the beginning of them, and deleting that letter deletes the names of all the instruments.
I'm just trying to upgrade the FreeBSD port of GTUltra, unfortunately I can't get it to build. The errors seem all related to gt2reloc.c
.
The first issue is usage of keybd_event()
, which is a Windows-specific function. I don't really understand the purpose of "faking" keystrokes here, but just removing it for non-Windows helps:
@@ -219,10 +219,12 @@ int main(int argc, char **argv)
}
else {
usage();
+#ifdef __WIN32__
// ENTER key down
keybd_event(VK_RETURN, 0x9C, 0, 0);
// ENTER key up
keybd_event(VK_RETURN, 0x9C, KEYEVENTF_KEYUP, 0);
+#endif
exit(-1);
}
@@ -452,10 +454,12 @@ int main(int argc, char **argv)
// perform relocation
relocator(>Object, 1);
+#ifdef __WIN32__
// ENTER key down
keybd_event(VK_RETURN, 0x9C, 0, 0);
// ENTER key up
keybd_event(VK_RETURN, 0x9C, KEYEVENTF_KEYUP, 0);
+#endif
// Exit
exit(0);
return 0;
The next issue is a linker complaint about double definition of gtObject
. I have to really start guessing here, my guess is it should reference an object defined somwhere else, so the following patch would help if this assumption would be correct:
@@ -95,7 +95,7 @@ int useOriginalGTFunctionKeys = 0;
char debugTextbuffer[MAX_PATHNAME];
int useOriginalGTFunctionKeys = 0;
-GTOBJECT gtObject;
+extern GTOBJECT gtObject;
int useRepeatsWhenCompressing = 1;
char infoTextBuffer[256];
int midiEnabled = 0;
But then, I really have no idea about the next error, linking gt2reloc
complains about an undefined symbol playUntilEnd
, referenced by gorder.o
. This one is defined in gt2stereo.o
, but linking that as well creates a whole list of duplicate symbols instead.
I'll hold back the update of the FreeBSD port for now and hope for some feedback, because I don't want to build/package a broken version of GTUltra ... TIA!
Among these problems are
In GTUltra's exported files (and the original GT2's tracker playback), the 1st frame wave's pitch matches that of the last frame before the new note. In GTUltra's tracker playback, the 1st frame wave's pitch is that of the note being played.
In addition to this being a compatibility issue between GT2 and GTU, mismatch between preview and export may cause issues in complex sound arrangements where the 1st frame wave of an instrument isn't 0/test bit.
After applying the missing patch mentioned in #1 building works, but the resulting binary will not run:
$ ./gt2stereo
MidiInDummy: This class provides no functionality.
Don't have time to dig further into this, but the case that MIDI isnt available (ie the dummy driver is used) doesnt seem to work at all.
Exporting this .sng to .sid with a start address of $9000 results in corrupted playback starting at around 1:07. This is most likely a problem with the player itself since relocating a .sid exported to $1000 to $9000 with sidreloc results in the same corruption.
Raistlin_50.zip
I had this happen to me a on a very basic file with only like 3 notes in it when it reached the end of a pattern, and again when I SID-exported the file.
Edit: It also occasionally happens when playback is stopped.
When GTUltra reaches the end of a pattern, it freezes and plays the last second of audio repeatedly. I'm able to scroll around, but not do much else.
I have attached the project file I was editing when this bug happened
ultestura.zip
.
Version affected: 1.4.x
Symptom:
export will crash at the step after specifying the options, SID addresses and addresses of the ZP to use.
Observations:
Seems to crash specifically when Volume Change support or Sound Effect Support is enabled.
Crash is literally just application shutdown
Platform:
WIN32
There seems to be no alsa package for macOS, so the build fails.
GTultra is crashing after longer time period of use (eg. for having it open/using for 2 hours)
I decided to test GTUltra, and when I was saving my file, the GTUltra indicate to save it in system32, is there a way to save it in places beyond system32?
I try to merge 5 files. All files was optimized, so that enough table space (wave table) was free for the merge.
But I wasn't able to merge up to files 5 files. Only 4 files was merged and there was on one song some trouble with an Instrument (wave table / pulstabe was of by 1).
I tried to do a little tune, and why I put that to play it didn't work: I tried Fn keys, and when i pushed them, nothing worked more
And ironically, everything worked except these two keys
Also, i tried to change the buffer and ration lenght on .cfg file, but it stays the same...
I believe this is an issue with the conversion from the new to old orderlist. When converting from new to old, I believe an extra transpose command is needed before a pattern that's being jumped to.
So take this module for example, done in goattracker ultra. this is supposed to be 1sid BUT GTUltra exports GoatTracker Stereo sngs even if your track is set as 1sid.
https://csdb.dk/getinternalfile.php/227158/Powered_by_Drum_Patterns.sng
I recently updated to the latest version of GTUltra, and when opening a .sng I was working on, I noticed all the instruments were panned weirdly, even when switching to mono mode. I've attached the .sng below.
It would be very convenient if there were a key combo that, when pressed, finds the lowest-numbered blank pattern and replaces it with a duplicate of the pattern your cursor is currently on (in the pattern or orderlist view). The selected pattern in the orderlist is then replaced with its duplicate.
Clicking on the detune button only once or twice may cause the amount of detune set in the .cfg to change while the number displayed on the button doesn't. I think it could be less confusing if the amount of detune added/subtracted by each click of the button was increased so that the detune amount shown on the button actually matches the amount of detune set internally.
Splitting and expanding/shrinking a pattern (with the key shortcuts) scrolls the orderlist to POS 00 instead of keeping the current pattern highlighted.
Initial problem: my MIDI keyboard (Reloop Keyfadr) is recognized by GTUltra, but nothing I press on the keyboard is recognized. I can live with that. As a workaround (or potentially as a priority method), I'd like to use a software synthesizer on the background to jam over the current song. This does work fine with original Goattracker, but doesn't unfortunately seem to be an option with GTUltra, as it seems to prioritize the utilization of the MIDI keyboard.
I would prefer to have a setting to turn MIDI completely OFF on GTUltra, so that it does not interact with the keyboard at all no matter if it's connected or not. Or am I missing something? :) Is there any other workaround I could try? Running on Windows 10.
I'm unsure under what circumstances this happens, but I've been able to get GTU to save to the right directory by manually saving to it a couple times and deleting the .sng saved to the win32 directory.
in gt2stereo.c
unsigned sidaddress = 0xd400d420;
should be
unsigned sidaddress = 0xd420d400;
so that the first SID is at address 0xd400 and the second at 0xd420
see greloc.c:
int sidAddr1 = sidaddress & 0xffff;
int sidAddr2 = (sidaddress >> 16) & 0xffff;
When I update the instruments that I'm using in my songs, sometimes I get the AD, SR positions mixed up, and end up creating weird unintentional instruments, however I often use the display on the bottom to make sure that what I entered was what I wanted.
The bar that I'm talking about is this one:
The issue that comes from this is that when you update the instrument's parameters, the bar doesn't update to show the changes that are made, and only do you get to see the new changes when you cursor down and then cursor back up again.
My wish for this is that the bar's display gets updated when you stroke a key to edit the instrument, so as to avoid this and make creating instruments just that little bit easier.
Thanks
PS: I've been enjoying the tracker a lot since I started learning it, so I might end up submitting this (when it's actually finished of course, right now it's very far from finished) as a demo song if that's possible? Thanks
Like on the third channel pattern column
Me and others have saved over projects with blanks when trying to load numerous times.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.