Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29
Sorry...this was meant as a new topic. Not sure why it went here!
[color=red][i]Thread split from Linux build topic. ~Moderator[/i]
Original post: http://forums.nesdev.com/viewtopic.php?f=6&t=9807
I'm reposting here because the project is finally at a point where it has enough traction to be completed, possibly in a matter of a few weeks. I'm not sure how many here are also on forums.nesdev.com...
Highlights:
FamiTracker original source code is running "almost-native" on top of a MFC HLE I created. Obviously there's parts of it that are specific to FamiTracker, but in general all of the MFC framework that is required has been reimplemented with adapter classes. This means that the MFC FamiTracker source believe's it's interacting with CString, CFile, CWinApp, CWinThread, CDC, CPen, CBrush, CFont, ... but the MFC HLE adapts it to Qt. A goal of this approach is to be able to "air-drop" MFC applications like FamiTracker on top of the Qt framework. I am hoping to migrate pretty soon to the 0.4.2 release that just came out -- right now I'm using 0.4.1.
Most major features are implemented and working as you can see in [url=http://youtu.be/LzdJVKKHhhg]this short video. What I have left to do is porting the instrument editing dialogs and the configuration dialogs, and the exporter back-end.
The FamiTracker source, in addition to being darn-close-to-untouched from the source distributions available on this site, is compiled into a DLL. I did it this way because I intend to release a stand-alone FamiTracker Qt application and I also intend to integrate this FamiTracker into my NES IDE, NESICIDE. The side-benefit of this approach is that it means that any application(!) that wants to can link to the FamiTracker DLL and use it to play awesome chiptunage without the FamiTracker UI. I don't know if anyone will find this interesting or useful, but I think it could have some fun applications.
It's already been built and run native in OSX [thanks hyarion!] and Windows. I'm hoping someone out there with interest might help get Linux builds going. =]
Thanks jsr for giving me permission [even though it was a few years back we talked originally about this!]. I finally got off my butt and started it last month!
That was me doing the split, but you're welcome. :p
_______________________
Follow me on [url=https://twitter.com/jrlepage2a03]Twitter.
I record (some) NSFs on hardware. Feel free to [url=http://www.famitracker.com/forum/posts.php?id=3633]request a hardware render.
Hey, yeah I remember now. Unfortunately that slipped through my mind back then, and I still haven't learned Qt.
This looks nice, but I can't imagine all the trouble there must have been reimplementing all that MFC stuff to get it working again. That is very impressive!
If there's anything I can do to assist then please let me know.
Thanks jsr! You don't need to learn Qt. Slowly it will assimilate you. =] I "joined the dark side" from purely a MFC UI background over three years ago and sometimes fondly look back. This project is giving me new reasons to love and hate MFC and Qt. So far the "trouble" has been only 2000 lines of code - evenly split between [url=https://github.com/christopherpow/nesicide/blob/master/common/cqtmfc.h]one header and [url=https://github.com/christopherpow/nesicide/blob/master/common/cqtmfc.cpp]one source file. The rest of the work has been in "shoehorning" the Qt event system into the MFC event system so paintEvent(QPaintEvent*) vectors properly to OnPaint(). I'm playing some games to get it to work at the moment, for sure, but it's technically working out better than I had hoped. The only thing you can do to assist at the moment - unless you suddenly feel inclined to actually jump on board and help dev it directly [if so, feel free to join my merry band on FreeNode, #nesicide] - is to keep up the great work churning on FamiTracker. Oh...and avoid any MFC evil trickery if at all possible. =] Wait...what am I saying? It's all black magic!
[quote=Patashu]Can't wait for this to finish so I can get some linux-using friends trying out Famitracker (well, hopefully! lol)[/quote]
It'll be at least two weeks yet, probably. I'm planning to start the instrument editor dialogs tonight. Depends on how quickly those go. The sample window [scope, FFT] ported in about an hour.
[url=http://i.imgur.com/7p1kRaU.png]Making great progress on instrument editor dialogs.
This is the sequence editor showing the arpeggio graph editor in a dialog test jig. The graph is fully functional -- I can change the levels with the mouse ([url=http://i.imgur.com/Sz9rz9T.png]including the right-mouse line-drag that I just found out looking at the code!).
Instrument dialogs may only be a few more days out.
jsr: Qt doesn't allow creation of widgets globally. The CScrollBar m_sbScrollBar in SampleEditorDlg.cpp causes problems. I'd like to change it to CScrollBar* m_sbScrollBar.
Update: 2A03 [not Sunsoft or VRC or etc.] instrument dialog is implemented and working, complete with DPCM instrument panel, PCM import ability, and PCM sample editing. It's not polished enough yet to warrant a release but it's getting close. You can play the keys using the graphical keyboard in the instrument dialog but the keyboard gfx don't show up yet...I'm being lazy on implementing a HLE replacement for CDC::BitBlt. I'll probably get to that tomorrow. But...all other gfx are working including the sequence editors that I previously showed a preliminary picture of.
Update: VRC6 and VRC7 instrument dialogs implemented. Keyboard gfx on instrument dialog implemented [with a minor-but-annoying overreach bug somewhere in CDC::BitBlt that I'm looking into but doesn't otherwise break anything].
Next steps:
. Rip out and re-do the originally hacked CMainFrame implementation, now that most major portions of the MFC HLE are in place and working.
. Port accelerators.
. Configuration dialog.
. Mac/Linux build/test.
. RELEASE!
[Attached image shows VRC7 instrument dialog while playing batroll.ftm]