2013-10-13

odroid-wheezy-retro 0.8.2 released: kernel 3.8 and updates

With this release I am proud to announce that 3.8.11 is stable enough for our retro-gaming purposes, thus it has been integrated in my retro image.


 
  • now using hardkernel official 3.8.13.10 linux kernel
  • fixed support of Hardkernel upgrade script
  • added MFC firmware (s5p-mfc.fw)
  • supports XBMC (not included)
  • most recent Debian 7.1 packages
  • default partition size is now 2G
  • most recent RetroArch + cores
  • fixed bug with network at 1st boot

2013-09-08

Let's play X-COM on the ODROID U2

One of the classic games I always dreamt to play again (on bigger screens, with huge blocky pixels) is the original X-COM: Enemy Unknown (a.k.a. Ufo Defense).


Not many of them survived every time I played this game


Spoiler: Enemy Unknown works fine on our beloved U2s thanks to OpenXcom :)

I will explain here how to get it running in a few steps. You will need some patience and the original X-COM 1 game. See also OpenXcom's README.

Installing yaml 0.5 packages


You will need slightly more recent yaml packages than those provided with Debian Wheezy.

wget http://ftp.debian.org/debian/pool/main/y/yaml-cpp/libyaml-cpp-dev_0.5.1-1_armhf.deb
wget http://ftp.debian.org/debian/pool/main/y/yaml-cpp/libyaml-cpp0.5_0.5.1-1_armhf.deb

sudo dpkg -i libyaml*.deb

Compiling the sources


git clone https://github.com/SupSuper/OpenXcom.git --depth=0 
cd OpenXcom
mkdir -p buildcd build
cmake ..
CFLAGS="-marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" \
CXXFLAGS="-marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" \
ASFLAGS="-marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" \
make -j5

mv bin/data ~/.local/share/openxcom/data
## customize target of link with your favourite binaries location
ln -s $PWD/bin/openxcom /usr/local/bin/openxcom


At this point, if everything went fine, you have almost finished.


Using the original game


Run the game by providing the original game's directory:

SDL_AUDIODRIVER=alsa /usr/local/bin/openxcom -data /path/to/XcomEnemyUnknown/


NOTE: The prefixed SDL_AUDIODRIVER variable is needed to force usage of ALSA, since I get garbled sound with pulse. If you don't have pulse installed then it's safe to assume that you won't need this environment variable

Game options

From options, select full screen and change resolution to 1280x720 for best gaming experience.

Enjoy it! :)

2013-09-07

Postfix, virtual mailboxes and aliases: priority matters

Sometimes - either for work or leisure - I need to configure Linux servers, and also mail servers.

The '90s lovely logo of Postfix

postfix is a great software that I like to use for mailservers; in this post I want to describe you one feature that works in a counter-intuitive way.

In postfix you can define mailboxes by specifying in your /etc/postfix/main.cf:

virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps

Official virtual MAILBOX example here

You can also specify aliases, e.g. mailboxes that directly forward to other mailboxes, by specifying:

virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps

Official virtual ALIAS example here
Aliases are useful for example when you want to define a catch-all alias forwarding all mail to the postmaster address.

Priority matters!

However, what I dislike is the priority applied to both: aliases have higher priority than mailbox maps (yes, you've read right).

The first time I configured an alias I got all mail delivered to the catch-all address because I thought that - being less catchy - the catch-all addresses would have less priority.

What you need to do is instead add identity definitions to the aliases map, this way:

john@example.com   john@example.com
mary@example.com   mary@example.com
berry@example.com  berry@example.com
@example.com       postmaster@example.com

In above example of virtual_alias_maps, the last line is the catch-all line, while the other lines are inherent to mailbox maps defined in virtual_mailbox_maps.

Now tell me if that's not counter-intuitive, error-prone (because of the duplication) and less easy to mantain.

2013-09-01

The state of hardware acceleration on ODROID U2: 3rd round

There has been fermentation and progress regarding the ongoing 3.8 issues (performance degradation, FIMC/FMC), today I have tested the 3.8 hardkernel linux tree, added some missing patches and could finally complete my benchmarks.

Kernel X11 Driver Resolution glxgears es2gears glmark2-es2 glmark2-es2 --fullscreen
3.0.90 ARM mali 720p ~ 140 fps ~ 599 fps 142 81
3.0.90 ssvb sunxi 720p ~ 144 fps ~ 620 fps 156 91
3.8.13.7 ARM mali 720p ~ 139 fps ~ 659 fps 143 81
3.8.13.7 ssvb sunxi 720p ~ 144 fps ~ 447 fps 87 48

You can compare these tests with the 2nd round of my benchmarks: did you notice the difference? :)




