Wii And DSi

My intention for writing this blog was to try and arrange my thoughts and focus on things that I’m doing at the time, but so far it’s turned out to be nothing but me either trying to talk myself into stupid side projects, or try and rationalize stupid shit. For today’s topic of stupid shit, we’re going to be looking at the Wii and DSi. The idea is that the Wii and DSi are both old and wide open platforms of the console and handheld from the same generation. So it seems like having one of each and then putting custom firmware on them seems like it would be a lot of fun.


Wii’s are available for about $20-30 for a complete working Wii. Plus SD cards have really come down in price. And it seems like a pretty compelling idea to get a Wii which would include the Wii, Gamecube, N64, Snes and Nes libraries. It seems like it also might have some decent or fun homebrew to play around with.


I already have a DSi that I installed homebrew on. So another DSi would actually be to use as it was intended. Specifically for buying and collecting DS cards which could be loaded one at a time and played as intended. In terms of software I think I’d stick with games like Pokemon, Nintendogs, and Animal Crossing.

Looking for a new laptop

Now that I’ve managed to grab most of the items in my list of consoles to mess around with and a fare share of Raspberry Pi accessories and gamepads, the next list of things to play around with is a set of laptops. So my goal is to try and pick up two of the same kind of laptops. One to install Windows on and the other to run Debian Gnome on. The conditions for the computers is they need to be either 12inches or 14inches with a 1080p or higher IPS display, 8GB of RAM, and 256GB of SSD storage.

For budget I’m looking at about $250 per laptop with a combined total of $500. For memory 8GB is the ideal goal, but 4GB is passable, and ideally I’d be looking at 4GB x2 for dual channel memory since at this price point I’m probably looking at integrated graphics. A few things like a dedicated microphone jack, or usb-c for power are definite bonuses. And in looking for computers, if there is a computer that is more than $250 and around or less than $500 and contains a hot-swappable hard drive then that could be a consideration. And the other thing is that the model needs to be the same for both computers. So for new computers this isn’t an issue, but if I go for something used, then I’ll have to look for models that I can reliably find two of, which will probably be outlet business computers.

So I guess I’ll list the candidate devices, and then try to figure out which one makes the most sense.

Chuwi Herobook

Link: https://www.amazon.com/CHUWI-HeroBook-X5-E8000-Notebook-Lightweight/dp/B07P5RT1P5?ref_=ast_sto_dp

This one is kind of surprising. I wasn’t expecting a new device to fit what I’m looking for so closely. It’s a 14.1 inch, 1080p IPS display with an atom processor and 4GB of memory. The description on the storage is pretty poorly worded. It looks like it as 64GB of eMMC memory which is included. And then it has an optional m.2 (sata/nvme?) ssd slot (up to 1TB) for expanded storage. And they they also claim the micro-sd card slot is storage, but I’ll leave that rant alone.

So the main thing about this device is the display, processor and memory are all fine. It really comes down to the storage. First of all I need to figure out exactly what kind of storage it’s expecting. And then second I need to figure out if the device can boot directly from the SSD. The 64GB eMMC seems kind of wonky, I don’t know if there’s anything I would really need or use it for. On Linux I could potentially map is to something. On windows I don’t know if it’s possible to group drives, or even if that’s a good idea. So as far as I can tell it seems like the best option would be to install a separate SSD and then pretend the eMMC doesn’t exist. Unless I could install Linux to one drive and Windows to the other and then figure out how to switch between them as a bios option. And then figure out how to separate the partitions so that they couldn’t see the other, only one shared mapped partition.

Latitude E7250

DashGL Season 2 Notes

So a quick note on hardware. Bought a PsVita, it is a really impressive device. For laptops pretty much want a 14″ 1440p ips, ryzen with 8gb of ddr4 ram and 256gb of nvme storage. So it basically doesn’t exist, so I’ll have to keep watching for when something of this description fits. Preferably a Thinkpad.

For DashGL the next season of tutorials took an unexpected turn. Originally I had planned to use SDL, but it turns out that emulation station doesn’t use the X11 environment. So rather than launching X11 specifically to run one game, I decided to look into egl and running games from the command line directly, and it’s an approach that I’m pretty excited about.

