Редактор сцен EMC

Обсуждение технических вопросов (проблемы с запуском игры, баги, глюки, баглюки)

Редактор сцен EMC

Сообщение netsky » 22 сен 2014, 19:52

Где найти редактор для EMC?
Кирандия - мир дружбы, доброты и любви и никакого зла за исключением Малколма в 1-й Кирандии
Аватара пользователя
netsky
(0) Каннибал Горчичного острова
 
Сообщения: 46
Зарегистрирован: 14 июн 2008, 15:48
Откуда: Киев
Любимая часть Кирандии: 1-я
Любимые персонажи Кирандии: Брин, Дарм, Занция, Малколм
Почему Вы любите Легенду о Кирандии?: Кирандия - мир дружбы, доброты и любви

Re: Редактор сцен EMC

Сообщение Reflector » 23 сен 2014, 19:57

Если речь о полноценном редактировании кода, а не только текста, то вроде бы нигде.
Reflector
(2) Житель Милтонии
 
Сообщения: 158
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Редактор сцен EMC

Сообщение Малкольмович » 11 ноя 2014, 01:45

ну или надо разбираться в EMC-шном ассемблере =)
самое сложное, причем, не сам язык, а бесчисленные переменные и флаги, у которых, само собой, названия в скомпилированный код не пошли)

Впрочем, поправить какое-то ветвление или сделать другую микродоработку еще можно =)
Аватара пользователя
Малкольмович
(4) помощник Мистика
 
Сообщения: 293
Зарегистрирован: 22 дек 2011, 22:09
Любимая часть Кирандии: Hand of Fate, а точнее, Darkmoor Swamp из неё =)
Любимые персонажи Кирандии: Занечка всех порулит =)
Почему Вы любите Легенду о Кирандии?: это мир, в котором можно жить, а не в который играть)

Re: Редактор сцен EMC

Сообщение Reflector » 14 ноя 2014, 03:42

Малкольмович писал(а):ну или надо разбираться в EMC-шном ассемблере =)
самое сложное, причем, не сам язык, а бесчисленные переменные и флаги, у которых, само собой, названия в скомпилированный код не пошли)

Впрочем, поправить какое-то ветвление или сделать другую микродоработку еще можно =)

На самом деле я уже некоторое время потихоньку пишу нормальный компилятор :) Пока работает не особо и много, но уже понимает любые выражения, включая вложенные функции:

Код: Выделить всё
int gVar0, gVar1 = 55;
int gVar2 = gVar0 = GetRand(5, 8 + GetRand(0, 4)) + QueryGameFlag(10) + -(4 * 7 - gVar1) / 9;

При этом автоматически запускается мой декомпилятор и я сразу вижу, что получилось на выходе:

Код: Выделить всё
| 0000 | push8 55        |
| 0002 | popGVar 1       | gCursor.x = 55;
| 0004 | push8 8         |
| 0006 | push8 4         |
| 0008 | push8 0         |
| 000A | execOpcode 61   |
| 000C | addSP 2         |
| 000E | pushRet         |
| 0010 | eval (a + b)    |
| 0012 | push8 5         |
| 0014 | execOpcode 61   |
| 0016 | addSP 2         |
| 0018 | pushRet         |
| 001A | push8 10        |
| 001C | execOpcode 4    |
| 001E | addSP 1         |
| 0020 | pushRet         |
| 0022 | eval (a + b)    |
| 0024 | push8 4         |
| 0026 | push8 7         |
| 0028 | eval (a * b)    |
| 002A | pushGVar 1      |
| 002C | eval (a - b)    |
| 002E | [SP] = -[SP]    |
| 0030 | push8 9         |
| 0032 | eval (a / b)    |
| 0034 | eval (a + b)    |
| 0036 | popGVar 0       | gScene = ((GetRand(min: 5, max: (8 + GetRand(min: 0, max: 4))) + QueryGameFlag(Flag.10)) + (-(28 - gCursor.x) / 9));
| 0038 | pushGVar 0      |
| 003A | popGVar 2       | gCursor.y = gScene;

Получается довольно много и именно поэтому писать чисто ассемблер меня обломало, хотя это намного проще :)
Reflector
(2) Житель Милтонии
 
