rss feed: Latest Entries | Archive
2019.03.20 @ 10:36:00 GLideN64 with intel graphics on ubuntu 18.04

GLideN64 is an actively developed graphics rendering plugin for Nintendo-64 emulators. However, making it work on the latest ubuntu version with intel graphics isn't particularly straight forward, and took me a good bit of research to figure it out. So I'm writing this up for my future self and anyone else who might want some help along the way. Most of this post will be helpful to anyone trying to compile it regardless of your graphics adapter too.

If you haven't already, first install mupen64plus, this is in the ubuntu software center or see the top of the script to follow). You'll also want to fetch and install m64py, fetch the latest version .deb for Ubuntu/Debian from the m64py homepage.

Next you need to get the GLideN64 source and compile it. There is a wiki page with instructions, or to save you the trouble you can copy/paste the following into a script and run it.

#!/bin/bash

# This script assumes you've installed mupen64plus already.  If not, do this first:
# sudo apt-get -y install mupen64plus-qt

# For folks using mesa (intel) graphics, you'll need to modify whatever you're using to launch mupen to set this environment variable:
# MESA_GL_VERSION_OVERRIDE=3.3COMPAT
# For me, I set this before running m64py.

export TARGET_CPU=amd64
export CC=gcc
export CXX=g++
export BUILD_CONFIGURATION=Release

# Most of this is straight from https://github.com/gonetz/GLideN64/wiki/Build-From-Source-(Linux)
set -e # Exit if anything fails

sudo apt-get -y install git gcc g++ cmake libgl1-mesa-dev libfreetype6-dev libmupen64plus-dev zlib1g-dev

# If we're running this again, then update to the latest source.
if [[ -d GLideN64 ]]; then
    pushd GLideN64
    git pull
else
    git clone https://github.com/gonetz/GLideN64.git
    pushd GLideN64
fi

chmod +x src/getRevision.sh
src/getRevision.sh

mkdir -p projects/cmake
pushd projects/cmake/
cmake -DCMAKE_BUILD_TYPE=Release -DTARGET_CPU=amd64 -DVEC4_OPT=On -DMUPENPLUSAPI=On ../../src/
cmake --build .

# Now it's built, install it.  This line is very specific to 18.04 & x86 specific and, again, assumes mupen64plus is already installed.
# If you're on a different platform you'll need to modify this (or do it manually):
sudo cp plugin/Release/mupen64plus-video-GLideN64.so /usr/lib/x86_64-linux-gnu/mupen64plus/mupen64plus-video-GLideN64.so

popd
popd

Now you're almost there, take note at the start of the script about the environment variable. Without doing this, for intel graphics, I ended up with a no graphics being rendered at all -- just a black screen when I tried to load a game. This last step works around that and requires modifying the m64py launcher. If you're using KDE I had success at simplify editing the launcher directly. On xfce I created this small script which I placed in a "bin" directory I keep under my home dir for such things. Create a file ~/bin/m64py with the entire contents:

MESA_GL_VERSION_OVERRIDE=3.3COMPAT /usr/games/m64py
and make it executable
chmod +x ~/bin/m64py
Finally, change the m64py launcher to run this script instead of m64py directly.

Finally, run m64py and you should be able to now switch the graphics plugin to use the GLideN64 .so that we copied at the end of the compile script. Happy gaming!

2017.03.01 @ 22:56:10 MRTG for TP-Link Archer c7

The Wirecutter has recommended the Archer C7 wireless router for a couple years now. I happen to have two of them, although one is only functioning as a wireless access point. After reading about the hacked also-popular Netgear R6400 router, I decided I should get something to monitor my broadband internet connection and give me some pretty graphs. I went in search of various tools, and it seems good 'ol MRTG is still one of the better options out there. However, the Archer C7 doesn't support SNMP which means some other means is needed to get the traffic info to chart it. There are folks with solutions using upnpc to gather the data, but this means running a tool which dumps to text, then another tool to parse that text into to feed it into MRTG. That seemed too inefficient for me, so I kept looking and found this python tool for fetching data via upnp and feeding it straight into MRTG. It was designed nicely to be extendable with only a little effort. I used upnpc to find the port and initial xml data for the Archer c7, then with a bit of investigation the right values to plug in and a few test runs of the script showed it getting reasonable looking data back from the router. I was able to communicate with the original author and push my changes upstream for others to use. Given the router's popularity, perhaps you are interested in making it work. Below is the important stuff from my mrtg.cfg:



# external program for retrieving data
Target[archerc7]: `/usr/local/bin/ng-upnp2mrtg.py -t archer_c7 -h 192.168.0.1 -p 1900`

# size of graph area
XSize[archerc7]: 500
YSize[archerc7]: 200

Options[archerc7]: growright,nobanner,logscale

MaxBytes1[archerc7]: 39321600
MaxBytes2[archerc7]: 13108000
WithPeak[archerc7]: wmy

Title[archerc7]: Traffic TP-Link Archer C7
PageTop[archerc7]: <H1>Home Internet Usage</H1>
PageFoot[archerc7]: <HR><BR>ng-upnp2mrtg - Monitoring Archer c7

2016.12.18 @ 22:21:38 Video: hip hop showcase

Adam and best friend Justin took a hip-hop dance class from the Chicago Park District. Their final performance was in with a holiday showcase of mostly younger children dancing to more holiday-themed music. We braved the cold and snow to go watch, and followed it up by dinner out with Justin and his parents.

This video is from December 16th

Download: H.264 Doesn't play? Try the flash player.
2015.03.05 @ 19:38:24 Reasons this week in florida has been awesome.

Spring break came early this year, and we took off for Fort Myers Beach, FL. Here's some loosely related thoughts about the trip which is starting to wind down just a bit.

  • Awesome neighbors. They came out the first night in the rain to help us find the lockbox with keys. They've been super friendly Adam has enjoyed talking with them a lot, and they've had a smile on their faces the whole time.
  • Perfect weather. 80's every day, only rain was upon arrival and just a bit the first night.
  • Perfect location -- walk-able to shops and restaurants, but quiet and away from the rowdy spring break crowd. We had no idea what to expect and basically just got lucky!
  • House on the beach. We were looking to save money, but not finding anything we liked for the price range we sprung for the house on the gulf-side of the island.
  • Sunsets every night.
  • Dolphins playing in the water right in front of our house, very close to the shore.
  • Haircuts for everyone (although I do my own).
  • Adam playing by "himself" with his Planes vehicles, memory game, go-fish, or some combination.
  • Gas grill, tasty food we can make ourselves. Tonight was feta burgers, and they were super yum. I wish my hamburgers were always so good! Maybe the ocean view was inspiring.
  • Running on the beach in the morning.
  • Adam didn't so much like riding the jet ski, maybe next year? But he was glad he tried.
  • Full moon means walking on the beach at night is easy.
  • Watching the pirate ship go by every day.
  • Plenty of sunshine, and plenty of sunscreen.
  • A John Grisham book that I hadn't read yet.
2014.05.31 @ 23:20:29 Video: Bless the Lord oh my soul

Out of order video post! I have a year's worth of videos still to process, but this one is from today... Adam singing the chorus and verse and (mostly) getting the words right! Enjoy.

This video is from May 31, 2014!

Download: H.264 or WebM. Doesn't play? Try the flash player.