Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

Тема: Формат .Z80

  1. #1
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,544
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    384
    Спасибо Благодарностей получено 
    1,174
    Поблагодарили
    382 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Формат .Z80

    Есть такой древний известный эмуляторный формат снепшотов .Z80. Вот его описание:

    1. Раз (англ.)
    2. Два (англ.)
    3. Три (рус.)

    Там вроде всё предельно понятно. Но, то ли я считать не умею, то ли одно из двух - между заголовком и, собственно, данными, всегда есть некие три байта, которые нигде не документированы. Чаще всего это три нуля, но иногда это последовательность из #00, #FF, #00. Ткните, пожалуйста, меня носом где я не так считаю или какую информацию воспринял превратно.

    Прилагаю для примера игру HUDSON HAWK в формате .Z80. Там как раз сразу после заголовка длиной #33 идут те самые три байта #00, #FF, #00, и уже после них байты данных с заголовком (#E3, #3E, #03 - запакованные данные длиной #3EE3 в странице #03).
    Вложения Вложения
    С уважением, Станислав.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заголовок длиной #37=55 байт, в нем последние 16 байт - содержимое регистров AY. Откуда взялась длина заголовка #33, непонятно.

  4. #3
    Veteran
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,325
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    128 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://zx-pk.ru/threads/34789-podde...=1#post1172928

    Код:
    type
      ThdrZ80 = packed record
       a,f:Byte;
       bc,hl,pc,sp:Word;
       i,r,flags:Byte;
       de,bc1,de1,hl1:Word;
       a1,f1:Byte;
       iy,ix:Word;
       iff1, iff2, im:Byte;
       { 2.01 extension }
       len, newpc:Word;
       model, p7FFD:Byte;
       r1,r2, p7FFD_1:Byte;
       AY:Array[0..15] of Byte;
       { 3.0 extension }
       LowT:Word;
       HighT:Byte;
       ReservedFlag:Byte;
       MgtRom:Byte;
       MultifaceRom:Byte;
       RamRom0:Byte; // 0000-1FFF ram/rom
       RamRom1:Byte; // 2000-3FFF ram/rom
       KbMap1:Array[0..9] of Byte;
       KbMap2:Array[0..9] of Byte;
       MgtType:Byte;
       Disciple1:Byte;
       Disciple2:Byte;
       p1FFD:Byte;
      end;
    Значение len равно длине дополнительного заголовка без учета самого поля len. То есть для того, чтобы найти начало данных страниц, нужно прочитать изначальный заголовок, проверить если PC=0, то прочитать два байта в len и пропустить len байт. Надеюсь не слишком спутано объяснил, в исходнике по ссылке будет понятнее.
    Последний раз редактировалось marinovsoft; 04.08.2023 в 03:57.
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  5. Этот пользователь поблагодарил marinovsoft за это полезное сообщение:

    CityAceE (04.08.2023)

  6. #4
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,544
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    384
    Спасибо Благодарностей получено 
    1,174
    Поблагодарили
    382 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectramine Посмотреть сообщение
    Откуда взялась длина заголовка #33, непонятно.
    Да, что-то не то, я написал. По адресу #001E находится длина дополнительного заголовка - #17. Итого длина старого заголовка #1E + длина дополнительного #17 = #35. По адресу #0035 у нас #FF, #00.

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    Значение len равно длине дополнительного заголовка без учета самого поля len.
    Собственно, я пришёл к точно такому же выводу, хотя это нигде не оговаривается.

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    То есть для того, чтобы найти начало данных страниц, нужно прочитать изначальный заголовок, проверить если PC=0, то прочитать два байта в len и пропустить len байт.
    Примерно так и делаю в конверторе Z80 -> SNA.

    Вообще, после изучения формата .Z80 мне он показался каким-то весьма странным. Такое ощущение, что автор каждый раз накидывал на него сверху какие-то данные по ходу написания эмулятора. Все данные сильно разрознены. Да к тому же в самом снепшоте автор пытается хранить настройки самого эмулятора.
    С уважением, Станислав.

  7. #5
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,532
    Спасибо Благодарностей отдано 
    913
    Спасибо Благодарностей получено 
    849
    Поблагодарили
    631 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Да к тому же в самом снепшоте автор пытается хранить настройки самого эмулятора
    Оно как бы в некотором смысле даже логично. Типа сейв состояния эмулятора, заточенный работать именно на этом эмуляторе.

    - - - Добавлено - - -

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

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  8. #6
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Собственно, я пришёл к точно такому же выводу, хотя это нигде не оговаривается.
    С длиной расширения заголовка, включающей поле длины, 16 байт содержимого регистров AY не влазят в расширение. Логичный вывод - длина расширения не включает поле длины.

    - - - Добавлено - - -

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    Оно как бы в некотором смысле даже логично. Типа сейв состояния эмулятора, заточенный работать именно на этом эмуляторе.

    - - - Добавлено - - -

    Кто ж мог подумать, что люди будут использовать их для того, для чего они не задуманы.
    Я в свое время делал своё расширение .z80 формата , писал дополнительные настройки своего эмулятора в него, причем расширение было не в заголовке, а после содержимого памяти. Когда сделал поддержку SZX формата, всю доп.инфу стал хранить в отдельном своем блоке SZX, там удобнее - можно задать сигнатуру своего блока на общем формате блоков. К сожалению, некоторые существующие эмуляторы (SpecEmu, Fuse), вместо того чтобы спокойно проигнорировать незнакомый блок (мало ли кто какие расширения добавил у себя), информируют о неверном формате, и даже отказываются грузить SZX. А Спектакулятор и Спуд вообще вылетают. Приходится для совместимости делать разные сейвы для себя и других эмулей.
    Хорошо, что не все эмуляторы такие - ZXMAK2, Zero, Es.pectrum игнорируют незнакомые блоки SZX.
    Последний раз редактировалось Spectramine; 04.08.2023 в 09:46.

  9. #7
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,533
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    208
    Поблагодарили
    166 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    Оно как бы в некотором смысле даже логично. Типа сейв состояния эмулятора, заточенный работать именно на этом эмуляторе.
    вряд ли там задумано так было, скорей от лени - проще было сбросить на диск тупо состояние структур в памяти

    Цитата Сообщение от Spectramine Посмотреть сообщение
    причем расширение было не в заголовке, а после содержимого памяти.
    слегка офф, но бесит до сих пор, что в несжатом sna регистры+ сунуты в начало и в середину, а не в конец, отчего неудобно покать sna в обычном hexedit
    Прихожу без разрешения, сею смерть и разрушение...

  10. #8
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    слегка офф, но бесит до сих пор, что в несжатом sna регистры+ сунуты в начало и в середину, а не в конец, отчего неудобно покать sna в обычном hexedit
    Дауш) ещё и порядок регистров такой, что иначе как "от фонаря" не назовешь, смотреть тоже неудобно. Про PC вообще молчу.

  11. #9
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,668
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может уважаемые знатоки тогда подскажут, что не так со снапшотами в другом, хорошем, эмуляторе Z80Stealth (увы, автор давно тут не появлялся)?
    Читать то он читает любые снапшоты .z80, авот записывает похоже в своем собственнном формате, и не один известный(мне эмуль этот снапшот не понимает ( Я тут застрял в игре на 96 уровне, но или игра всё, или эмуль - всё, но проверить в других эмулях нереально. Тоже видимо надо конвертер z80=>z80
    Последний раз редактировалось zebest; 05.08.2023 в 03:40.
    Profi v3.2 -=- Speccy2010,r2

  12. #10
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Похоже, автор Z80Stealth где-то налажал с упаковкой памяти внутри формата .z80

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 5
    Последнее: 06.03.2023, 00:01
  2. ФОРМАТ TD0 ?
    от AAA в разделе Эмуляторы
    Ответов: 37
    Последнее: 29.04.2015, 19:17
  3. Формат .STX
    от tnt23 в разделе Atari
    Ответов: 0
    Последнее: 18.08.2011, 23:50
  4. Формат музыки ay
    от NVitia в разделе Для начинающих
    Ответов: 64
    Последнее: 09.08.2010, 11:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •