Автор Тема: Civgen - Цивилизация 1 на Sega Mega Drive  (Прочитано 12696 раз)

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

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« : 24 Июнь 2019, 20:50:33 »
Здорово, Эмуленд.

Я хочу портировать первую Цивилизацию на Сегу. Так как дело это не одного дня, на каком-то этапе всё же надо выкладывать то, что есть на данный момент. Тем более вдруг потом не будет возможности/желания продолжать. Сейчас готово движение юнитов, экран города и цикл обхода городов в начале хода, а поэтому два человека уже худо-бедно могут играть друг против друга, и поэтому этот прототип уже имеет какую-то играбельность, поэтому думаю, пора выложить. Однако никакого ИИ пока толком нет.

Скачать РОМ:
https://drive.google.com/open?id=1JPxEX7hjRQzrN2eFwlzNTQ7oIJR0IPUS

Старая версия 1.4 (последняя, где игрок по умолчанию управлял всеми цивилизациями)
https://drive.google.com/open?id=1LmaQV8c2vJYdk5ugD5kmDNJaqP_MJmKY

Ридми с кнопками управления игрой (хотя думаю, обычно всё интуитивно понятно и можно быстро разобраться):
https://drive.google.com/open?id=1VRvAKiBKxF7PXKmo80QucGmtATRZ_iG3
Список изменений (чтобы не писать лишний раз в топике):
https://drive.google.com/open?id=1Aq1h2WCBDWru2C7h24_d4Q5eKbBs-hOI

Я решил выложить в первую очередь тут, т.к., во-первых, я недостаточно силён в английском языке, чтобы свободно общаться на международных площадках, а во-вторых, всё же этот проэкт нарушение копирайта, а в России к этому общественное мнение мягче. Ну и Эмуленд ресурс достаточно популярный и мне знакомый и приятный.

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

Ещё из пожеланий - если по невероятному стечению обстоятельств у кого-то есть гайдбук Rome on 640k a day, я буду благодарен за его сканы (хотя это книжка немаленькая). Ну или я закажу его в бумажном виде рано или поздно. В свободном доступе его, увы, не найти.

Написано на си с помощью библиотеки SGDK, благодаря которой на Сежку создано множество интересных вещей.

Хотелось бы выразить благодарность многим людям на civfanatics, но т.к., во-первых, мне лень спрашивать у каждого разрешения на включение в титры, а во-вторых, без разрешения вставлять чьи-то имена считаю неэтичным, я ограничился в игре общей фразой. Когда речь идёт о прямом переписывании кода, это проект CivOne, а также код darkpanda. Использовано без разрешения.

Исходники в ближайшее время выложены не будут. 1) Не думаю, что это так уж надо кому-то 2) написано это очень плохо и 3) писалось для себя.

Ниже перечислено положение вещей на момент Public Alpha 1.5
« Последнее редактирование: 10 Август 2019, 14:14:28 от sadhedg »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2482
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #1 : 24 Июнь 2019, 21:19:00 »
мазохист. в одиночку запилить это будет оооочень сложно. слишком много нюансов. но в целом руль :)

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4953
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #2 : 24 Июнь 2019, 22:46:32 »
No thanks. - запятая нужна.
Rome in 640k
Вы про книгу "Sid Meier's Civilization or Rome on 640k a day"?
Поддержка мыши будет? :)
--------
Судя по рому, графику вы не сжимаете, потому и размер большой.
« Последнее редактирование: 24 Июнь 2019, 23:00:19 от Sharpnull »

Оффлайн Globotronik

  • Пользователь
  • Сообщений: 956
  • MADNESS. GREEN. UNSTABLE.
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #3 : 24 Июнь 2019, 22:59:06 »
Интересно, респект за старание.

Правда, Цива имхо не приставочная игра в принципе, поэтому там и не существовала.

Приставки (опять же имхо) больше ориентированы на геймплей с минимумом размышлений и больше действия, поэтому там в таком жанре более уместной была игра типа Mega Lo Mania.

Но сейчас ретрогеймеры, конечно, оценят, а, может, кто-то бы и картриджи захотел - это же сама Цива, а не 100500й платформер или стрелялка. В общем, удачи.

