It is currently Tue Nov 21, 2017 2:32 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 41 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Tue Aug 20, 2013 12:54 pm 
Offline
NESICIDE developer
User avatar

Joined: Mon Oct 13, 2008 7:55 pm
Posts: 1049
Location: Minneapolis, MN
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. 8-)


Top
 Profile  
 
PostPosted: Tue Aug 20, 2013 2:24 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19238
Location: NE Indiana, USA (NTSC)
cpow wrote:
a Qt port of FamiTracker

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?

Image Image
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.


Top
 Profile  
 
PostPosted: Tue Aug 20, 2013 2:36 pm 
Offline
NESICIDE developer
User avatar

Joined: Mon Oct 13, 2008 7:55 pm
Posts: 1049
Location: Minneapolis, MN
Too bad the Ts don't match too! :lol:

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.


Top
 Profile  
 
PostPosted: Tue Aug 20, 2013 5:10 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19238
Location: NE Indiana, USA (NTSC)
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".


Top
 Profile  
 
PostPosted: Tue Aug 20, 2013 5:41 pm 
Offline
NESICIDE developer
User avatar

Joined: Mon Oct 13, 2008 7:55 pm
Posts: 1049
Location: Minneapolis, MN
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.


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.

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.

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".


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.

Thanks for trying, and apologies for the annoyances. I'm hoping to work through them through feedback from people like you. 8-)


Top
 Profile  
 
PostPosted: Tue Aug 20, 2013 6:31 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19238
Location: NE Indiana, USA (NTSC)
Here's what I have in FT/Wine
Attachment:
FT_Wine_cfg.png
FT_Wine_cfg.png [ 3.63 KiB | Viewed 3707 times ]

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


Top
 Profile  
 
PostPosted: Tue Sep 10, 2013 10:20 am 
Offline
NESICIDE developer
User avatar

Joined: Mon Oct 13, 2008 7:55 pm
Posts: 1049
Location: Minneapolis, MN
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.


Top
 Profile  
 
PostPosted: Tue Sep 10, 2013 10:58 pm 
Offline

Joined: Sun Sep 08, 2013 7:03 pm
Posts: 45
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.)


Top
 Profile  
 
PostPosted: Wed Sep 11, 2013 6:36 pm 
Offline
NESICIDE developer
User avatar

Joined: Mon Oct 13, 2008 7:55 pm
Posts: 1049
Location: Minneapolis, MN
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.)


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.


Top
 Profile  
 
PostPosted: Sun Sep 15, 2013 9:54 pm 
Offline

Joined: Sun Sep 08, 2013 7:03 pm
Posts: 45
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. :roll:

I'm just working on MML in the meantime. :)


Top
 Profile  
 
PostPosted: Mon Sep 16, 2013 5:59 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19238
Location: NE Indiana, USA (NTSC)
Is windows.h or a reasonable facsimile in the MinGW w32api package?


Top
 Profile  
 
PostPosted: Mon Sep 16, 2013 8:28 am 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 932
tepples wrote:
Is windows.h or a reasonable facsimile in the MinGW w32api package?
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?)

_________________
.


Top
 Profile  
 
PostPosted: Mon Sep 16, 2013 4:52 pm 
Offline
NESICIDE developer
User avatar

Joined: Mon Oct 13, 2008 7:55 pm
Posts: 1049
Location: Minneapolis, MN
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. :roll:

I'm just working on MML in the meantime. :)

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.


Top
 Profile  
 
PostPosted: Mon Sep 16, 2013 11:33 pm 
Offline

Joined: Sun Sep 08, 2013 7:03 pm
Posts: 45
tepples wrote:
Is windows.h or a reasonable facsimile in the MinGW w32api package?

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.

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. :x ) It finds the headers just fine, but I get the tail end of some errors:
Code:
/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 1


I'm sure there's a tool in BSD-land somewhere that can open deb packages, but I haven't found one yet. I'm presuming that the w32api headers in mingw are similar enough to those in Ubuntu's wine-dev package, but maybe they're not. The errors about gthr.h catch my eye as well.

Iunno, man. :?


Top
 Profile  
 
PostPosted: Mon Sep 16, 2013 11:43 pm 
Online

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6447
Location: UK (temporarily)
Imperial wrote:
I'm sure there's a tool in BSD-land somewhere that can open deb packages
They're AR chives. 7z also can unpack them.
Naively you could do something like ar p foo.deb data.tar.gz | bsdtar xzvf -


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 41 posts ]  Go to page 1, 2, 3  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group