#Astral

1 messages Ā· Page 30 of 1

grand shadow
#

How would a controller with two joysticks work? Does it differentiate?

#

Or is it a different device

robust geyser
#

probably two different devices

#

or maybe there's something you can do that i don't know of

fleet osprey
#

nah it's the same evdev device, I've messsed with this

#

I don't recall how they differ in the reporting

#

but as in you open the same /dev/input/eventX to get events for everything relating to that logical device

#

all joysticks, buttons, analog triggers, etc

grand shadow
#

And how does it distinguish between joysticks?

fleet osprey
#

damn yall gonna make me actually check

#

hang on šŸ„€

#
Testing ... (interrupt to exit)
Event: time 1772632522.737772, type 3 (EV_ABS), code 3 (ABS_RX), value 167
Event: time 1772632522.737772, -------------- SYN_REPORT ------------
Event: time 1772632522.749928, type 3 (EV_ABS), code 3 (ABS_RX), value 237
Event: time 1772632522.749928, -------------- SYN_REPORT ------------
Event: time 1772632523.038773, type 3 (EV_ABS), code 3 (ABS_RX), value 213
Event: time 1772632523.038773, -------------- SYN_REPORT ------------
Event: time 1772632523.050368, type 3 (EV_ABS), code 3 (ABS_RX), value 128
Event: time 1772632523.050368, -------------- SYN_REPORT ------------
Event: time 1772632524.506777, type 3 (EV_ABS), code 0 (ABS_X), value 133
Event: time 1772632524.506777, -------------- SYN_REPORT ------------
Event: time 1772632524.518359, type 3 (EV_ABS), code 0 (ABS_X), value 231
Event: time 1772632524.518359, -------------- SYN_REPORT ------------
Event: time 1772632524.539778, type 3 (EV_ABS), code 0 (ABS_X), value 232
Event: time 1772632524.539778, -------------- SYN_REPORT ------------
Event: time 1772632524.551720, type 3 (EV_ABS), code 0 (ABS_X), value 233
Event: time 1772632524.551720, -------------- SYN_REPORT ------------
Event: time 1772632524.561811, type 3 (EV_ABS), code 0 (ABS_X), value 234
Event: time 1772632524.561811, -------------- SYN_REPORT ------------
Event: time 1772632524.572847, type 3 (EV_ABS), code 0 (ABS_X), value 235
Event: time 1772632524.572847, -------------- SYN_REPORT ------------
Event: time 1772632524.806778, type 3 (EV_ABS), code 0 (ABS_X), value 137
Event: time 1772632524.806778, -------------- SYN_REPORT ------------
Event: time 1772632524.818787, type 3 (EV_ABS), code 0 (ABS_X), value 132
Event: time 1772632524.818787, -------------- SYN_REPORT ------------
Event: time 1772632524.829844, type 3 (EV_ABS), code 0 (ABS_X), value 131
Event: time 1772632524.829844, -------------- SYN_REPORT ------------
Event: time 1772632524.851990, type 3 (EV_ABS), code 0 (ABS_X), value 130
Event: time 1772632524.851990, -------------- SYN_REPORT ------------
^C
#

moving right joystick vs moving left joystick

#

looks like the code changes

robust geyser
#

so yeah, ABS_X vs ABS_RX

grand shadow
#

I see

#

Ty

fleet osprey
#

np

marsh sparrow
#

the usb hid usage spec tells you how all of this works

obsidian pivot
#

guys when operating systems become legally required to do age verification we are all moving to astral right

#

or mammagarm

viscid flame
pure thunder
#

managram

obsidian pivot
#

sure

#

this would be funnier if I sent your id

#

but I dont have it

#

can u send it for funnies so I can send it in response to that

#

ill delete these messages

proper meteor
#

mammography

obsidian pivot
#

mammogram

mild sentinel
marsh sparrow
#

No astral for you

#

get parental approval to install

mild sentinel
#

I’m 17

#

Wait wait let me get my id

#

I think I can get one

#

I haven’t been able to update my legal documented yet

grand shadow
flint condor
scenic epoch
#

its mammogarm not mammogram trl

#

Managerms assertos

bronze nexus
#

manganarm

mild sentinel
#

(The logo tinted yellow)

bronze nexus
#

lmao what

mild sentinel
#

Wait let me see if I can find it

mild sentinel
#

Lmfao

grand shadow
#

Apparently Im gonna have to implement age verification in astral by the 17th because of a brazilian law

#

ā˜ ļø

#

And you cant self declare you have to send me an id according to the law

#

šŸ’€ šŸ’€

bronze nexus
#

Just don't support Brazil trl

grand shadow
#

I have no idea how they even expect this to wprk

#

Do I have to send my id every time I spin a vm?

#

Iirc they want verification to happen every time the device is started

mild sentinel
#

If anyone asks just say the AI messed up

mild sentinel
grand shadow
#

By their definition of operating system uefi is an operating system

#

Will firmware start asking for id?

#

A router firmware would be an operating system

#

Will I have to give my id when I buy a router?

#

When I power on the router?

mild sentinel
#

This shit is so bad

#

Is it even enforceable tbh

#

Like esp to hobby systems

obsidian pivot
#

dystopian reality

#

switch to obos guys

fleet osprey
#

yall really expected legislators to be competent at understanding technology? kekw

grand shadow
#

This law is just straight up unenforceable

fleet osprey
#

they see "operating system" as Windows, iOS, and maybe macOS

mild sentinel
#

Nothing should need an ID unless it’s in person and they need to verify my age and it’s just the other person there checking it

fleet osprey
#

Linux is "that guy is hacking throw him in jail", and hobby OSes don't exist

mild sentinel
#

No automated systems should be grabbing this crap especially random companies not related to governance agencies

prime mulch
#

50 different jurisdictions across the planet

#

simultaneously introducing "operating systems must enforce age verification" laws

grand shadow
#

my conspiracy theory is that microsoft and apple are behind this somehow to try to curb open operating systems

