#ReactOS's Modern Hardware Woes
1 messages Ā· Page 2 of 1
pfn? page tables? they are mapped. But is it hhdm?
i mean this function looks like a typical phys_to_virt
I looked at what it does briefly and it's like some macro would do. It gets pfn number from the phys addr, then it gets pointer to the corresponding pfn entry and from there it gets pte address. Bingo. After you have this, you can get vaddr of the requested phys addr. because of so called recursive pagging. Have no idea why it's called that, bc it's recursive only in regard of mapping the page tables themselves.
An entry in the pfn database. Each such holds info on a ram page. Among which pte address for the mapping currently using this ram page.
what if there's multiple address spaces mapping it
It must be for the current context I'd say. There are prototype ptes as well for shared memory.
I guess. There's such a check.
i see
I got jumpscared by this
But yeah kind of
I figured it out when I working on another PR and confirmed with Windows
The recursive paging part kind of tripped me
i love walking ntdll exports and extracting the syscall numbers and doing direct syscalls
Wdym kind of?
How PTE addresses get convered to the VA equivalent
zaval explained it
its kinda like that
What makes it page
chapter 15
it is lol
#DownWithARM3
does this mean u have to know its mapped beforehand and u have to know it wont get unmapped from under your feet somehow?
It first checks if there is an entry in the PfnDatabase
And if it is then it's mapped
Otherwise nope
but pfndatabase contains every physical page
Yes
so like, literally all physical memory is always mapped?
I think so
then its literally hhdm lol
just kinda indirect because stuff isnt mapped at a fixed offset
Yeah
how does that work on 32 bit then
@thin temple btw did u see that? Nt also has an HHDM now
good for them tbh
real
i have a project for a custom windows runtime but i haven't pushed in ages
mandatory self plug; https://github.com/notbonzo-com/win-rt
oh nice
i have this nice file: https://github.com/RandomcodeDev/chifir-engine/blob/main/base%2Floader_win32.cpp
New game engine. Contribute to RandomcodeDev/chifir-engine development by creating an account on GitHub.
wait is that the f00f bug in your bio
They do something similar for 32 bit as well
Source: I tried the test on x86 build as well and it works
It doesn't. pfn is not a range where all ram mapped to, pfn is an array (sparse) each entry of which describes a page. It's not hhdm at all.
Yes but the page description contains a pointer to the mapping
So for all intents and purposes it's the exact same thing just with an indirection
windows didnt have it on 32bit
Then page tables are also hhdm. Pfn is not for the mapping role finally, it's for state dynamics maintenance and ram allocation (working sets management). The mere fact you can derive a vaddr for a given physaddr using a pfn entry doesn't make it hhdm. Hhdm is just a range in virtual address space where all ram is mapped. whereas pfn is not like that, it's metadata about a lot of mm stuff put in a structure organized in a quite complex way. This drastic difference is because these 2 were meant to serve absolutely different things.
Sorry I don't understand the difference
Are page tables hhdm too?
The idea of HHDM is u have a way to access any physical memory without mapping it explicitly
The fact that its easy to calculate that place doesnt mean its fundamentally needed
It can be indirect like nt
where does the term HHDM come from?
i mean who was the first to call it so
The idea (or rather purpose) of pfn is totally different. It's not for "accessing any physical memory". It's for keeping the state of every page. Either it's free, standby, modified or in use and if in use then by what. Telling that it the same as hhdm is like telling that page tables are hhdm, page tables then would be even closer. Accessing PFN you don't access "any physical memory". Nor even you can do that. You wouldn't be able to access a page if it weren't mapped. Because there is no any hhdm and pfn doesn't do any hhdm trickery. Maybe julysky could convince.
Mint invented it for limine, but the idea is super old
I understand what struct page is, its irrelevant here
What's relevant is given a physical address u can access its contents without mapping it
No you can't
Thats what that function does tho
No
If the page hasn't been mapped you wouldn't be able to access it.
so like, literally all physical memory is always mapped?
The answer to this question is no
Well then you know better than a ros dev
You didn't understand him correctly.
Ill wait for their input on this
While you are waiting, can you point to the line in the function, where you think, it accesses content of the page with a given physical address "without mapping it"?
No lol I'm just repeating what I've been told and what I've briefly seen in the tests, other than that I dont really care about arguing about it I just wanna know the truth
that's a monolithic beast
I see. I tried to explain, but I guess the authority of julysky's level is needed here. But I think he doesn't like ros, so I am not sure if tagging him here would be a good idea. 
yes
about half of it is just importing functions, only a couple interesting bits
little messy but it works really well. it's backed by some assembly files to get the names right and stuff
i also tried making my own ldr, however API sets and SxS finished that attempt
oh yeah the modern stuff is tricky
lol
i compiled the windows xp kernel with clang, and i had to make a tool that checked all the circular imports between the debugger, kernel, and hal to make sure none were missing
I've known that for years
Not news
They use one on 64 bit to accelerate arbitrary page frame accesses (no need to set up a temporary mapping) especially during times where the other mechanisms wouldn't work because they're at elevated irql and can't take page faults and so on
They still use the recursive mapping to access the page tables and they still use the file mappings to access page cache data
Also that has nothing to do with the what makes it page thing that was posted literally at all
I believe you guys are confused
No
There is an "hhdm" but this function has absolutely nothing to do with that, it isn't even adjacent
No it doesn't
For a private page, the PTE address field of the PFN structure points back to the address within the recursive page table that currently tracks the page (NOTE that the recursive page table is different for each process but resides at the same virtual base address in each of their address spaces)
Because recursive page tables are "unrolled" virtually into a linear array, you index them by virtual page number to get the address of the corresponding PTE that maps that virtual page
This means you can easily un-index it with simple arithmetic to recover the virtual address from the pte address
That's what they're doing here
This function lets you figure out where a private page is located in a process's address space given its physical address, not within an hhdm
This function would not work for a shared page (such as a file cache page or page of shared anonymous memory) because the PTE address for those is a "prototype PTE" which does not reside in process page tables
And it definitely is not looking the page frame up in an HHDM
For that they just use a simple macro that adds an offset
I'm unsure what this would be used for but this is what it does @hard flower
Wait
So it can tell if a page is located in a process' address space
Does that also include the pages allocated for setting up the address space for the process of not?
Based on the simplicity of the function I'm guessing the caller is meant to already know it's a private page or is prepared to deal with the nonsense result if it's not
Don't know what this means
Ohh
Do u know the api family for hhdm?
I don't think there is one I think it's just used internally for what I said
Hold on wait
One example of usage is when a page frame is reclaimed off the standby list they need to write the value of OriginalPte back into the pte pointed to by PteAddress, which is in some arbitrary process's page tables, and they can't use KeAttachProcess to do this because they're holding spinlocks at raised irql, so they use the hhdm
This works because the page table is guaranteed to exist and be wired in memory for as long as there's a resident standby page with a reference for it
So wait
I can use this to determine if a page is being used for the page table for the running process?
Wdym
Use what to determine that
Ah yeah page tables are private pages and their PteAddress points to the upper level table entry, so the resulting virtual address would be the page table's location within the recursive page table range
And you could use that to determine that yes
that solves another problem I have! Nice
So tldr its just the virtual address of the PTE mapping it?
No it's the virtual address that the page frame is mapped to in the process
The virtual address of the pte mapping it is stored in the PteAddress field
Ah ok
So like one step after that
How is this not racey btw
Because there are invariants stopping it from being racey
For example if they do this for a page table then the page table presumably has some reference stopping it from being paged out
They could also hold some spinlock
That's not the province of this function to worry about
Oh
Why I have a feeling, that Kreuzer will have words to say about you touching that mm part? š
I mean as long as they implemented it correctly
Also what's with that nerd in the comments to the PR
š¤ "is it allowed?"
Nobody tell that guy that the vast majority of the reactos kernel was written in this exact fashion (understanding and manually decompiling a disassembly w/ help of debug symbols)
its sad that their project to write new mm wasnt completed
when they hired a guy to redo the memory manager
Heās retarded ignore him
We all have to start somewhere
The rules are you just canāt copy out of IDA
If itās functionally the same because you looked at how it works cool fine
Ida Is only so useful to understand what youāre doing
Insert Alex Ionescu pushlock.c with "Set a to b." type comments
I think everything Alex wrote should be thrown out
fucking bullshit file
Rewrote a bunch of code from him through all this because he didnāt understand what he was doing
Lol
Is that because he just copied from ida
Thereās worse example
It's just a dumb decompilation job with no understanding of how the pushlocks worked
The comments are only there in an attempt to obfuscate this lack of understanding, seemingly
This is sus and makes me understand why Axel guy made the infamous accusation
He probably followed the existing style. Some time ago (actually a long time ago) I recall there were accusations and proceedings regarding copying some code in ReactOS, but as far as I know it didn't lead to anything.
I can't remember which version of pushlock he did... He must have taken the early version before it became unfair?
Alex created the style that led to the accusation
All of the accused code is Alex
But MS also loved Alex and we were audited blah blah
its remarkable how different people express different opinions about alex
apart from the comments the reactos version of push locks looks good, but im no expert. have you guys noticed any technical problems with it ?
No because it's an exact functional replica of how it was in windows in the early '00s
It doesn't have priority inheritance, there's that
My opinion is that ReactOS will never become a half functioning OS limping on every bs stupid thing windows does
And Alex is the personification of the opposite opinion
I want reactos to be compatible with windows drivers and apps.
That means we have to replicate a lot of the NT architecture,
That doesnāt mean everything
For instance the arbiter system from NT is one of the stupid over dramatizations of how handing IRQs Iāve ever seen
I understand it better than anyone on the team at this point, Iām not reimplementing it
I don't think the memory manager needs to be identical to NT's internally
true, and ARM3 is a poor attempt at making something closer but sacrificing a good design
The previous Mm was buggy but a little better
Had the foundation to be something usable
ARM3 is alexās design remember
We tried to have a contract to fix the Mm but it was all spent undoing Alex bs
I would do something a little like what I'm planning on which is to make it a lot like UVM (including how the fork support works) but with NT-like page lists and working set management
Is that the IRQL_NOT_LESS_OR_EQUAL? I kept getting it when writing a driver and couldn't understand how I was triggering it
It's not complete yet
But yeah I know how to figure this out now
Oh he did
I wanted to use MI_TRACE_PFNS and fixed compilation on amd64
And he told me to avoid it since it doesn't play well on SMP
Oh thank god
I thought I was screwed since I've decompiled Windows 11 for the MmMapIoSpace check as well
Donāt donāt make it a decompāed fucntion
Just understand what youāre writing
understanding what windows does with Ida isnāt a sin

