Цитата Сообщение от boo_boo Посмотреть сообщение
надо полагать, за этими словами стоит большой практический опыт переноса программ на не-windows платформы?
во-первых почти никто (и SMT не исключение) не пишет по стандартам ANSI, так что в качестве 1го шага к платформонезависимости код к этим стандартам надо привести. во-вторых заменить вызовы какого-нить DirectX на вызовы SDL не фунт изюму (кстати, реализация аудио в SDL вообще крайне плохо подходит для эмуляторных целей). в третьих, есть еще заточка под порядок байтов, размерности типов и тп.
рядом со всем этим GUI -- не особо большая проблема.
может http://www.wxwidgets.org/ имеется в виду?

лучше всего написать с нуля, чтоб работало везде (попользовав отлаженные алгоритмы, но не передирая реализацию вчистую). а перелопачивать платформозависимый код -- *опа редкостная, сколько раз это делал, столько раз это подтверждалось
1. Ну скажу так. Что тот код Unreal который я для Pocket PC правил ОТЛИЧНО компайлится GCC компайлером 3й версии (4й не пробовал). А gcc очень капризный к ANSI. Самой страшной вещью на которую он ругался было sizeof type который просто заменяется на нормальный sizeof( type ). Плюс пара очень небольших переопределений __inline ов и __fastcall ов.

2. Там ровно 2 или 3 платформо независимых вызова. Все остальное лекго "выкидывается" (как я это сделал для PocketPC версии) и побменяется чем угодно. Т.е. это работы там реально на час.... может два.
Плюс на звук там тоже 2-3 вызова а SDL это просто оборачивает платформо зависимыми вызовами которые везде одни и те же (по функциональности) и к эмуляции не имеют ВООБЩЕ никакого отношения.

3. Если мы говорим о портировании под Linux то я там полагаю имеется ввиду Intel архитектура x86. Соответственно никакие нам "битов", выравниваний и изменения little/big-endian не нужно. Типы все АБСОЛЮТНО те же. Т.е. с этим даже не загоняться.

4. И только ОДНА реальная проблема - это GUI (реализация настроек через GUI). Который срезать www.wxwidgets.org можно. Т.к. достаточно просто (по типу MFC) и crossplatform. Соответственно нужно переписать ТОЛЬКО функциональность gui.cpp

Соответственно, LINUX версия без GUI делается просто влет !!!