fleet osprey
#

Microsoft has embraced Linux (using it for some infra), they've extended it (WSL), now they're extinguishing it

mild sentinel
mild sentinel
neon crane
# mild sentinel The fuck how many

various US states, the UK, Australia, France, Spain, and more are all on record for trying to introduce age verification for something

neon crane
fierce forge
neon crane
#

that's exactly what i was saying lol

spare sky
#

It has been in the works for years

#

Just that nobody wants to be first

#

Now that it's become a trend, everyone wants to jump on the bandwagon

#

To implement the new hip policy and show how well-prepared they are for the internet age

fierce forge
#

but it's weird, considering that stuff like gdpr was passed 10 years ago, and now it feels like they're reversing the course and everyone is just basically doing mass surveillance

prime geyser
upper dragon
grand shadow
upper dragon
#

Ouch! Sad times when you'll have to give your id to your ps5, your printer, your router, your washing machine, etc. at each startup

proper meteor
# prime mulch 50 different jurisdictions across the planet

No need for conspiracy, it's just a kind of Brussels effect
https://en.wikipedia.org/wiki/Brussels_effect

The Brussels effect is the process of European Union (EU) regulations spreading well beyond the EU's borders. Through the Brussels effect, regulated entities, especially corporations, end up complying with EU laws even outside the EU for a variety of reasons. The effect is named after the city of Brussels, the de facto capital of the European Un...

proper meteor
proper meteor
hearty fulcrum
#

how long until someone goes to those lawmakers and tells them that that's not how operating systems work

neon crane
hearty fulcrum
#

until they aren't

neon crane
#

by that time it'll be too late

fierce forge
proper meteor
#

but like, maybe I'll add a "Not for use in Brazil nor California" or something

fierce forge
#

Because how are you enforcing that on non-corporations backed Linux distros

carmine swallow
#

I wouldn't put any extra notices tbh given that its obviously a law that you shouldn't follow

fleet grove
# fierce forge Don't open source licenses have that baked in? Like that the author is not respo...

yes actually
nearly every open-source license notes how there is no warrenty to the software and that all authors of the software hold no liability for any damage that the software causes

here's the MIT License's version of that text:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

marsh sparrow
#

such clauses only protect against civil lawsuits though

#

you can't just put instruction on how to build a chemical weapon onto a github repo and then say: no liability btw

#

I think the more interesting question in this regard is: what is an operation system and which operating systems are affected?

#

ig one would have to look into the exact wording of the law

marsh sparrow
#

that's not gonna fly, you'll still be prosecuted for not taking the appropriate safety measures

grand shadow
#

VII – sistema operacional: software de sistema que controla as funƧƵes bĆ”sicas de um hardware ou software e permite que aplicaƧƵes de internet, programas de computador, aplicativos ou outros softwares sejam executados por meio dele;

System software that controls the basic functions of hardware or software and allows for internet applications, computer programs, applications or other software to be executed using it

#

You could argue by this definition that firmware is an operating system and must implement age verification

mild sentinel
#

You could argue even CPU microcode to some extent

marsh sparrow
#

california words it like this:

This bill, beginning January 1, 2027, would require, among other things related to age verification with respect to software applications, an operating system provider, as defined, to provide an accessible interface at account setup that requires an account holder, as defined, to indicate the birth date, age, or both, of the user of that device for the purpose of providing a signal regarding the user’s age bracket to applications available in a covered application store and to provide a developer, as defined, who has requested a signal with respect to a particular user with a digital signal via a reasonably consistent real-time application programming interface regarding whether a user is in any of several age brackets, as prescribed. The bill would require a developer to request a signal with respect to a particular user from an operating system provider or a covered application store when the application is downloaded and launched.

#

I'm not a lawyer but it seems that the intent here is to provide age verification for built in app stores

#

so you may be fine if you have none

#

It also talks specifically about "account setup"

#

so if you don't have any account setup, this probably doesn't apply to you

#

(e) (1) ā€œCovered application storeā€ means a publicly available internet website, software application, online service, or platform that distributes and facilitates the download of applications from third-party developers to users of a computer, a mobile device, or any other general purpose computing that can access a covered application store or can download an application.

#

also:

(1) Provide an accessible interface at account setup that requires an account holder to indicate the birth date, age, or both, of the user of that device for the purpose of providing a signal regarding the user’s age bracket to applications available in a covered application store.

#

it does not mandate verification of the user's input afaict

hearty fulcrum
marsh sparrow
#

(2) (A) A developer that receives a signal pursuant to this title shall be deemed to have actual knowledge of the age range of the user to whom that signal pertains across all platforms of the application and points of access of the application even if the developer willfully disregards the signal.
(B) A developer shall not willfully disregard internal clear and convincing information otherwise available to the developer that indicates that a user’s age is different than the age bracket data indicated by a signal provided by an operating system provider or a covered application store.
^ so basically if the OS says: this user is 13 and steams sells it a 18+ game, Steam will be liable

#

that's the intention here afaict

marsh sparrow
hearty fulcrum
#

nice

marsh sparrow
#

also:

(a) (1) ā€œAccount holderā€ means an individual who is at least 18 years of age or a parent or legal guardian of a user who is under 18 years of age in the state.

#

so for everybody below 18, their parent needs to fill in the age form meme

#

that's clearly very realistic and will never be bypassed in some way meme

hearty fulcrum
#

tbh this is not as bad as I thought

#

probably another giant nothingburger

marsh sparrow
#

It's certainly a trend in a bad direction

hearty fulcrum
#

indeed

scenic epoch
fleet grove
#

i miss it when i could use my computer and feel like i had control over the software

scenic epoch
fleet grove
fleet grove
#

yeah x3

flint condor
#

I don't even have accounts

#

I am just not going to comply. I don't live in one of the affected places, I'm not in thier jurisdiction, and I have no business presence for my os for them to levy a fine against.

grand shadow
#

time to add ANOTHER gcc build to the world build