TLDR just donāt be Alex

Yeah got it
because of fork?
well yeah thats one reason
NT's does implement COW fork
but in a stupid way
that could be avoided by just designing fork into it better
is the dumb way something architecturally unfixable or maybe its been revised to better support wsl1 ?
i should check how it works in reactos
It doesnāt
How complex is ros memory manager?
You can make your way around it after a few hours
I was initially looking at the ROS memory manager because of something else
But I think I mostly got the high level idea
In MM it's a sequence of phases and a PTE state machine.
The memory manager initializes a new address space for the child process. It can attach into the parent's context and walk the parent's VAD tree. This tree tracks which virtual addresses have been reserved.
For each inheritable VAD it allocates a special inheritance descriptor and charges quota. For each created descriptor duplicates the VAD into the child's.
Then for each PTE decides the type; for example, for fork PTE would just increment its reference count I believe.
It also needs to attach into the child's context to add working set elements. Then it links each descriptor into the parent's clone tree.
I was going to say that conceptually it's not difficult, but it's actually quite racey. And it's probably at least 6 levels of synchronization.
The kernel clones the handle table as well.
It's probably been rewritten for NT 10, but the core is still the same. Probably, at least he improved the creation of cloning chains to improve parallelism.
It's not so surprising that ReactOS might not support this, I think today the need isn't that great in a Windows-like ... Maybe for debugging.
I think ROS might need it considering there are plans for the POSIX subsystem on it
PosixSpawn also can be supported. I think you could make a flag to create in frozen state and attach.
Congrats on getting #Canelled 
I'm kidding, we replied with a massive comment that is a NOT SO tldr of "What ReactOS is allowed to do"
So if you're interesting in the subject, yeah lol
exactly what i wanted in 2025 
but thats kinda cool anyway, i remembed CDs being kinda complex
it's just ATA passthrough
not too bad
fun though!!
I actually like that standard a lot
you can do a lot of cool things with it
ATAPI or whatever?
Actually passthrough exists in a lot of things
like USB cd drives
for example
usbstor.sys itself is a SCSI driver
It's just one of those things that "just works" on windows that you don't think about for a hobbiest OS
I mean what I did can literally be done using windbg as well
š„¶
God I'm reminded of that weird drm