Оффлайн gotten

  • Пользователь
  • Сообщений: 4735
  • Пол: Мужской
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #4 : 24 Июнь 2019, 23:23:08 »
Правда, Цива имхо не приставочная игра в принципе, поэтому там и не существовала.
Вообще-то на Snes первая часть вышла, на Ps1 первая и вторая.

Оффлайн Globotronik

  • Пользователь
  • Сообщений: 956
  • MADNESS. GREEN. UNSTABLE.
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #5 : 24 Июнь 2019, 23:30:57 »
gotten, 0_0. Не знал, спасибо за просвещение.
А насколько тогда сильно сабж будет отличаться от версий Snes и PS1?

Добавлено позже:
upd: так-так, на PS1 точно есть первая? Вторую на PS1 и первую на Snes нашел в поиске сразу, а первую на PS1 что-то не вижу
« Последнее редактирование: 24 Июнь 2019, 23:47:58 от Globotronik »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #6 : 25 Июнь 2019, 00:01:39 »
так-так, на PS1 точно есть первая?
http://redump.org/disc/5607/

Оффлайн ndivision

  • Пользователь
  • Сообщений: 140
  • Пол: Мужской
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #7 : 25 Июнь 2019, 01:41:46 »
Очень крутой проект!
В свое время civ-1 была моей одной из любимейших игр под DOS на 286 компах :))

Оффлайн Kyasubaru

  • Пользователь
  • Сообщений: 1536
  • Пол: Мужской
    • Steam
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #8 : 25 Июнь 2019, 06:32:08 »
Приставки (опять же имхо) больше ориентированы на геймплей с минимумом размышлений и больше действия, поэтому там в таком жанре более уместной была игра типа Mega Lo Mania.
https://koei.fandom.com/wiki/Main_Page

Оффлайн SPOT

  • Пользователь
  • Сообщений: 573
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #9 : 25 Июнь 2019, 09:05:00 »
sadhedg, Вы портируете игру используя исходный код?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #10 : 25 Июнь 2019, 14:35:09 »
SPOT, в 1м сообщении упоминается civone https://github.com/SWY1985/CivOne и еще чей-то код

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #11 : 25 Июнь 2019, 16:00:19 »
sadhedg, Вы портируете игру используя исходный код?
Нет, исходный ход Civ1 недоступен. На civfanatics в своё время разбирали многие тонкости механики, даже немножко логику компьютерного игрока. Плюс собственный игровой опыт. Этим и пользуюсь. Но логика компьютерного игрока будет всё-таки своя, т.к. это не разобрано толком, и дизассемблировать я это не хочу и не могу. И по-моему это неплохо, если игра в этом плане будет отличаться. Конечно, есть freeciv, но ресурсы сеги несоизмеримы с ней. ИИ в оригинале-то был весьма тупой.

Цитата
А насколько тогда сильно сабж будет отличаться от версий Snes и PS1?
Из snes версии взята графика клеток земли и ещё некоторая, но в целом я ориентируюсь на ДОС-версию. PS1 - это слишком круто. Сабж отличается и от snes, и от dos версии, но новые правила (или баги) snes-версии, какие знаю, я не учитываю.

Цитата
Поддержка мыши будет? :)
Скорее всего нет, наоборот, посмотрев на snes версию, которая заточена под мышь и в которую играть с геймпада - имхо мучение, захотелось реализовать по возможности удобное управление с геймпада. Как я его себе представляю. Ну и очень мало у кого реально есть сегамышь. Так что нужно это если только для эмуляторов. Даже если когда-то и будет, то схема управления мышью будет на основе геймпадного управления.

