А по мне нужно просто вдавить игру с командной строки. И погнали.
Может и есть такая командная строка, но чего-то не не встречал в постах.
Есть программа C2RAMLDR может она поможет решить проблему.
В этой документации много полезного написано.
C2RAMDLR просто загружает файл в теневое ОЗУ, после рестарта всё равно надо искать запись "RAM: Имя_Игры" и запускать вручную. Автозапуск игры из ОЗУ плохая идея так как после выключения питания данные пропадут и картридж будет запускать мусор.
C2RAMDLR просто загружает файл в теневое ОЗУ, после рестарта всё равно надо искать запись "RAM: Имя_Игры" и запускать вручную. Автозапуск игры из ОЗУ плохая идея так как после выключения питания данные пропадут и картридж будет запускать мусор.
Запуск мусора после выключения можно полечить поиском сигнатуры AB - если не найдена - не стартуем. Но в целом, для батарейки же все предусмотрено, а ее почему-то не ставит в карик никто. Задумывался пару раз, но нет держателя батареечного, а покупать не хотелось. Вот попадется что-то сломанное на разборку с держателем - по любому отпаяю и поставлю батарейку в карик
Вряд ли пользователю повезёт, что мусор в виде AB окажется по адресу 4000. Такая вероятность ничтожно мала. Проблема в другом - при каждой записи ROM в теневое ОЗУ в директории флешки будет создаваться новая запись с префиксом RAM:имя_ROM и каждый раз разная. И после выключения питания она станет бесполезной, так что её придётся удалять, чтобы не замусоривать директорию.
На самом деле, батарейка и не нужна. Запись и чтение данных из эмулируемой области SRAM можно делать просто не отключая питание, а нажимая Reset. Захотелось пройти игру с того места, на котором остановились в прошлый раз - загружаешь сохранённый файл утилитой C2SRAM, делаешь ресет и запускаешь игру с флешки. Надоело играть - нажимаешь Reset, запускаешь утилиту и сохраняешь область SRAM в файл.
С батарейкой возможно перестанет работать функция двойного рестарта по cold boot и больше не будет показываться заставка с версиями. Надо будет думать как этот cold boot ловить. Сейчас он ловится по метке в ОЗУ, которая стирается после выключения питания. С батарейкой картридж будет считать, что он всегда стартовал "по-горячему".
Проблема в другом - при каждой записи ROM в теневое ОЗУ в директории флешки будет создаваться новая запись с префиксом RAM:имя_ROM и каждый раз разная.
Нужно в момент создания такой записи проверять, есть ли уже такая с префиксом RAM: или нет, и если уже есть, сначала ее удалить, и только потом создавать новую
На самом деле, батарейка и не нужна. Запись и чтение данных из эмулируемой области SRAM можно делать просто не отключая питание, а нажимая Reset.
Пользователи некоторых моделей MSX1 сейчас негодуют Есть машинки без ресета. Правда, насколько помню игр для MSX1 с поддержкой FM-PAK не было... так что негодуют они не сильно
С батарейкой возможно перестанет работать функция двойного рестарта по cold boot и больше не будет показываться заставка с версиями. Надо будет думать как этот cold boot ловить. Сейчас он ловится по метке в ОЗУ, которая стирается после выключения питания. С батарейкой картридж будет считать, что он всегда стартовал "по-горячему".
Ага, этот момент упустил
Хорошая идея перезаписывать предыдущую RAM запись, надо будет добавить с бэклог. Но я считаю, что помещать эту запись в автостарт не самая хорошая идея. Так как после выключения питания картридж по истечении 3 секунд будет вываливаться в Бейсик. А в редком случае если в 0x4000 будет мусор и AB или CD, то будет зависон.
Кстати можно использовать для метки не ОЗУ карика, а ОЗУ машинки, тогда cold boot можно будет ловить достаточно легко. Достаточно будет одного байта в области системных переменных. Добавлю в бэклог.
Кстати можно использовать для метки не ОЗУ карика, а ОЗУ машинки, тогда cold boot можно будет ловить достаточно легко. Достаточно будет одного байта в области системных переменных. Добавлю в бэклог.
Точно, как вариант
Спасибо за развернутый ответ.
Мало чего понял. Хотя вроде по русски
Выходит пока конфиг одной запущенной игры при запуске с якобы консоли (C2RAMDLR) не сохраняется. Ясно.
Просто удобно. Пришел, вдавил NEMESIS1.ROM и играешь. В принципе как вариант можно пока пользоваться "диван-ом"
p.s. Чего вы не поняли. Кто пытался собрать прошивку для фпжа хоть раз для вашего карика, тот поймет? о чем я
Конфиг RAM: сохраняется если хочет пользователь. Но автозапуска пока нет нигде кроме стартового меню. Сделаю автозапуск, но только для игр, загружаемых во флешку.
Зачем делать на 4й Циклон, когда у нас картридж на 2м? Вот если будем выпускать новую версию, возможно возьмём более позднюю модель Альтеры.
Зачем делать на 4й Циклон, когда у нас картридж на 2м? Вот если будем выпускать новую версию, возможно возьмём более позднюю модель Альтеры.
Как я понял, это сложно сделать без вмешательства в код. Одна из причин. Существующая прошивка занимает почти 98% кристалла. При таком заполнении компилятор начинает вести себя не всегда адекватно, что требует в свою очередь индивидуально подстраивать программу под конкретный кристалл, и использовать конкретную версию компилятора.
Наверное, оставить все как есть. А если будет новая аппаратная версия карика, все это учесть для безболезненно переноса прошивки на другие кристаллы.