PC 386 and 286 Core Setup Ideas

User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

Creating a new thread to not pollute other topics.

With the (very promising) XT core underway, and the existing capabilities of ao486, I've been wondering which gaps would remain for DOS gaming on MiSTer.

The XT core has a 8088 CPU. It plans to support real CGA (inc. the 16 color modes), MDA, and Tandy graphics modes, and a Turbo mode for 7Mhz (and maybe more). This core will be a great platform for adding Hercules graphics support one day.

The ao486 core supports a much beefier CPU (close to a 486DX33), and supports MIDI, SB16, SVGA, VGA, EGA, and a bunch of other features. It can even run Windows. But it is too fast out of the box to run 286 / AT era games. There are options to slow it down (lower CPU clock, disable CPU caches) but it's not obvious how to match accurate speeds of a 286 era machine.

Perhaps sometime in the future somebody will write a 386 CPU implementation in HDL, which could be used as a base for a new core between XT and ao486.

But in the interim, I wonder if the ao486 could be tweaked to accurately present itself as a 286 or 386?

For example, the code could have a compiler flag that allows to build a "ao386" with settings adjusted by default to match in speed a computer of that era. To test that, we'd need to find bemchmark programs and games to verify the setup.

It's also possible that there may be gaps and games that refuse to work properly (eg. if there are undocumented EGA featires that ao486 doesnt have). For those cases, it would be good to identify them to serve as test for any improvements to one of the cores.
dmckean
Posts: 307
Joined: Sat Jan 16, 2021 7:03 am
Has thanked: 387 times
Been thanked: 95 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by dmckean »

Newsdee wrote: Thu Jul 14, 2022 5:29 am Perhaps sometime in the futue somebody will write a 386 CPU implementation in HDL, which could be used as a base for a new core between XT and ao486.
I think there's already one in progress for the wip FM Towns core. We'll probably have to wait until that's done to see how feature complete it is and if it's able to be used easily for other cores or not.
retro
Posts: 130
Joined: Fri Jun 04, 2021 5:19 am
Location: Kuala Lumpur, Malaysia
Has thanked: 44 times
Been thanked: 13 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by retro »

I thought the ao486 core replicates something closer to the 486 DX2 66MHz... of course, it's likely I am wrong.

Definitely would love to see 286 and 386 cores... although I don't know if there's any major differences between the two. I had an 80386 DX40 back in the day, and whatever games I had on it worked on my friend's 80286 SX25 machine.
DevilHunterWolf
Posts: 102
Joined: Thu Aug 19, 2021 4:07 am
Has thanked: 2 times
Been thanked: 40 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by DevilHunterWolf »

I'm of two minds about the idea. I think of games like Wing Commander that are pretty particular about what speed the computer is and I like the idea. But I also don't want to see the IBM PC cores get too separated with too many drive images to worry about. Changing up the speed and cache can be a true to life situation if you pick up a machine with adjustable BIOS settings. Since the ao486 core lets you change on the fly, I think it strikes a good balance. Anyone that digs into MS-DOS is used to a bit of config diving. And the assembled packs like the eXo/Flynn Top 300 are programmed to change the CPU settings in the core for each game so the less experienced people are already covered. If there is a benefit to be seen for another branch off like what's happening with the XT core, I'm definitely all for it. I just don't see what at this time.
suww37
Posts: 173
Joined: Sun Apr 17, 2022 2:24 am
Has thanked: 7 times
Been thanked: 15 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by suww37 »

