t’s certainly been a journey for Valve. A week prior to the Steam Frame’s launch, we spoke with two engineers at Valve about the project: Joy Lyons, hardware engineer, and Jeremy Selan, software engineer. The memory crisis and the price were a big part of that conversation. From that chat, we can confirm that Valve had aimed for a lower price point than the one it’s launching the Frame for today.
Here’s Lyons on the memory crisis:
“We set out to design this hardware with one particular price in mind, but we’ve made choices to make sure that we’re making a product that is choiceful, that people can purchase, they can upgrade with different features later. But we wanted to make sure we had a base product with really great performance. Then that price target shifted due to the ongoing RAM crisis around the world.”
Lyons also said that forecasting for the cost of certain components used in the Steam Frame is an ongoing challenge.
Not exactly boding well of the Steam Deck 2.
I’m old enough to remember Transmeta processors. I know what they did.
And it was functionally the second bullet point, with all instructions being emulated, so the emulation software was what the CPU really ran. You can do emulation of a CPU on a compatible CPU, but it doesn’t generally end up faster than doing it on an unrelated CPU. E.g. the code you’re emulating will use all the registers the CPU has, so you have to maintain a mapping from emulated registers to real registers (and because you need some registers for the emulator, some emulated registers necessarily must spill to memory), and the code you’re emulating could use any part of the address space, so you’ve got to map from the emulated address space to the real one. Every instruction potentially needs some alteration, so you can’t just run them as-is. There can be time savings, e.g. x86 has all aligned writes under 64-bits be atomic, so on unmodifed Arm, you need to insert extra locks, and if x87 instructions are used, they don’t quite conform to IEEE754, so would need doing via many integer instructions instead of a single float instruction on non-x86 platforms, but there can also be time savings from using a different architecture, e.g. Transmeta’s CPUs had way more registers than x86, so could give all emulated registers a real register and still have enough for the emulator itself to use.