Compiling Jaxer

https://www.1001fonts.com/nasalization-free-font.html
https://www.1001fonts.com/johnny-fever-font.html
https://www.1001fonts.com/hobbyhorse-font.html
https://www.1001fonts.com/leprosy-font.html
https://www.1001fonts.com/moonmonkey-font.html
https://www.1001fonts.com/trunkmill-font.html

Patches:

1. /opt/Jaxer/src/mozilla/xpcom/threads/nsTimerImpl.cpp change ‘private’ to ‘protected’ on line 460
2. /opt/Jaxer/src/mozilla/netwerk/streamconv/converters/nsBinHexDecoder.cpp add ‘signed’ on line 101
3. Replace SCALEBITS in nsJPEGDecoder.cpp with https://raw.githubusercontent.com/mozilla-services/services-central-legacy/master/image/decoders/nsJPEGDecoder.cpp
4.

/opt/Jaxer/src/mozilla/security/manager/ssl/src/nsPKCS11Slot.cpp: In member function ‘virtual nsresult nsPKCS11ModuleDB::GetInternal(nsIPKCS11Module**)’:
../../../../dist/include/nss/secmodt.h:340:71: error: unable to find string literal operator ‘operator""fips’ with ‘const char [131]’, ‘unsigned int’ arguments
 "Flags=internal,critical"fips" slotparams=("#slot"={"SECMOD_SLOT_FLAGS"})"

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50917

5.

/opt/Jaxer/src/mozilla/config/rules.mk:1296: recipe for target 'JaxerManagerUnix.o' failed
make[4]: *** [JaxerManagerUnix.o] Error 1
make[4]: Leaving directory '/opt/Jaxer/src/mozilla/ff-release/aptana/manager'
/opt/Jaxer/src/mozilla/config/rules.mk:635: recipe for target 'libs_tier_app' failed
make[3]: *** [libs_tier_app] Error 2
make[3]: Leaving directory '/opt/Jaxer/src/mozilla/ff-release'
/opt/Jaxer/src/mozilla/config/rules.mk:647: recipe for target 'tier_app' failed
make[2]: *** [tier_app] Error 2
make[2]: Leaving directory '/opt/Jaxer/src/mozilla/ff-release'
/opt/Jaxer/src/mozilla/config/rules.mk:604: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/opt/Jaxer/src/mozilla/ff-release'
client.mk:1140: recipe for target 'build' failed
make: *** [build] Error 2

Data:

Storage Pi 3B Pi 3B+
Silicon Power
class10 UHS-1Link
real 81m1.065s
user 68m50.729s
sys 4m49.798

So this experiment took an unexpected turn. I’ve been wanting to test different types of storage with compiling Jaxer to see what variables either help or hurt the time it takes to compile. Though up until now I’ve only compiled Jaxer on minibian, which is somewhat of an involved process. So when I realized I couldn’t boot minibian from a usb drive, I thought I might as well skip on this stupid idea, or try compiling Jaxer on Raspbian lite for shits and giggles. And it turns out there’s not a lot to patch.

Not only is there not a lot to patch, but compiling on Raspbian means I don’t have to expand the file storage on boot. So I can getrid of that part, and I can potentially include a version of the mysql lib required in the github repo, and maybe even grab apr from the apache2-utils repo, which would mean that I could get the process to compile Jaxer down into a really short shell script, which would make compiling and testing hella easy. So it’s still compiling, hopefully it will be done before I need to go to sleep.

Pi Official Screen

Seems like the official screen is the best option. And since I already have one, technically cheaper than buying anything new.

Right now I have the usb boot bit set to be able to boot from usb.
Need to figure out how to set backight, to make it less bright in general.

Also probably needs a power switch to stay plugged in, and be able to turn on and off.

Probably going to install i3wm, and then use bluetooth devices to connect to it.

Piboy Screen

So after making pages about different hardware projects, it looks like the Piboy Advance is the easiest place so start. I ended up using this driver (https://github.com/juj/fbcp-ili9341), which ended up being a lot easier than I thought it would be. Rather than installing some blob with god-knows-what in it, you clone the code, compile it and then execute the binary. And it only took me a couple of tries with trial and error to get something that worked.

$ cmake -DWAVESHARE35B_ILI9486=ON -DSPI_BUS_CLOCK_DIVISOR=30 -DDISPLAY_ROTATE_180_DEGREES=ON ..

There’s still the matter of tuning the display. Which seems to be kind of hit and miss. The framerate is displayed in the upper lefthand corner. Except the pi needs to be running some kind of task to actually display this number. So Open Tyrian seems like a good candiate for testing. I’ve found several install instructions for Tyrian on the internet, but I’ve never had any luck with it. I decided to poke around in the RetroPi github repository and finally found something that works, mostly by shear stupid luck. Though unfortunately it doesn’t look like my bash history was saved for some reason. So if I come across it later. I’ll have to write a post just for that.

We have a completely different and more fundamental problem that this screen is completely garbage. It’s true that I haven’t done any tuning to make the screen have the right refresh rate. But more fundamentally the backlight bleed on this screen is so bad it’s hard to make out anything. I’m going to try and track down an adafruit screen and see if that makes an improvement.

Edit:

After looking around at screen hats, it seems like it would pretty much be easier to use the official screen. Which I’m not a fan of, because it blocks access to the sd card slot. I think it might be easier to set the usb boot bit, and then use a usb device for booting. That way I can switch out usb’s without having to take the whole thing apart each time.

2018 Q4 “Money is no Obect” Build

Life is always a balance between what’s ideal, practical, and what resources are available. Even is something isn’t fesable, it can still help you figure out what your priorities are, and then think of how to better manage what you have.

Screen: Cintiq 27QHD
Case: DA2
Motherboard: GIGABYTE B450 I AORUS PRO
CPU: AMD CPU Ryzen 5 2600
Memory: Corsair DDR4 16GBx2
Storage: Crucial 1TB Nvme
Graphics: MSI Radeon Vega 56

A few things to note. QHD on the monitor is a must. But getting a 27″ wacom monitor is spending a massive amount of money when the 22″ and 13″ versions are signiticantly cheaper. So it could be an idea to use a QHD, or 4k monitor as a main display, and then a 13″ tablet as a side drawing option.

As for the computer, it’s basically build around the case. The Dan case is a pretty beautiful looking mini-itx case. But then I really don’t like having to shop around for a graphics card and power supply. And with the Gigabyte mother board, it makes a graphics card a lot less necessary with two hdmi out directly on the board with options like the 2400G. Something like the Udoo Bolt would more than cover my use case.

Edit: Though for the sake of argument, I could go with the MSI Motherboard, and that would give me an excuse for having a graphics card.

Tinkering with Hardware

I’m getting really close to when I need to be moving. And the most important part of about moving is (of course), planning out all of my stupid little hardware projects.

So one set back to my fever dreams of making hardware designs is that my tinkering with the Raspberry Pi on the desktop build ruined something and now the Pi won’t boot. So I think I’ll put off the delusions of granduer, for fleshing out these ideas in real life in exchange for drafting them on paper.

The functionality for what I want can be accomplished pretty easily. So I’ll buy the few parts I need, and then focus on software. I’ve made pages for the hardware designs, to keep track of all of the infortmation, parts, and to keep track of similar projects.

One thing that surprised me, is the setup for the PiBoy Advance setup is super simple, only requiring an LCD and an SNES controller, that I don’t think I need to use a Raspberry Pi as a desktop. So I’m still tempted to go for usb everything. But I have the option of continuing to use a notebook. Or I can probably manage to grab some screens and computers from work to set something up.

I think I’m tempted to borrow two monitors from work, and then set up Fedora on my Asus mini-itx. And then set up CentOS on my other mini-itx and then use that as a project hosting computer.

Setting Priorities

I’m in this weird place, where there’s so much to do and it’s hard to figure out exactly where to start from.

Sealos Islands collision hulls was a fun side venture. The later maps get more time consuming. I would like to come back to this, but for now it’s a low priority. There is a lot more focus and need for the first Megaman Legends, and the amount of time put into making something one-off like this might as well be spent towards the first Megaman Legends game.

Dash Interchange Format, the main problem with this is the pointers needed in the archive sections. If I take my time and track the file position on paper, then I think I can get through this. I should try and prioritize finishing this when I get a chance.

Hardware designs are fun, but I think something better will come out by the time I ever get anything viable. I think I’ll stick to buying what parts are available to get as close as possible to the functionality I want. I’ll post the designs (that any idiot could think of) as pages to leave a record. And then I think I can use some kind of board, to screw down the parts, so that the functionality for each of the designs is grouped in someway rather than the parts being all over the place.

It’s been a lot easier finding information for C and SDL after switching to DuckDuckGo for some reason. And I think I’m a lot for familiar with the concepts to be able to start using it now. For tutorials, I want to see if I can make a brickout clone using SDL and OpenGL 1.0. And then port my astroids and invader clones to Opengl 2.0 (which they were intended for). After that I want to make a basic top down, and a basic side scroller (and I mean extremely basic). From there use OpenGL 2.0 for displaying a basic cube. And then OpenGL 3.0 for anything involving a model.

For Megaman Legends 2, I’ll see what I can do to help Xinus track down the ST39 problem. No promises, but I’ll try to budget a week and see what I can come up with. After that I really want to get back into debugging levels to see what I can come up with. And hopefully I’ll be able to ask Trege what he knows on Discord to be able to see if that matches up with what’s in the file.

So basically right now, help Xinus, work on Dash Interchange format and then stages.

Edit : Two more quick notes that don’t deserve their own posts. One is that I feel better about buying an previous generation AMD A-series APU. And the reason being is when I bought it, the AM4 platform was still pretty expensive. And either way it would just be sitting around in my apartment since I don’t have enough room to put a desktop computer. And then also, I need to start thinking about designs for DashGL.com and format.DashGL.com if I’m going to be updating them with new content.

Time to Buy a PSP?

PSP’s are stupid cheap, and it seems like it might be worth picking up a PSP for looking into game formats. Specifically with respect to Rockman Dash, and Phantasy Star Portable. But we’ll see, my budget for picking up new technology is wearing thin at the end of the year.

Likewise though, the PS Vita is now stupidly cheap, as it looks like Sony has done everything they possibly can to kill it. And I have my opinions about the Vita as well (mostly negative), as there are just so many stupid design decisions that were made before the device was even released. It seems like Sony was doing too much to try and appeal to casual cell phone players, who had no need to go out of their way to buy a gamin device. So it would have made a lot more sense for Sony to have simply made a compelling gaming device, at a lower price point, without all of the stupid gimmicks.

Though for the price, the open firmware, and the open source SDK, it seems like it would be a fun device to get my hands on and see what’s it’s capable off. But then again, if I’m spending money on something stupid, I could probably spend the same money on a Raspberry Pi kit on something. So I’ll probably have to give the Vita a pass since it fails in the memory format and proprietary usb cable. So I guess tempting, but not compelling enough to warrant buying.