Fceux Qt/SDL Port Testing

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

Post Reply
Mjbudd77
Posts: 8
Joined: Fri Oct 16, 2020 9:53 pm
Location: Tampa

Fceux Qt/SDL Port Testing

Post by Mjbudd77 » Fri Oct 16, 2020 10:22 pm

Hello,
I am a C++ developer that has been working on porting the fceux emulator to run under a cross platform Qt based GUI. This new port of fceux utilizes Qt and SDL2 and runs natively in Linux and Mac OSX. Included in the new Qt port, are most of the debug tools that previously only existed in the windows port of fceux. I am nearing the finish line regarding new development and could use some feedback from Linux or Mac users (especially those that have experience using the Rom hacking tools). Having some beta testers would go a long way in helping me decide if the code is ready for a new release. For those interested, the latest stable code can be found on github.com/tasvideos/fceux and build instructions are in the projects README file. For mac users, there are instructions on the fceux web site on how to use the dmg package artifact that is created by the appveyor autobuild system (If you don't want to have to build from source)

lidnariq
Posts: 9774
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Fceux Qt/SDL Port Testing

Post by lidnariq » Fri Oct 16, 2020 11:37 pm

I was confused by having the qmake fceux.pro file <_< It's missing dependencies, by the way :mrgreen:

Looks good! The only real problem I've noticed so far has to do with font spacing: in the debugger, the stack display will overflow to wider than the window it's allocated, without a scrollbar. I'm seeing some variant of Courier, and I (obviously) don't have FixedSys available.

... also, a random weird bug in the file selector: it only knows about directories that I've previously explicitly told it about? Probably not your bug.
there-are-other-directories-here.png
there-are-other-directories-here.png (6.88 KiB) Viewed 589 times

Mjbudd77
Posts: 8
Joined: Fri Oct 16, 2020 9:53 pm
Location: Tampa

Re: Fceux Qt/SDL Port Testing

Post by Mjbudd77 » Sat Oct 17, 2020 4:26 pm

Sorry, about that .pro file. I moved to cmake a while back and had intended to get rid of that file. I will look into your two comments and see if they can be improved. I'm pretty sure I have the Rom open file browser saving the location of the last file opened and uses that directory as the starting point for subsequent opens. I should also be able to figure out how to get the stack display to not cut off text. Thank you for the feedback and let me know if you find more issues.

Mjbudd77
Posts: 8
Joined: Fri Oct 16, 2020 9:53 pm
Location: Tampa

Re: Fceux Qt/SDL Port Testing

Post by Mjbudd77 » Sat Oct 17, 2020 7:24 pm

Regarding the debugger stack display issue, I have just pushed a change that will now auto display a horizontal scroll bar should the widget need it (same goes for the vertical scroll bar). I have also added code that allows the number of stack bytes per line to be configurable. There are two ways to change the number of bytes per line for the stack display:
1. Right click on the widget to open a context menu. There will be a sub-menu in there to select number of bytes per line 1-4.
2. Left click to the widget to ensure that it has focus, then using the number keys 1-8 will change the number of bytes per line to the pressed key value.

I also added the Stack address to the beginning of each line, I can make the display of the stack address on the line toggle-able on/off in the future if others prefer the old display format.

lidnariq
Posts: 9774
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Fceux Qt/SDL Port Testing

Post by lidnariq » Sat Oct 17, 2020 7:52 pm

Mjbudd77 wrote:
Sat Oct 17, 2020 7:24 pm
Regarding the debugger stack display issue, I have just pushed a change that will now auto display a horizontal scroll bar should the widget need it
Looks good!
I also added the Stack address to the beginning of each line, I can make the display of the stack address on the line toggle-able on/off in the future if others prefer the old display format.
Feels a little wasteful? For whatever reason, I only get 17 characters per line in that dialog, and using 9 of them as a reminder for where the bytes in the stack are is a bit much. Maybe if you just condensed it a little that's be good enough (e.g. 1F7: instead of  $01F7 : )

Ooh, I get a SEGV when I quit FCEUX while the debugger is open. Need to rebuild with debugging symbols to narrow that down.

Mjbudd77
Posts: 8
Joined: Fri Oct 16, 2020 9:53 pm
Location: Tampa

Re: Fceux Qt/SDL Port Testing

Post by Mjbudd77 » Sat Oct 17, 2020 8:33 pm

Ooh, I get a SEGV when I quit FCEUX while the debugger is open. Need to rebuild with debugging symbols to narrow that down.
I believe I have just found the cause of this, a pointer was not being nulled appropriately during destruction. I will push the fix shortly.

Mjbudd77
Posts: 8
Joined: Fri Oct 16, 2020 9:53 pm
Location: Tampa

Re: Fceux Qt/SDL Port Testing

Post by Mjbudd77 » Sat Oct 17, 2020 8:53 pm

Feels a little wasteful? For whatever reason, I only get 17 characters per line in that dialog, and using 9 of them as a reminder for where the bytes in the stack are is a bit much. Maybe if you just condensed it a little that's be good enough (e.g. 1F7: instead of  $01F7 : )
I think you are right. I will change it to use a more compact format like you suggested.

Mjbudd77
Posts: 8
Joined: Fri Oct 16, 2020 9:53 pm
Location: Tampa

Re: Fceux Qt/SDL Port Testing

Post by Mjbudd77 » Fri Oct 23, 2020 3:01 pm

lidnariq wrote:
Fri Oct 16, 2020 11:37 pm
... also, a random weird bug in the file selector: it only knows about directories that I've previously explicitly told it about? Probably not your bug. there-are-other-directories-here.png
I believe I may have found a solution for this directory issue. Would you be able to check this with the latest code?

lidnariq
Posts: 9774
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Fceux Qt/SDL Port Testing

Post by lidnariq » Fri Oct 23, 2020 3:05 pm

Yup, that appears to have fixed it. (Why on earth would QDir::AllDirs not be default?)

Post Reply