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

Сообщений: 7142
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 139
Поблагодарили 1180 раз(а) в 735 сообщ.
Сообщение: #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.0 Release SWAT 147 32673 20.05.2024 16:13
Посл. сообщение: SWAT
Радуга DreamShell на GitHub SWAT 70 102661 15.05.2024 15:03
Посл. сообщение: yo4yo4
  Custom DreamShell Themes pcwzrd13 11 24028 27.04.2024 13:42
Посл. сообщение: Ro Magnus Larsson
Улыбка DreamShell bootloader bios megavolt85 147 469681 05.04.2024 00:45
Посл. сообщение: megavolt85
Баг ISO Loader 0.8.x Beta + preview of DreamShell v4.0 RC 5 SWAT 918 570460 01.02.2024 13:22
Посл. сообщение: SWAT
  DreamShell on Hacker news SWAT 0 1115 10.01.2024 06:52
Посл. сообщение: SWAT
  DreamShell v4.0 UI controls manual SWAT 0 1322 21.11.2023 07:04
Посл. сообщение: SWAT
Информация DreamShell в Discord SWAT 0 3242 06.03.2023 07:53
Посл. сообщение: SWAT
  New to Dreamshell/Retrodream DeanBMT 2 4458 26.01.2023 00:35
Посл. сообщение: DeanBMT
  DreamShell с Алиэкспрес - почти нечего не работает - так и должно быть? Emigrant 11 10346 11.07.2022 09:07
Посл. сообщение: SWAT

Переход:


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