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

Сообщений: 7488
Зарегистрирован: 04.01.2005
Рейтинг: 32
Сказал спасибо: 164
Поблагодарили 1423 раз(а) в 880 сообщ.
Сообщение: #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 on NAOMI SWAT 38 5708 30.10.2025 20:42
Посл. сообщение: SWAT
Звезда DreamShell v4.0.3 Release SWAT 36 7393 22.10.2025 11:37
Посл. сообщение: segatxdc
Звезда DreamShell v4.0.2 Release SWAT 99 54530 07.10.2025 05:43
Посл. сообщение: SWAT
  Windows CE Video Player on the SEGA Dreamcast/Dreamshell aldair 1 1375 04.09.2025 00:46
Посл. сообщение: Ro Magnus Larsson
  Compatibility list for DreamShell v4.0.1+ Elgor4uk 27 20045 06.06.2025 16:03
Посл. сообщение: SWAT
Звезда DreamShell v4.0.1 Release SWAT 210 188969 14.05.2025 11:54
Посл. сообщение: fafadou
Радуга DreamShell на GitHub SWAT 76 187149 24.03.2025 03:39
Посл. сообщение: yo4yo4
  Sonic theme for DreamShell v4.0.1 Dolphin_PS2 0 2626 20.02.2025 03:09
Посл. сообщение: Dolphin_PS2
Улыбка DreamShell bootloader bios megavolt85 171 643983 26.12.2024 23:53
Посл. сообщение: megavolt85
Звезда DreamShell v4.0.0 Release SWAT 202 270760 14.10.2024 14:09
Посл. сообщение: SWAT

Переход:


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