[ Новые сообщения · Участники · Правила форума · Поиск · Подписки ]
Модератор форума: archicharmer  
PSX-Core.ru - Программное сообщество PlayStation » Общий форум по PlayStation 2 » Приложения для PlayStation 2 » Эмуляторы для PS2 (Эмуляторы различных платформ для консоли Playstation 2)
Эмуляторы для PS2

Dyons Дата: Вт, 27 Июл 2010, 21:12 | Сообщение #781
Не зря его взяли
Сообщений: 335
Награды: 0  +
Замечания:  ±
Quote (ZimZum)
Сказать что-либо более осмысленное религия не позволяет?

Может еще и книжки вам расжевывать. Эмуль жрет 28 мб, только потому что ему надо эмулировать проц и озу. А не потому что каким то магическим образом там появятся какие то мифические фишки о которых вы писали выше. В лучшем случае увеличится скорость загрузки игр. Да и то не факт


вайдскрин хаки для ps2 и xbox
 

ZimZum Дата: Вт, 27 Июл 2010, 21:46 | Сообщение #782
Подает надежды
Сообщений: 227
Награды: 0  +
Замечания:  ±
Quote (Dyons)
Может еще и книжки вам расжевывать. Эмуль жрет 28 мб, только потому что ему надо эмулировать проц и озу. А не потому что каким то магическим образом там появятся какие то мифические фишки о которых вы писали выше. В лучшем случае увеличится скорость загрузки игр. Да и то не факт

Хех, это мне и так известно. Вообще-то в своём посте я не затрагивал принципы работы эмуля, а пытался описать работу ОЗУ вообще, как она работает в компах и т.д. Формулировка вопроса Retro¥GAMER'а ох как далека до идеала, поэтому я её понял как "Чем ОЗУ в 28 метров лучше ОЗУ в 2 метра?". У кого есть другие варианты - поправьте меня.


SCPH-75004
 
mishail12 Дата: Вт, 27 Июл 2010, 22:44 | Сообщение #783
За ним будущее
Сообщений: 699
Награды: 0  +
Замечания:  ±
Dyons, вообще-то Dimmписал , что будет сглаживание(какие там ещё мистические фишки???).

PS2 v.9 FMCB ide120GBsmsng ide40GBmxtr agestar(ide->usb adapter) :D

 
Dyons Дата: Вт, 27 Июл 2010, 23:02 | Сообщение #784
Не зря его взяли
Сообщений: 335
Награды: 0  +
Замечания:  ±
Quote (mishail12)
Dyons, вообще-то Dimmписал , что будет сглаживание

Сглаживание к ОЗУ отношения не имеет.


вайдскрин хаки для ps2 и xbox
 
dimm Дата: Ср, 28 Июл 2010, 00:34 | Сообщение #785
Много знает
Сообщений: 1102
Награды: 0  +
Замечания:  ±
Хватит вам из-за памяти ругаться. Вот объяснение ffgriever по этому поводу:
Quote
The emulator itself (lets call it "the core") won't have any complex GUI at all. Just some simple text based menu, allowing user to do some basic operations (take screenshot, save, load, change disc, reset emulator, shutdown console, exit to external app, exit to the actual GUI).

The actual GUI will be a separate application, that will serve as configurator and launcher for the core. Why this way, you ask? Well, there are many reasons, but two of them are the most important.