Цитата
Судя по рому, графику вы не сжимаете, потому и размер большой.
Грешен, не заморачиваюсь, мне так удобнее. Хотя в SGDK есть встроенные средства для этого. Но пока ещё вес приличный, и  вряд ли будет больше 3 мб, а в 4 уложиться должен хоть как. Я люблю обращаться к картинкам по их смещению в РОМе. А насчёт картинок юнитов я слукавил - там ещё дело в том, что это надо перевести 256 цветов VGA в 31 цвет двух сеговских палитр. Например, картинки технологий перерисованы в значительной мере вручную.
Цитата
No thanks. - запятая нужна.
Ну тут точная копия из оригинала. ^_^
Цитата
Вы про книгу "Sid Meier's Civilization or Rome on 640k a day"?
Про неё, любимую. Спасибо, что поправили.

Ссылка в оп-посте обновлена.
Изменения:
« Последнее редактирование: 25 Июнь 2019, 16:17:04 от sadhedg »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4953
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #12 : 25 Июнь 2019, 17:44:08 »
Ну тут точная копия из оригинала. ^_^
Зачем же ошибки повторять. В сети спрашивают про разницу "no, thanks" и "no thanks" - везде отвечают, что второй случай отрицает спасибо, пример:
Цитата
"No thanks to you!" does mean "There are no thanks due to you. You did nothing to help!"
Less common than just "No, thanks", but a 'known idiomatic phrase' of its own.
"Oh, you've finished the cleaning, then."
"Yeah. No thanks to you - you just lay in bed till ten!"

А сжатие графики, действительно, пока особо не нужно, чтобы время не терять.

Оффлайн SPOT

  • Пользователь
  • Сообщений: 573
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #13 : 26 Июнь 2019, 07:59:32 »
sadhedg, сколько времени ушло на написание игры?

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #14 : 26 Июнь 2019, 15:00:24 »
sadhedg, сколько времени ушло на написание игры?
Посмотрел сейчас, первая сохранившаяся сборка - конец февраля этого года.

РОМ по ссылке в ОП-посте обновлён (1.2).
Изменения:
1) реализована загрузка игры из save ram. Особо не тестил, но вроде бы всё ок. Да, старый сейв работать не будет - в процессе сохранения были ошибки.
2) если sram нет, теперь при попытке сохраниться игра сообщит об этом и не будет делать вид, что сохраняется
3) исправлен баг: на северн. и южном полюсе юнит не мог сдвинуться с места, "телепортируясь" обратно
РОМ снова обновлён (1.3).
Изменения:
1) сделано сохранение и загрузка игры в/из sram в hot seat (в конце хода любого из двух игроков)
2) добавлено быстрое перемещение курсора при вводе имени
3) добавлена установка на карту спец. ресурсов из seed'а при загрузке
4) исправлен баг графики, если загрузить игру после просмотра начальной заставки до конца
5) при загрузке игры теперь создаётся массив с номерами городов, которым принадлежат клетки (без него были баги)
6) при загрузке игры теперь устанавливается количество ходов в воздухе для авиации (раньше было 0, и вся авиация не в городах и не на авианосцах исчезала в начале следующего хода)
7) исправлен баг - если в хотсите 2-ой игрок управляет со второго геймпада и первым выбрал цивилизацию, стартовые поселенцы создавались 2 раза (в разных местах, если не карта Земли)

Следующая цель - ИИ варваров, до тех пор обновлений не будет, если только не что-то критичное.
Ещё хотелось бы услышать, насколько удобно на оригинальном геймпаде нажимать диагонали для перемещения юнитов. Я пробовал на крестовине иксбоксовского, вроде бы неплохо.
« Последнее редактирование: 28 Июнь 2019, 14:32:52 от sadhedg »

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #15 : 01 Июль 2019, 20:31:06 »
РОМ по ссылке в ОП-посте обновлен до 1.4.
Сейв от старой версии несовместим с новой.
Изменения:

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 1268
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #16 : 03 Июль 2019, 21:35:00 »
Вот это я понимаю проект.
Удачи вам и терпения.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2482
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #17 : 03 Июль 2019, 23:39:41 »
а я две буквы поменял в какой-то игре и считал себя крутым ромхакером...

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #18 : 05 Июль 2019, 03:20:12 »
ОП-пост обновлён. Оставил ссылку на старую версию и добавил ссылку на новую.
Изменения в 1.5.
1) добавлена кнопка просмотра гарнизона на экране города (кнопка BUY стала меньше). Можно снимать команды с юнитов из этого меню.
2) отключено управление человеком для всех цивилизаций, кроме выбранной в сингле или двух выбранных в хотсите. Пока ход комп. игрока происходит "от его лица". Юниты комп. игрока пока практически ничего не делают. Отключены и изменены на правильные многие сообщения на ходе компа (но далеко не все). Например, если у игрока есть посольство, он будет получать сообщения при открытии компом технологии и т.п.. В городах компа всегда auto build. Комп устанавливает работников вокруг своих городов по умолчанию каждый ход (а также снимает специалистов и ставит их на поля, если недостаточно пищи). Комп каждый ход подсчитывает своё желание основать новый город (эта переменная учитывается и для человека, если он поставит auto build в городе).
3) комп. игрок сам выбирает технологию на изучение, а также технологию при захвате города (меню не появляется)
4) кнопка Z в режиме редактора теперь меняет управление текущей цивилизацией с компьютера на человека и обратно. Нажатие Y на самом первом экране позволяет управлять крестовиной юнитами компьютера, которые не выбрали команду (скипали ход)
5) старые сейвы теперь не совместимы с игрой (хотя нового добавлено мало, но весь сейв смещён на 10 байт - Зал Славы находится в начале, и он не влезет в 100 байт, нужно 110 - я неправильно подсчитал, когда оставил под него место).
6) многочисленные багфиксы, улучшения и изменения, немного изменён алгоритм auto build
7) в rom добавлены некоторые тексты, в основном подсказки. Пока подсказки не используются. Некоторая графика в rom'е  сжата.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2482
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #19 : 06 Июль 2019, 14:45:57 »
если проект активно попиливается, то может быть имеет смысл сделать некую программу-актуализатор? в смысле запускаешь не ром, а свой ехе файл. который, если это первый запуск, просит указать путь до эмулятора. запоминает его. после лезет на свой сайт и проверяет номер версии игры. если она отличается от того, что имеется - скачивает и запускает уже самую распоследнюю версию. так-же наверное было бы не плохо чтоб там висело окошко "лога" с результатом. дескать в новой версии появилось тото и тото.

Оффлайн Globotronik

  • Пользователь
  • Сообщений: 956
  • MADNESS. GREEN. UNSTABLE.
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #20 : 06 Июль 2019, 15:48:27 »
SeregaZ, программировать и так не легкое занятие, а ты автора еще этим нагружаешь
Пусть лучше игра как можно качественнее получится. Чай не дота 2 какая-нибудь, чтобы годами обновляться, потом обновляльщик все равно не нужен станет

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2482
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #21 : 06 Июль 2019, 17:39:51 »
 :cool: потому и был задуман RHTEAM, но в процессе стимы, сволочи, украли у меня идею и начали сами сега-игры раздавать. я правда планировал что раздаваться будут ромхаки, вместо оригиналов. впрочем сцена мыслю не оценила и проект канул в лету. но больше из-за самого стима, нежели что сцена не оценила.

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #22 : 15 Июль 2019, 22:53:16 »
Обновил ромик.
1) добавлены многие действия для юнитов комп. игрока за варваров. Но ходят они по-прежнему "от своего лица"
2) сделано несколько улучшений GoTo. В связи с этим в сейве теперь дополнит. хранятся 256 байт (2 бита x 1024 юнита).
3) в сейв добавлена информация о текущем ходе игры. Сейв сместился на 2 байта, старый несовместим.
4) теперь при уничтожении одной из цивилизаций по неизвестной причине в хот-сите (например, если распустить первого сеттлера) будет сообщение о победе другого игрока
5) теперь, если в городе включено авто-строительство, то при начале беспорядков происходит новая проверка на то, что строить
6) теперь при уничтожении города в клетке уничтожаются все корабли в этой клетке
7) исправлен баг: если корабль с пассажирами атаковал юнит на суше и проиграл, его пассажиры не погибали вместе с ним
8) при завершении строительства в городе теперь всегда идёт пересчёт переменных для города, даже если не произошёл вход на экран города. Без этого, например, могли начаться беспорядки на том же ходе, когда построен юнит, который их должен был подавить.
9) исправлен баг: при строительстве чуда не было захода в другие города, строившие его (что должно было быть реализовано в 1.4). Кроме того, теперь при автостроительстве проверка на то, что чудо уже построено, происходит вообще всегда, а не только первый ход после постройки.
10) исправлен баг: у корабля при движении стрелочками обнулялись очки хода, если он рядом со своим городом
11) теперь, если юнит не смог пройти на след. клетку (шанс был меньше 100%), позиция курсора устанавливается на юните
12) исправлен баг: при загрузке игры не пересчитывалось количество необходимых лампочек для следующего открытия в зависимости от количества уже совершённых открытий
13) исправлен баг: неактивные цивилизации в начале игры всё равно получали бонус за плохой старт, в том числе могли получить сеттлера (он спавнился в координатах 0,0)
14) теперь при высадке варваров, если их корабль в исследованной человеком-игроком клетке и на расстоянии не более 5 клеток от города игрока-человека, все юниты варваров в этой клетке становятся известны игроку-человеку, а если не отключены ходы врагов - показывается сообщение о высадке варваров и карта центрируется на них. Этот пункт не тестирован.
« Последнее редактирование: 19 Июль 2019, 14:35:36 от sadhedg »

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #23 : 21 Июль 2019, 15:53:49 »
Так, вести с полей.
Я попытался запихнуть анимацию волн из основного цикла в вертикальное прерывание и обычно всё ок, но при определённых обстоятельствах иногда происходит очень странный баг, ещё и разный на разных эмуляторах, так что я от этой идеи (пока?) отказался. Я предпочитаю понимать, что происходит. А с тем багом я не понимаю. Может быть, запихну в обработчик прерывания только изменение таймера для смены палитры, а саму смену палитры по-прежнему буду делать в основном цикле.

Во-вторых, для меня большим сюрпризом стало то, что BlastEm эмулирует cram bug. Наверное, после той демки от GameHut. Я был уверен, что ни один эмулятор его не эмулирует. Ну и оказалось, что мусор от cram bug у меня весьма сильный. Надо будет с этим разбираться. Как-то поместить мусор в низ экрана.
« Последнее редактирование: 21 Июль 2019, 16:05:46 от sadhedg »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9364
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #24 : 21 Июль 2019, 16:55:27 »
Во-вторых, для меня большим сюрпризом стало то, что BlastEm эмулирует cram bug. Наверное, после той демки от GameHut. Я был уверен, что ни один эмулятор его не эмулирует.
что такое GameHunt ?
демки использующие эффект "direct color DMA" появились еще лет 7 назад, а чуть позже и поддержка этого дела в "живых" эмуляторах. первым емнип был Exodus, потом и другие.

Оффлайн sadhedg

  • Пользователь
  • Сообщений: 34
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #25 : 22 Июль 2019, 23:24:47 »
демки использующие эффект "direct color DMA" появились еще лет 7 назад
Скорее лет 25 назад.
https://www.youtube.com/watch?v=l6KRVmX4FuM
Это и есть тот самый канал, о котором я говорил. Однако Бертон в этом видео утверждал, что он не нашёл эмулятора, который корректно воспроизводит его демку. Ну я этому и поверил и не стал проверять.

Обновил ромик до 1.6.
Изменения:
1) мусор от обновления палитр вынесен по возможности за экран
2) таймер анимации волн теперь в vsync, но сама анимация по-прежнему в основном цикле. Также теперь анимация волн включена почти всегда.
3) убрано сообщение о захвате города варварами в хот-сите (т.к. я стремлюсь к тому, чтобы ход варваров был в хот-сите полностью "невидимым")
4) теперь при посадке юнита на корабль с командой Sentry эта команда с корабля снимается (как в оригинале)
5) теперь при мигании активного юнита у него подложка "много юнитов", если он на клетке не один (как в оригинале)
6) в заголовок рома добавлен флаг поддержки save ram и информация о размере save ram - 64 кб (фактически 32 кб, т.к. используются только чётные адреса). Сохранения теперь работают на blastem и некоторых других эмуляторах, а не только на fusion и gens. Но на exodus сохранение по-прежнему не работает.
7) Улучшено сжатие карты для save ram (например, на карте Земли на старте сейв теперь приблизительно на 500 байт меньше). Старый сейв несовместим.
8) варвары теперь разбойничают в т.ч. и в состоянии GoTo
9) варвары теперь перемещают свою авиацию, а не только атакуют ей (хотя в нормальной игре у них никогда нет авиации)
10) флот/авиация с GoTo теперь может идти в свой город (а также на авианосец для авиации), если этот город/авианосец - финальное назначение GoTo. Раньше корабль или авиация не могли в режиме GoTo войти в свой город (а также на авианосец для авиации) ни при каких обстоятельствах.
11) повышена точность подсчёта грамотности и болезней на экране демографии
12) почти вся графика сжата, немного уменьшено использование ram, цивилопедия и некоторые другие массивы текстов теперь используют строки переменной длины
13) исправление ошибок

Что касается сжатия графики. rescomp требует весьма много оперативной памяти, что меня удивляет, ведь на Сеге ram ничуть не больше, чем видеопамяти. И если память есть, её надо использовать с пользой, а не оставлять на сжатие/разжатие графики. А тут для сжатия нужно приблизительно 1 к 1 свободной памяти, вроде бы даже немного больше. Я сжал почти все маленькие картинки, хотя кое-какие пришлось разделить пополам. Но разрезать большие картинки на множество маленьких - это маразм. Так что я воспользовался утилиткой bmp2tile, чтобы получить готовые тайлсеты больших картинок, а затем сжал их RLE с нарезанием на блоки одинакового размера (одновременно в оп. память загружается один кусок). В итоге размер РОМа усох до 9 мегабит с первоначальных 12. Я сильно озаботился этим вопросом, т.к. узнал, что при рубеже в 2 мбайта могут начаться проблемы с save ram, которые можно обойти, но я решил, что пришла пора заняться сжатием.
« Последнее редактирование: 07 Август 2019, 14:12:08 от sadhedg »

Оффлайн TiberiyLTim

  • Пользователь
  • Сообщений: 346
  • Пол: Мужской
  • -=TLT=-
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #26 : 13 Август 2019, 23:00:28 »
Какие новости по проекту? О нём хорошо отзываются забугорные ретрогеймеры - http://www.indieretronews.com/2019/08/civgen-ambitious-project-to-bring.html

Оффлайн varezhkin

  • Пользователь
  • Сообщений: 946
  • Пол: Мужской
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #27 : 13 Август 2019, 23:15:17 »
и все-таки каких хороших людей объединил эмулэнд... :hi:

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2482
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #28 : 14 Август 2019, 05:31:18 »
а разъединил еще больше :) из-за срачей поливало народу тьма. искай их потом по форумам, скайпам и дискордам... эх. печаль.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Civgen - Цивилизация 1 на Sega Mega Drive
« Ответ #29 : 14 Август 2019, 22:04:25 »
А тут для сжатия нужно приблизительно 1 к 1 свободной памяти, вроде бы даже немного больше. Я сжал почти все маленькие картинки, хотя кое-какие пришлось разделить пополам. Но разрезать большие картинки на множество маленьких - это маразм.
Можно использовать lzss c кодом распаковки в vram, стандартный вариант требует не более 4кб, независимо от размера архива. Есть вариации и с меньшим 'окном', ну и сжатие соответственно слабее будет. Есть алгоритм сжатия nemesis , созданный специально для тайлов сеги, тот кажется совсем мало требует байтов 500, используется в сонике и других играх.


Добавлено позже:
Я сильно озаботился этим вопросом, т.к. узнал, что при рубеже в 2 мбайта могут начаться проблемы с save ram, которые можно обойти, но я решил, что пришла пора заняться сжатием.
Если использовать эту память только для сохранений, проблемы особой нет.
move.b   #1,($A130F1).l  переключает область $200000-$20FFFF на sram,  а #0 обратно на rom -   работает на всех эмуляторах и картриджах евердрайв.