Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Вектор (http://zx-pk.ru/forumdisplay.php?f=55)
-   -   Вектор-06Ц: Эмуляция (http://zx-pk.ru/showthread.php?t=8634)

Viknik 7th January 2010 21:55

b2m а как насчёт chaser 1 уровень открывается и хана , клавиши не работают только перезапуск эмуля.

b2m 8th January 2010 00:08

Всё вроде работает, я с недавних пор стрелки с дополнительной клавиатуры на обычные стрелки перебросил.

Viknik 8th January 2010 02:44

Quote:

Originally Posted by b2m (Post 246910)
Всё вроде работает, я с недавних пор стрелки с дополнительной клавиатуры на обычные стрелки перебросил.

Увы!!! 0 эмоций. Никакой реакции. То же со step&. Зависает на заставке, но здесь хоть игру перезапускает и стоп. В VV всё OK!

b2m 8th January 2010 11:37

Незнаю, в той версии, что на сайте (от 06.01.2010) у меня всё работает.

helloworld 28th January 2010 12:49

Добрый день, господа!

В общем у меня был вектор 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
- соблюдение конвенций именования и правил оформления исходного кода.

Я надеюсь что заинтересовал активистов. Напишите что вы думаете об этой идее и если вы посчитаете ее достаточно интересной, обсудим технические вопросы более подробно

b2m 28th January 2010 13:00

Одобрям.

Error404 28th January 2010 13:35

Quote:

Originally Posted by b2m (Post 252632)
Одобрям.

+1. Дело хорошее.

Однако, будучи стихийным программистом-любителем (каких я полагаю немало и среди любителей Вектора), я не понял много различных современных слов типа "паттернов", "юниттестирования".

helloworld 28th January 2010 13:38

Отлично! тогда формализую сумбурные тех. требования:
Система разрабатывается как многомодульное приложение. Отдельные модули - это .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

Комментарии и предложения приветствуются

b2m 28th January 2010 13:48

Добавь ссылочки на средства разработки.

helloworld 28th January 2010 13:54

по технологиям:
Фреймвёрк - .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.