» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


【TGFC SHOP】雅虎代拍亚马逊乐天代购 可负责清关 【孤高の英雄】电子表笔筒TGFC出运费就送!
【凸大夯丸专门店】沪牌车险现金让利,微信:tuzki128 持续更新热卖中 【日本移民咨询】
加入商铺
发新话题
打印

[模拟相关] 【XEMU】06.02小更新,初代XBOX模拟器XEMU与CXBX-R集合贴

引用:
原帖由 HDE 于 2020-12-22 16:38 发表
posted by wap, platform: Chrome
至今也没人说明白为啥与pc架构最接近的初代xb,反而模拟器进度是最缓慢的,ps3都已经有模有样了,怕是ps4的出来了,这个也好不到哪去。
主要原因还是因为微软,当年几个很有前途的模拟器开发者被微软高薪挖过去了。


TOP

我当年保存的一篇解释为什么xb初代很难模拟的文章:

http://forums.ngemu.com/showthread.php?t=132032


Originally Posted by blueshogun96
"Xbox is just like a PC, it's easy to emulate!"

Yes, we've all heard this silly and pointless argument a million times and it usually ends in the same, and rather ignorant conclusion (or should I say assumption) that just because the Xbox is PC similar, it's hardware should be relatively easy to emulate. That's a very wrong frame of mind. How hard can it be? Very. Xbox's hardware is very complex and still poorly documented to this day. This requires some explanation.

1. Is a PC easy to emulate? Well, I wouldn't say so myself. Take a look at the source code from bochs. A lot of source code/work isn't it?

2. Emulating an x86 CPU is a lot harder than it sounds. I don't know where this mindless assumption comes from. Yes, there's loads of documentation on how the x86 processor works, but that doesn't exactly make it easy. First of all, the x86 instruction set is M-A-S-S-I-V-E! There can be at least 20 different versions of one instruction (i.e. There are many different versions of the MOV instruction, as well as INC, DEC, ADD, SUB, SHR, SHL, AND, OR, XOR etc.) and it takes time to implement them all. Of course, that's not exactly difficult. The real problem is that any modern x86 processor including the Pentium III can execute multiple instructions at once. So it's not like emulating a Z80 doing one instruction at a time. The actual algorithm and how x86 does this is undocumented and still unknown. In short, the Xbox's CPU can be emulated, but not accurately.

3. Emulating any hardware by NVIDIA is not a walk in the park! The Xbox's GPU, the NV2A is often assumed just a GeForce 3. It's not! It's similar but not identical. It has some GeForce 4 capabilities too, so it's more of a cross between an NV20 and NV25. This is by no means easy to emulate either. NVIDIA's GPUs have very large register sets and afaik not even half of them have been discovered, and a large portion of known registers have unknown purposes. There is little to no documentation on how NVIDIA GPUs work. The best thing to do is to look at similar GPUs such as RIVA, TNT, and older GeForce cards. Some registers are similar, but not identical. The best place to look for information is in open source drivers available on the net. Adding to the dificulty is that no one has ever discovered how pixel shaders work on NV2x cards, vertex shaders yes though. The Xbox GPU also has exclusive registers that are not found in other GeForce cards. Information on the NV2A's GPU registers are just now beginning to be discovered a few months ago. And yet, there's still a long way to go. The GeForce 3 series is the most mysterious of all NVIDIA GPUs (G7x and G8x aside) and the NV2A is alot worse. "But can't you just directly execute the NV2A instructions on another NVIDIA card?". No, I get alot of questions concerning this, and it is impossible. It's MMIO addresses are different and the exclusive registers must be emulated. Plus, in windows, we don't have ring 0 access anyway, so you all can scratch that idea now. Then comes the NForce 2 chipset. This is where it get easier. The NVIDIA MCPX is the control center for things such as audio, USB for input, Network adapters, PCI, AGP, etc. These things are not really that difficult to emulate IMO except for the audio.

4. The Audio system is rather complex. Xbox's audio consists of at least 4 DSPs, and audio codec (AC '97) and an NVIDIA SoundStorm APU. The DSPs shouldn't be a problem (just figuring out what they all are is) nor should the AC '97 but the NVIDIA SoundStorm APU is the really difficult part. So far I haven't found any information on this thing, but right now, it's relevance is low.

5. The Xbox BIOS isn't fully understood. The basic execution process of the BIOS is understood, but details on the process are at a loss. What we do know gives us hints, but before the BIOS can be emulated, we'll need a better understanding of the Xbox hardware layout because the BIOS does some unknown hardware initialization at boot time and writes to the hardware directly without using any XDK stuff. It will take some time, and effort, but I'll eventually get it working.

6. Video Encoder "Hell". Instead of using a RAMDAC for video output, the Xbox uses a Video Encoder. What makes this suck a pain? Microsoft sought the need to change the video encoder every other Xbox version (there are seven in all, 1.0 - 1.6). Why, I dunno, it's a Microsoft thing, they always tend to try to "fix" things that aren't broken >.> AFAIK, there are at least 3 different Video Encoders used: Conexant CX25871, Focus FS454, and Xcalibur. For more information in Xbox video encoders, click here. Emulating all three video encoders is only less than half the battle, the real problem is that BIOSes can be specifically tied to a specific encoder depending on it's version (don't quote me on this though). Like PS2, every Xbox model revision has a updated BIOS and has different expectations. This is a potential problem, but not exactly major.

Basically, I'm trying to get this "Xbox should be easy to emulate because it's just like a PC" crap out of your heads. I'm sure that most of you will disagree with me on this, but for these reasons and more, on a low level, Xbox is harder to emulate than PS2.

^ The exception to that above is that the NV2A is much better documented now, but not fully. There's an open source library for the OpenXDK called pbKit. It interfaces directly with the hardware to fully expose it's potential. This is what Microsoft should have done all along (or at least wrote a low-level OpenGL implementation).



TOP

严密关注楼主的更新


TOP

枪女可以DASH了,踢我一脚!

TOP

引用:
原帖由 jahaman 于 2021-6-4 09:45 发表
枪女可以DASH了,踢我一脚!
CXBX-R可以DASH了,6月11号的版本
本帖最近评分记录
  • jahaman 激骚 +1 感谢分享 2021-6-14 15:14

TOP

楼主,能不能和作者反馈一下哎,增加键盘自定义功能啊,等了几年了``````````

TOP

引用:
原帖由 LHQJJJGX007 于 2021-6-14 14:45 发表
楼主,能不能和作者反馈一下哎,增加键盘自定义功能啊,等了几年了``````````
有人提报过这个功能需求,作者近期并不会添加这个功能,想要改键盘的话只能自编译改键了,我网盘里有一个是改过的

TOP

楼主,你网盘里太多版本,眼睛看花了,也不知道哪个版本屎自编译改键的,晕~~~~~~~~

TOP

引用:
原帖由 LHQJJJGX007 于 2021-6-15 21:47 发表
楼主,你网盘里太多版本,眼睛看花了,也不知道哪个版本屎自编译改键的,晕~~~~~~~~
dist0.51-8

TOP

谢谢楼主

TOP

发新话题
     
官方公众号及微博