Последний раз редактировалось SAM style; 30.11.2014 в 02:06.
Все любят гипножабу
Кажется я перехитрил сам себя.
Загрузчик с трейнером на бейсике нифига не работает.
Идея была такой: грузим блок с картинками, выбираем часть, выбираем читы, после этого грузим блок с игрой. Делаем CLEAR, чтобы сработал депакер, который помещен еще чуть ниже всей конструкции. Блок распаковываем, он распаковывается на две части, основной несжатый блок, и снизу его прилеплен маленький сжатый. В несжатый блок записываем выбранные в трейнере читы, потом маленький блок распаковывается и автостартует. Такая схема высвобождает несколько килобайт для бейсик-загрузчика.
Первая тестовая сборка (1190 байт бейсика и переменных) дала следущий результат:
48-ой бейсик ближе к финалу не мог вернутся из одной из подпрограмм, писал, что мол наткнулся на RETURN, а куда возвращаться не знает. Хотя в эту подпрограмму он попал именно по GO SUB. Девичья память. 128-ой бейсик ведет себя уже по другому. Он, повстречав RETURN, не ругается, а просто игнорирует его, перепрыгивает и переходит к следущей строке. Но это всё ерунда, всё это можно победить-перехитрить.
Не перехитрить лишь вот что: перед финальной распаковкой-автозапуском нужно сделать CLEAR 24599. Бейсик это делать не хочет, пишет Ramtor no good. А если не сделать CLEAR, то блок распаковывается и игра стартует, но зависает или глючит. Короче х.з. что теперь делать. Сделать без трейнера что-ли? И то х.з. влезет ли хотя бы выбор части и показ картинок))
Последний раз редактировалось ZX_NOVOSIB; 01.12.2014 в 19:49.
___________
ZX_NOVOSIB, а в кодах патчер сделать никак нельзя чтоли?
Скрытый текст
ZX Spectrum +2 +divIDE + BDI
Profi 1024k plus
Scorpion ZS-256 Turbo+
ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
AVR ZX Spectrum V2.0
Орион 128[свернуть]
в трейнере происходил выбор читов. Грубо говоря 0 - нет чита, 1- есть чит. По некоторым причинам запоминание выбора происходило в переменных. Перед первым CLEAR переменные запоминались посредством POKE. Ибо CLEAR обнуляет все переменные. Потом посредством PEEK смотрелись значения и если где-то было 1, то делались соответствующие покесы (таймер, жизнь, защита или ускорение).
Если делать в кодах, то делать в кодах надо всё, абсолютно всё )) Я умею только на бейсике.
___________
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Это решение само собой подразумевается. Но получается 4 бейсик программы (трейнер с картинками, загрузчики для 1,2 и демо) и 4 кодовых блока. Это что-то с чем-то )) Не хотелось бы отходить от схемы "1 игра - 1 бейсик загрузчик+несколько кодовых блоков".
---------- Post added at 23:38 ---------- Previous post was at 23:27 ----------
Если была бы в бейсике функция "отгрузить текущую программу, начиная с такой-то строки", то можно было бы в самом начале отгрузить в RAM короткую программулину, а потом в конце её загрузить. Правда получилось бы 128 ONLY, но это пофиг.
___________
Скрытый текст
ZX Spectrum +2 +divIDE + BDI
Profi 1024k plus
Scorpion ZS-256 Turbo+
ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
AVR ZX Spectrum V2.0
Орион 128[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)