Автор Тема: Эмулейшн кодинг фо бегинерс =)  (Прочитано 8081 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Fever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
Тема посвящена тем, у кого таиться та заветная мечта о создании своего эмулятора!
[INDENT]Сразу скажу: это сложно, непонятно, но блин какое это классное ощущение, когда эмуль начинает подавать первые признаки жизни, первые игры становяться играбельными, а глюков становиться с каждой строчкой кода всё меньше :crazy:
Так вот, первый вопрос обычно, эмуль чего писать легче всего? И частый ответ канешн GB\NES, незнаю почему, но мне раньше тоже так казалось<_< Почитав доков по ГБ и подчерпнув оттуда много интерестных, иностранных(машинных) слов, отложил эту идею, как наверное и многие новички(который ваще читают доки!) :cranky: . [/INDENT]
Недавно наткнулся на систему под названием Chip8 и сразу понял, это моя мечта=) Не канешн система стара как мир и заэмулирована по самые не хочу, но характеристики это сказка: экран-64х32, один цвет(и тот не задаёться =)), 35 опкодов (ещё пару для SCHIP), памяти меньше 4 кб и без делений, и последнее, что немаловажно звук (1 частота: нет\есть). Тем не менее это не помешало появлению на "приставке" таких хитов как: Space Invaders, Pong, Tetris, Pac-Man(тогда он назывался Blinky), Brix.
[INDENT]Итак, если всё же кто-нить решиться написать это чудо, могу сказать, отнимает это всего примерно 1.5 дня рил-лайф, для более-менее опытного програмиста. У меня за эти 1.5 дня получился типо рабочий эмуль(баги, глюки) на Turbo Pascal 7(да, извращенец), отлично эмулирущий Breakout, другие пока не тестил. [/INDENT]
З.Ы. Дальше поглядываю в сторону СМС, совсем невиданная мной система.
З.З.Ы. Доки: Wiki, David WINTER`s doc, InstrSet.

Удачи в начинаниях!

Оффлайн mai

  • Пользователь
  • Сообщений: 1740
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #1 : 29 Май 2006, 14:12:34 »
а исходники не выложишь свое чуда? если не секрет, конечно... было б любопытно взглянуть, а то надоело клепать свои билды чужих эмулей, хочется маленький, но родной проект...

Оффлайн Йобан Матич

  • Emu-Land Team
  • Сообщений: 2593
  • Пол: Мужской
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #2 : 29 Май 2006, 17:04:41 »
Fever,
оч интерсно. Надо попробовать.

Оффлайн Fever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #3 : 30 Май 2006, 20:31:14 »
mai,
Конечно, не вопрос. Только как можно научиться, если помотреть в готовый вариант? Скорее возникнет желание просто скопировать ;) Советую тебе сначала попробовать, и только при возникновении проблем смотреть в чужой код. Исходники не слишком задокоментиравонны, так что если что спрашивай.

Оффлайн mai

  • Пользователь
  • Сообщений: 1740
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #4 : 30 Май 2006, 20:39:54 »
знаю, знаю)... это не слишком педагогично чужой текст смотреть...

Оффлайн Mortal Hero

  • Пользователь
  • Сообщений: 1570
  • Пол: Мужской
  • Явился, не запылился... :)
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #5 : 31 Май 2006, 02:47:35 »
Эх...Мне бы найти туториал именно по написанию эмулятора НЕС...Может кто то знает...

Оффлайн mai

  • Пользователь
  • Сообщений: 1740
    • Просмотр профиля

Оффлайн Fever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #7 : 19 Июнь 2006, 00:26:13 »
Всётаки добил его до конца, оказалось не так всё просто, особенно борьба с багами и ленью:cranky: Но несмотря на всё это, вот он - эмулятор языкового интерпретатора, великий и ужасный Chip-8.

Features:
-Полная эмуляция всех опкодов Сhip-8 (нехватает SChip)
-HWrap, VWrap
-Smart random
-Удобное меню

Примечания:
-Чтобы врубить звук, нажмите 's' в главном меню (нелюблю я эту пищалку)
-Нажав '7' в меню, можно установить скорость эмуляции (300 - default, чем меньше, тем быстрее)
-Управление в играх - вся цифровая клавиатура (DW Style)
-Все игры находятся в архиве.

Оффлайн B0nus

  • Пользователь
  • Сообщений: 603
  • Пол: Мужской
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #8 : 21 Июнь 2006, 05:54:20 »
Fever,
 неплохо, однако больно уж коряво..чё там за полосы снизу..
и главное где хоть какиенибудь доки по эмулю?
да, игры тут далеко не все, прилагаю полный архив игр по Chip8 и лучший эмуль этой системы..

полный архив игр на Chip 8
лучший эмулятор
« Последнее редактирование: 27 Июль 2006, 07:39:32 от B0nus »

Оффлайн Fever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #9 : 22 Июнь 2006, 19:41:59 »
Немного оптимизировал и почистил. Получился красивый, чистый код. Притом ещё и дико простой. Проще может быть только... Не, уже ничто. Осталось только тот туториал с голдроада найти для сравнения.

Оффлайн B0nus

  • Пользователь
  • Сообщений: 603
  • Пол: Мужской
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #10 : 26 Июнь 2006, 03:26:57 »
и что вы выложили?
4 файла неизвестно чего, как этим пользоваться?

Оффлайн Kintaro Oe

  • Пользователь
  • Сообщений: 170
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #11 : 26 Июнь 2006, 20:40:11 »
Цитата: B0nus
и что вы выложили?

Исходники на Turbo Pascal! Ис-ход-ни-ки! Тоесть самое то!
 
Цитата
4 файла неизвестно чего, как этим пользоваться?

Скомпилировать и наслаждаться!
« Последнее редактирование: 27 Июнь 2006, 01:46:48 от aUruM »

Оффлайн Fever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #12 : 26 Июнь 2006, 21:29:20 »
А вот и голдродовский туториал по чипу. Очень доступное описание азов. Рекомендую  .

Оффлайн Йобан Матич

  • Emu-Land Team
  • Сообщений: 2593
  • Пол: Мужской
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #13 : 26 Июнь 2006, 23:14:42 »
Дня через два-три(когда нормальный дебугер и поддержку читов напишу) свой выложу.

Оффлайн Fever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #14 : 27 Июнь 2006, 21:02:05 »
Дебугер легко, а чита, типа сейв-лоад стэйт, хватает, чтобы пройти самую сложную игру-аркаду Ant. Вот. На чём пишешь?

Оффлайн Йобан Матич

  • Emu-Land Team
  • Сообщений: 2593
  • Пол: Мужской
    • Просмотр профиля
Эмулейшн кодинг фо бегинерс =)
« Ответ #15 : 27 Июнь 2006, 23:12:36 »
Delphi.

Выложу в понедельник. Я 5 вирусов из института принёс. Комп лечить буду. И ещё Баг в тетрисе обнаружилю щас на скорую руку переписал. буду оптимизировать. Наверное на С++ Builder перепишу.