Дневник разработчика эльфов Дневник разработчика эльфов (c)bn
См. с конца.
Часть 4.

Создание эльфов дело крайне увлекательное и вместе с тем непростое.
По пути нас подстерегает множество ошибок и препятствий, порой не все идет гладко.
Я очень люблю читать дневники разработчиков, поэтому выкладываю свой.

Поскольку я уже прошел свою эльфийскую тропу,
выкладываю здесь эльфийскую переписку с Dimens+,
все то, чем я жил последние пол года.
Представлено как выдержки из писем.


23.06.07
--------
Спасибо тем, кто все еще поддерживает эльфосоздание - не делом, так добрым словом (идеей :)
Выложил разогнаный в 2 раза 0.88 z80.elf -оптимизация велась "с потерями", т.е. с "выкидыванием" редко использ. критичного кода, потому совместимость несколько ухудшилась и 5-10% ромов теперь не идут. А что делать? Зато можно заценить скорость.
GameBoy 0.88 тож несколько подразогнан (заметно при вкл. в меню опции optimize=1). Дорабатываются некоторые глюки GameGear, в частности "кривое" сохранение. Прочие разработки тоже движутся, но медленно (лето все же).

11.06.07
--------
Выложил финалки игрушек: 15, UltraVix, Chess, Durak. Остались почти незамеченными общественностью :(
Интеллект в последней делал непростительно долго, вышло примитивно, но вроде играет.
Притом смело, без экономии козырей. Можно улучшить, но лень - никто не играет имхо.
Реал-тайм игрушками без мышки управлять крайне неудобно, потому рыбок(Fish) забросил, хотя вся графика готова. Перспективны пошаговые и логические игры (и опыт КПК это подтверждает). Спешно доделываю начатое.

Много времени уделил на изучение звука на примере mp3player-a - звук все же нужен (а кто сомневается?). И скоро появится :)
В планах есть грандиозный медиапроект player с кучей плугинов (avi, mod,...,видеоэффекты).
Виндоуз с коммандом понемногу объединяются. Ведется разработка аналога .dll для подгружаемого кода (библ., плугины...) Т.е. запрашивается функция, если ее нет, то подгружается код и выполняется. Например плеер будет универсальным и для не-x65 хранить mp3 модуль в памяти постоянно не нужно - он выносится в .dll
Из эльф игрушек скоро выходят: Solitaire - набор пасьянсов, Mozaic - мозаика. На этом пока все - остальное порты: wolf,doom,..
Basic все еще ждем. Хотя еще не готов, параллельно на нем делаются 2 демки: расстрел астероидов и типа змеи.
В edit-е планируется добавить просмотр (не редактирование) .doc и .html документов (вырезать теги).
Эмуляторы в планах все те же: sega, snes, gba, dos, java - последнее особо сложно :(

26.05.07
--------
Вышла пара примитивных игрушек - 15 и UltraVix. Писались за 1 вечер.
Дописывается Aquarium(Fish) - урезаная версия insaniquarium deluxe от PopCap Games (кормить рыбок).
Тамагочи может тоже выйдет (по настроению).
Теперь глобальные проекты, над которыми ведется работа:
- новый порт SEGA на основе GenPP, менее тормознутый.
Нужно довести сегу до нормально работающей версии, как vnes и gameboy.
- ДОС :) ну и гемор :( мож и выйдет что - посмотрим.
Все таки _очень_ заманчиво иметь аля комп на трубе. Кто нить читает это? Ваше мнение?
- ведется поиск легкопортируемых сорцов JavaVM без ++ и плавающей точки, дабы ускорить jav-у в 2-3 раза :) всегда было загадкой почему она так тормозит.
-----
Внимательно изучал форумы про linux на sx1. Это конечно хорошо, но до кучки работающих приложений под линукс они так и не дошли. И, сдается мне, не дойдут. А это главный функционал. Потому не будем браться за почти невозможное, а скомпилим проги на эльфах. По скорости существенного прироста все одно не получим, т.к. ОС семена жрет немного (имхо), а IAR компилит _хорошо_ оптимизированный код. Памяти же для _всех_ моих проектов (включая дум) достаточно.