marsh sparrow
#

why?

grand shadow
#

that won't be needed actuaklly

#

skull

hearty fulcrum
grand shadow
#

nah

fleet osprey
#

bro's secretly been hiding some new architecture port of Astral this entire time and is planning to cross compile it from Astral x86_64 trl

fleet osprey
#

would be super based chad

opal lotus
#

wouldn't work with the current codebase

fleet osprey
#

yeah ik he's mentioned this before

#

hence the 'trl'

worthy mica
#

Would be super cool

grand shadow
#

Dri was a mistake, gpu drivers shouldve been kept centralized on xorg-server

#

But nooo for egl you need dri because fuck you

#

Hoping that I dont have to TOUCH /dev/dri for software rendering

upper dragon
#

egl = epic games launcher? it works on unreal engine, so the requirement is probably for all unreal games I guess

#

(for everyone wandering why the egl feels so slow, that's because it uses unreal engine locked to 30fps, hence why animations seems laggy)

wild marsh
#

what

viscid flame
upper dragon
#

oh ok, sorry for being dumb harold

deft oak
#

im pretty sure i had egl without dri

#

btw i had to implement mincore for egl to work

grand shadow
#

It forced me to switch between xlib to dri to enable it

#

And now In trying to just get hw accel to work since its not working

#

Nor hw accel

#

šŸ’€

#

Just sw opengl

grand shadow
#

starts foaming at the mouth

#

evil hacks were needed for me to avoid a /dev/dri

grand shadow
#

but trolling shall resume

opal lotus
#

what did you do

gritty shore
grand shadow
# opal lotus why

I forced dri2 to use mesa surfaceless and forced it to initialize configs because surfaceless doesn't return values it likes

grand shadow
gritty shore
#

can you port something i made real quick i wanna see how good performance is

#

mhm it may be annoying tho as the build system uses meson

grand shadow
#

I have meson ported

gritty shore
#

nvm its a makefile

#

ok ok sec

grand shadow
#

trolling shall resume after I take a small break and upstream the mesa fuckery

gritty shore
#

ok try this

#

I wanna see how the gears demo runs specifically

#

it should be easily portable, you can probably build it from within astral itself

grand shadow
#

trolled

robust geyser
#

lmfao

gritty shore
#

do you not have it

grand shadow
#

fix ur incldues bro

gritty shore
#

huh

#

idk works on my machine ā„¢

#

this is the non portable part though (the sdl setup)

robust geyser
#

yeah i wonder why

sharp carbon
#

missing feature test macros perhaps?

robust geyser
#

gettimeofday is depredated btw

sharp carbon
#

mlibc is more strict with that than glibc

gritty shore
#

ah maybe

gritty shore
robust geyser
#

clock_gettime

gritty shore
#

the actual code is extremely portable

robust geyser
#

APPLICATION USAGE
Applications should use the clock_gettime() function instead of the obsolescent gettimeofday() function.

gritty shore
#

you only need floats

grand shadow
robust geyser
#

makes sense, it got deprecated in posix-2024

#

the function is entirely gone from the spec

gritty shore
#

bruh

#

actually i think i know why I use it

#

i based myself off the actual gears code

#

which uses it

grand shadow
#

astral now has libdrm upstream

opal lotus
#

are you implementing drm now

grand shadow
grand shadow
opal lotus
#

why not

viscid flame
grand shadow
opal lotus
#

lol

#

can relate

grand shadow
#

I went through probably more effort to not do drm at all than to just implement something like vgem but I digress ā˜ ļø

opal lotus
#

you dont need gem šŸ’€

deft oak
#

why would you need libdrm without drm

grand shadow
#

Trolling

deft oak
#

i love trolling

grand shadow
#

🤫

#

those who know šŸ’€

opal lotus
#

inb4 oom

robust geyser
#

those whose noes

opal lotus
#

wait does it just work without issues?

grand shadow
#

nah it deadlocked

#

but this aint no normal stk

#

you'll see

opal lotus
#

huuuh

#

oh lmao so it has the same issue as managarm

#

inb4 this is an mlibc quirk

hearty fulcrum
opal lotus
#

cc @prime juniper

grand shadow
opal lotus
#

remember the SDL meme

deft oak
#

those who dont know

opal lotus
#

i had to comment out something in stk to free SDL resources

#

if you don't comment it out it deadlocks

gritty shore
grand shadow
gritty shore
#

why

#

the gettimeofday thing?

grand shadow
#

that and probably other stuff

hearty fulcrum
#

"s/gettimeofday/clock_gettime" trl

gritty shore
#

yeah literally

#

or just define the mlibc thing

opal lotus
#

@grand shadow lib/irrlicht/source/Irrlicht/CIrrDeviceSDL.cpp

#

comment out this line

#

i need to do some debugging on why it deadlocks

grand shadow
#

I don't have the source bro

opal lotus
#

blud

#

are you doing linux compat or what

grand shadow
hearty fulcrum
#

:P

opal lotus
#

are you deadass

robust geyser
#

surely mathew wouldn't do a 180 like that

analog berry
grand shadow
#

I do not like doing that

opal lotus
#

so why dont oyu have the source

#

did someone else compile it

opal lotus
#

(considering)

analog berry
#

Are you for real

#

Stand by your values

deft oak
#

freebsd binary compat troll2

robust geyser
#

i still need to write my kernel

analog berry
opal lotus
sharp carbon
opal lotus
#

yeah

sharp carbon
#

a rewrite is pretty much the least productive thing you can do

robust geyser
#

or so we're being told...

opal lotus
#

im probably going to not do a microkernel

#

im being skill issued and i'm not having fun

analog berry
#

Marvin after realizing you only need 15k loc for kde

opal lotus
#

yeah frrrrr

analog berry
#

If you do a mono kernel

opal lotus
#

lol

hearty fulcrum
opal lotus
#

well it's not like zinnia has any posix yet šŸ’€

#

so it's not even a rewrite, just adding posix code to the kernel instead 😭

analog berry
#

@grand shadow so how are u doing it without source if not Linux compat

opal lotus
#

inb4 someone gave bro a build farm

analog berry
#

Inb4 astral becomes an LFS project

prime juniper
grand shadow
grand shadow
#

@opal lotus where did I get the source code of this bro

opal lotus
#

wtf

#

wait no

grand shadow
#

(I got wine to finally work with opengl etc)

opal lotus
#

is this wine

#

holy

obsidian pivot
grand shadow
mild sentinel
#

Yoooooooooo amazing

#

Honestly it may be possible to get full 30fps soon

deft oak
#

awesome

fleet grove
grand shadow
#

@prime juniper I have pushed working wine to astral repos if u want to try it on managarm later

marsh sparrow
#

Did it require any mlibc fixes?

#

Very nice

grand shadow
#

Only needed to update wine, enable mingw and opengl, and do some astral related stuff to mesa

#

Might write a blog poest about this

prime juniper
#

Noted. Thanks!

marsh sparrow
#

Very nice

#

It's indeed weird that both astral and Managarm run into STK hangs

#

Fwiw marvin patched out an sdl function to make it work

#

So digging into that function with printf debugging might help to find the hang

#

It's probably not that difficult since we already know which function hangs

grand shadow
#

The stk thing was on wine so might not be the same issue

marsh sparrow
#

ah

grand shadow
#

I still have some more wine work to do

#

I want to run cogmind

#

But thats a 32 bit binary

marsh sparrow
#

iirc you need to implement the LDT for 32 bit windows

grand shadow
#

I think I already know how I am going to implement the ldt stuff I just need to look at the wine source and see wtf to do

marsh sparrow
#

is there anything beyond the ldt that is needed?

#

ah, so the new compiler was for 32 bit mlibc?

#

:^)

