mGBA | Game Boy Emulation on Linux

I have received quite the number of comments about emulating the Game Boy on modern hardware and all the work that is going into it. I learned so much about the extensive community around emulating Game Boy games and the technology, research and absolute passion that goes into it. Though I was given many suggestions, the one that I settled on trying was mGBA. It appears that the latest version in the openSUSE repositories and on Flathub is 0.8.3, although, there seems to be a bit of discrepancy on what the change log says vs what the application itself says… not big deal. The latest release as of today is 0.8.4 which is available from the Snap Store. Since I am not emulating any of the more difficult games, the changes between the versions won’t likely affect my usage.

I do recommend checking out this Gameboy Emulator Shootout Matrix from here. I will get to some more of these at some point but considering what is widely available, and I see that it is in the middle of the pack on the tests, this was a good place to start. I would also be interested in more feedback here, what should I try next and what should I specifically check out between the emulators.

Installation

There are three options I have available to me to install mGBA on openSUSE. RPM packages for openSUSE from the Open Build Service, Flatpak from the main Flathub repository and the Snap Package, curated by the globally loved and appreciated Alan Pope.

RPM

Although I have installed them all, my chosen method for my openSUSE Tumbleweed machine is using the Open Build Service. I am going with the Tumbleweed tailored RPM package from the Emulators Experimental Package from here:

https://software.opensuse.org/package/mgba

My main reason for this method is that I already have the Emulators repository configured for my system and I know that it will fall in line with my desktop theme. mGBA is a Qt based application and therefore works well and integrates nicely with my openSUSE Breeze Dark Theme.

Flathub

The second method available to me is through Flathub. You have the ability to navigate to the Flathub site or use Discover on the Plasma Desktop, assuming you have it configured already. Either way, this version works well from my very limited testing.

https://www.flathub.org/apps/details/io.mgba.mGBA

Snap Package

The third method available to me is to install the Snap package that is curated by Alan Pope. He is one of the many great contributors to not just Snapcraft but the whole Linux ecosystem. This application functionally works well in openSUSE with the only issue being the Snap doesn’t follow my Qt theme, which is actually expected considering it hasn’t been “Snapped” up yet.

https://snapcraft.io/mgba

Set Up

There was, quite literally, nothing to do here but set the keyboard input to my liking. Since this HP EliteBook I am using doesn’t have what I would consider good cursor keys, I have, instead, chosen to use the “WASD” layout for movement and the right hand for the rest of the buttons. This works for me, for now.

I am not sure I am real attached to the Select and Start assignment of Backspace and Return, respectively but I am going with it for now. I think I may have had a better setup on VisualBoy Advance but the keyboard was also different for the machine for which I was using it on.

The default for the Snap Package had this for the default.

Games Played

Much like I did with VisualBoy Advance I played the few ROMs I keep on my local drive. I suppose I should expand my horizons with gameplay but here I am. I like what I like so I will rehash those same games. The games I tested were “Pokémon Red,” “Super Mario Land,” and “The Legend of Zelda – Links Awakening.”

Super Mario Land

Not much to report here. It works as expected, everyone that has had a Game Boy has played this and it doesn’t push the emulator to its limits. The game scrolls nice and smooth as you would expect the game to do. The colors are what you would expect the Game Boy Color to provide to you. It is all around a satisfactory experience. I do think that using a controller is far better than the keyboard but of course, personal preference on that one.

The Legend of Zelda – Links Awakening

I didn’t get far with this at all. I find the game a bit… involved and since I don’t have the attention-span for more than one adventure stye of game, I only dabbled with this a bit. I do think the intro screen, even for today, is just great to look at. The pixel art is well done, the charm in the sound effects and the game play is also absolutely top notch.

Pokémon Red

This worked quite nicely on mGBA. Not a whole lot of time was play on it, just progressing a bit in hopes of one day actually beating the game so I can move onto the next game. The emulator does seem to run nice and buttery smooth which I would evaluate to be a bit better than Visualboy Advance.

Most of my time on mGBA was spent here. I can’t say that the experience is any worse than actual hardware and my preferred actual hardware is the Super Game Boy on the SNES. The benefit here is that the play is more portable as I always have a laptop with me and not a Game Boy or SNES.

Interesting Features

Force Integer Scaling

Actual Size after you trim off that boarder, so pretty dang small.

This is an interesting feature in that it essentially forces exact pixel reproduction. So, there is no partial pixels or strange scaling artifacts. To be fair, for my untrained eye on a 14″ 1080p screen, this isn’t what I would consider necessary since you are scaling a 160 × 144 screen for Game Boy and Game Boy Color. Game Boy Advance has 240×160 which is still pretty small. The scaling on a modern screen is not going to be as much of an issue. None the less, you may have some uses for this and it is, indeed, interesting. If you personally have any uses for this, please leave a comment below, send an email, or Telegram message. I would be interested in knowing.

Bilinear Filtering

This is a nice feature in that it softens the appearance of the display. If you don’t like the harsh, sharp pixel edges and would like to have something closer to the feel of playing on an old CRT or maybe the harsh lines just don’t suit you, this is a fine option. I am back and forth on this. I find it interesting but the removal of it wouldn’t leave me at a loss.

Sprites

There is a very interesting utility in mGBA that allows you to look at all the sprite tiles. What makes this cool is the ability to see how the the images are stored in the game. You can brows by address and see all the bits and so forth. I found myself rather intrigued with this utility and my curiosity has me exploring other games to see how they break down the sprite tiles.

There are other features that I do think are interesting but these would be my top choices. Feel free to dig further into the settings to adjust some of the other enhancements. I have left my Audio driver to be SDL and my Display Driver at OpenGL. I don’t have any lagging, audio out-of-sync presentation, or flickering affecting my enjoyment of playing any games. My general modus operandi is to leave things as they are and only tweak the settings I don’t like.

What I Like

This is a very well built, designed and highly functional Game Boy emulator. The features are what I need and even gives me more things to play with and dig into the games themselves. The filtering and exact, pixel scaling is nice to have, interesting but for my purposes, a nice to have. I do like that this is an RPM that I can install on any openSUSE system, so long as I add the “Emulators” repository.

The game play is great. I like that I can keep the game in windowed mode or go full screen when I don’t have to pay attention to the more important things. Though, I have demonstrated all the interactions with the games showing the window boarder, that can easily be hidden or not seen at all in full screen mode. I just happen to like to see my menu bar at the bottom of the screen. Personal preference.

The saved game files from using VisualBoy Advance work in mGBA, that tells me that there are some fundamental bits that they are sharing and I do appreciate that greatly. For those that are prone to hop around and try different emulator projects, this is good to know and gives me a standard by which to further evaluate other, similar applications.

What I Don’t Like

There was only one thing that I didn’t particularly care for in my usage of mGBA. Not a major issue or deal breaker in using mGBA, but I was not able to turn off the Super Game Boy boarder for “Pokémon Red.” I could have probably done some digging but it wasn’t self evident.

With the pallet utility, there doesn’t seem to be the fun pallet switching feature that is available in Visualboy Advance. You can adjust the Pallet but not with the same drop-down menu choosing ease for switching. Truthfully, this is not an issue for me, that was a “nice to have” with Visualboy Advance and the novelty wore off quickly. I am just making a note of this feature not existing.

Final Thoughts

There are continued advancements in emulation of these nostalgic gaming systems from my youth. I really hope that they will continue to be developed, improved and refined as time goes marches forward. The preservation of video game history is just as important as any other cultural preservation of our past. It is an art, a historical technical achievement and there is some charm to be had by exploring the vastness of games with such limited computational resources available at the time. There is something to be said for the creative ingenuity that game designers had to have to make the games visually appealing and enjoyable to play. My hats off in respect and gratitude for not only the original programmers and engineers but those that are working to preserve the bits of our cultural heritage in digital form.

References

https://daid.github.io/GBEmulatorShootout/
https://gbdev.io/
http://mgba.io/
https://software.opensuse.org/package/mgba
https://www.flathub.org/apps/details/io.mgba.mGBA
https://snapcraft.io/mgba
VisualBoy Advance | Gameboy Emulation on Linux
https://popey.com/

LCD Chalkboard Smart Sign, Raspberry Pi Powered

Whenever technology and art meet in a very useful product, I can’t help but get excited and think about the applications of where a thing can be used. Instructables, yet again provides another incredible idea for something you can build as a life enhancement. I find the notion of combining a chalk board and a Raspberry Pi Zero into a single unit, can be valuable at so many levels. Very often the kitchen refrigerator becomes the message center with notes stuck to it, but maybe something like this would be more appropriate and even more efficient.

Full Article on MakersCorner.tech

Noodlings 23 | Not Fading Yet

Click here for the 23rd personal pan pizza sized podcast

I am doing my best to not fade out, but for more of my thought and opinions, subscribe to DLN Xtend, a podcast with the Destination Linux Network where I have a chat about Linuxy things with my co-hosts Matt and Wendy.

Gaming Rack Design and Construction

I have collected a number of gaming systems throughout my life and there is little point in having them if they sit in a box or using them takes an annoying level of set-up time, making it fun prohibitive. I was then inspired by Perifractic Retro Recipes video where the computer museum has everything so nicely laid out. I looked at my mess and decided that I had to do something about it because my arrangement just isn’t presentable.

openSUSE Breeze Dark Plasma Style

About two years ago, I started using Kdenlive to do video editing. The dark theme I had been using, a modified version of the “openSUSE dark alternate” theme, was not getting along with Kdenlive and I had to use the “Breeze Dark” theme to be able to properly distinguish the widgets and such on the application. Shortly there after, I set out to modify the Breeze Dark theme to give me that openSUSE feel I have been enjoying for years. I have made it available on this page of my site but I decided to push it to the “KDE Store” which I previously thought was “look and feel” but is now called Pling but store.kde.org is essentially the same thing. I’m still confused but less now than when I started the publishing journey.

Bpytop on openSUSE | Terminal

As I was finishing my article about how great Bashtop is on openSUSE, I was told about Bpytop and realized it was the successor to Bashtop as well. After publishing that article on Bpytop, I was told that there are yet cooler terminal system monitoring tools. I am not sure how far behind the curve I am but I am sure I will get more feedback on either my missing the party on the new hotness out there. None the less, I still like and use Bpytop.

Logitech K400+ Keyboard Water Spill Repair

One of the big life enhancements I have had in the last few years was mounting a computer in the Kitchen above the sink. I realized that there is an inherent hazard in mixing electronics and kitchen activities but I maintain a strong belief that this can also be a very beneficial mix. Having openSUSE available to me, with all its application and reliability goodness has been a life-enhancer for the kitchen. I went through a series of keyboards only to find that I was best served in buying a quality keyboard. That was all find and good until I was a giant numpty and dribbled my sopping wet hands on the keyboard, rendering it useless. I threw it in my pile of broken things to get back to and I did. Not a bad repair.

HP EliteBook 840 G7 running openSUSE Tumbleweed

I was given an incredible gift by my former employer as a parting gift, an HP EliteBook 840 G7. I didn’t unpack it right away as I wasn’t sure how I was going to integrate it into my mess of computer equipment. I have been very happy with my Dell Latitude E6440 and decided my next system was going to be a desktop system. I have since upgraded it and it currently has 40GiB of RAM and a 1 TiB NVME SSD. I will eventually follow up on this.

Dell Latitude D630 Retirement

With the digit changes into the new year, so goes some changes for the layout of the tech in my home. My new HP EliteBook needs a place besides my lap or in a computer bag and my Dell Latitude D630 that has been beside my main machine has been getting less and less use due to the encumberment of the Nvidia GPU. This D630 has served me well since I purchased it new from Dell in 2007 and I am not going to just get rid of it. I will bring it out from time to time to keep Tumbleweed rolling on it.

openSUSE Corner

Tumbleweed Gets Newest KDE Frameworks for Plasma

All openSUSE Services in Provo database center now support IPv6

New openSUSE Step Project Looks to Build SUSE Linux Enterprise on More Architectures

Reducing the scope of software.opensuse.org

Tumbleweed Roundup

  • 20210212 moderate 84
    • This is a full rebuild based on glibc 2.33. For me I had some issues with this snapshot that required filing a bug report and some intervention on my part. It appeared that my issue wasn’t all that common.

https://review.tumbleweed.boombatower.com/

Computer History Retrospective

This is my segment where I like to look back in time and see how the world of technology has advanced and how things have stayed the same. I find we often forget how far we have come and how good we have it while not always remember how we got here. Having some historical perspective on computers and technology can help to drive some appreciation for what we have today.

Computer Chronicles on Artificial Intelligence (1984)

The point of Artificial Intelligence is to duplicate not just human intelligence but to duplicate the end results. A then current application of AI was in the form of “Expert Systems”. These expert systems of the time would respond to user input much like the queries we give modern day search engines. At the time, these expert systems would require enormous computational power to dissect and process user input. Today, we can enjoy, without any cost or really much effort on our parts, the fruits of these efforts.

The early “Expert Systems” for “Microcomputers” were really quite rudimentary in respect that they would lead you to solutions. In its most simplistic form, this is essentially making accessible the knowledge to a wider audience.

As an aside, at the end of this video (27:00) from Computer Chronicles, there is a portion called “Random Access” and this software review is rather enjoyable about an game or application to help you make better bets with Black Jack.