11.05.07
--------
ВЗЯЛ себе S65. Ну наконец-то есть на чем проверять эльфы! ВСЕ свои эльфы ранее отлаживал на чужой трубе. Теперь есть mmc, могу "точить" здоровые эльфы. Ромы тестить также стало удобнее. В планах мультимедиа эльф :) Теперь труба появилась - а вот времени пока нет :(

9.05.07
--------
-Хочешь узнать что такое gp2x? http://gp2x.ru/
обалдеть... портативная консоль для эмуляторов...
кстати, на gp2x gba идёт практически идеально (в gp2x два проца ARM9 208 Mhz)
На жп2х есть полный DosBox, причём сразу переносят даже wip-версии (которых ещё на PC нет). А проц - тот же арм. Интересно, на чём там пишут? Мож для сименсов тож подойдёт?
- на чем на чем: gcc и под линукс
у нас для эльфов НЕ БЫЛ ВЗЯТ gcc за основу
т.к. гуру НЕ ПРЕДПОЛАГАЛО массового портирование софта на трубу, а максимум составление примитивных патчей (имхо),
что мы сейчас и имеем, и с чем сидим... :(
Мне за весь этот огромный объем работы (делать свои лоадеры, переносить библ., posix) браться ОДНОМУ не хочется, а на иаре хорошие порты не сделать ввиду его C# специфики


6.05.07
--------
Выходные проспал... Скоро наступит лето - там я буду посвободней и доделаю, наконец, те эльфы, что собирался. Как все же интересно было в прошлом году - было столько идей! А сейчас почитал форумы и даже не знаю что еще _стоящее_ (и несложно программируемое) можно сделать. Или кода на 10 строк, или функции не открыты, или же код не ANSI C - править ++ы притомишься. От выложенных сорцов толку, как и ожидал, нет. Почти все новые разработки примитивны. Поскудела земля русская на программистов. В бизнес, что ли, все вдарились? Скучно... Вирусик что ли выпустить? :)
Подумываю взять х75 или s65 трубу - там есть флешка. Cейчас не могу отладить doom2, т.к. не помещается. Другие серьезные игрушки тоже. Да и 4мб ромы тестить неудобно.

1.05.07
--------
С праздником! Вот и пришла весна (не календарная). Кодить что-то лень.
Ведется разработка GBA и Basic, доработка Snes и Sega (сглаживание экрана, клавиатура, load, ромы в 7z).
GBA пока очень тормозит и видимо будет еле играбелен на NEWSGOLD :(
SNES как уже писал весьма перспективен.
Basic переводит .bas файлы в .elf :) За основу взят Dros. Работы еще много.
Еще раз смотрел DOS. Нет, мне не потянуть (слишком сложно) без gcc, gcc не знаю и эльфов на нем 1 всего.
Все еще открыт проект Solitaire и планируется доработать абзацы и переносы в EDIT, а то читать неудобно.

30.04.07
--------
Пишу для уважаемых немногочисленных читателей чтобы показать что я как эльфописатель еще жив и что-то там помаленьку делаю :) Предложений эльфов пришло много, спасибо, только вот сразу все это сделать я не могу, потому большая часть идей отсеивается или откладывается напотом. К счастью сейчас развелось много эльфописателей и новые релизы эльфов не дают нам скучать. Вон даже что-то типа Paint-a на эльфе вышло. Жаль только Siemens с Benq быстро сдают позиции - труб с поддержкой эльфов все меньше в продаже и число их пользователей неукоснительно падает :(

Механизм подгрузки ромов позволяет очень экономно расходовать память и без видимого падения скорости читать многомегабайтные ромы. Потому сейчас ведется разработка эмулятора GBA - долго думал браться или нет. Ожидаемая скорость эмуляции раза в 3 ниже обычного GB :( Но есть возможность некоторой оптимизации с потерями (т.е. часть ромов могут не идти). Ввиду тормозов аркады будут неиграбельными, однако на GBA есть _множество_ других жанров игр. Сохранялки где-то по 64 кб. Сложности: под 4 мб ром нелегко освободить память на трубах без флешки - приходится почти все сносить. Iar основательно виснет при компиляции кода (1мб:) непонятно почему.

20.04.07
--------
Возможно как эльфописатель я "выдохся". Изначально ставилась задача перевести readplayZX на эльфы с целью увеличения быстродействия, что и было успешно реализовано. А сейчас за простые эльфы браться уже не интересно, а над сложными работа идет, но очень медленно, т.к. править приходится слишком много :( и чувствуется нехватка опыта (как когда-то ранее думал, что nes спортить нереально сложно :)

15.04.07
--------
За выходные пересмотрел кучу кода, окончательно определился, что буду делать, а что нет. Наверное повторюсь. Чего НЕ БУДЕТ:
- эмуляторов DOS, PSX - ввиду их сложности и тормознутости
- flash, avi плееров - не нашел легкопереносимый код, не знаю форматов, разбираться лень
- доделок старых эльфов - что хотел сделал и надоели
- игр bolo, steel - получаются убогие, никому не нужные игрушки :(

Что БУДЕТ:
- SNES, GBA
- доработка SEGA, GameBoy - поддержка упакованных ромов, прогр. клавиатуры, save/load
- игра Solitair - набор пасьянсов
- 3d игры wolf, doom :)
- несколько несложных портов java игр (каких - секрет :)

PS Выложил ВСЕ сорцы эльфов одним архивом. Разработчикам добро пожаловать!

9.04.07
--------
Наконец-то доделал (за выходные) подзагрузку ромов в гбое и сеге. Типа свопа мастдая, только без записи.
Теперь можно запускать игры ЛЮБОГО размера!!! Кстати ничего похожего в др. эмуляторах не встречал. И скорость не упала (чего боялся). Вообщем получилось удачно.
И хотя данное новшество осталось в тени ввиду выхода очередных великих клонов "блинкера" , возможности эмуляторов сильно расширились. После запуска некоторых сега игр в сторону джава игр смотреть не могу (ввиду их убогости :~(
На очереди 7z упаковка ромов по частям (для подгрузки) и SNES - Многообещающей, судя по скорости демки. PSX и GBA не будет из-за их тормознутости. Со SNES много сложностей, т.к. памяти совсем мало, а с новыми эльфлоадерами ее еще меньше (картинки много занимают). Придется выкинуть часть буферов, что требует значительной переработки кода :( Свободного времени совсем мало.
PS. Наконец-то Dimens+ отметился самостоятельными эльфами!
Спасибо всем тем, кто продолжает подавать идеи и поддерживает эльфописание.

1.04.07
--------
какие нах. эльфы?
пришел с работы - пожрать и баиньки
жаль, что большая часть людей живет именно так
прожигает жизнь ради маленькой горстки бабок
и чтоб побухать в пятницу...

26.03.07
--------
теперь грустная новость:
мое ЭЛЬФОПИСАНИЕ ПРЕРВАЛОСЬ (до осени)
ввиду перехода на новую работу
где за установку Iar сразу получу пиз...й от начальства
трудно объяснить нужность arm С-- на сервере баз налоговой :)
а уж чтобы скинуть/закинуть инфу нужно извращаться (секретность данных)
а т.к. на работе торчу 9ч + дорога, то вечером прогить желания уже нет
насчет выходных еще не знаю точно
вот так вот грустно :(
вечером уже настолько "задрочен" работой ,
что до компа не доползаю - ложусь спать или иду бухать с горя.
по жизни можно много чем заниматься
свою жизнь мы выбираем себе сами...
жизнь не игра: записи нету - думать надо
PS а save/load так не хватает...
PSS как и бесконечных ресурсов :)

25.03.07
--------
Из мультимедиа эльфов были бы весьма полезны flash(*.swf) плеер и полноэкранный mpeg4 (*.avi) плеер. Но что-то никто за них не берется. Те сорцы, что я видел по *.swf не подходят. Если кто встречал fixed point не ++ (чисто си без float) исходники киньте ссылку плиз (заливать не надо). По divx у меня есть вроде подходящие сорцы Tcpmp, но т.к. слабо представляю все эти контейнеры .avi, то копать их нужно долго :( пока такое желание не появилось.
mp3 успешно доделывается соратниками ILYA_ZX, чему искренне рад. Хотя с устареванием x65 серии тема все менее актуальна. 44 кгц wav порадовал. А аудио хук для х75 не делают? Как же тогда выводить на нем звук из памяти? Еще хотелось бы сорцы mod2wav.elf - переделать его в проигрывание без промежуточной записи.
Готовы к выкладыванию исходники Player, кому-либо нужны? Там осталось добавить выбор песни из списка и автопереход к след. песне по IsPlayerOn(). Может как-либо сам доделаю (зависит от загрузки на работе).

24.03.07
--------
Ответ по теме вирусы:

это все штампы старого известного вируса
хотелось бы знать с какой целью нужны?

препятствую распространению исходников вирусов,
т.к. изменение пары строк ведет к неопределению смелтером
и к дальнейшему всеобщему заражению (оно нам надо?)
выкладывать сорцы нельзя ни в коем случае!

рассылка последних (коллекционных) версий вирусов
может привести к их распространению,
в чем опять же обвинят меня :(
(и это будет правильно)
еще придется делать антивирус и т.д.

интересующихся вирусами почему-то подозрительно много,
что наводит на нехорошие мысли
шкодить (портить) легче, чем строить

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

на эльфах "нагадить" можно много, а нужно ли?
давайте делать что либо полезное

23.03.07
--------
YES! я сделал это! SNES !!!
Толку правда мало: жрет охрененно памяти, 512 кб ромы не влезают
Единственный демо на 100 кб запускается только после перезагрузки, но работает и довольно шустро.
К сожалению лоадер 2.0+ жрет память под графику,точно не знаю, но видимо кил 200-300, потому по отзывам на нем запустить не удалось.
Свободный захват памяти оказался неудачной идеей (но единственно возможной).
Увы полный ее захват приводит к однозначному пикоффу (что и ожидалось).
Карта памяти же на разных моделях и в разные моменты времени разная.
Выход буду искать. На s-ке проблем нет (хотя данная версия скорее всего не идет).
Перед подгрузкой ромов (в проекте) их нужно будет обраб. прогой дабы перекодировать мапперы.

20.03.07
--------
Написал карточную игру дурак. Карты выглядят неплохо, да и девка (фон) тоже ;)
В них еще будет куча болтовни, пока не подключил, да и не отладил как следует.
Потом пасьянсы делать буду. Ну и еще шарики luxor.

Интеллект игры в дурака не так прост. Для каждого варианта хода задал "весы" (коэф-ты того либо др. хода) правила игры по примерно такой логике:
ЗАЩИТА ход с козыря - если много карт в колоде или крупный то взять
если выложено много карт лучше не брать
если много козырей меньше жалеть и т.п.
НАПАДЕНИЕ ищем пары-тройки карт, желательно некозырные
ходим с минимальных
если в паре козырь, начинаем не с него
если пар нет ходим с минимальной
--- т.е. то что мы понимаем интуитивно компу нужно долго объяснять
и этот примитив кодировал долго (убил выходной)

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

15.03.07
--------
Выложил кучу сорцов, в том числе Edit, все в одном архиве 200 кб
Надеюсь кому либо пригодятся...
Тем более большинство мелких (типа пакета install) и несложных (для начинающих самое то).
Не выложены (и пока не будут) только распаковщики rar,7z и рисование bmp.

13.03.07
--------
Обновил описание существующих вирусов на сайте.
Кстати при отладке "упустил" v7 на трубу по неаккуратности
это был просто пип.ц
я чуть не повес..ся т.к. не сделал копию эльфов, а антивируса еще нету...
этот ГАД с первого запуска поперезаражал половину эльфов, включая демонов и open
(прикинь что было бы если бы запустил еще хоть один эльф - все поголовно)
плача просматривал их по одному и сносил
открываешь - Б! и этот туда же. аж мурашки по коже
теперь нужно некоторые скачивать заново (не помню где брал ):
вообщем страшная вещь (смелтером не распознается, никакие опознават. строки не включает)
а вот v3 получился нетормозным и легко сносимым (что радует), за счет этого легко обнаруживается по своим двойникам

10.03.07
--------
что то давно не писал...
скачал сорцы видеоплеера TCPMP по совету Zlo
на 25 мег распаковались :O
просм. кучу кода
в состав TCPMP без float входят: (т.е. теоретически можно сделать)
1. vorbis low quiality plugin - ogg формат!!! но вот это low портит все представление - что за лоу - совсем плохой что ли? в доке ни слова
2. mp3 - есть уже в mp3 всем известном кодере сорцы
3. mpeg1 - не нужен ввиду больших размеров
4. mpeg4 - это уже интересней. Отдельно скомпилился в vc (Open Divx Decoder 0.4a)
сложно разобраться, что как в контейнер avi пакуется, как представлен ввод/вывод
а без этого не спортировать
ранее не занимался видеообработкой - имею весьма слабое представление
так что наверно без меня... нужно ILYA_ZX идею подбросить

сделал эльф игру сокобан с ящичками (перемещать).
имхо полная лажа - делал для галочки - мол есть еще одна эльф игра
глючит - у меня при выходе пикофф, на s75 пишут ок (загадка)
доделывать не буду т.к. один раз поиграть можно и так
и так целый день убил на такую простую задачу

опять поднял начатые еще в дос (и частично на эльфах) игрушки: bolo, steel (есть в рекламе PPoint)
упрощу по максимуму и доделаю т.к. проекты в разработке уже по 10 лет(!)
лежат тяжким грузом на моей совести, не дают спокойно спать (и т.д. и т.п. :)))

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

на этом порты игрушек закончу наверно (ну и как без вулф, дум - конечно же нужны!)
порты эмулей основных (быстрых) готовы, править немного
осталось вставить подгрузку в gboy, sega (никак не возьмусь)

Со snes полный облом: месяц делал :(
пускаешь на компе ок, на трубе черный экран с точечками
что не работает в жизнь не найти - это snes
опять переделывать? :(
snes завязал главным образом из-за невозможности подгрузки ввиду слишком мудреных мапперов (аля нес)
ну и зачем делать то, что по скорости обречено на провал (на SGOLD)
однако если когда либо разберусь в этом (кто знает) продолжу...
скорее всего ром нужно будет перекодировать (ремапить) прогой на компе перед запуском в эльфе
-----
> PS в марте буду бездельничать - эльфы задолбали...
> наступил творческий кризис :(
Ничё, бывает, забудь про комп, смотри телек, выйди на природу, наслаждайся
так и сделаю
что то подустал я
нужен перерыв
слишком сложный код последнее время

а так в планах бейсик (криво компилится пока что)
и досбокс (тут вообще мудрено)
бум приближать мобилу к PC :)))

старый дос (pcemu) довел на компе до поддержки простых com
но увы половина тестовых под 286 проц, а там 8086, добавлять влом,
потому попытаюсь портить досбокс выкинув кучу лажи (а ее там _очень_ много)
но это чуть позже

PSS что-то и портить то стало нечего - скучно как-то
на форумах ничего интересного не нашел
может у кого есть какие идеи?

4.03.07
-------
Вышли финалки vNES 0.4 и NES 0.7
Исправлений много.
Snes проект закрыт (как и unimon).
Dos под большим сомнением (слишком сложно).
Т.к. начался творческий кризис (надоело), в марте устрою перерыв.
Позже вернусь с новыми силами.

3.03.07
-------
Со Snes возникли некоторые сложности, связанные с его "аппетитами" на память.
Буферы, саббуферы, збуферы, сабзбуферы - все требуют "здоровых" непрерывных кусков памяти.
Исключение какого либо из буферов не дает "насладиться картинкой", т.е. все вроде бы нужны.
И как уже писал 3 мега памяти "съедаются" враз, остальная память мелкими кусочками.
Жуткое неудобство отладки - после закидывания 300 кб эльфа на трубу память "замусоривается" и для запуска требуется перезагруз трубы, за ним следует пикофф ввиду очередной ошибки. Попробуйте сделать это раз 100 и поймете о чем я говорю... А еще привязывать мудреную систему мапперов к подзагрузке. Бррр. Завяжу скорее всего :(

1.03.07
---------
вот я и закончил vNES 0.3 и NES 0.66
сколько времени прошло с тех пор
сколько сил потрачено на портирование
зато результат радует

смотрел сегу - как ни крути будет тормозить
хотя и доделал меню, клавиши - толку 0(ноль)
на таких тормозах не поиграешь - в топку

с самоличным захватом памяти в snes возникли проблемы
(видимо захватывает что-то не то)
snes "жрет" метра 3 и однозначно приводит к пикофф

gba, psx в долгий ящик - играбельны не будут

про chess с форума:
----
Король мой. Там где в центре пешка, был ферзь. Его прикрывала пешка. Королю был шах. И что? Король съел ферзя. Я ох.нул и съел его пешкой. Однако игра продолжается, я двигаю левую пешку вверх. Ладья бегает за мной. Фигею. Плиз, сделайте чтоб республики не было... А то обещали обыграть нельзя...
------
ну дык и не обыграть
ладью фиг догонишь :)
это не тормознутый король

а на самом деле глюк с оценкой фигур
править лень ибо никто не играет кроме меня
а я как уже писал не дохожу до конца
------
что сделал:
+ NES - мапперы
+ vNES - load, меню, кл.
+ GameGear - load, подправил поворот
+ Chess - undo 1 ход
-------
что планируется сделать за март:
GameBoy - подгрузку ромов
Sega, Snes - load, поворот, меню, кл., подгрузку
Wolf, Doom (порты)
unimon - что то ненужное
и по месяцу на:
Basic(bas->elf)
Dos (Command его часть)
-------------------
по поводу недокументированного захвата памяти:
использ. где недостаточно стандартных 1.6 мб памяти (sega и т.д.)
на SGOLD только (на S75 и EL 4мб - хватает).
ищутся большие блоки, заполненные 00 и захватываются
сразу после старта их на 4,8 мб (можно посмотреть по FreeRam, где пусто - это они) кусочками менее 0,5 мб.
использ. в nes(тестировался, в том числе на S75), gameboy(для будущей подгрузки больших ромов), sega(сам эльф требует 1,8 мб), snes(пока пикофф) и т.д.
зачастую требуется перезагрузка при старте (т.к. со временем память "замусоривается" и 00 не найти)
после запуска эльфа _не рекомендуется_ перекл. и запускать др. эльфы, т.к. ОС не знает, что память занята и может выделить повторно (пикофф).

24.02.07
----------
Планируемые доработки:

GameBoy - подгрузка ромов.
NES - load, мапперы
vNES - load, поворот, меню, кл.
GameGear - load, подправить поворот
Sega - load, поворот, меню, кл., подгрузка
Snes, GBA(?) - то же

unimon - что то ненужное
Chess - undo 1 ход
Basic(bas->elf)
Dos (Command его часть)
Wolf, Doom (порты)

Ничего _более_ делать не планируется.
Ориентировочное время завершения проектов - май месяц.
Имхо данного софта вполне достаточно для превращения семена в смарт.

23.02.07
---------
Помнится год назад взял я в руки трубу сименс и подумал:"А как программируют эту хрень?"
Начал увлеченно изучать J2ME, написал мидлеты: ReadPlayZX, MobileRar...
Осенью "подсел" на эльфы, которые работают в 10 раз быстрее явы.
Хотелось бы сказать большое спасибо людям, принявшим участие в "эльфмейкерстве",
переписка с которыми мне сильно помогла:
Rst7, KreN, NForce, Dimens, BoBa, avkiev.
Сорри если кого забыл.
Пора двигаться дальше...

22.02.07
-----------
Для борьбы с новыми версиями ВИРУСОВ (коих мы все с нетерпением ждем :)
вышел AVP 0.33 (в этот раз перед эпидемией!)
Не упустите момент - а то может быть поздно...
---(шутка)
в vnes глюки графики поборол
однако многие ромы дают пикофф
что то слишком мало их идет
кто тестил то что не идет на vnes.java идет или тож так?
(в смысле накосячил чего или нет)
для них придется fceu(nes) пускать, так что он перспективней
nes9x забудем

интерполяции в vnes не будет (только в nes=fceu)
т.к. там свой механизм масштабирования (довольно эффективный кстати, без */)
а гнать полный 256*240 экран и интерп-ть потеря скорости (и имхо ненужно)
главный плюс vnes скорость
фреймскип по умолчанию понижал до 3, сразу жалобы что стал тормозить
(см. на кибаб), так что каждый настраивает сам (зеленая кнопка)
счас прикручиваю меню, прогр. клав. и save\load
0.23 кривовато как то выглядит пока...
ну и конечно поворот и размеры экрана чтобы задавать

>float работает.
как же! библ. подкл. можно конечно, но если она
ссылается на сопр коего нету...опс - пикофф в wolf

gboy 0.78 чуток шустрее стал, далее уже никак :(
выкидывал код "с потерями", т.е. непонятные мне места :)
могут быть глюки с графикой, но пока все ок
даже поиграл в r-type с записью (на 2м уровне)
запись конечно глючновата, но хоть какая то
непонятно куда текстуры пропадают временами после load
кстати новый механизм памяти не пошел на s75
отключу в 0.79 благо на s-ке и так памяти навалом
механизм подгрузки ромов еще не начинал :(
но планирую начать именно с gboy
наверно все .gbc будут рассматриваться как подзагружаемые (ибо большие они)

dos застрял надолго
целиком dosbox не загнать из-за ++
(слишком много править)
а в др. сорцах что я взял
отсутствует int21h и многое др.,
кои взял из dosbox
и медленно и печально правлю
вероятность что отладка не сожрет времени в 100 раз больше
чем время разработки невелика - увы
попытка не пытка - всегда нужно пробовать

скомпилил smallBASIC в vc :))
что-то кривовато - но работает
когда подправлю 100+ функций
для эльфописания наступит новая эра
(компиляция в байт код бейсика)
хотя сомневаюсь...
пока идея такова: щелкаешь на .bas -> получаешь .obj (байткод),
который сразу выполняется
по щелчку на .obj тоже запускается он (быстрее)
если тут же есть файл .mak(пустой) то сразу получаешь .elf
представл. из себя интерпретатор байт кода + сам байт код
(т.е. наличие .mak -> сигнал на компиляцию)
но это все требует _долгой_ работы

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

кстати добавил в vnes (не выложил еще)
откл. самовыключения через 2 минуты (наконец-то!!!)
а то задолбало - играешь - отложил и все
натыкаю везде
а в едит сделал еще самовыкл. через задаваемый в меню интервал времени
а то забыть можно

PS подкорректировал немного сайт...
Подправил кучу эльфов - разные мелкие исправления.
Теперь почти все идет и под EL

21.02.07
-----------
Улучшил интерфейс в шахматах, макс. ускорил GameBoy, набросал загрузку ini в unimon
(на большом сим клубе тема "делаем суперп.монитор вместе")

Столь быстрый vNES по отзывам тормозит на EL71 (идет на 100 мгц),
функции для вкл. макс. скорости нету, нужную частоту проц как-то определяет сам :(
Пикофф у них же в сеге видимо вызван записью в невыделенную память, что у нас на x65-75 проходит. А где это - х. найдешь (нет под рукой елки).

Попались под руки сорцы SmallBasic (ниче так, лишних наворотов мало).
Рискну портануть, выкинув лишнее.
Раньше я бы не взялся за проект 100+ файлов (одно не получилось бы, бесконечные ошибки).
Править там конечно дофига (особ. интерфейс).
Однако возможность делать эльфы на бейсике прямо на мобиле стоит того...
Хотя было бы полезнее делать на компе, там тестить, а уже потом кидать на мобилу.
Понятно что будет бесполезно как и многое другое - слишком ленив народ.

20.02.07
----------
3 дня ушло на поиски глюков ppu в vNES. Исправил. Цвета позже. Как и клавиши, меню, save...
Пол дня на порт PsyTests имхо бесполезный. Менял мало, в основном добавлял код.
Так что перевод джавы в эльфы затруднен, времени уходит много, а его жалко.

Поменял короля с королевой в chess (стояли наоборот). Надеюсь все там работает.
Сегу увы не разогнать. Рывки. Пробовал LockSched() запрет др. процессов - без толку.
В сеге новый захват памяти на S75, постепенно все объединяем. Возможен пикофф.
На снесе идут сплошной чередой - нужно править .ram файл, пишет не туда? Делать много...
Тестовые версии выкладываю только тогда, когда они минимально работают,
потому снес пока не выходит.

wolf пикоффит при старте, дебаггинг не помогает - адрес в памяти мне ничего не говорит,
может писать туда откуда угодно. Жаль нет норм. отладчиков, вся отладка - гадание: то или это.
Перехожу к сложному режиму подгрузки ромов (мапперы на мапперы получаются).
------
1. Эмулятор PC сильно _тормозит_ даже на 500 мгц Кпк
играют в древнейшие игры и нортон :)
неудобно портировать т.к. весь код DosBox на ++
iar не берет, а gcc в эльфах не прижилось - никто не хочет делать SDK

2.Java сложный проект - нужна команда разраб-в
командой работать не умеем
нужность сомнительна
хотя может ускорить java раза в 2 имхо

3. по скорости х86 и арм примерно равны, опять же все зависит от асм оптимизации кода.
Позволяет ускорить раза в 2. Требует больших временных затрат на разработку.

4. "компилировотю ява мидлеты в пантовый эльф" слишком мудрено (куча встроенных классов)

Вывод - ничего сделано не будет :(
Эльфы как и сименсы х65-75 устареют быстрее (где счас х45 с его бинарниками?)

17.02.07
---------
Chess работает даже быстрее чем ожидалось
AI весьма неплох: вилочки ставит только так! хитро...ж..ые
кстати ближе к концу глючит - теряются фигуры
но я обычно не дохожу - и так все ясно :( прошляпишь пару фигур...
(можно вначале себе ферзиков побольше сделать)
иногда глючит при добавл. фигур (надо исправить)

кстати стиль игры не очень сильный - можно наловчиться
подсказки глуповаты, в атаке слабоваты (но играют лучше меня)
главное скорость - более чем в 10 р быстрее java (на глаз)
там ждал минуты по 1,5, тут 2-3 с. :)

скомпилил doom2 в vc (не iar). Наконец то!!! сорцы с сайта ID :)
палитра как обычно потерялась, т.е. она где то есть, но где должна быть не работает :(
понимаю что играть долго врядли, но очень давно хотел
скорость думаю будет ок (шел и на 386 ведь, и это не эмулятор)
весьма требователен к памяти и сложно упаковать wad (из 14 в 5,5 мб)
т.е. упаковать несложно, сложно _быстро_ распаковать при подгрузке (т.к. не делал еще)
найти 5,5 мб своб. места на х65 непросто... но можно, я доводил до 10 (снеся все)

wolf почти закончил
если опять пойдут пикоффы заброшу ибо найти ошибку без хорошего дебаггера нереально
а долго возиться желания нет (всему отведено свое время). Тем не менее надежда есть.
snes тестить не на чем - жду трубу. Очень неприятный пикофф в основном цикле эмуляции на 10000+ команде хз отчего :(
Скомпилил gba в vc, осталось перевести в iar. Ввиду кучи асма x86 это кажется не так просто.

По поводу новых разработок (что можно сделать):
Quake1,2 требуют float(сопр.), поэтому для эльфов не подходят - скорость эмуляции float увы критично мала.
Ufo сорцов норм. нет (ufo2000 не в счет - нет экономики, недоделка).
Duke3d много асм кода и wad(gpf) жмется до 10 мб, не влазит в х65 :(
Warcraft 2000 - "корявые" сорцы, ++ вперемешку с асм, глючны, жмется в 11 мб, потом стилуса у нас нет.:( Последние 2 в принципе сделать можно.
Simcity и пр. делать не буду т.к. есть на эмулях.

Это про порты игр. Из эмулей приставок все что хотел уже в разработке.
Ну и дос, basic - если попадется хороший порт.
Есть еще движок квестов от лукасарт, нужен ли? Ваше мнение?

13.02.07
--------
Ожидается выход нового эльфа chess 0.1
Знаменитый порт "Phalanx XXII" играет очень сильно.
Мне так и не удалось выиграть :(
Само собой не на уровне разрядников, т.к.: 1.долго ждать хода 2.а много ли таких?
Зато быстро. Сложность настраивается.
Из-за ошибок портирования в более ранних версиях король зачастую брал управление
в свои руки и смело бросался в бой. Исправлено (слава Богу).
-------
седня доточил шахматы (пока не выложил т.к. нужно проверить на пикофф и доделать save)
кстати с нуля спортил за день (целый :)
ранее на это уходила целая неделя :~~~(
по крайней мере стали ходить осмысленно
даж большой комп призадумывается на неск. секунд
на java думали минуты 2 счас будут в 10 раз быстрее т.е. сек 15 :)
еще нужно проверить корректность дерева ходов, верно ли сортирует лучшие и т.п.
но это уже мелочи
в java аналоге мне приходилось выбирать не макс. сложность (т.к. игра напоминала избиение младенцев)
тогда будет 5-10 сек на ответный ход
вообщем для эльфа самое то
кому вообще нужна тормозная java?

12.02.07
----------
этот гр...ый Snes настолько C++н что уже задолбался править
использ. все фишки C++:
параметры по умолчанию, &, ::, class{ new, delete,...
б.!
исправил 3000+ ошибок, особенно бесит менять class:: - тупая работа...
(более за правку классов не берусь)
после каждого исправл. проверяю в VC - часто перестает работать, приходится делать откат.
вообщем работы много...

все чаще думаю что нужно портировать gcc арм от мамаича (кто помнит великого х45 ГУРУ единств. в своем роде!)
на нем n0p легко спортил snes, sega, dosbox целиком (без вырезания как я) на КПК в прошлом году
даж знаю где качнуть. АРМ тот же
позволило бы с малыми изменениями портить код

но это _дофига_ работы
(делать поддержку sdl, менять эльфлоадер и т.д.)
нужно быть ГУРУ типа мамаича _либо_ набрать толковую команду (1 не потянуть мне - не знаю gcc совсем)
по поводу совместных разработок писал неоднократно - всем все пофиг
а потом кто будет делать порты?
{
опять я же? нет спасибо
сегу и снес я доделаю и так
волфу и думу тоже
в досе у меня оригин. (свои) разраб., да и тормоз он - для прикола чисто.
а потом время сименсов проходит увы - бенк тож сдох
скоро останутся одна самсунги и лыжи где ниче сделать низя (кто счас пользуется х45??)
ну а я отправлюсь на КПК хотя все серьезное сделано там уже -чисто для развлечения буду прогить (как счас)
}
кто другой - покажите мне еще один порт (кроме знаменитого mp3)
выходит вот так вот :(

в snes радует скорость работы - офигенная, на уровне неса 0.65 !!!
на VC у меня дает 1000 frames за то же время за какое в сега 300 (на глаз)
что само по себе странно :)
вообщем снес будет летать - бросил все силы на него

в версии 0.2 Снес НАВЕРНО будут ромы не более 2 мб, т.к. столько памяти свободно (кусками),
из-за _кучи_ мапперов там настолько перекодируются данные, что если
больше, нужно будет делать своп или начальное перекодирование ромов на компе (аля сега).
Ну и куда мне поместить 2 мб своп на мобиле для 4 мб рома? :(

В нес 0.65 для S75 применил захват свободной памяти (нестандартно, не по malloc() mfree()) -
изменил 1 #define
По отзывам работает стабильно (пикофф исчезли).
Метод недокументированный, но разве сами эльфы не такие? имхо многое в библ. дышит на ладан.
Еще ранее знающие ГУРУ _категорически_ писали, что на NEWSGOLD при записи в память за
пределами malloc() пикофф сразу. Вот и верь ответам на вопросы...
Теперь прикинь сколько свободной памяти на S75 из 16 мб (у нас из 8 мб 4,8 мб), на глаз метров 10!
точнее нужно просить скинуть FreeRam.ram, а просить надоело уже (особенно на S75)
Интересно если проверить на EL? У них тож так???

Так ранее восторгался мощности команд АРМ! Куча однотипных регистров,
что только не можно задать в одной команде - и условия и менять ли флаги,
складывать с др. регистром вместе со сдвигом, куда поместить,...
Увы - детский восторг прошел.
Очень не хватает х86 команд работы с памятью типа ADD DWORD PTR[адрес],значение
Все операции проводятся на регистрах, т.е. для значение+=с нужно выполнить
LDR R0,[адрес] ADD R0,R0,#c STR R0,[адрес] вместо 1(!) команды на x65
Посм. код эмулей - очень частая ситуация - в основном данные хранятся в памяти.

Странно, но не знаю как ускорить Nes 0.65
Основной цикл эмуляции крутится где-то 77000*(2-3) раза на фрейм
в нем осталось только
do{
switch(код операции)
#include "ops.h" //где case код: действие....
}while((такты-=table[код операции])>0);
что тут можно убрать? имхо ничего лишнего...
комплируется в _ужасно_ длинный код всякой лабуды
увы вручную на асм это не переписать

Так что теперь нес в забвении и да здравствует vNes!
пол выходных искал где ошибка в ppu (почему осталась половина кадра)
не нашел :( не ясно нихрена
как всегда конструкции вида a>>((b+c)&d)<< и т.п.
боюсь без понятия принципов ppu не разобраться

11.02.07
---------
УРА! Я сделал это!
Удалось успешно скомпилилть vNES в vc!!!
(сколько ранее времени убил на это - не счесть!)
правда еще глюки со спрайтами - как черезстрочные ( надеюсь исправить)

прикинь какая там скорость
FCEU (где возможности оптимизации я исчерпал) и близко не стоял!
раза в 3-5 шустрее
на компе все летает (по сравнению с пред. версиями раза в 3 :)
эльф всего 33 кб :)
многие здоровые ромы конечно не держит (fceu лучше) но так остальных
поназапускал кучу
и там же фирменный ресайз экрана под любые размеры

вообщем наверно будет 2 версии (vnes и fceu там где не идет внес))
вот бы еще спрайты докопать - пол дня убил так и не нашел :(

ЗЫ мечта сбылась...чья то...почти...
-------
vNes коммерческий проект и его исходники в сети не встречаются :(
Сколько времени ушло на декомпиляцию обфускаторной джавы с сборку в эльф - трудно даж представить :(
Начинал еще весною...потом отложил из-за многочисленных глюков и отсутствия опыта.
Чтож, очень рад что наконец нашел время завершить эту разработку.

SNES тоже не за горами (надеюсь).

10.02.07
--------
сегодня начал свой последний эльф проект DOS :)
(вообщет начал давно но накосячил и все забыл что правил - ВСЕ сначала)
snes и gba уже в разработке (последнее слайдшоу будет)

изучив форумы кпк понял что 286+ нам по скорости не светит
так что dos будет 8086 (для всяких qbasic, prince и т.п.)
позже если увижу что скорость ок - то и 286
игр для 286 дофига
хотя для игр есть эмули приставок

насчет экрана
т.к.текст 80х25 по 2 точки на символ мало
будет окошко в окошке (как в zx)

ну а 320х200 повернуто на 90 градусов и в 160х132
тут без проблем
главное - скорость не подкачала бы...

dos emulator.elf
счас состряпал простенькую dos программку
вроде основной цикл команд 8086 крутит (шустро)
осталось доделать 20+ функций дос int 21h (передрать с dosbox)
функции работы с экраном int 10h (оттуда же)
загрузку exe (пока только com)
bat файлы (нужно?)

также отображ. экрана и клавиатуру,
выделение памяти и работа с файлами,
переменные окружения, ems и psp(не сони :)
ничего не забыл?
ну и конечно отладка...может занять кучу времени
-------
почему нет новых эльфов - есть
вот mp3 сделали, игрушку какую-то, какие-то системные эльфики...
новые версии выходят активнее чем ранее
есть перспективные эльфописатели
по крайней мере вопросов от них много :)

сорцы нес и гбоя выложил - может кто возьмется доделывать
все примеры как делать тоже есть

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

08.02.07
---------
GBA также в планах :)
Только похоже на слайдшоу получится.
Но попытаться стоит...Возможно не все так плохо.
SNES понемногу продвигается, но из-за исправлений кучи C++ кода
медленнее чем хотелось. Но прогресс есть :)
Для желающих выложил сорцы GameBoy и Nes.
Толку то :(

06.02.07
---------
Свободного времени стало _много_ меньше :(
Устанешь - вечером никакого желания браться за код.
А все выходные хочется _спать_ и отдохнуть от надоевшего за неделю компа :(
Хорошо студентам - всегда свободны, времени полно, сиди да делай код или играй.
(сам был таким:)
SNES движется _маленькими_ шажками - слишком многое выкидать (править)
Нашел как ускорить GBoy, но все равно речь идет о десятках процентов - не в разы.
Вообщем допишу snes-у, сделаю везде запись/подгрузку ромов, + dos и на отдых...
Копать муторный код 200+ файлов 1+Мб поднадоело.
Интерес к эльфам стал угасать :(

01.02.07
----------
оптимизил новую версию nes
что то идет она тормознутей предыдущей намного :(
кое- что подправил в основном цикле
но скомпил. в асм код выглядит ужасно :(
что не так???
видимо это расплата за мапперы - универсальность.
какой нах. звук??? звук выкл. ВЕЗДЕ. остается в мечтах только.
более не знаю что править - ppu не причем (т.к. увеличение frameskip ничего не дает)
все же арм процу с pc не потягаться - команды работы с памятью медленные...

GBA есть шанс скомпилить на vc и затем перенести (gb включает в себя)
а стоит ли?
имхо тормозить будет не по-детски
полную асм оптимиз. я проводить не буду
вообщем непонятно...

в SNES куча ++ классов вида :: - все нужно править
медленно и печально - проверяя после каждого действия что все еще работает
ох

большинство подгружаемых ромов кстати у нас поместится в памяти целиком
фиг ли 4,8 мб на SGOLD
так что здесь больших тормозов не ожидается (кроме ремаппинга)

что-то wolf и doom скомпиленные на VC у меня не пошли :(
плохо. полагал большие надежды
много игр порт. не буду но как же без классики
и сравнить то не с чем
где накосячил х. найдешь
повторим с начала? :(

в PSX внешние плугины подкл. должны
а я уже обрадовался простоте кода
где искать на них сорцы?
что должны делать?
опять же тормоза - имхо как и GBA на мобиле бесполезны - делать не буду!
хм хм

легендарный мамаич с 45й платформы подточил gcc под кпк
вот нашелся его след
но по сравнению со сделанным им на 45 (буквально ВСЕ,
больше чем все остальные вместе взятые)
это выглядит очень бледно
меня тож ждет провал на КПК? :(

вообще создание эмулей очень увлекательное занятие
что-то я запал

но осталось немного - справить баги с цветами, save/load в NES,
подгрузку ромов в SEGA (и всех остальных)
SNES
кстати тормоза все выходят
ну и DOS конечно же

чем заниматься потом - не знаю
видимо финиш ... скоро

PS выложил сорцы GameBoy
скоро выложу сорцы Nes :)
ниче не изменит :(

28.01.07
----------
Появление звука на эльфах несколько меняет планы:

1) добавить в Player.elf:
- проигрывание mod, mp3 и др. "мелких" форматов,
для которых есть fixed-point исходники.
Также из-за различий в функциях проигрывания звука на x65 и x75:
- сделать выбор режима проигр. звука x65-75, и еще режим с подгрузкой wav-ок
в память
(должно железно играть) по частям.
- определять длину wav композиции по ее заголовку (ввиду отсутствия
isPlayerOn на x65).
Сделать единую версию (как обычно).
Вообщем "довести" плеер до играбельного вида.

2) вставить звук в эмуляторы
- обязательно в нес
- желательно в ггеар
- гбой по желанию (моему)
- z80 не будет (т.к. малоиграбелен и завершен)

здесь главное правило что эмулятор не должен тормозить
поэтому вставка звука в сега под большим сомнением
впрочем там еще полно места для оптимизации
также многое зависит от обработки звука в исходниках
если она возложена на сопроцессор (float,...) то звук исключается.

желающие могут попробывать добавить звук в гбой (сорцы выложил),
чтобы убедиться насколько это непросто...

вообще получение звука добавляет сложностей портирования.
в сорцах mp3 плеера прерывания выполн. с частотой >30 раз в с,
что дополн. грузит проц,
кроме того ILAY_ZX упоминал сложности с wav буфером >1 кб
видимо связанные с особенностями dsp
Итого здесь еще есть что смотреть

в адрес mp3player от ILYA_ZX как обычно много критики
это наверно называется стремлением к совершенству
как бы хороша не была прога
всегда хочется лучше
хорошо бы чтобы к совершенству стремились сами критикующие
(т.е. помимо болтовни делали сами что либо)

имхо mp3 полезно на s65 (тут вопросов нет)
и на х65 благодаря экономии места при малом бильтрейте
также прослушать композицию если нет под рукой компа
ну и для понта конечно

Продолжение следует...
Hosted by uCoz