DevilHunterWolf wrote: Thu Jul 14, 2022 6:25 am I'm of two minds about the idea. I think of games like Wing Commander that are pretty particular about what speed the computer is and I like the idea. But I also don't want to see the IBM PC cores get too separated with too many drive images to worry about. Changing up the speed and cache can be a true to life situation if you pick up a machine with adjustable BIOS settings. Since the ao486 core lets you change on the fly, I think it strikes a good balance. Anyone that digs into MS-DOS is used to a bit of config diving. And the assembled packs like the eXo/Flynn Top 300 are programmed to change the CPU settings in the core for each game so the less experienced people are already covered. If there is a benefit to be seen for another branch off like what's happening with the XT core, I'm definitely all for it. I just don't see what at this time.
In the case of a "prince of persia" game, more than 286 pc (286 to pantium III) have normal speed. There is no problem with these kinds of games. But I prefer the XT core because the prince of persia game has memories of having fun with the XT monochrome monitor and hercules. For "Wing Commander, Test Drive III", I think the 386sx to 386dx is the most suitable. I don't think the 486 is the right speed. Ao486 is a bit confusing to see that it's an FPGA. First of all, there are quite a few games that don't work normally. "lion king" can't run yet. opl3 sound is also different from the actual one. The pc internal speaker sound is also different from the actual one (Dangerous Dave1 rocket sound). I didn't find a way to make the normal speed work on the 286 game (Death track) on ao486. Do you guys know
suww37
Posts: 173
Joined: Sun Apr 17, 2022 2:24 am
Has thanked: 7 times
Been thanked: 15 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by suww37 »

Newsdee wrote: Thu Jul 14, 2022 5:29 am Creating a new thread to not pollute other topics.

With the (very promising) XT core underway, and the existing capabilities of ao486, I've been wondering which gaps would remain for DOS gaming on MiSTer.

The XT core has a 8088 CPU. It plans to support real CGA (inc. the 16 color modes), MDA, and Tandy graphics modes, and a Turbo mode for 7Mhz (and maybe more). This core will be a great platform for adding Hercules graphics support one day.

The ao486 core supports a much beefier CPU (close to a 486DX33), and supports MIDI, SB16, SVGA, VGA, EGA, and a bunch of other features. It can even run Windows. But it is too fast out of the box to run 286 / AT era games. There are options to slow it down (lower CPU clock, disable CPU caches) but it's not obvious how to match accurate speeds of a 286 era machine.

Perhaps sometime in the future somebody will write a 386 CPU implementation in HDL, which could be used as a base for a new core between XT and ao486.

But in the interim, I wonder if the ao486 could be tweaked to accurately present itself as a 286 or 386?

For example, the code could have a compiler flag that allows to build a "ao386" with settings adjusted by default to match in speed a computer of that era. To test that, we'd need to find bemchmark programs and games to verify the setup.

It's also possible that there may be gaps and games that refuse to work properly (eg. if there are undocumented EGA featires that ao486 doesnt have). For those cases, it would be good to identify them to serve as test for any improvements to one of the cores.
I think if sorgelig modify the ao486 core, it will be possible to implement the speed 286 and 386 properly, but the sorgelig, who is responsible for the ao486 core, doesn't seem to be very interested. I just want to fully implement 486sx on the ao486 core and hope there are no games that can't run.
Malor
Top Contributor
Posts: 860
Joined: Wed Feb 09, 2022 11:50 pm
Has thanked: 64 times
Been thanked: 194 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Malor »

retro wrote: Thu Jul 14, 2022 6:24 am I thought the ao486 core replicates something closer to the 486 DX2 66MHz... of course, it's likely I am wrong.

Definitely would love to see 286 and 386 cores... although I don't know if there's any major differences between the two. I had an 80386 DX40 back in the day, and whatever games I had on it worked on my friend's 80286 SX25 machine.
The 286 is broken and brain-dead. It's a terrible chip. It addresses 16 megs of RAM, but only if when switched into protected mode, which doesn't run DOS programs anymore. And once it switches into protected mode, it can't switch back.

Intel thought everyone would rewrite all their apps to work with the new protected mode; they were hideously incorrect. Instead, to access the higher memory, the BIOS would switch into protected mode, move a chunk of the data into the first megabyte where it's accessible in real mode (aka DOS mode), and then reset the CPU. The machine wrote a magic value in low RAM somewhere, rebooted, jumped into the BIOS startup, and the very first thing it did was check for the magic value. If it was there, it jumped to the resume point and continued running like the reset never happened.

This is terribly slow, so it mostly got used for drive caching; doing dozens of CPU resets per second is still faster than reading data in from the spinning rust of the time.

Early Windows used 80286 protected mode, but it couldn't run DOS apps, so it wasn't very popular. For most people, RAM past 1MB on an AT was either drive cache or just not used.

Enter the 386, which can safely exit protected mode. This allowed it to run DOS programs, transparently switch into 32-bit mode, do any operations it wanted as a 32-bit chip, and then return to DOS safely. This caused an explosion of new games that took advantage of the nice easy programming of 32-bit mode; they'd use a 32-bit DOS runtime, like DOS4GW. DOS4GW gave 32-bit apps safe access to DOS facilities, and in many cases wrote its own 32-bit versions of that code. In 32-bit space, it would read or write from disk or load directories of whatever, but also update 16-bit DOS's tracking structures so it knew what was going on.

This meant you could launch a sophisticated game or application that used multiple megabytes, and then just exit out and be back at the DOS prompt with everything still working. It was a huge step forward.

An even bigger step forward was Virtual 86 mode, which allowed the 386 to use the MMU to change how DOS saw memory. Early on, this allowed for software expanded memory drivers (duplicating what used to take a hardware board.) Later, it offered the ability to multitask well-behaved DOS apps.

The 80386 totally upended everything for the PC. In many ways, it defined what our computers were going to look like right now. The 286 was utter weaksauce in comparison, a dead branch of the 86 family tree. Its only real feature is running games that explicitly expect an 8 or 12MHz, 16-bit chip.
Bas
Top Contributor
Posts: 518
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 60 times
Been thanked: 225 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Bas »

386 could be plausible but between XT and AO486 I personally don't really see too much of a gap. The 286 and 386SX chips were compromises at the time. Games were starting to deal with variations in CPU speeds. Generally speaking I'd rather see a complete 486DX that can be clocked down as needed, than accurate 286 or 386 chips. Just my 2 cents.
User avatar
thisisamigaspeaking
Posts: 231
Joined: Mon May 23, 2022 12:28 am
Has thanked: 74 times
Been thanked: 21 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by thisisamigaspeaking »

Newsdee wrote: Thu Jul 14, 2022 5:29 am Creating a new thread to not pollute other topics.

With the (very promising) XT core underway, and the existing capabilities of ao486, I've been wondering which gaps would remain for DOS gaming on MiSTer.

The XT core has a 8088 CPU. It plans to support real CGA (inc. the 16 color modes), MDA, and Tandy graphics modes, and a Turbo mode for 7Mhz (and maybe more). This core will be a great platform for adding Hercules graphics support one day.

The ao486 core supports a much beefier CPU (close to a 486DX33), and supports MIDI, SB16, SVGA, VGA, EGA, and a bunch of other features. It can even run Windows. But it is too fast out of the box to run 286 / AT era games. There are options to slow it down (lower CPU clock, disable CPU caches) but it's not obvious how to match accurate speeds of a 286 era machine.

Perhaps sometime in the future somebody will write a 386 CPU implementation in HDL, which could be used as a base for a new core between XT and ao486.

But in the interim, I wonder if the ao486 could be tweaked to accurately present itself as a 286 or 386?

For example, the code could have a compiler flag that allows to build a "ao386" with settings adjusted by default to match in speed a computer of that era. To test that, we'd need to find bemchmark programs and games to verify the setup.

It's also possible that there may be gaps and games that refuse to work properly (eg. if there are undocumented EGA featires that ao486 doesnt have). For those cases, it would be good to identify them to serve as test for any improvements to one of the cores.
Thanks for moving this off the PCXT thread, we were really distracting from its purpose.

