#EvalynOS
1 messages · Page 10 of 1
@viral bison that CPUID is barely supported it seems
10th gen is too old now
insert "feel old yet?" meme
it also seems to be fully unsupported on amd
nvm
And other hoo rah for intel right @rotund furnace
linux lmao

if I'm not wrong (might be)
598830 hz
uhhhhhh
Because the TSC runs at like GHz
1094400000 hz
That’s like 1ghz
which is 1ghz
I think
which SEEMS accurate
Yeah that sounds right fit that laptop
What does Linux say when it setups
I think it logs TSC calibration
yep
tsc: detected 1094.400 mhz processor
and tsc deadline support
damn
intel does not play around with it's budget laptop chips
So then what the fuck is up with the other laptop

"kfence: initialized - using ... bytes for ... objects at 0x(____ptrval____)-0x(____ptrval____)"
Wha
Looks like it’s censored
I mean by default it does that for all pointers
amd just tells u "lol ACPI"
the acpi table virtual addresses are in dmesg
Aaaaaaaaaaaaaaaa
its also kinda more convenient?
kekw
What’s p0 frequency
whats so funny is that the cpu knows the fucking ratio 💔
This still needs a timer to wait 
it seems to be stored an acpi structure but its basically the nominal frequency on a p0 p state
i might be wrong here

Dosnt Linux just calibrate the TSC
yea lmao
they are
you cannot rely on either of them existing
ig it does first calibrate it with pit
THEN attempts to use hpet to do it again or something
mostly the TSC and APIC timer and ACPI timer
ooo
but they need calibration to work from other times
the ACPI timer does not need calibration and the TSC/APIC may not need calibration either depending on the CPU
And trying to get the TSC frequency was being a little messy
evalyn do I make bad apple for my distro 🔥
Kind of off topic rn but sure
i was waiting for this convo to end but then suddenly sped up bad apple appears xD
Interesting. So I should just be able to grab ACPI timer along with PIC or HPET to be safe?

