- 精华
- 0
- 帖子
- 1399
- 威望
- 0 点
- 积分
- 1378 点
- 种子
- 15 点
- 注册时间
- 2011-2-26
- 最后登录
- 2025-2-24
|
发表于 2018-3-11 11:44 · 黑龙江
|
显示全部楼层
本帖最后由 phx496 于 2018-3-11 11:57 编辑
devilmaycry200 发表于 2018-3-11 11:39 
微软官方说明并没有体现具体细节,当然我说的也不一定对,首先通过编译实现一键移植也可以称作模拟或兼容 ...
"The way we talk about it offhand is that effectively we try to make sure that the game never knows that it's not running on an actual 360 console, and so whatever value the game presents, we return the value that it expects to get from the 360 hardware and we just do all that in software," Stillwell continues. "So, there's a multiple playthrough session where we have an army of over 100 testers who go through, collect thousands of hours of video data and then from there we'll get back data that lets us tune, and so the emulator gets a little bit more robust every cycle that we go through with game releases."
The ambition in adapting code designed for a tri-core PowerPC CPU running at 3.2GHz on low-power, low-frequency x86 ** is remarkable. In theory, the Xbox 360's six hardware threads could be mapped to specific ** in Xbox One, but issues cropped up as the team took on more challenging games.
"What we found was it's not just the threads, the different **. In fact, the Xbox One has a thread scheduler - it's similar to Windows in that it apportions based on need whereas the 360 was locked, it was very consistent," Stillwell explains. "And what we found happening was that when we used the Xbox One thread scheduler, we had a whole bunch of issues occur, so we actually rewrote our own thread scheduler... Whenever you boot up that emulator layer so that that logo pops up for the 360, we're taking over thread scheduling from the Xbox One and locking it down to the 360 timing, so that we don't have to deal with the translation across the two or worry about thread management in the Xbox One directly."
But fundamentally, Xbox 360 back-compat works on the principle of an emulation layer. There is some hardware assistance and - yes - some 'secret sauce' (Microsoft didn't want to be drawn on how the emulator supports Xbox 360's VMX128 vector units, for example), but the team is now at the point now where everything an Xbox 360 can do, its emulator can mirror in software. And that's impressive - by the end of the 360 era, developers had leeway to bypass the DirectX API and address the GPU more directly, potentially making transcompilation of code more challenging. Stillwell confirms that this isn't a problem for the emulation layer and in fact, the only thing that isn't supported is XNA.
I mean, I'll never say never because no matter what we think is the way people will write games, someone will write games in a way that no-one ever thought of doing before," he adds. "We've run into a few of those but in general we had some games early on that we thought would never work that we now know work."And then there are the games that previously worked, but didn't work very well. Our early tests of Xbox 360 titles running on Xbox One threw up a host of issues - specifically, areas where the emulator's enforced v-sync could see games that ran at 30fps drop down to 20fps. And then there was Halo Reach, a flagship title of crucial importance to the backwards compatibility programme that just didn't come up to the required standard. It proved to be the catalyst that saw Microsoft revisit its testing procedures, leading to existing back-compat titles being revamped with improved performance.
"Yeah, we absolutely did [that] and take some credit for it, actually. It was the review of Reach that sort of put us on the spot. Basically, what happened when we first started doing these games, we got things to run and because we were able to emulate the 360 on the One, we were quite pleased with ourselves and so we started pushing out games and a lot of our testing was subjective," Stillwell explains.
这还没谈具体细节? 你想让微软把源代码都告诉你才叫细节?
|
|