ClassiCube kompiluvačky pre Classic Mac OS na 68k a PPC

softwareové záležitosti, systémové záležitosti a tak podobne, reversuvačky softwareovej úrovne a doví ešte čo
Post Reply
User avatar
Morc Offline
Posts: 73
Joined: Fri Jul 19, 2024 12:23 pm
Description: 19 | tatar z Biskupovej

Ak som sa volade omýleu tak na mňa kričte.
Contact:

ClassiCube kompiluvačky pre Classic Mac OS na 68k a PPC

Post by Morc »

alebo jako som cez imprezu improvizuval.... improvu imprezuval improviprezuval imprezuprovizuval...

Najprv voláka vec pomimo, začínam probuvať mierne upravený štýl pre vlákna, inšpiruvaný tým z Biskupovskej stránky a inšpiruvaný... ja nevím čím, reálne som to stel iba ináč. Ja vím, momentálne mi tá konzistencia medzi vláknami nejde, šak ale hádam to voláko dorazím keď si povím že takto by to mohlo byť.

Cez nedeľňajšú imprezu Televízie ŠTB dňa 15.9.2024 som mal póvodne na pláne sprobuvať ClassiCube na iBooku G3 pod inštaláciou Mac OS 9.2.2 kerý tam dočilku zaťál furt je. Podmínkou na pustení boli binárky daného herného softwaru keré ale nido nekompiluje a ani nedistribuuje (a má to dosť pádnych dóvodov prečo, ale o tom potom) a na vykompiluvaní treba zas Retro68 kerý som ťéž nemal.

Chcel som to spraviť aj preto, aby som na G3ke mal konečne volačo mne bližšé čo sa týka herných záležitostí, aj keď tam už napríklad mám The Sims alebo Doom. Čas si na to šecko samozrejme nevím rozdeliť a vyčleniť tak, aby som sa mohol otočiť pri šeckých mašinách, ale aspoň to je sranda to tam skladuvať.

Pre krátkosť:
Retro68 je moderný crosskompilátor a kompletný toolchain na kompiluvačky apék pre jablčný System 6 a šecko novšé. Targetuje 68k mašiny a takisto aj PowerPC. Nainštaluvať tento balíček na mojom ARMovom Macu bolo mierne problematické ale nebolo nereálne. Vyžaduvalo pár dependov a balíčkov z homebrewu (kerý si zas a znova povedav že bude aktualizuvať šecko čo mám nainštaluvané), potom bolo treba zadeliť pár patchov v zdrojákoch v Retro68čke kde boli nedostatky, to si zas pýtalo pár dodatočných pokusov o rekompiláciu celého balíka a, a... nakonec z toho vzišóv fakt reálny a použiteľný toolchain. Verím že títo nedostatky blázni časom poupravujú keďže Retro68 je kompletne relatívne nový projekt a chŕli to tam furt aktivitou.


Kompiluvačky ClassiCubu, vec o volačom inakšom.

Zas aby sa nepovedalo, nebola to ťéž až taká tragédia jak sa zdá, dalo sa to voláko rozhýbať.
Jeden z nedostatkov v momentálnom stave repozitára je, že repo čaká že sa bude nachádzať fyzicky vedľa Retro68 a Retro68-build zložék. Tá hlavná s toolchainom je totižto momentálne furt zahardcoduvaná a samozrejme nikomu neprekáža zebrať ten špecifický makefile (misc/macclassic/Makefile_<68k alebo ppc>) a poprehadzuvať to, každopádne kto to už má defaultne jak boli návody, tak nemá mať jaký problém. Potom sa pustí make polla návoda a čaká sa na zázrak.


Čakaní na Godota zázrak.

Zázrak sa samozrejme nedostaveu. V momentálnom stave nevím úplne presne odhadnúť že či je ve vačšom vývoji ClassiCube, či Retro68, či za to móže to že som použeu póvodné jablčné Apple Universal Interfaces headery namísto tých nových ale furt nekompletných Multiversal Interfaces headerov. Doví, nestem sa do toho rýpať.

Ale je to ve výsledku jedno. Oprava problémov v kompiluvačke spočívala ve velice špinavých patchoch

Code: Select all

find src -type f -print0 | xargs -0 perl -i -pe 's#false#0#g'
find src -type f -print0 | xargs -0 perl -i -pe 's#true#1#g'
v kerých sa prešlo skrz šecky zdrojáky a poprehadzuvali sa zmienky true a false za 1 a 0 keďže to v čistom stave repozitára má voláky bytostný problém a vyplakáva to za chybami typu:

Code: Select all

src/Core.h:116:15: error: expected identifier before numeric constant
  116 | #define false 0
      |   
Ááá keďže já som já, tak som zebral tento najfušerskejší spósob patchu, potom som mosev síce manuálne vyhadzuvať šecky výsledky "#undef true" a "#undef false" z ktorých sa samozrejme medzičasom stalo už "#undef 1" a "#undef 0" a nehal som to vykompiluvať zas a znova. Samozrejme keď som kukal tí zdrojáky a ríšeu veci tak som sa dozvedel že tento build bude kompletne neakceleruvaný a nastavilo mi to laťku očakávaní tak, aby som vedev čo od toho čakať.


Binárka by bola, funguje?

S malou dušičkou som teda zebral hotové binárky a osobne som čakal že keď ich pustím, tak to padne a neuvidím nič.
A práveže o to vác ma prekvapilo, keď ClassiCube naskočeu s celkom zaujímavým konzolovým oknom na pozadí a oknu ClassiCubu chýbala vačšina tlačítek až na Singleplayer a nastaveňá. Už len toto bov taký malý zázrak. Vyklikal som teda čo bolo treba a ukázav sa na mňa klasický kock, majkraft.

Priznávam, nejde to dobre. Tak ale to ani nemalo. Vývoj softwaru pre klasický Mac OS berem jak značne zvláštnu aktivitu, ono moderného sa na tento systém robí fakt minimum a tá obskurita systému (či ohľadom kompatibility, hardwaru, emulácie a tak) tomu o moc vác nepomáha. Framerate celého zázraku neni zrovna vysoký, táák ale neni sa čo čuduvať keď to je kompletne iba SoftGPU bez jakéhokoľvek OpenGLka a iných záležitostí. A ťéž, toto nebol konec šeckých problémov keby napríklad zachytávaní myši nebolo ťéž kompletne rozbité a nebolo zamknuté na aktuálne rozlíšení displeja. Jedna vec čo je ťéž dosť rozbitá je skladuvaní a ukladaní nastavení. Nevím zrovna čil či ich ví čítať, ale na 100% vím že ich neví ukladať. A fakt ešte doví čo šecko tam je dosrané, nemal som šancu to úplne kompletne prekopať a vyprobuvať. Jak poslednú vec vím, že to defaultne generuje jeden chunk, tak ale to je samozrejme nastaviteľné pri generuvaní nového sveta, ale to sú samozrejme detaily.


Čo k tomu povedať na konec?

Hore vyšší spomenuté bugy a iné nedostatky sú veci, keré by sa určite časom dali vyžehliť v prípade, keby si k tomu sadne pár nadaných ľudí a dajú do toho svoj čas a námahu. Lenže ja som neni človek typu "nadaný" kerý by bol toto schopný spraviť a nejdem sa o to ani pokúšať.

Ale vec kerú vím spraviť je, že sa vím podeliť s týmito ťažko vykompiluvanými binárkami (obidva typy, 68k a aj PPC, pozor nedistribuuvané jak FAT) a aj s assetmi aby to aspoň malo voláke tí textúry a tak.

Takže šetci ľudí s mašinami na kerých je klasický System a Mac OS, šetci ľudí báraj aj s emulátormi, dvihnite sa, dojdite bližší a ak máte záujem tak sťahujte kým nezmažú.
Attachments
Obrazová ukážka funkčného buildu
Obrazová ukážka funkčného buildu
P1322323.jpg (10.29 MiB) Viewed 414 times
ClassiCube Classic Mac OS PPC 68K.zip
ClassiCube binárky pre PPC a aj 68k + bežné assety k nim
(15.67 MiB) Downloaded 49 times
Image
Post Reply