Though the drawback of using egl is that there is not a lot of documentation. So I’m kind of flying blind on this one. I’m thinking that the approach for this set of tutorials isn’t that I’m some kind of guru, but more to present some examples to act as a place to get started, and maybe people more familiar with the subject can fill in on the details.

Right now we’ve managed to get the first triangle down which took several hours of cleaning out the program included with the pi to get it down to the “hello world triangle”. Next step is to include the shader install part of the application as a library. So I’ll probably be writing about my issues with that in the next post.

More hardware follow ups

The second-hand shop close to my house had a PS-Vita in unexpectedly good condition for $50. I ended up making an unplanned impulse buy. First impressions are that the screen is really great. The analog sticks kind of get in the way and I wish Sony had gone with the nubs from the PSP. I’d be attempted to swap the sticks out myself, but looking at tear-downs of the Vita, it looks like there are multiple boards, and the analog sticks are one of the last things to come out. So the mod might be above my very low level.

I spent last night getting henkaku set up. So I’m running 3.60 with what looks like to be a persistent cfw. Even after reboot everything is usable. Right now I just managed to get mGBA working. I have a micro-sd card adapter coming tomorrow. So I’ll try to get StorageMgr working to be able to use the space. My plan is to mostly use the Vita as a Psp-plus, as generally the kinds of games I’m looking to run on it are Phantasy Star Portable 2 Infinity, Rockman Dash, Metal Gear Solid Peace Walker and Disgaea. So mostly a priority on PSP games, but I also want to throw on a lot of psx games like Vagrant Story.

Since I grabbed a PsVita that means generally the only other console hardware that I’m thinking about picking up would be the Wii or WiiU. Wii would be a lot cheaper. Though it kind of depends on what kind of homebrew is available. If WiiU would let me play NES, SNES, N64, Gamecube, Wii, and DS games on the tablet thingy. And then I guess the WiiU also had HD remakes would make the price of admission worth it. Though the Wii is super cheap, so being able to pop in an SD card and then being able to play NES, SNES, GBA, Gamecube and Wii games would probably be the easiest approach.

In terms of computers, I’ve recently been thinking about a computer that could switch back and forth between different OS’s easily, and I’m thinking the best approach is to hot-swap hard drives. I’ve been looking at the Thnkpad series and they seem to only have one screw to the harddrive bay and then tool-less swapping from there. I think I would buy a bunch of WD-blue SSD’s and then I could install different distro’s, ReactOS, Windows, (maybe even MacOS?) on them if needed. In terms of which machine to go with I’m leaning towards X240.

Originally I was thinking about the X220 or x230 because of Coreboot, but the resolution is capped at 1366×768, which I resolution that I hope eventually dies off forever. Starting from the X240 is looks like the display can be upgraded to a 1080p IPS display, and the machine itself is cheap and widely available. In terms of pricing it looks like $140 for the computer, $70 for the screen, and then I have an extra 8gb ddr3 sodimm stick lying around that I can use for the single memory slot. Which would just leave storage. For the X-series, it looks like it goes up to X280 before switching over to the carbon series, but in general it doesn’t look like the newer models offer any updates with respect to screen resolution. And the X240 is likely to get coreboot sooner than the other models (assuming it’s still a work in progress).

A few other alternatives would be the X1 carbon, which has the option of a 1440p screen, but it’s over a thousand dollars. So I think I’ll pass on it. There’s also the Thinkpad X395 which is the 13″ Thinkpad with a Ryzen chip in it, but it’s still capped at 1080p, and the newer processor means that I’d be less likely to be able to get something like Windows XP or ReactOS running on it. That isn’t to say that the X240 would definitely work, but it has a higher probability. So all in at it has a 12.5″ IPS 1080p display, potential to run multiple OS’s, 8GB of ram, and an easily swap-able hard drive bay for $200. Definitely sounds reasonable for the price. And the other advantage is that it doesn’t break the bank while I continue to wait for a 14″ 1440p laptop with usb-c charging that isn’t ungodly expensive (if it exists at all).

Another thing is that I’ve been thinking about switching over my work computer to Fedora as I continue to go more and more open source. Options for a work station computer I’ve been thinking about are:

1. The ThinkCentre M715q Tiny is a super tiny Ryzen desktop with multiple display ports. The nice part about going with this is I should be able to find some ddr4 sodimm ram and an nvme drive at work. Which basically means that I would only need to order the base unit and then I could have a pretty serious spec’d out small computer.

2. Going up in size there’s the ThinkCentre M91, which is more of a general category as a specific model. There are a bunch of used mini-itx Thinkcentre’s that look like the have space for a half-height graphics card to go in, and I can always swap out the power supply. The processors are a little older but my work-load can be managed perfectly fine with a dual-core i3. The main drawback behind this build is that I’m waiting and hoping AMD comes out with a lower power half height card on either their RX 5500 or RX 5300. Still not a lot of information on either of these cards, so this ins’t a viable option until more information comes out.

3. The Inwin Chopin is a great case for a Ryzen APU build. But I think for the price of getting the new motherboard and all of the memory, that it’s probably a better idea to go with the ThinkCentre M715q Tiny as the price is going to be similar. And as the power supply is built in and there’s no option of adding in a pcie-express slot, it seems like a better idea to go with the smaller option.

4. Dan A4. A guy can dream right? This case is pretty expensive and I think it would only be worth getting a case like this if I indented to get specs to fit the caliber of what this case can handle, which would probably be a Ryzen 7 3600 and RX 5700. Barring that it’s probably best to leave this case alone. If I wanted to go cheap there’s the option of a SG13 with a previous generation Ryzen and then an RX570 or something. But I think I’d rather wait to see what AMD has in mind with the RX 5500 before doing anything like this.

5. The last idea would be a Core 1100, which is a great sleeper case. Though my intention would be sleeper on the outside and on the inside. The idea would be to basically use the cheapest b450 motherboard I could find and pair it would older Ryzen Cpu’s an basically cobble something cheap together. Though again, this option really depends on what AMD does with their new cards, as I really can’t bring myself to buy polaris cards. They seem long overdue for an update the the port options kind of suck.

So in summary it likes like the ThinkCentre M715q Tiny would be the best option as it’s small and there are parts available for it. Following that up would be the ThinkCentre mini-itx, which is older but has the benefit of being a complete system for not a lot of money. And again my work load is basically text editors so it would be more than enough. The issue is when AMD will actually announce and release a new card, if it will suck or not, and if it’s actually available. Otherwise the only option here seems to be the Tiny one as all of the other’s depend on a deus-ex graphics card.

More stupid hardware Ideas – Thinkpad Edition

Not sure what it is about winter that makes me want to tinker more than normal. To follow up my previous post, I think I found some cheap Vita’s and Wii’s at a used electronics store close to my house. So I think that might potentially be an option for working with those consoles. Especially the Wii, it’s like 5$, and junky Vita’s were $50, which brings down the price of admission. But the more I see of the Vita UI, the less I like it. So buying some super cheap wii’s to play around with might be an option.

Though in this post I was specifically thinking about playing around with old Thinkpads. And the reason for that is that I’ve been using one of the original Zenbooks from several years ago, and I simply hasn’t had any reason to upgrade. The screen is a 13.3″ full hd matte IPS screen (with really bad screen bleed), 4GB ddr3 ram, 128GB SSD, and nothing is upgrade-able. So spec-wise there’s nothing exciting going on. The problem is that there’s no reason to upgrade, as the most important reason I would upgrade is for a 1440p or 4k screen. And what might come as a surprise is that I actually prefer 1440p as it allows for more stuff to fit on the screen without impacting battery life too much.

Now the problem is that the laptop market doe not seem to want to move passed the fullHD barrier. More and more cheap computers are getting fullHD screens, but as many premium computers are getting high resolution screens. And the ones that do are generally not in the thin-and-light department, or have some other defect (most notably Mac-style arrow keys). Or are otherwise ungodly expensive. Like specifically the three computers that I’ve thought, “yeah, I could go for that”, are the LG Gram, which being around $1,000 and stuck at fullhd resolution seems stupid, a customized Thinkpad Carbon X1 (except those hit $2,000 or more in pricing), and the 12 inch Mac. Which being a Mac has the stupid arrow keys.