frankly i would exclusively use the ACPI timer for calibration if i were to make a new OS right now
unless you plan to support ACPI-less x86 machines (you don't)
I mean I that that’s pre x86-64 anyways? So I should be fine
kinda cooked when you need the apic timer before you have aml parsing in userspace working 🙃
ehh i think you dont rly need to do anything when making bad apple for ur distro
well that sounds like a not-my-issue lol
i don't think you need AML parsing for the ACPI timer though?
do you?
You only need table parsing
I have no idea
Right?
It should be a table
ig thats why u would just get some preliminary calibration
also i dont think u need timing for it
u just parse the tables
yeah doesn't seem like it
it will exist on literally every x86-64 machine afaik
I could do a fallback if ACPI to HPET to PIT to your fucked lol
the hardware/firmware people love this one simple trick to save a tiny bit of money 🔥
the software people can go and fuck themselves
i mean, sure, if you want to be 100% safe, but i don't think i know of an x86-64 machine without an ACPI timer, meanwhile i know of and own machines without the PIT and where the HPET is unreliably present (it may be disabled in the BIOS and sometimes it is so by default)
I mean my current system lets me chain them really easy
So it’s no biggie
If one fails it attempts the next and replaces function pointers for relavent services
like i am not saying there is a reason why it is bad to have the fallbacks - fallbacks are never bad, beyond the fact that it could be annoying to maintain
Have you ever found one without an IOAPIC btw?
nope
I just won’t maintain it beyond compiling if I don’t notice it 
troll
"yeah the timers can automatically fall back if one isn't supported"
"oh neat do those timers work"
"idfk"
i mean thankfully hardware doesn't really change, if anything
bet 🔥
but it's mit :(
Il give you a special exception as a friend that I won’t break your legs
sick
What is your licence?
3bsd
That’s compatible
it is?????
Just like include the licence in a comment on the header
🔥
Else this will happen
Stewie and brian where's my money? Fight scene shower
#wheresmymoney #thatswhathappens #familyguy
In Australia and want some branded Uniforms & T Shirts?
https://zevoglobal.com/
@marble ridge thanks for telling me about the ACPI timer. That should make it bullet proof I think in terms of timing devices along with PIT APIC HPET and TSC
np!
NEVER
add acpi timer to the list of shit to procrastinate on
😔
as well as usermode server discovery and dropping uacpi in kernel mode (no hard feelings just pretty overkill for just table parsing)
That will be part of my timer suite
And the ACPI parsing
like its really slow
veeeery bad precision
and like ig every other one has some advantage over it in some way or another 💀
oh fair 
But the effort 😭
.name = "PIT, its just setting there for nostalgic reasons" 
Wdym?
o well i thought i can abstract timers through some common interface here
so i describe them with structures and then the backing clock source and so on
not sure if thats actually a good idea anyway but i was joking about some name field describing pit which would have that string 
since
in ur case u are keeping it for the effort it took u to get it up and stuff xP
I do
Function pointers

Whenever a timer or abstracted device is setup
It replaces the function pointers for it
I could do a struct
But I just have them plainly there
Because it’s the same shit
i thought id like
have the functions for setting, changing modes, reading current value, eoi and so on as function pointer for each struct
and i store irq line, divisor, freq, and whether its active as members
but then never implemented a lot of that and got distracted away to do memory management stuff 
but i thought it'd be cool to abstract them like that
tho its just not necessary since one mostly wont end up using most of them anyway
so like it solves no problem
while ur approach is just having global pointers and set them to what u will be using
which kinda makes more sense ig
:P
yea makes sense
that is from WSL tho
idk if WSL is causing issues
Store the members inside the driver file
And then have functions to read or write them
Then change function pointers
i still have no driver layer yet
well i basically have nothing yet in that regard 
just pmm/vmm and some other scattered pieces atp lolz
I don’t either 
It’s just exported in the header file
And a varrible
Ezpz
If I get dynamic loading I may freshen it up a bit though
With some tips from others
Legacy APIC driver complete
Also why does this laptop have two IOAPICs

Why does this cheap ass shit ass laptop have TWO

What could it even be using them all for
@rotund furnace @hollow crater
cool

um is that even possible 💀
That’s what my ACPI parsing says 💀
And my desktop also has two
also have u made bad apple play with a sane framerate yet 
Which is unusual I guess because it’s also cheap and not a server
Always have been
That was just a fuckup with the timer calibration
yea thats weird..
sad I cant try shit now cuz im
supposedly
studying for an exam tmrw 
wooooooooo

well thats cool
im sure my shitty thing would break under 2 out of these 3 machines

Though it does have RGB so I guess they slapped an extra one on there for good measure?
My kernel is pretty stable tbh
Just hollow with a few things
well if thats for the PC then does the same reasoning apply to the laptop.. 💀
still cool to watch it running on multiple machines
satisfying xP
This laptop came with 4gb ddr3
💀
No RGB
720p screen
Entirely made of plastic
Also came with a hard drive
My grandma gave it 16gb ram and an ssd though in 2015 🙏
then how 😭 😭
lmao well now im wondering how is it even alive 
The CMOS battery is dead
But it’s my childhood laptop
And I took good care of it
I played so much heavily modded Minecraft on that shit 🙏
😭 😭
well sure it does appreciate that care
u shall get pardoned at the 2067 agi genocide against humans 
I treat all my computers and devices with respect
And they respect me
@hollow crater when taking the USB stick out of the laptop I pushed it down and the thing froze for a second 💀
But like this is not a bad condition for a laptop from 2015 tbh
The battery was removed because it died
And I can’t find replacements online

damn that's in like 5th grade now 💀
other newer devices were thrown away just bc they dont support win 11 🥀
shit runs evalynOS wdym unsupported device 
My goal is to support every x86-64 computer ever
And any other 64bit platforms later
Also
I’m cooking up some ideas for a micro kernel

Once I get IPC and other stuff working in this one
I may build a microkernel off of the EvalynOS kernel
I’m gonna call it pwease
With

As the logo
Because it’s a micro kernel
based (good luck with that kekw)
tbh I wanna have a riscv64 pory if I ever had a solid x86-64 one
but an aarch64 seems tough
at elast thats how it thought of it
:O
we can compete on who has the most mid microkernel
Im doing monolithic yet I name it lil kernel 
now that u r saying it ig it couldve been much cooler if I went microkernel just for the name 
I’m gonna try and have dynamic memory allocation in userspace
Same for scheduling
I would have a fixed set of slots for core ųKernel threads
For core services
So like the file server would call up the memory server for some memory
@rotund furnace This is where my
Commit is at right now
-# :3
struct window 🔥
idk why, but still
struct window {
short xres;
short yres;
char layer; // when to get rendered
unsigned char *buf;
}
prolly not guud
you know you don't have to add EVERYTHING in one commit
A lot of this shit is interconnected and as I was going I was reworking all the systems
I start on one thing and I do many

some hp laptops do for some reason, and linux will confirm it
Yeah that is an HP laptop
Another HP laptop only has one
Though the one with two is AMD
My desktop also has AMD
and all the legacy crap still works and gets all fallen back to
(tested by disabling ACPI parsing)
@hollow crater this also has the missing IOAPIC message 
i also handle legacy PIC EOIs by just sending them whenever a legacy device IRQ is ran
regardless because the lesser speed isnt a biggie
what am I testing
what timers should come up?
and a photo of the init text
it auto picks based on your system
and it #pfed on boot
wha
i was having issues with ISOs not updating right
leme try this
@rotund furnace even the fuckin checkups diddnt match 💀
yes
it crashed on strncmp
cool kpanic btw
what CR2 does it fault on
ty
same with new iso?
I tracked the stack trace
no
testing it now
read from non present
with lines up
same
gimme IP
kpanic on boot
this code should be fine?
whats where i strncmp
firmware giving bad data?
send a photo
rip -> ffffffff80007880
ffffffff80005eb3
ffffffff80005e2d
ffffffff8000e0ef
ffffffff800012f4
ffffffff80001828
ffffffff80001025
ffffffff800062c6```
that's the whole trace
cr2 = rdi = 0xffff800075063000
still fadt parsing
seems the firmware is giving bad data?
no
damn
it is parsing the madt too
could you put them on codeberg
even on a branch
or as a patch set
cuz I'm happy to debug this rn
I aint got shit else to do
il make a patch whilst i cleanup some shit
ty
do you have other PCs to test?
nope
other then my macbook
I don't have a monitor or powercable for my ewaste pc yet
sadly
prolly add some print statments to the this thing
see what it gives
again I'm happy to do so
ye
sync dev to master is the latest right?
😭
what even kind of fucking filter even nammed this?
what
git diff --staged > huh.patch
so I have bad news
uh
it's crashing instantly
on like
the first acpi_find_sdt
in qemu?
nope
no i do check for that too
leme find my USB
why tf do i use it as a fidget toy
btw what happens if you manualy craft a USB @rotund furnace
with the old method

Yeah @rotund furnace The ISO works fine
The firmware is just shit it seems
@rotund furnace I wonder what UACPI does differently for table parsing?
why are you assuming the xsdt's pointers are aligned
@rotund furnace What happens if you skip the table parsing?
they aren't
Wait what?
they are at byte 36 they can't be aligned
Where
it very much is fine here
And if that was bad QEMU would fuck up
i do not check the checksums tho
well I found ya problem
the first entry is at 75063000 but limine only marks 75049000-7504a000 and 7504b000-7505a000 as acpi tables
the next entry is at 75068000
sadly I cannot debug further as I must slumber
Rare limine bug?
I assume ųACPI maps it its self
Not sure
I could probably change it to check the length of tables and map them its self?
ų ≠ μ
Idk
My phone didn’t have the right symbol 😭
I mean no that would work
But like it feels like an issue if limine isn’t detecting it right?
Guaranteed
I guess the protocol was violated
unless this is bad
And me
It’s a firmware or some other fuckup
Limine does have some more recent commits about ACPI it seems?
why are you mapping the memory regardless of its type
you do not want to map acpi tables as RW
also, have you tried booting any other os with limine on that?
It is @rotund furnace S laptop
Thier kernel boots but uses uacpi for tables
Which I assume traverses memory differently
Eg mapping the tables its self vs just using it like this
With HHDM
that's only meant to access static tables
I am only touching static tables
I don’t do any AML
Just FADT HPET and whatever the one is for APICs
And it works on every other device
is this an old device
Being my 5700x desktop a steamdeck a laptop with a 12gen i5 and a pre zen amd APU laptop
what's the full memory map?
I think water fell asleep. I have a MMAP command in my kernel “shell” that can print it if they disable the ACPI parsing or just pull up another kernel that can provide the limine one
cute lil beggar :>
kernel shell? 
lol glad u backed down from the super mean one 
Can you take a picture and show me the crash log?
No picture no crash
Shut up 😭 . I can make a userspace one in a day or less but I have way bigger structural fish to fry
mb I fell asleep but it only crashes on real hw so it's gonna be annoying as fuck to copy
give me like
a bit
Comment out the ACPI line
Run MMAP
Take a photo
Il copy it for you
I have nothing better to do rn
lemme try the limine test kernel rq
cuz I wonder
oh
it doesn't really parse shit
It would atleast print out the memory map right
figured out the problem
you're code is cooked
also the limine memory map on this system is cursed as fuck
but that shouldn't be an issue
some how this causes it to miss the page
Damn
How cursed we talking
Why does it align up 
it prints so much 😭
Shouldn’t it be align down for the base?
RESERVED
ACPI_TABLES
RESERVED
ACPI_TABLES
RESERVED
ACPI_TABLES
RESERVED
ACPI_TABLES
RESERVED
ACPI_TABLES
RESERVED
ACPI_TABLES
RESERVED
ACPI_TABLES
[... repeat ALOT...]
Does that file have an align down macro
🥀
That’s fucking corded
Cursed
here is what I do
ngl i blame the firmware here
" I have a firm belief that most firmware developers are not actually humans, but are instead caged rodents fed a solid diet of crack cocaine. Because that would explain a lot."
whatever the fuck that shit is crazy
whats your align down macro?
should just be masking the 0xFFF bits nvm
that iso
it is being properly made now tho
@rotund furnace that memorymap is still so cursed as fuck
leme test sold older limine versions
version 10.0.0 fully locked up?
1.3.0 boots
leme make an iso with it
wait idk if that works for that
huh
I always use sync
okay
so I just wrote your os
plug in the drive
JUST KIDDING
it booted mine
what the fuck
i wonder if limine should condence shit like this
depending on how large they are
how the fuck do I build this myself
it has pros and cons at the very least
cuz I gotta test something
fornat usb as fat32
mark as esp/boot
unzip it on there
so it looks like this
HUH????
wuh
use gparted
make new parition table
gpt
its formated as a single iso458oo3u8o parition or whatever
its easy af
istg
linux keeps fucking being stupid with usb drives
every fucking time
[reboot]
when i get USB il make sure it works well 🙏
i also plan a hypervisor at some point
With IOMMU support of I can help it
So even if my kernel is fucking shit you can atleast game on it with GPU passthrough VMs
What
💀
Your firmware may just be shit
what the fuck
doesn't happen on windows btw
and now dd works
sometimes
linux just stops syncing to usb sticks
IT'S ALIVE
did u have an updated kernel in place waiting for reboot o_O
nope
weird
lemme make a patch rq
I gotta disable the idisplay and capture card it via hdmi
What other changes did you make
no
lemme remove my debugging shit and I'll send a patch
Is it a patch over my patch?
yes
Record a video of the MMAP
I wana see how cursed the memory map is

i lwk just kinda ported my vmm init code
and it worked
BRO
WHY IS THE SCREEN
SO DAMN GLOSSY
ts pmo
hold on

I wonder if I can get a minimal sub set of it going
For just the bug
Otherwise it may be better for me to commit
And then for you to make a PR with the improvements
Zamm
okay
How is doom
do not run doom and badapple at the same
Wdym
I had both doom
and badapple
running at the same time
on top of eachother
but yeah doom did work
ugh
I wana see that cursed shit in all its glory
how many go off?
qemu memory map for reference
that are uninteresting
lenovo sucks at firmware
let's just shove all acpi tables
1 page apart
BUT
also kinda nice
this one has proper printing
Still just make it normal memory 
It’s reclaimable anyways
Just gave it be zeroed memory but not show it in that fuck ass map
no point
it's all gonna be acpi tables anyway
yeah
oh well
That way if somthing goes wrong you get null pointers
Instead of whatever the fuck that shit is
if mint wants to do what all os devs eventually have to do
which is clean up after the firmware guys
then sure
i mean this isnt too bad to clean up after to merge repeated sections like that
also i was refering to the firmware devs
not mint

what
of like 4 bytes
😭
it goes
START, LEN OF TABLE
START + LEN OF TABLE, SOME ADDRESS ABOVE - SOME VALUE
SOME ADDRESS ABOVE - SOME VALUE BUT PAGE ALIGNED, LEN OF TABLE
the lenovo firmware devs doing lines before writing code istg
Maybe if memory map regions were garunteed to be page aligned on limine?
Just to stop that fucking shit
nope
Wdym?
because what if two memory map regions cross a page boundary
Have a mixed type
shit would break so quick
And then for that type there is a pointer to get the sub types

Sorry I’m thinking like a Lenovo firmware dev
Yeah yeah
That way for HHDM you can just go broadly
But if you need to be precise you have the sub mappings
And you don’t have stupid page issues
And you have less messes of that in the main memory map
Or have it be an option on the request for page aligned?
That way you can ask for it if it dosnt matter much
And give priorities to certain types
who knows bro
Nobody
that's for smarter people to decide
Certainly not the people who made this though
, hold on
is this a "500 quadrillion bytes off" error again 😭
try this ISO
also in QEMU??
fuck kinda dlags are you using
i dont even use QEMU with the iso
only -m 4G
i think 4GB RAM should be perfectly fine
qemu with iso works fine for me
vbox's .deb files dont install coz something is missing, too old or too new :/
qemu-system-x86_64 \
-machine q35,accel=kvm,smm=on \
-cpu host,+x2apic,+invtsc \
-m 512M \
-cdrom ./evalynOS.iso \
-boot d \
-audiodev pa,id=speaker -machine pcspk-audiodev=speaker \
-serial stdio
use that
perplexing
it works for me
🤦♂️
holy shit backspace is so close to enter 😭
WHAT?
it works for me
OJKHASWFHJKLO AFHNJLK AFSKHJ
do you have ovmf on?
yeah
qemu-system-x86_64 \
-machine q35,accel=kvm,smm=on \
-cpu host,+x2apic,+invtsc \
-m 512M \
-drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE.4m.fd \
-drive if=pflash,format=raw,readonly=on,file=./OVMF_VARS.4m.fd \
-cdrom ./evalynOS.iso \
-boot d \
-audiodev pa,id=speaker -machine pcspk-audiodev=speaker \
-serial stdio
yeah i diddnt before

oh lmao
so no shit theres no ACPI when there is no firmware
seabios my guy?
🤷♀️
yk
I have no idea where the acpi tables are on a real pc
or in qemu
are they in the bios rom?
I assume so
ig seabios yeah
in that case it's qemu's job
uacpi info RSDP 0x00000000000F6500 00000014 v00 (BOCHS )
maybe its a qemu thing?
qemu-system-x86_64 \
-machine q35,accel=kvm,smm=on \
-cpu host,+x2apic,+invtsc \
-m 512M \
-cdrom ./evalynOS.iso \
-boot d \
-audiodev pa,id=speaker -machine pcspk-audiodev=speaker \
-serial stdio
try this with my iso?
yeah im dumb
isnt like every x86-64 computer acpi2 anyways
the spec came out before x86-64
no extra work tbh
true
just some fucking extra if elses
but like
Advanced Configuration and Power Interface Specification Version 2.0 – Published Jul. 27, 2000 (1.5 MB)

CMON
@rotund furnace if sombody finds a machine thats x86-64. with only acpi 1.0. in real life
i will bake them a fucking pie
and ship it to them
and il fix it myself
else talk cheap send patches
how the fuck did you even boot non uefi
I removed the OVMF lines
Everyone has ACPI 2.0+ dipshit, it came free with your fucking x86-64 computer.
I didn't get it, I have the oldest x86-64 known to man.
yeah but removing them makes the cdrom not boot
tcg:
./src/build-scripts/get-deps
./src/build-scripts/apply-patches.sh
make clean
./src/build-scripts/generate-all.sh
make all -j${nproc}
./src/build-scripts/undo-patches.sh
cp ./bin-x86_64/kernel.elf ./src/generated/iso/kernel.elf
./src/build-scripts/generate-iso.sh
qemu-system-x86_64 \
-machine q35,accel=tcg \
-m 512M \
-drive format=raw,file=fat:rw:./src/generated/iso \
-boot d \
-audiodev pa,id=speaker -machine pcspk-audiodev=speaker \
-serial stdio```
So it can do the BIOS pass on the iso
Your not including the CDrom

This
That method turns a folder into a virtual partition
Which is fancy

Thank you kindly
I'm putting open source contributor on my cv now
If you need my phone number I can be your reference
sick
did you people figure out the issue?
prolly less than a calorie is wasted when you say "hello world"
so i guess talk is very cheap
yeah
they were mapping the hhdm wrong by ALIGN_UP the base and ALIGN_DOWN the size, instead of ALIGN_DOWN the base, ALIGN_UP the size
,
The memory map was fucking cursed though
well that's "intended" behaviour
that firmware must be storing ACPI tables in a reserved entry, so when Limine converts it to ACPI tables entry, it splits it up like that, if the tables aren't contiguous
Oh no that’s fair. Just a lil cursed so no wonder it broke a few things.
Sorry for wasting your time
no worries lol
i mean technically-correct-but-cursed edge cases are good for sorting bugs out
I wonder if there is a better way to handle that in the bootloader to make it look less like that.
But yeah they are really good for that
there are options
the main issue is that the firmware decided to store ACPI tables data in a reserved region
most modern UEFI firmware will store those in an ACPI reclaimable region
where then this does not happen as the bootloader won't need to convert any types
What is a reserved region? I assumed it was invalid region
doesn't have to be I assume
it depends, it can literally be anything
there is LIMINE_MEMMAP_BAD_MEMORY
which I assume is for "invalid" memory
(nothing is gonna stop you from reading/writing to it tho)
from the kernel's perspective one might as well treat reserved and bad memory the same
that being the same as memory holes not covered by any entry altogether
yeah
but not always
often mmio is not covered by any entries at all
So basically it’s just old firmware jank there isn’t a clean way to work arround
and mmio is mapped itself
So basically what happened is there is a large reserved region the firmware has. But also puts the ACPI tables there
I wonder if overlapping memory map regions could help?
Limine kind of avoids creating overlapping regions at all, they are only passed if the firmware itself creates them, and only sometimes
another solution would be to pad out ACPI tables regions to 4k for base and length and then hope that the regions will coalesce
another option is to use base revision 3 with doesn't have this problem at all but then you need to map ACPI tables yourself :p
Are ACPI table memory mappings made by firmware or limine its self
ACPI table entries are a base revision 4 meme
made by Limine if the firmware doesn't already cover the tables in the other 2 ACPI regions
Wouldn’t it make more sense for them to still be HHDMd but their memory entitled to be part of the RDSP request and allow them to overlap with the other part potentially but have them be page aligned!
idk i'll think about a solution, if anything, and let you know
feel free to ping me with ideas if you get any
Based as always
Will do. There is probably a clean solution somewhere. Maybe an opt in to overlapping regions for certain things or some other? Or having ACPI table regions being a special case of overlapping and having them always page aligned
add a :3 emoji
pls i need this
wait
how the fuck does limine map the rsdt entries in the hhdm
does it also ident map
i only understood "limine" 😭

wdym how
@mild glacier this ISO should work
@rotund furnace Still seems to be working on deck
Although the first attempt it almost gave me a seizure because the OLED panel freaked the fuck out
😭
It did not happen after that
I think it’s a thing the steamdeck can just kinda do 🥀
With like slightly buggy OS stuff even on Linux
If it happens again il try and take a video
what are the commands 🙏
help no work ;-;
maybe read the documentation
and in this world there is no help
bad apple is BADAPPLE and doom is DOOM
the BADAPPLE extra low tones literally hurt my ears
noted: stacking 3x BADAPPLE causes a page fault 
I am aware of this lmao
It’s because it renders off the frame buffer
Which is?
yea...
bum 💥
@rotund furnace Shit I need to commit soon
I think the code is all good clean and ready tho right?
Also @mild glacier if you get a bigger monitor three will work just fine as on this laptop
what res?
The iso will default you to 720p

There is a reason it does that
Because I use 1080p monitors
And I don’t want my QEMU taking up the entire screen
So it defaults to 720p
ohh ok got it
looks good to merge right @rotund furnace
i think im going to do a beta1-rc1 release once i redo the PMM Heap and VMM stuff and get a user shell without janky systemcalls
may not be a CoW though]
it may or may not have the disk drivers though
that may come on beta2
and rc1 will be removed depending on bugs found
timers are all up and pushed
ISO for this commit
May publish this as a release on my git server but it’s not worth it
Plus I have nitro so I can abuse discord as a file server

better idea i can just archive them on my file server
https://files.evalyngoemer.com/share/evalynOS Builds/
dosnt make sense to have them on git since its not "nightlys" but just archives
how do you make the sound tho
i neeed to take notes
wdym
how does EvalynOS create audio
the beeps and boops of Bad Apple
it is.
And you can see how the things gets called
The source code is really simple and self documenting for the most part
not booing tho 🔥
You are making a mistake 🔥
What command are you using
Wait miss read
uhh im lost in the /src directory 😭
nvm
nvm im actually still lost, this time in /src/kernel/drivers 
❌
well uhh you have pcskpr.h and pcspkr.c
Yes
skeaper
Those are the functions use to drive the pc speakers
but uh reread that .h one
🤷

