MSI B650 Tomahawk EZ Debug LED Memory and CPU Issues – Early Adopter Woes One Year Later

I have recently treated myself to an AM5 system on an MSI B650 Tomahawk WIFI. The R5 7600 has access to 32 GB of G.Skill 6000 MT/s CL32 memory, which supports AMD’s EXPO technology. Enabling EXPO worked fine for the first hour before the trouble began.

At first, the SSD wasn’t detected anymore. I wanted to reinstall Windows because of licensing issues since I chose the wrong edition at first. Then, changing settings in BIOS did not restart the computer. The BIOS just froze up. Finally, the CPU and memory EZ Debug LEDs were both active, indicating a fried CPU and RAM.

That was a fun experience.

The Debugging

For reference, here is the layout of the debugging LEDs.

I am showing you this because the image of the error was under bad lighting conditions.

Whatever I tried, the system appeared to be dead. No more BIOS, no CMOS reset, nada. A CMOS reset had no effect even when the system would still boot into BIOS. Cutting the power… you guessed it: did nothing.

In a last hurrah, I attempted to boot with only one memory stick installed. Maybe it was just a single DIMM that unleashed hell. Lo and behold, the system booted. Testing the other stick also booted. Trying both RAM sticks again also booted. What the devil?

Changing the RAM configuration from two sticks down to one triggered something in the BIOS to reconfigure itself. A BIOS often shows a message when changes to the previously installed hardware are detected. And suddenly, a BIOS reset also worked.

The Fix

This time, I ran the RAM at 4800 MT/s while I installed Windows and tested a game for good measure. After ensuring the system was stable, I dared to perform a BIOS update.

And this was the solution to the problem. My MSI B650 Tomahawk came with BIOS version E7D75AMS.160; the latest version is E7D75AMS.170. The changelog mentions several improvements regarding RAM support.

An unreleased beta version also mentions stability improvements with EXPO enabled. I assume this also made its way into the latest release.

Since then, the system has been stable. I have run several benchmarks and played Starfield for about four hours straight without any stability problems.

The Disappointment

I am shocked that users can still run into compatibility issues like this about a year after the release of the Ryzen 7000 processors. The original installed BIOS was published in May 2023. That was already about eight months after the release of the AM5 platform, and it still had issues.

I hope this was helpful and saved you some time debugging a similar issue on the same motherboard or even a different one that behaves the same.

Thank you for reading.

The Order 1886 Review – An Underrated Game (PS5)

If you strongly believe in video game reviews, you likely took a wide berth around The Order 1886 when it was released in 2015. Metacritic says this game is not good, scoring 63 from critics or 6.8 from user reviews. Since I did not own a PlayStation then, I knew of the game but took little notice otherwise. I was only recently reminded of its existence by John Linneman from Digital Foundry as he revisited the game’s technology in 2023. And obviously, it piqued my interest.

The Order 1886 is a 3rd-person cover shooter like the Gears franchise and is equally story-driven. It also pushed the graphical fidelity like the Gears games usually do. So why did it fail?

It admittedly had a few shortcomings, like a story that seemingly ends prematurely and plenty of cutscenes that limit the player’s agency. At least the last part is a criticism that was also directed at Final Fantasy XVI, yet most people still loved it. The story aspect appears valid, but it’s also in the eye of the beholder. It depends on your expectations going into the game – or any game at all. The Order 1886 does not explain everything and leaves many questions open. It was clearly designed to have a successor, which might have allowed the developers to establish more of the backstory. But is that such a bad thing as long as the moment-to-moment action is coherent and enjoyable? I do not think so, which is why I liked The Order 1886.

Read More »

Final Fantasy XVI Review (PS5)

I believe this is the first time that I write an introduction to a review after all has been said and done. I don’t know where to start. It is only my second Final Fantasy game, so my expectations were simple:

  • A more fun combat than Final Fantasy VII Remake.
  • An equally good story.
  • Great visuals and music.

And all of that came to fruition. However, there is a But coming – a very stiff But.

(I better stop this metaphor before it gets out of hand.)

The technical presentation had some issues that could make side content unengaging for you despite the excellent writing. The author’s work was exceptional, and it is a shame that not all received the high-quality presentation it deserved. Did that make it a bad game? No, absolutely not! I liked Final Fantasy XVI a ton and finished it relatively quickly, given its length.

Let’s start the review before I continue beating around the bush.

Read More »

Marvel’s Midnight Suns Review – The Superhero Tactics Friendship Simulator (PS5 + PC)

When Marvel’s Midnight Suns was revealed sometime around the summer of 2021, according to this trailer, I found it to be an interesting concept. The trailer does not say much, of course, and I based my opinions on the first gameplay reveals that are harder to dig up now. My experience with tactics games is limited to the Divinity Original Sin series from Larian Studios, so I would hardly call myself a seasoned player. One of the two gameplay-focused YouTubers I subscribe to is, though, being an X-Com veteran, and he got to show off early gameplay and character deep-dive promotional content. He was even mentioned in the game’s credits, which is so cool. Therefore, I found myself exposed more to this game than I usually would.

As I always do with games I find intriguing but am unsure if I would enjoy them: I watch on YouTube and knew just the right guy for it 😉. I am not a deck-builder gamer, the gameplay loop looked like a lot of busy work, and some of the writing appeared… questionable. So, I stuck with watching, but the idea of the game never let me go. There was a lot to like, and I ultimately purchased a copy, as it occasionally happens in situations like this. Two, in fact 😅. When I decided to play for myself, the most affordable way was on the PlayStation 5, and this is where I finished the base game. After that, I wanted to play the DLCs and their story, and at that point, the Epic Games Store offered a deal for the Legendary Edition (base game plus Season Pass), which turned out to be as much as the Season Pass on the PlayStation store. With a 25% coupon Epic randomly threw my way as part of a Mega Sale, I obtained the Legendary Edition on PC for just under 38€. I think that is a perfectly acceptable deal 😁. It also allowed me to compare the console and PC versions in terms of performance and visuals, as I noticed a few things on the PS5 that I found curious.

(Three emoji in one paragraph 🙀. What’s my age again?)

Marvel’s Midnight Suns captivated me in a way such that it became an evening routine after work, workout, and dinner. It does have its flaws, as expected. However, the positive elements outperform the downsides, and since you seem interested, I will tell you about it.

Read More »

Gamers Do Not Want to Buy AMD and NVIDIA GPUs

It is June 2023, and gamers are still waiting for NVIDIA or AMD to release a GPU that is a no-brainer for any of the different price points of the mainstream market. I accept that the RTX 4090 and the RX 7900 XTX are halo products with an accordingly high price tag. Especially the RTX 4090 is impressive in all aspects. But what about the people who do not have over 1000 Orens to burn or do not want to spend that much? The controversy and discussions about NVIDIA’s sub-1k lineup down to the RTX 4060 Ti got me thinking. These cards would be a significant or even gigantic performance upgrade for me, yet I am not interested in them. What about AMD? Seriously, what about AMD? When are they moving their butts and joining the fray?

I am aware that it is about maintaining margins and keeping all their Scrooge McDucks happy. I also know that gaming products do not sell for as much as professional workstation- or enterprise products, with AI being the new hotness.

(Let’s hope it turns out to be more useful compared to the mining energy waste.)

How much time did NVIDIA dedicate to gaming hardware at Computex 2023? But is this really worth antagonizing a vast and vocal audience that has enabled AMD and NVIDIA to get where they are? From the looks of it: Yes. When considering a younger Jensen Huang’s statements, NVIDIA’s position is especially curious.

Read More »

Horizon Forbidden West: Burning Shores DLC Review – More Great Horizon (PS5)

Of all the games I played last year, Horizon Forbidden West was my absolute favorite. I love the lore, the lead character and supporting cast, the storytelling, and the combination of action combat and adventure-like exploration and exposition. It should come as no surprise that I was very excited about the Burning Shores DLC when it was announced last year.

With that being said, expansions are usually not my thing. Most spin their own standalone tale within the framework of the main game but do not extend it or move it forward. Unless the gameplay is outstanding and the sole driver of the experience, DLCs face an uphill battle trying to convince me. And even in those gameplay-is-king cases, like Control, the expansions failed to entertain. I want more lead protagonist, more main story. Random side content that may or may not have ties to the main events rarely tickles my fancy. The issue comes down to the importance and meaningfulness of the new adventure. What could be significant enough to jump back into a game when the main objective is completed and the big bad boss is defeated?

(Rhymin’ and stealin’)

Horizon Zero Dawn’s expansion, The Frozen Wilds, was a new adventure, yet it also laid some groundwork for what would come in Horizon Forbidden West. Together with the fact that I just really enjoyed Zero Dawn, I happily played it. Forbidden West was an even better game, and I expected something similar from its DLC. In fact, it was my most anticipated “game” in 2023.

Burning Shores did not disappoint and delivered more of what made the base game an extraordinary experience: gorgeous visuals, entertaining combat, a couple of new machines, new skills, another Zenith threat, and a new side to Aloy’s character.

I immensely enjoyed my time in the destroyed and flooded future Los Angeles, and I want more Horizon because of that.

(Tomorrow, if possible. Kthxbye)

I think I can keep this review relatively short since the game’s core is still the same. We’ll see how it went when I write my famous last words 😉.

Read More »

CMake Multi-Project Template With Library, App, Tests

CMake is a powerful tool but can also be very complicated and daunting when starting out. Much of my C++ career took place in Microsoft’s Visual Studio on Windows, so I am mainly used to the IDE maintaining the build system and relying on a graphical interface to configure dependencies. I started my WorkTracker utility this way – Visual Studio in combination with the Qt plugin.

Eventually, I migrated to Qt’s build system, qmake, and after that, to CMake. This is how I managed to build WorkTracker on macOS. If I am honest, though, I took a minimalist approach and learned only as much as was necessary to get it working. I like building an application, not knowing about build tools.

As a result, the resulting build script was mostly a hodgepodge of somewhat modern and outdated CMake. My lack of more profound knowledge – which I still do not claim to have – and the convoluted CMakeLists file of WorkTracker somehow presented a mental obstacle for me to start improving it or build other C++ tools.

To remedy this situation, I started looking at the bare minimum modern CMake. I set up a template repository containing a library, an application based on that library, and a Googletest-based testing application. This should provide a good starting point for new projects and give me enough knowledge to slowly start dissecting parts out of WorkTracker and create one or more libraries from it.

Read More »

Detroit: Become Human Review – The AI Game (PS5 + PC)

Yes, this is a controversial title, and I am definitely playing the clickbait game. Yet, I also believe that it is not that far off the truth. Depending on your viewpoint, you can interpret “The AI Game” as a game generated by AI or as a game whose core idea revolves around artificial intelligence. Detroit: Become Human falls into the latter category.

Broadly speaking, our contemporary understanding of AI focuses on generating text or images, and attempts at creating music also exist. The results are truly astonishing and also frightening. Imagine the political damage a convincing AI-generated deep fake could cause. Leaving this discussion aside, Detroit: Become Human takes AI further and introduces Androids into a not-so-distant future version of Detroit. These Androids look and behave like human beings and are supposed to follow a specific programming for given tasks. Still, circumstances enable some to break free of their restrictions and start thinking and feeling like living beings. And at that point, the question becomes: are they living beings?

Read More »

Ratchet & Clank: Rift Apart – A Technical Showpiece I Recommend (PS5)

Ratchet & Clank: Rift Apart is my first Ratchet & Clank ever. I did not even know this franchise existed until I saw it being part of the early PlayStation 5 launch titles. As a Digital Foundry subscriber, I received all my information, especially what made it a technical showcase, from their excellent coverage and discussions. I was interested in the tech, but impressive visuals or other technical prowess alone do not make for a good game. The gameplay looked fun, however, and I stored that title on my maybe-if-I-ever-get-a-PS5-I-might-play-it list.

That day has come, and my recent test of Sony’s version of Game Pass afforded me a 50% discount on that title. Considering Sony still charges 80€ on their digital store, it was quite the price reduction. Amazon isn’t any better, either.

I called Kena Bridge of Spirits “essentially an interactive animated Pixar movie “. Ratchet & Clank falls even more so in this category. Kena focuses more on gameplay and combat, whereas Ratchet & Clank: Rift Apart strongly concentrates on characters, the narrative, and cinematic storytelling. If you string together all cutscenes and in-game conversations, you essentially get an entertaining, family-friendly animated movie. And all that is wrapped in a visually stunning real-time package.

Let’s get into it and look at a few nice pictures, shall we?

Read More »

Connect Spring Cloud Stream With Kafka Binder to Azure Event Hub

In two previous blog posts, I explained how to create a Kafka consumer and producer with the Spring Cloud Stream framework. In the Famous Last Words section of the producer, I already hinted at the notion of utilizing this technology for connecting to Azure Event Hub. While doing so, I discovered an error in one of Microsoft’s examples that has cost me about two days of work. I show you how to avoid the dreaded “Node -1 disconnected” error.

In this tutorial, I explain how to use the exact same code to connect to Azure Event Hub using a Shared Access Signature Token (connection string) and a Service Principal.

I have good news and bad news. Which one first? The bad? Okay, here we go:

There will not be any code in this tutorial, only YAML configuration.

Now to the good part:

There will not be any code in this tutorial, only YAML configuration.

This is the beauty of Spring Cloud Stream. Granted, I am not even swapping the binder for an Azure-native variant. So why would there be any code changes? But let me say this: I briefly plugged in the Event Hub Binder without changing the code in my research on getting this to work. Even the updates to the config were minimal. A few Event Hub-specific settings, especially the Storage Account for checkpoints, and that was it.

Enough foreplay; let me explain what you likely came here for.

Read More »

Produce Messages With Spring Cloud Stream Kafka

Update:

In a recent post, I explained how to create a Kafka Consumer application with Spring Boot using Spring Cloud Stream with the Kafka Binder. In this installment, I explain how to build the other side of the Kafka connection: the producer.

The main concepts are the same. The most significant change is that instead of a Consumer<T>, you implement a Supplier<T>.

Read More »

Package Qt6 macOS App Bundle With Translation Files In CMake

Recently, I wrote about how you can create a macOS app bundle with CMake for a Qt6 application. I omitted the inclusion of translation files, which also required code changes. Well, I figured it out and will briefly explain what I had to do.

In my WorkTracker application, I store the language files in a folder called “l10n” at the project’s root. The first thing to do is instruct CMake to copy the *.qm files to the app bundle’s “Resource” folder. I have done that before for the app icon, and the process is similar for this kind of file.

set(l10n_files
    "${CMAKE_SOURCE_DIR}/l10n/qt_de_DE.qm"
    "${CMAKE_SOURCE_DIR}/l10n/de_DE.qm"
    "${CMAKE_SOURCE_DIR}/l10n/en_US.qm"
)

set_source_files_properties(${l10n_files} PROPERTIES 
    MACOSX_PACKAGE_LOCATION "Resources/l10n")

qt_add_executable(WorkTracker MACOSX_BUNDLE 
    ${worktracker_src} 
    ${app_icon_macos} 
    ${l10n_files})
  1. Define a variable l10n_files that contains all the files.
  2. Tell CMake that these files shall end up in the app bundle, in the “Resources/l10n” folder, to be precise.
  3. Include the files in the call to the qt_add_executable function.
A macOS Finder window showing the contents of the "Resources/l10n" folder in an app bundle.

Now that the translations are part of the bundle, a minor modification to the code tells the application where to find them. The Qt documentation contains a section about using macOS APIs to determine the bundle location. That is not necessary, though. Qt also has a helpful method to achieve the same goal, QApplication::applicationDirPath().

#if defined(Q_OS_LINUX)
    // On Linux the translations can be found in /usr/share/worktracker/l10n.
    auto l10nPath = "/../share/worktracker/l10n/";
#elif defined (Q_OS_WIN)
    // On Windows the translations are in the l10n folder in the exe dir.
    auto l10nPath = "/l10n/";
#elif defined (Q_OS_MAC)
    // On OS X the data is somewhere in the bundle.
    auto l10nPath = "/../Resources/l10n/";
#endif

auto appDir = QApplication::applicationDirPath() + l10nPath;

This method returns the absolute path to the “MacOS” folder inside of the bundle, the folder where the application’s binary is located. Appending /../Resources/l10n/ first navigates up to the “Content” folder (via /..), which is more or less the bundle’s “root” directory, and from there, goes to “Resources/l10n”. Finally, the language files are loaded like on Windows, and the translation works as expected.

I hope this was helpful because I could not find much information on this specific topic.

Thank you for reading.

Pentiment Review – I Recommend 66% Of It (PC & Xbox Series X)

It may come to you as a shocker, but I have never played a point & click adventure game, like the well-known Monkey Island series, for example. It is something I know exists and is beloved, yet I never touched it, despite several releases of the franchise being of my time. Pentiment falls into the same game category, and the coverage I follow had high praise for that title.

So, when I got sick recently, I figured this would be a chill game to pass the time while trying to recover.

Read More »

Package Qt6 App as macOS App Bundle With CMake

The Qt documentation contains all the necessary pieces to create a macOS app bundle. Some steps require CMake configuration, while others require manual labor, i.e., terminal commands. Ideally, you, the developer, want to automate the whole thing and not enter the commands every time you build a release.

You can do that with CMake, and this How-To will show you what to do. I am taking my WorkTracker application as an example since it isn’t just a little toy with an executable binary. It is a fully functional application I use daily at work (albeit on Windows) with icon resources, language files, and several Qt libraries and plugins.

Note: I will not elaborate on the language file topic, as it requires code changes to find the translations in the bundle file. This post focuses on automating the app-bundle creation and setting an application icon.

Read More »

Consume Messages With Spring Cloud Stream Kafka

Update:

Spring Cloud Stream is a very complex topic and a remarkable piece of technology. It builds on other intricate Spring technologies like Spring Integration and Spring Cloud Function, and when you add Apache Kafka to the mix, you have a steep learning curve on your hands.

There is a lot of documentation to read and comprehend, and I do not think it helps that your first interaction with the technology is by showing off. Here is the sample in the “Introducing Spring Cloud Stream” section.

@SpringBootApplication
public class SampleApplication {
    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }
    @Bean
    public Function<String, String> uppercase() {
        return value -> value.toUpperCase();
    }
}

That supposedly is a fully functioning application. The uppercase() method consumes and produces simultaneously, essentially turning it into a way software can pleasure itself. To understand this example, you must know about all the Spring Boot auto-configuration magic happening in the background. Otherwise, it is an opaque magical, and indecipherable showpiece.

This post will show a practical example of a simple consumer application receiving messages from a Kafka cluster. This was my use case, and while the documentation contains a ton of helpful information, it only succeeded in confusing me at first, coming to the technology with fresh eyes. As a result, it took me a long time to put together all the pieces before I understood what was going on.

Read More »