And then another thing is that I would like to get an AMD laptop. And all of those seemed to be capped at 1080p, even though if anything they could actually take advantage of the extra pixels. And when microsoft finally came out with the AMD Surface 3, and it had the stupid Mac style keys. I mean at this point there’s barely anything in the laptop department that can’t be covered by the $200 Pinebook Pro. usb-c charging, 1080p screen, thin and light, and then the other specs don’t need to be amazing, mostly reasonable.

So that’s made me think that in terms of laptops, if there’s nothing new or exciting to buy, then I might look at old laptops and see what I can tinker around with. And what I’m really tempted to do is get into the old thinkpad seriers. There’s the X220, X230 and X240, and it’s hard to decide on one. As the X220 and X230 can both be flashed with coreboot, which would be fun to play around with. But then the X240 looks like it can be upgraded with a 1080p IPS screen. So what I would be really tempted to do is get several thinkpads and upgrade and customize them for different reasons.

Like I could get a x220 flash it with coreboot and then use it for reactos. Or get a x230, and then see if I could get macOS working on it (for fun), and then maybe see if it would would with an external GPU through the pcie slot. And then for the x240, while it can’t be flashed with coreboot, I would like to replace the screen with and 1080p IPS display and then put debian and xfce on it and customize xfce to use an IrixOS-like theme. Though then again I’d also like to get the Pinebook Pro to play around with that. One thinkpad would be cheap and fun to play around with, but several devices would probably start to add up to the point where it would be better to save towards something more practical. Which generally comes back to why I haven’t upgraded from Zenbook.

Using OpenGL to Render Images (headless)

So this is something that I was searching for before and found when I wasn’t looking for it (why does that always seem to be a trend). This is an example program that will render a png (a simple triangle) using OpenGL and EGL on the command line without needing X11. Though now that I found it I can’t remember what it was that I wanted to render with OpenGL on the command line. Either way, great find.


DashGL Tutorials Season 2

So now that I”ve finally settled on a new design for Dashgl.com, the next step is to start making tutorials. I’ve been thinking about if I want to continue with GTK or if I want to switch to SDL. And while the original focus of using GTK was to provide more resources for making Linux applications, recently when looking at the options for making applications for different open source platforms, my first thoughts have been “i wonder if SDL will compile for this”. So I think with season two of tutorials, I’ll try switching to SDL as it will run on Linux as well as the GTK applications will, gives me more options for OpenGL versions, and I wasn’t taking advantage of the file menu or widgets anyways.

So as or approach I’ve been thinking that starting with the cube might be the best way to get adjusted. My previous difficulties with SDL was managing the input and the game loop, but I think I’ve found a sample for that, so it’s not as much f a problem as it was before. I think I can use the FreeGlut introduction as a way to get familiar with SDL in a way that doesn’t require any input from the user, as well as providing an avenue to test the matrix library that I was thinking about using before. It also allows me to follow up with OpenGL 1.0 on Brickout and then OpenGL 2.0 for Invaders and Astroids respectively. And then from there I can plan out more tutorials and do other testing.

So the next thing on the agenda is to follow the Freeglut book, make a new blog post for each chapter. And I have prior source to help me out in terms of fitting the pieces together. And then once all of the pieces are in place with the blog, then I can think of what I need to work on in terms of web site structure for the DashGL tutorials. Right now I’m thinking that the best way is to put the files in a static site generator, so that all of the html is a static html file, and nothing needs to run server-side to render the pages in advance once they’ve been generated. I think that gives me the easiest option for making clean looking links.

Console Wish List

I guess continuing with the trend of things I wish I had time to spend on more than my job, the next wish list is for consoles to play around with. I think we’re really fortunate to have a misunderstood generation of consoles prior to the PS4 and Nintendo Switch. It means that we have some really compelling hardware that is effectively now an open platform.


The Ps-Vita is a great little system that I think ultimately suffered from some odd decisions on the part of Sony. I think they were really focused on trying to get into the casual game market that was taking off on phones, and that seems to have influenced a lot of design decisions around the user interface and the touch screen.

I think the idea must have been a hit in the board room, but the simple fact of the matter is that is people can already play casual games on their phones, why would they go out of their way to spend extra money on a dedicated gaming device with analog input. The answer is they won’t, and the extra features added to try to appeal to people who weren’t going to buy the device anyways, were passed on to people who wanted a simple gaming device.

And that led to the spiral of no one is buying the device, so no one wants to develop for the device because no-one is buying the device death spiral. But this isn’t a post mortem, why would I want a Ps-vita at the end of 2019 when Sony is no longer supporting it? And the answer is because Sony is no longer supporting it.

Stupid gimmicks like the touch screen and especially the back touch surface aside, now that the platform is dead and everyone is trading in their Ps-Vita’s, it means there are a ton of used Vitas being sold for cheap. And the fact that Sony is no longer supporting the device means that they won’t be releasing firmware to prevent custom firmware from being installed on the device.

So what specifically would I want to do with the device? It seems like it would be the best way to enjoy Playstation one and Play Station Portable games by grabbing a large format SD card and dumping a large library on there, with the advantage of having the Playstation controller button layout. Also a piece of homebrew that I’m hoping exists is to be able to use the Ps-Vita as a bluetooth controller. Nintendo was nice enough to make their controllers work with the direct input bluetooth standard but not Sony and their bluetooth controllers rarely ever work with anything, much less appear in discover mode.

One last pipe dream for the Vita is there is an SDK available. So it might be fun to try at least trying to get some hello world examples running on the system. And then see if something like SDL would work from there. If the Raspberry Pi had a killer handheld dev kit to work with, then I wouldn’t think about the Vita too much. But I do have the Odroid-Go. So I should probably get that put together and port brickout before i think too much about more hardware.

Vita Tv

The Vita Tv is next on the list but surprisingly for different reasons than the handheld Vita. One thing that I love about Nintendo’s philosophy is that games not specs makes a console. And I think the Gamecube and Wii are really good examples of this. Both of these consoles have pretty low specs but amazing games like Pikmin, Mario Sunshine and Wind Waker.

So I think the Vita TV comes surprisingly close to this philosophy by accident if by anything at all. Having a thin client 5w client with a bluetooth controller that can run post ps2 level handheld games seems like something I would really like. I think the above mentioned commitment to mobile gaming on the back touch pad, and UI ended up being a real detriment to the system, as something that came of as a more dedicated game device might have done better. I might have to see if there is some custom firmware option to change the user interface as the default UI option with the ios-like bubbles just looks stupid.

Wii or WiiU

The last two consoles on my random things I’d like to mess around wish list are the Wii and/or the WiiU. I haven’t seen enough of the WiiU to really know a lot about it. And the WiiU touch screen controller seems to add a lot to the price without really adding functionality that I really want.

I think for a wish list I’d like the option to emulate DS games with the controller and be able to play Gameube games with a Switch bluetooth controller. In general I want a Wii to throw a SD card into it and use it as a Gamecube and Wii library. But if the WiiU has the option to play Gamecube, Wii, DS and WiiU games, then I think I might go for that. Plus it has native HDMI out and better specs, along with games like Breath of the Wild.

So depending on if I can find a WiiU at a decent price, then it seems like it wuld be a fun system to buy and tinker around with to see what can be done with it. But in terms of priority I’d like to pick up a Vita and Vita TV before grabbing a WiiU.

Float Conversion

"readFloatLE" : function(offset, fixed) {

		var uint32 = this.readUInt32LE(offset);

		var negative = uint32 >> 31;
		var exponent = (uint32 >> 23) & 0xFF;
		var mantissa = uint32 & 0x007fffff;

		if(exponent === 0 && mantissa === 0) {
			return negative ? -0 : 0;
		} else if(exponent === 0xff && mantissa === 0) {
			return negative ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
		} else if(exponent === 0xff && mantissa !== 0) {
			return Number.NaN;

		negative = negative ? -1 : 1;
		exponent -= 127;
		exponent = Math.pow(2, exponent);

		var man = 1.0;
		var shift = 0;

		for(let i = 22; i >= 0; i--) {
			if(mantissa & (1 << i)) {
				man += 1 / (1 << shift);

		var float = negative * exponent * man;

		if(fixed) {
			float = float.toFixed(fixed);

		return float;