The function call graph was some anime girl
š
And it used tls callbacks
Oh yeah does ROS do tls callbacks?
yes
if any luck first PR that allows the new ACPI driver to be USABLE will open before july 20th

Daamn 
The one required for the power button?
Wasn't it also some ACPI namespace or something?
few more fixes have been thrown into latest nightly, hopefully the new ATA + AHCI combo driver will kick into high gear
because if we try to merge this ACPI work without it funnny things will happen
@thin temple sorry for pinging again, but does all that describe what you found problematic fork in nt mm vs uvm ?
its more complicated than the uvm way and slower
I took off Friday and Thursday
So I can get this going
But also itās my birthday on Saturday so

What I want for my birthday is functioning ACPI
Want to support me?
https://streamlabs.com/the_darkfire_
MORE DARKFIRE?!
https://linktr.ee/The_DarkFire_
Support ReactOS!
https://reactos.org/
thought id post it here as well
Pog
cloned managarm but not nyaux š
wdym

lol
doesnt that say managarm?
yes
it's a joke
people often misspell managarm as "managram"
which is also why i spelt nyaux "nayux" on purpose
nanogram.
but, of course, mammogram is the best.
@stable topaz happy birthday!!
Happy Birthday
Lol
Happy Birthday!
happy birthday
yea thats the issue. when nyaux folder
ok vro
HAPPY B DAY!!!
Aaaaa happy birthday hope I'm not too late
happy late birthday!
what's a reverse sleeper lol
Looks great outside
Outdated hardware inside
Basically the opposite of a sleeper build
Where you have an old case with brand new hardware inside
324gb of ram?
3.24
ah lol
ahh
is it running your new driver?
yeah itās using uACPI, and the new pci.sys
Pretty close I only really have 2 regressions I need to solve
thats pretty cool
Is this setup noisy?
No?
Why the ? You aren't sure or what? I asked because I haven't used these modern glassy cases with a dozen fans. Everything is on laptops. My last PC (lost with the home) had way less fans and they were smaller, but of good quality. Still the noise drove me crazy. It was not even from fans, but from air flowing through the small holes in the back side of the case. And here I see a dozen of pretty big fans, that's why I asked. Genuinely interested. So it's quiet? With all these fans spinning it doesn't do even that waterfall sound?
If you look at the pic only one fan is connected out of 3 on the front
Well, at least 3 of the visible then. In addition to this on the right, CPU's one and on the back look spinning too. Plus, there should be something on GPU and maybe with SSD.
Iām confused why youād think it wouldnāt be quiet
Thatās why the ā?ā
I donāt think Iāve seen a PC case that was genuinely audible in years
I explained why. It's probably we have different noise sensitivity. On the scale 0 to 10, how would you evaluate its noise level. 0 being no any noise, 10 unbearable, 5 - after 30 mins getting uncomfortable.
thats just a Waker
The project you're seeing here is Greentea OS, open source operating system that is early in the development. The aim is to eventually dethrone Windows: one app at a time! #greenteaos #hexalang
Sponsor me on GitHub: https://github.com/sponsors/PeyTy
Support me on Patreon: https://patreon.com/PeyTy
Manifesto: https://gist.github.com/PeyTy/1f563...
@stable topaz are u guys feeling scared now
lol

