
Dolphin Progress May 2019 - pplonski86
https://dolphin-emu.org/blog/2019/06/02/dolphin-progress-report-may-2019/
======
sweden
The debugging of "5.0-10379 - VideoCommon: Constrain the array_base registers
by booto" is just insane.

Props to the person ("booto") who managed to go through this, you are an
example for any of us.

~~~
FartyMcFarter
It's a nice debugging story, but I actually thought it was a bit anti-
climactic.

I say that because hardware that ignores irrelevant address bits is not really
a rare or surprising thing. The more primitive/simple the hardware the more
this is likely to happen. After all, "why bother" checking those bits or
piping them through to a memory bus if they couldn't possibly affect the
result?

It was however a nice description of the process by which the bug was
reproduced and analyzed! Also, props to whoever managed to isolate that repro
case.

PS: If you're into crazy game bugs, here's another one:
[https://twitter.com/mmalex/status/1066111290580582403](https://twitter.com/mmalex/status/1066111290580582403)

~~~
tntn
Right, the behavior for "out of bounds" addressing is frequently (ab)used.
Tagged pointers have been used in loads of stuff. I think x86_64 prohibits
this and the MMU will fault if there are interesting things in the high bits,
but it still works on aarch64 systems.

~~~
dtech
x86_64 disallows this because the 286 only used the lower 24 bits of a memory
address, which made developer (ab)use the extra bits like you said. This
causes all kinds of havok with some 486 variants and the Pentium, which did
use the full 32 bits.

AMD's original x86_64 CPU (Opteron) only used the lower 48 bits of the address
(I think modern cpus still do), so to prevent any future problems they
disallowed using the upper 16 bits.

~~~
BubRoss
Most CPUs have used 42 bits for quite a while and only recently has Intel been
making 48 bit addressing CPUs.

------
vlmutolo
Sometimes I think “wouldn’t it be fun to try to write an emulator?”. And then
I read things like this. When you’re up against things like emulating hardware
to just throw away leading bits so that it will mask the mistakes of the
original games’ programmers, maintaining an emulator starts to seem like a
ridiculous task.

~~~
saagarjha
It really depends on what you're aiming for. Getting a simple console up and
running without caring much about fidelity is a fun project for many people;
Dolphin emulates a complex console and tries for 100% compatibility which
makes it significantly more complex.

~~~
lostgame
Agreed. Obviously the complexity of the console you are trying to emulate is a
huge factor in just how much effort it will take to implement.

------
HoppyHaus
Dolphin progress reports are some of the best writeups out there. I love the
weird tricks and hacks they have to figure out for even the most worthless of
games.

------
Causality1
Dolphin is the gold standard all emulators should strive for.

~~~
Newtonip
MAME deserves a lot of respect too.

