Объявления по картриджу Карнивор2

Страница 2/3
1 | | 3

By GreyWolf

Champion (402)

Аватар пользователя GreyWolf

06-07-2020, 18:11

АIеks wrote:

А по мне нужно просто вдавить игру с командной строки. И погнали.
Может и есть такая командная строка, но чего-то не не встречал в постах.

Есть программа C2RAMLDR может она поможет решить проблему.

В этой документации много полезного написано.

By Alexey

Guardian (3163)

Аватар пользователя Alexey

06-07-2020, 20:45

C2RAMDLR просто загружает файл в теневое ОЗУ, после рестарта всё равно надо искать запись "RAM: Имя_Игры" и запускать вручную. Автозапуск игры из ОЗУ плохая идея так как после выключения питания данные пропадут и картридж будет запускать мусор.

By Pencioner

Scribe (1464)

Аватар пользователя Pencioner

08-07-2020, 19:02

Alexey wrote:

C2RAMDLR просто загружает файл в теневое ОЗУ, после рестарта всё равно надо искать запись "RAM: Имя_Игры" и запускать вручную. Автозапуск игры из ОЗУ плохая идея так как после выключения питания данные пропадут и картридж будет запускать мусор.

Запуск мусора после выключения можно полечить поиском сигнатуры AB - если не найдена - не стартуем. Но в целом, для батарейки же все предусмотрено, а ее почему-то не ставит в карик никто. Задумывался пару раз, но нет держателя батареечного, а покупать не хотелось. Вот попадется что-то сломанное на разборку с держателем - по любому отпаяю и поставлю батарейку в карик Smile

By Alexey

Guardian (3163)

Аватар пользователя Alexey

09-07-2020, 00:43

Вряд ли пользователю повезёт, что мусор в виде AB окажется по адресу 4000. Такая вероятность ничтожно мала. Проблема в другом - при каждой записи ROM в теневое ОЗУ в директории флешки будет создаваться новая запись с префиксом RAM:имя_ROM и каждый раз разная. И после выключения питания она станет бесполезной, так что её придётся удалять, чтобы не замусоривать директорию.

На самом деле, батарейка и не нужна. Запись и чтение данных из эмулируемой области SRAM можно делать просто не отключая питание, а нажимая Reset. Захотелось пройти игру с того места, на котором остановились в прошлый раз - загружаешь сохранённый файл утилитой C2SRAM, делаешь ресет и запускаешь игру с флешки. Надоело играть - нажимаешь Reset, запускаешь утилиту и сохраняешь область SRAM в файл.

С батарейкой возможно перестанет работать функция двойного рестарта по cold boot и больше не будет показываться заставка с версиями. Надо будет думать как этот cold boot ловить. Сейчас он ловится по метке в ОЗУ, которая стирается после выключения питания. С батарейкой картридж будет считать, что он всегда стартовал "по-горячему".

By Pencioner

Scribe (1464)

Аватар пользователя Pencioner

09-07-2020, 01:46

Alexey wrote:

Проблема в другом - при каждой записи ROM в теневое ОЗУ в директории флешки будет создаваться новая запись с префиксом RAM:имя_ROM и каждый раз разная.

Нужно в момент создания такой записи проверять, есть ли уже такая с префиксом RAM: или нет, и если уже есть, сначала ее удалить, и только потом создавать новую

Alexey wrote:

На самом деле, батарейка и не нужна. Запись и чтение данных из эмулируемой области SRAM можно делать просто не отключая питание, а нажимая Reset.

Пользователи некоторых моделей MSX1 сейчас негодуют Smile Есть машинки без ресета. Правда, насколько помню игр для MSX1 с поддержкой FM-PAK не было... так что негодуют они не сильно Big smile

Alexey wrote:

С батарейкой возможно перестанет работать функция двойного рестарта по cold boot и больше не будет показываться заставка с версиями. Надо будет думать как этот cold boot ловить. Сейчас он ловится по метке в ОЗУ, которая стирается после выключения питания. С батарейкой картридж будет считать, что он всегда стартовал "по-горячему".

Ага, этот момент упустил

By Alexey

Guardian (3163)

Аватар пользователя Alexey

09-07-2020, 12:29

Хорошая идея перезаписывать предыдущую RAM запись, надо будет добавить с бэклог. Но я считаю, что помещать эту запись в автостарт не самая хорошая идея. Так как после выключения питания картридж по истечении 3 секунд будет вываливаться в Бейсик. А в редком случае если в 0x4000 будет мусор и AB или CD, то будет зависон.

Кстати можно использовать для метки не ОЗУ карика, а ОЗУ машинки, тогда cold boot можно будет ловить достаточно легко. Достаточно будет одного байта в области системных переменных. Добавлю в бэклог.

By Pencioner

Scribe (1464)

Аватар пользователя Pencioner

09-07-2020, 22:32

Alexey wrote:

Кстати можно использовать для метки не ОЗУ карика, а ОЗУ машинки, тогда cold boot можно будет ловить достаточно легко. Достаточно будет одного байта в области системных переменных. Добавлю в бэклог.

Точно, как вариант

By АIеks

Paladin (949)

Аватар пользователя АIеks

13-07-2020, 12:17

Спасибо за развернутый ответ.

Мало чего понял. Хотя вроде по русски Wink

Выходит пока конфиг одной запущенной игры при запуске с якобы консоли (C2RAMDLR) не сохраняется. Ясно.

Просто удобно. Пришел, вдавил NEMESIS1.ROM и играешь. В принципе как вариант можно пока пользоваться "диван-ом"

p.s. Чего вы не поняли. Кто пытался собрать прошивку для фпжа хоть раз для вашего карика, тот поймет? о чем я Wink

By Alexey

Guardian (3163)

Аватар пользователя Alexey

13-07-2020, 17:25

Конфиг RAM: сохраняется если хочет пользователь. Но автозапуска пока нет нигде кроме стартового меню. Сделаю автозапуск, но только для игр, загружаемых во флешку.

Зачем делать на 4й Циклон, когда у нас картридж на 2м? Вот если будем выпускать новую версию, возможно возьмём более позднюю модель Альтеры.

By АIеks

Paladin (949)

Аватар пользователя АIеks

14-07-2020, 11:20

Alexey wrote:

Зачем делать на 4й Циклон, когда у нас картридж на 2м? Вот если будем выпускать новую версию, возможно возьмём более позднюю модель Альтеры.

Как я понял, это сложно сделать без вмешательства в код. Одна из причин. Существующая прошивка занимает почти 98% кристалла. При таком заполнении компилятор начинает вести себя не всегда адекватно, что требует в свою очередь индивидуально подстраивать программу под конкретный кристалл, и использовать конкретную версию компилятора.

Наверное, оставить все как есть. А если будет новая аппаратная версия карика, все это учесть для безболезненно переноса прошивки на другие кристаллы.

Страница 2/3
1 | | 3