Post Reply 
 
Thread Rating:
  • 37 Votes - 3.03 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Qt GUI feature suggestion thread
Author Message
mudlord Offline
not banned.
*****

Posts: 507
Joined: Feb 2009
Reputation: 5
Post: #41
RE: Qt GUI feature suggestion thread
08-07-2008 10:38 AM
Visit this user's website Find all posts by this user Quote this message in a reply
SCHUMI4EVER Offline
Super Moderator
******

Posts: 152
Joined: Mar 2008
Reputation: 2
Post: #42
RE: Qt GUI feature suggestion thread
Thanks Mudlord =)

Nice. Hmm it seems it can't save any options yet. But it looks good sofar.
08-07-2008 09:42 PM
Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #43
RE: Qt GUI feature suggestion thread
Some planning/ideas by me:

- Do not use any internal filters anymore, instead extend the Kega Fusion plugin support (15, 16, 32 bit filters) and port one or the other filter to it.

- Completely support 7z files with multiple ROMs in them, save & load them to/from the recent files list in Form "...\ROMs\Advance Wars 2.7z\Advance Wars 2 [EUR].gba"

- Always use tr("") from the beginning to ease later translations.

- Use as much eye candy as possible. The MFC build only has ONE icon, now THAT's boring

- Use Phonon for Audio/Video Recording. (I'm not sure if Phonon is just a decoder or more).

- Maybe use phonon for sound output as well, so we don't need a platform specifiy audio plugin?

- Make sure from the beginning that as much usage of threads as possible is made. Maybe we have to rewrite the current interface to the core using callbacks for that. I think it would be good to create a new branch on the SVN (even though I don't exactly know how that works). if we have to make some changes to the core for making the Qt build work better, it would be awful if we had to change all the other GUIs all the time or they would be broken. All of the current source code for the different GUIs will be obsolete as soon as Qt takes over anyway, so maybe we should just archive the current state as a branch or something like that.
(This post was last modified: 08-15-2008 03:48 AM by spacy51.)
08-15-2008 03:41 AM
Visit this user's website Find all posts by this user Quote this message in a reply
mudlord Offline
not banned.
*****

Posts: 507
Joined: Feb 2009
Reputation: 5
Post: #44
RE: Qt GUI feature suggestion thread
Quote:- Do not use any internal filters anymore, instead extend the Kega Fusion plugin support (15, 16, 32 bit filters) and port one or the other filter to it.

So your saying, port the Kega Fusion filter functionality to Linux? Well, KF plugins are just Win32 DLLs...so......

Quote:Always use tr("<text>") from the beginning to ease later translations.

Thought I already did that with my options box :O

Quote:- Use as much eye candy as possible. The MFC build only has ONE icon, now THAT's boring

Thats what I am doing: Oxygen icons to me look pretty sexy. And TCOS is planning (IIRC) a new VBA icon that we can use. We could use a icon artist....Tongue

Quote:Use Phonon for Audio/Video Recording. (I'm not sure if Phonon is just a decoder or more).

Seems to be just a decoder framework. Not entirely sure though.

Quote:Make sure from the beginning that as much usage of threads as possible is made. Maybe we have to rewrite the current interface to the core using callbacks for that. I think it would be good to create a new branch on the SVN (even though I don't exactly know how that works). if we have to make some changes to the core for making the Qt build work better, it would be awful if we had to change all the other GUIs all the time or they would be broken. All of the current source code for the different GUIs will be obsolete as soon as Qt takes over anyway, so maybe we should just archive the current state as a branch or something like that.

Sounds like a perfect topic for IRC discussion.
08-15-2008 07:47 AM
Visit this user's website Find all posts by this user Quote this message in a reply
deniseweird Offline
Junior Member
**

Posts: 35
Joined: Mar 2008
Reputation: 0
Post: #45
RE: Qt GUI feature suggestion thread
About Phonon. I am not a developer, so anyone who knows more can correct me. But as far as I understand, Phonon is a generic API for multimedia which makes use of so called backends, like VLC (not with GUI and everything), Gstreamer, Xine, Mplayer, DirectShow, etc. If there's a new hyper 1337 replacement for these backends, just use that instead (If Phonon supports it), and no modification is necessary for the individual programs that use Phonon. So as far as I know, if you developed multimedia for either of these backends before, it's better to use Phonon instead, so the user can easily choose what backend to use.

How did recording work before? Did it use DirectShow? If so, I think Phonon is a good idea.

BTW (maybe offtopic): Will you still develop the SDL version? I would like to continue using your emulator on Haiku, but there is no Qt there. (Even though I prefer GUIs and love Qt and enjoy it on Unix-like systems) VBA-M SDL version is still much better than BoyCottAdvance SDL version.
(This post was last modified: 08-15-2008 10:42 AM by deniseweird.)
08-15-2008 10:35 AM
Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #46
RE: Qt GUI feature suggestion thread
The current AVIWrite class uses the Video for Windows (VfW) API, the thing back from the 16 bit Windows days ^^

EDIT:
OK, since the Kega Fusion system does not work directly for Windows, maybe we can port it? After all, Linux does support shared objects, so you would have to recompile the plugins for diferent systems.

Another possibility would be to use only OpenGL shaders for pixel filtering. I don't know much about that yet, but maybe it is possible to put them in OS-independant files and compile them at runtime before usage? Even though there might not be many of them around, I'm very sure many interested people will write them once the architecture for them stands.


Another vision:
- Do not internally work with VIDEO_1x/2x/3x/4x or whatever, just use either windowed or fullscreen mode, probably fullscreen being non-exclusive to make switching faster and to keep widgets.
(This post was last modified: 08-15-2008 07:41 PM by spacy51.)
08-15-2008 07:20 PM
Visit this user's website Find all posts by this user Quote this message in a reply
deniseweird Offline
Junior Member
**

Posts: 35
Joined: Mar 2008
Reputation: 0
Post: #47
RE: Qt GUI feature suggestion thread
Ok, I don't know much about Video for Windows, sorry.

If you improve the filter approach so it's more portable, why not? Just make sure it's not x86-specific either please. The shader approach sounds fine to me too.

Ohh yeah. Please don't use Esc for exiting fullscreen. I prefer the Esc key make the menu bar appear/disappear, and switching to fullscreen with Ctrl + F. If you make it configurable though, that's also fine.
(This post was last modified: 08-15-2008 08:47 PM by deniseweird.)
08-15-2008 08:43 PM
Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #48
RE: Qt GUI feature suggestion thread
OK, I just created a new branch of the /trunk directory in /branches/qt

http://vbam.svn.sourceforge.net/viewvc/vbam/branches/qt

When using TortoiseSVN, I had to run the SWITCH command from the right-click menu on my current /trunk dir and point to /branches/qt, so now my trunk is actually the branch.


In this branch, I will first remove everything not related to the Core or Qt, then I will do some restructuring. We can then finally go wild in there and do all the necessary changes to the core layout without having to worry about compatibility to CMake, GTK, SDL, MFC and whatever. Creative minds need some freedom, don't they?
08-15-2008 09:38 PM
Visit this user's website Find all posts by this user Quote this message in a reply
mudlord Offline
not banned.
*****

Posts: 507
Joined: Feb 2009
Reputation: 5
Post: #49
RE: Qt GUI feature suggestion thread
Quote:Another possibility would be to use only OpenGL shaders for pixel filtering. I don't know much about that yet, but maybe it is possible to put them in OS-independant files and compile them at runtime before usage? Even though there might not be many of them around, I'm very sure many interested people will write them once the architecture for them stands.

In MuNES (my own NES emulator), I have a rock solid pixel shader implementation in OpenGL 2.0. It uses ZERO outside dependancies apart from opengl32.dll itself.

Krom, from GBAdev.org, made some very nice shaders we could use. Sure, they aren't quadratic resamplers and stuff like that, but they are quite cool.

I am interested in redoing the shader support in VBA-M, if people want it.
08-16-2008 08:51 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Squall Leonhart Offline
The Admin with the Gunblade
*******

Posts: 1,475
Joined: Mar 2008
Reputation: 15
Post: #50
RE: Qt GUI feature suggestion thread
only if they are SM2 compatible.

08-16-2008 09:20 AM
Visit this user's website Find all posts by this user Quote this message in a reply
deniseweird Offline
Junior Member
**

Posts: 35
Joined: Mar 2008
Reputation: 0
Post: #51
RE: Qt GUI feature suggestion thread
As long as the shaders are portable, I'm all for it!

What's SM2?
08-17-2008 09:33 AM
Find all posts by this user Quote this message in a reply
dualscreenman Offline
Bug Mod of Doom
*****

Posts: 62
Joined: Mar 2008
Reputation: 0
Post: #52
RE: Qt GUI feature suggestion thread
If I had a guess, Shader Model 2.0.
08-17-2008 11:15 AM
Visit this user's website Find all posts by this user Quote this message in a reply
mudlord Offline
not banned.
*****

Posts: 507
Joined: Feb 2009
Reputation: 5
Post: #53
RE: Qt GUI feature suggestion thread
"As long as the shaders are portable, I'm all for it!"

GLSL shaders ARE portable....its only the platform specific implementation of the filtering renderer that is non portable.

For example glxGetProcAddress and wglGetProcAddress() for Linux and Windows respectively...

And GLSL is often equivalent to SM2/3/4, so there will be zero issues.

*I need to get MSVC2008 SP1 first to compile...damn you Spacy! >.<*
08-17-2008 12:26 PM
Visit this user's website Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #54
RE: Qt GUI feature suggestion thread
(08-17-2008 12:26 PM)mudlord Wrote:  *I need to get MSVC2008 SP1 first to compile...damn you Spacy! >.<*

Wtf, why?

Don't tell me the project files i created with SP1 are incompatible with non-SP1 o.O


Didn't you compile with MinGW until now???



Anyway, sorry for being the Microsoft-follower I am... I know I'll burn in hell for that.
(This post was last modified: 08-23-2008 09:09 PM by spacy51.)
08-17-2008 08:27 PM
Visit this user's website Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #55
RE: Qt GUI feature suggestion thread
Today I added a "Close ROM" function, some inferior GB/GBA ROM detection and added the whole GB core to the QMake file.

All core files are now in and compile fine.

Next thing I'll do is rewrite the gbLoadRom(const char *szFile) function to accept a pointer to the ROM data in memory, instead of loading it itself.

It would be great if someone could look into creating a logging dialog and functions because I'm pretty sure we'll need that soon. The core currently uses a winlog() function which is actually empty and does nothing. [Maybe I should change the name to just log()]


Btw, I switched to using just the Express Edition of VC++ 2008 SP1 now, so everyone can be sure the project files don't need professional features. All the necessary steps to help developing are in the file "DevInfo.Qt.Win" now, so don't hesitate to try it out everyone.

If you don't like the Microsoft shit, you can still compile with just the QMake file:
Code:
qmake -o Makefile vba-m.pro
make
(This post was last modified: 08-18-2008 01:03 AM by spacy51.)
08-18-2008 01:00 AM
Visit this user's website Find all posts by this user Quote this message in a reply
dualscreenman Offline
Bug Mod of Doom
*****

Posts: 62
Joined: Mar 2008
Reputation: 0
Post: #56
RE: Qt GUI feature suggestion thread
Don't compile. Sad

jonathan@jonathan-desktop:~/svnrepos/vbam/branches/qt/build/qmake$ qmake -o Makefile vba-m.pro
WARNING: Found potential symbol conflict of sidewidget_cheats.cpp (../../src/qt/sidewidget_cheats.cpp) in SOURCES
WARNING: Found potential symbol conflict of sidewidget_cheats.h (../../src/qt/sidewidget_cheats.h) in HEADERS
jonathan@jonathan-desktop:~/svnrepos/vbam/branches/qt/build/qmake$ make
Makefile:700: warning: overriding commands for target `sidewidget_cheats.o'
Makefile:289: warning: ignoring old commands for target `sidewidget_cheats.o'
Makefile:720: warning: overriding commands for target `moc_sidewidget_cheats.o'
Makefile:708: warning: ignoring old commands for target `moc_sidewidget_cheats.o'
Makefile:738: warning: overriding commands for target `../../src/qt/moc_sidewidget_cheats.cpp'
Makefile:726: warning: ignoring old commands for target `../../src/qt/moc_sidewidget_cheats.cpp'
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DBKPT_SUPPORT -DNO_PNG -DC_CORE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/qt3 -o main.o ../../src/qt/main.cpp
In file included from ../../src/qt/main.h:22,
from ../../src/qt/main.cpp:19:
../../src/qt/precompile.h:24:23: error: QtGui/QtGui: No such file or directory
../../src/qt/precompile.h:25:29: error: QtOpenGL/QtOpenGL: No such file or directory
In file included from ../../src/qt/MainWnd.h:24,
from ../../src/qt/main.cpp:21:
../../src/qt/EmuManager.h:44: error: expected ‘,’ or ‘...’ before ‘&’ token
../../src/qt/EmuManager.h:44: error: ISO C++ forbids declaration of ‘QString’ with no type
../../src/qt/EmuManager.h:47: error: ‘QString’ does not name a type
../../src/qt/EmuManager.h:57: error: ‘QString’ does not name a type
In file included from ../../src/qt/MainWnd.h:25,
from ../../src/qt/main.cpp:21:
../../src/qt/GraphicsOutput.h:26: error: expected class-name before ‘{’ token
../../src/qt/GraphicsOutput.h:27: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
../../src/qt/GraphicsOutput.h:29: error: expected ‘;’ before ‘public’
../../src/qt/GraphicsOutput.h:43: error: expected `:' before ‘slots’
../../src/qt/GraphicsOutput.h:44: error: expected primary-expression before ‘void’
../../src/qt/GraphicsOutput.h:44: error: ISO C++ forbids declaration of ‘slots’ with no type
../../src/qt/GraphicsOutput.h:44: error: expected ‘;’ before ‘void’
../../src/qt/GraphicsOutput.h:47: error: ‘QPaintEvent’ has not been declared
In file included from ../../src/qt/main.cpp:21:
../../src/qt/MainWnd.h:28: error: expected class-name before ‘{’ token
../../src/qt/MainWnd.h:29: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
../../src/qt/MainWnd.h:31: error: expected ‘;’ before ‘public’
../../src/qt/MainWnd.h:35: error: expected `:' before ‘slots’
../../src/qt/MainWnd.h:36: error: expected primary-expression before ‘void’
../../src/qt/MainWnd.h:36: error: ISO C++ forbids declaration of ‘slots’ with no type
../../src/qt/MainWnd.h:36: error: expected ‘;’ before ‘void’
../../src/qt/MainWnd.h:47: error: ISO C++ forbids declaration of ‘QTranslator’ with no type
../../src/qt/MainWnd.h:47: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:48: error: ‘QString’ does not name a type
../../src/qt/MainWnd.h:49: error: ISO C++ forbids declaration of ‘QSettings’ with no type
../../src/qt/MainWnd.h:49: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:50: error: ISO C++ forbids declaration of ‘QMenu’ with no type
../../src/qt/MainWnd.h:50: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:51: error: ISO C++ forbids declaration of ‘QMenu’ with no type
../../src/qt/MainWnd.h:51: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:52: error: ISO C++ forbids declaration of ‘QAction’ with no type
../../src/qt/MainWnd.h:52: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:53: error: ISO C++ forbids declaration of ‘QMenu’ with no type
../../src/qt/MainWnd.h:53: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:54: error: ISO C++ forbids declaration of ‘QMenu’ with no type
../../src/qt/MainWnd.h:54: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:55: error: ISO C++ forbids declaration of ‘QDockWidget’ with no type
../../src/qt/MainWnd.h:55: error: expected ‘;’ before ‘*’ token
../../src/qt/MainWnd.h:59: error: expected `:' before ‘slots’
../../src/qt/MainWnd.h:60: error: expected primary-expression before ‘bool’
../../src/qt/MainWnd.h:60: error: ISO C++ forbids declaration of ‘slots’ with no type
../../src/qt/MainWnd.h:60: error: expected ‘;’ before ‘bool’
../../src/qt/main.cpp: In function ‘int main(int, char**)’:
../../src/qt/main.cpp:25: error: ‘QApplication’ was not declared in this scope
../../src/qt/main.cpp:25: error: expected `;' before ‘theApp’
../../src/qt/main.cpp:27: error: ‘QSettings’ was not declared in this scope
../../src/qt/main.cpp:27: error: expected `;' before ‘settings’
../../src/qt/main.cpp:28: error: ‘QTranslator’ was not declared in this scope
../../src/qt/main.cpp:28: error: ‘translator’ was not declared in this scope
../../src/qt/main.cpp:30: error: ‘settings’ was not declared in this scope
../../src/qt/main.cpp:30: error: new initializer expression list treated as compound expression
../../src/qt/main.cpp:31: error: ‘class MainWnd’ has no member named ‘show’
../../src/qt/main.cpp:33: error: ‘theApp’ was not declared in this scope
../../src/qt/main.cpp: At global scope:
../../src/qt/main.cpp:23: warning: unused parameter ‘argc’
../../src/qt/main.cpp:23: warning: unused parameter ‘argv’
make: *** [main.o] Error 1
08-18-2008 01:23 AM
Visit this user's website Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #57
RE: Qt GUI feature suggestion thread
../../src/qt/precompile.h:24:23: error: QtGui/QtGui: No such file or directory
../../src/qt/precompile.h:25:29: error: QtOpenGL/QtOpenGL: No such file or directory

Hm, maybe you can try to replace these lines with just QtGui / QtOpenGL without subfolder.
I don't know how Linux sets the Qt SDK up.
08-18-2008 04:49 AM
Visit this user's website Find all posts by this user Quote this message in a reply
dualscreenman Offline
Bug Mod of Doom
*****

Posts: 62
Joined: Mar 2008
Reputation: 0
Post: #58
RE: Qt GUI feature suggestion thread
Hmm, everything worked a few days ago. I think there's a problem on my end...
..and whoa, I just noticed... why is it including qt3?

*EDIT* Oh, I was using qmake-qt3. Silly me.
(This post was last modified: 08-18-2008 05:17 AM by dualscreenman.)
08-18-2008 05:11 AM
Visit this user's website Find all posts by this user Quote this message in a reply
spacy51 Offline
VBA-M Developer
*******

Posts: 451
Joined: Mar 2008
Reputation: 3
Post: #59
RE: Qt GUI feature suggestion thread
Did you compile the code from /branches/qt or the one from trunk?
http://vbam.svn.sourceforge.net/viewvc/v...anches/qt/


Maybe we/I should delete the Qt GUI code from trunk because it's now developed in a seperate branch.
08-18-2008 08:25 AM
Visit this user's website Find all posts by this user Quote this message in a reply
dualscreenman Offline
Bug Mod of Doom
*****

Posts: 62
Joined: Mar 2008
Reputation: 0
Post: #60
RE: Qt GUI feature suggestion thread
I've been trying to compile the qt branch.
I did get everything to work by using the QT4 version of qmake. The compile, however, did manage to fail during linking:
Code:
g++ -Wl,--no-undefined -o VisualBoyAdvance main.o MainWnd.o sidewidget_cheats.o MainOptions.o configdialog.o emu.o EmuManager.o GraphicsOutput.o Globals.o bios.o Cheats.o EEprom.o Flash.o Sram.o elf.o RTC.o Sound.o memgzio.o fex_mini.o Util.o Mode0.o Mode1.o Mode2.o Mode3.o Mode4.o Mode5.o gb.o gbCheats.o gbDis.o gbGfx.o gbGlobals.o gbMemory.o gbPrinter.o gbSGB.o gbSound.o Blip_Buffer.o Effects_Buffer.o Gb_Apu.o Gb_Apu_State.o Gb_Oscs.o Multi_Buffer.o agbprint.o GBA.o GBAGfx.o GBA-arm.o GBA-thumb.o moc_MainWnd.o moc_sidewidget_cheats.o moc_MainOptions.o moc_configdialog.o moc_GraphicsOutput.o qrc_vba-m.o    -L/usr/lib -L/usr/X11R6/lib -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL -lpthread                                                                    
/usr/bin/ld: cannot find -lGL                                                                  
collect2: ld returned 1 exit status
08-18-2008 11:55 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)

 Quick Theme: