Автор Тема: [SMD] хакинг Dune: The Battle for Arrakis  (Прочитано 1401549 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8310 : 23 Июнь 2018, 11:50:50 »
и тут у меня возникает резонный вопрос... а нафига козе боян? ты делаешь неcложное приложение. накой черт тут нужен net framework?  >:( неужели нельзя обойтись стандартными средствами?

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8311 : 23 Июнь 2018, 12:55:27 »
и тут у меня возникает резонный вопрос... а нафига козе боян? ты делаешь неcложное приложение. накой черт тут нужен net framework?   неужели нельзя обойтись стандартными средствами?

Я программирую на C# через Visual studio. Отрубить NET Framework там нельзя.

К томуже для компиляции используется поток. Это часть библиотеки NET Framework могу выбрать конечно версию 2 или 3 но они отсуствует в 10. 4 Это небльшой компрамис для всех ОС который присутствует в Windows 7

Да и судя по тому на сколько тут много не довольных то это нафиг не кому не нужно. А значит врядле продолжу выкладывать. Буду делать сам для себя и друзей. У меня все работает прекрасно.
« Последнее редактирование: 23 Июнь 2018, 13:01:55 от Alexandr7 »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8312 : 23 Июнь 2018, 13:17:13 »
а в какойнить старой студии нельзя это делать? вот например у меня Visual Studio 6.0. я правда не разбираюсь... и мне она нужна была для мелких изменений существующих проектов, и то если найду где это изменять или подскажут :) как шелл подсказывал по своему комбайну для зомбей. так вот нетфреймворков там для этих самых проектов не требуется и все работает без них.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8313 : 23 Июнь 2018, 13:37:52 »
а в какойнить старой студии нельзя это делать? вот например у меня Visual Studio 6.0. я правда не разбираюсь... и мне она нужна была для мелких изменений существующих проектов, и то если найду где это изменять или подскажут  как шелл подсказывал по своему комбайну для зомбей. так вот нетфреймворков там для этих самых проектов не требуется и все работает без них.

Нет. Во первых это качать с торентов. Во вторых у меняиспользуются некоторые методы из .NET 4 для упрощения. Я могу конечно писать на Delphi но вместо 20 мб будет жрать 120 мб. Меня это не устраивает. Так что оставлю как есть. Да к томуже чем проблема ставить 4.0. Как уже сказал Windows xp не поддерживается компилятором. В Windows 7 NET 4 должен уже стоять если нет то можно его скачать с официального сайта.

Есть еще ариант скачать Visual Studio 2010 но тут опятьже качать с торрентов и не факт что на Winows 10 он будет работать. Да к томуже мне все переделывать. Я также могу выбрать библиотеку NET Framework ниже 4 например 2 - 3,5. Но эти библиотеки стандартно отсуствуют в 10 тоесть у кого система Windows 10 тому прийдется ставить компонент NET 3.5 включающие NET 2 и 3
4/0 выбран для компромиса чтобы работал на любой ОС без установки дополнительного ПО. Но наверное я все же поставлю NET 2.0 который точно присутствует в Windows 7 но увы его прийдется ставить в Windows 8 - 10 через панель управления так как 8 - 10 но судя по форуму никто не использует 8 - 10

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8314 : 23 Июнь 2018, 13:45:18 »
Вот что будет на Windows 8 - 10 при использовании NET 2.0


Добавлено позже:
Только не понимаю. Вроде бы в Windows 7 и так стоит NET Framework 4.0. Почему не работает. Тут еще как написал выше и dll и папка data должны лежать в папке с программой. В папке data ресурсы

Добавлено позже:
а в какойнить старой студии нельзя это делать? вот например у меня Visual Studio 6.0. я правда не разбираюсь... и мне она нужна была для мелких изменений существующих проектов, и то если найду где это изменять или подскажут  как шелл подсказывал по своему комбайну для зомбей. так вот нетфреймворков там для этих самых проектов не требуется и все работает без них.

Ну не знаю. Вообще любая Visual Studio а именно C# привязана к NET Framework если конечно это Win Forms
« Последнее редактирование: 23 Июнь 2018, 13:53:13 от Alexandr7 »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8315 : 23 Июнь 2018, 14:08:43 »
ну хозяин-барин. и тем не менее создавать 5 килобайт программу, которая потом будет требовать установки 200-300 мегабайт нетфреймворка как-то глупо... это как разрабы бестолковые в стиме: сама игра 20 мегабайт, но они обязательно к дистрибутиву приложат полный комплект директ х 9 - который за сотню мегабайт весит. почему-то веб инсталлятор приложить этого самого директ х 9 они не могут. странные люди. уж тем более, что в большинстве случаев этот дистрибутив не нужен, так как пользователи могли раньше установить его с другими играми. веб инсталлятор же фигня весит до мегабайта кажись и все чо надо докачает и поставит.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8316 : 23 Июнь 2018, 14:22:11 »
ну хозяин-барин. и тем не менее создавать 5 килобайт программу, которая потом будет требовать установки 200-300 мегабайт нетфреймворка как-то глупо... это как разрабы бестолковые в стиме: сама игра 20 мегабайт, но они обязательно к дистрибутиву приложат полный комплект директ х 9 - который за сотню мегабайт весит. почему-то веб инсталлятор приложить этого самого директ х 9 они не могут. странные люди. уж тем более, что в большинстве случаев этот дистрибутив не нужен, так как пользователи могли раньше установить его с другими играми. веб инсталлятор же фигня весит до мегабайта кажись и все чо надо докачает и поставит.

Ну так она и весит потому 5 килобайт что требует NET Framework без его требования.

К томуже как уже сказал что NET Framework в системе предустановлен.

Просто на разных системах разная версия. Например в 7ке похоже что не стоит NET 4.0 а в 10 не стоит на оборот 2.0 - 3.5

На чистом c++ програмить. Нет уж. Спасибо но там мой код из 2000 строчек возрастет в 10000 строчек


Добавлено позже:
Придумал. Отныне я буду выпускать 2 версии. Та что будет работать на NET 2.0 Это для ос WIndows Vista - 7, Возможно даже XP.

Компилятор чет не хочет компилировать под XP хотя заявленно было что поддержка есть.

И на NET 4.0 для ос Windows 8 - 10

Также DLL будет встроен в программу.
« Последнее редактирование: 23 Июнь 2018, 15:50:41 от Alexandr7 »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8317 : 23 Июнь 2018, 17:09:23 »
я тоже bass.dll хотел встроить в основной ехешник. для записи аудио его достаточно. но для конвертирования при импорте сэмпла в редактор - уже маловато. для басса нужны bassenc и bassmix. они, в случае когда bass.dll используется из ехе файла - ругаются, что дескать bass.dll не обнаружена. то есть эта библиотека обязательно должна присутствовать как отдельный файл для них. и чего они опять таки не могли единую библиотеку сделать... сделали кучу разных, и требующих основную как файл. из памяти читать не хотят, сволочи :)

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8318 : 23 Июнь 2018, 17:15:58 »
я тоже bass.dll хотел встроить в основной ехешник. для записи аудио его достаточно. но для конвертирования при импорте сэмпла в редактор - уже маловато. для басса нужны bassenc и bassmix. они, в случае когда bass.dll используется из ехе файла - ругаются, что дескать bass.dll не обнаружена. то есть эта библиотека обязательно должна присутствовать как отдельный файл для них. и чего они опять таки не могли единую библиотеку сделать... сделали кучу разных, и требующих основную как файл. из памяти читать не хотят, сволочи

Ну с Bass то я его тоже буду использовать но уже потом для воспроизведения музыки чтобы не скучно было пользоваться. Пока что в планах сделать редактор палитры и текстов. Редактор палитры планируется на основе Palette.exe тока вот как там преобразоваить html палитры в SEGA палитры

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8319 : 23 Июнь 2018, 18:02:37 »
что за html палитры? RGB? если RGB, то я по моему формулу выкладывал.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8320 : 23 Июнь 2018, 18:40:06 »
что за html палитры? RGB? если RGB, то я по моему формулу выкладывал.
Например
#FFFFFF для белого
Ну короче RGB в шестнадцетеричном виде

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8321 : 23 Июнь 2018, 18:45:50 »
http://www.emu-land.net/forum/index.php/topic,16864.msg1236455.html#msg1236455

ты уже поднимал эту тему оказывается :)

Добавлено позже:
с тех пор код чуть поменялся даж. добавил обратную операцию:
Procedure.a Parse1Color(inp.a, pbtosmd.a=0)
 
  out.a
 
  If pbtosmd = 0
    Select inp
      Case 0
        out = 0
      Case 2
        out = 36
      Case 4
        out = 72
      Case 6
        out = 109
      Case 8
        out = 145
      Case $A
        out = 181
      Case $C
        out = 219
      Case $E
        out = 255
    EndSelect
  Else
    Select inp
      Case 0
        out = 0
      Case 36
        out = 2
      Case 72
        out = 4
      Case 109
        out = 6
      Case 145
        out = 8
      Case 181
        out = $A
      Case 219
        out = $C
      Case 255
        out = $E
    EndSelect
  EndIf
 
  ProcedureReturn out
 
EndProcedure

у меня цвет задается так: RGB(x, y, z) - эти эти значения могут быть от 0 до 255. и в итоге получается это самое значение $FFFFFF.

в файле палитр для домов, а так-же иконок, земли, заводов и всего такого прочего палитра указана так:
Цитата
dc.w    0, $6AC, $48A, $268, $046, $224, $06C, $02A, $444, $EEE, $A88, $422, $000, $0AE, $00A, $002

то есть нужно взять значение и прочитать между запятыми: скажем $6AC. теперь надо каждую цифру прогнать через эту функцию:
Parse1Color($6, 0)
Parse1Color($А, 0)
Parse1Color($С, 0)
и вот только это по моему не RGB, а BGR чтоль... я уже не помню. то есть что-то типа такого:
B = Parse1Color($6, 0)
G = Parse1Color($А, 0)
R = Parse1Color($С, 0)

и после уже использовать этот самый RGB(R, G, B). если такой функции RGB нету, тогда просто сложить правильно эти цвета:
color = R << 16 + G << 8 + B
хотя с этими сдвигами << я могу напутать...

Добавлено позже:
но это как бы работа уже с существующими цветами. а что если надо добавить какой-то новый цвет? естественно из кошерных 512, что доступны для приставки. тут я использую подобный код:

;{ создание глобальной палитры
Global Dim FullPalette.l(513) ; главный массив с 512 ячейками, где будут лежать цвета $FFFFFF

; временный вспомогательный массив, где лежат значения, которые разрешены для приставки
Dim col.a(8)
col(1) = 0
col(2) = 36
col(3) = 72
col(4) = 109
col(5) = 145
col(6) = 181
col(7) = 219
col(8) = 255

; устанавливаем в 0 выводные координаты для постройки изображения
x = 0
y = 0

; создаем изображение #PEEditorPalitraImg с размерами 256 на 32 пикселя
If CreateImage(#PEEditorPalitraImg, 256, 32)

  ; стартуем рисовку в этом изображении
  If StartDrawing(ImageOutput(#PEEditorPalitraImg))

    ; крутим 3 цикла - цикл в цикле - для формирования значения RGB из разрешенных значений
    For i = 1 To 8
      For l = 1 To 8
        For k = 1 To 8

          ; рисуем кубик 4х4 пикселя с заданным цветом
          Box(x,y,4,4, RGB(col(k),col(l),col(i)))

          ; берем следующий номер в массиве разрешенных цветов
          num + 1
          FullPalette(num) = RGB(col(k),col(l),col(i))
         
          ; сдвигаем координату х на 4 вправо, то есть на длинну кубика 4х4, для рисовки последующего кубика
          x + 4
        Next
       
        ; когда цикл из 8 значений заканчивается, надо сдвинуть координаты по высоте
        ; то есть вернутся по х назад на начало
        ; а по y - спустится вниз на 4 пикселя - высота кубика 4х4
        x - 32
        y + 4
      Next
      ; когда заканчивается рисоваться большой куб с 8х8 значений
      ; надо передвинуть х для рисовки следующего куба
      ; а Y надо опять поднять на высоту
      x + 32
      y - 32
    Next     

    ; завершение процесса рисования
    StopDrawing()
  EndIf
EndIf ;}

это дело загоняет 512 разрешенных цветов в массив, и рисует картинку для гаджета в окне редактора палитры:
« Последнее редактирование: 24 Июнь 2018, 15:22:25 от SeregaZ »

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8322 : 23 Июнь 2018, 19:15:17 »
;{ создание глобальной палитры
Global Dim FullPalette.l(513)
Dim col.a(8)
col(1) = 0
col(2) = 36
col(3) = 72
col(4) = 109
col(5) = 145
col(6) = 181
col(7) = 219
col(8) = 255
x = 0
y = 0
If CreateImage(#PEEditorPalitraImg, 256, 32)
  If StartDrawing(ImageOutput(#PEEditorPalitraImg))
    For i = 1 To 8
      For l = 1 To 8
        For k = 1 To 8
          ;Box(x,y,4,4, RGB(col(k),col(l),col(i)))
          Box(x,y,4,4, RGB(col(k),col(l),col(i)))
          num + 1
          FullPalette(num) = RGB(col(k),col(l),col(i))
          x + 4
        Next
        x - 32
        y + 4
      Next
      x + 32
      y - 32
    Next     
    StopDrawing()
  EndIf
EndIf ;}

На каком языке пример рисования палитры показан?

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8323 : 23 Июнь 2018, 19:18:58 »
PureBasic.

Добавлено позже:
и да... результатом я не очень доволен. рисует как-бы квадраты. вот сортировку бы цветов и компонование синих к синим, красных к красным и так далее :) типа как в пейнте. или как шестиугольник в... эээ... где ж я видел расположение цветов в шестиугольнике то?... где-то кароче есть. там цвета скомпонованы. красота! а у меня квадратами. не очень.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8324 : 24 Июнь 2018, 14:24:19 »
и да... результатом я не очень доволен. рисует как-бы квадраты. вот сортировку бы цветов и компонование синих к синим, красных к красным и так далее типа как в пейнте. или как шестиугольник в... эээ... где ж я видел расположение цветов в шестиугольнике то?... где-то кароче есть. там цвета скомпонованы. красота! а у меня квадратами. не очень.
Ну я пока так как у тебя сделаю. Только объясни суть скрипта. Я не программировал на Pure basik я давненько на VB 6.0 программировал но уже честно забыл так как это лет 5 или 7 назад было

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8325 : 24 Июнь 2018, 15:29:23 »
а что там понимать то? основной принцип одинаковый для всех языков :)

я добавил комментарии. этот код создает изображение для последующего использования. в моем случае оно потом выводится в гаджете изображения, а во вторых на это изображение вешается событие, что при клике на этом изображении - читаются координаты где именно произошел клик, после из этих координат читается номер цвета, после этот номер разлагается на 3 значения и вносится в окошки более точной корректировки цвета, где дополнительно кнопками влево и вправо можно изменить каждую составляющую цвета. типа добавить красного или убавить зеленого. так-же этот цвет вносится в демонстрационное окошко, так-же этот цвет наносится на один из цветов из 16 цветов палитры, так-же происходит перерисовка главного изображения, как если бы этот цвет уже был внесен в текущую палитру. вобщем функционал я придумал просто эпик :) причем ежели произвести какое-то любое действие на форме программы - кроме кнопки сохранения - то главное изображение должно будет опять перерисоваться назад - на те значения, которые сохранены в палитре. это так сказать временное демонстрационное изменение цвета, чтоб пользователь налету видел как изменится главное изображение с этим цветом.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8326 : 25 Июнь 2018, 17:36:10 »
Вроде бы сделал

Вот кстати код как рисовал палитру на c#

void SetSEGAPalete()
        {
            var col = new byte[8];
            col[0] = 0;
            col[1] = 36;
            col[2] = 72;
            col[3] = 109;
            col[4] = 145;
            col[5] = 181;
            col[6] = 219;
            col[7] = 255;

            var x = 0;
            var y = 0;

            Bitmap CDH_PaleteBuf = new Bitmap(CDH_SEGA_Palete.Width, CDH_SEGA_Palete.Height);
            Graphics g = Graphics.FromImage(CDH_PaleteBuf);

            for (int i = 0; i < 8; i++)
            {
                for (int l = 0; l < 8; l++)
                {
                    for(int k = 0; k < 8; k++)
                    {
                        SolidBrush br = new SolidBrush(Color.FromArgb(col[k], col[l], col[i]));

                        g.FillRectangle(br, x, y, CDH_SizeSEGAColor, CDH_SizeSEGAColor);

                        x += CDH_SizeSEGAColor;
                    }

                    x -= (8 * CDH_SizeSEGAColor);
                    y += CDH_SizeSEGAColor;
                }

                x += (8 * CDH_SizeSEGAColor);
                y -= (8 * CDH_SizeSEGAColor);
            }

            CDH_SEGA_Palete.Image = CDH_PaleteBuf;
        }

CDH_SizeSEGAColor - размер квадратика


Добавлено позже:
Я так полагаю вот так делать преобразования RGB в SEGA палитру

if (r >= 0 || r <= 35)
                SEGA_r = "0";
            else if (r >= 36 && r <= 71)
                SEGA_r = "2";
            else if (r >= 72 && r <= 108)
                SEGA_r = "4";
            else if (r >= 109 && r <= 144)
                SEGA_r = "6";
            else if (r >= 145 && r <= 180)
                SEGA_r = "8";
            else if (r >= 181 && r <= 218)
                SEGA_r = "A";
            else if (r >= 219 && r <= 236)
                SEGA_r = "C";
            else if (r >= 237 && r <= 255)
                SEGA_r = "E";
« Последнее редактирование: 25 Июнь 2018, 17:51:57 от Alexandr7 »

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8327 : 25 Июнь 2018, 18:16:02 »
Не знаю все ли верно с цветами но вроде бы как то так

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8328 : 25 Июнь 2018, 19:52:00 »
а ты попробуй отрисовать чонить... тот-же герб атрейдисный, а после сделай скриншот из эмулятора. потом сравни.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8329 : 25 Июнь 2018, 20:02:20 »
а ты попробуй отрисовать чонить... тот-же герб атрейдисный, а после сделай скриншот из эмулятора. потом сравни.

Я не умею отрисовывать. Одно дело палитру отрисовать другое дело герб. Слушай а вообще то что на 2 скриншоте код цвета верный?

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8330 : 25 Июнь 2018, 21:22:11 »
а я не понял о чем ты :) так уже начал палитру разбирать или чо тама? я ж говорю порядок там задом наперед может быть не RGB - а BGR. синий и красный сегмент цвета поменяны местами.

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8331 : 25 Июнь 2018, 22:38:27 »
а я не понял о чем ты :) так уже начал палитру разбирать или чо тама? я ж говорю порядок там задом наперед может быть не RGB - а BGR. синий и красный сегмент цвета поменяны местами.

Ну я и так использую BGR

string RGBToSEGA(byte r, byte g, byte b)
        {
            string SEGA_r = "", SEGA_g = "", SEGA_b = "";

            switch (r)
            {
                case 0: SEGA_r = "0"; break;
                case 36: SEGA_r = "2"; break;
                case 72: SEGA_r = "4"; break;
                case 109: SEGA_r = "6"; break;
                case 145: SEGA_r = "8"; break;
                case 181: SEGA_r = "A"; break;
                case 219: SEGA_r = "C"; break;
                case 255: SEGA_r = "E"; break;
            }

            switch (g)
            {
                case 0: SEGA_g = "0"; break;
                case 36: SEGA_g = "2"; break;
                case 72: SEGA_g = "4"; break;
                case 109: SEGA_g = "6"; break;
                case 145: SEGA_g = "8"; break;
                case 181: SEGA_g = "A"; break;
                case 219: SEGA_g = "C"; break;
                case 255: SEGA_g = "E"; break;
            }

            switch (b)
            {
                case 0: SEGA_b = "0"; break;
                case 36: SEGA_b = "2"; break;
                case 72: SEGA_b = "4"; break;
                case 109: SEGA_b = "6"; break;
                case 145: SEGA_b = "8"; break;
                case 181: SEGA_b = "A"; break;
                case 219: SEGA_b = "C"; break;
                case 255: SEGA_b = "E"; break;
            }

            return SEGA_b + SEGA_g + SEGA_r;
        }


Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8332 : 26 Июнь 2018, 22:20:00 »
Нет. Неправильное рисование палитры


Добавлено позже:
Кто знает как связаться с R57Shell?

Понятно почему цвета чуть разлечались

Цитата
Game Gear palette
Consists of 16 colors, each represented by two bytes (four nybbles) in the format GR 0B, where G = green; R = red and B = blue. The G, R and B can be any of the following values:

0/1 = 0
2/3 = 36
4/5 = 72
6/7 = 109
8/9 = 145
A/B = 182
C/D = 218
E/F = 255

Это я на сайте нашел

Добавлено позже:
Нет все равно неверно.
« Последнее редактирование: 26 Июнь 2018, 22:48:17 от Alexandr7 »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8333 : 27 Июнь 2018, 14:42:07 »
хм... походу да. не правильно я сделал. внимательно на картинки не смотрел. а сейчас взял и увеличил герб и взял оттуда один цвет. действительно разница есть. но с другой стороны - эмуляторы тоже показывают разные цвета :)))) видимо какие-то фильтры дурацкие или еще чего. так-же в эмуляторе почему-то не ровно построчно, а некоторые строки дублируются 2 раза. то есть картинка не четко 320х224, а больше по высоте может быть. а шелл в дискорде же есть, ты чо? я тебе ссылку давал. и вроде ты зашел... или не зашел?





Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8334 : 27 Июнь 2018, 14:46:43 »
хм... походу да. не правильно я сделал. внимательно на картинки не смотрел. а сейчас взял и увеличил герб и взял оттуда один цвет. действительно разница есть. но с другой стороны - эмуляторы тоже показывают разные цвета ))) видимо какие-то фильтры дурацкие или еще чего. так-же в эмуляторе почему-то не ровно построчно, а некоторые строки дублируются 2 раза. то есть картинка не четко 320х224, а больше по высоте может быть. а шелл в дискорде же есть, ты чо? я тебе ссылку давал. и вроде ты зашел... или не зашел?
Поговорил с r57shell и с его помощью все же добился рисование палитры.


Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8335 : 28 Июнь 2018, 21:43:34 »
Наверное DHE не будет. Будет несколько мелких утилит. Бедет Compile DuneHack Launcher в котором будет возможность запускать другие утилиты.
Просто писать много редакторов в 1 программе нужно много времени и с каждой 1000 строкой все сложнее и сложнее. Вообще предлагайте язык программирования для утилит. Я пишу пока на C# но он требует NET Framework точнее в нем легче. В принцыпе я могу компилировать под обе версии. NET 3.5 который встроен в Windows 7
На NET 4.0 который встроен в Windows 8
Могу на Delphi который будет жрать неимоверно много ресурсов и вес программы будет большой.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2499
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8336 : 29 Июнь 2018, 00:27:18 »
ну блин... редактор в делфи будет жрать как игра Кризис...

делай там где было бы и тебе и юзерам удобно. нетфреймворк это однозначно бредятина. тут происходит редактирование тхт файлов по сути - накой этот самый нетфреймворк нужен? вместо гаечного ключа для закручивания гайки ты хочешь использовать автоматические гидравлические щипцы :)

да и возвращаясь к ресурсам - в моем случае чуть ли не 30% загружало процессор. у меня два таких тяжелых места. первое где мелодия на титрах играет. получается поток на музыке, второй поток на графике. второе место это при проигрывании звука, когда мониторятся все каналы. там куча гаджетов и в каждом довольно внушительный список обновляется. работа с текстом это трындец :) думаю правильней было бы сделать не кучу отдельных окошек - а один большой канвас, а в нем уже рисовать чо где что надо.

а последние пару недель ваще не прикасался. так то в принципе все готово. надо только все в одну кучу свалить. сейчас ментаты отдельно, экраны отдельно, редактор отдельно. надо приделать. еще надо миди2гемс, еще надо дефлемаск2гемс. еще хорошо бы vgm2gems тоже до ума довести. и еще остался импорт изображения целиком - вот тут ваще чот душа не лежит :) без вдохновения как-то :) но надо. чтоб картинка автоматом резалась на 10 частей, либо чтоб мышкой на картинке где надо вырезал с шагом 8 пикселей и отправил это в основной редактор. плюс еще надо над оптимизацией подумать. сейчас делает оптимизацию лучшую, но не совсем yy-chr совместимую. я наверное сделаю 3 галки: без оптимизации, когда как было скажем 10 тайлов - так оно и сохранится. совместимость с yy-chr полная. оптимизация только на повторяющиеся тайлы как они есть. совместимость с yy-chr будет частичная, в том плане что он покажет то правильно, но после изменения там возможно картинка поплывет. шаблон ведь будет содержать одинаковые тайлы. и третий вариант - самая лучшая оптимизация, но тогда совместимость с yy-chr будет еще меньше, ибо yy-chr не умеет зеркала показывать. от 4 варианта - самого лучшего по оптимизации - когда сразу цельный экран оптимизируется - но не совместимого с yy-chr я видимо откажусь.

да и это только моя половина работы :) вторая на Ti, который в последнюю нашу беседу был мягко говоря не в духе :) так что под боооооольшим вопросом это все дело...

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8337 : 29 Июнь 2018, 00:47:59 »
делай там где было бы и тебе и юзерам удобно. нетфреймворк это однозначно бредятина. тут происходит редактирование тхт файлов по сути - накой этот самый нетфреймворк нужен? вместо гаечного ключа для закручивания гайки ты хочешь использовать автоматические гидравлические щипцы

Ну например Для таких мелочей как запретить пользователю ввод ненужных символов в текстовые поля. Во вторых это не бридятена. Большая часть приложений для винды так или иначе его использует и как я уже сказал он предустановлен в самой Windows просто на разных Windows разная версия. Также чтения файлов через NET Framework легче делать. Парсинг файлов через NET Framework легче. Можно и без него но это сложне да и к томуже в среде Visual Studio 2017 это невозможно. Visual Studio 2010 или более старые версии на Windows 10 не встанут. Delphi ну там не нужен NET Framework но последняя нормальная версия Delphi и C++ от Borland это 7 и увы но на Windows 10 они не встанут. Если говорить об RAD Studio то начиная Delphi и c++ от RAD Studio жрут много ресурсов компа (например пустое приложение откомпилированное на RAD Studio будет весить 2 мб. Я делал както DHE на Delphi но по сути там был только RCE и так вот. Этот жрал 100 мб оперативы. И это при том что он просто позволял редактировать регионы в графическом виде. На C# тотже результат досигается 15 МБ оперативы используя библиотеку NET Framework) так что не надо говорить что это гадость коли NET Framework квк ты говоришь шлак то зачем Windows использовать. Еще как вариант Lazarus но тоже самое что и DElphi разве что поддержка других платформ есть например Mac но в нем работать просто нереально трудно. Он медленный.

Я же как никак делаю парсинг файлов путем графического вида.

Всеже я наверное продолжу писать на c#. Во 1 я не нарушаю законов так как лицензия. Во вторых через NET Framework легче работать. Ну и в 3 как уже сказал NET Framework по умолчанию предустановлен в Windows. Просто сделаю 2 версии. Под Windows 7 и Windows 8 - 10
Windows XP уже никто не пользуется так как ее поддержка закончена да и система морально устарела

Ну во всяком случае редактор регионов и палитр точно буду писать на C#

Что до других то посмотрю. Может и на Lazarus напишу

Добавлено позже:
И вообще для чтения и записи я использую пространство имен System.IO из библиотеки mscorlib.dll которая входит в состав NET Framework 1.1

Добавлено позже:

 dc.w     0, $8CE, $6AC, $48A, $268,  $46, $224,    2 ; earth
 dc.w     0,   $C,   $A,    8,    6,    4,    2,    0 ; harkonnen
 dc.w     0, $E40, $C40, $A40, $840, $620, $420, $200 ; atreides
 dc.w     0,  $C0,  $A0,  $80,  $60,  $40,  $20,    0 ; ordos
 dc.w     0, $E0E, $C0C, $A0A, $808, $606, $404, $202 ; sardaukar
 dc.w     0, $EEE, $CCC, $AAA, $888, $666, $444, $222 ; fremen

Я хочу спросить какие из этих значений являются цветом?

Я так пологаю первые нули цветом не являются?

И еще там у некоторых есть $ а у некоторых нет. Не понимаю чета?
« Последнее редактирование: 29 Июнь 2018, 04:38:00 от Alexandr7 »

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8338 : 29 Июнь 2018, 05:22:08 »
Кажется я понял.  первый 0 это цвет фона тобишь черный
Если ноль идет перед то он не ставится
А если в цвете только 1 значение то $ не пишется

Ну похоже что так

Оффлайн Alexandr7

  • Пользователь
  • Сообщений: 285
  • Пол: Мужской
  • Багровые Небеса - Прекрасная пиксельная игра
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] хакинг Dune: The Battle for Arrakis
« Ответ #8339 : 29 Июнь 2018, 11:55:17 »
И  так выкладываю первые 4 миссии за харконенов.

Моя цель создать миссии без дома ордосов только Харконены и Атридесы. Миссии вроде бы и легкие а вроде бы и нет. Чуть сложнее чем в оригинале

Во всех миссиях необходимо убить всех врагов. Не достаточно разрушить базу врага. Это сделано специально для харконенов так как они именно так бы и поступили.

Также будут попадаться Фримены в некоторых миссиях и лучше на них не наткнутся так сила урона у них в разы силнее чем в оригинале.

Потестируйте кто может!

Всего планируется 8 миссий. 9 миссия будет простенькой но с определенной тактикой. В 8 миссии будет император. 9 по сути добивания дома Атридесов. Но пока что готово 4 миссии