Yes, the performance degradation bug is fixed. Many thanks to ovversun, memeka and mdrjr for all their work and tests!

2013-07-28

Why eBay should disappear tomorrow

I have been using (or better: being affected by...) eBay for almost a decade now. What is my opinion?

It's the worst corporate-blind company in the world, not caring a dime about its customers and enjoying a de facto monopoly as much as they can.
Image courtesy of http://whyebaysucks.info/

This is the list of complaints I have for eBay:
  • crappy user interface that didn't change in the last years, no improvement, no nothing. If the cash cow is milking well, why change anything, right?
  • you cannot change the user interface language and it must be the same language of the nation you have a living address in. Microsoft has the same habit. The message I perceive is: we don't care about you people moving across country borders. How you dare!
  • The HTML editor is...horrible
  • if you save your item as a draft, and then save another item as a draft..*puff!* your previous item is gone. No warning, no nothing.
  • where are our well paid government officials when it's about antitrust? By buying PayPal they created the best monopoly ever, and basically you are forced to use it when using eBay. There are little to zero alternatives, and using others you loose all the "protected customer" rights
  • account verification is a joke. It has a lot of glitches, it keeps looping in a stupid sequence of 3 forms if you haven't yet verified your account from PayPal. So cheap for such a big company, and the problem has been there at least 5 years already!
  • it doesn't matter if your item is conform to description. If the buyer complains, he will get the money back. You are on the weak side by selling on eBay.
  • if you want to sell abroad, eBay will show you that you need 10 feedback comments and 90 days must have elapsed after last sale. But only after you completed the insertion, just to make it more fun for you.
 There are no sound alternatives that I know of, but I seriously hope that they will come to light...this online "service" already smells very bad these days.

2013-07-16

odroid-wheezy-retro 0.8.1 released: ALL RetroArch cores & fixes

A new release!

  • compiled RetroArch with NEON-optimized sound resampler (thanks to Squarepusher)
  • enabled page flipping (DRI2_PAGE_FLIP) for smoother RetroArch experience
  • added vim and missing packages for eduke32 and RetroArch-Phoenix
  • removed modelviewer core, added all RetroArch cores
  • added ~/libretro-super
  • enabled all joystick drivers in kernel

2013-07-14

odroid-wheezy-retro: wishlist & work-in-progress

These days I have been hacking around the ODROID U2 to improve RetroArch performance and better exploit the device's features.

One important achievement is that DRI2_PAGE_FLIP is confirmed to not be negative (at least on 3.0 kernels), but instead gives a positive performance improvement, so please enable it in your xorg.conf configurations.

This is my current wishlist, in priority from most important to lowest:
  • good GPU performance on 3.8 kernel, there has been some progress on this front recently but we are not yet there, 3.0 gives best performance so far Update 1 September 2013: there has been some progress :)
  • G2D support on 3.8 kernel, a support comparable to 3.0 kernel
  • G2D example usage, see also my hello-g2d-odroid and this forum thread
  • G2D-accelerated X11 driver, this could definitively possible once we have a working example
  • MFC-accelerated video decoding, there has recently been some progress on this
  • VSYNC on 3.0 kernel, basically this patch needs to be back-ported so that VSYNC ioctl calls actually do wait for VSYNC - done! Thanks to mdrjr for the patch; it is however verified that VSYNC is not working because of a hardware issue with the HDMI PHY :(
The last one seems easy to accomplish, and the G2D example usage is definitively possible to complete, although nothing else is at my reach :(

G2D acceleration is important to achieve because it would help at scaling anything using the hardware acceleration SoC.