nvm it doesnt have much
Minesweeper doesnāt need much
is it really just this?
this person is a relatively notorious hack fraud
at some point they ran a "rival" osdev discord ("rival" is in quotes because nobody here really noticed they existed) with the ExectOS guy who plagiarized minoca and misrepresented "his" work on hackernews
ah lmao
I mean Polaris has a recipe for openrw but that doesn't mean it runs GTA 3
I've tried it before it fails
average ibuypower pc
I buy problems
btw, i forgot to ask earlier today, but what's the lore with Bob Pony? @stable topaz
I just thought what he did was kinda weird
āLet me grab someoneās exe, change it and reload it on my siteā
Ignoring the Patreon stuff for a moment
Sounds like a good way to exploit your readers
Then implying it was directly from him..
Just net weird
interesting, thanks
that is indeed a weird thing to do
and then he deleted the tweet
Indeed so itās a non issue now I guess
He is a dumbass 
Nice
W
Doing a small PC upgrade to Imrpove reactos performance
I hope itāll be enough for minesweeper
How many millions of fps will you get š
30 because reactos canāt render more than that without crashing

Requires a gigabyte of RAM per frame
should have gotten 128gb then
damn youāre right
put swapfile.sys on google drive and call it a day
Uploading (*and* downloadinh ig) ram š£ļø š„
this isn't really a software channel
but ill dump a few successes just because they're prep for what im about to do
holy shit
i can try digging up a screenshot of my game engine on reactos
real
my game engine uses various warcrimes to function on basically every version of windows after 2000
on windows 2000 it crashes before the loader finishes
i think it's my fault for using a modern linker and not one from 25 years ago
somehow all of my render backends broke independently of each other
gonna add reactos support to the program i'm making now though
bool reactos goes hard
š®
I can compile apps for Windows NT 3.1 with GCC 13.1.0 and Mingw-w64 13.0.0
(though I did have to compile them custom and patch some things out)
you dont need a 25 yo linker to target old windows versions
i don't trust mingw though, it never works for what i need
what do you need it for
i dunno. things i can make work fine with clang or msvc seem to be much more annoying with gcc
i think the complete lack of msvc compatibility just makes it a lot harder to write code for windows in the ways i find pleasant
not being able to use the official windows headers is a pain in the ass
Or is it
I have found the mingw replacements to work fine for me, what problems have you noticed
phnt, a set of headers that makes working with the native api a lot nicer, completely breaks with mingw
i also remember having issues with d3d12, but that might've been unrelated
I see
i guess phnt was made to work with msvc primarily and that's why it doesnt work
it was made to work with the official windows headers, because they're the most reliable
anyway, isn't it possible to use the latest MSVC version with a different UCRT
the UCRT is open source to my knowledge
what does that have to do with anything?
You said, "my fault for using a modern linker and not one from 25 years ago"
i wasn't using the crt
oh i see
the executable's headers caused a problem in the loader
i'm not sure why even lld didn't work, it should've
and so
:3
step 2
this allows reactos WDF to reach feature parity with windows 10 15xx
woah
damn\

