Я думаю многим здесь будет интересно узнать о судьбе легендарного эмулятора PSone для PS2 - PS2PSXe. Некоторые уже думали, что проект умер, так и не появившись на свет, так как ffgriever ничего не рассказывал и не делился с общественностью о ходе разработки. Но одному челу с psx-scene удалось вывести хитрого поляка на задушевный разговор и он немного приоткрыл железный занавес. Оказывается он время от времени занимается эмулятором, и в настоящий момент времени пишет эффективный менеджер текстур. В тоже время он подчеркнул, что это для него не самый приоритетный проект. Так как он большой любитель игр жанра RPG, сейчас он ведет активную работу по переводу Final Fantasy XII на польский язык. Это конечно мало кому здесь интересно, но если он выложит свои тулзы для ковыряния в игре(что конечно врядли), их бы можно было использовать для перевода этой части финалки на Великий и Могучий. А второй проект – это перевод Final Fantasy XII Zodiac Job System(которая выходила только в Японии) на Английский язык. Вот это уже интересней. Я надеюсь он выложит хотя бы патч для японского образа. Насчет того, кода выйдет новая версия ESR, ffgriever молчит зараза, как партизан. Для наших местных форумчан-техногиков, выкладываю отчет ffgriever насчет хода работ над эмулем первой Соньки(в оригинале) :
Well, it's being actively developed (even right now, as we speak ). Not that actively like two or so years ago, when new build was available every day, but I'm working on it. Right now I'm stuck with the textures. The use of vram is a lot different in both psx and ps2 (though they both use texture pages layouts, and I don't know of a possibility to somehow switch to psx mode in this case). So my attempt to make it both working and quite efficient was as follows: I keep lookup table with pages. Every contains location of page in memory, in vram and dirty flag. If a texture (or vram area during move to frame buffer, etc.) is being used I upload it into vram. It stays there as long, as possible. If there is a write to the page, it's being marked as dirty, and sent again into vram when it is to be used (if the depth of texture is the same, otherwise it's being freed on vram side and uploaded anew). When there is no more place for textures, the vram manager tries to find the places that are big enough to hold a texture page of said depth, and replaces the least recently used one with the new one. The problem is that:
1. Not everything is implemented properly yet.
2. It isn't always as efficient as I thought it would be.
3. Everything gets screwed more often than not.
4. Quite often the vram gets too fragmented, which makes the manager free some used textures (whole texture pages, as they can contain few textures with the same depth but different cluts), while there would be much more than enough place if the vram has been defragmented (it tries to intercept such cases, then frees all vram and just puts all the needed textures anew - which seems to be faster in most of the cases). Yes, I know PS2 has more Vram than PSX, but we need quite a big (two of them ) framebuffer and the manager/lut thing isn't perfect.
Anyway, I'm working on it from time to time, though it has a long way to go (and it's sharing the time with two other projects, one of which many of you could be interested in).