un precedente questione rilevante da me è qui Reverse Engineering old paint programsPorting Autodesk Animator Pro di essere cross-platform
ho impostato la mia base operativa qui: http://animatorpro.org wiki in arrivo.
Ok, ora ho una base di codice MSDOS legacy di 300.000 legacy. È una specie di situazione di "stai attenta a ciò che desideri". Non sono un programmatore C esperto. Nemmeno io sono del tutto inesperto, ma a tutti gli effetti sono un noob alla lingua e in particolare alla complessità delle sue librerie. Sono particolarmente ignorante dei capricci delle differenze tra i programmi C scritti specificamente per MSDOS e programmi che sono multipiattaforma. Tuttavia ho studiato questa base di codice per più di un anno, e questo è quello che so su Animator Pro:
compilatori e gli strumenti utilizzati:
- Watcom compilatore C
- tcmake (fanno programma dal Turbo C)
- 386asm, un assemblatore specializzato per l'extender Phar Lap
- e, naturalmente, l'extender di Phar Lap stesso.
- una selezione di Dos oscuri utilità
Gran parte della compilation sembra essere guidata da file batch. Sebbene abbia ottenuto copie di tutti questi strumenti, non sono ancora riuscito a compilarlo. .. (Anche se ho compilato il suo fratello maggiore, Autodesk animatore originale
che ha un sistema di plugin che replica DLL prima DLL erano disponibili, sulla base di REX Il sistema di plugin gestisce:
- driver video (con una pletora di driver VESA inclusi)
- driver di ingresso (tra cui tavolette Wacom e tastiere)
- Strumenti di disegno
- inchiostri (come filtri di Photoshop, o metodi di fusione)
- scripting Addons (script essenzialmente compilati)
- I formati di file
Essa ha avuto un proprio interprete di script chiamato POCO, sulla base del C lingua- Il linguaggio di scripting ha abbastanza potere per fare praticamente tutte le cose che il sistema di plugin può do- Solo più lento.
Data questa informazione, questo è il mio piano di sviluppo. Si prega di criticare questo. Il codice sorgente è disponibile nel link qui sopra, quindi puoi facilmente, se sei così propenso, valutare da solo la situazione.
- Compilare con gli strumenti originali.
- Passa all'utilizzo di DJGPP e apporta le modifiche necessarie per farlo compilare, oltre all'assemblatore originale.
- Includere la libreria "Gioco" Allegro.cc e passare il maggior numero possibile di funzionalità a quella libreria possibile-Forse semplicemente scrivendo nuovi video e driver di input che utilizzano l'API Allegro.Sto pensando ad Allegro piuttosto che a SDL perché: c'è una versione DOS di Allegro, e affascinante, una delle sue funzioni principali è la capacità di riprodurre il formato nativo FLIC di Animator Pro.
- Spero che dopo 3 anni, avrò eliminato la maggior parte o tutti gli Assembler nel progetto. Dico speranzoso, perché è in un dialetto oscuro che non si assembla in nessun assemblatore libero moderno senza modifiche significative. Li ho provati tutti. Tutto ciò che è rimasto viene convertito in assemblare in NASM, o in codice C se posso definire la funzione effettiva dell'assemblatore.
- Passa il dos extender da Phar Lap a HX Dos http://www.japheth.de/HX.html, che promette di replicare il maggior numero possibile di API WIN32. Quindi apportare tutte le necessarie modifiche al codice affinché funzioni.
- Passare alla versione win32 di Allegro.cc, assumendo che la versione win32 possa essere eseguita su HXDos. Apporta ulteriori modifiche necessarie
- Modifica il sistema di plugin per utilizzare una sorta di libreria di plugin standard multipiattaforma. Che cosa sarebbe, non ne ho idea. Forse puoi offrire qualche suggerimento? Ho parlato con lo sviluppatore che ha originariamente scritto il sistema di plugin, e ha detto che alcune delle cose che non è possibile sui sistemi operativi moderni a causa delle restrizioni di segmentazione. Non sono sicuro di cosa significhi, ma suppongo che significhi che tutti i plug-in dovranno essere riscritti quasi da zero.
- Magicamente, ho fatto tutto quanto sopra, e possiamo provare a farlo funzionare in windows, osx e linux, mentre si tratta di altri problemi cross-platform come i nomi di file lunghi e cose a cui non ho pensato.
Qualcuno ha avuto un problema con tutto questo? Allegro è una buona scelta? se no, perché? cosa faresti riguardo a questo sistema di plugin? Cosa faresti diverso? Tutta questa cosa è sciocca, e dovrei semplicemente riscriverla da zero, usando l'originale come ispirazione? (a quanto pare sarebbe lo sviluppatore originale "Circa un mese" per farlo)
Una cosa che non ho trattato sopra è il sistema di testo/carattere. Non sei sicuro di cosa fare al riguardo, ma Animator Pro ha il suo formato personalizzato, ma è anche in grado di usare i font Postscript Type 1 e alcuni altri formati.
Immagino che la mia paura nel farlo in questo modo stia perdendo il carattere originale del programma. – Breton
@Breton. Umilmente parlando, qualsiasi tipo di strumento che è stato progettato per funzionare su bassa risoluzione e colori limitati sta per perdere il suo carattere una volta convertito in configurazioni moderne. l'incredibile 640 x 480 torna quindi molto piccolo su qualsiasi schermo HD moderno. – Ben
@Ben Ho capito cosa intendi- Tuttavia in questo caso particolare il programma originale è in effetti pienamente in grado di funzionare a piena risoluzione su una configurazione moderna, a patto che tu possa scrivere un driver video per esso. Nella mia mente è come se mi piacesse davvero l'episodio IV di Star Wars e volevo evitare di fare un episodio 1. O di dire, prendere l'originale super mario bros e rifarlo usando modelli 3D e una recitazione dal sapore gutturale. – Breton