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 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > Source and development > FamiTracker Qt - crosspost from forums.nesdev.com Owner: cpow New post
Page 1 of 8 Sort: Goto Page: [1] [2] [3] [4] [5] [6] [7] [8] Next >>
FamiTracker Qt - crosspost from forums.nesdev.com Posted: 2013-02-20 15:51  (Last Edited: 2013-02-20 16:08) Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#44693
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!

Posted: 2013-02-20 16:15 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#44695
Thanks for the split, jsr! I'll try to pay more attention in the future. =]

Posted: 2013-02-20 16:41 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 4983 days
Location: Canada
Status: Offline

#44696
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.
Posted: 2013-02-21 01:08 Reply | Quote
jsr
Administrator

Avatar

Member for: 5925 days
Location: Sweden
Status: Offline

#44706
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.

_______________________
Programmer and developer
Posted: 2013-02-21 06:06 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#44715
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!

Cheers!

Posted: 2013-02-22 01:19 Reply | Quote
Jarhmander

Avatar

Member for: 5900 days
Status: Offline

#44736
Thumbs up!!!

Posted: 2013-02-22 04:08 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#44740
Thanks Jarhmander.

Posted: 2013-02-26 22:54 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#44896
Ported the SW scope display today for fun. heh

Posted: 2013-02-26 23:23 Reply | Quote
Patashu

Avatar

Member for: 3749 days
Location: Sydney, Australia
Status: Offline

#44902
Can't wait for this to finish so I can get some linux-using friends trying out Famitracker (well, hopefully! lol)

Posted: 2013-02-27 03:03 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#44917
[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://youtu.be/9NMzuGlT0gk]New video

Posted: 2013-03-02 05:32  (Last Edited: 2013-03-02 05:32) Reply | Quote
B00daW

Avatar

Member for: 4986 days
Status: Offline

#45087
Good going. Still can't get FamiTracker working right with WINE on this MacBook. WINE just works in Linux.

Posted: 2013-03-02 20:18 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#45110
[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.


Posted: 2013-03-09 23:43 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#45356
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.

Posted: 2013-03-16 04:24 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#45530
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.

Posted: 2013-03-19 22:52 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#45635
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]


Attachments:
famitracker2.png (178 Kb)
Page 1 of 8 Sort: Goto Page: [1] [2] [3] [4] [5] [6] [7] [8] Next >>