What is particularly amusing to me is how the graphics are described as being “crisp, the table is green the cards realistic and the sound is good too”. I know, for the time, this is the case but that description just doesn’t hold up today. This is just food for thought, should you describe a bit of software or hardware.

Ken Huston's Professional Black Jack screen shot.

I must say, I love the early time of computer graphics, the innocence and the optimism. We were so happy with color and sound. I wish we would be so gracious today with open source applications. Perhaps being a little bit more grateful will lead to more smiles on a daily basis.

openSUSE Breeze Dark Plasma Style

I am happy to say that I now have published my openSUSE Breeze Dark Plasma Style for the world to use. If the color scheme I have previously release is any indicator of interest, there will be a few dozen that download it and that is good enough for me. I will be quite content if at least two others check this out. I am just happy I have finally navigated my way through using the Plasma-SDK, Git and the Pling.com site to make this happen.

If you are interested in making your own Plasma Style, the easiest way to get started with it is going to be using the SDK. It essentially restores some of that Plasma4 functionality to Plasma5 in customizing your desktop. I do wish this little thing would have been better publicized but at least it has been made and I did happen to find it.

For openSUSE, you can install the SDK by running this in the terminal:

sudo zypper in plasma5-sdk

I would consider this to be a very minimal SDK but it is enough to get you going to make the changes you desire.

The biggest change, and really, the only two changes of which I was most interested was changing the “Start” icon to using the Geeko button for the menu and the swapping out the shades of blue for shades of green to more closely match the openSUSE Branding guidelines. I say “closely” rather than “exactly” because if I had used the colors exactly, there would have been, in my opinion, too much contrast so I muted or de-saturated the colors a bit. I hope the marketing folks at openSUSE can forgive that slight change a bit. These colors are also what I use for my openSUSE Breeze Dark Plasma color scheme so it should match up nicely with that.

I made no alterations on the GTK side of things. The GTK theme was set to “Breeze” which is the default. I do have some issues with some GTK apps but that is a general encumberment of the GTK toolkit that will hopefully be less of a thing as time goes on.

It should be noted, that if you are interested in doing something more like the Breeze Twilight, that will work well with this Plasma Style too. Using my Plasma Style and the already bundled openSUSE color scheme, I think it fits quite well, except that, for me, the brightness is somewhat painful for my eyes.

This Plasma Style can be downloaded from the Pling.com site or hopefully by the time I hit publish on this article, right from the System Settings tool. I have already seen my color scheme in that fancy little widget which was an exciting experience for me.

I would go into the process of creating your own “Product” such as a theme or color scheme on Pling but at this point, this article is long enough and there will be a third part to this where I can go into detail and tie this Scheme/theme trilogy up in a nice little bow.

Final Thoughts

I am quite happy with how this theme has turned out. My next step is to create a “Global Theme” to make my openSUSE flavored Breeze Dark theme a one-click option for easy deployment. Maybe, if the right people like this that do the visual branding for openSUSE, they can include this in the lineup as well. I really think it is pleasant on the eyes and gives that openSUSE vibe with that Breeze Dark awesomeness. To me, it is the perfect blend of visual desktop enjoyment.

References

openSUSE Breeze Dark Plasma Color Scheme Published
openSUSE Breeze Dark Plasma Style
openSUSE Branding guidelines
https://en.opensuse.org/openSUSE:Artwork_brand

openSUSE Breeze Dark Plasma Color Scheme Published

About two years ago, I started using Kdenlive to do video editing. The dark theme I had been using, a modified version of the “openSUSE dark alternate” theme, was not getting along with Kdenlive and I had to use the “Breeze Dark” theme to be able to properly distinguish the widgets and such on the application. Shortly there after, I set out to modify the Breeze Dark theme to give me that openSUSE feel I have been enjoying for years. I have made it available on this page of my site but I decided to push it to the “KDE Store” which I previously thought was “look and feel” but is now called Pling. Yes, I am confused but I’m sure I’ll get it cleared up eventually.

The smart thing to do would have been to study and get a good, solid understanding of the history of all this but instead, I have decided to just leave my ignorance on full display. I am using this post as a note or reminder to myself on the process of publishing things for the Plasma desktop in the future. I will be soon, when I can get the little bits and bobs worked out on the specifics as my knowledge gaps are kicking my rear, but I’ll get it figured out soon enough.

