и есть где почитать про такое? я конечно нашел массу ресурсов, но это 1976-1982 в основном и там скорее какие-то общие приёмы.
я кстати вашу демку собрать не смог на atasm переделав, видимо что-то специфичное для вашего asm там используется или, что более вероятно, перевёл неправильно.
upd: всё собрал, всё работает )
Последний раз редактировалось BelaLugoci; 22.10.2024 в 12:30.
Atari 65XE / Atari XEGS / Commodore 64C
Часть тут:
http://www.sizecoding.org/wiki/6502
https://www.nesdev.org/wiki/Synthetic_instructions
https://g0blinish.ucoz.ru/forblog_6502/eorFF.zip
https://g0blinish.ucoz.ru/forblog_65...2tricks_V2.zip
Для компиляции нужен xasm. Я на него пересел, потому что пришлось кодить 16K intro, раньше использовал atasm.
- - - Добавлено - - -
под atasm
Код:;batch for compile ;set nam=gens ;atasm.exe -s %nam%.asm ;rename %nam%.65o %nam%.xex *=$8000 start ; lda #0 ; open graphics 0 mode ; jsr $ef9c ; openmode=$ef9c ; setup font lda #$20 sta 756 istart ldx #0 stx 755 ; inverse off ; delay RTCLOK=$0012 dl ldy #0 ; roll rolld lda font_data,y asl a adc #0 sta font_data,y iny cpy #(spr_e-font_data) bne rolld ldy #5 dlay lda RTCLOK+2 wait cmp RTCLOK+2 beq wait dey bne dlay copyd lda font_data,x sta $2000,y iny inx cpy #8 bne copyd cpx #(spr_e-font_data) beq istart bne dl font_data ; sprites 0 .byte ~00001000 .byte ~00001000 .byte ~00001000 .byte ~11111000 .byte ~00011111 .byte ~00010000 .byte ~00010000 .byte ~00010000 ; sprites 1 .byte ~00001000 .byte ~00001000 .byte ~00011000 .byte ~11100100 .byte ~00100111 .byte ~00011000 .byte ~00010000 .byte ~00010000 ; sprites 2 .byte ~00001000 .byte ~00011000 .byte ~01100100 .byte ~10000010 .byte ~01000001 .byte ~00100110 .byte ~00011000 .byte ~00010000 ; sprites 3 .byte ~00011000 .byte ~01100100 .byte ~10000010 .byte ~00000001 .byte ~10000000 .byte ~01000001 .byte ~00100110 .byte ~00011000 ; sprites 4 .byte ~01110010 .byte ~10000001 .byte ~00000001 .byte ~00000001 .byte ~10000000 .byte ~10000000 .byte ~10000001 .byte ~01001110 ; sprites 5 .byte ~11110001 .byte ~00000001 .byte ~00000001 .byte ~00000001 .byte ~10000000 .byte ~10000000 .byte ~10000000 .byte ~10001111 ; sprites 6 .byte ~00010100 .byte ~01100010 .byte ~10000001 .byte ~00000001 .byte ~10000000 .byte ~10000001 .byte ~01000110 .byte ~00101000 ; sprites 7 .byte ~00001000 .byte ~00010100 .byte ~01100010 .byte ~10000001 .byte ~10000001 .byte ~01000110 .byte ~00101000 .byte ~00010000 spr_e ; run start
спасибо
я изучал немного код в основном для mads, а как начал сам что-то пробовать писать, то постоянно какие-то проблемы, то там то сям что-то не работает, пересел на atasm как неделю назад, всё вроде бы получается, я в том смысле что компилируется и работает, а с mads как-то не заладилось.
а xasm какие плюшки даёт и почему с интро это стало решающим?
Atari 65XE / Atari XEGS / Commodore 64C
только xasm скомпилировал исходники RMT player.
Подробно написано в документации на github. Например:
повтор 23 раза, причем счетчик можно использовать:Код::23 dta $2
Еще один плюс - вставка бинарного файла:Код::16 dta l(dither+8*#),h(dither+8*#) ; #-repeater
Здесь пропускается два байта, что для меня важно для сжатия pucrunch, который дописывает лишние данные.Код:ins "plasmfnt.pck",2
Аналог .SBYTE из atasm:
Код:dta d" remember:"
угу, понял, в mads мне такое нравилось, а atasm правда конструкция чуть иная, там .REPT/.ENDR кажется, но тоже можно использовать счётчик. Да, в инструкции раздел "3.17 .REPT <word>, .ENDR"
Я RMT собирать не пробовал, только видел в архиве mads'а кажется он был, ну или по крайней мере RMT плейер, во вложении добавил
rmt_player_relocator.zip
Atari 65XE / Atari XEGS / Commodore 64C
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
вы наверняка знакомы с этой статьёй Интроспека
скажите как вам кажется pucrunch или aplib имеет смысл брать на вооружение? интересует конкурсный вариант Game 4K или 16K
например у ZX0 очевидная проблема с сжатием - требуется последовательное размещение данных одним монолитным блоком, типично ли это для pucrunch и aplib?
в общем ваше мнение по сжатию.
еще, тут pucrunch который вы использовали для 6502 можете сюда выложить, чтобы уже понимать что это рабочий вариант
Последний раз редактировалось BelaLugoci; 23.10.2024 в 14:54.
Atari 65XE / Atari XEGS / Commodore 64C
Нет, я не читал статью интроспека - много воды и ничего полезного.
Я стал использовать pucrunch, потому что сжимает неплохо и скорость распаковки приемлемая. Но zx7 сжал хуже. Пару раз использовал zx7, файлы сжались на отлично, но распаковывалось долго:
Картинка: https://www.pouet.net/prod.php?which=80700
psg dump:https://www.pouet.net/prod.php?which=79828
Примеры использования:
https://g0blinish.ucoz.ru/forblog_zx/pucrunch8bit.zip
или в 16K intro:
https://g0blinish.ucoz.ru/demo3/sv24se/ol_src.7z
.pck - сжатые файлы
- - - Добавлено - - -
Кстати, на AtariAge упаковщики обсуждают:
https://forums.atariage.com/topic/26...crunch-megalz/
для разных версий ZX7-ZX5 добавлены исходники распаковки:
https://forums.atariage.com/topic/31...-atari/page/4/
- - - Добавлено - - -
Забыл добавить список утилит:
https://madteam.atari8.info/index.php?prod=uzytki
В старое время использовал только Super Packer, хватило и этого.
BelaLugoci(23.10.2024)
BelaLugoci(24.10.2024)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)