1. The GUI for the project might be quite complex. I'd rather use c++ for it, as it's much easier to use for this kind of stuff. Plus the new universal GUI framework I work on is written in c++ (it will work on both PS2 and Windows, which I need for some other project I'm working on). On the other hand, the overhead in the compiled c++ code makes the whole emulator work muuuch slower (plus the core requires a lot of changes to compile at all as c++ ). When it comes to the lowest level, the pure c aided by direct assembly is much easier to work with (and much more efficient).

2. The memory the GUI will use would most likely need some huge changes to the core. The PS2 has 32MB of main RAM and I'm emulating a machine that has just 2MBytes, so what's the problem? Well, it's not actually that straightforward as you might think.

Let's start with the PSX Vram emulation. It is only 1MByte, right? True, but to emulate it efficiently I need few times this much. Why? Let me explain:

The PSX Vram is divided into texture pages. Each is 256x256 pixels regardless of the pixel depth. So you might think it would mean the Vram has only 4x2 16bit pages, 8x2 8bit pages and 16x2 4bit pages? Far from it! Each page can start horizontally at the multiple of 64 halfords (2bytes, because the PSX Vram can be treated as 1024x512x16bpp area) and vertically at the multiple of 256. A primitive can use only texture in one texture page. The texture pages can overlap (so, eg. you can have 64x256x16bit texture in page (0,0) and 256x256x4bit in page (1,0) ). Additionally, at the time the texture/clut data is being sent to the Vram, you have no idea, which bit depth it is in. You will know it only at the primitive drawing time. So, to emulate the Vram efficiently, you have to allocate:

32 256x256 16bit texture pages (4MBytes)
32 256x256 8bit texture pages (2Mbytes)
32 256x256 4bit texture pages (1MByte )
+ 1MByte for the actual PSX Vram Memory to store the data before we will know what depth the texture has.

Добавлено (28.07.10, 00:33)
---------------------------------------------

Quote
That means 8 freaking MBytes to emulate 1MByte of PSX Vram! Quite a lot, isn't it? Couldn't it use less memory? Well, it could, but it wouldn't be as efficient as it is now (my PS2 Vram manager takes care of everything, so the LRU algorithm for texture storage in PS2 Vram is used - only 4MBytes of Vram on PS2 and we need two display buffers of 640x512x32bit/16bit !).

And no. You can't just allocate it as one texture in PS2 Vram. There are few problems, but some are most important. You would need 4096x512 texture for 4bit, but PS2 supports 1024 size max. The other problem is that you can't just store it as 16bit and then use it as 4bit or 8bit. PS2 Stores the texture formats quite different in the vram. You could swizzle them properly and still load 4bit as 32bit, but that gives some additional problems, not to mention that at the load time you have now idea of the depth. This approach is a no go anyway.

That's what we need for textures. But there are also CLUTs that we have to take care of. I coded clut cache that has some fixed entries. The cluts are replaced by the LRU algorithm. The cache right now uses 256kBytes. But it's not perfect. If the clut has changed or has not yet been uploaded to PS2 Vram (or has been replaced in Vram by some other clut by the Vram manager), it is loaded just before the first primitive using it is being drawn. That's usually fine. But consider a situation, when a game uses in single frame a lot more cluts that can be placed in the cache. It could lead to the situation, when a clut is least recently used, but it has still not been uploaded to the Vram. Now the cache buffer is being changed... What's the result? Well, a texture is being displayed as garbage, as there is wrong clut uploaded. That's quite uncommon situation, but happens in some games. The LRU algorithm is quite efficient (bidirectional lists with pointers to cache entries, the used one moved to the top, etc., basic coding stuff... designed to make both LRU algo and cache search as efficient as possible). Searching the cache to check whether currently needed clut is already in cache is a little bit slower, but still quite fast). I can't extend the cache, as searching for cache hits will become too slow. I also can't make it the way I did for texture, as clut can begin at the multiple of 8 halfords horizontaly and 1 vertically. I would need some dirty flags, entries for LRU algo... That would simply need a lot of additional RAM, that I don't have right now. I will think of a way to make it efficient while still not affected by the situation described above.

Добавлено (28.07.10, 00:34)
---------------------------------------------

Quote
That's the PSX Vram.

Now you need 2MBytes for the actual PSX Ram, 512KBytes for the ROM, scratchpad, SPU memory, parallel area, hardware mapped stuff. There are also lookup pages for many things to increase efficiency... Quite a lot of memory to even do the very basic emulation (eg. in interpreter mode)! The lookup tables are not used for PSX memory access, neither for PSX hardware access (thanks to PS2 incredible TLB configuration capabilities, I can simply access the memory and emulated hardware directly, without using any lookup tables... though for writes I have to do some additional stuff to make sure the self modifying code does work on the emulator).

Now, the interpreter would be quite slow, so we need a dynamic binary translator (recompiler). So we need additional memory for the recompiled code. Most of the games would need at most 2-3MBytes, but if the game uses self modifying code (or sort of plugin systems, when there is main executable and then it loads others to do some specific stuff), it needs much more, because otherwise the emulator would need to flush the entire cache too often. So right now I allocated 8MBytes for it.

Most of the caches need specific alignment. Because of the TLB requirements, some of them have to be even aligned to 1Mbyte boundary (the main PSX Ram, which is then mapped using two halfentries along with the process id, so it doesn't overlap with the main ps2 processes, that can access their own, usual mappings - that actually needed some additional work, because the PS2 was hanging at interrupts and other stuff, but it wasn't that hard to do). I did as much as I could to minimize the memory lost due to alignment, but some is still being wasted.

There is also some other stuff to make the emulation efficient. Some intermediate buffers, cdrom buffer (small on iop, a lot bigger on ee side). Then the memory used by the emulator itself (~500kB, pure code, as only 128x128x4bit - 8kB - font is embedded).

Putting everything together, the core uses now almost (or even above? I didn't check it recently ) 28MBytes of memory! It could be coded to conserve the memory, but I'm sure you will agree with me on the point, that I should prefer the efficiency over memory usage, right?

So there is no space for the complex GUI in the core. Of course I could free the dynamically allocated memory, load the GFX for the time GUI is being displayed, then free again, reallocate, rebuild buffers, etc, etc. But that would cause some problems. GUI access would be quite slow (need to load everything from mc/usb/hdd every time), it could eventually lead to memory fragmentation, so it might not be possible to allocate the needed memory block (especially at specific boundaries). There are also some other problems, because some buffers cannot be deallocated inside the PSX code... But once the used code is recompiled, the emu won't actually leave the PSX code until the code has changed or new code is being executed (the PS2 code is being called from within PSX code!).

So as you see it's a lot more complex that you might have thought it was. That's why the core will have just the basic interface, and the main GUI will have to be separate application used for configuring and launching. But I believe it doesn't pose any usibility issues. You will still be able to configure everything, then play the game, do all the stuff you need and return to the GUI if you need to reconfigure...

Shoot! I was going to write a lot more, but the text has already reached 8kB boundary (hmm... almost 8.6 actually). I will stop here, as it might be too much and too boring to read. .

Yeah, well, I hope it's understandable.



Play games, not consoles
 

Retro¥GAMER Дата: Сб, 31 Июл 2010, 15:49 | Сообщение #786
Не проведешь
Сообщений: 1736
Награды: 1  +
Замечания:  ±
На psx-scene внедряют языковые файлы в эмулятор пс1,может кто попросит текст для перевода на "великий и могучий"?
 
zoyt Дата: Сб, 31 Июл 2010, 15:55 | Сообщение #787
Не зря его взяли
Сообщений: 357
Награды: 0  +
Замечания:  ±
Quote (Retro¥GAMER)
На psx-scene внедряют языковые файлы в эмулятор пс1,может кто попросит текст для перевода на "великий и могучий"?

че то я не нашел там ветку про ПС1


PS2 scph77008 pal
 
Izotov Дата: Сб, 31 Июл 2010, 16:10 | Сообщение #788
За ним будущее
Сообщений: 889
Награды: 0  +
Замечания:  ±
Когда обещают альфу выложит на всеобщий обзор? Уже руки чешутся biggrin


19.08.2010 PSJB
 

Retro¥GAMER Дата: Сб, 31 Июл 2010, 16:58 | Сообщение #789
Не проведешь
Сообщений: 1736
Награды: 1  +
Замечания:  ±
Zoyt,смотри тут psx-scene.com/forums/showthread.php?s=e1cadc57fbc73df6768f9ca39587ac66&p=492226#post492226
 

zoyt Дата: Сб, 31 Июл 2010, 18:36 | Сообщение #790
Не зря его взяли
Сообщений: 357
Награды: 0  +
Замечания:  ±
Retro¥GAMER, Там уже некто Ensight предложил перевести на русский. Смысла не вижу просить еще.

PS2 scph77008 pal
 
PSX-Core.ru - Программное сообщество PlayStation » Общий форум по PlayStation 2 » Приложения для PlayStation 2 » Эмуляторы для PS2 (Эмуляторы различных платформ для консоли Playstation 2)
Поиск:

Новости сайта
11 Апр 2024

03 Апр 2024

02 Апр 2024

21 Мар 2024

16 Мар 2024

13 Мар 2024

13 Мар 2024

29 Фев 2024

28 Фев 2024

27 Фев 2024

04 Фев 2024

27 Янв 2024

25 Янв 2024

08 Янв 2024

15 Дек 2023

06 Дек 2023

06 Дек 2023

06 Дек 2023

08 Ноя 2023

26 Окт 2023

22 Сен 2023

19 Сен 2023

13 Сен 2023

13 Сен 2023

10 Сен 2023

10 Сен 2023

08 Сен 2023

10 Авг 2023

10 Авг 2023

07 Июн 2023

04 Июн 2023

15 Май 2023

25 Апр 2023

19 Апр 2023

01 Апр 2023

20 Мар 2023

14 Мар 2023

14 Мар 2023

11 Мар 2023

08 Мар 2023

08 Мар 2023

08 Мар 2023

08 Мар 2023

06 Мар 2023

06 Мар 2023

04 Мар 2023

28 Фев 2023

02 Фев 2023

01 Фев 2023

19 Янв 2023

Новое на форуме
Программы и Приложения для PlayStation Portable
[pvc1 в 09:24|19 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 20:33|16 Апр 2024] 
 
Прошивки и программы для PlayStation Vita
[pvc1 в 16:48|15 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 10:48|14 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 10:34|14 Апр 2024] 
 
ПК софт для PlayStation 5
[pvc1 в 10:28|14 Апр 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 09:37|13 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 18:04|11 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 23:05|10 Апр 2024] 
 
Общая дискуссия по PlayStation 1
[pvc1 в 13:19|10 Апр 2024] 
 
Приложения для PlayStation 5
[pvc1 в 07:28|06 Апр 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 11:11|05 Апр 2024] 
 
Об играх PlayStation 2
[РУС в 23:06|04 Апр 2024] 
 
Общая дискуссия по PlayStation 2
[Evgen1988ii в 14:17|03 Апр 2024] 
 
Общая дискуссия по PS Portal
[pvc1 в 06:57|03 Апр 2024] 
 
Общая дискуссия по PS Portal
[pvc1 в 06:45|03 Апр 2024] 
 
Программы и Приложения для PlayStation Portable
[pvc1 в 06:31|02 Апр 2024] 
 
Эмуляторы для PlayStation Vita
[pvc1 в 06:27|02 Апр 2024] 
 
Эмуляторы для PlayStation 3
[pvc1 в 06:26|02 Апр 2024] 
 
Общая дискуссия по PlayStation 5
[pvc1 в 20:26|27 Мар 2024] 
 
Мобильные приложения
[pvc1 в 08:15|26 Мар 2024] 
 
Приложения для PlayStation 4
[pvc1 в 08:03|26 Мар 2024] 
 
Эмуляторы для PlayStation Vita
[pvc1 в 19:05|21 Мар 2024] 
 
ПК программы для PlayStation 3
[pvc1 в 19:31|20 Мар 2024] 
 
Прошивки и приложения для PlayStation 3
[karenjan99 в 17:03|20 Мар 2024] 
 
Об играх PlayStation 2
[Adanjanuzai в 11:52|18 Мар 2024] 
 
Общая дискуссия по PlayStation 3
[pvc1 в 20:15|17 Мар 2024] 
 
Пишем, что хотим и о чем хотим...
[tupik2 в 16:53|14 Мар 2024] 
 
ПК программы для PlayStation 2
[pvc1 в 14:42|14 Мар 2024] 
 
Прошивки для PlayStation 4
[pvc1 в 19:38|13 Мар 2024] 
 
Общая дискуссия по PlayStation 5
[pvc1 в 16:15|13 Мар 2024] 
 
Железные вопросы PlayStation 2
[denben0487 в 23:33|08 Мар 2024] 
 
Прошивки и программы для PlayStation Vita
[pvc1 в 19:26|08 Мар 2024] 
 
Железные вопросы PlayStation 2
[Igor21 в 07:55|07 Мар 2024] 
 
Железные вопросы PlayStation 2
[Igor21 в 07:55|07 Мар 2024] 
 
Железные вопросы PlayStation 2
[Igor21 в 07:53|07 Мар 2024] 
 
ПК программы для PlayStation 3
[pvc1 в 13:24|06 Мар 2024] 
 
ПК программы для PlayStation 3
[pvc1 в 21:22|05 Мар 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 21:22|04 Мар 2024] 
 
Программы и Приложения для PlayStation Portable
[pvc1 в 21:11|04 Мар 2024] 
 
Приложения для PlayStation 2
[vitas155 в 16:02|03 Мар 2024] 
 
Приложения для PlayStation 2
[vitas155 в 14:06|03 Мар 2024] 
 
Об играх PlayStation 3
[karenjan99 в 17:10|29 Фев 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 08:10|28 Фев 2024] 
 
Железные вопросы PlayStation 2
[denben0487 в 01:09|28 Фев 2024] 
 
Прошивки и приложения для PlayStation 3
[pvc1 в 16:59|27 Фев 2024] 
 
Прошивки и программы для PlayStation Vita
[pvc1 в 18:38|24 Фев 2024] 
 
Железные вопросы PlayStation 2
[Dikavelll в 14:50|24 Фев 2024] 
 
Железные вопросы PlayStation 2
[vitas155 в 15:29|21 Фев 2024] 
 
ПК софт для PlayStation 4
[pvc1 в 15:59|20 Фев 2024] 
 
Топ 50 файлов
136885-загрузок

76191-загрузок

71156-загрузок

62385-загрузок

54748-загрузок

48702-загрузок

42315-загрузок

36495-загрузок

35795-загрузок

28034-загрузок

24244-загрузок

23598-загрузок

22030-загрузок

21039-загрузок

19901-загрузок

19830-загрузок

18255-загрузок

17759-загрузок

16658-загрузок

16287-загрузок

15330-загрузок

14294-загрузок

14241-загрузок

14119-загрузок

13846-загрузок

13556-загрузок

13519-загрузок

12835-загрузок

12818-загрузок

12773-загрузок

12574-загрузок

11748-загрузок

11651-загрузок

11188-загрузок

11155-загрузок

11065-загрузок

10622-загрузок

10393-загрузок

10044-загрузок

9730-загрузок

9668-загрузок

9228-загрузок

9216-загрузок

9154-загрузок

9126-загрузок

9031-загрузок

8892-загрузок

8849-загрузок

8656-загрузок

8527-загрузок

Топ 100 пользователей
  • pvc1 - 10664
  • dw_tn - 4823
  • karenjan99 - 2471
  • NVS - 2057
  • vitas155 - 1737
  • Retro¥GAMER - 1736
  • Dead - 1713
  • DaeMan - 1620
  • archicharmer - 1586
  • Kastl - 1521
  • denben0487 - 1443
  • DruchaPucha - 1303
  • dimm - 1102
  • kolan - 924
  • Izotov - 889
  • mishail12 - 699
  • sdaf13 - 689
  • WOLF - 559
  • ShellShocked - 504
  • tupik - 496
  • The_REAL - 467
  • vladvlad162 - 459
  • xbox-ua - 445
  • wallace - 429
  • Mr2 - 404
  • aklakan - 394
  • LinuxFun - 381
  • Игорь - 378
  • zoyt - 357
  • reptail - 354
  • almaz - 344
  • NeahNEET - 343
  • tic0007 - 341
  • Dyons - 335
  • Mordoc - 320
  • pvo51 - 312
  • FreddyFreed - 293
  • Rion - 289
  • xxxx - 279
  • BoSonOfPirate - 275
  • doom-ex - 249
  • DecK - 246
  • ZimZum - 227
  • LyNX - 209
  • DarkDrem - 207
  • KOSMOS - 190
  • 1oleg1 - 186
  • AKuHAK - 181
  • alexsx06 - 180
  • YAGAMI55 - 171
  • Kozinenko - 170
  • warezhunter_ - 161
  • DarkTima - 160
  • vincent - 160
  • Conker - 159
  • Random - 155
  • ROBOCOP - 155
  • duk - 154
  • in1975 - 151
  • Dr_Quake - 144
  • fox1918 - 141
  • Rikki-tikki-tavi - 138
  • tleon - 136
  • MAK_roS - 136
  • adamdead - 132
  • Buddda - 131
  • Ensight - 131
  • Virtua - 129
  • Fury - 128
  • Gizmondo88 - 126
  • PS3Evil - 125
  • M@ri0 - 121
  • CutToSleep - 121
  • turuta7 - 112
  • MaNeR - 106
  • gladeshawn - 105
  • tim_cat - 103
  • shurup - 103
  • ixx - 102
  • matich - 100
  • elvo - 100
  • Bethoven1945 - 97
  • aumihta24 - 97
  • belforrrr - 96
  • nikkomp - 94
  • serjlab - 94
  • bishop - 93
  • Prosmart - 93
  • hebroid - 92
  • Дмитрий_У - 91
  • JEKAN - 91
  • NITROUIH - 91
  • Dart_Mol - 90
  • doomer - 88
  • Henry - 86
  • butt-head - 85
  • RUSKos - 84
  • rodan_lewarx - 83
  • Payol - 83
  • FrodoSumkin - 82