Просмотр полной версии : Порт игры Desolate на БК
... можно скачать по адресу http://sandro.pdp-11.ru/bin/desolate01.zip
Там загрузочный диск и крайне непричёсанные исходники. Требуется БК-0011М, так как игра занимет 43КБ ОЗУ плюс экран. Основой послужил порт Никиты Зимина для УКНЦ (https://zx-pk.ru/threads/32566-portirovanie-desolate-s-ti-83-plus-na-uknts.html). Оригинал был написан ещё в 2004 (?) году для программируемого калькулятора TI-83 Plus (очень мощная штука, кстати говоря).
Управление -- стрелки, пробел/ввод -- действие, Q переключает стрельбу/исследование, I - инвентарь, P - пауза/меню. Сохранений нет и в исходной игре никогда не было. Это хоррор, в нём убивают навсегда. Коды к замкам при повторном прохождении не подходят (кроме замков первого уровня).
Не забываем читать все записи, которые находим. Карту рисовать надо, игра большая.
Версию пока ставлю 0.1, потому как дорабатывать напильником там можно много чего, начиная с загрузчика ;) Ну наиболее важно, разумеется, сконвертировать графику специально для БК, в оригинале она в не чисто ЧБ, а в оттенках серого. На БК можно было бы и раскрасить. И сделать тайлы 8x10 вместо 8x8, для квадратности.
Звук бы тоже не помешал. Да и графику можно упаковать, код поджать есть куда, возможностей много. Но когда это всё будет -- неизвестно, поэтому пока выкладываю так.
Воу... Это было... быстро!
1. Нужен "дневной" режим, чтобы меню и игровой режим не были инверсными.
Как вариант, можно хранить режим в переменной, и сделать два варианта копирования теневого экрана на реальный - при включении "дневного" режима делать BIS для половины битиков - тем самым выдавая другой цвет. А остальное сделать палитрой.
2. Лучше сместить всё ниже, чтобы сверху был отступ равный отступу снизу.
3. Все задержки нужно уменьшать раза в два - я так делал при портировании на Вектор-06Ц.
https://pic.maxiol.com/thumbs2/1612967820.1845257503.20210210143306753.png (https://pic.maxiol.com/?v=1612967820.1845257503.20210210143306753.png&dp=2) https://pic.maxiol.com/thumbs2/1612967859.1845257503.20210210143413029.png (https://pic.maxiol.com/?v=1612967859.1845257503.20210210143413029.png&dp=2)
Adam Bazaroff
10.02.2021, 19:05
Круто! Много там графики? Могу помочь «растянуть».
Круто! Много там графики? Могу помочь «растянуть».
Вот все тайлы и спрайты: https://github.com/nzeemin/spectrum-desolate/blob/master/SpriteRotate/tiles.png
1-я группа это тайлы фона, нет прозрачности, только чёрный цвет значим, остальные считаются белым.
2-я группа это спрайты, тёмно-серый цвет это прозрачный, на его основе делается маска, из остальных цветов только чёрный цвет значим, остальные считаются белым.
3-я группа это тайлы для наложения на фон, тёмно-серый цвет прозрачный.
4-я группа это стрелки для меню/индикаторов, а также иконки для инвертаря, все без прозрачности.
То что для "белого" использовано больше цветов чем нужно (также светло-серый и светло-голубой) - это потому что в оригинале все тайлы и спрайты были 4-цветными.
Да, ещё - конвертация тайлов/спрайтов в код делается программой SpriteRotate (на C#), соответственно её тоже нужно будет поправить.
Причём, при работе над графикой я этой программой генерил файлы roomsnew.png и spritesnew.png - там рисуются все комнаты и все фазы ГГ, чтобы сразу можно было оценить изменения.
Воу... Это было... быстро!
;) Так как машины состоят в близком родстве, то удалось обойтись заменой процедуры копирования теневого экрана в реальный и некоторыми исправлениями в опросе клавиатуры. На самом дел, основное время ушло на разбор исходного кода. Его не так уж много, но всё же 4К строк -- это 4К строк.
1. Нужен "дневной" режим, чтобы меню и игровой режим не были инверсными.
Уже сделал и перезалил поверх. Ночь была просто из-за того, что поторопился.
Как вариант, можно хранить режим в переменной, и сделать два варианта копирования теневого экрана на реальный - при включении "дневного" режима делать BIS для половины битиков - тем самым выдавая другой цвет. А остальное сделать палитрой.
Я в конечном счёте сделал через XOR и палитру.
2. Лучше сместить всё ниже, чтобы сверху был отступ равный отступу снизу.
Не уверен. В общем-то это вкусовщина... ну надо подумать.
3. Все задержки нужно уменьшать раза в два - я так делал при портировании на Вектор-06Ц.
На самом деле я их вовсе обнулил. Оно сейчас упирается в отрисовку тайловой карты в теневой буфер (каждый кадр!), и несколько в меньшей степени -- в разворачивание буфера в 2 бита/пиксель.
Надо как-то это дело переписать для скорости.
Кстати, движок, несмотря на простоту, в общем-то может довольно многое при простых модификациях. Игра такая скромная (почти нет предметов, и всего 7 загадок) исключительно потому, что у калькулятора закончилась память. Автор сам писал, что ему пришлось выкинуть часть комнат, чтобы она влезла. На 11М запас-то ещё огромный, есть куда развернуться.
Да даже без дополнительных страниц, так код можно где-то на килобайт сократить просто переписав все простыни cmp/beq на таблицы и сделав хотя бы минимальный байткод для логики. Только на это время нужно ...
Да даже без дополнительных страниц, так код можно где-то на килобайт сократить просто переписав все простыни cmp/beq на таблицы и сделав хотя бы минимальный байткод для логики. Только на это время нужно ...
Я там нашёл резерв примерно в 2Кбайта на том чтобы улучшить RLE алгоритм при распаковке комнат - сейчас он слишком расточительный.
Ну и по производительности - описание комнаты каждый раз разворачивается для очередной проверки "а что у нас тут", хотя это можно делать один раз при входе в комнату.
Я там нашёл резерв примерно в 2Кбайта на том чтобы улучшить RLE алгоритм при распаковке комнат - сейчас он слишком расточительный.
О, да. С учётом того что номера тайлов семибитные -- да и в описаниях комнат тоже всё в 7 битах, то напрашивается канонический ход -- кодировать команду "повторить предыдущий байт" как 0x80 +n, что сразу даёт изрядный выигрыш. Плюс применить шаблонирование -- незачем копировать стенки 72 раза, они всё равно почти одинаковые. Кодировать только дельту от шаблона.
А некоторые комнаты вообще не сжаты, например 64 и 68. Почему -- неясно.
И с монстрами да предметами печаль.
Собственно, когда я об этом думаю, то сразу вспоминается спектрумовская The Bard's Tale, с её ошеломляющим монстрятником в 127 видов! С атрибутами, заклинаниями, и даже картинками! Страшненькими, но все же.
Столько, может, и не надо, но с 32 байтами (допустим) на объект мы можем себе позволить эдак десятка три объектов и десяток монстров. Это вполне нормально, В Betrayal at Krondor меньше и того, и другого, а игра отличная получилась.
Главное -- не запихивать каждый чих в код, он от этого разрастается очень резво. Таблички, какой-нибудь байтовый интерпретатор -- всё это очень сильно помогает.
Ну и по производительности - описание комнаты каждый раз разворачивается для очередной проверки "а что у нас тут", хотя это можно делать один раз при входе в комнату.
Да, это я тоже заметил. Хорошо хоть, оно по размеру -- всего ничего.
NEO SPECTRUMAN
11.02.2021, 06:16
но всё же 4К строк -- это 4К строк.
тю
:v2_lol:
Пережал карты комнат вышеописанным алгоритмом.
66 unique tile maps found
Packed all unique tile maps to 4063 bytes (58.8%), old 4683 bytes (67.8%)
Несжатые комнаты занимают 6912 байт.
Для эксперимента пережал наивным способом (отсутствие разницы с предыдущей комнатой кодируется специальным кодом тайла). Уже 3044 байта!
Где-то ещё байт 400 там можно отыграть ИМХО.
Пережал карты комнат вышеописанным алгоритмом.
66 unique tile maps found
Packed all unique tile maps to 4063 bytes (58.8%), old 4683 bytes (67.8%)
Несжатые комнаты занимают 6912 байт.
Для эксперимента пережал наивным способом (отсутствие разницы с предыдущей комнатой кодируется специальным кодом тайла). Уже 3044 байта!
Где-то ещё байт 400 там можно отыграть ИМХО.
По моим тестам получалось несколько получше:
Rdesc sums: raw 3234, old encoded: 2352, new encoded: 2072, old ratio: 0.7272727, new ratio: 0.6406927
Rooms sums: raw 6912, old encoded: 5065, new encoded: 2567, old ratio: 0.7327836, new ratio: 0.3713831
Raw length total: 10146
Old encoding length total: 7417, ratio: 0.731027
New encoding length total: 4639, ratio: 0.4572245
Old-new encoding length bonus: 2778, ratio: 0.2738025
См. EncodeRoomNew https://github.com/nzeemin/spectrum-desolate/blob/master/SpriteRotate/Program.cs#L1204
Я помню что экспериментально определил, что на этих данных 63 повтора будет достаточно.
Перед кодированием там комната сравнивается с эталоном, для совпадающих значений используется 0x7F, и для 0x7F отдельная ветка кодирования. Код 0x7F в описаниях комнат не встречается.
Но я не проверял что при таком подходе всё корректно раскодируется, может налажал где.
P.S. Я правда не очень понимаю зачем тут заниматься этим спортом, памяти же более чем достаточно?
По моим тестам получалось несколько получше:
См. EncodeRoomNew https://github.com/nzeemin/spectrum-desolate/blob/master/SpriteRotate/Program.cs#L1204
Не сообразил посмотреть. :(
Я помню что экспериментально определил, что на этих данных 63 повтора будет достаточно.
Перед кодированием там комната сравнивается с эталоном, для совпадающих значений используется 0x7F, и для 0x7F отдельная ветка кодирования. Код 0x7F в описаниях комнат не встречается.
Забавно, но я сегодня пришёл к почти аналогичному варианту. Да, 63 повтора всегда хватает. Сейчас у меня сделано так:
0x00..0x7f декодируются, как есть, 0x81..0xbf -- повтор предыдущего байта, 0xc1..0xff -- скопировать соответствующее место из эталона. 56. байт эталона, 1777. байт на сжатые тайловые карты, 144. -- таблица ссылок, итого 1977. байт. Против 7056 байт несжатого. 28%, однако.
Это только тайловые карты, без описателей.
Есть, впрочем, одна дурацкая мысль, как ещё ужаться можно. Но там даже теоретически выигыш мал, лень. Нужный расклад в комнатах почти не встречается.
Но я не проверял что при таком подходе всё корректно раскодируется, может налажал где.
Я свой код проверял -- он нормально распаковывает всё.
P.S. Я правда не очень понимаю зачем тут заниматься этим спортом, памяти же более чем достаточно?
Памяти никогда не достаточно ;)
1) Интересно всё же -- может, каким-то чудом влезет на десятку?
2) Хочется иметь движок для чего-то своего. Сейчас свободно всего 5КБ, если не фокусничать со страницами. Маловато.
3) For fun :)
PS: Забавно, но в средневероятной карте в трёх углах из четырёх какое-то барахло, лень по карте смотреть, что именно. Тайлы 036(2шт), 061 и 065. Коробки какие-то наверно.
1) Интересно всё же -- может, каким-то чудом влезет на десятку?
По мне так нет смысла это делать.
43 КБ ужать в 16 КБ - без потерь это не получится всё равно.
К тому же, на БК-0010 процессор на четверь медленнее.
Память вам понадобится чтобы увеличить размер тайлов/спрайтов и/или сделать их цветными - и вот тут хорошо бы сделать оценку объёмов памяти которые потребуются.
По мне так нет смысла это делать.
43 КБ ужать в 16 КБ - без потерь это не получится всё равно.
Точно? ;) Это же всего в три раза.
Результаты на нынешний момент, включая таблицы распаковки (надо перепроверить завтра на свежую голову, но вроде всё обрабатывается правильно):
1) После нескольких итераций я остановился на том, что комнаты в полном виде, т.е. тайловые карты и описания занимают у меня 3320 байт. Видимо, это финишая величина, так как иначе будет сильно расти и замедляться распаковщик, это не нынешняя ~сотня байт на всё про всё.
2) Графика. Все тайлы и спрайты занимают 6511 байт, это 44% от несжатого. Основной виновник -- TILES1, 3114 байт, ровно 80% от несжатого. Увы. Ну, достаточно посмотреть на него в виде картинки, чтобы понять, почему.
Итого -- 9625 байт на всю графику вообще. Ну с декомпрессором пусть будет 10К для ровного счёта. Текстов многовато, 6К практически ровно. Надо проверить, но со словарём и 5-битной кодировкой должно по идее влезть в 3К примерно. Повторов там много (одной строки "Data Cartridge " на килобайт ровно!) и почти весь текст -- строчная латиница.
Итого 3К на весь код. Жёстко, но не катастрофа. В процедурах там есть что оптимизировать в размер. Логику можно переписать на байткод, и таблицы, это даст какой-то выигрыш.
К тому же, на БК-0010 процессор на четверь медленнее.
А с имеющимся кодом его и у БК-0011М не хватает. Там же каждый кадр строится с нуля. То есть в любом случае хорошо бы переписать на частичное обновление экрана (один фиг там почти ничего не происходит!), а раз так, то имеет смысл и распаковку графики делать на лету, выбросив теневой буфер. Он там нужен разве что чтобы спрайты не мерцали.
Экономим 3КБ памяти и много производительности. Должно хватить, особенно с кэшем спрайтов штук на 8, это 2 * 16 * 2 * 8 = 512 байт, где-нибудь наскребём. Да хоть стек на 0200 поставить, почему нет-то?
Память вам понадобится чтобы увеличить размер тайлов/спрайтов и/или сделать их цветными - и вот тут хорошо бы сделать оценку объёмов памяти которые потребуются.
А это отдельный вопрос. Пока хочется выжать максимум из этого, чтобы понять, куда двигаться. Но цвет очень хочется, само собой. У нас же бесплатный цвет на пиксель, глупо отказываться.
Ну и вообще хочется что-нибудь своё попробовать замутить. Но для этого уже редактор нужен, руками в циферках много не сделаешь.
- - - Добавлено - - -
Блин, забыл про шрифт. 79 * 11 = 869 байт сейчас. Ну его-то понятно, как сжимать. Где-то наверно вдвое он ужмётся.
Adam Bazaroff
17.02.2021, 00:35
Вот все тайлы и спрайты: https://github.com/nzeemin/spectrum-desolate/blob/master/SpriteRotate/tiles.png
ух... по тайликам всё растягивать тяжеловато. Может есть обратный способ? Растянуть готовые образы и потом их разобрать в тайлы?
Блин, забыл про шрифт.
Текстов многовато
и почти весь текст -- строчная латиница
Моё предложение (от которого Никита благоразумно отказался "смайл") сделать перевод в силе.
Могу помочь именно переводом\редакцией текста в игре.
Если есть шанс Русскую версию для БКашки забабахать ? (раз уж для УК-НЦ не вышло).
Буду рад любому ответу, я не программист, но опыт перевода некоторый есть.
Не могу спать. Так отвечу. У Никиты выложены полные исходники для сбора игры. Я совсем немного для БК поправил. Можно скачать. Да и я выложил.
По поводу перевода. Я необъективен. Английский -- мне, как второй родной. Серьёзно. Мне один англичанин скказал, дословно: я забыл, что ты русский!
Так вот, мне нравится английская версия.
Но, если хочешь ..
.extern all
SVERS: .ASCIZ "Desolate - BK port v0.1"
;.INCLUDE /VERSIO.MAC/
;
; Credits
SE02B: .ASCIZ "Code, GFX, Story etc"
SE02D: .ASCIZ "Patrick Prendergast"
SE02F: .ASCIZ "Acknowledgements"
SE031: .ASCIZ "Durk Kingma - Grayscale"
SE033: .ASCIZ "Kerey Roper - Huffman"
SE035: .ASCIZ "Joe Pemberton - RLE"
SE037: .ASCIZ "Joe Wingbermuehle - Ion"
SE039: .ASCIZ "Tijl Coosemans - Venus"
SE03B: .ASCIZ "DetachedS - MirageOS"
SE03D: .ASCIZ "Testers"
SE03F: .ASCIZ "David Sleight"
SE041: .ASCIZ "John Sleight"
SE043: .ASCIZ "Durk Kingma"
SE045: .ASCIZ "Joe Pemberton"
SE047: .ASCIZ "Shawn McAndrews"
SE049: .ASCIZ "Tom King"
SE04B: .ASCIZ "Domi Alex"
SE04D: .ASCIZ "Sammy Griff"
SE04F: .ASCIZ "Dennis Tseng"
SE051: .ASCIZ "AndySoft"
SE053: .ASCIZ "jedbouy"
SE055: .ASCIZ "Bram Tant"
SE057: .ASCIZ "Martin Warmer"
SE059: .ASCIZ "Vincent Junemann"
SE05B: .ASCIZ "Michael Angel"
SE05D: .ASCIZ "Special Thanks & Greetz"
SE05F: .ASCIZ "Everyone @ MaxCoderz"
SE061: .ASCIZ "Everyone on #TCPA (EFNet)"
SE063: .ASCIZ "ticalc.org"
SE065: .ASCIZ "No animals were hurt more"
SE067: .ASCIZ "than once during the"
SE069: .ASCIZ "making of this game."
SE06B: .ASCIZ "Just Kidding ;P"
SE06D: .ASCIZ "Thanks for Playing!"
SE06F: .ASCIZ "visit www.MaxCoderz.com"
SE071: .ASCIZ "ABlakRain"
SE073: .ASCIZ "Travis Supalla"
SE075: .ASCIZ "Jim Dieckmann"
SE077: .ASCIZ "tr1p1ea@yahoo.com.au"
SCR40: .ASCIZ "Ported to UKNC and"
SCR41: .ASCIZ "ZX Spectrum"
SCR42: .ASCIZ "by nzeemin, 2020"
SCR43: .ASCIZ "Adapted to BK-0011M"
SCR44: .ASCIZ "by Alexander Tishin, 2021"
; Data Cartridge messages
SE079: .ASCII "Im hurt bad . . . I dont|think im gonna make it.|I changed the Level 1|Access Code to: 4057|"
.ASCIZ "Maybe that will hold|them off for a while . . ."
SE07B: .ASCII "For security reasons|I had to change the|Level 2 Access Code.|Maybe now the crew|will stop"<002>
.ASCIZ "stealing"<002>"stuff!|It is:"
SE07D: .ASCII "The system is going|haywire. The Level 3|Access Code was over-|written. I only just|recovered it."
.ASCIZ "Turns"<002>"out|it is:"
SE07F: .ASCII "Crew I am honoured to|have served as your|captain. The Level 4|Access Code will get|"
.ASCIZ "to the evacuation deck|It is:"
SE081: .ASCII "Willis and I are stuck.|Needless to say we are|both done for."<002>
.ASCIZ "We"<002>"might|have had a chance, but|some idiot changed the|Level 1 Access Code!"
SE083: .ASCII "I"<002>"dont see"<002>"why I"<002>"should|be the one who has to|fix the generator.|"
.ASCIZ "There is no way im|going with those things|all over the place . . ."
SE085: .ASCII "DrMorgan: Meteorite|shower claimed a lot|of the crew, however|some feature strange|abrations. "
.ASCIZ "Almost like|bite marks . . ?"
SE087: .ASCII "DrMorgan: I found a|strange creature. At|first I thought it was|deceased."<002>
.ASCIZ "But"<002>"it"<002>"sprang|up and attacked my|associate! . . ."
SE089: .ASCII "DrMorgan: To make|matters worse the|creatures are|evolving rapidly. My|associate claims he|"
.ASCIZ "saw one over 7 feet!"
SE08B: .ASCII "It truly baffles me|considering our cargo|why they insist on|equipping the ship with|ONLY "
.ASCIZ "Ion-Phasers.|They are useless!!!"
SE08D: .ASCII "Capt Millin: We are|losing crew fast."<002>"I"<002>"sent|Willis to re-animate|the clones. "
.ASCIZ "Right now|they are the only|chance we have . . ."
SE08F: .ASCII "Capt Millin: I am very|anxious to see the|clones in action. I|hear that they are the|"
.ASCIZ "most advanced clone|soldiers ever created."
SE091: .ASCII "Capt Millin: We are|transporting a cargo|of genetically|modified clones to a|IH-2 Military Facility|"
.ASCIZ "for field testing . . ."
SE093: .ASCII "Capt Millin: I have|just recieved word|that the facility on|earth was destroyed.|"
.ASCIZ "We now carry the only|clone prototypes."
SE095: .ASCII "Willis: We are in BIG|trouble."<002>"Only one"<002>"clone|survived the"<002>"meteorite|shower."<002>
.ASCIZ "And the"<002>"system|says Re-animation will|take over 6 hours!!!"
SE097: .ASCII "This is ludicrous!|65 credits for"<002>"a proton|bar? How are we|meant to snack while|we work? "
.ASCIZ "The agency|is"<002>"getting"<002>"on"<002>"my"<002>"nerves."
;
SE09B: .ASCIZ <020>"No Data Cartridge|"<037><004>"Selected"
SE09D: .ASCIZ "MaxCoderz Presents"
SE09F: .ASCIZ "a tr1p1ea game"
SE0A1: .ASCIZ "Items Found (/24):|"<037><002>"Enemies Killed:|"<037><003>"Player Deaths:||Awards:"
SE0A3: .ASCIZ "OverWrite Current Game?|Enter - Yes :: G - No"
SE0A5: .ASCIZ "- Controls -"
SE0A7: .ASCII "Arrows: Movement|Space: Look/shoot|I: Inventory|Q: Look/shoot mode|"
.ASCIZ "P: Quit to Menu|Other keys: Close pop-up"
SE0A9: .ASCIZ "Earn 3 Good Awards for|an Extended Ending!"
SE0AB: .ASCIZ "Sir Miss-A-Lot"
SE0AD: .ASCIZ "Sherlock Holmes"
SE0AF: .ASCIZ "Running Scared"
SE0B1: .ASCIZ "Terminator"
SE0B3: .ASCIZ "Over & Over Again"
SE0B5: .ASCIZ "Survivor"
SE0B7: .ASCIZ <030>"Ion Phaser"
SE0B9: .ASCIZ "$" ; Arrow down
SE0BB: .ASCIZ " - INVENTORY - "
SE0BD: .ASCIZ "The Desolate has claimed|your life too . . ."
SE0BF: .ASCIZ "OMG! This Person Is DEAD!"
SE0C1: .ASCIZ "What Happened Here!?!"
SE0C3: .ASCIZ <012>"Another Dead Person."
SE0C5: .ASCIZ " Search Reveals Nothing"
SE0C7: .ASCIZ <017>"This Person is Dead . . ."
SE0C9: .ASCIZ "They Seem To Be Holding"
SE0CB: .ASCIZ "Something"
SE0CD: .ASCIZ <017>"Hey Whats This"<006>"."<006>"."<006>". ?"
SE0CF: .ASCIZ "You Picked Up A"
SE0D1: .ASCIZ "You Already Have The"
SE0D3: .ASCIZ "You dont have a|"<036>"Weapon to equip!"
SE0D5: .ASCIZ "It is not wise to proceed|"<031>"without a weapon."
SE0D7: .ASCIZ "You cant enter that sector|"<011>"Life-Support is offline."
SE0D9: .ASCIZ "You cant enter until the|AirLock is re-pressurised"
SE0DB: .ASCIZ <015>"---- N o"<006>"I t e m ----"
SE0DD: .ASCIZ <005>"Door Locked"
SE0DF: .ASCIZ "INVALID"<002>"CODE"
SE0E1: .ASCIZ <016>"Accepted!"
SE0E3: .ASCIZ <037>"You Need A|Data Cartridge Reader"
; Inventory items
SE0E5: .ASCIZ <006>"Data Cartridge Reader"
SE0E7: .ASCIZ <030>"Data Cartridge 1"
SE0E9: .ASCIZ <030>"Data Cartridge 2"
SE0EB: .ASCIZ <030>"Data Cartridge 3"
SE0ED: .ASCIZ <030>"Data Cartridge 4"
SE0EF: .ASCIZ <030>"Data Cartridge 5"
SE0F1: .ASCIZ <030>"Data Cartridge 6"
SE0F3: .ASCIZ <030>"Data Cartridge 7"
SE0F5: .ASCIZ <030>"Data Cartridge 8"
SE0F7: .ASCIZ <030>"Data Cartridge 9"
SE0F9: .ASCIZ <024>"Data Cartridge 10"
SE0FB: .ASCIZ <024>"Data Cartridge 11"
SE0FD: .ASCIZ <024>"Data Cartridge 12"
SE0FF: .ASCIZ <024>"Data Cartridge 13"
SE101: .ASCIZ <024>"Data Cartridge 14"
SE103: .ASCIZ <024>"Data Cartridge 15"
SE105: .ASCIZ <024>"Data Cartridge 16"
SE107: .ASCIZ <037><013>"Power Drill"
SE109: .ASCIZ <006>"Life Support Data Disk"
SE10B: .ASCIZ <037><006>"Air-Lock Tool"
SE10D: .ASCIZ <022>"Box of Power Cells"
SE10F: .ASCIZ <037><007>"Pile of Parts"
SE111: .ASCIZ <037><012>"Duck Idol ;)"
SE113: .ASCIZ <037><010>"Rubik's Cube"
;
SE115: .ASCIZ "In the Distant Future . . ."
SE117: .ASCII "'The Desolate' Space Cruiser|leaves orbit. Its mission is|secret, its cargo classified.|"
.ASCII "6014 Cycles into the journey|the ship encounters a savage|meteorite shower.||"
.ASCIZ "Contact with Desolate is lost."
SE119: .ASCII "The ship sustains heavy|damage. Onboard a cryo-|genic incubation cell|finishes re-animation. "
.ASCII "Its|occupant steps out of the|chamber not knowing who he|is, or what he is going to do.||"
.ASCIZ "But at least he is alive."
SE11B: .ASCII "The onboard guidance|system picks up a mining|facility close by. The course|is set"<002>
.ASCII "and you sit back,"<002>"finally|free of 'The Desolate' & its|murderous hord of Aliens.|"
.ASCIZ "You were a clone, an|experiment. Now, 'you' are|the sole survivor."
SE11D: .ASCII "System Alert triggered: |'Foreign Objects Detected|OnBoard'. The Aliens have|attached to the hull!|"
.ASCII "'Main Drive System Offline'|The ship was on a crash|course for"<002>"the Mining Facility||"
.ASCIZ "It wasnt over yet"<006>"."<006>"."<006>"."
SE11F: .ASCIZ "The End"
;
SACCL1: .ASCIZ <033>"Level 1|"<011>"Access Code|"<025>"Required"
SACCL2: .ASCIZ <033>"Level 2|"<011>"Access Code|"<025>"Required"
SACCL3: .ASCIZ <033>"Level 3|"<011>"Access Code|"<025>"Required"
SACCL4: .ASCIZ <033>"Level 4|"<011>"Access Code|"<025>"Required"
;
SE129: .ASCIZ "You dont seem to be able|"<017>"to use this item here"
SE12B: .ASCIZ "You dont have any time|"<010>"to play with this now"
SE12D: .ASCIZ <022>"It doesnt look like you|"<006>"can do anything else here"
SE12F: .ASCIZ "This Generator is damaged|All of the panels are loose"
SE131: .ASCIZ <017>"This Workstation doesnt|seem to have any power...?"
SE133: .ASCIZ <012>"The Workstation has now|"<011>"successfully booted up"<006>"$"
SE135: .ASCIZ "The Workstation Ejected A|"<037><005>"Data Cartridge 2"
SE137: .ASCIZ " You use the Power Drill|to Repair the Generator"
SE139: .ASCIZ <022>"Life-Support System|has been fully restored"
SE13B: .ASCIZ "The Evacuation Deck has|"<011>"been re-pressurised"
SE13D: .ASCIZ "You Insert a Power Cell.|Guidance System Online"
SE13F: .ASCIZ <014>"The Life Support System|"<025>"needs Re-Configuring"
SE141: .ASCIZ <037><004>"AirLock Control &| Re-Pressurisation Station"
SE143: .ASCIZ <005>"This MainFrame is missing|"<037><026>"a Power Cell"
SE145: .ASCIZ <011>"This Pod cant naviagate.|Guidance System is offline"
SQuit: .ASCIZ "Its now safe to turn off|"<037><016>"your computer."
Так вот, мне нравится английская версия.
Но, если хочешь ..
Английский в играх - я сам предпочитаю, особенно на фоне "над мозговых" Русификаций ;-)
Но тут ведь вопрос сложнее чем просто перевод сколько то там килобайт текста, насколько я
понимаю в игре используется особый шрифт, а есть шанс кириллицу туда загнать?
Далее, сам заголовок игры - НАЗВАНИЕ - Надо так же Русское делать, я не программист, я переводчик\редактор
в этом проекте могу быть максимум...поэтому мне нужна отмашка - делаем или не делаем. Иначе зачем вообще
время тратить на пусто порожние обсуждения?
Лучше всего (по опыту - идеально) когда кол-во букв совпадает для груфики, но в плане шрифта, ширина кирилических букв ш,щ,ы - может стать проблемой?
DESOLATE = 8 знакомест, в графике "зелёная надпись на скриншоте" в самом начале,
соотв. меняется название звездолёта и игры
https://zx-pk.ru/threads/32566-portirovanie-desolate-s-ti-83-plus-na-uknts.html?p=1095282&viewfull=1#post1095282
отсюда и ниже...
В общем текст я переведу допустим и сделаю для удобства обсуждения в виде таблицы
(если решим делать)
/оригинальная фраза-английский/мой вариант/вариант 2/комментарии/
Вопрос - возьмётесь внедрять всё это в код игры - впихивать? Перерисовывать надпись заглавную...
Это ведь тот ещё процесс...
Далее, по поводу приведённых текстов - надо так же решить - нужно ли титры с именами авторов\тестеров переводить?
Как и куда (и получиться ли) вставить инфу про авторов \ участников перевода? В общем это трудоёмко и надо точно
определиться с фронтом работы и прочее прочее прочее...
Возможно вы и Никита правы, никому не нужна Русская версия (такой ценой-потраченного времени, когда игра уже на уровне релиза рабочая есть) с учётом всех описанных заморочек.
Sandro, почти все Credits можно убрать (они относятся к оригиналу, а не порту), и вместо длинного скроллинга показывать статичный экран.
Для меня важно только чтобы было упоминание Patrick Prendergast (tr1p1ea) как автора оригинала для TI-83 Plus.
- - - Updated - - -
Вопрос - возьмётесь внедрять всё это в код игры - впихивать? Перерисовывать надпись заглавную...
Это ведь тот ещё процесс...
На меня можете не смотреть - порт на БК делает Александр, остальные порты Desolate я (пока) трогать не собираюсь.
На меня можете не смотреть
так я же написал, что ты благоразумно отказался ;-) даже ссылку дал на то обсуждение...
Нюансы я риторические вопросы задал - организационные, мнение Sandro узнать и возможно кто то из приверженцев БК проявит инициативу...
Ох, спать пора уже, так что буду краток.
Для начала, я вижу ... эээ ... некоторое недовзаимопонимание. У нас это именно полноценный порт с одной машины на совершенно другую. В которых даже процессоры не имеют АБСОЛЮТНО НИКАКОГО отношения друг к другу. Вообще. Разные графические подсистемы. Разное вообще всё.
Это НЕ пиратский хак с заменой байтов в свободных местах. И прочей хренотенью.
Эта игра была полностью, с пониманием, переписана под вообще другую архитектуру. И там, при желании и наличии времени, можно править абсолютно всё. Я же говорил, что у нас по факту есть рабочий движок для игры с произвольным сюжетом.
И нет никаких ограничений на количество символов в названии, туда можно хоть "Страну Крокодилов" вписать. Но, полагаю, всё же не нужно.
насколько я понимаю в игре используется особый шрифт, а есть шанс кириллицу туда загнать? ... но в плане шрифта, ширина кирилических букв ш,щ,ы - может стать проблемой?
Свой, естественно. Прореженный, чтобы влезло в калькулятор. При желании можно сделать с любой 8-битной таблицей, начиная с кода пробела (32). Хоть катакану :)
Далее, сам заголовок игры - НАЗВАНИЕ - Надо так же Русское делать, я не программист, я переводчик\редактор
эээ... но ведь тогда же должно быть понимание, что крейсер может называться только "Пустынный", иначе пропадает двусмысленность названия именно в этой ситуации. Когда остался только единственный выживший. Не?
DESOLATE = 8 знакомест, в графике "зелёная надпись на скриншоте" в самом начале, соотв. меняется название звездолёта и игры
Там 0 (ноль) знакомест. Это пиксельная графика. Можно хоть крокодилов туда, хоть голых баб. Или и тех, и других одновременно ;) Правда, тогда это выйдет Stormlord...
Вопрос - возьмётесь внедрять всё это в код игры - впихивать?
Сейчас -- нет. Потому что, пока я переделывал порт для БК ... меня, что называется, "накрыло", и я практически сутки без перерыва разбирался в коде игры. И почти всё понял и помню. Пока помню -- хочу довершить переделку кода игры под архитектуру PDP-11, там много неудобных реликтов от Z80 и откровенно странного кода. Например, каракатицы и герой могут двигаться только по одним клеткам (код 1 -- а почему не 0, так же удобнее?), разница только в том, что герой движется по воле игрока, а каракатицами управляет генератор случайных чисел.
Можно было бы сделать общий код. Но нет ...
Плюс хочется интегрировать нормальное сжатие комнат и графики, это просто напрашивается. И покрасить графику заодно, я уже понял как.
Это много работы. Я сейчас не готов брать ещё.
Если кто хочет -- могу потыкать в места, которые необходимо править для перевода "хоть как-нибудь". Их немного. Надо заменить шрифт и поправить его интерпретацию, плюс подменить тексты. Транслитом можно хоть сейчас, латиница там полная.
Исходники выложены, компилятор -- pdpy11.
Перерисовывать надпись заглавную...
Это ведь тот ещё процесс...
Вот этого лично я делать не буду точно и вообще, поскольку шрифтовик из меня никакой.
поэтому мне нужна отмашка - делаем или не делаем. Иначе зачем вообще
время тратить на пусто порожние обсуждения?
:confused:
Sandro, я из вашего поста понял, что БК вариант игры ещё даже не доведён и будет дорабатываться.
Это хорошая новость для всех приверженцев БК-любой модификации. Так, что отвлекаться от этого
процесса вам и правда ни к чему, да и я - найду чем заняться. К обсуждению Русской версии можно
позднее вернуться. Благодарю за подробный ответ.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot