russian ROMhacking
[ Новые сообщения · Участники · Правила форума · Поиск ]
Форум ромхакеров » Около темы » Геймдев » Проект "Casanova Jr.: Девушка с девушкой - Она и она" (И другие планируемые порты текстовых игр от Witchcraft)
Проект "Casanova Jr.: Девушка с девушкой - Она и она"
ТомахомэДата: Суббота, 24.09.2016, 07:28 | Сообщение # 31
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
сценарий обрывается на некоторых моментах.


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

Остальные наблюдаемые мной пропажи текста происходят при переходах на другие label`ы, не требующих смены фона (Clubmenu, Parksecondmenu, Parkfourthmenu, Toolate, и т. д.) - туда я большую часть начального кода основных label`ов, которая, как мне показалась, отвечала за отрисовку нового фона, не копировал - видимо, там, кроме функции смены фона было что-то ещё важное.
 
TLTДата: Суббота, 24.09.2016, 20:30 | Сообщение # 32
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Музыку будешь делать?

Нужно как-то найти MOD для конвертации или с нуля.

Теоритически должны быть конвертаторы MIDI-мелодий в MOD, а уже мод грузится в vgmmaker11, в нём подбираются/делаются инструменты. Так можно перенести точно мелодию из J2ME-игры.

Mid2mod - http://www.freeconverter.org/old_dos_win_converters.php



Вот так.
 
ТомахомэДата: Воскресенье, 25.09.2016, 06:37 | Сообщение # 33
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
Музыку будешь делать?
<...>
Теоритически должны быть конвертаторы MIDI-мелодий в MOD <...>Так можно перенести точно мелодию из J2ME-игры.


Музыку - это, конечно, да. И мидяха в оригинальной игре, разумеется, есть. Однако она для моего порта не подойдёт - уж больно эта мелодия однообразна, уныла, примитивна и коротка, а значит, быстро надоест игроку. Гораздо больше, я считаю, в качестве основного саундтрека сгодится midi-реаранжировка песни Dr. Love группы E-Rotic. Для сцены массажа хорошо бы подошла midi-адаптации песни Саманты Фокс Just One Night.

Для label`ов выигрыша или Game-over`а тоже должны быть свои мелкие тречки - миксы в стиле Sonic CD или PS`овского Point Blank`а, с вкраплениями человеческой рэпово-хипхоповой речи и разных прикольных цифровых звуковых эффектов.
 
TLTДата: Вторник, 27.09.2016, 17:37 | Сообщение # 34
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Томахомэ, думаешь, будет так просто конвертить?

Для TFM есть каверы от pinball_wizzard мелодий:

Blue Monday - https://www.youtube.com/watch?v=ftJZomwDhxQ
Another It
Another It Rmx
Only you love by voxel_triumph

Можно их взять, думаю, указав авторов каверов в титрах.



Вот так.
 
ТомахомэДата: Вторник, 27.09.2016, 18:08 | Сообщение # 35
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Ладно, пока не разобрались с музыкой, надо попробовать определить причину багов.

Пропажа текстов наблюдается на следующих отрезках:

Код
TooLate:
while 1
'Control ini:
    a=0:while a=0:a=joypad():wend

    if a.6 then 'A button press
    WAITPADUP
  Action=Action+1
  drow=1
    endif

'Text for scenes:
    if drow=1 then
    cls
    
    if Action=1 then
    locate 25,1: print "И тут я понимаю, сколько прошло времени. Я совсем забыл про фотомодель!"
    endif
<...>


Код
if Action=10 then
    locate 25,1: print "Цыпочка из клуба немного несмелая."
    endif
    
    if Action=11 then
    locate 22,1: print "Наверное, мне нужно что-то сделать, "
    locate 23,1: print "чтобы она почувствовала себя"
    locate 24,1: print "увереннее. Но что...?"
  if Choice=0 then
   ink 2
   locate 25,1: print "> ЗАЖГИ СВЕЧКИ И НАЛЕЙ ВИНО."                    /
   ink 1                    /
   locate 26,1: print "  ВЫКЛЮЧИ СВЕТ И ВКЛЮЧИ МУЗЫКУ."                    /
  endif                    / В этом меню при попытке выбделить нижний пункт текст тоже выши-
  if Choice=1 then                    / бает на хрен, плюс прекращается видимая реак-                             
   locate 25,1: print "  ЗАЖГИ СВЕЧКИ И НАЛЕЙ ВИНО."                    /ция на нажатие кнопок. Такой же результат и при выборе верхнего.
   ink 2                    /
   locate 26,1: print "> ВЫКЛЮЧИ СВЕТ И ВКЛЮЧИ МУЗЫКУ."                             /
   ink 1
  endif
    endif
        if Action=12 then goto Clubmenu
<...>


Код
if Action=6 then
    locate 24,1: print "Что теперь?"
  if Choice=0 then
   ink 2
   locate 25,1: print "> НАЙДИ ДРУГУЮ ТЁЛКУ ДЛЯ МОДЕЛИ."                     
   ink 1                    
   locate 26,1: print "  УБЕДИ ЭТУ ТЁЛКУ ВСТРЕТИТЬСЯ С МОДЕЛЬЮ."        
  endif                    
  if Choice=1 then                    
   locate 25,1: print "  НАЙДИ ДРУГУЮ ТЁЛКУ ДЛЯ МОДЕЛИ."                   
   ink 2
   locate 26,1: print "> УБЕДИ ЭТУ ТЁЛКУ ВСТРЕТИТЬСЯ С МОДЕЛЬЮ."
   ink 1
  endif
    endif
<...>
    if Choice=0 then                    |
    if Action=7 then goto Parksecondmenu        |
<...>                    | Тут выбой происходит при выборе обоих пунктов меню.
     if Choice=1 then                    |
     if Action=7 then goto Parkthirdmenu           |
<...>
 
TLTДата: Вторник, 27.09.2016, 21:44 | Сообщение # 36
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Ищи сам в переменных. Когда не сможешь, то останови копания и кинь мне исходник, чтобы я глянул.


Вот так.
 
ТомахомэДата: Среда, 28.09.2016, 15:38 | Сообщение # 37
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Сегодня провёл крупную оптимизацию - избавился от практически всех (кроме Toolate) вспомогательных label`ов (естественно, бережно перенеся весь текст и коды меню оттуда) в отдельные специальные action`ы соответствующих основных.

Правда при этом обнаружены забавные глючки в тех местах, где ранее располагались переносы на вспомогательные label`ы, а ныне - просто команды замены Action`а на другой - после смены значения action соответствующие им меню остаются невидимыми, пока не нажмешь клавишу направления.
Вот места бага:
Код
<Scena_2>
        if Action=6 then
    locate 24,1: print "Что теперь?"
  if Choice=0 then
   ink 2
   locate 25,1: print "> НАЙДИ ДРУГУЮ ТЁЛКУ ДЛЯ МОДЕЛИ."
   ink 1
   locate 26,1: print "  УБЕДИ ЭТУ ТЁЛКУ ВСТРЕТИТЬСЯ С"
   locate 27,1: print "  МОДЕЛЬЮ."
  endif
  if Choice=1 then
   locate 25,1: print "  НАЙДИ ДРУГУЮ ТЁЛКУ ДЛЯ МОДЕЛИ."
   ink 2
   locate 26,1: print "> УБЕДИ ЭТУ ТЁЛКУ ВСТРЕТИТЬСЯ С"
   locate 27,1: print "  МОДЕЛЬЮ."
   ink 1
  endif
    endif
<...>
        if Choice=0 then
    if Action=7 then
    Action=21
    endif
<...>
    if Action=21 then
    locate 24,1: print "Куда мне идти?" 'Глюкан происходит как раз в этом меню.
  if Choice=0 then
   ink 2
   locate 25,1: print "> В КЛУБ."
   ink 1
   locate 26,1: print "  В КАФЕ."
  endif
  if Choice=1 then
   locate 25,1: print "  В КЛУБ."
   ink 2
   locate 26,1: print "> В КАФЕ."
   ink 1
  endif
    endif


Код
<Там же.>
    if Choice=1 then
    if Action=7 then
    Action=23
    Choice=0
    endif
<...>
    if Action=23 then
    locate 22,1: print "Я пытаюсь, но ничего не получается." 'И тут этот глюк тоже.
    locate 23,1: print "Нужно найти другую. Только где...?"
     if Choice=0 then
   ink 2
   locate 24,1: print "> ИДИ В КЛУБ."
   ink 1
   locate 25,1: print "  ИДИ В КАФЕ."
   locate 26,1: print "  ОСТАНЬСЯ В ПАРКЕ."
  endif
  if Choice=1 then
   locate 24,1: print "  ИДИ В КЛУБ."
   ink 2
   locate 25,1: print "> ИДИ В КАФЕ."
   ink 1
   locate 26,1: print "  ОСТАНЬСЯ В ПАРКЕ."
  endif
  if Choice=2 then
   locate 24,1: print "  ИДИ В КЛУБ."
   locate 25,1: print "  ИДИ В КАФЕ."
   ink 2
   locate 26,1: print "> ОСТАНЬСЯ В ПАРКЕ."
   ink 1
  endif
    endif


Код
<Scena_3>
        if Action=11 then
    locate 22,1: print "Наверное, мне нужно что-то сделать, "
    locate 23,1: print "чтобы она почувствовала себя"
    locate 24,1: print "увереннее. Но что...?"
  if Choice=0 then
   ink 2
   locate 25,1: print "> ЗАЖГИ СВЕЧКИ И НАЛЕЙ ВИНО."
   ink 1
   locate 26,1: print "  ВЫКЛЮЧИ СВЕТ И ВКЛЮЧИ МУЗЫКУ."
  endif
  if Choice=1 then
   locate 25,1: print "  ЗАЖГИ СВЕЧКИ И НАЛЕЙ ВИНО."
   ink 2
   locate 26,1: print "> ВЫКЛЮЧИ СВЕТ И ВКЛЮЧИ МУЗЫКУ."
   ink 1
  endif
    endif
<...>
        if Action=12 then
    Action=16
    Choice=0
    endif
<...>
        if Action=16 then
    locate 24,1: print "Но у меня нет вина! Мне что - оставить девушек и пойти за бутылкой?" 'Ну и ещё тут.
  if Choice=0 then
   ink 2
   locate 25,1: print "> НЕТ, ОСТАНЬСЯ."
   ink 1
   locate 26,1: print "  ДА, СХОДИ В МАГАЗИН."
  endif
  if Choice=1 then
   locate 25,1: print "  НЕТ, ОСТАНЬСЯ."
   ink 2
   locate 26,1: print "> ДА, СХОДИ В МАГАЗИН."
   ink 1
  endif
    endif


Вот интересно, здесь-то в чём фокус? Из-за чего менюшка дурит на этот раз?
 
TLTДата: Среда, 28.09.2016, 16:54 | Сообщение # 38
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Цитата Томахомэ ()
меню остаются невидимыми, пока не нажмешь клавишу направления.

Значит, drow (отрисовка) обнулена.

Т.к. отрисовка происходит по условию: "if drow=1 then"

а в конце цикла обнуляется: "if drow>0 then drow=0"

Это сделано для оптимизации, чтобы луч постоянно в каждый кадр 50/60 раз за секунду не рисовал то, что уже нарисовано.

Поэтому при переходе на локацию добавь drow=1. Или в начале локации до начала цикла "while 1".



Вот так.
 
ТомахомэДата: Четверг, 29.09.2016, 04:53 | Сообщение # 39
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
Поэтому при переходе на локацию добавь drow=1. Или в начале локации до начала цикла "while 1".


Тех локаций уже нет, и при теперь те баганутые меню хранятся уже в пределах одного label`а - бывшие Park(second/third/fourth)menu`шные - в Scena_2 (текст каждого из тех бывших label`ов теперь начинается соответственно в Action 21, 23 и 25), а Clubmenu`шные - в Scena_3 (теперь текст бывшего Clubmenu начинается в Action 16), и от обычных меню вроде особо отличаться не должны.

В Scena_2 и 3 вроде должно быть и с drow и while должно быть всё в порядке.
 
ТомахомэДата: Воскресенье, 02.10.2016, 16:51 | Сообщение # 40
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Вот полный код Scena_2, чтоб можно было на лету разобраться, что не так с drow и while.
 
TLTДата: Воскресенье, 02.10.2016, 19:53 | Сообщение # 41
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Цитата Томахомэ ()
разобраться, что не так с drow и while.

Я же не знаю, где именно проблема, и не могу предполагать, как оно будет после той или иной правки. Кинь полный исходник, чтобы я мог собирать и тестировать в эмуляторе.



Вот так.
 
ТомахомэДата: Понедельник, 03.10.2016, 05:10 | Сообщение # 42
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Пожалуйста, всё здесь.
 
TLTДата: Понедельник, 03.10.2016, 18:27 | Сообщение # 43
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Вечером гляну...


Вот так.
 
TLTДата: Понедельник, 03.10.2016, 22:18 | Сообщение # 44
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Опять же, ты не послушал меня, делаешь всё наперёд зачем-то, не обеспечивая работоспособность. НЕ нужно делать следующий шаг, не проверив уже сделанный. Делать изначально хорошо легче, чем исправлять в 10 раз. Я бы сам уже сделал весь сценарий.

Scena_4: - так отмечается локация. На локации нужно в данной игре было делить моменты смены фона - т.е. каждый фон - новая локация. Так бы ты сохранил порядок в коде и знал, что и где. А сейчас - мешанина, которая не понятно по какому принципу построена.

Цитата TLT ()
забавные глючки в тех местах, где ранее располагались переносы на вспомогательные label`ы, а ныне - просто команды замены Action`а на другой - после смены значения action соответствующие им меню остаются невидимыми, пока не нажмешь клавишу направления.


У меня такой ошибки нет.
Все выборы работают и показываются как нужно.
А вот дальше есть баги, похоже, с некорректными переходами, неправильной палитрой для фонов и пр.
Поэтому я не пойму, что мне делать, что проверять. Заявленного бага я не обнаружил.
_______________

Давай ещё раз ты мне объяснишь так, чтобы я понял, где баги, которые ты просишь меня исправить.

По шагам напиши, что мне выбирать с самого начала, по какому сценарию идти, чтобы я столкнулся именно с тем багом, о котором говоришь ты. Сначала один момент, затем другой и т.д.



Вот так.
 
ТомахомэДата: Вторник, 04.10.2016, 17:05 | Сообщение # 45
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
Давай ещё раз ты мне объяснишь так, чтобы я понял, где баги, которые ты просишь меня исправить.

По шагам напиши, что мне выбирать с самого начала, по какому сценарию идти, чтобы я столкнулся именно с тем багом, о котором говоришь ты. Сначала один момент, затем другой и т.д.


Могу не только рассказать, но и показать. (См. видео.)
Правда, надо учесть что код я слегка подизменил - теперь для места, где фон меняется после выбора привести рыжую девушку к себе в дом, я отвёл отдельный label (при этом, правда, неправильность палитровой закраски фона в этом месте никуда не делась). Новый код со скомпилированным ромом в отдельном архиве.

А вот и видео с комментариями, чтоб было понятно, как выглядит баг с невидимыми меню, которые становятся видимыми после нажатия кнопок направления.
 
Форум ромхакеров » Около темы » Геймдев » Проект "Casanova Jr.: Девушка с девушкой - Она и она" (И другие планируемые порты текстовых игр от Witchcraft)
Поиск: