Author Topic: RetroFE development  (Read 144496 times)

Tom Acunzo

  • Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: New features
« Reply #60 on: January 07, 2017, 08:39:24 PM »
It's not so much as a mac issue per say (incorrect sRGB profile). A newer version of libpng is out. They have included some tools to patch pngs. I think they may suppress the error warnings in the library as other projects complained about how verbose they were and some apps even crashed. As for RetroFE it just spewed messages to the console every time an image was loaded.

The files that I did patch in bitbucket I used a tool pngcrush.

But it's funny you brought it. Libpng literally just patched a huge 21 year old vulernabilty in 1.6.27! Totally worth a read on there main page as it may seriously affect people in different ways.

Toms-MacBook-Pro:sfml Tom$ brew info libpng
libpng: stable 1.6.26 (bottled), HEAD
Library for manipulating PNG images
http://www.libpng.org/pub/png/libpng.html
/usr/local/Cellar/libpng/1.6.26 (26 files, 1.2M) *
  Poured from bottle on 2016-12-16 at 22:06:15
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/libpng.rb
==> Options
--universal
   Build a universal binary
--HEAD
   Install HEAD version
Toms-MacBook-Pro:sfml Tom$ brew list libpng
/usr/local/Cellar/libpng/1.6.26/bin/libpng-config
/usr/local/Cellar/libpng/1.6.26/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.26/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.26/bin/pngfix
/usr/local/Cellar/libpng/1.6.26/include/libpng16/ (3 files)
/usr/local/Cellar/libpng/1.6.26/include/ (3 files)
/usr/local/Cellar/libpng/1.6.26/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.26/lib/pkgconfig/ (2 files)
/usr/local/Cellar/libpng/1.6.26/lib/ (4 other files)
/usr/local/Cellar/libpng/1.6.26/share/man/ (3 files)


Update: I went a little overboard, the exploit is nothing major to us.
« Last Edit: January 07, 2017, 08:46:18 PM by Tom Acunzo »

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: New features
« Reply #61 on: January 08, 2017, 09:59:22 AM »
I thought I'd give an overview of the new features since 0.7.19 that were included in 0.7.20b1 (http://retrofe.nl/SMF/index.php?topic=7.msg291#msg291):

- Fixed menuSort = no behavior for include.txt files.
- Fixed Windows expansion of %RETROFE_EXEC_PATH%.
- Fixed local language support.
- Fixed container scaling.
- Fixed input queue when returning from a game.
- Fixed crash on exit when a controller is connected.
- Rewritten menu scrolling and input handler.
- Added support for hierarchy in the roms directory via list.romHierarchy parameter in collection's settings.conf file.
- Added playlist support via the keys favPlaylist, nextPlaylist, and prevPlaylist. The playlists should be placed as <playlist name>.txt in the collections/<collection name>/playlists directory.
- Added MacOS support (Tom).

marxkemp

  • Newbie
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: New features
« Reply #62 on: January 08, 2017, 11:47:21 AM »
Great!

ryuuji

  • Full Member
  • ***
  • Posts: 166
  • Karma: +1/-0
    • View Profile
Re: New features
« Reply #63 on: January 08, 2017, 01:17:29 PM »
Very nice

JonahUK

  • Guest
Re: New features
« Reply #64 on: January 08, 2017, 01:41:49 PM »
One of the many, many reasons why I prefer RetroFE over others :)
Updates and issues fixed almost immediately :)

Keep up the excellent work fellas!

Tom Acunzo

  • Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: New features
« Reply #65 on: January 08, 2017, 04:33:17 PM »
I thought I'd give an overview of the new features since 0.7.19 that were included in 0.7.20b1 (http://retrofe.nl/SMF/index.php?topic=7.msg291#msg291):

- Fixed menuSort = no behavior for include.txt files.
- Fixed Windows expansion of %RETROFE_EXEC_PATH%.
- Fixed local language support.
- Fixed container scaling.
- Fixed input queue when returning from a game.
- Fixed crash on exit when a controller is connected.
- Rewritten menu scrolling and input handler.
- Added support for hierarchy in the roms directory via list.romHierarchy parameter in collection's settings.conf file.
- Added playlist support via the keys favPlaylist, nextPlaylist, and prevPlaylist. The playlists should be placed as <playlist name>.txt in the collections/<collection name>/playlists directory.
- Added MacOS support (Tom).
And:
- Fixed incorrect sRGB profile errors for PNGs
- Added support for /home/user/.retrofe RETROFE_PATH setting for linux / mac.
- Added brew install option for mac
- Updated Overview instructions in readme

Note: The last two will be tweaked again via pull request.

Latest changes still break Mac (See CollectionInfoBuilder::ImportRomDirectory), haven't tested other builds.

Code: [Select]
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_pthread.dylib        0x00007fff94f184fc pthread_mutex_lock + 0
1   libsystem_c.dylib              0x00007fff94d5e9f8 closedir + 25
2   retrofe                        0x00000001040bc777 CollectionInfoBuilder::ImportRomDirectory(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, CollectionInfo*, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, Item*, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, Item*> > >, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, Item*, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, Item*> > >, bool) + 805
3   retrofe                        0x00000001040bb2bd CollectionInfoBuilder::ImportDirectory(CollectionInfo*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 2255
4   retrofe                        0x00000001040ba5b8 CollectionInfoBuilder::buildCollection(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 1674
5   retrofe                        0x00000001040b9ee4 CollectionInfoBuilder::buildCollection(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 72
6   retrofe                        0x00000001040f7829 RetroFE::getCollection(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 75
7   retrofe                        0x00000001040f6028 RetroFE::run() + 2622
8   retrofe                        0x00000001040f43ac main + 5788
9   libdyld.dylib                  0x00007fff94d03255 start + 1

Tom Acunzo

  • Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: New features
« Reply #66 on: January 08, 2017, 05:39:55 PM »
I think the issue is that CollectionInfoBuilder is expecting a roms folder inside collections/Main which isn't there for any OS.

This is why you should run the python post install step and test new retrofe changes from inside Artifacts. There will be fresh installations of retrofe that don't have Mame even set up yet.

It's also good to double check once you copy files or folders to Package/Environment/<OS>
or if you add roms to Package/Environment/Common/collections/Main/ in bitbucket.

Hence my whole don't forget comment from before as a sanity check for new features.

UPDATE - The spacebar key event loop is tested good. Retrofe loads after creating the roms folder.
« Last Edit: January 08, 2017, 05:50:54 PM by Tom Acunzo »

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: New features
« Reply #67 on: January 08, 2017, 05:58:00 PM »
I will check, and update accordingly.

Sent from my SM-G920F using Tapatalk


Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: New features
« Reply #68 on: January 08, 2017, 08:02:51 PM »
I think the issue is that CollectionInfoBuilder is expecting a roms folder inside collections/Main which isn't there for any OS.

This is why you should run the python post install step and test new retrofe changes from inside Artifacts. There will be fresh installations of retrofe that don't have Mame even set up yet.

It's also good to double check once you copy files or folders to Package/Environment/<OS>
or if you add roms to Package/Environment/Common/collections/Main/ in bitbucket.

Hence my whole don't forget comment from before as a sanity check for new features.

UPDATE - The spacebar key event loop is tested good. Retrofe loads after creating the roms folder.

Odd, the roms directory IS created under Linux, but even without it I do not get a crash.

I've updated the code though. I noticed closedir may be called on a NULL pointer, which may not work on all operating systems. Let me know if that helps.
« Last Edit: January 08, 2017, 08:08:02 PM by Pieter Hulshoff »

Tom Acunzo

  • Newbie
  • *
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: New features
« Reply #69 on: January 09, 2017, 12:49:19 AM »
The fix works well. Thanks Pieter.

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: New features
« Reply #70 on: January 09, 2017, 01:25:52 PM »
The fix works well. Thanks Pieter.

That's good to hear. :) That means I can focus on implementing support for truRIP superdat files. :) I hope to have that up and running by the end of this week. I also want to see if I can make RetroFE update meta.db automatically if any of the meta files change. Currently people still have to manually delete the meta.db to have it regenerate.

KMetalMind

  • Newbie
  • *
  • Posts: 44
  • Karma: +1/-0
    • View Profile
Re: New features
« Reply #71 on: January 09, 2017, 04:15:37 PM »
Now it works perfectly on Windows. Thanks guys!!!  ;)

With the last changes, the menus are a lot smoother, but it loads a lot faster on Windows too. For some reason, retroFE usually needed around 4-5 minutes after loading all to show up, but that doesn´t happen now.

Just a quick question? Would it be possible to keep animating images which are not reloadable just like menus? That would make everything even more smoother.

ryuuji

  • Full Member
  • ***
  • Posts: 166
  • Karma: +1/-0
    • View Profile
Re: New features
« Reply #72 on: January 09, 2017, 05:27:50 PM »
That means I can focus on implementing support for truRIP superdat files.

and in English that would be .... ? :P

Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: New features
« Reply #73 on: January 09, 2017, 08:45:21 PM »
That means I can focus on implementing support for truRIP superdat files.

and in English that would be .... ?
http://database.trurip.org/

Sent from my SM-G920F using Tapatalk


Pieter Hulshoff

  • Administrator
  • Hero Member
  • *****
  • Posts: 1543
  • Karma: +46/-14
    • View Profile
    • Towel 42
Re: New features
« Reply #74 on: January 09, 2017, 10:42:27 PM »


Just a quick question? Would it be possible to keep animating images which are not reloadable just like menus? That would make everything even more smoother.

Can you give me an example of what you're looking for?

Sent from my SM-G920F using Tapatalk