In short, the Upload Scheme button didn’t work on the color scheme editor so I did a bit of searching and found out that I had to create an account on this “Pling.com” site and at the same time, I updated the code on my GitHub for it. I have since came to understand (barely) a few things and modify the *.colors file accordingly.

In short, I have officially published and in a small way, I feel as though I have contributed a bit to the greater Linux community just a bit. Now, if I can only convince someone on the openSUSE Desktop team to adopt this for the default openSUSE dark theme. I am a bit biased, but I think it looks pretty good.

My next step is to publish my “Plasma Style” that I also call “openSUSE Breeze Dark” and once I can get it worked out, a Global Theme where it configures everything nicely for you. As of today, I am not sure what I am missing but I’ll get it.

Final Thoughts

I really don’t know why I haven’t done this sooner. It seems silly I have put this off but at least it is done now. This was easy as it is just one file. I’m sure that the “Plasma Style” can’t be much more difficult but it does include some SVG modified artwork and such. This is totally personal preference, but I just happen to find the dark themes to be so much easier on my eyes than the light themes. Although, I must say, the Breeze Twilight theme is a good compromise between light and dark but it’s still not for me. I do hope I can get this color scheme adopted into openSUSE at some point.

References

https://cubiclenate.com/2019/02/05/coherent-color-scheme-creation-for-qt-and-gtk-on-opensuse/
https://cubiclenate.com/linux/opensuse/
https://www.pling.com/
openSUSE Dark Breeze color scheme from Pling.com

Linking a TI-86 Calculator with openSUSE

Since there is a part of me still stuck in 1998, I do enjoy using my Texas Instruments TI-86 calculator for math things. When I have a complex equation that my middle-aged brain just can’t seem to work out, I reach for my trusty old TI-86. It has been a faithful companion that has been by my side, may math crunching crutch for over 22 years. I still have some of the same rechargeable nickel metal hydride batteries from Rayovac that still seem to work.

I have written and used many little programs, especially early on in my mechanical design career to accelerate the task and after some time. Early on in my TI-86 time, I use a link cable that connected from the bottom of the calculator to the serial port of my Windows 98 machine. Times have since moved on a bit and today the DB9 Serial interface has been replaced with a USB-A style interface.

The question today, using Linux was, what application do I use to access my calculator? Texas Instruments only have Windows and Mac applications for download. Thanks to the open source community of wonderfully talented individuals, there is an option that is available to me from the openSUSE Community Repositories.

TiLP2

This is a recursive acronym for TiLP Is a Linking Program, like many early open source projects of this nature used (Wine anybody?). I think they could use a better meaning for TiLP2 but it isn’t like I am deeply invested in the project, I just use it from time to time to back things up. I am quite sure it is available for all the flavors of Linux packaging but in my case, I am using the Open Build Service from the openSUSE project.

https://software.opensuse.org/package/tilp2

From here I selected the latest version from the various community repositories and since this isn’t exactly a fast moving application, as in, I don’t believe there has been a meaningful update since 2013. It could probably use a rewrite of the GUI at some point. I am certain it is using GTK2. A Qt version would be nice.

Next, you are going to have to ensure the user is added to the necessary groups, coincidentally, are the same groups needed for interacting with my Arduino devices. This can be done in terminal like this:

sudo usermod -a -G dialout,lock,uucp

This can also be done by going into YaST > User and Group Management and edit the specific user that requires these positions.

When you first run the application, you are presented a rather dated, yet highly straight forward, interface.

The next thing you will have to do is configure the application to talk to your calculator

There is a feature to have it detect your link cable and device but it does not automatically change the settings. In my case, I have the “SilverLink” and a TI86 so I have to change the “Cable” and “Calc” sections accordingly. When you select, OK, and select refresh / reload button contents of the calculator memory was

The next step for me was to download and transfer some applications to the calculator. The best place I have found, to date, is ticalc.org. This is a great site, largely because it looks like 2002 but more importantly, it is a fast and responsive, no cruft kind of web site. There is a section of Archives that is broken down by the various calculator types. I chose the “86”, then went to the “TI-86 Assembly Files” and from there I started exploring.

Assembly files need to be launched from a “Shell” program. I went with iShell because of the rating. The shell is an important application that is needed in order to launch assembly applications. Without it, I’m not sure how you would launch the application. Perhaps there is a clever way to do it and I just don’t know.

Then I downloaded a few games, because, why not?

zTetris is a winner in my book, so is Mario86. I am impressed to see the monochromatic graphical wonders of 1990s technology. There has been much time invested on games that had to be packed into an incredibly small memory footprint.

The process on the interface to transfer the programs to the calculator is very simple. Just drag and drop from the computer files to the calculator files and you are done. The process to transfer is very quick, as the file sizes are small.

It should be noted, that downloading Assembly files will require the shell program to run. The Basic files do not. I have only put games back on this calculator for the nostalgic fun of it. Every once in a while, I will turn on that 22 year old mathematical tool and smile a bit as I play one of these games.

Where the calculator applications really shine is the science and math categories. The physics solver and resistors calculator has been very valuable and even though mobile devices and applications on Linux are far better in many ways, there is something raw, fast, and efficient about it.

Other Features of Note

Some other functions that should be noted on this application is the ability to backup and restore the contents of the calculator. Depending on how much you use your calculator and what you have stored on it, the need to back it up may be absolutely necessary, especially if you have written many programs.

You can do a screen capture of the calculator but seemingly not when running some of the assembly programs. I am not exactly sure the value of this if it cannot be done at any time.

If you intend on emulating the TI Calc environment on your computer, you will need to do a ROM dump as the ROM is not freely distributable. This process did take some time to accomplish and I messed it up the first time too. Thankfully, there was no harm done doing so.

What I Like

TiLP2 is a simple and efficient application for accessing and interacting with your TI Calculator. The ability to just drag and drop an application onto the calculator, without having to fiddle with the calculator is incredibly convenient. Since I only have a TI 86, I can only tell you how well it works with that device.

The setup is trivial for serial communication on over the USB interface. There were no special drivers required to make the SilverLink work. It was literally plug and play. TiLP2 can detect the cable and device to help you along with the process as well.

Although I didn’t cover the other great features, like backing up and restoring the calculator is another fantastic feature I wish I could have discovered sooner. I had the unfortunate event happen where my TI-86 froze or crashed and I consequently lost everything on the thing. My only solution to recover the calculator was to remove the memory battery. That’s the way goes, sometimes.

What I Don’t Like

The interface is dated and also of older GTK stock so there are some visual issues with the application but it is only a small annoyance. It would be nice to see this application updated with a newer Qt toolkit to make it from this decade.

The documentation on Linux, as to what ports need to be opened for communication isn’t completely clear. I was only made aware of this because of my Arduino fun I have been having. Hopefully, in writing this, I am able to help someone out there find that answer.

Final Thoughts

Graphing calculators are fun things. In some ways, they are the single board, low power computer of the 90s that people would hobby on. Today, they are still incredibly useful devices that can help you work out mathematical problems. They are great, handheld problem solvers and I, frankly, cannot go back to the simple calculator anymore. I am kicking myself for not having taken the time to discover TiLP sooner, before my calculator crashed hard and I lost all the things I made. Being able to backup and transfer programs you write or variable values is certainly useful.

After toying around with this, I can’t help but think, maybe I should get into the TI Calc collecting game. I have no use for more than what I have now but it would be neat to see the development of Texas Instruments calculators over the generations. I wonder what the newer devices have to offer that my old Ti-86 can’t do.

References

https://software.opensuse.org/package/tilp2
https://www.ticalc.org
https://www.ticalc.org/basics/calculators/ti-86.html
https://sourceforge.net/projects/tilp/

64JPX | JoyPad eXpander for the Commodore 64

I was going down a retro computing rabbit hole and I stumbled upon this fantastic little device that allows you to plug in more modern game pads into the Commodore 64. Specifically, NES, SNES and Sega Genesis, the 64JPX. This is a small interface that plugs into the DB9 ports of the Commodore, Atari and Amiga systems that give you the option to use Nintendo, Sega Genesis or even analog PC style of controllers. How this works? Sounds like magic to me.

One of the issues I have had in playing Commodore 64 games, specifically platformers, today is how I just don’t enjoy the push up to jump as the control. When playing the game from Protovision called “Sam’s Journey” is how it takes away from the enjoyment of the game to have to push up to jump. I should be fine with it, as that is what I grew up doing on games like Mr Robot and Jumpman Jr but some years have passed and Nintendo has “changed the game” as it were.

Sam's Journey by Protovision

With the purchase of the C64 Maxi, a modern rebirth of the Commodore 64 with the common interface conveniences such as HDMI for video and USB ports for controllers and data storage. I can use a USB game pad on the C64 Maxi, although, some lack of customization is a bit unfortunate, but that is another blathering for another time.

If you are playing games on your original hardware or something more closely resembling it like the Ultimate 64, you may want some of these more modern conveniences like a multi-button SNES controller. The 64JPX is the quick and easy solution to make that happen.

Features

https://www.64hdd.com/64jpx/images/64jpx-1.jpg

This will work out of the box with any of the aforementioned systems which means no fussing about. Just plug it in and you are off to the races in some glorious 8-bit fantastic fun. There are on-the-fly, selectable gaming enhancement modes which allow you to change the configuration of the controller while in the game. This also allows you to safely connect the Sega Genesis, Nintendo or PC controllers as to not fry your CIA chips and continue to use the machine to your heart’s content.

The enhancement modes, which are controller dependent, include

  • Fire and auto-fire
  • Racing where buttons or triggers are for acceleration and braking
  • Waddle modes for sports games that use left/right waddling, like the Decathlon or Summer Games. According to the manual different speeds of waddle are accomplished by different combinations of pressing and holding a button while optionally holding right on the direction pad. I say, optionally as it has to do with different speeds of waddle. This would be interesting to play with.
  • Creep mode is for the platformers where you need to get close to the edge without falling off. Personally, this sounds like cheating but I would gladly take that cheat because I have fallen off the edge on “Impossible Mission” more times than I can count.

There are five flavors of this device to from which to choose. Your tastes are likely vary from others so the clever creator of this device, Nicholas Coplin has given you some options.

  • Red – Sega Genesis / MegaDrive controller in either 3 or 6 button varieties
  • Blue – For use with SNES and NES controllers. The Start and Select buttons toggle the different enhancement modes available.
  • Purple – A combination of Red and Blue (cleverly named purple) which auto detects the controller type.
  • Orange – A combination of Red but with added support for the analog PC type controller
  • Black – A budget friendly option for use with the Sega Master system controller that just protects the C64 from shorting out the CIA chip
https://www.64hdd.com/64jpx/images/64jpx-snes.jpg

Depending on the choice, you may need an adapter, specifically, a dongle to adapt the proprietary SNES controller to the DB-9 port on this adapter. There are also some other useful items like the 1351-pass-through port to allow you to leave your mouse connected at the same time as your joypad / joystick. It’s good to save a bit of wear and tear on your ports. Though, I would be concerned about the chain of devices hanging off the side of the computer. Now I am dreaming of a kind of controller hub you plug in… hmm.

Final Thoughts

I am very impressed by the work Nicholas Coplin has invested into the controller business on the systems of my youth. I am incredibly impressed that someone has taken the time to open up the use of more modern controllers on the systems I with which I grew up. The fact the Purple version has the ability to auto detect the controller when plugged in is absolutely brilliant!

64hdd.com has an incredibly neat shop of useful hardware for use on your glorious 8-bit and 16-bit era systems. I am not sure why I haven’t founds this sooner but I am sure glad I did today. There is more fun to be had on the horizon with my fun systems and I can’t wait until I can actually use this. So be watching this space for a follow up.

References

64JPX at 64hdd.com
Ultimate 64 | A New Commodore 64 main board

Webcamoid | The Best Webcam App For The Linux Desktop

I wrote an article for Front Page Linux about the wonders of the best webcam application for use on Desktop Linux. Rather than publish it here where a dozen or so people will skip through the front door, I decided to put in someplace that receives a fantastic stream of traffic. This is a great application of which people need to be aware. Front Page Linux is part of the Destination Linux Network and has a ton of great articles written by a community of astonishingly talented technology enthusiasts.

Continue Reading on FrontPageLinux.com

Microsoft Teams on openSUSE

It is still strange for me to see that Microsoft is building software for Linux. Frankly, they are a bit hit and miss on the quality but I think that might actually be a general Microsoft trait. I am just grateful that they are putting time, effort and resources to Linux. Even if their applications still needs a bit of polish, I’ll cut them some slack because they are kind of new to the whole Desktop Linux thing.

There are three viable options for getting a functional instance of Teams on Linux. Neither options is 100% but maybe one if these will work for you. Okay, there are other options too as you can just run Teams in a browser, or even use something like Rambox if all else fails. My main reason for wanting a desktop application is the ability to click on a link from an email to get to a Microsoft Teams meeting.

Option 1 – The Microsoft Provided RPM

I read an article on FOSS Adventures that extolled the joys of installing and running Microsoft Teams on openSUSE using the RPM. When I read this, I hadn’t been using the RPM but it was clear that it works as you would expect on openSUSE. Unfortunately, this wasn’t the case for me, initially.

Installation

Microsoft provides two options for installation on Linux, an RPM and a DEB. In this case for openSUSE, RPM is the appropriate choice.