technically we can go up to later windows too but its done like this for simplicity
although after some more progress ill add a flag to build with windows 22xx compatibility
support for modern windows 10 audio codecs
woah wtf
if i was gonna write a new subsystem, i should just study csrss, right?
yeah
No.
ok
does it actually matter that much which i use, even if i wanted to port it to windows 10?
like csrss uses alpc on newer versions, right? but it doesn't matter if i use lpc instead?
sorry about the phrasing the first time my brain is fried
so you're using those .sys files from rectos and they work in w10?
yes
and windows 8.1
and windows 8
that is crazy
wow
already effects things like this
wich adds modern audio support
well that's one way to make sure your implementation is like windows
that's what we usually do
audio, kmdf, is all reactos here
i even did a discord call using these drivers!
same here but also trackpad and i2c support
holy crap thats awesome
but wait
build 10586
apparently thats a pre-RTM build
...of the november update
so maybe its okay
its not pre-RTM
i guess betawiki is wrong then
oh okay
Windows 10 build 10586 (th2_release) is the official RTM build for the Windows 10 November Update.
i see i see
This matters because what was introduced in win10 even in RTM for hardware support
is MASSIVE
and nothing quite did that big of an overhault
so us having this kmdf support means most drivers (stuff that's not wifi,ethernet/gpu) will load now
since most stuff has been kmdf for 15+ years
Windows Vista mentioned 
i guess Windows Vista is the one that introduced KMDF
yup
here's vista with our KMDF and hdaudiobus
(technically bringing win10 functionality to vista LMAO)
It's hard to convince people how important and huge this is
but yeah
its key
that is actually insane ngl
in fact, my system right now is using reactos directx, kmdf, hdaudio, a part of WDDM, and the NetAdapterCx (kmdf module for networking)
and as you can see by the fact im still typing
zero stability issues
i just had to compile with win11 compatibility
all of these are kmdf
So yes while all this work has been taking years
it's paying off
very quickly now
and while ros itself as an OS may be lame for awhile in usermode. Im confident hardware support is going to be pretty decent in 2026
i can't wait
you could finally somewhat daily drive ROS on modern hardware
even if userspace leaves to be desired
i also wanna work on my OS but i need to figure out what next
pog
Itās kinda rough but Iāll throw it here too
Here vaguely the map / plan of how Iām splitting up all the work Iām doing
Everything on the chart should be in mainline before February of next year ish~
nice
amazing now I can be a furry in reactos
I know the answer is 9000% no but does any vr headset work on ros
no but the trackers seem to do something
So.. eventually?
Biggest issue with headset is GPU
Just pretend to be an RTX 4090 but it's secretly just software rendering, so the app thinks you have like a 1Mhz 4090 
Definitely causes 0 problems and fixes everything 
i lied
i just went down a rabbit hole seeing some stuff for my blog post when someone in the discord was talking about VRHeadsets.
Maybe ill add this little note to the post but its already kinda technical
but there's a KMDOD called IndirectKMD
it turns out all RDP Sessions, Virtual Desktop software, OBS, and the occlus rift / HTC all use this to render
The WDDM driver is a KMDOD so easy to use for us,
But all the sensors and usb components are just usbvideo, usbaudio, and KMDF?!
Anyway here's an occlus rift accepting the signal from reactos
and yeds
there's a hook to dispatch the bug check screen over the driver
So you can see your favorite reactos bug checks in VR š š š
LFG BUGCHECK OS
Amazing
lfg?
but why are you in 16 color mode
a few reasons
But tldr x64 uses a fallback mechanism to reach into VGA,
This mechanism is required to behave a certain way for gpu drivers to work
We canāt fix VBE etc until we extend this mechanism which is very complex
And we canāt just hack it without breaking GPUs
Hence
holy shit i was tracing a bug
and it went all the way down to pushlock.c
finally a reason to burn that file to the ground asap
what was the bug
It causes the OS to infinitely stall
Whenever a lock is held by pushlock it freezes the entire OS and gets exponentially worse for every CPU added
Ladies and gentlemen and neutrals:
ReactOS

sir please understand this is exactly how windows does it! I am good programmer look at my comments - source: trust me bro
Lmao
I created a implementation Windows 8+'s WaitOnAddress APIs
and now that im analyze windows behavior a bit I noticed you can hold a push lock over the address
that's an interesting concept
oh wait that's super useful actually wtf
turnstiles in ros when
maybe
interesting
did you find out whats the problem was
Iām treating Alexās code as a resource I canāt use and Iām going to rewrite the entire file from scratch
like is it a bug in windows 2k3 as well?
idk this is reactos not windows 2003 :)
yeah its just i heard that its a precise reimplementation of 2k3 pushlocks
with some absurd comments
Apperently it's not
since it doesn't work
But honestly who cares its clear the person that wrote it didnt understand what they were writing
No one should be shocked it doesn't work
It's likely some one line breaking it tbh
not going to find out
i remember you posted screenshots with working firefox which was super cool, that work hasn't been merged yet ?
It's making it's way in
that's over 200+ commits over master at the time
now it's about 120~
nice
Common ROS W
Not bad
ReactOS Server⢠Teaser?

I'll take that as a yes :D
A lot of stuff needs to be done before we do any real windows servers features but the Se subsystem of our kernel is ready for it
So eventually ā¢
numa support in react os
lol
Someone was like looking at Active Directory
And i am pretty sure if we ever actually tried MS would actually annihilate us
i think AD is supported by other oses too, no?
that sounds so boring to implement ngl
To some degree
Well the worst of things like that or group policies is done
we have a Security subsystem
A free Windows-compatible Operating System. Contribute to reactos/reactos development by creating an account on GitHub.
So the kernel itself can do it
But even our winlogon has hacks in there because none of the rest of the OS is ready for taking Se seriously
i think you can integrate AD in ROS
don't think MS would care that much
especially bc other oses have support for it already
But itās useful for kernel to have it since the basic idea is there for stuff to extend from it
Like part of what has been taking us so long for ntfs
Is mostly because ntfs actually behaves properly on ROS
lol
yeah
maybe less at this point man idk
thread not dead 
Well my new PCI.sys supports resizable bar and now i actually was able to test it
and the WDF PR is now merged into the nightlies
the vga fallback for x64 has been resolved so VBE runs properly
Progrss 
Wow
based gpu
Multi-monitor support?
yeah
can actually see it usable somewhere thanks to the stuff being fixed for resource managment
That's cool to see
Massive work has been done
GTX 960 running with 3D accel (XP driver 368.xx)
8800 GTS (driver 181.22)
Handled in VirtualBox 7.2.4
Want to support me?
https://streamlabs.com/the_darkfire_
MORE DARKFIRE?!
https://linktr.ee/The_DarkFire_
Support ReactOS!
https://reactos.org/
vista-win11 Vbox WDDM driver on reactos
Vbox 7.1
V cool
Damn
based gpu
FUCK I need to start cooking
i'm pretty sure it's running actual nvidia drivers so it probably doesn't matter which gpu you use, it'll work anyway 
but the drivers are 12 years old so who knows, maybe some stuff changed
Holy shit alive
Nothing with 3D accel yet
Iām still perfecting my WDDM stacks basics
This working was kinda a rush job
Will be another 6 months until I get WDDM 3D accel on hardware at least
Too many other things to do first
But hey
The next release will have xpdm ( XP AND before) gpu drivers
Which is enough for some pretty cool stuff
Of course let's be clear
ReactOS IS reactos
so in the sam vein :) people are starting ot use the latest work on super old hardware
so fucking based
Very cool
Can ReactOS run something like Windows' Device manager?
Or any other system programs
Cant see why it wouldn't
Do you got HL2 working?
time to garger all my friends to find the oldest possible pc where reactos boots
i almost have an older build
pentium 1 and 16 mb of ram
the only reason i "almost" have it is because i don't have its hard drive caddy so i can't use hard drives with it
(i'll have to hackily solder behind the port or something)
thats funny lmao
(or find a caddy or adapter, but those are rare as fuck)
i "didn't spend that much" on it (only about 20 euros or so)
but the fact it has no hard drive whatsoever is kinda bollocks
it has a floppy drive
of who knows what quality because i have neither floppy disks nor a USB floppy drive to write them with
https://github.com/reactos/reactos/pull/8662
Next modern audio PR is open
why jira issues mentioned in the pr cant be opened
I think he just made the link wrong
So much work talked about here
but why does it matter? whats this all leading to
This is a ryzen embedded platform booting ReactOS with UEFI + GPT
ReactOS for years has had bugs and assumptions across it's code base on how hardware resource managment work, and inorder to actually make a new acpi driver, ive had tounderstand how this works in Windows Vista (our target) and Win10 (to make sure we dont need to redo work)
And of course reactos now.
For example videoprt (the driver that controls video drivers) had some assumption about how GPU IRQs are handled.
this lead to any attempt at trying ot fix the root cause blowing up the entire Operating system
our uefi bootloader in the nightlies now behaves good,
and many MANY other fixes have happened including the audio bus, new KMDF stack to where the foundation of ros isnt going to fallapart with all my work merged
It's been an uphill battle for sure, but things are looking good for the next step
minimal integration with our shoddy PCI driver for _PRT handling
This actually works great!
And means i might be able to get uACPI's logic merged faster
nice to see
i do have a question for you @bright gale
vmware has some nasty logs from uACPI itself
have you tested vmware much?
yeah it worked fine, i think this is you returning NOT_FOUND from io_map or something?
npnp
nice
was it vmwares aml just probing for present pci devices?
aml usually does that by checking pci reads against 0xFFFF
ur not the first to run into it, i might add support for NOT_FOUND in uacpi in this case i suppose
yeah pretty much
nice
64bit on realhw
both SATA Drives are detected and working now
but USB is still failing
massive progress though, 64bit finally escaping the VM
nice!
can finally play crisis properly 
big
more than 32gb of ram usable now in 64bit as of recent too
and SMPs only remaining issue was this so
crysis "how it was meant to be played"

exactly
it has certainly been through a lot
not bad
32gb of ram
It has full 3-D acceleration of course
So Iāve been playing through dragon age: origins
The progression this year and the last from the start of this channel is hilarious

indeed
Damn a whole 800 mhz
a wholeeee 800mhz
uefi just boots to usermode without any hacks or weirdness now
which... duh
lol
its uacpi
Ah
now let's see if installing the gpu driver will work
Vista 
storage
more fixes on this now that uACPI lets me test on UEFI class 3 machines
another new test system
ooo hawt
I wonder if I should try to install it on my system. it's similar to your new test machine
eventually itll work, lots of stuff to do still though
cool stuff
ReactOS is coming quite far since the last time Iāve seen it a few years ago :o
Btw is there any plans to implement support for a FRED driver
/hj
(Basically better IDT on very new hardware and isnāt too bad to implement)
I dunno, we're inching to modern hardware little by little though so maybe
Mind if I share my driver of it? It does some strange conversion to hook into the make IRQ systems but itās relatively simple
go for it lol
Just needs a 64 bit aligned stack and it pushes everything you need there and you have to change a few entries to and from userspace because it forbids swapgs and iretq and sysexit
System calls and everything Goto one entry and interupts Goto the same handles but with seperate ones for ring0/ring3
Itās a very neat little thing they have
https://git.evalyngoemer.com/evalynOS/evalynOS/src/commit/198a270da303cb67569ccd8871b8012513ebd35e/src/kernel/drivers/x86_64/fred/fred.c
https://git.evalyngoemer.com/evalynOS/evalynOS/src/commit/198a270da303cb67569ccd8871b8012513ebd35e/src/kernel/drivers/x86_64/fred/fred.asm
My driver ended up braking after some changes so Iām gonna fix it soon⢠and cleanup the conversion logic layer 
Thatās the commit where it fully works in SIMICS though
implement it for ROS
pretty interesting though
I donāt remember any windows code but I know my eyeballs have glanced at it at times
The most I remember are like one or two comments that are curse words 
Iād very well help with it though
really the rule is you canāt work on anything youāve seen
Well I mean I certainly havent seen any windows FRED implementations
I donāt think they even support it yet
or probably most of windows in general

We barley do APIC right Iām trying to fix it 
And by works i mean it does the bare minimum but i got time
So I canāt work on ||poop.txt|| 
But yeah if I get some free time Iād love to help work on this now that I know Iām actually allowed too and I got some OSdev experience
I was under the impression that if you had ever seen anything about windows internals you would be barred
just some scrutiny
Hm?
conversaions like this
i mean
is what happens
if youve seen anything
the "ok but are you working on what you've seen?"
etc
oh cool so just looking at the build scripts doesn't count :)
All Iāve seen is the meme shit tbh š and like maybe some code but I legit could not even tell you one line of source code
Well I could guess and say there is one āint i = 0;ā and an āi++;ā 
the closest I've gotten to looking at actual source code is probably the officially supplied PDBs from MS's symbol server š¤£
officially supplied PDBs from MS's symbol server š¤£
Which we use to reverse sometimes
so
yea exactly
Welp guess Iām gonna send patches at some point now 
This will be fun especially when taking breaks from other projects
I have the special FRED role for a reason and itās my job to send patches for it to everyone 
Itās like the only thing I got to my name
are yall doing x2apic yet btw?
I think someone started redesigning how our APIC code works to support both xAPIC and x2APIC
But i havent touched that yet
Because Intel is removing the xapic and wonāt support it being used as the default device on systems that still have it 
yeah
Itās pretty much 1:1 to the MMIO minus some things make it easier
yeah but there was something windows does that made us have to pause
idk right now
sleepy
My kernel does two seperate implementations but I could merge it if I wasnāt partly lazy and trying to make simple to understand code
Would this channel be aptly renamed to ReactOSās Modern Hardware Wins?
Since it seems a lot of actual good progress has been being made
there's a longgggggg way to go stilll
like if you read through the history we recently got up to the GTX 960 and titan x working
GPU accel wise
well windows had a transition in their driver model for GPUs
there's 2 dramatically different models
mainline ros only supprots one
I started working on the other
Damn
But once we support that we basically get all Win10/Win11/Win7 GPU drivers easy
May be worth making this more clear on a blog post or somthing 
Like i got display out on my RTX 4060
I know a few people who had the same misconception
at some point
that's the plan
Ahh nice nice
:O
ReactOS may be close to being able to run anticheat games and save everyone from windows 11 
well
there's a lot of stuff there that's happened but it's intentionally left out of this thread
:O
NT6 apps are lightly toouched on here because we have been pretty quickly adding NT6 APIs but they're still disabled in the nightlies by default
so everything LOOKS like win2k3 stilll, but internally its very different
I mean if you consider the last year of work
ReactOS now supports
- Win10 Audio drivers
- Win10 WDF (ACPI Devices)
- Full XP/2000 GPUs
etc
so stuff is progressing fast
Yall are doing some really insane work here
I could never get this far myself
only takes 30 years
Would ROSSL (WSL) be a possibility at some point
yes
but a lot of smart people too
I havenāt even got bash yet 
(Though thatās due to my own footguns lol)
Ooooo
Oooo
I was gonna ask about that lmfao
we had our own
i not long ago tried to revive
it was a bit cooler
had a funny super power
could compile x11 apps and had an x11 server over win32
God damn thatās cool
Also the one thing about FRED is only Intel SIMICS supports it
and bochs has a very botched implementation of x86-64 as a whole so it would be a while for QEMU to even support it
So I wouldnāt look at it for a bit unless you wana use Intel SIMICS lmfao
(I did make a guide for it tho if needed)
(Iām just too lazy to use it rn)
But yeah I wish yall luck on this
This is a very cool project
thank you!
No shot? That's awesome
Your fork, iirc it was the most recent UEFI branch, is meant to build with the latest ROSBE right? I had some assembler issues (one was in acpi.S I believe) with it not accepting h-suffixed immediates
I can get back to you on the exact line and error in a few hours
Well, it's the easiest path to trying to run ROS on my hardware :)
I wonder if ROS would boot on my desktop with a 5700x and 6600xt and 32gb ram?
I do have other devices though
Like this thing
I hope your sata controller isn't buggy, if that's what you're using :D
itās getting pretty close but needs a few more things
My desktop has no SATA drives 
I may just end up wiping my windows NVMe just for ROS
oh no donāt I only got NVMe working ago 15 minutes ago
Well Iād partition it into a 128g one for ROS and reuse whatās left for extra game storage ;p
ROS will eat your entire drive sometimes
randomly
Well it used to
I have no idea if it still does
It will be fineeee. Canāt be worst than windows vibecoding an nvme driver that fully breaks the drive 
Atleast itās made by a human XD
Iirc you have hardware pretty similar to mine, but I can guinea pig if you ever want. I do wonder if I need that COM header to serial adapter though lol.
Ryzen 9 5950x, Gigabyte Aorus B550M Pro-P (the one with realtek 2.5g eth), Radeon Rx 6600xt, Nvidia GTX 760, 2x nvme, 1x sata 3. Intel ax210 wifi
Hey we all have almost the exact same desktops lmfao
It's great hardware ā¤ļø
Intel my beloved (for anything but cpus)
I wanna get a 7900xtx or smth though, when whatever the next gen is drops
I like the n100 they make tho
Itās good for immich & jellyfin
All ROS progress is pog
face reveal