Сообщения: 158
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Редактор сцен EMC

Сообщение Малкольмович » 02 дек 2014, 08:29

Ничего себе!
я даже и помыслить не мог, что когда-нибудь у кого-нибудь дойдут руки до этого)
Когда-то я на правах несбыточной мечты выдвигал мысль, что когда-нибудь, может быть, редактирование emc-шек будет заканчиваться примерно этим:

gcc -march=scumm -mcpu=kyra2 -o mystrm.emc mystrm.c
tar --kyra -A -f mystrm.pak mystrm.emc
dosbox . -exit -c c:\kyra.exe

но теперь я вижу, что до этого осталось совсем немного!
кто-то пишет на С под Intel, кто-то под ARM, кто-то под SPARC, а мы будем писать "под кирандию" =)
круто же!)
Аватара пользователя
Малкольмович
(4) помощник Мистика
 
Сообщения: 293
Зарегистрирован: 22 дек 2011, 22:09
Любимая часть Кирандии: Hand of Fate, а точнее, Darkmoor Swamp из неё =)
Любимые персонажи Кирандии: Занечка всех порулит =)
Почему Вы любите Легенду о Кирандии?: это мир, в котором можно жить, а не в который играть)

Re: Редактор сцен EMC

Сообщение Reflector » 02 дек 2014, 14:27

Малкольмович писал(а):кто-то пишет на С под Intel, кто-то под ARM, кто-то под SPARC, а мы будем писать "под кирандию" =)

Времена немного поменялись, я сейчас пишу под Cortex-M прямо в VS на С++11 с классами и шаблонами, но без динамического выделения памяти :) Довольно большая прога может в итоге занять всего 5 Кб...
Reflector
(2) Житель Милтонии
 
Сообщения: 158
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Редактор сцен EMC

Сообщение Малкольмович » 23 янв 2015, 00:54

Угу, нам тут под "Эльбрус" в загрузчик инициализацию памяти написали на С++. Всё как полагается - с классами, указателями, new/delete, наследованием...
На этом месте уже можно понять масштаб проблемы: памяти-то у нас, когда требуется её инициализация, и нет! (все переменные - только на регистрах или константы в коде. Учитывая, что "Эльбрус" может даже массивы в регистры класть (главное, чтобы массив был не больше страницы регистрового файла) - не так уж и плохо, но вот блин, указатели-то не работают! =)
Так что теперь сидим переписываем это всё на С =)

...это я так, на правах оффтопа =)

А вообще да, если безо всяких таблиц импорта, преамбул, заголовков, выравнивания, межпроцедурных nop-ов и статических библиотек - то хороший компилятор может сгенерить такой исполняемый файл, чтобы он занимал меньше, чем код, даже если самого кода мало)
(впрочем, кто пытался писать прожки на асме с помощью MS-DOS DEBUG.COM, тот представляет себе, что это реально =) Написать TXT-шник строк эдак на 200 (вручную просчитывая все адреса с помощью таблицы опкодов инструкций) и на выходе получить COM под 800 байт весом - это норма =)
Аватара пользователя
Малкольмович
(4) помощник Мистика
 
Сообщения: 293
Зарегистрирован: 22 дек 2011, 22:09
Любимая часть Кирандии: Hand of Fate, а точнее, Darkmoor Swamp из неё =)
Любимые персонажи Кирандии: Занечка всех порулит =)
Почему Вы любите Легенду о Кирандии?: это мир, в котором можно жить, а не в который играть)

Re: Редактор сцен EMC

Сообщение bckpkol » 19 апр 2017, 17:59

5 кб? У меня hello world весил 600 кб в vs2010. Как это 5 кб?
Аватара пользователя
bckpkol
(3) Столичный горожанин
 
Сообщения: 199
Зарегистрирован: 02 янв 2011, 20:48
Откуда: город Бийск
Любимая часть Кирандии: Кирандия 3 и 4
Любимые персонажи Кирандии: Дарм, Зантия
Почему Вы любите Легенду о Кирандии?: За простоту, удобство интерфейса и лёгкую проходимость.


Вернуться в Техничка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron