Просмотр полной версии : рендеринг картинки по данным в снапшоте c64
Кто работал с с64
вот есть картинка выводимая на экран
как бы 3 цвета
картинка в памяти по #4400
атрибуты для нее #d800 (цвет №3)
цвета 1 и 2 соответственно #d022 и #d023
но цвета не те
что я делаю не так?
DenisGrachev
18.10.2018, 11:39
Дык там 3 миллиона режимов, включая картинки с заплатками спрайтами итд В каком режиме у тебя картинка? Обычный хайрез по типу спека?
Дык там 3 миллиона режимов, включая картинки с заплатками спрайтами итд В каком режиме у тебя картинка? Обычный хайрез по типу спека?
тайловый набор 3 цвета заданных
цвет №3 через d800
но цвета не те
что я делаю не так?
$d800 это цвет для символа адреса $0400 - $d801 = $0401 и т.д. и нах.... всё это Вам не нужно!!!
в мультиколоре для символов $d022,$d023 и цвет фона. И не забывайте про $d024
Существует 4 адреса фоновых цветов и один для окантовки.
Проведите следующие действия для наглядности - введите код:
poke1024,5;poke55296,1 -получите белый символ в верхнем левом углу
poke53270,24 - переход в мультиколор
думается дальше Вам станет понятнее.......
И еще можно поюзать poke646,цвет символа. (как 4-ый)
картинка в памяти по #4400
А это вообще ни о чём не говорит. Картинка может быть где угодно в памяти.
Для тайла вообще пох на каком адресе он записан.
Если не помогло, то
Резюме: должен быть код для нормального отображения, который размещает в нужный банк памяти картинку, пишет нужные цвета из нужного адреса....
в общем, как и для любого граф режима на С64.
Информацию, которую Вы даёте можно назвать недостаточной...
и посмотрите ещё здесь
http://commodore64.smforum.ru/index.php?PHPSESSID=p2ujdagargi14cfsl1st7cr9l5&board=14.0
$d800 это цвет для символа адреса $0400 - $d801 = $0401 и т.д. и нах.... всё это Вам не нужно!!!
в мультиколоре для символов $d022,$d023 и цвет фона. И не забывайте про $d024
Существует 4 адреса фоновых цветов и один для окантовки.
Проведите следующие действия для наглядности - введите код:
poke1024,5;poke55296,1 -получите белый символ в верхнем левом углу
poke53270,24 - переход в мультиколор
думается дальше Вам станет понятнее.......
И еще можно поюзать poke646,цвет символа. (как 4-ый)
А это вообще ни о чём не говорит. Картинка может быть где угодно в памяти.
Для тайла вообще пох на каком адресе он записан.
Если не помогло, то
Резюме: должен быть код для нормального отображения, который размещает в нужный банк памяти картинку, пишет нужные цвета из нужного адреса....
в общем, как и для любого граф режима на С64.
Информацию, которую Вы даёте можно назвать недостаточной...
для начала я не пишу под с64, я с него ломаю
и вот уже второй раз у меня возникают с этим проблемы
причем именно с цветом и именно с этим самым игровым режимом
- - - Добавлено - - -
66603
грубо говоря
вот такой дает эмулятор
66604
а вот такой я генерю
что за фигня с цветами?
цвета взяты из данных эмулятора
Ах вот оно чё.... :)
А вторая картинка тоже с эмуля с64?
Картинка должна быть в формате 320х200 для С64.
Да и чем снимаете скрины ?
Хотя не понимаю, что Вам мешает самому отредактировать, если использовать не будете на С64.....
Я чё это вообще не понял тогда заморочки....
вот, бл___дь, озадачил..
Короче говоря, чтоб не сильно напрягаться, нужно взять winvice, в настройках вика убрать border, дальше на нужной картинке открыть монитор и сделать скриншот (scrsh"имя").
Получится скрин 320х200. Дальше вставляешь в прогу PIXCEN https://csdb.dk/release/?id=149752
И записывай, как хочешь - хоть исполняемым файлом... Можно предварительно отредактировать и картинку и цвета, если вдруг, что не сходится....
читать всю страницу https://www.gamestone.co.uk/zzap_world64/apex_creatures.php
Goodboy, я так думаю, что если человек хочет сделать порт на другую машинку, то в любом случае цвета будут другие и уж точно не обойтись без редакции спрайтов, картинок и прочего. Инфа про наложение цветов актуальна скорее всего именно для с64.
а вот такой я генерю
Мне кажется, или там с видеорежимами какая-то загвоздка? В эмуляторе я вижу, что Loading в Hi-Res идёт, а остальное - в мультиколоре... А у вас всё в мультиколоре и ессно каша получается...
Мне кажется, или там с видеорежимами какая-то загвоздка? В эмуляторе я вижу, что Loading в Hi-Res идёт, а остальное - в мультиколоре... А у вас всё в мультиколоре и ессно каша получается...
ну никак не могу разобраться как они щелкают видеорежимами
прерывания по нужной линии вроде не используются
- - - Добавлено - - -
Goodboy, я так думаю, что если человек хочет сделать порт на другую машинку, то в любом случае цвета будут другие и уж точно не обойтись без редакции спрайтов, картинок и прочего. Инфа про наложение цветов актуальна скорее всего именно для с64.
я просто выдернул из игры
оригинальные тайлы и карту и раскидал по позициям цвета.
но получается какая то дичь
цвет 3 для тайлов неверный
для начала я не пишу под с64, я с него ломаю
и вот уже второй раз у меня возникают с этим проблемы
причем именно с цветом и именно с этим самым игровым режимом
ну никак не могу разобраться как они щелкают видеорежимами
прерывания по нужной линии вроде не используются
Jerri, дорогой, ты мне скажи, в чём задача-то? картинку получить нужную? так я описал как...
Или всё же с кодом разобраться? Потому как, если бы всё так просто, то каждый стал бы хакером.
Не даром умы из прошлого старались шифровать свои коды.... :)
Да и вот только что, как-то прям прорезало: "я не пишу под с64, я с него ломаю" - не взаимо связанные ли эти вещи. Может всё таки углубиться. Заодно и нам расскажете...
"в чём задача-то?" это к тому, что ссылки, возможно, не те даём...
Jerri, дорогой, ты мне скажи, в чём задача-то? картинку получить нужную? так я описал как...
Или всё же с кодом разобраться? Потому как, если бы всё так просто, то каждый стал бы хакером.
Не даром умы из прошлого старались шифровать свои коды.... :)
Да и вот только что, как-то прям прорезало: "я не пишу под с64, я с него ломаю" - не взаимо связанные ли эти вещи. Может всё таки углубиться. Заодно и нам расскажете...
"в чём задача-то?" это к тому, что ссылки, возможно, не те даём...
да не особо они и шифруют
задача как бы проста
в памяти хранится уровень
я знаю где он лежит и как хранится
я знаю когда и какие атрибуты задаются для мультиколорного режима
но в результате получается не то что я хочу.
или я ошибаюсь с режимом или что то еще
Даже скажем больше получается не то что в эмуляторе.
так что мне бы консультацию опытного коммодорщика.
а не цитату из официального мануала.
Ну я не буду себя называть опытным, могу лишь как-то предположить, потому, как не лез в дебри игрушек.
И как вариант следующее: имеем 4 цвета $d022,$d023,$d024 - знакоцвет и $d021 фон.
Экран можно растровыми прерываниями делить. Причём делать hires, multicolor, обычный да и ещё фиг знает чего.
Так вот идея в том, чтобы разделить экран и поменять цвет фона, чтобы получить одновременно несколько разных фоновых цветов экрана.
И как следствие разные цвета, которые не будут совпадать в простом режиме multicolor.....
Блин, jerri, в данном случае только методом тыка, потому что даже опытный коммодорщик не залезая в код этой игры не скажет тебе в каком именно месте и что происходит с кодом...
- - - Добавлено - - -
Да и кстати, если говорить непосредственно о данном скрине загрузки, то точняк верхняя и нижняя информационная надписи сделаны прерываниями, так что скорее всего надо сначала поймать цвет картинки, а потом уже этих надписей....
И таки да, хоть ты и говоришь, мол, что толку от бесполезных ссылок, но всё же попробуй поюзать вот этот дебаггер: https://sourceforge.net/projects/c64-debugger/
farfar, спасибо конечно но я ICU64 использую для взлома
jerri, ICU64 не даёт тебе ту самую инфу, которую ты ищешь, а этот дебаггер сразу показал все цвета, где что и как.
К примеру,могу тебе сказать, что верхние и нижние надписи в hires, картинка и сами полоски вокруг надписей в мультиколоре. Так же там увидишь все адреса, сколько спрайтов и т.д. и т.п.
Хотя думается, что как всегда, если бы было ICU64+C64Debugger, то вообще крутяк....
К примеру,могу тебе сказать, что верхние и нижние надписи в hires, картинка и сами полоски вокруг надписей в мультиколоре.
Мне кажется, или там с видеорежимами какая-то загвоздка? В эмуляторе я вижу, что Loading в Hi-Res идёт, а остальное - в мультиколоре... А у вас всё в мультиколоре и ессно каша получается...
Таки мои догадки подтвердились?)
Подтвердились....:) Только это не поможет jerri, там надо включать прерывания для нормального эффекта...
Ну, если он конечно, не соберётся всё таки полюбить комодик :)
Таки мои догадки подтвердились?)
я могу даже код показать если это прояснить как они это делают
Простой пример разделения экрана, набери это код в мониторе....
Сверху мультиколор, снизу простой текст.
Код заполнения экрана символами с $080d, а с $0820 разделение экрана.
Ну и в путь.... хоть как дели, хоть как окрашивай, хоть что вставляй....
Но для того, чтобы понять углубиться всё таки надо в систему.....
farfar,
RAM:4847 loc_4847: ; CODE XREF: RAM:4827j
RAM:4847 ; RAM:483Fj ...
RAM:4847 SEI
RAM:4848 LDA #$90 ; 'Р'
RAM:484A STA ICR
RAM:484D LDA #0
RAM:484F STA interruptenabled
RAM:4852 STA byte_15D8
RAM:4855 STA byte_4939
RAM:4858 STA byte_39
RAM:485A LDA #$EC ; 'ь'
RAM:485C STA int_low
RAM:485F LDA #$48 ; 'H'
RAM:4861 STA int_high
RAM:4864 LDA #$D8 ; '+'
RAM:4866 STA TA_lo
RAM:4869 LDA #3
RAM:486B STA TA_hi
RAM:486E LDX byte_12A2
RAM:4871 JMP load_block
RAM:14D3 load_block: ; CODE XREF: RAM:4871j
RAM:14D3 LDA unk_BF1B,X
RAM:14D6 STA unk_493A
RAM:14D9 STA byte_3B
RAM:14DB LDA unk_BF26,X
RAM:14DE STA loc_494B+1
RAM:14E1 LDA unk_BEFA,X
RAM:14E4 STA loc_4927+1
RAM:14E7 LDX #$FF
RAM:14E9 STX byte_C
RAM:14EC TXS
RAM:14ED LDA #5
RAM:14EF STA byte_1
RAM:14F1 CLI
int___:
RAM:48EC STA byte_2
RAM:48EE LDA TA_hi
RAM:48F1 LSR A
RAM:48F2 LSR A
RAM:48F3 LDA #$11
RAM:48F5 STA byte_DC0E
RAM:48F8 ROL byte_B
RAM:48FA LDA byte_C
RAM:48FC BPL loc_4908
RAM:48FE LDA #$F
RAM:4900 CMP byte_B
RAM:4902 BNE loc_495F
RAM:4904 STA byte_C
RAM:4906 BEQ loc_495B
RAM:4908
RAM:4908 loc_4908: ; CODE XREF: RAM:48FCj
RAM:4908 BCC loc_495F
RAM:490A LDA byte_C
RAM:490C BEQ loc_4936
RAM:490E CMP #$F
RAM:4910 BNE loc_4925
RAM:4912 LDA byte_B
RAM:4914 CMP #$F
RAM:4916 BEQ loc_495B
RAM:4918 EOR #$B8 ; '¬'
RAM:491A BNE loc_4930
RAM:491C LDA #1
RAM:491E STA byte_C
RAM:4920 STA byte_B
RAM:4922 JMP loc_495F
RAM:4925 ; ---------------------------------------------------------------------------
RAM:4925
RAM:4925 loc_4925: ; CODE XREF: RAM:4910j
RAM:4925 LDA byte_B
RAM:4927
RAM:4927 loc_4927: ; DATA XREF: RAM:14E4w
RAM:4927 EOR #$FF
RAM:4929 BNE loc_4930
RAM:492B STA byte_C
RAM:492D JMP loc_495B
RAM:4930 ; ---------------------------------------------------------------------------
RAM:4930
RAM:4930 loc_4930: ; CODE XREF: RAM:491Aj
RAM:4930 ; RAM:4929j
RAM:4930 LDA #$FF
RAM:4932 STA byte_C
RAM:4934 BNE loc_495F
RAM:4936
RAM:4936 loc_4936: ; CODE XREF: RAM:490Cj
RAM:4936 LDA byte_B
RAM:4938
RAM:4938 loc_4938: ; DATA XREF: RAM:4855w
RAM:4938 ; RAM:493Bw ...
RAM:4938 STA int_high
RAM:493B INC loc_4938+1
RAM:493E BNE loc_4943
RAM:4940 INC loc_4938+2
RAM:4943
RAM:4943 loc_4943: ; CODE XREF: RAM:493Ej
RAM:4943 LDA loc_4938+1
RAM:4946 CMP #0
RAM:4948 LDA loc_4938+2
RAM:494B
RAM:494B loc_494B: ; DATA XREF: RAM:14DEw
RAM:494B SBC #$FF
RAM:494D BCC loc_495B
RAM:494F LDA #$7F ; ''
RAM:4951 STA ICR
RAM:4954 LDA #$35 ; '5'
RAM:4956 STA byte_1
RAM:4958 STA byte_15D8
RAM:495B
RAM:495B loc_495B: ; CODE XREF: RAM:4906j
RAM:495B ; RAM:4916j ...
RAM:495B LDA #1
RAM:495D STA byte_B
RAM:495F
RAM:495F loc_495F: ; CODE XREF: RAM:4902j
RAM:495F ; RAM:loc_4908j ...
RAM:495F LDA ICR
RAM:4962 LDA byte_2
RAM:4964 RTI
RAM:4964
jerri извини, но я такой синтаксис впервые вижу....
по мне так турбоассемблер или простой монитор картриджный....
jerri извини, но я такой синтаксис впервые вижу....
по мне так турбоассемблер или простой монитор картриджный....
это ИДА
просто некоторые адреса поименованы.
а твой синтаксис абсолютно такой же :)
Понятно, что мнемоники такие же, а вот адреса указаны совершенно иначе. Я так понял, что это кроссплатформенный дизассемблер... Надо глянуть, что там и как....
- - - Добавлено - - -
Sta ta low
Sta ta hi
Приблизительно понятно, что младший и старший байт, но что такое 'ta' и где?
Ну и так далее... Короче гляну я эту иду:v2_dizzy_facepalm:
это бро из мануала (https://www.c64-wiki.com/wiki/CIA)
Таймер А младшая часть значения
для удобства поименовал адреса метками как в описании CIA
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot