webp-ify more
|
@ -44,7 +44,7 @@ From poking around on Keychron's website it looked like the simplest route to cu
|
||||||
Firefox doesn't support [webhid](https://caniuse.com/?search=webhid), but Chromium-based browsers do, so I opened up Chromium...
|
Firefox doesn't support [webhid](https://caniuse.com/?search=webhid), but Chromium-based browsers do, so I opened up Chromium...
|
||||||
and what's this? An error? Already? I haven't even *done* anything yet.
|
and what's this? An error? Already? I haven't even *done* anything yet.
|
||||||
|
|
||||||
{{ image(src="/assets/keyboard/keyboard-via-error.png", alt="Screenshot of VIA displaying an error", caption="Extremely useful error message") }}
|
{{ image(src="/assets/keyboard/keyboard-via-error.webp", alt="Screenshot of VIA displaying an error", caption="Extremely useful error message") }}
|
||||||
|
|
||||||
Ooookay?
|
Ooookay?
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ advertising a supposed way to program the lighting using somewhat sketchy-seemin
|
||||||
|
|
||||||
Soo... (not knowing any better), I guess it's Windows VM time!
|
Soo... (not knowing any better), I guess it's Windows VM time!
|
||||||
|
|
||||||
{{ image(src="/assets/keyboard/keyboard-windont.png", alt="Windows installation screen inside of QEMU", caption="Ah shit, here we go again") }}
|
{{ image(src="/assets/keyboard/keyboard-windont.webp", alt="Windows installation screen inside of QEMU", caption="Ah shit, here we go again") }}
|
||||||
|
|
||||||
Maybe it had something to do with the keyboard itself being unsupported, maybe it was the software,
|
Maybe it had something to do with the keyboard itself being unsupported, maybe it was the software,
|
||||||
maybe it was USB device passthrough being weird, but the app always quit with a "no gaming device found" popup and no other useful information.
|
maybe it was USB device passthrough being weird, but the app always quit with a "no gaming device found" popup and no other useful information.
|
||||||
|
|
|
@ -20,7 +20,7 @@ I got as far as a pig in a spotlight before bad design decisions and my inexperi
|
||||||
|
|
||||||
*Maybe in retrospect trying to learn graphics programming and C++ at the same time was not the best idea*...
|
*Maybe in retrospect trying to learn graphics programming and C++ at the same time was not the best idea*...
|
||||||
|
|
||||||
{{ image(src="/assets/6months/pig.png", alt="Minecraft pig model drawn in front of a space-themed skybox", caption="piiiiiiiggggg") }}
|
{{ image(src="/assets/6months/pig.webp", alt="Minecraft pig model drawn in front of a space-themed skybox", caption="piiiiiiiggggg") }}
|
||||||
|
|
||||||
Fast-forward to 8 or so months ago, and I finally thought up a game idea I thought was worth persuing.
|
Fast-forward to 8 or so months ago, and I finally thought up a game idea I thought was worth persuing.
|
||||||
Something I could stay motivated to work on in the longer-term, and hopefully stick with long enough to complete.
|
Something I could stay motivated to work on in the longer-term, and hopefully stick with long enough to complete.
|
||||||
|
@ -41,7 +41,7 @@ When I started, [LWJGL](https://github.com/LWJGL/lwjgl3) didn't have bindings fo
|
||||||
|
|
||||||
The first triangle was fairly straightforward.
|
The first triangle was fairly straightforward.
|
||||||
|
|
||||||
{{ image(src="/assets/6months/triangle.png", alt="A window displaying a rainbow triangle", caption="hello triangle") }}
|
{{ image(src="/assets/6months/triangle.webp", alt="A window displaying a rainbow triangle", caption="hello triangle") }}
|
||||||
|
|
||||||
And I guess it just spiraled out of control from there. Instead of making a game I've been making a game framework.
|
And I guess it just spiraled out of control from there. Instead of making a game I've been making a game framework.
|
||||||
|
|
||||||
|
@ -92,9 +92,9 @@ I am *very* new to graphics programming, all things considered, and trying to im
|
||||||
I did get some cool screenshots before I realized my game wouldn't even benefit from this kind of lighting in the first place.
|
I did get some cool screenshots before I realized my game wouldn't even benefit from this kind of lighting in the first place.
|
||||||
I probably could have figured it out if I'd spent a little more time, but I was getting bored.
|
I probably could have figured it out if I'd spent a little more time, but I was getting bored.
|
||||||
|
|
||||||
{{ image(src="/assets/6months/idk.png", alt="Very broken scene", caption="yeah I don't even know lmao") }}
|
{{ image(src="/assets/6months/idk.webp", alt="Very broken scene", caption="yeah I don't even know lmao") }}
|
||||||
|
|
||||||
{{ image(src="/assets/6months/brokenrc.png", alt="Very broken scene", caption="significantly closer") }}
|
{{ image(src="/assets/6months/brokenrc.webp", alt="Very broken scene", caption="significantly closer") }}
|
||||||
|
|
||||||
{% note() %}
|
{% note() %}
|
||||||
It wasn't helped by the fact that my test scene was almost entirely text and thin debug lines left over from messing with Box2D.
|
It wasn't helped by the fact that my test scene was almost entirely text and thin debug lines left over from messing with Box2D.
|
||||||
|
@ -110,7 +110,7 @@ If I could draw the pig with OpenGL, maybe I could do something similar with wha
|
||||||
|
|
||||||
It went... about as well as could be expected.
|
It went... about as well as could be expected.
|
||||||
|
|
||||||
{{ image(src="/assets/6months/brokenfox.png", alt="A fox with extremely broken textures", caption="biblically accurate fox or something idk") }}
|
{{ image(src="/assets/6months/brokenfox.webp", alt="A fox with extremely broken textures", caption="biblically accurate fox or something idk") }}
|
||||||
|
|
||||||
I did eventually unbreak the fox and get a cubemap skybox mostly working.
|
I did eventually unbreak the fox and get a cubemap skybox mostly working.
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ and some [neat tricks](https://www.saschawillems.de/blog/2016/08/13/vulkan-tutor
|
||||||
I initially tried plugging an opus decoder more or less directly into an `SDL_AudioStream`, but it turns out that was a bad idea.
|
I initially tried plugging an opus decoder more or less directly into an `SDL_AudioStream`, but it turns out that was a bad idea.
|
||||||
So for now, I'm using [miniaudio](https://miniaud.io/).
|
So for now, I'm using [miniaudio](https://miniaud.io/).
|
||||||
|
|
||||||
{{ image(src="/assets/6months/audio.png", alt="debug ui for audio, with volume, pitch, and pan options", caption="little sound ui thing I made with Dear ImGui") }}
|
{{ image(src="/assets/6months/audio.webp", alt="debug ui for audio, with volume, pitch, and pan options", caption="little sound ui thing I made with Dear ImGui") }}
|
||||||
|
|
||||||
It supports basically everything I want to do anyway, like audio streaming, looping, pitch and pan modification, and more.
|
It supports basically everything I want to do anyway, like audio streaming, looping, pitch and pan modification, and more.
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ I was almost tempted to try to use [Dear ImGui](https://github.com/ocornut/imgui
|
||||||
|
|
||||||
I figured drawing [9-slices](https://en.wikipedia.org/wiki/9-slice_scaling) would be a good place to start, using the sprite batch code I'd written earlier.
|
I figured drawing [9-slices](https://en.wikipedia.org/wiki/9-slice_scaling) would be a good place to start, using the sprite batch code I'd written earlier.
|
||||||
|
|
||||||
{{ image(src="/assets/6months/brokenui.png", alt="Extremely broken 9-slice drawing", caption="Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") }}
|
{{ image(src="/assets/6months/brokenui.webp", alt="Extremely broken 9-slice drawing", caption="Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") }}
|
||||||
|
|
||||||
I decided to try to decouple the layout and the functionality a little, keeping the logic in Kotlin and the layout in [HOCON](https://en.wikipedia.org/wiki/JSON#HOCON).
|
I decided to try to decouple the layout and the functionality a little, keeping the logic in Kotlin and the layout in [HOCON](https://en.wikipedia.org/wiki/JSON#HOCON).
|
||||||
|
|
||||||
|
|
|
@ -23,12 +23,12 @@ I'm just going to go with that.
|
||||||
## Wine
|
## Wine
|
||||||
My first thought was "well, will it just work with [Wine](https://winehq.org)?"
|
My first thought was "well, will it just work with [Wine](https://winehq.org)?"
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/wine-installer.png", alt="SolidWorks installer under Wine", caption="So far so good") }}
|
{{ image(src="/assets/solidworks/wine-installer.webp", alt="SolidWorks installer under Wine", caption="So far so good") }}
|
||||||
|
|
||||||
No, [of course not](https://appdb.winehq.org/objectManager.php?sClass=application&iId=318).
|
No, [of course not](https://appdb.winehq.org/objectManager.php?sClass=application&iId=318).
|
||||||
It's never that easy, is it.
|
It's never that easy, is it.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/wine-installer-broken.png", alt="Broken (blank) SolidWorks popup", caption="Should have seen that coming...") }}
|
{{ image(src="/assets/solidworks/wine-installer-broken.webp", alt="Broken (blank) SolidWorks popup", caption="Should have seen that coming...") }}
|
||||||
|
|
||||||
There is [an existing script](https://github.com/cryinkfly/SOLIDWORKS-for-Linux) to get SolidWorks to run under [Wine](https://www.winehq.org/),
|
There is [an existing script](https://github.com/cryinkfly/SOLIDWORKS-for-Linux) to get SolidWorks to run under [Wine](https://www.winehq.org/),
|
||||||
but even after dissecting it and trying various things with [winetricks](https://github.com/Winetricks/winetricks), I never got the installer
|
but even after dissecting it and trying various things with [winetricks](https://github.com/Winetricks/winetricks), I never got the installer
|
||||||
|
@ -47,7 +47,7 @@ At this point I was getting fairly frustrated and decided to spin up a VM instea
|
||||||
## VM
|
## VM
|
||||||
Using [virt-manager](https://github.com/virt-manager/virt-manager) I set up a quick Windows 10 VM, but quickly hit a wall.
|
Using [virt-manager](https://github.com/virt-manager/virt-manager) I set up a quick Windows 10 VM, but quickly hit a wall.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/installer-license.png", alt="SolidWorks license error", caption="Great...") }}
|
{{ image(src="/assets/solidworks/installer-license.webp", alt="SolidWorks license error", caption="Great...") }}
|
||||||
|
|
||||||
I'm not paying for my own license. I only use SolidWorks for school projects, and therefore use my school's license, and,
|
I'm not paying for my own license. I only use SolidWorks for school projects, and therefore use my school's license, and,
|
||||||
well, I'm not exactly interested in spending [around $3000 per year](https://www.solidworks.com/how-to-buy/solidworks-plans-pricing)
|
well, I'm not exactly interested in spending [around $3000 per year](https://www.solidworks.com/how-to-buy/solidworks-plans-pricing)
|
||||||
|
@ -111,19 +111,19 @@ Next you'll need the VirtIO SCSI guest drivers.
|
||||||
[here](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md), which is where I found them.
|
[here](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md), which is where I found them.
|
||||||
Grab the ISO, and add it as a virtual CDROM.
|
Grab the ISO, and add it as a virtual CDROM.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/add-driver-cdrom.png", alt="Adding the virtio driver iso as a CDROM", caption="") }}
|
{{ image(src="/assets/solidworks/add-driver-cdrom.webp", alt="Adding the virtio driver iso as a CDROM", caption="") }}
|
||||||
|
|
||||||
Next, go to **Boot Options** and ensure the SCSI disk and the Windows installer are both selected.
|
Next, go to **Boot Options** and ensure the SCSI disk and the Windows installer are both selected.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/boot-options.png", alt="Both devices selected in virt-manager's boot device order", caption="") }}
|
{{ image(src="/assets/solidworks/boot-options.webp", alt="Both devices selected in virt-manager's boot device order", caption="") }}
|
||||||
|
|
||||||
Now start the VM, and go through the normal Windows install process until it inevitably complains about not finding any drive to install on.
|
Now start the VM, and go through the normal Windows install process until it inevitably complains about not finding any drive to install on.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/windows-no-drives.png", alt="Windows finds no drives to install on", caption="") }}
|
{{ image(src="/assets/solidworks/windows-no-drives.webp", alt="Windows finds no drives to install on", caption="") }}
|
||||||
|
|
||||||
Select "Load driver," and select the appropriate driver for the architecture and Windows version.
|
Select "Load driver," and select the appropriate driver for the architecture and Windows version.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/windows-install-driver.png", alt="Installing the VirtIO SCSI controller driver", caption="") }}
|
{{ image(src="/assets/solidworks/windows-install-driver.webp", alt="Installing the VirtIO SCSI controller driver", caption="") }}
|
||||||
|
|
||||||
Now the device should appear, and you can continue installing Windows as normal.
|
Now the device should appear, and you can continue installing Windows as normal.
|
||||||
|
|
||||||
|
@ -131,13 +131,13 @@ Once it tries to reboot, remove both virtual SATA CDROMs, and boot into the new
|
||||||
|
|
||||||
After that, the installer should just work! SolidWorks no longer thinks it's in a VM, and installs normally!
|
After that, the installer should just work! SolidWorks no longer thinks it's in a VM, and installs normally!
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/victory.png", alt="SolidWorks open in a Windows 10 VM", caption="Finally! It works!!!") }}
|
{{ image(src="/assets/solidworks/victory.webp", alt="SolidWorks open in a Windows 10 VM", caption="Finally! It works!!!") }}
|
||||||
|
|
||||||
## Other Things
|
## Other Things
|
||||||
|
|
||||||
Interestingly, *Windows itself* still knows it's virtualized.
|
Interestingly, *Windows itself* still knows it's virtualized.
|
||||||
|
|
||||||
{{ image(src="/assets/solidworks/task-manager.png", alt="Task Manager showing that Windows is virtualized", caption="Virtual machine: Yes") }}
|
{{ image(src="/assets/solidworks/task-manager.webp", alt="Task Manager showing that Windows is virtualized", caption="Virtual machine: Yes") }}
|
||||||
|
|
||||||
You can fix this by [disabling the "hypervisor" feature](https://forum.level1techs.com/t/hiding-hypervisor-from-vm-guest/132755).
|
You can fix this by [disabling the "hypervisor" feature](https://forum.level1techs.com/t/hiding-hypervisor-from-vm-guest/132755).
|
||||||
```xml
|
```xml
|
||||||
|
|
Before Width: | Height: | Size: 23 KiB |
BIN
static/assets/6months/audio.webp
Normal file
After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 77 KiB |
BIN
static/assets/6months/brokenfox.webp
Normal file
After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 434 KiB |
BIN
static/assets/6months/brokenrc.webp
Normal file
After Width: | Height: | Size: 303 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
static/assets/6months/brokenui.webp
Normal file
After Width: | Height: | Size: 6 KiB |
Before Width: | Height: | Size: 684 KiB |
BIN
static/assets/6months/idk.webp
Normal file
After Width: | Height: | Size: 480 KiB |
Before Width: | Height: | Size: 241 KiB |
BIN
static/assets/6months/pig.webp
Normal file
After Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 170 KiB |
BIN
static/assets/6months/triangle.webp
Normal file
After Width: | Height: | Size: 139 KiB |
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 278 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 378 B After Width: | Height: | Size: 370 B |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 506 B |
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 312 B |
Before Width: | Height: | Size: 52 KiB |
BIN
static/assets/keyboard/keyboard-via-error.webp
Normal file
After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 41 KiB |
BIN
static/assets/keyboard/keyboard-windont.webp
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 68 KiB |
BIN
static/assets/solidworks/add-driver-cdrom.webp
Normal file
After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 18 KiB |
BIN
static/assets/solidworks/boot-options.webp
Normal file
After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 42 KiB |
BIN
static/assets/solidworks/installer-license.webp
Normal file
After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 2.8 KiB |
BIN
static/assets/solidworks/task-manager.webp
Normal file
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 134 KiB |
BIN
static/assets/solidworks/victory.webp
Normal file
After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 30 KiB |
BIN
static/assets/solidworks/windows-install-driver.webp
Normal file
After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 25 KiB |
BIN
static/assets/solidworks/windows-no-drives.webp
Normal file
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.7 KiB |
BIN
static/assets/solidworks/wine-installer-broken.webp
Normal file
After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 101 KiB |
BIN
static/assets/solidworks/wine-installer.webp
Normal file
After Width: | Height: | Size: 87 KiB |