Kernel Updates

Topics related to the API, programming discussions & questions, coding tips, bugs, etc. should go here.
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Kernel Updates

Post by uze6666 »

I've started this topic to discuss requests and updates to the kernel. Today I committed a few things:
  • Merged Jubatian's Video Mode 80 from his repo. This is a 80x25 text mode with high resolution and low flash usage.
  • Added a kernel library to handle the Uzebox keyboard
  • Added kernel functions to read the fuses, for the UART, whisper port support for CUzebox
  • Minor fix for PetitFatFS
Still refactoring all the wifi network code I have done in a Uzenet library. I'll share it here before committing in order to get you guys input. I'd be curious to know If anyone else did some work on that too.
User avatar
danboid
Posts: 1937
Joined: Sun Jun 14, 2020 12:14 am

Re: Kernel Updates

Post by danboid »

Good to see mode 80 getting upsteamed, especially with the arrival or more computery type software.

It seems you still haven't added the updated UzeSynth code that allows it to work via UART? Of course, that wasn't as useful as I had hoped because we don't have RAM patches yet and it seems that didn't make it into your most recent updates.

I had a go with UzeAmp a few days ago but it failed to recognize my < 2 GB (I think I tried 1 GB) FAT16 partition. It would be cool to see the FAT code updated in Uzeamp to overcome its current limitations with SD cards. That's probably something I could attempt to fix.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Kernel Updates

Post by D3thAdd3r »

Thanks Alec!

Keyboard integration you say? I will check this out!

I don't have anything to contribute for Uzenet on the kernel side. I did notice some time back your demos had the general Expect approach like "send this, wait for this or time out", which pretty much the best to do communication with the ESP8266. On general purpose implementations the simple non-predictive "lockstep padstate + adjustable lag frames" like emulators use is about the only general purpose solution I know about. Maybe that could cleanly tie with joypad code? Curious to see your developments.

I noticed maybe again, Paul McPhee's games are only available in Google Code archive. Could these be added to the kernel demos for safe keeping?
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: Kernel Updates

Post by uze6666 »

I noticed maybe again, Paul McPhee's games are only available in Google Code archive. Could these be added to the kernel demos for safe keeping?
They are still on Gcode? Wow, would really be a shame to lose those amazing games sources. So I migrated them yesterday and they were committed in Github. Took longer than I expected due to some bitrot , but nothing I couldn't solve. So now we have the sources to :
  • B.C. Dash
  • DonkeyKong
  • Frogger
  • PacMan
  • SpaceInvaders
They compile just fine with no warnings on my rather old GCC 8.1.0 on Windows. Could anyone on Linux and a more recent version of GCC give it a spin to see if it has any issues? Thanks!

Thinking of it now, I could proabably also add other games like UCC contest winners that don't have GitHub repos.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Kernel Updates

Post by Artcfox »

uze6666 wrote: Tue Feb 28, 2023 4:59 pm They compile just fine with no warnings on my rather old GCC 8.1.0 on Windows. Could anyone on Linux and a more recent version of GCC give it a spin to see if it has any issues? Thanks!

Thinking of it now, I could proabably also add other games like UCC contest winners that don't have GitHub repos.
I submitted a pull-request to fix the latest master.

I really wish there was an easy way for you to test your changes against a case-sensitive filesystem. It seems that Microsoft does allow you to set that attribute on a per-directory basis, but it's not recursive, so you'd have to set it on each subdirectory of your uzebox directory (and remember to set it whenever you create a new directory): https://www.windowscentral.com/how-enab ... windows-10
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: Kernel Updates

Post by uze6666 »

I submitted a pull-request to fix the latest master.

I really wish there was an easy way for you to test your changes against a case-sensitive filesystem. It seems that Microsoft does allow you to set that attribute on a per-directory basis, but it's not recursive, so you'd have to set it on each subdirectory of your uzebox directory (and remember to set it whenever you create a new directory): https://www.windowscentral.com/how-enab ... windows-10
Thanks, I've merged your PR. WIll do my best to remember this tool for my next commit. :)
User avatar
danboid
Posts: 1937
Joined: Sun Jun 14, 2020 12:14 am

Re: Kernel Updates

Post by danboid »

Re the case sensitive file system thing. If Uze is running Windows 10 or 11, it might be easiest for him to install WSL2. On Windows 10, you just open a command prompt and run:

Code: Select all

wsl –install
This will install Ubuntu in a VM using ext4, which is case sensitive by default like all Linux file systems.

If he wants to avoid Linux VMs then maybe he could utilise WinBTRFS:

https://github.com/maharmstone/btrfs

I've set winBTRFS up for my dad so that that he can access his Linux drive under Windows. It includes mkbtrfs.exe which would allow Uze to format a partition as btrfs then trying to build the repo from that partition should reveal any case sensitivity problems.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Kernel Updates

Post by Artcfox »

uze6666 wrote: Tue Feb 28, 2023 6:54 pm Thanks, I've merged your PR. WIll do my best to remember this tool for my next commit. :)
Awesome!

According to this article: https://learn.microsoft.com/en-us/windo ... ensitivity it looks like if you set this property on an empty directory, directories created inside will inherit that property, so you might be able to create a new directory, say "C:\case_sensitive" set that property, and run git clone inside that to have a case-sensitive uzebox repository on Windows. Though at some point it might just become easier to test against a real Linux system running in a virtual machine in order to catch additional things like mixed line endings, or using Windows-only path separators in Makefiles. :lol:
User avatar
danboid
Posts: 1937
Joined: Sun Jun 14, 2020 12:14 am

Re: Kernel Updates

Post by danboid »

Or he could just use the famed Artcfox remote build n' fix service, which seems to have been working quite well until now?

I've gotta say the Linux VM options seem much better than messing with directories and file systems to me.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Kernel Updates

Post by D3thAdd3r »

uze6666 wrote: Tue Feb 28, 2023 4:59 pm Took longer than I expected due to some bitrot , but nothing I couldn't solve. So now we have the sources to :
B.C. Dash
DonkeyKong
Frogger
PacMan
SpaceInvaders
They compile just fine with no warnings...
Great preservation work, thanks you saved me some anxiety here :)

Your call on other games in the kernel. Personally I'd like to see UCC entries. I just went on a random Holey Moley longplay a couple days ago, and of course I had to check the source out again.

If you are planning on adding UCC or others, that is a lot of work to go through but I'm sure dispersed across the forum it would be less.
Post Reply