Создать ответ 
 
Рейтинг темы:
  • Голосов: 2 - Средняя оценка: 5
  • 1
  • 2
  • 3
  • 4
  • 5
DreamShell 4.0 RC 2
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7399
Зарегистрирован: 04.01.2005
Рейтинг: 32
Сказал спасибо: 160
Поблагодарили 1358 раз(а) в 839 сообщ.
Сообщение: #69
RE: DreamShell 4.0 RC 2
(25.07.2014 12:04)shadow писал(а):  SWAT, почему именно 32 Кб, а не 64? Что это за цифра такая магическаяSmile

Никакой магии здесь нет Smile
Все очень просто... ну почти Smile
Основное место загрузчика, находится в области так сказать системной памяти (та что ниже 0x8c010000).
Как можно заметить, размер всей этой области равен 64 Кб. Но в ней находятся еще и другие данные.
Допустим первые 16 Кб (0x8c000000 - 0x8c004000) заняты системными вызовами и некоторыми параметрами, трогать их пока нельзя, так как я эмулирую только для GD, а они там в середине.
В области 0x8c00f400 - 0x8c010000 у KATANA находится таблица для прерываний, а в области 0x8c00C000 - 0x8c00f400 находится stack.
Простой арифметикой мы получаем область 0x8c004000 - 0x8c00C000, размер которой равен 32 Кб ровно.
Конечно если размещать загрузчик в high memory, то там можно больше разгуляться, но эта область не надежна, поэтому я не могу расчитывать на нее полноценно.
Более того, некоторые игры используют и пространство 0x8c004000 - 0x8c008000 (до IP.BIN) для своих нужд, поэтому такие игры приходится запускать размещая загрузчик в конце памяти, вместо начала. Так же это приходится делать если игра запускается с IP.BIN, так как он "откусывает" половину пространства для загрузчика, а в 16 Кб его уместить уже просто нереально.
Не все игры, которые используют эту область, используют ее полностью. Некоторые используют всего пару килобайт, поэтому загрузчик можно просто немного сместить, если он занимает меньше чем 32 Кб. Поэтому 32Кб для загрузчика это предел, который лучше вообще не достигать, а иметь запас в пару-тройку килобайт для подобных случаев, да и свободное пространство за загрузчиком, которые он не занял, используется для некоторых других нужд (не обязательных правда, но все же).
В общем вот такая картина пока. Нужно заняться эмуляцией всех системных вызовов для того чтобы получить дополнительную память. Но сколько ее в итоге получится, если по сути нужно повторить тот же функционал (за исключением GD), я пока затрудняюсь ответить, может и не стоит овчинка выделки, хотя в данный момент даже пара килобайт была бы кстати.

В общем я сейчас ужал загрузчики как мог, но все равно не влезает запись на файловую систему (для сохранения скриншотов), она прибавляет для загрузчика веса почти на 5 Кб, а это выходит за рамки дозволенного примерно на 2 Кб. Поэтому скорее всего данный функционал я не сделаю до момента создания эмуляции всех системных вызовов. А лепить отдельный "толстый" загрузчик, который будет размещаться только в конце памяти и именно для этих целей я наверное не буду, так как это потянет за собой еще другие доработки. Лучше уж взяться за остальные системные вызовы и сделать все как надо. К тому же у меня есть еще и другие идеи, для которых тоже нужно свободное место Smile

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 25.07.2014 в 13:14, отредактировал пользователь SWAT.)
25.07.2014 13:13
Вебсайт Найти все сообщения Цитировать это сообщение
 Сказали спасибо: SILENT_Pavel , shadow
Создать ответ 


