Starting with the boot ROM (v2.20) that comes with the SCPH-75000 series, there has been an introduction of a new file named "DECKARD". It seems to be a ROM image that was written in big-endian instead. When disected with a tool that interprets that image file correctly, it consists of a few blobs of binaries that seem to be for a PPC processor. For example, DPATCH, LOADER etc. There are strings within DECKARD, that mention things like USB timings and so on. Things that sound like they belong to an emulator. Unfortunately, I don't understand the PPC instruction set and architecture, so I can't tell what those binaries do. The SCPH-75000 series was the first PlayStation 2 console to be of the actual "slim" design, which shares less resemblance to the SCPH-50000 series (compared to the SCPH-70000) and has a truly universal boot and DVD ROM (One design for a worldwide distribution). It was known to have compatibility issues with some games, and I have personally noticed that the behaviour of peripherals of my SCPH-77006 (Not a 75K series, but also similar) seems to be a little different (faster) from my older consoles. I also noticed that my SCPH-77006 has a ESMT M13S32321A chip, which seems to be a 256K x 32bit x 4 banks (4MB?!) SD-RAM chip. A SCPH-75004 from krHACKen has a HY5DU323222QP-6, which appears to be a 32Mbit SDRAM chip (4MB?!). To be honest, I am not sure how to interpret the capacity of the ESMT chip, but I think that it's 256x4x4=4MB. However, I don't remember whether accessing anything beyond the 2MB mark in a 75K and later would result in a bus error. The SCPH-70000 and older have 2MB of EDO RAM, as far as I can see. What I think is, the IOP chip is actually another chip that emulates the old MIPS R3000 IOP. What do you guys think of all these? What's with the difference in type and capacity of RAM, and the introduction of PPC code?
The PPC code is likely because of the PS3 being PPC64 arct. All ps3s have the capability to emulate ps2. Early models by hardware, most others by software. Only US 80gb w/ 4 USB ports and launch PAL 60gb models use both software and hardware.
One of my SCPH-75008 has a HY5DU323222QP-6 too. The only thing that looks like RAM in my SCPH-70008 is CXD2954ATM 447Y77K 265091. Could it be that 4MB RAM is not physically connected to chip? Or we could access it eventually? PPC thing loooks like from PS3.
Unfortunately, the PS3 BC boot ROM does not have DECKARD. I got a dump once, from one of the members here (can't think of who it was at the moment, sorry). Anyway, its IOP was always software-emulated, wasn't it? It would probably make more sense if the "IOP" would not require PPC code from the emulation target's boot ROM. That chip is the only RAM chip that physically exists and is near the IOP. Other than the EE RDRAM chips, of course.
DECKARD is probably a reference to Blade Runner. It's likely to be emulating (or replicating) something. Whether this is the R3000 code is another matter, but it's definitely worth investigating. I have a 77003.
I forgot to mention, that the SCPH-75000 and later also have some new features that seem emulation-like (again, done by the IOP): 1. EECONF can change some locations (the region letters) in ROM, by writing to registers at a strange address. As mentioned before, the 75K and later have a fully universal boot ROM th. 2. EECONF also writes the MAC address to another register at another weird address. There is no longer a SPEED chip (Which contained the SMAP interface) on the 75K later, as the SSBUSC and SPEED have been integrated into the IOP. 3. EECONF also sets the advertised features that the virtual SPEED chip of the 75K and later will report, via another strange register. On all consoles, it only sets it to a value of 0x03 (ATA and SMAP). The SCPH-70000 has a real IOP chip and has 2MB of EDO RAM, like with the SCPH-50000. The parts are the same. The changes that I mentioned, are only for the 75K series and later.
It might be that the SPEED and SSBUSC is the only thing emulated, but it is entirely possible that its the entire IOP. I don't know any PPC either, but it would be fun to see pcsx2 supporting it.
Here are some of the lines from DECKARD, so that the readers here will know what I'm going on about: Code: PARAM_MDEC_DELAY_CYCLE PARAM_SPU_INT_DELAY_LIMIT PARAM_SPU_INT_DELAY_PPC_COEFF PARAM_SPU2_INT_DELAY_LIMIT PARAM_SPU2_INT_DELAY_PPC_COEFF PARAM_DMAC_CH10_INT_DELAY PARAM_CPU_DELAY PARAM_SPU_DMA_WAIT_LIMIT PARAM_GPU_DMA_WAIT_LIMIT PARAM_DMAC_CH10_INT_DELAY_DPC PARAM_CPU_DELAY_DPC PARAM_USB_DELAYED_INT_ENABLE PARAM_TIMER_LOAD_DELAY PARAM_SIO0_DTR_SCK_DELAY PARAM_SIO0_DSR_SCK_DELAY_C PARAM_SIO0_DSR_SCK_DELAY_M PARAM_MIPS_DCACHE_ON PARAM_CACHE_FLASH_CHANNELS The files within DECKARD (Located at 0xC3A00000 in ROM): Code: PlayStation 2 ROM image generator v1.20 --------------------------------------- ROM datestamp: 2006/04/12 ROM comment: 20060412-222127,deckard.conf,deckard.bin,knaka@rom-server/~/build/20060412/deckard/src File list: Name Size Offset Version Date Comments -------------------------------------------------------------------------- RESET 0 0x00000000 - 2006/04/12 - DECKARD 67240 0x00000120 01.01 2006/04/12 - DPATCH 2084 0x0001d000 01.01 2006/04/12 - LOADER 8192 0x0001e000 01.01 2006/04/12 - Total size: 77516 bytes in 4 files. This DECKARD image was taken from a R-chassis SCPH-90000 series. Why would it be interesting if it was implemented by PCSX2? It doesn't actually need to emulate such a processor to get PS2 game compatibility. All it has to do, is to emulate an actual IOP.
Emulating something is one of the easiest ways to prove how something works. Depending on how accurate Deckard is, it might also throw more light on IOP behaviour (edge/corner cases etc).
Why do you say that emulation is one of the easiest ways to prove how something works? If there isn't a suitable emulator out there, then wouldn't having to write one be counter-productive because you will have deal with the possibility that your emulator does not work right? Not to mention that it is likely a custom device, like how a normal IOP already is. Unless you're trying to say that emulation would be the easiest way to prove what DECKARD does, as you think that it's a complete program that emulates something? I have this feeling that it's only just a software-side to a hardware implementation of something, like how the EE emulates the PS GPU while in PS mode (the IOP has the registers and DMA channel, but the "GPU" is actually the EE running PS1DRV). Given that it's so small (as shown in one of my earlier posts, it's only about 80KB in size).
It looks like an emulator to me - I guess by the time they were designing the slim the R3000 was so old they couldn't get a core that worked with the fabrication process they were using. The 4MB RAM also makes sense - they need 2MB of working RAM for the emulated R3k, and they also need RAM to store the emulator code and the working data for the PPC, and going from a 16mbit to a 32mbit device is going to be a lot cheaper than having two separate chips. I wonder if this is the reason for the compatibility problems that some games have with slim PS2?
I think R3000 is so simple nowdays that any company could produce them. Also they were used for routers for a long time. Compatibility problems in PS2 games I think came from different clocks/thread completion time assumptions/wrong use of hardware (undefined behavior).
Personally, I feel that it's likely caused by emulation of some sort. The console is still spec'ed to have the same specs as its predecessor.... but obviously something else has gone wrong (otherwise even changes between even the SCPH-15000 and SCPH-30000 would have killed those games). I wonder if the R-chassis units have flash ROM because they've killed off system and DVD player update support on these consoles. The strange thing is that even after they did that, they still didn't kill off the code that attempts to load a system update from the (seemingly never-existent) flash storage on these slimline consoles. Anyway, that fails because the flash storage driver modules are missing. Although it's frequently speculated that this system (implemented since ROM v1.70 on the SCPH-50000, which actually has the flash storage drivers) was from the PSX, the code is very different in design.