b2m а как насчёт chaser 1 уровень открывается и хана , клавиши не работают только перезапуск эмуля.
b2m а как насчёт chaser 1 уровень открывается и хана , клавиши не работают только перезапуск эмуля.
Последний раз редактировалось Viknik; 07.01.2010 в 20:57.
Всё вроде работает, я с недавних пор стрелки с дополнительной клавиатуры на обычные стрелки перебросил.
Незнаю, в той версии, что на сайте (от 06.01.2010) у меня всё работает.
Добрый день, господа!
В общем у меня был вектор 06ц-02 и осталось много впечатлений - собственно на нем я и начал программировать. И вот как то решил написать эмулятор... казалось бы зачем это нужно, если есть качественные эмуляторы от Ramiros и b2m. Однако на то было несколько причин:
1. Общество вектористов постепенно отмирает, это факт. Чтобы передать наследие будущему поколению, нужно сделать эмулятор максимально живучим, портабельным и достаточно простым в управлении. Я прекрасно понимаю авторов башкирии и VV в том плане что они не хотят открывать своих исходников. Но я думаю если не сделать opensource эмулятор, то в конце концов вектор умрет окончательно - когда авторы по каким-либо причинам перестанут поддерживать свои проекты.
2. Да просто сильно хочется
В основном я пишу на C++, но эмулятор решил писать на C# с дотнетом 3.5. Казалось бы дотнет тормозной, однако, по моему мнению, это добавит живучести эмулятору:
1. Эмулятор без проблем работает на 32 и 64 битных платформах, не привязан к ос и процу.
2. Можно портировать по WinCE
К сожалению, у меня не очень много времени заниматься этой задачей (а так не хочется забрасывать ее в ящик!), поэтому предлагаю активистов присоединиться к проекту. В ближайшее время я постараюсь перенести репозиторий на sourceforge или googlecode. Эмулятор 100% открытый, не будет использовать платных библиотек или компонентов, не привязывается к ОС и доступен всем на чтение и комьюнити на модификацию.
Что уже сделано:
- эмуляция процессора Z80, озу, видеокарты (частично), клавиатуры (частично)
- звук через DirectSound - лагает по страшному, надо переписывать (возможно придется модуль на C++ делать)
- юниттесты
Чтобы код возможно было поддерживать не только его авторам, то выдвигаются следующие требования к исходным кодам:
- использование паттернов проектирования
- юниттестирование части кода (поскольку эмуляция железа - дело тонкое, то возможно юнит тесты там не прокатят), как следствие - внедрение Dependency Injection
- соблюдение конвенций именования и правил оформления исходного кода.
Я надеюсь что заинтересовал активистов. Напишите что вы думаете об этой идее и если вы посчитаете ее достаточно интересной, обсудим технические вопросы более подробно
Одобрям.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Отлично! тогда формализую сумбурные тех. требования:
Система разрабатывается как многомодульное приложение. Отдельные модули - это .net сборки, экспортирующие оговоренный интерфейс. Сборки разрабатываются на C# (предпочтительно) или на Managed C++. Использование библиотек unmanaged C++ возможно (особенно там, где требуется повышенное быстродействие), однако это привязывает эмулятор к платформе, поэтому злоупотреблять этим не стоит.
Все GUI обязательно отвязаны от бизнес логики. Предлагаю использовать паттерн MVP для графического интерфейса.
Состав системы (предположительный):
Модули устройств:
- модуль процессора и ОЗУ (готов);
- модуль видеоадаптера (частично готов);
- модуль клавиатуры;
- модуль имитации таймера ВИ53 (звук и таймер);
- модуль квазидиска;
- ....
Интерфейсные (GUI) модули:
- модуль интерфейса клавиатуры
- модуль интерфейса отладчика
- модуль дисплея
- модуль магнитофона
- ...
По функциональности: ко всему прочему хотелось бы также реализовать поддержку возможности "полной имитации процесса" - т.е. например загрузки с магнитофона (через аудиовход) или звукового файла с тем же временем как и на реальном векторе и т.п.
По организационной части. Постараюсь на выходных создать репозиторий и выложить проект. Ориентируюсь на использование репозитория subversion.
Качество кода и объектный дизайн предлагаю тщательно прорабатывать и контролировать. Для заинтересованных лиц литература в этом направлении:
Правила оформления кода: http://rsdn.ru/?article/mag/200401/codestyle.XML
Паттерны проектирования: http://www.citforum.ru/SE/project/pattern/
Как не надо писать программы: http://habrahabr.ru/blogs/refactoring/59005/
По юниттестированию:
http://habrahabr.ru/blogs/testing/48727/
http://ayende.com/wiki/Rhino+Mocks+3.5.ashx
Комментарии и предложения приветствуются
Добавь ссылочки на средства разработки.
по технологиям:
Фреймвёрк - .NET 3.5
Рисование графики сейчас происходит с помощью System.Drawing. В принципе скорость приемлемая, однако возможно впоследствии применим DirectDraw
Звук - прямое взаимодействие с DirectSound (тоже подумаем над этим)
GUI - Windows Forms (более современная альтернатива - WPF но оно будет совсем уж жутко тормозить)
Юнит тестирование - библиотека Microsoft (а может NUnit, функциональности больше) + RhinoMocks
средства разработки:
Visual Studio 2008
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)