Сообщения в этой теме
DreamShell 4.0 RC 2 - SWAT - 15.05.2014, 09:28
RE: DreamShell 4.0 RC 2 - kof888 - 15.05.2014, 09:32
RE: DreamShell 4.0 RC 2 - cybdyn - 15.05.2014, 11:28
RE: DreamShell 4.0 RC 2 - jjaa081620 - 15.05.2014, 13:42
RE: DreamShell 4.0 RC 2 - ands - 15.05.2014, 18:45
RE: DreamShell 4.0 RC 2 - SWAT - 16.05.2014, 10:27
RE: DreamShell 4.0 RC 2 - SWAT - 16.05.2014, 22:27
RE: DreamShell 4.0 RC 2 - SWAT - 18.05.2014, 21:22
RE: DreamShell 4.0 RC 2 - SWAT - 21.05.2014, 12:59
RE: DreamShell 4.0 RC 2 - SWAT - 22.05.2014, 09:07
RE: DreamShell 4.0 RC 2 - ands - 22.05.2014, 22:50
RE: DreamShell 4.0 RC 2 - SWAT - 23.05.2014, 06:08
RE: DreamShell 4.0 RC 2 - wallace - 26.05.2014, 23:27
RE: DreamShell 4.0 RC 2 - SWAT - 27.05.2014, 06:32
RE: DreamShell 4.0 RC 2 - SWAT - 27.05.2014, 10:11
RE: DreamShell 4.0 RC 2 - SWAT - 29.05.2014, 09:11
RE: DreamShell 4.0 RC 2 - wallace - 30.05.2014, 12:24
RE: DreamShell 4.0 RC 2 - SWAT - 30.05.2014, 13:20
RE: DreamShell 4.0 RC 2 - SWAT - 30.05.2014, 13:15
RE: DreamShell 4.0 RC 2 - demio - 30.05.2014, 13:11
RE: DreamShell 4.0 RC 2 - SWAT - 30.05.2014, 13:48
RE: DreamShell 4.0 RC 2 - demio - 30.05.2014, 14:19
RE: DreamShell 4.0 RC 2 - shadow - 30.05.2014, 17:03
RE: DreamShell 4.0 RC 2 - wallace - 30.05.2014, 20:37
RE: DreamShell 4.0 RC 2 - SWAT - 30.05.2014, 20:41
RE: DreamShell 4.0 RC 2 - SWAT - 30.05.2014, 19:22
RE: DreamShell 4.0 RC 2 - SWAT - 30.05.2014, 20:36
RE: DreamShell 4.0 RC 2 - wallace - 30.05.2014, 21:29
RE: DreamShell 4.0 RC 2 - wallace - 30.05.2014, 21:44
RE: DreamShell 4.0 RC 2 - cybdyn - 30.05.2014, 22:49
RE: DreamShell 4.0 RC 2 - SWAT - 31.05.2014, 08:50
RE: DreamShell 4.0 RC 2 - SWAT - 31.05.2014, 13:39
RE: DreamShell 4.0 RC 2 - SWAT - 03.06.2014, 09:48
RE: DreamShell 4.0 RC 2 - wallace - 08.06.2014, 14:06
RE: DreamShell 4.0 RC 2 - SWAT - 08.06.2014, 14:25
RE: DreamShell 4.0 RC 2 - SWAT - 22.06.2014, 11:29
RE: DreamShell 4.0 RC 2 - SWAT - 27.06.2014, 09:06
RE: DreamShell 4.0 RC 2 - TeX - 08.07.2014, 13:45
RE: DreamShell 4.0 RC 2 - SWAT - 08.07.2014, 15:25
RE: DreamShell 4.0 RC 2 - TeX - 08.07.2014, 17:23
RE: DreamShell 4.0 RC 2 - SWAT - 08.07.2014, 20:22
RE: DreamShell 4.0 RC 2 - TeX - 08.07.2014, 20:34
RE: DreamShell 4.0 RC 2 - TeX - 13.07.2014, 19:40
RE: DreamShell 4.0 RC 2 - SWAT - 14.07.2014, 11:24
RE: DreamShell 4.0 RC 2 - SWAT - 14.07.2014, 17:15
RE: DreamShell 4.0 RC 2 - TeX - 15.07.2014, 22:28
RE: DreamShell 4.0 RC 2 - SWAT - 16.07.2014, 08:05
RE: DreamShell 4.0 RC 2 - TeX - 16.07.2014, 20:55
RE: DreamShell 4.0 RC 2 - SWAT - 17.07.2014, 10:16
RE: DreamShell 4.0 RC 2 - SWAT - 24.07.2014, 22:00
RE: DreamShell 4.0 RC 2 - SWAT - 25.07.2014, 09:18
RE: DreamShell 4.0 RC 2 - shadow - 25.07.2014, 12:04
RE: DreamShell 4.0 RC 2 - SWAT - 25.07.2014 13:13
RE: DreamShell 4.0 RC 2 - TeX - 26.07.2014, 15:16
RE: DreamShell 4.0 RC 2 - SWAT - 27.07.2014, 08:03
RE: DreamShell 4.0 RC 2 - TeX - 28.07.2014, 00:48
RE: DreamShell 4.0 RC 2 - SWAT - 28.07.2014, 08:18
RE: DreamShell 4.0 RC 2 - TeX - 29.07.2014, 00:10
RE: DreamShell 4.0 RC 2 - SWAT - 29.07.2014, 15:43
RE: DreamShell 4.0 RC 2 - TeX - 31.07.2014, 22:09
RE: DreamShell 4.0 RC 2 - SWAT - 01.08.2014, 07:27
RE: DreamShell 4.0 RC 2 - shadow - 01.08.2014, 14:34
RE: DreamShell 4.0 RC 2 - SWAT - 01.08.2014, 14:52
RE: DreamShell 4.0 RC 2 - TeX - 01.08.2014, 15:22
RE: DreamShell 4.0 RC 2 - SWAT - 02.08.2014, 09:54
RE: DreamShell 4.0 RC 2 - TeX - 02.08.2014, 14:49
RE: DreamShell 4.0 RC 2 - aldair - 14.08.2014, 07:24
RE: DreamShell 4.0 RC 2 - alex - 02.08.2014, 19:08
RE: DreamShell 4.0 RC 2 - SWAT - 03.08.2014, 08:44
RE: DreamShell 4.0 RC 2 - alex - 03.08.2014, 13:24
RE: DreamShell 4.0 RC 2 - SWAT - 03.08.2014, 15:45
RE: DreamShell 4.0 RC 2 - SWAT - 12.08.2014, 12:53
RE: DreamShell 4.0 RC 2 - alex - 16.08.2014, 04:43
RE: DreamShell 4.0 RC 2 - SWAT - 16.08.2014, 19:14
RE: DreamShell 4.0 RC 2 - SWAT - 14.08.2014, 07:35
RE: DreamShell 4.0 RC 2 - aldair - 14.08.2014, 20:37
RE: DreamShell 4.0 RC 2 - aldair - 15.08.2014, 01:14
RE: DreamShell 4.0 RC 2 - aldair - 16.08.2014, 11:13
RE: DreamShell 4.0 RC 2 - cybdyn - 14.08.2014, 10:56
RE: DreamShell 4.0 RC 2 - SWAT - 14.08.2014, 14:39
RE: DreamShell 4.0 RC 2 - cybdyn - 14.08.2014, 18:11
RE: DreamShell 4.0 RC 2 - alex - 16.08.2014, 19:50
RE: DreamShell 4.0 RC 2 - SWAT - 17.08.2014, 08:56
RE: DreamShell 4.0 RC 2 - alex - 17.08.2014, 09:03
RE: DreamShell 4.0 RC 2 - Lin - 17.08.2014, 16:03
RE: DreamShell 4.0 RC 2 - alex - 17.08.2014, 19:31
RE: DreamShell 4.0 RC 2 - SWAT - 18.08.2014, 07:48
RE: DreamShell 4.0 RC 2 - alex - 18.08.2014, 21:48
RE: DreamShell 4.0 RC 2 - SWAT - 19.08.2014, 07:49
RE: DreamShell 4.0 RC 2 - SuperClaw - 20.08.2014, 12:16
RE: DreamShell 4.0 RC 2 - SWAT - 20.08.2014, 12:48
RE: DreamShell 4.0 RC 2 - SuperClaw - 20.08.2014, 12:59
RE: DreamShell 4.0 RC 2 - SuperClaw - 20.08.2014, 13:31
RE: DreamShell 4.0 RC 2 - SWAT - 20.08.2014, 15:26
RE: DreamShell 4.0 RC 2 - SuperClaw - 20.08.2014, 16:03
RE: DreamShell 4.0 RC 2 - SWAT - 20.08.2014, 20:43
RE: DreamShell 4.0 RC 2 - SuperClaw - 20.08.2014, 23:05
RE: DreamShell 4.0 RC 2 - SuperClaw - 21.08.2014, 05:42
RE: DreamShell 4.0 RC 2 - SWAT - 21.08.2014, 06:20
RE: DreamShell 4.0 RC 2 - SuperClaw - 21.08.2014, 19:38
RE: DreamShell 4.0 RC 2 - SWAT - 22.08.2014, 07:36
RE: DreamShell 4.0 RC 2 - SWAT - 05.09.2014, 07:59
RE: DreamShell 4.0 RC 2 - SuperClaw - 22.08.2014, 15:35
RE: DreamShell 4.0 RC 2 - SWAT - 22.08.2014, 20:06
RE: DreamShell 4.0 RC 2 - SuperClaw - 22.08.2014, 21:27
RE: DreamShell 4.0 RC 2 - SuperClaw - 27.08.2014, 09:34
RE: DreamShell 4.0 RC 2 - SWAT - 27.08.2014, 20:40

Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
Звезда DreamShell v4.0.2 Release SWAT 64 11510 19.06.2025 17:19
Посл. сообщение: Elgor4uk
  Результаты теста DreamShell v4.0.1 Elgor4uk 27 8462 06.06.2025 16:03
Посл. сообщение: SWAT
Звезда DreamShell v4.0.1 Release SWAT 210 122454 14.05.2025 11:54
Посл. сообщение: fafadou
Радуга DreamShell на GitHub SWAT 76 162663 24.03.2025 03:39
Посл. сообщение: yo4yo4
  Sonic theme for DreamShell v4.0.1 Dolphin_PS2 0 1495 20.02.2025 03:09
Посл. сообщение: Dolphin_PS2
Улыбка DreamShell bootloader bios megavolt85 171 591953 26.12.2024 23:53
Посл. сообщение: megavolt85
Звезда DreamShell v4.0.0 Release SWAT 202 204977 14.10.2024 14:09
Посл. сообщение: SWAT
  ISO_CSO in Dreamshell aldair 0 2069 12.10.2024 02:57
Посл. сообщение: aldair
  GTA3 Dreamshell SD Card/Dreamcast aldair 3 5367 26.08.2024 06:29
Посл. сообщение: SWAT
  Dreamshell freeze at logo boot up pkerga 17 14040 22.07.2024 06:10
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 2 Гость(ей)