Live data from Hacker News

Dolphin Progress Release 2603

dolphin-emu.org

41–50 of 57 posts

Re: Dolphin Progress Release 2603

#41
post #26

Earlier quoted context omitted.

In all my years of emulation, I've never come across a malicious ROM for a major console. Dolphin runs its own VM. Obviously anything is possible, but developing some kind of breakout-ROM which would infect the host machine is just way more engineering than I could imagine ever being worth it. The vector is just too complex, and the target (nerds downloading retro games) just isn't worth the squeeze. Archive.org actu…

The breakout engineering to exploit Dolphin has already happened, see for example: * https://dougallj.wordpress.com/2016/11/13/exploiting-dolphin... * https://gist.github.com/hthh/502ae16db55612f64d3966769a154c3... * https://github.com/dolphin-emu/dolphin/pull/4447

Woah! This I was not aware of - that's really cool actually. Hats off to u/dougall.

Re: Dolphin Progress Release 2603

#42

The most interesting part to me is how often emulator development turns into discovering that the original games were doing something deeply strange but completely intentional

I’ve been decompiling for the past (almost) two years, and it’s fun to see the bugs, compiler quirks, programmer superstitions, things that coincidentally work because of compiler behavior not because of correctness, as well as the things modern tooling would have caught that 30-year old versions of GCC hadn’t gotten around to yet. There were even things I thought I had to manually optimize in the early 2000s that th…

How can you tell the difference between something manually optimized and something automatically optimized?

Re: Dolphin Progress Release 2603

#43

Earlier quoted context omitted.

I’ve been decompiling for the past (almost) two years, and it’s fun to see the bugs, compiler quirks, programmer superstitions, things that coincidentally work because of compiler behavior not because of correctness, as well as the things modern tooling would have caught that 30-year old versions of GCC hadn’t gotten around to yet. There were even things I thought I had to manually optimize in the early 2000s that th…

How can you tell the difference between something manually optimized and something automatically optimized?

There's not really an exact science to it, but manually-optimised code is usually more structured/systematic to make it easier for the human author to manage the dependencies and state across the board, while automatically-optimised code is free to arrange things however it would like.

As an example of the kinds of optimisations that the best human programmers were doing before compilers took over, see Michael Abrash's Black Book: https://www.phatcode.net/res/224/files/html/index.html - you can intuit how a human might organise their code to make the most of these while still keeping it maintainable.

Re: Dolphin Progress Release 2603

#44

In the discussion of the Triforce arcade compatibility, there's some discussion of "IC Card" support needing to be implemented, and doing so unlocking a lot of missing functionality. I think this is referring to the Japanese rail payment cards? I know you can use them on things like vending machines, but from the article it seems like the Triforce cabinets let you save game progress on them too, which would be a grea…

> Triforce games can support two types of cards for saving: Magnetic Cards (magcards) and Integrated Circuit (IC) cards. Magcards are cheaper, fragile, and can only survive so many writes before failing. They have the added bonus of having a printable side, where the game can print a player's achievements and more. IC cards are more like old credit cards with a thicker plastic. They weren't printable, but were much s…

Cool! Thanks for the clarification.

Re: Dolphin Progress Release 2603

#46
post #33
post #6

Earlier quoted context omitted.

They don't: https://forums.dolphin-emu.org/Thread-dolphin-donations?pid=...

Wise. I've seen many a fine volonteer project become enshittified because they started optimizing for financial income rather than for having fun.

I suspect you would quickly attract a lot of the wrong kind of “developers” the moment a financial reward appeared. Especially now that it’s so easy to use AI to make something that looks slightly plausible.

Although I suspect the other sibling comment is the real reason.

Re: Dolphin Progress Release 2603

#47

The most interesting part to me is how often emulator development turns into discovering that the original games were doing something deeply strange but completely intentional

I’ve been decompiling for the past (almost) two years, and it’s fun to see the bugs, compiler quirks, programmer superstitions, things that coincidentally work because of compiler behavior not because of correctness, as well as the things modern tooling would have caught that 30-year old versions of GCC hadn’t gotten around to yet. There were even things I thought I had to manually optimize in the early 2000s that th…

[deleted]

Re: Dolphin Progress Release 2603

#48
> Thankfully, the game's community narrowed down the issue and eventually found that the fnmsubs CPU instruction was implemented incorrectly in Dolphin's JIT but worked correctly in our interpreter.

Sounds like a good opportunity for differential fuzzing!

Re: Dolphin Progress Release 2603

#49
post #33

Earlier quoted context omitted.

Wise. I've seen many a fine volonteer project become enshittified because they started optimizing for financial income rather than for having fun.

It's also a smart legal strategy. Nintendo's lawsuits they won against emulator projects in the past had donation systems as one of, if not the sole main point they drove to win the case.

Yep like yuzu did monetize their emulator, it didn't help that they were also shipping cracked on their discord server

Re: Dolphin Progress Release 2603

#50
post #33

Earlier quoted context omitted.

Wise. I've seen many a fine volonteer project become enshittified because they started optimizing for financial income rather than for having fun.

It's also a smart legal strategy. Nintendo's lawsuits they won against emulator projects in the past had donation systems as one of, if not the sole main point they drove to win the case.

From a practical perspective, they "won" in their recent attacks on emulation by shutting big projects down, but we can't know what would have happened at trial because they never got that far.

NoA sued the Yuzu devs and settled out of court, with the devs paying $2.4 million and shutting down the Yuzu and Citra projects. The $2.4 million was noted as being a reasonable estimate of what Nintendo's lawyers would have billed if the case went to trial, not a reflection of Yuzu's collection of donations.

NoA used some combination of carrot-and-stick to get the Ryujinx developers to shut that project down as well, but we won't know what that combination was because they never filed a lawsuit, so there are no public records, and there was likely an NDA.

Post reply on HN