Port Requests

Discussion in 'General Discussions' started by mmielke, Nov 11, 2010.

  1. Farox

    Farox Certified Guru

    Joined:
    Jan 8, 2009
    Messages:
    1,979
    Location:
    Italy
    I give it a go and compiled fine after adding a pair of undeclared variables (i have written to the autor about this) clearly without SSE2 (the code support it...but clearly is slow).

    The program is running but the XM modules with more than 8 voices are playing badly the rest is playing fine (MOD and s3m) i also lowered the frequency from 48000 to 44100 and unchecked all the mixing options (otherwise is slowing all the modules)..the interface is a bit tiny i need to check how to properly go fullscreen...but is using SDL2 ....so notaz OMAP SDL1 magic is not possible here.
    I also discovered that is available an header able to translate most of SSE2 to NEON code here http://codesuppository.blogspot.com/2015/02/sse2neonh-porting-guide-and-header-file.html but from what i discovered is incomplete we missing some functions used in the program....and most important thing is that SSE2 code is not used on the replay routine but only on sample editor...at least from what i checked.
     
    klapse likes this.
  2. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,180
    Location:
    France, near Lyon
    I used the SSE2 -> NEON one time, and it was working fine.

    Now, for scalling on SDL2, if the software use SDL2 Renderer and not OpenGL, you can probably use SDL_WINDOW_FULLSCREEN_ DESKTOP flag at window creation to try use some automatic scaling (I used that on VCMI, I can check the diff later if you want). If it use OpenGL for rendring, using latest gl4es you can try the combinaison LIBGL_FB=2 LIBGL_FBO=1280x720 like I used on StardewValley.

    For the speed issue, check the code and see if they are using "double", as it kills the performances on the cortex-a8, and try to migrate as float (not always easy to do).
     
    Farox likes this.
  3. Farox

    Farox Certified Guru

    Joined:
    Jan 8, 2009
    Messages:
    1,979
    Location:
    Italy
    In this software we are missing this equivalent functions:
    _mm_unpackhi_epi64
    _mm_shufflelo_epi16
    _mm_srai_epi16
    _mm_cvt_ss2si
    _mm_cvtsd_si32
    _mm_load_sd

    Thanks a lot for the others advices, i'll take a look.
     
    Last edited: Jul 16, 2018
    shaddim likes this.
  4. shaddim

    shaddim Member

    Joined:
    Apr 24, 2016
    Messages:
    177
    Star Ruler 2 has just been released under MIT / CC BY-NC license
    https://github.com/BlindMindStudios/StarRuler2-Source
    --- Double Post Merged, Jul 25, 2018, Original Post Date: Jul 25, 2018 ---
    some progress in replacing the missing instructions with plain C code / ARM assembly?
     
  5. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,180
    Location:
    France, near Lyon
    That Star Ruler 2 looks good! It may be a bit intensive for the Pandora, but I'll try to build and run anyway.

    For the SSE2 stuff, I haven't looked back at what I had used before...
     
  6. shaddim

    shaddim Member

    Joined:
    Apr 24, 2016
    Messages:
    177
    Last edited: Jul 25, 2018
  7. Farox

    Farox Certified Guru

    Joined:
    Jan 8, 2009
    Messages:
    1,979
    Location:
    Italy
    No sorry...i know nothing about SSE or NEON instructions.
    The mixer/replay routine didn't use any of these instructions...so we could gain almost nothing in this case.
     
    Last edited: Jul 25, 2018
  8. shaddim

    shaddim Member

    Joined:
    Apr 24, 2016
    Messages:
    177
    I have some knowledge about x86 assembly (but zerom about NEON) but i guess
    _mm_unpackhi_epi64
    _mm_shufflelo_epi16
    _mm_srai_epi16
    _mm_cvt_ss2si
    _mm_cvtsd_si32
    _mm_load_sd

    should be replaceable, relatively painless(?!)

    for instance dst[127:0]=mm_load_sd(double* MEM)
    https://software.intel.com/sites/landingpage/IntrinsicsGuide/#techs=SSE2&expand=3100

    should be replaceable by a function which does:
    dst[63:0] := MEM[mem_addr+63:mem_addr]
    dst[127:64] := 0

    slower, but should work (with some bit arithmetic , ANDs and ORs)
     
  9. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    9,948
    Location:
    Somewhere off the coast of the EU
  10. shaddim

    shaddim Member

    Joined:
    Apr 24, 2016
    Messages:
    177

    I think this is if you want to substitute on X86 SIMD instruction with an ARM SIMD instrcution and it does not map well. If you assume from the beginning there is no useful mapping and you just map it against normal assembly instructions + Bit operations (shifts, OR, ANDs) to position the result in the registers/memory addresses I think it is easier (but maybe slower).
    --- Double Post Merged, Jul 26, 2018, Original Post Date: Jul 26, 2018 ---
    Marvellous inc is a TIS 100 clone was released as open source some months ago ( https://github.com/MarvellousSoft/MarvInc) GPLv3 + CC BY-SA + LÖVE (Linux seems ready)

    Sissyfight 2000 returns, crowdfunded remake of a 2000 game in HTML5 web technology. Opensourced on github under MIT / CC BY https://github.com/moonmilk/sissyfight/ http://play.sissyfight.com

    OpenSC2K https://torrentfreak.com/ea-takes-down-open-source-simcity-2000-remake-180730/ but forks exist on github

    Planet Blupi was released on 20th anniversary under GPLv3 with assets, SDL2/linux ported https://github.com/blupi-games/planetblupi http://devel.schroetersa.ch/blupi.org/planet.html

    fluid_table_tennis a plasma pong clone in JS/HTML5 https://github.com/anirudhjoshi/fluid_table_tennis

    The Communist Dogifesto GPLv3, Linux and on itchi.io https://gitlab.com/joshuagiles https://vede.itch.io/the-communist-dogifesto/TheCommunistDogifesto


    VGA Civil War Strategy Game ported to SDL and modern BASIC already https://github.com/davidshq/civilwarstrategygame

    https://github.com/KyoriAsh/uth05win
     
    Last edited: Sep 17, 2018
  11. second exodous

    second exodous Advanced Member

    Joined:
    Sep 27, 2005
    Messages:
    2,903
    Location:
    Utah, USA
    Higan

    I know this has been suggested before but I've been playing around with Higan and I think it is superior to every other SNES emulator I have tired. It has NES, GB, and GBA also. Loading GG codes on it is a bit confusing though, at least the version I tried, but I notice the sound is a lot better than Snes9x. It does make the fans on my notebook kick on full blast though, so I don't know if the Pandora can handle it. Maybe I'll have to wait for the Pyra.
     
  12. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,180
    Location:
    France, near Lyon
    Last time I tried Higan on the Pandora, the SNES part was too slow for the Pandora. Don't remember the other stuff. I'll try to recheck / update my build one day...
     
  13. PokeParadox

    PokeParadox Founder of Pirate Games - Penjin Coder Staff Member

    Joined:
    Dec 8, 2005
    Messages:
    6,510
    Location:
    UK
    I'd like to request uoYabause - http://www.uoyabause.org/ I noticed it does mention GLES 3, but I don't know if that is a hard requirement or optional.
    The fork is supposedly optimised to run on modest hardware.
     
  14. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,180
    Location:
    France, near Lyon
    Modest hardware? I see 64bits and GLES3, so it's probably not that modest. But there may be some interesting thing.
    I haven't seen the link to the sourcecode?
     
  15. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,180
    Location:
    France, near Lyon
    I got Marvellous inc to run on my Pandora. I use gl4es this time, to allow a better resizing mecanism than the one integrated in the game (it's designed to scale on larger screen than the native res of 1366x768, but on the Pandora we need the oposite).

    Still, the game is barelly readeable (look at screenshot). Is it still worth a package?
    marvinc03.png
     
    _jr_ and shaddim like this.
  16. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,180
    Location:
    France, near Lyon
    ingoreis and shaddim like this.
  17. Farox

    Farox Certified Guru

    Joined:
    Jan 8, 2009
    Messages:
    1,979
    Location:
    Italy
    levi and shaddim like this.
  18. shaddim

    shaddim Member

    Joined:
    Apr 24, 2016
    Messages:
    177
  19. Farox

    Farox Certified Guru

    Joined:
    Jan 8, 2009
    Messages:
    1,979
    Location:
    Italy
    ah simply is not used for now...the original author improved so much the mixing routines that is working good already..anyway the SSE2 where not involved in the mixing.
     
  20. PokeParadox

    PokeParadox Founder of Pirate Games - Penjin Coder Staff Member

    Joined:
    Dec 8, 2005
    Messages:
    6,510
    Location:
    UK
    Well relatively modest *Shrugs* I'm aware we don't have GLES3 on Pandora but there is maybe something useful *shrugs again*

    Link: https://github.com/devmiyax/yabause
     

Share This Page

Loading...