grand shadow
#

it was originally going to be for mingw which is needed for full wine but then I realized I could just take it from the debian repos

#

I don't think you need 32 bit mlibc for 32 bit wine, I think it does some crazy ldt shit

marsh sparrow
#

don't you need 32 bit libs on linux to run 32 bit windows games?

grand shadow
#

not anymore I think

#

iirc they were working on some wow64 stuff to not need that anymore

#

New WoW64". which runs Wine as a 64-bit Linux application in a 64-bit prefix. 32-bit Windows applications are supported via thunking to 64-bit Wine code. This is most similar to WoW64 on Windows.

#

yup

#

so I think I just need the ldt hooks and to let it do its magic

grand shadow
#

fastfetch is upstream

analog berry
#

damn u even fixed the memory counters

grand shadow
#

yeah it takes it from sysinfo() now

#

still no procfs

#

astral uses a pretty tiny amount of memory

#

I remember testing linux with dwm on my old desktop and it taking liek what, 300 mb

#

fvwm is bigger than that

obsidian pivot
#

when minecraft legacy console edition port???

grand shadow
#

talk is cheapo

fleet osprey
#

also when Astral aarch64 port, I have machines to test it on trl

#

trust, very normal aarch64 machines with no quirks trl

obsidian pivot
#

u would just need to build it

mild sentinel
#

Oh math did you need me to do any more testing?

#

I am home now with the laptop that has the AHCI drive idgaf about etc

#

Sadly the laptop has no network card that would work

grand shadow
#

do u not have lspci there

#

what are those realtek cards

#

oh I see

#

8136

#

yeah that aint happening

#

šŸ’€

mild sentinel
mild sentinel
# mild sentinel

Mom can we have lspci?
No we have lspci at home.
Lspci at home;

#

I may have yanked out the ram while using it when it was open šŸ’€

fleet osprey
mild sentinel
#

It did not work well

#

Sadly

grand shadow
#

just torturing the poor machine

#

šŸ’€

mild sentinel
grand shadow
#

girl when the machine uprising happens I don't want to be u

mild sentinel
#

Hey I also did a deep surgery on this just to replace the CMOS battery

#

I could of thrown it out

#

If it still works it deserves a life

#

Not like I do it daily lol

fleet osprey
#

indeed

#

Astral could probably run glxgears at 700FPS software rendering trl

gritty shore
#

how much did it cost

#

like

#

10k$ meme

bronze nexus
#

don't those go up to like 15k even

fleet osprey
#

$800 actually

gritty shore
#

huh what

bronze nexus
fleet osprey
#

no clue why it was selling for so low

bronze nexus
fleet osprey
#

but I got it trl

bronze nexus
#

TS probably porch pirate'd

fleet osprey
#

the seller looked legit

#

I've had it for several months and nobody's showed up at more door so troll_shrug

bronze nexus
#

$800 is far to good to be true for this not to be stolen

fleet osprey
#

even came with AppleCare for Enterprise until 2027

gritty shore
#

yeah probably stolen or you got extremely lucky

bronze nexus
grand shadow
#

ok finally got wine to build with wow64 and it hits the "no ldt support on this platform" print

bronze nexus
#

Does Wine need an LDT? lol why

#

Like what does it want to do with that

robust geyser
#

because it needs to set up a descriptor for the fs segment

sharp carbon
robust geyser
#

that is also true

neon crane
#

it's more legal

#

it's my reverse engineered and enhanced "MCPE"

hardy vine
#

run hi3rd lol

hardy vine
#

tbh the final goal of my kernel is basically beable to run hi3rd

#

then i can finally call it elysiaos

grand shadow
#

@robust geyser once I get 32 bit wine working I will git clone your fork and we will work on ts together to get this done already

#

I really want to have astral running o nthat machine already

robust geyser
#

real

grand shadow
#

damn I thought I wouldn't have to mess with any descriptor tables after finishing the astral idt/gdt stuff but here I am

#

anyways I think I have a general idea of how I am going to do it?

opal lotus
#

which part of wine needs ldt?

#

can you run windows apps without it?

neon crane
#

Surely you can

grand shadow
#

per process ldt, initially unallocated -> allocate ldt on first arch_ctl(SET_LDT_ENTRY) call -> validate ldt bits to see if the user process is not trying to do anything spooky -> load ldt -> ipi other cpus running same process to load it too and reload segment registers if nescessary

grand shadow
#

you can run 64-bit windows apps without it

neon crane
#

Like why do you need to mess with fking LDTs

grand shadow
#

but its a nescessity for 32 bit windows apps

#

unless you have a 32 bit userspace which then go wild

#

I do not want to do multilib in astral soooo

grand shadow
neon crane
#

cant you just load 32-bit cs/ds/es/fs/gs/ss and be done

#

to run 32 bit code in 64 bit long mode

grand shadow
#

its cleaner this way and everyone else does it with an ldt so there is probably some other reason

neon crane
#

who is this "everyone else"

grand shadow
#

linux/x86 macos?

neon crane
#

again

#

cant you just use 32 bit segment registers and run 32 bit code

#

why do you need an LDT

#

i thought we basically left those behind when moving to 32- and later 64-bit

grand shadow
#

there must be some other reason for it, plus wine seems to expect an ldt when doing wow64 stuff anyways

#

it explicitly complains if you don't implement ldt stuff

hearty fulcrum
#

what if you just say that you implement it memedown

#

what breaks then

grand shadow
#

oh I know why it needs an ldt

#

16-bit windows applications

hearty fulcrum
#

šŸ’€

grand shadow
#

sooo I probably want to do that for completeness sake

#

I don't think anyone is gonna run yeti ski free on astral but worth

carmine swallow
#

I wonder how does running 16-bit stuff even work

mild sentinel
mild sentinel
sharp carbon
flint condor
#

were we only taking about 32 bit, x86?

grand shadow
#

wine can run 16 bit windows apps

#

even on a 64 bit host

scenic epoch
#

bsaed

flint condor
#

can it? windows 64 bit can't, I tried to run simtower a few years ago and just got an error that 16 bit programs are unsupported

grand shadow
#

Wine is a compatibility layer to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Wine is free and open-source software and is predominantly written using black-box testing reverse engineering, to avoid copyright issues.
Wine is primarily developed for Linux, macOS and FreeBSD. ...

flint condor
#

in the end I used PCEm

carmine swallow
sharp carbon
#

if you disasm 32-bit code in 16-bit mode, each use of a 32-bit register will instead be disassembled as a 16-bit one and vice versa

#

so safe to say it isn't compatible

#

but the default address/operand size is just a bit in the code segment descriptor

#

if you set the bit, it's 32 bit by default, otherwise it's 16 bit

carmine swallow
#

ah yeah, idk why I was thinking that you would only be able to use a 32-bit code segment in compatibility mode

#

in fact I have even done that myself when doing a direct switch from real mode to 64-bit

grand shadow
#

🫩

#

ts is annoying

#

I have to either make sure that the descriptors are still valid during a context switch

#

and to do that I either make the fs/gs load failable

#

and catch the gpf

#

or I never let userspace unset a descriptor

#

which also sounds stupid

#

thats a problem for tomorrow me

opal lotus
#

šŸ˜®ā€šŸ’Ø

grand shadow
#

I think I might just make it a separate asm "try_load function" that on failure will just zero the segment

marsh sparrow
#

ah if a thread concurrently clears them?

grand shadow
marsh sparrow
#

Sounds pretty annoying tbh

#

What's even the expectation

#

Ig w/o kernel entries, it'd just keep the hidden portion of the selector

#

But the kernel can't provide that level of transparency (?)

grand shadow
#

I have my fs/gs be null everytime in the kernel/64-bit userspace, so I really dont clear/set fs/gs during a context switch

#

That allows me to manually set that elsewhere, which makes life simpler

#

I guess if fs/gs = 0 then I set the fsbase/gsbase regs but if its nonzero I do a try-move

#

And fallback to 0

#

In case #gpf

marsh sparrow
#

Do fsbase/gsbase matter in compatibility mode?

grand shadow
#

Not really, mostly speaking about a context switch

#

In compatibility mode it takes those bases from the gdt/ldt entry

carmine swallow
#

actually yeah that makes sense as for why it needs the ldt, it needs to be able to set the fs base

fierce forge
#

I mean yes, but gsbase works the same

grand shadow
#

Started writing down on paper the api to the new page cache, really want to get this done

#

Wine takes a long time to create a wineroot from how abysmal my io performance is

#

I want to change that.

#

Plus support clustered pagein (page tables)

#

Because I take a lot of unescessary faults

grand shadow
#

Just remembered there is an hda driver + oss implementation that worksish deep in fork hell

grand shadow
willow rapids
#

reversi

grand shadow
#

"windows 3.1 SMP" - me

scenic epoch
#

if someone decompiles NT 3.1 and makes it boot under limine then that would be funny trl

neon crane
scenic epoch
#

is it legal to decompile it

#

i doubt

#

but itll still be cool to do it

#

maybe make it run on x86-64

gritty shore
scenic epoch
#

o

gritty shore
#

I myself am working on a 3.1 decomp

scenic epoch
#

fair enough

scenic epoch
#

or which

grand shadow
neon crane
neon crane
#

Microsoft is also kinda known for its litigiousness

scenic epoch
neon crane
scenic epoch
sage locust
#

that's cool af

gritty shore
gritty shore
fleet osprey
#

(I am also not a lawyer)

gritty shore
#

The goal is a Ke decomp

sage locust
neon crane
#

there's not a high level language to decomp

gritty shore
#

I have done both

#

It can run standalone loaded by ntldr or patch the real ntoskrnl with jumps to my code

grand shadow
#

I've gotta continue the ldt struggle

#

I think I have most of the code done I just have to hook up the segment loads

mild sentinel
#

LDT INIT... OK

gleaming bay
#

šŸ„€

mild sentinel
fierce forge
#

How does ldt even work on compat mode?

grand shadow
#

