![]() |
b2m а как насчёт chaser 1 уровень открывается и хана , клавиши не работают только перезапуск эмуля.
|
Всё вроде работает, я с недавних пор стрелки с дополнительной клавиатуры на обычные стрелки перебросил.
|
Quote:
|
Незнаю, в той версии, что на сайте (от 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 - соблюдение конвенций именования и правил оформления исходного кода. Я надеюсь что заинтересовал активистов. Напишите что вы думаете об этой идее и если вы посчитаете ее достаточно интересной, обсудим технические вопросы более подробно |
Одобрям.
|
Quote:
Однако, будучи стихийным программистом-любителем (каких я полагаю немало и среди любителей Вектора), я не понял много различных современных слов типа "паттернов", "юниттестирования". |
Отлично! тогда формализую сумбурные тех. требования:
Система разрабатывается как многомодульное приложение. Отдельные модули - это .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 |
| All times are GMT +4. The time now is 23:41. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.