Download Teams from Microsoft here.

Download the RPM and navigate to that folder, right-click and Open With YaST Software.

Alternatively, you can install the package in the terminal by navigating to the download folder and run the installation command there:

sudo zypper install teams-1.3.00.30857-1.x86_64.rpm

The version may have changed since the time of this writing so be cognisant of that fact.

Once installed, run it and log into the application with your Microsoft credentials.

The application runs, seemingly without any issue but you will find out that there is an issue that is rather significant, you cannot access your camera and microphone. When you hover over the drop down for speaker, microphone or camera, you get an “X” over it and there is nothing you can do to change the device settings.

Microsoft Teams no speaker no camera or microphone

After a lot of digging and looking through the many posts on this forum. The solution that seems to work most of the time is to add specific groups to the user account. If you add video, pulse and audio, you will the have the camera and microphone working on Teams most of the time.

This can be accomplished using the YaST User and Group Management Module to modify the group permissions for the respective user of Teams.

Alternatively, this can be accomplished in terminal like this as the root user.

usermod -a -G dialout,lock,uucp <USER_NAME>

replace <USER_NAME> with your user name.

After you log out and log back in, you should now have functional microphone and camera inputs. I can confirm that this worked on the two systems with which I use Teams.

Microsoft supplied Teams RPM on openSUSE Tumbleweed snapshot 20210205 with working camera and microphone.

I very happily used Microsoft Teams on openSUSE seemingly without any issue but I do still seem to have a bug where from time to time the application cannot access the input devices. I am not able to definitively say what causes it but I do believe it has to do with the system suspending and resuming. It doesn’t happen every time but it does happen. The only way I can seemingly fix the problem is to logout / login or reboot the computer. More investigation here is necessary.

The primary reason that I prefer using the RPM over the Snap is that should you receive a link to a meeting from an external application. Opening it will properly connect you to the appropriate meeting. That doesn’t seem to work with the Snap but maybe a fix will arrive for that soon.

Bottom line, the RPM this is not without its problems. Although it works quite well most of the time, there are issues with the application accessing the camera and microphone at the most inopportune moments.

Option 2 – Snapcraft Store

Here is an option that works incredibly reliably as far as camera and microphone input is concerned but doesn’t seem to process MSTEAMS links at all. I am not able to click on a link from an email and get to the meeting. This is unfortunate and if this one thing did work, I would use it.

In order to install this Snap on openSUSE, first you have to set up the Snap repo. Use these fantastically written directions here:

https://snapcraft.io/docs/installing-snap-on-opensuse

Then, install using the terminal:

sudo snap install teams-for-linux

Or, you can also use the Snap-Store which provides a fantastic graphic interface for searching and installing Snap applications… but that is another conversation for another time.

The Snap application is a client using Electron and is essentially a Web App that is a stand alone application.

Option 3 – Official Microsoft Teams Preview Snap

Lets call this a bonus because at the beginning of me writing this little article, I was not aware of this option. The publisher of this Snap is from Microsoft Teams and essentially carries the same “Preview” label as the RPM package.

sudo snap install teams

or navigate here

https://snapcraft.io/teams

In my short testing, it retains the benefit of the does but has the same issue where I cannot join a meeting from a link. This could, perhaps, be an issue with permissions on my system, I can’t say for sure at this time.

Final Thoughts

Teams on Linux isn’t a perfect experience… yet, but it’s getting there. There are options that do work for me mostly well. There is a bit of bug squashing that has to happen but I am sure those fixes are coming. For the most part, it is a very workable system and I am able to accomplish my work. The RPM is currently my preferred method, mostly because I do get links via email to join a meeting. The Snap version, on the other head tends to work more reliably for camera and microphone access.

I am grateful for being able to access Teams from my Linux machine, even if I have to fiddle a bit with it, I find that to be preferable to using it on Windows or even Android. The Linux Desktop tends to make working with applications, proprietary, or open, far more enjoyable. Teams is no exception in that regard.

References

https://opensuse.org
FOSS Adventures – Microsoft Teams on Linux
docs.microsoft.com microphone-for-teams-on-linux-not-working
Set up Snaps on openSUSE
Snap-Store page

Dementia Friendly Media Player, Arduino Powered

Making something to serve a purpose is often a fun thing. Though I haven’t made this, I have a spare Arduino UNO lying around but not a case to put it in. This is something that I have on my list of things to do for that special elderly someone. The more I think about this particular project, the more I want to do it but with a few changes.

Go to MakersCorner.tech for the full article