
DOSBox x86 system emulator - bookofjoe
https://www.dosbox.com/
======
mwest
If you're a fan of DOSBox, you might like this:
[http://www.doshaven.eu/](http://www.doshaven.eu/)

I love the fact that people are still making games for DOS. I've been playing
a bit of this:
[http://www.doshaven.eu/game/ptakovina/](http://www.doshaven.eu/game/ptakovina/)
(from 2017!)

~~~
miobrien
I was going to ask what languages/frameworks they use, but found this easily
enough:

[http://www.doshaven.eu/programming-
tools/](http://www.doshaven.eu/programming-tools/)

~~~
cwyers
I have to say, the stylesheet for that page is amazing and gives me such
nostalgia.

~~~
laumars
I think that's just BOOTSTRA.386[1] but it's probably the best usage I've seen
of it.

[1]
[https://github.com/kristopolous/BOOTSTRA.386](https://github.com/kristopolous/BOOTSTRA.386)

------
azakai
You can run DOSBox in your browser, the Internet Archive has a bunch of games
emulated that way,

[https://archive.org/details/softwarelibrary_msdos_games](https://archive.org/details/softwarelibrary_msdos_games)

~~~
andywood
Oh my god. It's astounding what becomes possible as we move further into this
era when most digital activity gets archived for future mashups and other
archaeology.

Here, I released this in 1996:

[https://archive.org/details/msdos_Aspetra_1996](https://archive.org/details/msdos_Aspetra_1996)

I knew people still played it, but I had no idea it had a freaking URL now!

------
swdunlop
My favorite (mis)use of Dosbox was using it to drive Symate for PLC
programming. That let me switch to using a Linux netbook instead of dragging a
laptop booted in DOS around a factory.

My notes from the time:
[https://sites.google.com/site/waspvm/runningsymate374underdo...](https://sites.google.com/site/waspvm/runningsymate374underdosboxonlinux)

~~~
crumbshot
Same here, we had some buggy PLC controller software that would only run
properly on increasingly hard-to-find old PCs, or more expensive embedded
kits, due to timing issues. This was in an electroplating plant so they
corroded to the point of needing replacement every year or so. Instead, with
DOSBox set to an appropriate clock speed, we could use any commodity PC.

------
Narishma
Does anyone know why they haven't released a new version going on 8 years now
even though it looks like it's been continually worked on according to
[http://source.dosbox.com/dosboxsvn.txt](http://source.dosbox.com/dosboxsvn.txt)?

~~~
unixhero
Yes, they are stuck with technical debt which, let's say, they cannot repay.

Therefore further development on it is really difficult. This was stated by
the developer in an interview some 5 years ago.

~~~
bookofjoe
What is "technical debt?"

~~~
pmarreck
[https://en.wikipedia.org/wiki/Technical_debt](https://en.wikipedia.org/wiki/Technical_debt)

basically it's when a bunch of bad but seemingly-innocuous coding design
decisions accumulate and compound each other multiplicatively over time, to
the point that any change of the code is far more likely to break something
than the new feature is worth

Or as I stated at a previous job where I complained about the 40-minute-long
test-suite run time that was bogging everyone down, "the road to a 40 minute
long test suite is paved with a couple extra seconds here and there with every
new code commit"

~~~
qwerty456127
Why not just make a conscious decision to stop developing new features and
dedicate all the effort to refactoring then?

~~~
khedoros1
A few reasons. If you're an employee building a product for a company,
management's always going to push for features, features, features, to keep
the customers happy, and to keep up with the competition. Time spent
refactoring is an investment in the future, but management tends to be more
shortsighted than that. By the time that you really _can 't_ add more to the
program, it's years down the line, and they've probably been considering
pulling the plug anyhow.

In my own projects, it's often fun to keep adding things until I hit a
roadblock, then spend a couple weeks reworking stuff. It's satisfying to add
new features, but architectural maintenance feels like treading water.

So, I'd guess that the answer is somewhere between "outside factors dictate
that there isn't time" and "we haven't decided to make the time, even though
we could".

There's an interview with the two main developers here, from 5 years ago:
[https://sourceforge.net/blog/potm-201301/](https://sourceforge.net/blog/potm-201301/)

It sounds like they ran out of energy to really rearchitect the whole thing,
or build a new one from scratch.

~~~
qwerty456127
> If you're an employee building a product for a company, management's always
> going to push for features

What company? What management? What customers? _What features?_ Are we still
talking about DOSBox?

~~~
khedoros1
No; I was speaking more generally about some potential reasons that software
wouldn't be kept in a low-debt state. The same concepts could apply to Dosbox
with some remapping.

What company? The Dosbox project itself.

What management? The devs making overall decisions for the direction of the
project.

What customers? Anyone requesting new features and fixes in the software.

What features? Built-in support for Munt, new networking support, support for
more varieties of peripheral hardware...

It made sense to me to give a more general explanation, since this thread
started off with a question about what technical debt _is_ in the first place.
I also did my best to address Dosbox's specific reasons by posting the
interview with their devs and providing my own interpretation of it.

------
joezydeco
Just this month I had to update some (very old) production code for a client,
and when we pulled the project out of cold storage we discovered that the
compiler wouldn't run on the Windows 64-bit command line.

DOSBox saved my bacon, and it wasn't the first time.

~~~
mycall
I had the same thing with concrete structural integrity calculations software
written in BASICA. Still useful.

~~~
stuaxo
Maybe you could compile these with QB64.

(Quick Basic was the descendant of BasicA and largely compatible).

------
Yuioup
Any reason why this is up on HN? Is there a new release or something?

~~~
em3rgent0rdr
There's a certain mean time between new HN users rediscovering things.

~~~
unixhero
*Which is fine, because after all, Hacker News is all about the comments. I don't mind re-discussing fine pieces of software or topics like these every once and a while.

------
khedoros1
My favorite use (I mean, aside from the more obvious uses, like to run my GOG
and Steam games, along with disks from my childhood) is to compile it with
heavy debug enabled, and using it in conjunction with IDA to debug game
issues.

It's actually got a fairly nice debug environment.

------
thriftwy
Before dosbox there were dosemu (which let you use hardware but was pain to
configure) and things like qemu (emulate any hardware but even more pain to
configure). You still had to install OS into VM. Dosbox just changed the rules
of this emulation game. It was unbelieveably good even when it didn't do 32
bit yet.

~~~
unixhero
Regarding DosEmu. How about the main developer presenting on it in 2018 from
FosDem!
[https://mirrors.dotsrc.org/fosdem/2018/AW1.121/dosemu_and_fr...](https://mirrors.dotsrc.org/fosdem/2018/AW1.121/dosemu_and_freedos_past_present_future.webm)

------
gdamjan1
Also worth mentioning, [http://js-dos.com/](http://js-dos.com/) offers an API
to load an emscripten build of dosbox and a DOS program of your choice.

------
jaclaz
Just wanted to mention 86box, which is a "spin-off" of PCem, actively
maintained:

[https://github.com/86Box/86Box](https://github.com/86Box/86Box)

with "nightly builds" available, besides the Source Code.

~~~
Narishma
It's a fork of PCem, but PCem is also actively maintained.

~~~
jaclaz
>It's a fork of PCem, but PCem is also actively maintained.

Yes, of course.

As I see it PCem is more "stable", whilst 86box is a little more "dynamic".

Since it offers (experimental but) "optimized" builds for certain processors:

[http://ci.86box.net/job/86Box-Optimized/](http://ci.86box.net/job/86Box-
Optimized/)

in some cases it is conveneient.

------
xen2xen1
[http://blog.yesterplay80.net/dosbox-ece-
en/](http://blog.yesterplay80.net/dosbox-ece-en/)

Community Edition. Seems to be some popular tweaks built in. Probably a good
place to actually start.

------
fapjacks
DOSBox is also a great little debugger for x86 applications! It comes built
with some excellent debugging features.

------
noyaav
Qemu is a great platform to emulate x86 including numa machines

~~~
monocasa
I'm not sure how Qemu would emulate a NUMA arch on a non-NUMA machine.

It doesn't even attempt to emulate different memory models WRT where you need
barriers AFAIK.

~~~
noyaav
You can Use -smp 8 -numa node,nodeid=0 -numa node,nodeid=1

~~~
monocasa
All that does is lie to the guest over firmware (device tree, ACPI, etc.). All
of the memory accesses are still uniform as far as CPU emulation is concerned.

------
wjd2030
why is this trending?

------
shmerl
Is it still being developed? They should move the repo from Sourceforge to
some better platform.

~~~
jwilk
Last commits are from February 2018, so I guess it is.

If you can't stand SourceForge or Subversion, there's a very unofficial and
irregularly updated mirror of their VCS on GitHub:

[https://github.com/jwilk-mirrors/dosbox](https://github.com/jwilk-
mirrors/dosbox)

~~~
shmerl
Good, so why didn't it have any releases in years? Distros package last
release version, not current master.

~~~
JdeBP
That is not actually true. Distributions are not consistent in such things
even across a single distribution, and there is certainly no universal rule
about only packaging the latest release versions of everything.

~~~
shmerl
That doesn't answer the question. Did the project switch to realease-less
method? If so, then all distros should simply package periodic snapshots.

