FamiTracker 0.4.1.1 pre-release
Moderator: Moderators
- cpow
- NESICIDE developer
- Posts: 1097
- Joined: Mon Oct 13, 2008 7:55 pm
- Location: Minneapolis, MN
- Contact:
FamiTracker 0.4.1.1 pre-release
For those interested I've been working on a Qt port of FamiTracker for going on 8 months. It's very close to done but still has some issues that need to be worked out. I posted about it here. I have uploaded a Linux build which I know works at least in Ubuntu 12.04 and requires SDL. I know at least one person on NESDev has been after me to get off my butt and get this done. 
Re: FamiTracker 0.4.1.1 pre-release
Look at the way the FT is angled in the title bar or the main page of the wiki. Compare the logo of Qt, the multi-platform C++ application framework that powers the KDE Software Compilation and NESICIDE. Coincidence?cpow wrote:a Qt port of FamiTracker
It was inevitable.
And cpow has told me it's powered by an implementation of MFC on top of Qt, which should ideally allow other applications that use MFC to be more easily ported to Qt.
- cpow
- NESICIDE developer
- Posts: 1097
- Joined: Mon Oct 13, 2008 7:55 pm
- Location: Minneapolis, MN
- Contact:
Re: FamiTracker 0.4.1.1 pre-release
Too bad the Ts don't match too!
Tepples if you get a chance to try it let me know what playback is like. I've only heard it inside VMs, one on a ridiculously underpowered host and the other on a behemoth machine. They both sounded bad. The slow machine obviously. But I'm wondering if I need to fiddle the SDL setup - Famitracker ran about 2x normal speed in the VM on the fast host.
Tepples if you get a chance to try it let me know what playback is like. I've only heard it inside VMs, one on a ridiculously underpowered host and the other on a behemoth machine. They both sounded bad. The slow machine obviously. But I'm wondering if I need to fiddle the SDL setup - Famitracker ran about 2x normal speed in the VM on the fast host.
Re: FamiTracker 0.4.1.1 pre-release
On my Atom netbook running 12.04 (which runs FT fine in Wine) the FTM that I loaded ran at half speed. While I was poking around in the configuration to try to find a way to lower the quality, it core dumped on me soon after I closed the configuration or module properties dialog box. How should I troubleshoot this? Two other FTMs that I tried gave "This file was created in a newer version of FamiTracker." It's especially a pain because the file chooser doesn't seem to go back to the same folder I was in last time, and it defaults to "all files" rather than "*.ftm". The toolbar buttons lack tooltips. Nothing in the Help menu works.
What's a "horzline not implemented"? And what's a "MapVirtualKey...not sure what to do here yet uCode=41, uMapType=0"? And I see a "QThread::setPriority: Cannot set priority, thread is not running".
What's a "horzline not implemented"? And what's a "MapVirtualKey...not sure what to do here yet uCode=41, uMapType=0"? And I see a "QThread::setPriority: Cannot set priority, thread is not running".
- cpow
- NESICIDE developer
- Posts: 1097
- Joined: Mon Oct 13, 2008 7:55 pm
- Location: Minneapolis, MN
- Contact:
Re: FamiTracker 0.4.1.1 pre-release
Easy one first. This is Qt FamiTracker-0.4.1.1 which is based on MFC FamiTracker-0.4.1. MFC FamiTracker has rolled to 0.4.3 beta, so FTMs that were created with MFC 0.4.2 or later won't load in Qt 0.4.1.1. Eventually, when I get to Qt 0.4.3.x that will be feature-compatible with MFC 0.4.3.tepples wrote:On my Atom netbook running 12.04 (which runs FT fine in Wine) the FTM that I loaded ran at half speed. While I was poking around in the configuration to try to find a way to lower the quality, it core dumped on me soon after I closed the configuration or module properties dialog box. How should I troubleshoot this? Two other FTMs that I tried gave "This file was created in a newer version of FamiTracker." It's especially a pain because the file chooser doesn't seem to go back to the same folder I was in last time, and it defaults to "all files" rather than "*.ftm". The toolbar buttons lack tooltips. Nothing in the Help menu works.
With regard to the half-speed issue, I haven't yet implemented the Sound configuration. What settings do you have in FT in Wine on that tab? Strange that in one of my VMs it ran at 2x speed...likely a SDL config issue. I'll look at implementing the Sound config dialog.
Most of that is just like I indicated in the post on the FT forum: for now the program is very unabashedly console-chatty, mostly because it helps me remember what's left to do or figure things out. The "horzline" is just a graphical element that doesn't really add much so I will either remove that message or implement it. Those messages will disappear as releases happen that incorporate fixes, updates, etc. The QThread:: message is an annoyance but I can easily work around it.tepples wrote:What's a "horzline not implemented"? And what's a "MapVirtualKey...not sure what to do here yet uCode=41, uMapType=0"? And I see a "QThread::setPriority: Cannot set priority, thread is not running".
Thanks for trying, and apologies for the annoyances. I'm hoping to work through them through feedback from people like you.
Re: FamiTracker 0.4.1.1 pre-release
Here's what I have in FT/Wine
44.1 kHz, 16-bit, 250 ms buffer, high-pass 16 Hz, low-pass -24 dB 12 kHz, 100% volume
By "half speed" I don't mean the pitch was low. I mean it sounds like frames of audio were being repeated, and low pitches were distorted beyond recognition. The slowdown tended to increase when I navigated through menus and dialogs and especially when I alt-tabbed to Firefox to write my testing report. Xfce Task Manager reported fairly high CPU usage.
Yesterday, I got FCEUX audio working in Wine. So it appears Wine audio improved greatly from the version in 10.04 to the version I'm running.
EDIT: cpow's burn-down list
By "half speed" I don't mean the pitch was low. I mean it sounds like frames of audio were being repeated, and low pitches were distorted beyond recognition. The slowdown tended to increase when I navigated through menus and dialogs and especially when I alt-tabbed to Firefox to write my testing report. Xfce Task Manager reported fairly high CPU usage.
Yesterday, I got FCEUX audio working in Wine. So it appears Wine audio improved greatly from the version in 10.04 to the version I'm running.
EDIT: cpow's burn-down list
- cpow
- NESICIDE developer
- Posts: 1097
- Joined: Mon Oct 13, 2008 7:55 pm
- Location: Minneapolis, MN
- Contact:
Re: FamiTracker 0.4.1.1 pre-release
EDIT: cpow's burn-down list[/quote]
Haha. Alright I've updated the burn-down.
I apparently need to learn how DirectSound works because the FamiTracker code uses it and creates a certain number of "blocks" of audio sample data depending on the buffer size you select. It would make sense if the program got an interrupt at the end of each block, but I'm not sure that's what actually happens. [Which is different from SDL which interrupts whenever it needs a new "block"]. I am working to make the equivalent variability available with SDL's sample buffer size.
Haha. Alright I've updated the burn-down.
I apparently need to learn how DirectSound works because the FamiTracker code uses it and creates a certain number of "blocks" of audio sample data depending on the buffer size you select. It would make sense if the program got an interrupt at the end of each block, but I'm not sure that's what actually happens. [Which is different from SDL which interrupts whenever it needs a new "block"]. I am working to make the equivalent variability available with SDL's sample buffer size.
Re: FamiTracker 0.4.1.1 pre-release
I'll let you know how it builds and runs on OpenBSD.
I have a nearly fresh install of BSD, so right now I'm in the process of building Qt3 from ports. (Is there anything else I'll need?) Then I'll try to build Nesicide.
I'm following your github now.
(I'm Heathcode on github, in case I should contact you there.)
I'm following your github now.
- cpow
- NESICIDE developer
- Posts: 1097
- Joined: Mon Oct 13, 2008 7:55 pm
- Location: Minneapolis, MN
- Contact:
Re: FamiTracker 0.4.1.1 pre-release
NESICIDE and FamiTracker use Qt4. You don't have to build NESICIDE...just build the projects in libs/famitracker and apps/famitracker. For FamiTracker the only dependency [beyond the Qt libs] is SDL, I believe.Imperial wrote:I'll let you know how it builds and runs on OpenBSD.I have a nearly fresh install of BSD, so right now I'm in the process of building Qt3 from ports. (Is there anything else I'll need?) Then I'll try to build Nesicide.
I'm following your github now.(I'm Heathcode on github, in case I should contact you there.)
Re: FamiTracker 0.4.1.1 pre-release
Hey, cpow. It looks like this needs the Windows SDK, and so I'll probably need Wine to get anywhere with this. The thing about that is, OpenBSD doesn't do Wine. Period. (OpenBSD is like the cranky old man on the block who always yells at little Linus to get off his lawn.)
It might be a wild goose chase, but would it be possible to put windows.h and company in the directory and compile it that way? I'm asking nicely, because I don't have windows.h, because you get the SDK from Microsoft's downloader, which is a .exe, which I cannot run.
I'm just working on MML in the meantime.
It might be a wild goose chase, but would it be possible to put windows.h and company in the directory and compile it that way? I'm asking nicely, because I don't have windows.h, because you get the SDK from Microsoft's downloader, which is a .exe, which I cannot run.
I'm just working on MML in the meantime.
Re: FamiTracker 0.4.1.1 pre-release
Is windows.h or a reasonable facsimile in the MinGW w32api package?
Re: FamiTracker 0.4.1.1 pre-release
Since I have MinGW in my computer, I can tell you that it does include a file called "windows.h". (I don't know what other details would be needed to answer this question properly?)tepples wrote:Is windows.h or a reasonable facsimile in the MinGW w32api package?
[url=gopher://zzo38computer.org/].[/url]
- cpow
- NESICIDE developer
- Posts: 1097
- Joined: Mon Oct 13, 2008 7:55 pm
- Location: Minneapolis, MN
- Contact:
Re: FamiTracker 0.4.1.1 pre-release
It requires only the Wine headers not a functional Wine. Does that help? I thought the headers are freely available? If I recall all I had to do was sudo apt-get install wine-dev...no building Wine required.Imperial wrote:Hey, cpow. It looks like this needs the Windows SDK, and so I'll probably need Wine to get anywhere with this. The thing about that is, OpenBSD doesn't do Wine. Period. (OpenBSD is like the cranky old man on the block who always yells at little Linus to get off his lawn.)
It might be a wild goose chase, but would it be possible to put windows.h and company in the directory and compile it that way? I'm asking nicely, because I don't have windows.h, because you get the SDK from Microsoft's downloader, which is a .exe, which I cannot run.
I'm just working on MML in the meantime.
Re: FamiTracker 0.4.1.1 pre-release
tepples wrote:Is windows.h or a reasonable facsimile in the MinGW w32api package?
To check on this, I downloaded mingw's w32api from sourceforge. I didn't build anything in it. I just copied all the contents and subdirectories of w32api's include directory to my home directory. Then I added this directory to nesicide-master/libs/famitracker/Makefile's INCPATH, having already run qmake4 there. Now I run gmake. (Funny thing. Did you know BSD's make and GNU's make aren't even the same? Of course not, you say, but then you get to deal with the incompatibilities.cpow wrote:It requires only the Wine headers not a functional Wine. Does that help? I thought the headers are freely available? If I recall all I had to do was sudo apt-get install wine-dev...no building Wine required.
Code: Select all
/home/bjh/include/io.h:231: error: expected initializer before '_findnext64'
/home/bjh/include/io.h:232: error: expected initializer before '_findnext32i64'
/home/bjh/include/io.h:233: error: expected initializer before '_findnext64i32'
/home/bjh/include/io.h:236: error: expected initializer before 'intptr_t'
In file included from /usr/include/g++/i386-unknown-openbsd5.3/bits/c++io.h:43,
from /usr/include/g++/iosfwd:46,
from /usr/include/g++/bits/stl_algobase.h:70,
from /usr/include/g++/algorithm:65,
from /usr/local/include/X11/qt4/QtCore/qglobal.h:68,
from /usr/local/include/X11/qt4/QtCore/qnamespace.h:45,
from /usr/local/include/X11/qt4/QtCore/qobjectdefs.h:45,
from /usr/local/include/X11/qt4/QtCore/qobject.h:47,
from /usr/local/include/X11/qt4/QtCore/qcoreapplication.h:45,
from /usr/local/include/X11/qt4/QtGui/qapplication.h:45,
from /usr/local/include/X11/qt4/QtGui/QApplication:1,
from ../../common/cqtmfc.h:4,
from Source/stdafx.h:86,
from Source/TrackerChannel.cpp:21:
/usr/include/g++/i386-unknown-openbsd5.3/bits/gthr.h:122: error: expected `}' before end of line
/usr/include/g++/i386-unknown-openbsd5.3/bits/gthr.h:122: error: expected declaration before end of line
gmake: *** [TrackerChannel.o] Error 1Iunno, man.
Re: FamiTracker 0.4.1.1 pre-release
They're AR chives. 7z also can unpack them.Imperial wrote:I'm sure there's a tool in BSD-land somewhere that can open deb packages
Naively you could do something like ar p foo.deb data.tar.gz | bsdtar xzvf -