Menu

Main Menu
Talk Get Daily Search

Member's Online

    User Name
    Password

    [WiP] Porting Emumaster 0.3.0 to Qt5/SailfishOS

    Reply
    Page 4 of 5 | Prev |   2     3   4   5   | Next
    merpl | # 31 | 2017-08-04, 04:38 | Report

    Oy, the rpm needs gstreamer0.1 and it's deprecated for gstreamer1.0

    We need an update.

    I built two versions - emumaster 0.3.1-1 and 0.3.1-69 which have some differences, neither work.

    Code:
    Files emumaster/src/emumaster.pro.user and emumastermerpl/src/emumaster.pro.user differ
    Files emumaster/src/emumaster.pro and emumastermerpl/src/emumaster.pro differ
    Files emumaster/src/base/frameitem.h and emumastermerpl/src/base/frameitem.h differ
    Files emumaster/src/base/emuview.cpp and emumastermerpl/src/base/emuview.cpp differ
    Files emumaster/src/base/touchinputdevice.cpp and emumastermerpl/src/base/touchinputdevice.cpp differ
    Files emumaster/src/base/hostaudio.cpp and emumastermerpl/src/base/hostaudio.cpp differ
    Files emumaster/src/base/emuview.h and emumastermerpl/src/base/emuview.h differ
    Files emumaster/src/base/emuinput.h and emumastermerpl/src/base/emuinput.h differ
    Files emumaster/src/base/frameitem.cpp and emumastermerpl/src/base/frameitem.cpp differ
    Files emumaster/src/base/hostaudio.h and emumastermerpl/src/base/hostaudio.h differ
    Files emumaster/src/gba/gba.h and emumastermerpl/src/gba/gba.h differ
    Files emumaster/src/gba/mem.cpp and emumastermerpl/src/gba/mem.cpp differ
    Files emumaster/src/gba/gba.cpp and emumastermerpl/src/gba/gba.cpp differ
    Files emumaster/src/pico/pico.cpp and emumastermerpl/src/pico/pico.cpp differ
    Files emumaster/src/amiga/amiga.cpp and emumastermerpl/src/amiga/amiga.cpp differ
    Files emumaster/src/nes/disk.cpp and emumastermerpl/src/nes/disk.cpp differ
    Files emumaster/src/nes/cheats.h and emumastermerpl/src/nes/cheats.h differ
    Files emumaster/src/nes/mapper/mapper018.h and emumastermerpl/src/nes/mapper/mapper018.h differ
    Files emumaster/src/nes/cheats.cpp and emumastermerpl/src/nes/cheats.cpp differ
    Files emumaster/src/nes/nes.cpp and emumastermerpl/src/nes/nes.cpp differ
    The only emu that builds is 'snes' and that won't even launch if you press the icon in the GUI app. You have to invoke it manually.

    I really don't want to spend days faffing with a broken source tree when someone has a working (0.4?) version lying around.

    So - stop by freenode or give me a PM please if you have a non-broken source tree, then i can build it and upload to warehouse.

    Thanks.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 2 Users Say Thank You to merpl For This Useful Post:
    eekkelund, klinglerware

     
    Wonko | # 32 | 2017-08-05, 14:56 | Report

    Originally Posted by merpl View Post
    I really don't want to spend days faffing with a broken source tree when someone has a working (0.4?) version lying around.
    Hi,

    your best bet is likely to use the initial commit that was uploaded to github:
    https://github.com/ruedigergad/emuma...76c5e918d9a26d

    From what I know, there never was a 0.4 version available, not even as source.
    To me, it looked like the original developer had to stop right in the middle of something.

    In addition to what you already observed, be aware that there was some change in the Qt stuff that ships with current Sailfish OS versions.
    I do not recall which Sailfish OS version introduced the change.
    However, the impact was that the drawing performance was notably decreased.
    This all happened a long time ago, one or two years or so, so my memory is pretty faint on the details.
    But if I recall correctly, the drawing performance when, e.g., playing Super Mario 3 on the SNES emulation used to be pretty stable at 50 fps and then dropped to something around 30-40 fps and it fluctuated much more, which really impacted the experience.

    Regarding the changes I did in my github repository:
    As you notice, there was quite a long inactive time since the initial upload to github.
    However, end of 2016/start of 2017, I played with alternative drawing approaches trying to improve the performance.
    My hope was that I could somehow get back to the performance before the aforementioned change.
    In that process, I also experimented a bit with alternative ways for drawing the controls, e.g., by drawing the controls via QML instead of the "rather low-level" approach in the original emumaster.
    Due to time constraints, I never got to release a proper updated version.
    The current status is still somewhat experimental.

    Thus, the best advice I can give you right now is:
    If you quickly want to get the status of the last working SFOS release:
    start with the initial github commit from 2014 and maybe try to see if you can find some build-related files, maybe from my old Mer OBS repositories or so.
    If you like, I can try to dig up some links but, unfortunately, my time is very limited, right now.

    I hope this is helpful for you.



    Cheers,

    Wonko

    Edit | Forward | Quote | Quick Reply | Thanks

    Last edited by Wonko; 2017-08-05 at 15:12.
    The Following 4 Users Say Thank You to Wonko For This Useful Post:
    eekkelund, imaginaryenemy, klinglerware, merpl

     
    Wonko | # 33 | 2017-08-16, 20:36 | Report

    PS:
    I just saw that the first post in this thread contains all the links to OBS etc.
    However, I am not sure if it is sufficient to simply update the gstreamer version in the .yaml and .spec files.
    According to the following document, there may be some more complex changes in the API etc., which may require more manual intervention in the update process:
    https://cgit.freedesktop.org/gstream...ing-to-1.0.txt
    Nonetheless, I think it is best to start with the initial commit to my github emumaster repository and start/fork from there.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following User Says Thank You to Wonko For This Useful Post:
    imaginaryenemy

     
    Wonko | # 34 | 2017-08-16, 21:28 | Report

    PPS:
    I could build emumaster with gstreamer 1.0 dependencies.
    You can get version: emumaster-0.3.1-10.70.1.jolla.armv7hl.rpm
    from my OBS repository: http://repo.merproject.org/obs/home:...mv7hl/armv7hl/

    However, please be aware that I only installed it and started one SNES emulation without trying much else.
    One thing is already apparent: The controls may be over/under sized depending on you screen resolution.

    Any way, feedback is as usually appreciated.
    However, due to my time constraints there may be quite some delay until I can reply.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 7 Users Say Thank You to Wonko For This Useful Post:
    claustn, dcaliste, eekkelund, HtheB, imaginaryenemy, klinglerware, merpl

     
    Wonko | # 35 | 2017-08-17, 10:55 | Report

    Another brief update:
    I have to keep it short due to time constraints.

    I just build: emumaster-0.3.1-10.77.1.jolla.armv7hl.rpm

    This one re-enables several patches for:
    - Enable Sound
    - Amiga Support
    - GBA Support

    The NES&Pico patch did not work, for now.

    I also added some hack to work around the sizing issues but I cannot elaborate on that, right now.

    The version is based on commit 4f40a85b141e402b7c302fe31159c15c2467161d from my github repository.
    The reason for this is that, apparently, something regarding the build options had changed, which I already had fixed in my experimental setup.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 8 Users Say Thank You to Wonko For This Useful Post:
    dcaliste, eekkelund, imaginaryenemy, kick, klinglerware, meemorph, merpl, rcolistete

     
    Wonko | # 36 | 2017-08-19, 20:37 | Report

    A brief update:

    So, it turned out that most of the "hack" I prepared was not necessary,
    To 99.5%, my current solution for adjusting the touch input to different resolutions boils down to properly using the existing configuration options.
    The remaining bit is a small change to work around an hard-coded upper limit:
    Code:
    diff --git a/src/base/touchinputdevice.cpp b/src/base/touchinputdevice.cpp
    index 3b7cd0b..9d0cffd 100644
    --- a/src/base/touchinputdevice.cpp
    +++ b/src/base/touchinputdevice.cpp
    @@ -324,7 +324,7 @@ void TouchInputDevice::setGridVisible(bool on)
     
     void TouchInputDevice::setDpadAreaSize(int size)
     {
    -       int rSize = qBound(160, size, 320);
    +       int rSize = qBound(160, size, 16384);
            if (m_areaSize != rSize) {
                    m_areaSize = rSize;
                    setDpadAreaDiagonalSize(m_diagonalAreaSize);
    The diff is against 4f40a85b141e402b7c302fe31159c15c2467161d of my github repository.
    This is the suggested commit if you want to play with the "current stable" Emumaster version.
    From later commits on, I introduced more experimental changes.

    In order to adjust the touch input display to your screen resolution, you have to edit the file: ~/.config/elemental/emumaster.conf

    For SailfishOS running on an 1920x1080 resolution, I use the following settings:
    Code:
    [General]
    touchAreaDiagonalSize=128
    touchAreaSize=512
    I uploaded version emumaster-0.3.1-10.82.1.jolla.armv7hl.rpm to my Mer repository.
    I hope that this version plus the information in this thread fixes most issues for you and I am very much looking forward to your feedback.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 7 Users Say Thank You to Wonko For This Useful Post:
    claustn, eekkelund, explit, imaginaryenemy, klinglerware, meemorph, merpl

     
    claustn | # 37 | 2017-11-05, 10:21 | Report

    What about PSX support? Thank you for your work!

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 2 Users Say Thank You to claustn For This Useful Post:
    imaginaryenemy, Wonko

     
    merpl | # 38 | 2017-12-16, 15:05 | Report

    Hi Wonko, thanks for your work.

    I grabbed the latest emumaster from: https://build.merproject.org/package...latest_armv7hl

    Edited the sizes to be 1/2 the ones you indicated (956x480 screen)

    Starting a snes emulator: It found the .smc file, but not the .sfc files.

    Copied a genesis .md to the pico directory and pico didn't find the file.

    Clicking the snes game got a black screen with onscreen controls on left and right and a square button and a 'play' button, but game did not start after hitting 'play'.

    Clicking in upper-left brought up a preferences page where i tried various options like disabling audio, fps counter, changing frameskip and restarting. Nothing got the game started.

    Perhaps the problem lies with TheKit's port of SFOS to Droid 4? I think he uses framebuffer for graphics.

    Edit | Forward | Quote | Quick Reply | Thanks

    Last edited by merpl; 2017-12-16 at 15:11.
    The Following User Says Thank You to merpl For This Useful Post:
    Wonko

     
    Wonko | # 39 | 2017-12-17, 09:57 | Report

    Hi,

    Originally Posted by claustn View Post
    What about PSX support? Thank you for your work!
    Unfortunately, I never got around to adjust the PSX emulator part.

    Originally Posted by merpl View Post
    Hi Wonko, thanks for your work.
    ...
    Perhaps the problem lies with TheKit's port of SFOS to Droid 4? I think he uses framebuffer for graphics.
    I think this is the problem.
    A GLPainter is used for drawing the content:
    https://github.com/ruedigergad/emuma...se/hostvideo.h

    Unfortunately, I am super busy with other things these days and cannot even foresee when/if I will be able to look into these things.

    Sorry for the somewhat bad news but I still hope the answers are helpful.



    Cheers,

    Wonko


    PS:
    And also thanks for the thanks.
    It is always nice to hear that something is appreciated.

    Edit | Forward | Quote | Quick Reply | Thanks

    Last edited by Wonko; 2017-12-17 at 17:28.
    The Following 4 Users Say Thank You to Wonko For This Useful Post:
    eekkelund, imaginaryenemy, J4ZZ, klinglerware

     
    Wonko | # 40 | 2017-12-17, 19:41 | Report

    PPS:
    I managed to update the build with added PSX and NES support.
    The version number now is 0.3.2 and you can get it from the usual location.

    However, please note that this was done very much in a rush without any testing and I had to do quite some changes.
    Thus, I don't know at all if this works.

    PPPS:
    I added a "stable" branch to the repository which includes all the latest changes, including the patches etc.:
    https://github.com/ruedigergad/emumaster/tree/stable

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 8 Users Say Thank You to Wonko For This Useful Post:
    claustn, eekkelund, imaginaryenemy, J4ZZ, klinglerware, Manatus, mrsellout, wazrus

     
    Page 4 of 5 | Prev |   2     3   4   5   | Next
vBulletin® Version 3.8.8
Normal Logout