For whatever reason the other afternoon I thought it would be a good idea to dust off my Nintendo 3DS and finish up one of the games I had started many months ago. I finished up the game, but then I started poking around a little and started to look into updating the custom firmware I had installed. It looked like it was going to be a pretty quick update, however, that's never the case with my stuff. After doing a little bit Googling, I found this issue on GitHub. Same problem I was having. I then learned that I was pretty much light years behind on updates and I would need to do some extensive manual updating to get things going again.
Thankfully some wonderful folks have put together some really awesome guides which walked me through the whole thing. When I did get stuck, which was inevitable, I used their advertised Discord server to seek additional assistance. Within an hour or so I was back up and running on the latest version of the Luma3DS custom firmware.
I'm still working on understanding how all this works. Basically what I've been able to determine and what I believe on how this works is there's a bootloader that you must have installed. This allows for unsigned applications or code to run. During the boot process, you go from the bootloader, then to your custom firmware, which in my case is boot9strap as the bootloader, then into Luma3DS. Once you're in Luma3DS you can launch "homebrew" applications along with 3DS games. I could be completely wrong about that process, so feel free to leave a comment to correct me.
Unfortunately, since I was relying on EmuNAND and Menuhax I still have EmuNAND and that's where my games live. Fortunately, there's a guide available which walks you through the steps of moving over from EmuNAND to SysNAND (which is what the 3DS boots into by default. I'll be giving that a shot tonight likely. This way, I won't need to hold down the L button every time I boot up my 3DS.
Fingers crossed that process goes without issue!