fork has apparently been leaking memory on oom this whole time

grand shadow
#

wine has a bunch of blocks of assembly code in its x86_64-signal code

#

šŸ’€

#

annoying asf but what can you do

analog berry
#

is that bad?

grand shadow
#

and there are ifdefs in these blocks of inline assembly code for different platforms

analog berry
#

lol

grand shadow
# analog berry is that bad?

its just annoying to have to read mostly uncommented and unformatted assembly but they probably had a good reason for it

analog berry
#

abi compat wins yet again trl

grand shadow
analog berry
grand shadow
fleet osprey
#

surely there's no way that that's a hot enough path that this could be for performance reasons

grand shadow
#

Its probably for setting up machine state going into windows

neon crane
#

why dont they just call a function which calls the syscall

#

thats dumb

mild sentinel
#

No but seriously šŸ’€

#

What were they thinking

#

I am like atp genuinely curious

neon crane
#

Same

grand shadow
#

Sometime I need to work on more qol stuff like process statistics

hearty fulcrum
#

sometime I need to work on stuff

#

I need to make a proper device subsystem

mild sentinel
#

i may have found the perfect astral testing device & for osdev in general next time you need me to test

#

i could test things rn if needed

#

it has an RTL8169 nic

#

thats in its own IOMMU grouo

#

and PS/2 keyboard and mouse

#

so it should be able to run full astral?

grand shadow
#

Yooo

mild sentinel
#

It was only 250 bucks too from eBay

#

A thinkpad A485

#

It’s not too slow either

#

It’s an AMD 2500U

grand shadow
#

Thatd be cool, I dont think Ive tried on an amd cpu for a while

mild sentinel
#

My desktop is an AMD CPU

#

So it works fine iirc after you fixed the memory corruption

deft oak
# mild sentinel

why does it have an usb controller, 2 serial controllers and whatever ipmi is

mild sentinel
#

It’s a business laptop

#

And idk why it has EHCI 😭

#

The rest of the ports are XHCI

grand shadow
#

I really want to implement a squashfs + overlayfs combo for astral at some point

#

So much to do and so little time to do it

#

After I get 32 bit windows applications working I really should take a step back and work on my todo list and make things better

marsh sparrow
#

squashfs seems pretty pointless tbh

grand shadow
#

What other format would you recommend?

#

Tar seems bad to parse for huge filesystems

robust geyser
#

tar.xz

grand shadow
#

Well ideally it should be something I dont have to unpack into memory or traverse the whole file looking for piss.bin

robust geyser
#

hm i see

grand shadow
#

I do want to eventually do the livecd type of stuff so I cant just unpack an initrd forever into memory with 593738373 gb

mild sentinel
#

i was planning to unload the tar file into a tmpfs then reclaim it

grand shadow
mild sentinel
#

ahh heh

grand shadow
#

Plus I do want to experiment at some point with letting someone control a smallish root of astral thru ssh or whatever and have it not have permanent data be usex

#

Used

hearty fulcrum
grand shadow
#

And a readonly fs + overlayfs over a tmpfs seems good enough

grand shadow
#

Or do u mean chroot

hearty fulcrum
#

no

grand shadow
#

Then no

viscid flame
spare sky
viscid flame
mild sentinel
viscid flame
mild sentinel
mild sentinel
spare sky
mild sentinel
#

šŸ‘€

#

I was shilling for astral earlier and the person replied

analog berry
#

lmao

grand shadow
#

Unless they were using an ancient iso from 2022

#

Ask them what it was crashing on and what iso/commit/whatever and what vm etc

#

Inb4 bochs or smth

mild sentinel
#

They possibly were using an old one so I mentioned that lmao

#

I asked them for a discord too so we can talk better than YouTube comments

mild sentinel
marsh sparrow
grand shadow
mild sentinel
grand shadow
mild sentinel
#

do they still hate my account for when i would leave slughtly mean comments on shorts telling kids to not be on youtube at a young age and other various crao

#

that was yearsss ago

#

ended up having to put this :/

wild marsh
grand shadow
viscid flame
mild sentinel
#

wait that person is here lmfao?

viscid flame
#

y

stone narwhal
#

what happened

mild sentinel
#

i was the person talking to you on youtube comments lmfao

stone narwhal
#

yes, i see the username

#

i actually arm interested in running astral OS eyv entually and making a video on it

#

i just ciouldnt get it working for some reason before

grand shadow
#

What issues were you running into? Which iso were you using?

stone narwhal
mild sentinel
#

see this

#

youtube keeps removing my comments XD

#

even on things ive posted

stone narwhal
grand shadow
#

Do u have a screenshot of the issue so I can debug it later

stone narwhal
#

i delete footage taht ia havent used

#

this was maybe a month ago or more

mild sentinel
#

i think that was beore i tested it?

stone narwhal
#

yeah i dont have the footage

#

but the issue i was getting

#

i dont remember ecxarcxtly what it said

mild sentinel
#

wana boot up a VM and try again?

stone narwhal
#

but it had cpu 1: at the front or something, it especially happened often when i tried to install packages

#

it would just take down the VM and freeze

grand shadow
#

Hmmm that sounds bad

mild sentinel
#

what VM did you use

stone narwhal
mild sentinel
#

please tell me it wasnt bouchs

stone narwhal
grand shadow
#

Pronably qemu

stone narwhal
#

as suggested

mild sentinel
#

ahh yeah KVM + QEMU should be fine?

#

or TCG etc

stone narwhal
#

yeah that s what i tried, with the sulppliied flags on the site and stuff

grand shadow
#

Is it the same commandline as recommended? I will take a look at it once I get the time

#

Alright

stone narwhal
#

buyt i also just tried running it normally

#

it wouyld happen somewhat unpredictably, but most often when id try to install packages

#

sometimes just randomly

#

really not sure why though

grand shadow
#

How many cpus did you give it? Just 2?

stone narwhal
#

i jsut used the default parameters in the command on astral-os.org

#

though keep in mind i was running it from the ISO instead of properly installing it on a new disk image or whatever

#

i did use the secondary file (root.img) as another disk as it shows to do

grand shadow
#

Alright

stone narwhal
#

is that known to' cause issues?

grand shadow
#

Never hit into that so probably good to look into it

mild sentinel
#

you wana try using a new ISO rn? if you got time

#

let me also try it

stone narwhal
stone narwhal
#

and if i try again i'd rather record it rather than just running it on its own

#

so maybe in the next few days ill try again and report back

mild sentinel
opal lotus
#

i have some servers with it

#

remote control meme

#

i can also load ISOs via the webui

#

makes osdev on real hw very fun

mild sentinel
#

@grand shadow

grand shadow
#

Uhhhh can u mount the image and take an addr2line

#

Actually wait

#

I think the viritoblock driver thats pushed is nonworking

#

šŸ’€

#

I can look at this at home

#

I was in the process of converting it to do scatter gather

mild sentinel
#

😭

gritty shore
opal lotus
#

basically server remote control

#

you can control fans, temps, remote console, virtual media

gritty shore
#

Ah that's cool

#

Useful for server stuff

opal lotus
mild sentinel
#

you can also get IP KVMSs etc

opal lotus
#

yeah but that's boring

#

built-in šŸ”„

mild sentinel
#

i want a server with IPMI at some point

opal lotus
#

they're not that expensive

mild sentinel
#

truee

opal lotus
#

my server cost me 900€ + whatever ram costs

mild sentinel
mild sentinel
opal lotus
#

512gb ddr4

gleaming bay
#

oh abs

opal lotus
#

i got it for free :3

gleaming bay
#

insane

mild sentinel
#

sombody is gonna rob you if you keep talking about that ram

opal lotus
#

try me

blazing atlas
#

how is uhhh

#

astral goin

grand shadow
#

its going fine, slowly working towards getting 32-bit wine applications working

mild sentinel
#

Are 16bit ones after that?

#

I want to play chips challenge

grand shadow
#

that'll probably come automaticall since I'm wiring up ldt stuff

mild sentinel
#

:3

#

I want to test this on that laptop

grand shadow
#

the mysterious leaq in the end of the linux asm block

#

(its probably just restoring missing state from syscall

#

this code is so evil

#

I feel like if I make one mistake I will spend 1000 years debugging it

bronze nexus
fleet osprey
#

that was the one with the PS/2 support that technically worked but was like massively behind or something

grand shadow
#

how long ago was that again

#

someone a while back pushed an i/o apic fix

#

(I was setting some stuff completely wrong)

#

gigabrain

#

signal: bad user stack 000000007FFBFC18 (altstack 0000000000000000) handling signal 11 trapno 14

#

first try of 32 bit wine

#

certaeinly no fun

fleet osprey
#

oh yeah and this #1061407633745125397 message

grand shadow
#

certainly has been a while, maybe some time yu can try it again

fleet osprey
#

I have that laptop here rn and some spare time

#

send a build meme

#

in fact I actually have this whole week off for spring break

grand shadow
fleet osprey
#

writing....

#

Image broken?

#

Or is my flash drive dying lol

grand shadow
#

works on my machine

#

(literally booted in a vm from it)

fleet osprey
#

hang on let me try writing it again

#

might need to grab a new flash drive lmao

#

that time it worked lol

#

shitty flash drive ig

grand shadow
#

that does not sound good

fleet osprey
#

oh holy shit PS/2 just works

grand shadow
#

any bugs that might happen I will call hardware bugs

#

yopooo?

#

me when random person in random pr in github just fucking fixes my shit for free

#

hell yeah

#

wish I knew who that guy was to thank him

fleet osprey
grand shadow
#

oh yeah its writing to port e9 hopefully theres nothing important there

fleet osprey
#

iphone moment

grand shadow
#

YEAHHH

fleet osprey
#

randomly sideways

#

also jfc worst ever picture

#

hang on

grand shadow
#

@analog berry astral curse is no more

fleet osprey
grand shadow
#

ps/2 has been solved

fleet osprey
#

Radeon graphics acceleration support when

grand shadow
fleet osprey
#

gotta see GPU: AMD Radeon whatever iGPU garbage blah in fastfetch

#

btw do you want me to try this on a Chromebook as well trl
I have a shitty old Acer Chromebook with an ancient Celeron

#

modded with UEFI fw

grand shadow
#

that sounds horrifying

#

please do it troll

fleet osprey
#

this does not meet Ubuntu's minimum system requirements btw

#

it's too ass

#

the installer won't even boot, it doesn't even enough RAM

#

had to init=/bin/bash and set up swap before boot

#

just to get the installer to load

#

I could have just went with a better distro but I also intentionally wanted it to suffer under the crippling weight of GNOME

#

It’s this abysmal piece of junk if you care about specs

#

pretty sure it doesn't even have xhci so it's probably gonna take it a hot minute to boot

grand shadow
#

holy slop system

fleet osprey
#

no keyboard

#

which makes sense

#

they use some custom shit over i2c I think

grand shadow
#

my laptop also is over i2c but it has a ps/2 mode

fleet osprey
#

However:

grand shadow
#

yoooo

#

it boots on slopsys

fleet osprey
#

power button even works

#

if we ever get the Astral 32-bit x86 port I have an old Dell Inspiron I can try it on

#

Pentium M

grand shadow
#

thats outside my scope

fleet osprey
#

1GB RAM

grand shadow
#

like

#

completely

#

I have not written the kernel thinking of 32 bit architectures at all

grand shadow
fleet osprey
grand shadow
#

its a craptop from 2004

#

šŸ’€

#

I had to use that as my main laptop with lfs a few years cuz my old one broke

#

it was both fun and excruciating

fleet osprey
#

this one is extra bad because it has r300 graphics

#

and Mesa just kind has terrible support for those

#

like if you try to initialize anything with Mesa the system hardlocks

#

can't even ping it

#

fuckin completely dead

grand shadow
#

good thing I don't plan on having hw accel anytime soon

#

I went so far as to do an evil hack in my mesa patch to not need to implement /dev/dri

#

while using the glx dri backend

fleet osprey
#

wait what does that do

#

I thought it worked normally w/o /dev/dri

#

at least for software rendering

#

I know I've been able to run it on Linux systems that only have fbdev drivers, no DRM (even unaccelerated)

grand shadow
#

it just unconditionally passes some modes from the driver to xorg

#

so that xorg can actually boot

#

and give me accel

#

"""accel""

fleet osprey
#

interesting
so it's faster than whatever it does by default w/o /dev/dri?

pls give patches I could make massive use of that trl

grand shadow
#

I have no idea I just had to do that to get accel at all šŸ’€

#

I would've kept the old xlib backend but like

#

egl doesn't support that

#

and you need egl for wine opengl

fleet osprey
#

ah

grand shadow
#

so its either that or no wine gaming

fleet osprey
#

I think xlib might be what it's using currently on my fbdev systems then

#

because I can do glxgears and whatnot

#

but it's like 5fps

#

very awful

#

software rendering isn't supposed to be fast but that's still pretty bad

grand shadow
analog berry
fast gorge
sage locust
#

update Flanterm

mild sentinel
stone oracle
fleet osprey
#

it's in a pretty weird spot tbh

#

where it's trying to be good for "desktop" style usage

#

but it's arguably too weak for it

#

but it's also not an embedded device either

stone oracle
# fleet osprey yes, it is indeed eMMC :P

Can you tell me the info on its host controller? I assume it resides on pcie? what lspci says? is it intel's one embedded inside that celeron or what is that? Genuinely intrigued.

fleet osprey
#

hang on, I can grab a whole hw-probe

grand shadow
#

This one doesnt have any logging tho

mild sentinel
#

Does this do the nic driver etc?

grand shadow
#

So like, maybe I should send you one with logging going to console

#

Yeah

mild sentinel
#

Yeah send me one with logging just incase

#

And then I should hopefully be able to DHCP and get packages šŸ’€

grand shadow
#

more wine debugging

#

😟

flint condor
#

wine debugging? thats like, debugging while consuming wine yeah? sign me up!

grand shadow
#

I wish but I don't like wine

flint condor
#

ok then, whiskey debugging it is

mild sentinel
grand shadow
#

oookay so it is an ldt gpf

#

error code is 000000000000010c

grand shadow
#

ok it is just a mismatch between how my code expects the ldt index and what the code is passing

grand shadow
#

seems to have been fixed, running into another issue now it seems

#

but fs seems to be loaded with the 32 bit ldt selector :D

#

cr2: 000000000000003c gs: 0000
rax: 00230000ffffffff fs: 010f
rbx: 0000100000a6c640 es: 001b
rcx: 000010000039ed37 ds: 001b
rdx: 0000000000000000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000246 r12: 0000000000000000
r13: 0000000000000000 r14: 0000000000010000
r15: 0000000000000000 rdi: 0000100000a6c640
rsi: 0000000000000000 rbp: 00000001000ff980
rip: 00001000003f3e46 rsp: 00000001000ff700
err: 0000000000000000 rfl: 0000000000010206

#

I gotta wake up in 6 hours so I will look into why this gpf is gpfing tomorrow

fleet osprey
#

sleep is for the weak trl

grand shadow
#

seems like a libc non canonical address access, spooky šŸ‘»

#

oh, tcb is fucked

#

well thats fun

#

forgot to add some very specific code to save the pthread fs base

#

woopsie

grand shadow
#

well thats going to be extremely annoying to debug

#

register state seems to be borked

#

and mmap gets some invalid values

#

huh it is calling into mlibc with a ldt fs

#

that can't be goo

#

d

#

I think its just some stupid stuff relating to context switching that I messed up

#

this shit is extremely annoying to get right I must say

hardy vine
#

can wine run like 3d application here

#

(like advanced ones)

grand shadow
hardy vine
#

ohh nice

#

time to port honkai impact 3rd to astral lo

#

lol

upper dragon
#

time to port the metaverse before it shuts down

grand shadow
#

ok I think it might be signal memes

#

it might be getting a signal and then getting another signal and I don't think I handle recusive altstacks properly

#

oh no I do

#

nvm

hearty fulcrum
#

lol

grand shadow
#

this is certainly a very damn annoying bug to try to catch

analog berry
#

whats the bug

grand shadow
analog berry
#

how did u run into it

#

some new port?

grand shadow
#

well I am trying to get wine to work with 32 bit applications

#

and in that I am deep in ldt bullshit

analog berry
#

ohhh

grand shadow
#

the rip is in libc code (thread_mutex_timedlock):
auto tcb = get_current_tcb(); // <----- does asm volatile ("movq %%fs:0, %0" : "=r"(ptr)); inside it
return tcb->tid; // <----- dies here
the backtrace is in wine code:
0x64541 <allocate_virtual_memory+321>
0x67762 <NtAllocateVirtualMemory+306>
0x3c301 <__wine_syscall_dispatcher+413>

#

so I need to figure out why the fuck is __wine_syscall_dispatcher not working and if the way I'm doing it depends on some linux semantics that I obviously don't follow becasue I am linux

#

but I think it did run 32 bit code at this point if it is running syscalls, so thats a nice detail

#

(__wine_syscall_dispatcher is one of these huge asm sections)

#
"movq 0x320(%r13),%rsi\n\t"     /* amd64_thread_data()->pthread_teb */
                   "testq %rsi,%rsi\n\t"
                   "jz 2f\n\t"
                   "mov $1, %edi\n\t" /* ARCH_CTL_SET_FSBASE */
                   "mov $1, %eax\n\t" /* SYSCALL_ARCHCTL*/
                   "syscall\n\t"
                   "leaq -0x98(%rbp),%rcx\n"
                   "2:\n\t"
#

this code looks sane