It seems like the Next186 core (viewtopic.php?t=4533) will fill the gap between PCXT and ao486. I doubt there are many games that wouldn't run on either Next186 (once it's working) or ao486.
User avatar
thisisamigaspeaking
Posts: 231
Joined: Mon May 23, 2022 12:28 am
Has thanked: 74 times
Been thanked: 21 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by thisisamigaspeaking »

Malor wrote: Thu Jul 14, 2022 8:30 am The 80386 totally upended everything for the PC. In many ways, it defined what our computers were going to look like right now. The 286 was utter weaksauce in comparison, a dead branch of the 86 family tree. Its only real feature is running games that explicitly expect an 8 or 12MHz, 16-bit chip.
The 286 enables XMS which would open up some games (not saying it is worth a core). EMS was also used by a number of games but that doesn't require a 286. As I said above, I don't think there is much that would not run on a working Next186 core that would also not run on ao486. I won't know until this weekend when I try it out myself what the current situation is on ao486 as far as 386 era games, are they not working?
Malor
Top Contributor
Posts: 860
Joined: Wed Feb 09, 2022 11:50 pm
Has thanked: 64 times
Been thanked: 194 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Malor »

thisisamigaspeaking wrote: Thu Jul 14, 2022 12:43 pm
Malor wrote: Thu Jul 14, 2022 8:30 am The 80386 totally upended everything for the PC. In many ways, it defined what our computers were going to look like right now. The 286 was utter weaksauce in comparison, a dead branch of the 86 family tree. Its only real feature is running games that explicitly expect an 8 or 12MHz, 16-bit chip.
The 286 enables XMS which would open up some games (not saying it is worth a core). EMS was also used by a number of games but that doesn't require a 286. As I said above, I don't think there is much that would not run on a working Next186 core that would also not run on ao486. I won't know until this weekend when I try it out myself what the current situation is on ao486 as far as 386 era games, are they not working?
Well, kind of. Again, the 286 could only access memory above 1MB by switching into protected mode, and coming back from that required a CPU reset, which was very slow. XMS memory existed, but it was so horrible on the 286 that just about the only clients were disk caches.

However, the 286 had a major bug in it that turned out to be of great utility. Memory addressing on the 8086/8088 is segment:offset, each of which is treated as a 16-bit value. This means that most memory locations have multiple aliases. I don't remember the exact details, and I'm too lazy to look it up, but a vague handwavy explanation is that segment 26 offset 31000 might also be segment 34 offset 63something.

So, on the 8088, when you set the segment high enough, it wraps around to the first page, starting at memory location zero. Quite a bit of DOS software took advantage of this wraparound, and would set the segment far enough into F000 so it would expose the I/O addresses in the first 1K. This let them make BIOS calls and also twiddle hardware bits without changing the segment pointer, so code ran faster.

But! On the 80286, high segment values didn't wrap. Instead, they read values from extended memory. If you set the segment register to maximum, you could read an additional 64K minus 16 bytes. Magic almost-64K from nothing.

So IBM needed a way to toggle that wraparound behavior on and off, and ended up putting the switch on the A20 line for the keyboard chip, because that was where they had room for a toggle. The first 64K above 1MB ended up being called the High Memory Area. DOS was updated to load a lot of stuff up there, turning off A20 while it was mucking around, and then turning it back on before returning to user programs.

The High Memory Area was one of the most useful hardware bugs ever. All subsequent x86 chips have preserved that behavior and the A20 toggle, although I don't think modern operating systems use it anymore.

tl;dr: the one really good thing about the 80286 was a design mistake.

edit: oh, also, the 286 added more IRQs. PCs desperately needed them, since XTs had only 7 total, and only a couple actually free. The AT's IRQ design lasted a really long time, well into the 486 era. I don't think they started to really improve that system until, um, maybe Windows 95? I think about the time Plug and Play started being a thing, new interrupt chips started to hit the market. I'm very unclear on the details.

Modern systems have hundreds, it's not even vaguely a problem anymore.

