Българизиран Apple //e софтуер през 2025г.
РакеТка - игра, "открадната" в стил 80-те
Разработка
Понеже съм що-годе активен в Мастодон, опитвам се да следя там новите неща в света на Apple ][. С учудване разбрах, че Colin Leroy-Mira прави порт на очевидно (но не и за мен) популярната игра за Макинтош - Glider. Разгледах интерфейса и му предложих да направя български превод. Той, разбира се, се съгласи. Мотивацията ми за това беше да направя "българизирана" игра в стил 80-те: открадваме западен софтуер и го превеждаме едно-към-гьотере. Затова и избрах подобно заглавие. Тук естествено имаме съгласие на автора, а и самата игра е open source, така че технически не е пиратствана, нито машинният и код е кракван. В крайна сметка трябваше само да преработя slash screen-а, който е картинка и да преведа десетина стринга.
Колин беше почнал да рисува шрифта и ми даде темплейт за изрисуване на кирилицата. В процеса на работа обаче се оказа, че mapping-а на символите ще стане сложен, защото кирилицата има повече букви от латиницата и това ще му усложни кода. В крайна сметка той реши текстовете след края на всяко ниво да са в текстов режим. Така ще може да се ползва хардуерната локализация (символният ROM) на Правец. С това решение отпадна рисуването на шрифтовете 😁
Сплаш екрана е монохромна HGR картинка, която редактирах в Gimp като .png
и която се конвертира в Епъл графичният формат автоматично по време на билд процеса. Буквите са 7х7 пиксела, като имаме +1 пиксел от ляво за kerning.
Целта на играта
Ти управляваш хартиено самолетче, което трябва да премине през всяка от стаите като избягва различни препядствия. Ракетката се задвижва само от въздухът, излизаш от вентилационните шахти на пода във всяка от стаите. Ако вземете батерия, при задържането на F1 и дясна стрелка, ракетката получава boost и се движи много бързо.
Хардуерни ограничения
Играта работи само на Правец 8C/8А (без допълнителен хардуер) или на 82/8М, които имат карта за мишка (mouse card). Причината за това е, че за процедурите за таймига Колин ползва прекъсванията на картата за мишката, а при 8Ц/8А, ползва vertical blanking line. Последното е начин за отчитане на време като се чете моментът, в който лъчът на CRT монитора преминава от най-долният десен ъгъл към най-горният ляв. Понеже опресняването е херци т.е. интервалът е постоянен, този метод може да се използва за отчитане на време. Напомням, че Правец 8 не може да пази или генерира време и програмистите ползват такива хакове 😁 В ROM-а на Правец 8C/8А има софтуерен ключ (soft switch) на адрес $C019
, който може да бъде прочетен. Ако адресът съдържа 1, значи започва нов интервал на опресняване, ако е 0 сме все още в опресняване. Ако софтуерът постоянно следи този адрес, може да генерира точен тайминг интервал, който да се ползва в самият софтуер. Колин ползва това за отчитането на времето в играта.
Картинки и видео
Apple2 DeskTop - графичната среда за Правец 8
Мамо, виж! Уиндоус на Правец 8!
След успешният превод на РакеТка, с мен се свърза и Joshua Bell - основният разработчик на A2 Desktop. Това е графична среда за Apple II, оригинално разработена от френска компания 1986-та. В днешни дни е направен reverse engineering и е превърната в open source проект. Джошуа беше почнал да прави автоматичен превод на български с Гугъл преводач, но този превод беше ужасен. Приложението е основно за мишка, но работи добре и с клавиатура. Както знаем, едва ли много Правци са виждали мишка.
Аз се съгласих да локализирам и този проект. В крайна сметка не е кой знае колко голям. Джошуа ми сподели една Гугъл таблица, в която има стринговете и за около 2 часа (заедно с тестването) нещата се получиха. Междувременно открих и няколко бъга в самият софтуер, които докладвах на Джошуа:
- В приложението Карта не се откриваше София. Срамота! Как ще се ползва този софтуер на български компютър, а потребителят няма да може да открие какви са географските координати на София?! 😂
- В приложението Календар, седмицата започва от Неделя. Както знаем в България започва от Понеделник. Това също ще бъде оправено.
- При копирането на файлове, ако се копира хард диск(!!) прогрес барът излиза извън прозореца. Това бе оправено веднага след докладването.
Общо взето гледах да скъся стринговете, защото ако са дълги излизат извън прозореца, тъй като няма wrap функция. При скъсяването гледах да запазя смисъла на текста.
Хардуерни ограничения
Софтуерът е голям и въпреки, че авторът казва, че може да работи от дискета, препоръчва се да се пуска от харддиск (!!) имидж. Тези, които сме ползвали Правец 8 естествено не сме и сънували за харддиск, защото това са "нови технологии".
Можете да пуснете харддиск имидж ако имате флопи емулатор (FloppyEMU) и Liron карта или SoftSP карта. В моят конкретен случай, аз ползвам SoftSP от a2heaven.com и floppyEMU:
- Прекъсвам проводник 12 от лентовият кабел на флопи емулатора, защото в точно тази конфигурация се получава окъсяване и може да изгори чипа на флопи емулатора. За повече подробности в статията на BMOW - създателят на флопи емулатора.
- Записвам SMART0.hdv имиджа на SD карта и пускам floppyEMU в режим Smartport емулация.
- Слагам SoftSP картата в слот 5
- След пускане на компютъра, пишем
PR#5
, за да пуснем SofSP емулацията на хардиска и компютъра да почне да зарежда от него.