edit: I reworded this very heavily.
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

thisisamigaspeaking wrote: Thu Jul 14, 2022 12:43 pm I won't know until this weekend when I try it out myself what the current situation is on ao486 as far as 386 era games, are they not working?
That's what I'm wondering too. From various answer in this (and the other thread), I get the impression that one issue is being able to know what settings to use to match some specific 286 and 386 speeds. I suppose it's also possible that some things still go too fast even with minimum ao486 settings. I'd have to try a few examples and benchmarks to find out.

There are also some bugs being reported (see above e .g. lion king not running) but perhaps those could be fixed in ao486.
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

suww37 wrote: Thu Jul 14, 2022 8:08 am I didn't find a way to make the normal speed work on the 286 game (Death track) on ao486. Do you guys know
So I've done some benchmarks with Landmark System Speed Test, and I see the problem...

Of all the possible combinations, only one specific setup gets close to an original AT speeds at slightly less than 10 Mhz.
All the rest are too fast, or way too slow!

I need to try playing that game (Death track).
According to my results it may work OK with L1 off, L2 on, and 15Mhz core clock:
-
ao498_AT_speeds_ranked.PNG
ao498_AT_speeds_ranked.PNG (44.78 KiB) Viewed 4407 times
suww37
Posts: 173
Joined: Sun Apr 17, 2022 2:24 am
Has thanked: 7 times
Been thanked: 15 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by suww37 »

Newsdee wrote: Thu Jul 14, 2022 4:44 pm
suww37 wrote: Thu Jul 14, 2022 8:08 am I didn't find a way to make the normal speed work on the 286 game (Death track) on ao486. Do you guys know
So I've done some benchmarks with Landmark System Speed Test, and I see the problem...

Of all the possible combinations, only one specific setup gets close to an original AT speeds at slightly less than 10 Mhz.
All the rest are too fast, or way too slow!

I need to try playing that game (Death track).
According to my results it may work OK with L1 off, L2 on, and 15Mhz core clock:
-
ao498_AT_speeds_ranked.PNG
I saw the ao486 speed-related ticket you organized. However, the "Death track" moderate speed is 10 to 12 MHz, not 8.93Mhz. I don't think ao486 is a core with the right speed for XT and AT pcs.
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by thorr »

I also am a fan of Death Track. It works well on a 286/12, and is a tiny bit too fast but still usable on a 286/16. It was way too fast on my 386 DX 33. This is one of the games that I highly prefer the Adlib for music over the MT/32. It is just too obnoxious on the MT/32. The 30MHz Off/On above might work well enough, but I haven't tried it yet. Remember to send those terminators sailing around the track in different spots but stay out of their way when they catch up to you!

Wing Commander was about perfect on my 386/33. I am not sure if the above chart will help or not since it is not an "AT" computer.
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by thorr »

My 2 cents about ao486: It is really great for what it is, and I am thankful to have it, but what it is underneath, is not great IMO. From my understanding, it is a bloated mess due to the way it was originally generated and then tons of cache was thrown at it to make it a lot faster. I would much prefer a proper core that replicates real hardware for each CPU generation that runs at normal MHz ratings (33, 66, etc.). I think PCXT is doing it right. It is using real BIOS chips and hopefully will recreate a real IDE controller, etc. Attention to making it as accurate as possible is paramount in that core, and it should be the same for a 286 core. Once that is completed, the parts that are reusable can be the beginnings of a 386 core, and then a 486 core. I don't think a Pentium core will fit, but I think a 486 DX3/100 would be possible and run a lot of things that require a Pentium. Heck, even a 386 core would meet most needs if it could be overclocked. If a 286 core was skipped, a really good 386 core that could be underclocked could work well as a substitute. I have no idea if Next186 is faithfully recreating a 286, or if it is more like ao486 in that it is not really anything that ever existed.
User avatar
pgimeno
Top Contributor
Posts: 669
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 246 times
Been thanked: 208 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by pgimeno »

Malor wrote: Thu Jul 14, 2022 2:05 pm Well, kind of. Again, the 286 could only access memory above 1MB by switching into protected mode, and coming back from that required a CPU reset, which was very slow. XMS memory existed, but it was so horrible on the 286 that just about the only clients were disk caches.
There are LOADALL-based XMS managers that don't require switching to protected mode to access all memory; among others, HIMEM.SYS (starting at a certain version, see link).
dmckean
Posts: 307
Joined: Sat Jan 16, 2021 7:03 am
Has thanked: 387 times
Been thanked: 95 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by dmckean »

It needs to be remembered though that the PCXT core is being assembled almost completely from assets that already existed.

There is no FPGA 80286 CPU implementation.
There is no FPGA EGA implementation.
There is no FPGA implementation for the IBM AT framework.

All of that is way more complex than the PCXT equivalents and there's a limited number of people working on this project that could be capable of taking on the creation of such a core. It could be years before we see it.

I think it's actually more likely we could see a 80386 core first using assets from the WIP FM Towns core.
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

suww37 wrote: Thu Jul 14, 2022 8:14 pm I saw the ao486 speed-related ticket you organized. However, the "Death track" moderate speed is 10 to 12 MHz, not 8.93Mhz. I don't think ao486 is a core with the right speed for XT and AT pcs.
Not right now, but I wonder if we could get it to run at 10Mhz or 12Mhz AT-equivalent speeds with a bit of tweaking on ao486.
Perhaps we can try using a slowdown TSR?

Or maybe we can change ao486 code to slow it down a bit, as an optional flag that doesn't affect the main release. That won't be simple but it's easier than writing another core from scratch.
dmckean wrote: Fri Jul 15, 2022 12:35 am It needs to be remembered though that the PCXT core is being assembled almost completely from assets that already existed.
Exactly - this is why I'm trying to see what we can squeeze out of ao486 for now. Not doing it won't make a new core magically appear :)
Malor
Top Contributor
Posts: 860
Joined: Wed Feb 09, 2022 11:50 pm
Has thanked: 64 times
Been thanked: 194 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Malor »

pgimeno wrote: Fri Jul 15, 2022 12:31 am
Malor wrote: Thu Jul 14, 2022 2:05 pm Well, kind of. Again, the 286 could only access memory above 1MB by switching into protected mode, and coming back from that required a CPU reset, which was very slow. XMS memory existed, but it was so horrible on the 286 that just about the only clients were disk caches.
There are LOADALL-based XMS managers that don't require switching to protected mode to access all memory; among others, HIMEM.SYS (starting at a certain version, see link).
Huh, I never knew about that. Sounds like that undocumented instruction actually makes XMS memory worthwhile on a 286.

Man, someone must have been really bored to find that.
suww37
Posts: 173
Joined: Sun Apr 17, 2022 2:24 am
Has thanked: 7 times
Been thanked: 15 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by suww37 »

Newsdee wrote: Fri Jul 15, 2022 1:12 am
suww37 wrote: Thu Jul 14, 2022 8:14 pm I saw the ao486 speed-related ticket you organized. However, the "Death track" moderate speed is 10 to 12 MHz, not 8.93Mhz. I don't think ao486 is a core with the right speed for XT and AT pcs.
Not right now, but I wonder if we could get it to run at 10Mhz or 12Mhz AT-equivalent speeds with a bit of tweaking on ao486.
Perhaps we can try using a slowdown TSR?

Or maybe we can change ao486 code to slow it down a bit, as an optional flag that doesn't affect the main release. That won't be simple but it's easier than writing another core from scratch.
dmckean wrote: Fri Jul 15, 2022 12:35 am It needs to be remembered though that the PCXT core is being assembled almost completely from assets that already existed.
Exactly - this is why I'm trying to see what we can squeeze out of ao486 for now. Not doing it won't make a new core magically appear :)
I don't expect the ao486 core to be speed control. Because sorgelig sees ao486 as already completed core and is no longer interested in it. And the improvement of ao486 hasn't been going well for quite a long, even though ao486 has been reported multiple errors.

I think pcxt's direct hdd ide mount can also be easily done if sorgelig helps. But he's not very interested. I think it's more likely to make it similar to the 80286 core if the next186 core is completed.
Blitzwing
Posts: 103
Joined: Sat Sep 05, 2020 9:52 pm
Has thanked: 11 times
Been thanked: 24 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Blitzwing »

suww37 wrote: Fri Jul 15, 2022 6:17 am
I don't expect the ao486 core to be speed control. Because sorgelig sees ao486 as already completed core and is no longer interested in it. And the improvement of ao486 hasn't been going well for quite a long, even though ao486 has been reported multiple errors.
I suppose because for most things it is capable enough, it runs most 386 and 486 games well enough. For anything from the beginning of the IBM PC that'll be where PCXT will step in (hopefully), only really leaving that hole of that 286 and early 386 era that are still speed dependent. Anything late 486 and pentium era starts to be too much for the de-10 as it only reliably hits 90mhz anyway.

Maybe I'm an outlier but I've always seen Mister as a pretty poor device for anything IBM PC as there is just too many different bits of hardware, different memory amounts, graphics architectures, CPU speeds to make it manageable for hobbyists, at least beyond the XT and AT stuff.... Especially when you consider dosbox is just so good.
flynnsbit
Top Contributor
Posts: 550
Joined: Sun May 24, 2020 8:07 pm
Has thanked: 179 times
Been thanked: 307 times
Contact:

Re: PC 386 and 286 Core Setup Ideas

Unread post by flynnsbit »

Newsdee wrote: Thu Jul 14, 2022 4:12 pm
thisisamigaspeaking wrote: Thu Jul 14, 2022 12:43 pm I won't know until this weekend when I try it out myself what the current situation is on ao486 as far as 386 era games, are they not working?
That's what I'm wondering too. From various answer in this (and the other thread), I get the impression that one issue is being able to know what settings to use to match some specific 286 and 386 speeds. I suppose it's also possible that some things still go too fast even with minimum ao486 settings. I'd have to try a few examples and benchmarks to find out.

There are also some bugs being reported (see above e .g. lion king not running) but perhaps those could be fixed in ao486.
FYI Lion King works in the ao486 core, here are my notes:
use dos32a, run with no memory manager loaded, and other details below.

echo.
echo This game requires CLEAN, 16MB Memory, no L2, and lower MHZ.
dos32a LIONKING
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by thorr »

Blitzwing wrote: Fri Jul 15, 2022 7:09 pm Maybe I'm an outlier but I've always seen Mister as a pretty poor device for anything IBM PC as there is just too many different bits of hardware, different memory amounts, graphics architectures, CPU speeds to make it manageable for hobbyists, at least beyond the XT and AT stuff.... Especially when you consider dosbox is just so good.
You could say the same for Mame or any other emulator. The idea that the MiSTer is emulating a PC and all its components in FPGA hardware is way cooler to me than running games in DosBox.
suww37
Posts: 173
Joined: Sun Apr 17, 2022 2:24 am
Has thanked: 7 times
Been thanked: 15 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by suww37 »

flynnsbit wrote: Fri Jul 15, 2022 11:28 pm
Newsdee wrote: Thu Jul 14, 2022 4:12 pm
thisisamigaspeaking wrote: Thu Jul 14, 2022 12:43 pm I won't know until this weekend when I try it out myself what the current situation is on ao486 as far as 386 era games, are they not working?
That's what I'm wondering too. From various answer in this (and the other thread), I get the impression that one issue is being able to know what settings to use to match some specific 286 and 386 speeds. I suppose it's also possible that some things still go too fast even with minimum ao486 settings. I'd have to try a few examples and benchmarks to find out.

There are also some bugs being reported (see above e .g. lion king not running) but perhaps those could be fixed in ao486.
FYI Lion King works in the ao486 core, here are my notes:
use dos32a, run with no memory manager loaded, and other details below.

echo.
echo This game requires CLEAN, 16MB Memory, no L2, and lower MHZ.
dos32a LIONKING
I tried it your way and the lionking runs, but normal play is impossible. The frame is broken a lot and it doesn't work well.
Malor
Top Contributor
Posts: 860
Joined: Wed Feb 09, 2022 11:50 pm
Has thanked: 64 times
Been thanked: 194 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Malor »

It's a shame Sorgelig doesn't want to work on AO486 any more... if someone could nail down the memory bug and improve the IDE controllers, it would work with almost anything that ran on a real 486-33 machine.
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

suww37 wrote: Thu Jul 14, 2022 8:08 am memories of having fun with the XT monochrome monitor and hercules
I've tried making a monochrome mode for ao486.
It's a long shot ... and I may not merge it (I'm by no means a core developer), but it's an interesting experiment.

The rbf attached use the same algo as the PCXT core but extended to 8-bit color. It doesn't work well with EGA or VGA yet - I'm probably missing something - but CGA converts nicely, and if you add scanlines it does look quite similar to my old Apple II monochrome monitor.

The difference between setA and setB are coefficients used in the algo, which give different results in contrast between CGA colors.
Which one do you guys like best?

(EDIT: removed links as they were buggy - use the later build further down this thread)
User avatar
spark2k06
Core Developer
Posts: 865
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 961 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by spark2k06 »

Newsdee wrote: Sat Jul 16, 2022 4:27 am
suww37 wrote: Thu Jul 14, 2022 8:08 am memories of having fun with the XT monochrome monitor and hercules
I've tried making a monochrome mode for ao486.
It's a long shot ... and I may not merge it (I'm by no means a core developer), but it's an interesting experiment.

The rbf attached use the same algo as the PCXT core but extended to 8-bit color. It doesn't work well with EGA or VGA yet - I'm probably missing something - but CGA converts nicely, and if you add scanlines it does look quite similar to my old Apple II monochrome monitor.

The difference between setA and setB are coefficients used in the algo, which give different results in contrast between CGA colors.
Which one do you guys like best?
-

green486_setA.zip
green486_setB.zip

ddragon.png
Unless he has changed his mind, sorgelig will not accept it, I proposed it at the time:

https://github.com/MiSTer-devel/ao486_MiSTer/pull/94
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

spark2k06 wrote: Sat Jul 16, 2022 4:48 am [Unless he has changed his mind, sorgelig will not accept it, I proposed it at the time:
Maybe so; still I'm hoping to have a small independent module that could be easily recompiled into ao486.
I might even send you a pull request if I make it modular enough so it could be used in PCXT as well :)

In other news, I fixed a bug that was corrupting the graphics, now EGA and VGA look good.
I'm going to try to support more than one color mode next...
-
green486_setB_VGAfix.zip
(1.86 MiB) Downloaded 108 times
mk2.png
mk2.png (155.09 KiB) Viewed 3739 times
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: PC 386 and 286 Core Setup Ideas

Unread post by Newsdee »

Here is a first unofficial build release of a monochrome mode for ao486.
Don't expect it to be merged ... but I've included the HDL changes in the zip file, if anybody wants to tinker with it.

I sacrificed some OSD flags to have space for the Display Mode menu;
there are now a few monochrome options, including the original four and some others added for fun that look quite good. :)

-
ao486_monochrome.zip
(1.84 MiB) Downloaded 131 times
-
mk2a.png
mk2a.png (33.14 KiB) Viewed 3692 times
mk2r.png
mk2r.png (17.04 KiB) Viewed 3692 times
osd_options.jpg
osd_options.jpg (76.92 KiB) Viewed 3692 times
Post Reply