Просмотр полной версии : Abbaye des Morts FINAL VERSION
Финальная версия игры ЗДЕСЬ (http://www.worldofspectrum.org/forums/showpost.php?p=769312&postcount=291)
Блин какие все шустрые :)
scl делать будешь?
Shadow Maker
16.05.2014, 11:12
Ну с scl надо подождать, мож там опять чего поменяют.
jerri, а читы есть встроенные?
Блин какие все шустрые
sbc a,a / xor a :p
crazy_bender/ex-PLACEBO
16.05.2014, 11:41
а что это значит?
sbc a,a / xor a :p
really? :)
а если подумать?
enemy_jean1
jr nc,enemy_jean2
sbc a,a
ld (col_kill),a
enemy_jean2
---------- Post added at 11:58 ---------- Previous post was at 11:55 ----------
Ну с scl надо подождать, мож там опять чего поменяют.
jerri, а читы есть встроенные?
конечно поменяю :) автора титульной картинки забыли :)
отож :) что то есть полюбому.
Shadow Maker
16.05.2014, 12:17
Намекни что искать? :) Чот стар я уже походу для поиска встроенных читов без намеков...
а как брать перевёрнутые кресты ?
Shadow Maker
16.05.2014, 12:18
Там надо фиговину одну нажать (в комнате с лучниками) и тогда можно будет брать их. Потом назад отожми.
В принципе игра пошустрее стала в сравнении с PC. Но сложность не особо высокая, можно пройти и без читов.
осталось понять как взять крест где дракон ?
goodboy, читать свитки ;)
ну накрайняк смотреть прохождение.
а как ты кстати взял крест в lake of dispair?
а как ты кстати взял крест в lake of dispair?
понял подсказку про иллюзии
goodboy, ну вот видишь? иллюзии а не иллюзия ;)
читать свитки
понятно, я даже и не подозревал что герой может ползать.
прошёл игру, спасибо - порадовал.
глюков незаметил.
сложным оказался экран где летает смерть, вот я и начал искать проверку столкновений.
goodboy, ну да полный набор.
прыгает, ходит и ползает
---------- Post added at 12:51 ---------- Previous post was at 12:48 ----------
Ролик только потом бы неплохо записать.
Я не представляю как её вообще пройти можно :)
ПЦ версия всеже проще оказалась
может при управлении от джойстика дублировать прыжок на кнопке `огонь` ?
управление/движение кстати очень понравилось.
помню как бесила точность прыжков в cauldron/spirits
понятно, я даже и не подозревал что герой может ползать.
прошёл игру, спасибо - порадовал.
глюков незаметил.
сложным оказался экран где летает смерть, вот я и начал искать проверку столкновений.
И Сатану потоптал?
А мне реакции не хватает игру пройти :(
Блин, как же без глюков? я же вот находил, но никак не смог воспроизвести.
ксттати в турбо игра будет смотреться еще лучше. 50фпс всё-таки.
также поддержан TAP плагин для Wild Commander.
может при управлении от джойстика дублировать прыжок на кнопке `огонь` ?
управление/движение кстати очень понравилось.
помню как бесила точность прыжков в cauldron/spirits
могу и так сделать, если надо.
прыжки кстати настоящие.
Shadow Maker
16.05.2014, 13:04
jerri, раз уж все равно будешь перекомпилять, сделай плиз какую-нить кнопку возврата в меню. А то я тут закосячил с управлением, забыл чего назначил и устал ждать, пока рыцари поубивают мои 9 жизней :)
---------- Post added at 13:04 ---------- Previous post was at 13:02 ----------
И Сатану потоптал?
А мне реакции не хватает игру пройти :(
Я тож потоптал всех :) Её за 15 минут пройти можно, если знать куда ходить. А уж если вспомнить про сейвы в эмуле, то и того быстрее я думаю.
jerri, раз уж все равно будешь перекомпилять, сделай плиз какую-нить кнопку возврата в меню. А то я тут закосячил с управлением, забыл чего назначил и устал ждать, пока рыцари поубивают мои 9 жизней
Значит так
теперь на джойстике можно удобно играть нажимая выстрел
герой все равно будет прыгать.
кнопки R+Y делают GAME OVER
17.05.2014.15.17
поправлено управление - прыжок на джойстике - только выстрел
поправлено несколько слов в текстах.
поправлена ошибка выхода в меню
желающие могут перекачать.
кнопки R+Y делают GAME OVER
caps+space интуитевней понятно, но это уже мои придирки.
также на понравилось держать нажатым space на картинке с описанием объектов
caps+space интуитевней понятно, но это уже мои придирки.
также на понравилось держать нажатым space на картинке с описанием объектов
нам не нужна интуитивность :) нам нужна эффективность
эти 2 кнопки одновременно случайно не нажмут
а вот удержание SPACE я пожалуй оставлю :)
чит нашел? :)
Terazini
16.05.2014, 16:23
лол.
автор конечно не услышит, но кому нужно сейчас делать хитрожопые загрузчики?
хотел сделать спид лоад для спекка 48к, но не судьба (
Terazini, почему не услышит?
а с дивИДЕ спидлоад работает?
а с дивИДЕ спидлоад работает?
Нет, только классический tap (1366).
tzx не поддерживается.
Нет, только классический tap (1366).
tzx не поддерживается.
хмм кнопочку чтоли встроить :)
хмм кнопочку чтоли встроить :)
Да просто несколько версий лучше сделать.
А ещё поинтересуйся у Velesoft'а. Он точно знает возможности девайса.
---------- Post added at 13:12 ---------- Previous post was at 13:02 ----------
На Spectaculator'е (ZX128) нажимаю space for info, картинка показывается и сразу вылетает обратно в меню.
Да просто несколько версий лучше сделать.
А ещё поинтересуйся у Velesoft'а. Он точно знает возможности девайса.
---------- Post added at 13:12 ---------- Previous post was at 13:02 ----------
На Spectaculator'е (ZX128) нажимаю space for info, картинка показывается и сразу вылетает обратно в меню.
а ты нажми и подержи ;)
а ты нажми и подержи ;)
Хм.. всё-таки лучше чтобы залипало. Отпукать можно по ANY_KEY.
drbars, :) это инфо - чего там смотреть?
Shadow Maker
17.05.2014, 15:54
Если во время интро нажать R+Y всё замирает навечно....
Shadow Maker, перекачай файл.
Shadow Maker
17.05.2014, 16:16
Перекачал. Теперь когда все в интро убегают с экрана - игра не стартует :) Так и висит надпись. Ну то есть может оно и раньше так было, но это реально неправильно.
---------- Post added at 16:16 ---------- Previous post was at 16:13 ----------
чит нашел? :)
Я тока сегодня смог вообще посмотреть :) Нашел, и кстати теперь понятно, почему R+Y у тебя возврат, а не например T+Y :)
Перекачал. Теперь когда все в интро убегают с экрана - игра не стартует :) Так и висит надпись. Ну то есть может оно и раньше так было, но это реально неправильно.
Это правильно. Игра начинается с хардкора - тебя пытаются убить.
Потому запуск игры только по нажатию одной из управляющих клавиш или джойстика.
Shadow Maker
17.05.2014, 17:22
Ну я хз, мож инфу какую-нить о том, что надо нажать что-то, не просто пробел и ентер, а именно одну из управляющих кнопок. Как бы неочевидно ни разу. В оригинале любую клавишу можно нажимать. Ну или сделать чтобы любую нажать можно было.
jerri, +1 тоже парился, жму всё подряд... игра не запускается, потом хоп... запустилась.
Оказалось нужно вниз давить...
Кстати, парные нажатия не обрабатываются... Лево+Право даёт ступор с пробуксовкой.
drbars, вариантов то много
влево вправо вниз прыжок
а насчет влево вправо.
все там обрабатывается
но вот то что ты и влево идешь и вправо :) ССЗБ
drbars, вариантов то много
влево вправо вниз прыжок
а насчет влево вправо.
все там обрабатывается
но вот то что ты и влево идешь и вправо :) ССЗБ
Я делал так:
Если лево и право совместно нажаты, обработка пропускается.
Если верх и низ нажаты, обработка пропускается.
Все так делали раньше.
20.05.2014. 15:41
добавил F+H - отключение/включение музыки
желающие могут обновить версию
Jerri, я извиняюсь, а где trd-версия с фирменным читом??? Будет? ;)
Slider, фирменный чит? аксцись!
Хм? ;) А почему бы и нет?
23.05.2014 добавил tap версию для владельцев divIDE
обе версии в архиве.
баги и очепятки вроде закончились.
Обычная tap'ка без часов?
drbars, да, tzx с часами. tap через #0556
Странная работа Kempston Joystic
http://www.youtube.com/watch?v=nIQboFo7Epc
upd. не исключено, что баг в самом divIDE.
Например в Exolone герой ходит нормально, но постоянно пускает ракеты.
Оффтоп - Bars, а чего у тебя прогресс готовности Диззи идет в обратную сторону? Точно помню - было 50% ;)
Оффтоп - Bars, а чего у тебя прогресс готовности Диззи идет в обратную сторону? Точно помню - было 50% ;)
Судя по видео (http://zx.pk.ru/showthread.php?p=713037#post713037), процесс идёт в правильном направлении. ;)
drbars, в игру встроен автотест кемпстона.
ld bc,#001f
ld h,b
ld l,b
ld e,b
i_00
in a,(c)
or e
ld e,a
dec hl
ld a,h
or l
jr nz,i_00
ld a,e
and c
jr z,kemp_present
ld a,#c9
kemp_present
ld (kemp_act),a
таким образом если чтото не нравится игра отключает кемпстон.
вот опрос кемпстона в игре
ld a,e
ld (cur_keys),a
kemp_act ret
ld bc,#001f
in a,(c)
and #17
or e
ld (cur_keys),a
ret
попробуй простейшую программку
10 print at 0,0;in 31,
20 goto 10
пробуй простейшую программку
10 print at 0,0;in 31,
20 goto 10
http://www.youtube.com/watch?v=w672cC3HSQ4
---------- Post added at 01:41 ---------- Previous post was at 01:25 ----------
В игре Dizzy-2 и Exolon — направления обрабатываются нормально, но кравиша "огонь" почему-то в инверсии работает.
introspec
28.05.2014, 22:48
drbars, в игру встроен автотест кемпстона.
ld bc,#001f
ld h,b
ld l,b
ld e,b
i_00
in a,(c)
or e
ld e,a
dec hl
ld a,h
or l
jr nz,i_00
ld a,e
and c
jr z,kemp_present
ld a,#c9
kemp_present
ld (kemp_act),a
Неважный тест, работает почти секунду, и если нажать что-то на джойстике, решает что джойстика нет. Мне кажется, что самым надёжным было бы что-то типа:
ei
halt
in a, (31)
inc a
ld a, #c9
jr z, kemp_not_present
xor a
kemp_not_present:
ld (kemp_act), a
introspec, у меня подозрения что у divIDE проблема тоже какая-то присутствует. Пока не понял какая только.
introspec
28.05.2014, 23:23
introspec, у меня подозрения что у divIDE проблема тоже какая-то присутствует. Пока не понял какая только.Ну вот так, чисто глядя на видео, очень трудно себе вообразить какая там может быть проблема. Если бы в порт джойстика прилетало что-то с шины, цифры в бейсик программе не были бы такими стабильными. Внешне выглядит так, что всё ОК в железе. Я бы всё же перепроверил логику опроса в игре, скажем, что она делает при нажатии на "включить джойстик" (и в какой момент она, собственно, проверяет его наличие).
Может кемпстон надо в определённое время опрашивать? Например строго в начале прерывания.
И меня беспокоит нажатый постоянно огонь в Exolon и Dizzy-2. Глючно опрашиваем джойстик? особенности +2 issue_1 ?
introspec
28.05.2014, 23:36
Может кемпстон надо в определённое время опрашивать? Например строго в начале прерывания.Если бы была проблема с этим, бейсик тест в начале видео показывал бы муру иногда. Я тоже думал об этом, погуглил, но не смог найти ни утверждений за, ни утверждений против.
Хмм... может код опроса порта джойстика должен быть в быстрой памяти или даже в ПЗУ ?
introspec
28.05.2014, 23:53
Хмм... может код опроса порта джойстика должен быть в быстрой памяти или даже в ПЗУ ?Откомпилируй LD BC, 31 : IN C, (C) : RET по адресу 30000 (где хочешь в медленной памяти, конечно) и замени IN 31 в своей бейсик-программе на USR 30000 - чтобы убедиться на 100%.
---------- Post added at 20:53 ---------- Previous post was at 20:47 ----------
Просто посмотри, будет ли оставленный в покое джойстик возвращать всегда 0. Если джойстик конфликтует с ULA, то иногда должны будут проскакивать ненулевые значения (в основном - значения атрибутов экрана). Если дело окажется именно в этом, придётся перенести опрос джойстика в обработчик прерывания.
Неважный тест, работает почти секунду, и если нажать что-то на джойстике, решает что джойстика нет. Мне кажется, что самым надёжным было бы что-то типа:
ei
halt
in a, (31)
inc a
ld a, #c9
jr z, kemp_not_present
xor a
kemp_not_present:
ld (kemp_act), a
основная задача теста - отрубить джойстик в случае малейшего подозрения.
включить его всегда можно.
---------- Post added at 23:55 ---------- Previous post was at 23:54 ----------
Откомпилируй LD BC, 31 : IN C, (C) : RET по адресу 30000 (где хочешь в медленной памяти, конечно) и замени IN 31 в своей бейсик-программе на USR 30000 - чтобы убедиться на 100%.
---------- Post added at 20:53 ---------- Previous post was at 20:47 ----------
Просто посмотри, будет ли оставленный в покое джойстик возвращать всегда 0. Если джойстик конфликтует с ULA, то иногда должны будут проскакивать ненулевые значения (в основном - значения атрибутов экрана). Если дело окажется именно в этом, придётся перенести опрос джойстика в обработчик прерывания.
1. он и так на прерывании обрабатывается.
2. у меня нет кода в медленной памяти.
introspec
28.05.2014, 23:56
основная задача теста - отрубить джойстик в случае малейшего подозрения.
включить его всегда можно.
---------- Post added at 23:55 ---------- Previous post was at 23:54 ----------
он и так на прерывании обрабатывается.В самом начале? Тогда совсем мутное что-то :(
Но сам тест - 100% неправильный. По сути, ты вырубаешь джойстик на любой машине с плавающей шиной. С тем же успехом ты можешь его просто вырубать по умолчанию.
introspec, всё работает. И в быстрой, и в медленной нормально.
introspec
29.05.2014, 00:02
По сути, ты вырубаешь джойстик на любой машине с плавающей шиной. С тем же успехом ты можешь его просто вырубать по умолчанию.Наврал, прошу прощения. Но мысль об отключении по умолчанию всё равно кажется мне верной.
Нужно открыть новую тему по корректной работе с кемпстоном. Я сейчас нагуглил 100500 совершенно дурацких тестов. Слишком много реализаций этих джойстиков и, видимо, не все они вполне совместимы.
introspec, ты хочешь сказать что на машине с плавающей шиной из порта джойстика читается мусор?
тогда зачем мне его читать?
introspec
29.05.2014, 00:05
introspec, всё работает. И в быстрой, и в медленной нормально.Ну вот как я и сказал в самом начале, я бы грешил где-то на саму логику опроса, а не на джойстик.
---------- Post added at 21:05 ---------- Previous post was at 21:03 ----------
introspec, ты хочешь сказать что на машине с плавающей шиной из порта джойстика читается мусор?
тогда зачем мне его читать?Нет, я хотел сказал, что мусор, прочитанный с плавающей шины может выглядеть как джойстик. Твой тест избегает этой проблемы читая на протяжении секунды. Я просто сказал, что не нужно так сложно, достаточно прочесть значение порта сразу после инта, когда ULA точно не гадит на шину.
Ну вот как я и сказал в самом начале, я бы грешил где-то на саму логику опроса, а не на джойстик.
если бы была логика опроса то баг всплыл бы раньше
а так это первый +2 с такой ошибкой.
---------- Post added at 00:07 ---------- Previous post was at 00:05 ----------
Нет, я хотел сказал, что мусор, прочитанный с плавающей шины может выглядеть как джойстик. Твой тест избегает этой проблемы читая на протяжении секунды. Я просто сказал, что не нужно так сложно, достаточно прочесть значение порта сразу после инта, когда ULA точно не гадит на шину.
Вру кстати.
Тест работает в медленной памяти. Игра вся в быстрой...
Идеология теста взята из ZX Format.
В общем я попробовал 3 игры. Exolon, Dizzy-2, Rocky Horror Show - направления движения обрабатываются нормально. Огонь в играх опрашивается как нажатый. Т.е. бит огня инвертирован в опросе. Загадка прям.
---------- Post added at 03:09 ---------- Previous post was at 03:08 ----------
jerri, DivIDE 2k14 мало кто тестил... наверное стоит с автором посоветоваться.
introspec
29.05.2014, 00:09
если бы была логика опроса то баг всплыл бы раньше
а так это первый +2 с такой ошибкой.Серый +2 - единственный +2 с плавающей шиной. Я поэтому стал думать про твой тест. Но ты прав, выглядит очень странно.
В общем я попробовал 3 игры. Exolon, Dizzy-2, Rocky Horror Show - направления движения обрабатываются нормально. Огонь в играх опрашивается как нажатый. Т.е. бит огня инвертирован в опросе. Загадка прям.
---------- Post added at 03:09 ---------- Previous post was at 03:08 ----------
jerri, DivIDE 2k14 мало кто тестил... наверное стоит с автором посоветоваться.
Опрос вправо это 0 бит...
опрос выстрел это 4 бит...
судя по багам в фирменных играх - проблема с DivIDE
открой тему на WOS.
---------- Post added at 00:14 ---------- Previous post was at 00:12 ----------
drbars, а еще неплохо было бы ознакомиться с результатом теста в виде цифры.
jerri, на видео цифры есть.
1 - право
2 - влево
4 - вниз
8 - вверх
16 - огонь.
В фирменных баги нет, просто огонь наоборот работает. Это может от модели джойстика быть.
Может там на размыкание кнопка должна быть?
drbars, а у тебя платка интерфейса джойстика старинная или новодел ?
goodboy, интерфейс на самом divIDE. В подписи у меня ссылка.
jerri, на видео цифры есть.
1 - право
2 - влево
4 - вниз
8 - вверх
16 - огонь.
В фирменных баги нет, просто огонь наоборот работает. Это может от модели джойстика быть.
Может там на размыкание кнопка должна быть?
это то я вижу.
А еще я вижу что тест отрубает кемпстон.
Возможно, что игра опрашивает джойстик чаще чем бейсик, оттого и глючит.
goodboy, интерфейс на самом divIDE. В подписи у меня ссылка.
а джой ты куда втыкаешь ?
а джой ты куда втыкаешь ?
http://www.youtube.com/watch?v=w672cC3HSQ4
---------- Post added at 03:32 ---------- Previous post was at 03:30 ----------
jerri, накидай тест на асме в SNA формате выложи.. прогоню.
drbars, понял - в этом новом divide уже есть порт #1F,
а я думал что у тебя переходная платка.
introspec
29.05.2014, 00:37
drbars, понял - в этом новом divide уже есть порт #1F, а я думал что у тебя переходная платка.goodboy, а что, с переходной платкой бывали какие-то проблемы? я пытался гуглить по этому поводу, но ничего не нашёл.
с переходной платкой бывали какие-то проблемы?
для меня непонятно чтение из порта, кажется сигнал RD вообще не заведён.
В любом случае в Abbaye des Morts нажаты вниз и вправо получается. Почему эти два бита установлены - пока загадка.
---------- Post added at 03:49 ---------- Previous post was at 03:47 ----------
goodboy, ещё там Sinclair есть. Джамперами можно установить.
http://www.youtube.com/watch?v=w672cC3HSQ4
---------- Post added at 03:32 ---------- Previous post was at 03:30 ----------
jerri, накидай тест на асме в SNA формате выложи.. прогоню.
https://www.dropbox.com/s/2f0of52k5vy00ko/qsave.sna
вот
---------- Post added at 00:55 ---------- Previous post was at 00:52 ----------
В любом случае в Abbaye des Morts нажаты вниз и вправо получается. Почему эти два бита установлены - пока загадка.
---------- Post added at 03:49 ---------- Previous post was at 03:47 ----------
goodboy, ещё там Sinclair есть. Джамперами можно установить.
вниз не нажато, иначе герой полз бы по земле
Результат:
http://www.youtube.com/watch?v=7lI0qm4wQD0
introspec
29.05.2014, 01:01
Результат:
http://www.youtube.com/watch?v=7lI0qm4wQD0Не, это точно с железом что-то не то... :(
Результат:
http://www.youtube.com/watch?v=7lI0qm4wQD0
у меня нет слов.
вот что творится справа
ld de,#3808
i_04
ld hl,#5818
i_02
ld bc,#001f
in a,(c)
ld b,8
i_03
ld (hl),e
add a,a
jr nc,$+3
ld (hl),d
inc hl
djnz i_03
ld bc,#0018
add hl,bc
ld a,h
cp #5b
jr nc,i_04
jr i_02
а теперь вот это попробуй
https://www.dropbox.com/s/2f0of52k5vy00ko/qsave.sna
introspec, вероятно... надо автору железки записать.
Но Basic работает же :)
introspec, вероятно... надо автору железки записать.
Но Basic работает же :)
у бейсика между опросами времени полно.
а теперь вот это попробуй
https://www.dropbox.com/s/2f0of52k5vy00ko/qsave.sna
http://www.youtube.com/watch?v=cpbj6Iq4RCw
http://www.youtube.com/watch?v=cpbj6Iq4RCw
вот так примерно и видит игра твой джойстик :)
но прыжок он обрабатывается хитро
а вот вправо идет уверенно
вобщем явно проблема с железом :(
с бейсиком я даже не знаю что делать
jerri, жесть...
---------- Post added at 04:21 ---------- Previous post was at 04:17 ----------
Нужно чтобы народ с платкой отдельной потестил. Если там такая же беда, то при первоначальной инициализации джойстика нужно инвертировать установленные порты и всё будет нормально работать.
introspec
29.05.2014, 01:23
Нет, лучше всё же починить железо...
Либо как вариант, отслеживать не установку или сброс бита, а изменение его состояния... тогда точно везде будет работать :)
drbars, а если человек в процессе теста чего зажмет?
баловство это :)
посмотрел как работает программа на басике
порядка 60000 тактов
опрашивает практически так же
но возможно нахождение опроса в ПЗУ не дает появляться глюкам.
jerri, самое интересное что в играх тот же диззик нормально ходит :)
jerri, самое интересное что в играх тот же диззик нормально ходит :)
давно записывал видео?
Alex Rider
29.05.2014, 11:05
Где-то видел отличную фразу: "Принять правильное и надежное решение о том, стоит ли опрашивать джойстик, достаточно просто. Для этого надо записать несколько десятков байт в диапазоне #4000 - #5aff, после чего считать ответ из порта клавиатуры" :) Ну, в смысле, намек на то, что надо всегда спрашивать у пользователя. Ибо, воистину, вариантов реализации джойстика, порта #ff и всякого другого псевдосовместимого железа столько, что угадать не всегда возможно.
introspec
29.05.2014, 11:13
Где-то видел отличную фразу: "Принять правильное и надежное решение о том, стоит ли опрашивать джойстик, достаточно просто. Для этого надо записать несколько десятков байт в диапазоне #4000 - #5aff, после чего считать ответ из порта клавиатуры" :) Ну, в смысле, намек на то, что надо всегда спрашивать у пользователя. Ибо, воистину, вариантов реализации джойстика, порта #ff и всякого другого псевдосовместимого железа столько, что угадать не всегда возможно.Я не согласен. Все эти проблемы решаемы малой кровью. Нужно просто действовать с умом (не считая случаев, конечно, когда железо просто дефективное, как выяснилось в этой ветке). И, да, судя по количеству проблем с опросом джойстиков, очень не хватает набора рекомендаций для кодеров, чтобы не решать одну и ту же проблему всем по очереди. Например, недавно я помогал делать одну биперную дему, в ходе чего выяснилось, что как минимум у трех биперных движков, в ней использованных, некорректный опрос кемпстона, т.к. авторы не учли наличие floating bus.
Где-то видел отличную фразу: "Принять правильное и надежное решение о том, стоит ли опрашивать джойстик, достаточно просто. Для этого надо записать несколько десятков байт в диапазоне #4000 - #5aff, после чего считать ответ из порта клавиатуры" :) Ну, в смысле, намек на то, что надо всегда спрашивать у пользователя. Ибо, воистину, вариантов реализации джойстика, порта #ff и всякого другого псевдосовместимого железа столько, что угадать не всегда возможно.
Мой тест работает идеально
но возможность включить я оставил.
drbars, у тебя ведь MV1971 кажется рядом.
возможно стоит попросить его потестить твой divIDE, на разных фирменых спеках.
goodboy, перключил на Sinclair джампером... постоянно печатается цифра 6 в бейсике. Явно баг прошивки, автор прислал jed файл.. Не могу найти инструкции по его установке.
goodboy, перключил на Sinclair джампером... постоянно печатается цифра 6 в бейсике.
а без джойстика тоже печатается ?
(может у него кнопка залипает)
goodboy, скорее глюк с прошивке какой-то, или несовместимость какая-то.
Alex Rider
30.05.2014, 00:17
Мой тест работает идеально
Что за тест?
Что за тест?
тест наличия Kempston джойстика
http://zx.pk.ru/showpost.php?p=713097&postcount=50
Alex Rider
30.05.2014, 12:00
Ну, практически идеальный, да. Но все же лучше пассивное железо не детектить. Ибо, во первых, возможность включить\выключить джойстик руками все равно делать надо, во-вторых, какие еще девайсы на машине пользователя будут кидать сброшенные 5 младших битов в порт по маске #1f - одному богу известно. Хотя, согласен, программа, которая при старте предлагает использовать джойстик, если он есть, предлагает не использовать, если его не нашла. Собсна, с любым железом оно так кошернее.
Alex Rider, какое еще железо работает с портом 31? А главное - нафига? :)
---------- Post added at 12:20 ---------- Previous post was at 12:19 ----------
Кроме того джойстик всегда можно включить :)
Alex Rider
30.05.2014, 21:55
какое еще железо работает с портом 31? А главное - нафига?
Это БК спец по конфликтам оборудования :) Я не помню. Только что если какой командер запустит игру с открытым портом TR-DOS, но это уже клиника. Но неточная дешифрация по сброшенному 5-му и еще какому-нить биту (#5F, например) может привести к чудо-эффектам. Так что вместе с
Кроме того джойстик всегда можно включить
неплохо делать еще и возможность отключить.
неплохо делать еще и возможность отключить.
Alex Rider, ты программу то смотрел вообще? где тест используется?
Alex Rider
30.05.2014, 23:32
ты программу то смотрел вообще?
Нет :) Я просто философствую про автодетект кемпстона в принципе.
DenisGrachev
05.07.2014, 19:17
Сделал обложку на кассету, для таких как я фанатов ленты:
http://www.retrosouls.net/zx/admInlay.jpg
В теме уже 11 страниц, а я так и не понял - есть .scl/.trd или нет?..
jerri, что ты глупые вопросы задаёшь? Конечно - да.
Slider, Rindex, значит будет.
Чем тапка не устраивает?
Мне ее на реале с магнитофона, что ли, запускать?.. ;)
Slider, Rindex, значит будет.
Ждёмс.
посоветуйте адекватный и простой загрузчик через 3d13
а то навороченный набивать не хочется.
ну и если что чтобы был какой то контроль ошибок
http://zxpress.ru/article.php?id=7417
http://zxpress.ru/article.php?id=4805
Фирменный авторский SCL игры.
Смотрите, тестируйте.
загрузчик таки пришлось дергать свой
те два по ссылкам наверху - шаманские.
пофиксил CRC.
наслаждайтесь.
QIWI кошелек - +79178162712
Shadow Maker
08.07.2014, 17:44
Фирменный авторский SCL игры.
Смотрите, тестируйте.
загрузчик таки пришлось дергать свой
те два по ссылкам наверху - шаманские.
ах да. CRC файла нулевой.
Если мне предоставят консольный сборщик SCL или корректировшик сумм то версия будет 100% правильной.
наслаждайтесь.
QIWI кошелек - +79178162712
В смысле? Чем тебе такой сборщик не нравится? http://zx-pk.ru/showpost.php?p=718022&postcount=36
Shadow Maker, ну на данный момент
я собрал все вот это вот такой вот загогулиной
DEVICE ZXSPECTRUM128
;8 байт - имя файла
;1 байт - расширение B
;2 байта - полная длинна басика
;2 байта - длинна програмной части бейсика
;1 байт - длина программы в секторах
;в последнем секторе после полной длинны бейсика находится #80 #aa #0a #00
;указатель автостарта
org #6100-9-14
scl_beg
header_beg
defb "SINCLAIR"
defb 1
db "l'Abbaye"
db "B"
dw data_end-bas_beg ; full_length
dw bas_end-bas_beg ;basic_length
db (body_end-data_beg)/256
header_end
; print usr (peek val "23627"+val "256"*peek val "23628"+val "3")
; 34b3 usr
org #6100
data_beg
bas_beg
db #00,#0a ;10
dw #0024 ;длина строки
db #f5,#c0,#28,#be ;print usr (peek
db #b0,#22,#32,#33,#36,#32,#37,#22,#2b ;val "23627"+
db #b0,#22,#32,#35,#36,#22,#2a,#be ;val "256"*peek
db #b0,#22,#32,#33,#36,#32,#38,#22,#2b ;val "23628"+
db #b0,#22,#33,#22,#29,#0d ;val "3")
bas_end
;(23627)
;vars
db #4c ;L
dw screen_l ;var_len
pointer
di
ld h,b
ld l,c
ld sp,hl
ld hl,end_len
add hl,bc
ld de,#ffff
ld bc,pack_len+1
lddr
inc de
ld hl,#6000
push hl
ex de,hl
include "DEC40.a80"
org $-1
block_beg
incbin "AdM_scrn.mlz"
block_end
data_end
db #80 ;endmarker
db #aa
db #0a
db #00
full_end
if $&255
display "assign ",256-$&255
ds 256-$&255
endif
screen_l equ data_end-pointer
pack_len equ block_end-block_beg
end_len equ block_end-pointer
b_title
;48k - depack to #4000
incbin "\gfx\title.scr.rec.mlz"
incbin "\gfx\info.scr.rec.mlz"
incbin "sound.bin.mlz"
incbin "Abbaye.bin.mlz"
end
if $&255
display "assign ",256-$&255
defb #0d,#0a,"Jerri/RT/AF_08/07/2014",#0d,#0a
ds 256-$&255
endif
;crc
data equ end-b_title
body_end
defb 0,0,0,0
scl_end
display "header:",header_beg,",",header_end-header_beg
display "loader:",data_beg,",",data_end-data_beg
display "block :",b_title,",",end-b_title
display "Free :",$,",",#10000-$
display "SCL: ",scl_beg,",",scl_end-scl_beg
savebin "Abbaye.scl",scl_beg,scl_end-scl_beg
а как мне моноблоки делать в программе Витамина я пока не понял
Shadow Maker
08.07.2014, 19:38
Тогда проще зайти в тему попова и забрать оттуда считалку контрольной суммы.
LUA
local fp
local checksum
fp = assert(io.open("test.scl", "rb"))
checksum=0
while true do
local byte = fp:read(1)
if byte==nil then
break
end
checksum=checksum+string.byte(byte)
end
assert(fp:close())
print("writing",string.format("%08X",checksum))
fp = assert(io.open("test.scl", "a"))
for i=1,4 do
fp:write(string.char(checksum%256))
checksum=math.floor(checksum/256)
end
-- assert(fp:flush())
assert(fp:close())
ENDLUA
Я правда не проверял, правильно оно считает или нет.
Моноблоки отдельной прогой забубенить проще, у меня скрипт для этого сидит.
Alex Rider
08.07.2014, 21:02
я собрал все вот это вот такой вот загогулиной
Сбываются пророчества... Стоило положить на всеобщее обозрение кривой сборщик, как внезапно начали появляться кривые сборки, даже несмотря на то, что собрщик без контрольной суммы был обозван кривым. Собрайте в TRD - SjASM оно умеет искаропки, без кучи кода и проблем с совместимостью.
denpopov
08.07.2014, 21:16
Стоило положить на всеобщее обозрение кривой сборщик
Ну кривой поправлен вообще-то, просто тему не пофиксили..
Alex Rider, но там то кривой сборщик, а тут просто ручками создается дамп файла. лень просто фиксер писать
denpopov
09.07.2014, 06:58
лень просто фиксер писать
он написан вроде:
http://zx-pk.ru/showpost.php?p=718285&postcount=16
denpopov, как ты собираешь файлы в пб?
мои ексешники ( для работы с графикой) под вистой падают
что я делаю не так?
denpopov
09.07.2014, 08:02
denpopov, как ты собираешь файлы в пб?
версия 5.11 x86
Compiler->Create Executable..
и все под семеркой робит.
кстати, только недавно узнал, что CanvasGadget введен с 4.60
А как падают хоть? может, просто при коде есть косячок? Пуревасик не обрабатывает ошибки.
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: scrrec.exe
Версия приложения: 0.0.0.0
Штамп времени приложения: 52791328
Имя модуля с ошибкой: ntdll.dll
Версия модуля с ошибкой: 6.0.6002.18881
Штамп времени модуля с ошибкой: 51da3e27
Код исключения: c0000005
Смещение исключения: 00023fa4
Версия ОС: 6.0.6002.2.2.0.768.2
Код языка: 1049
Дополнительные сведения 1: c43c
Дополнительные сведения 2: 68439ef9a9b48b2b291a661dcd50924e
Дополнительные сведения 3: 5e2d
Дополнительные сведения 4: e89f09a8c3a8cedd242af998f4199bc4
вот такое пишет
вот такая программа
https://www.dropbox.com/s/wnebyb7zckmbgtp/scrrec.exe
https://www.dropbox.com/s/zd7gsuv0ocm87n9/scrrec.pb
denpopov
09.07.2014, 08:50
Антивирус не дает скомпилировать, считает, что вирус, наверное.
вот тут:
Global filename.s=ProgramParameter()
а указывается номер параметра командной строки:
ProgramParameter([Index])
и еще:
If CreateFile(0,filename) ; we create a new text file...
WriteData(0,*out,ptr)
CloseFile(0) ; close the previously opened file and store the written data this way
Else
PrintN("Can't create "+filename)
Delay(1000)
EndIf
т.е., после сообщения об ошибки лучше указать End как выход из программы.
Да и проще, если понять, в чём проблема проще гонять под Бейсиком, нужно будет только передать параметры, тогда ошибка сама высветится.
---------- Post added at 08:50 ---------- Previous post was at 08:50 ----------
нужен будет проблемный файл, тогда гляну, что не нравится.
Антивирус не дает скомпилировать, считает, что вирус, наверное.
вот тут:
Global filename.s=ProgramParameter()
а указывается номер параметра командной строки:
ProgramParameter([Index])
и еще:
If CreateFile(0,filename) ; we create a new text file...
WriteData(0,*out,ptr)
CloseFile(0) ; close the previously opened file and store the written data this way
Else
PrintN("Can't create "+filename)
Delay(1000)
EndIf
т.е., после сообщения об ошибки лучше указать End как выход из программы.
Да и проще, если понять, в чём проблема проще гонять под Бейсиком, нужно будет только передать параметры, тогда ошибка сама высветится.
---------- Post added at 08:50 ---------- Previous post was at 08:50 ----------
нужен будет проблемный файл, тогда гляну, что не нравится.
проблема не с антивирусом
1- на ХР работает программа собиралась на ХР
2- я забираю очередной параметр там допустимо.
а спотыкается на доступе к памяти
https://www.dropbox.com/s/z05gf2woh3ucigg/title.scr
denpopov
09.07.2014, 10:03
а спотыкается на доступе к памяти
мне вот это не нравится:
WriteData(0,*out,ptr)
ща попробую
---------- Post added at 10:03 ---------- Previous post was at 09:36 ----------
Не люблю виртуальную память в венде, подсказали вот что:
*pack=AllocateMemory(size+1)
*out=AllocateMemory(size+1)
и объявление Global лучше вынести.
Странно, у меня есть две проги, где одна переменная используется как указатель на память, и все работает..
denpopov, спасибо падать вроде перестало
убрал Global
добавил выделяемой памяти.
под вистой заработало.
denpopov
09.07.2014, 10:19
мда...хоть и оффтоп, но мне бы со скроллбарами разобраться..
Я снова о наболевшем - чит-то есть?.. Как включить? ;)
Я снова о наболевшем - чит-то есть?.. Как включить? ;) изучай выбор клавиш для управления
Shadow Maker
13.07.2014, 02:11
Чита нет. Есть перемещалка по экранам. Все есть на типшопе.
На ТипШопе что-то, кроме проходилки в RZX, я ничего не нашел :(
есть режим разработчика.
игра простая и проходится за 9 минут
Вон чего Neil Parsons пишет:
Hey guys, Retro Gamer reviewed the game and scored it with 90% in their last 131st issue. Congratulations!
Присоединяюсь к поздравлениям!!!
Shadow Maker
25.07.2014, 04:24
На ТипШопе что-то, кроме проходилки в RZX, я ничего не нашел :(
Как искал? http://www.the-tipshop.co.uk/cgi-bin/info.pl?name=L%60Abbaye%20des%20Morts&publisher=Unknown
Как искал?
Черт-те как, видимо... Спасибо...
А у одного меня "фирменная" .scl через раз запускается?
Ну, то есть, оно грузится, потом какие-то полоски на бордюре, потом виснет или сбрасывается. Со второго раза запускаешь и в дальнейшем - все норм.
Такое впечатление, что некорректно сделана проверка на ошибки и из-за нее все вылетает...
Slider, вариант с обработкой ошибок не исключен...
как увидеть?
---------- Post added at 12:19 ---------- Previous post was at 12:06 ----------
посмотрел - полосок вообще не предусмотрено.
запускаю из boot - запускается нормально
Еще раз проверил. Первый запуск в Анриле - фейловый. Глюк происходит СРАЗУ после депакинга заставки. Потом, после ресета, все в порядке.
Лови .sna
Shadow Maker
25.07.2014, 16:11
Поди инты какие-нибудь срут в депакер или еще куда.
там запрет на всякие прерывания стоит.
---------- Post added at 18:58 ---------- Previous post was at 18:55 ----------
ну блин....
какой ТРДОС? какая память? что еще есть интересного?
вот код загрузчика
tr_dos
push hl
ld iy,#5c3a
ld (iy+#00),#ff
ld hl,#5cc2
ld (hl),#c3
ld hl,tr_dos_check
ld (#5cc3),hl
ld hl,tr_dos_rst8
ex (sp),hl
ld (#5c3d),sp
call #3d13
ex (sp),hl
or a
tr_dos_exit
ld hl,#5cc2
ld (hl),#c9
pop hl
ret
tr_dos_rst8
push hl
scf
jr tr_dos_exit
tr_dos_check
ex (sp),hl
push de,af,bc
exx
push hl,de,bc
ld (tr_dos_sp),sp
ld hl,-28
add hl,sp
ld sp,hl
ld de,tr_dos_tbl
ld bc,28
ldir
exx
ex de,hl
ld b,7
tr_dos_ch0
pop hl
or a
sbc hl,de
pop hl
jr z,tr_dos_ch1
djnz tr_dos_ch0
ld hl,tr_dos_cont
ld sp,$
tr_dos_sp equ $-2
tr_dos_ch1
exx
pop bc,de,hl
exx
pop bc,af
jp (hl)
tr_dos_tbl
dw #0010,tr_dos_ignore
dw #0d6b,tr_dos_ignore
dw #1a1b,tr_dos_ignore
dw #1f54,tr_dos_scf
dw #028e,tr_dos_xora
dw #031e,tr_dos_scf
dw #0333,tr_dos_keys
tr_dos_cont
ex de,hl
pop de
ex (sp),hl
ret
tr_dos_ignore
pop de
pop hl
ret
tr_dos_xora
pop de
pop hl
xor a
ret
tr_dos_scf
pop de
pop hl
scf
ret
tr_dos_keys
pop de
pop hl
ld a,"R"
ret
Поставь прерывание в эмуле на адрес #6002 и глянь - до этого все пучком, а именно выполнение процедуры по этому адресу заглючивает процесс
Slider,
org #6000
start
ld sp,#6000
di
call mem_test
call screen0
ld de,(#5CF4)
ld hl,loading
ld bc,block+5
call tr_dos
даже представить не могу что не так
---------- Post added at 22:25 ---------- Previous post was at 22:22 ----------
какая конфигурация эмулятора?
ROM
RAM
конфигурация памяти
да хз какая конфа, дело в том, что на реале та же колбаса В ПЕРВЫЙ РАЗ... :(
Slider, так давай сначала.
ты нажимаешь ресет
память сброшена - игра не грузится
снова нажимаешь ресет
память сброшена - игра грузится
так?
вся зараза здесь кроется:
tr_dos
push hl
ld iy,#5c3a
ld (iy+#00),#ff
ld hl,#5cc2
ld (hl),#c3
ld hl,tr_dos_check
ld (#5cc3),hl
ld hl,tr_dos_rst8
ex (sp),hl
ld (#5c3d),sp
call #3d13
ex (sp),hl
or a
tr_dos_exit
ld hl,#5cc2
ld (hl),#c9
pop hl
ret
если сделать так:
tr_dos
push hl
call #3d13
pop hl
ret
то все великолепно работает. т.е. собака зарыта в этом вот обработчике ошибок :(
Alex Rider
25.07.2014, 23:25
Я не знаю, что оно делает, но оно явно мешает процессу
:v2_eek:
Оно сбрасывает код ошибки BASIC (ну и TR-DOS его юзает тоже).
Slider, там опрашиваются 7 значений
если они не найдены то программа переходит куда послали иначе значение подменяется
dw #0010,tr_dos_ignore
dw #0d6b,tr_dos_ignore
dw #1a1b,tr_dos_ignore
dw #1f54,tr_dos_scf
dw #028e,tr_dos_xora
dw #031e,tr_dos_scf
dw #0333,tr_dos_keys
---------- Post added at 23:27 ---------- Previous post was at 23:26 ----------
:v2_eek:
Оно сбрасывает код ошибки BASIC (ну и TR-DOS его юзает тоже).
а разве не должно?
обработчик я честно тырил у AlKa
Пошел дальше - убрал только это
ld hl,#5cc2
ld (hl),#c3
ld hl,tr_dos_check
ld (#5cc3),hl
РАБОТАЕТ, БЛИН!!!
Alex Rider
25.07.2014, 23:33
а разве не должно?
Должно. Странно, что его убийство меняет поведение.
Slider, хорошо бы поставить бряк на ret после tr_dos_cont и посмотреть в какой неучтенный адрес SOS пытается попасть TR-DOS. А остальным шаманством ты в той или иной мере отламываешь обработку ошибок.
т.е. беда в этой tr-dos check - процедуре
что с ней не так - хз...
прошу заметить - эту ситуацию я воссоздать не смог
Slider, дай свой эмуль со всеми наворотами
Alex Rider
25.07.2014, 23:38
т.е. беда в этой tr-dos check - процедуре
что с ней не так - хз...
По идее при рабочем образе игра в нее вообще не должна попадать. А у тебя мало того, что попадает, так еще и каким-то странным образом. TR-DOS точно каноничный?
Короче, Jerri, забей! Эмуль мож, и глючный - мало ли... А вот на реале я точно помню что была та же фигня. Только что включил реал - действительно, с первого раза не загрузилось - повисло. Со второго, с третьего - норм. После этого выключал комп, включал - не фига - грузится, как ни в чем ни бывало...
Спишем это на космические бури... :)
Если захочешь для интереса поковыряться - вот тебе ссылка на мой унрил
https://yadi.sk/d/ZzbVsUwtXSi6Z
---------- Post added at 22:49 ---------- Previous post was at 22:48 ----------
TR-DOS точно каноничный?
5.04F - на унриле
6.11Q - на реале
вряд ли их можно назвать "каноничными"... :)
Alex Rider
26.07.2014, 01:26
вряд ли их можно назвать "каноничными"...
Надо их смотреть. Может, они ходят в BASIC даже без ошибок зачем-то по левым адресам. Попробуй в эмуле поставить 5.04T например. Если беда уйдет, значит, дело в них.
Надо их смотреть. Может, они ходят в BASIC даже без ошибок зачем-то по левым адресам. Попробуй в эмуле поставить 5.04T например. Если беда уйдет, значит, дело в них.
Даже если и ходят то перехват все равно идет 7 адресов.
остальные игнорируются...
если только AF...
Мда впервые видел как 2 бага друг друга уравновешивали
Alex Rider
26.07.2014, 10:30
Мда впервые видел как 2 бага друг друга уравновешивали
А можно поподробнее? В чем было дело?
А можно поподробнее? В чем было дело?
смотри выделенное
tr_dos_check
ex (sp),hl
push de,af,bc
exx
push hl,de,bc
ld (tr_dos_sp),sp
ld hl,-28
add hl,sp
ld sp,hl
ld de,tr_dos_tbl
ex de,hl
ld bc,28
ldir
exx
ex de,hl
ld b,7
tr_dos_ch0
pop hl
or a
sbc hl,de
pop hl
jr z,tr_dos_ch1
djnz tr_dos_ch0
ld hl,tr_dos_cont
tr_dos_ch1
ld sp,$
tr_dos_sp equ $-2
;tr_dos_ch1
exx
pop bc,de,hl
exx
pop bc,af
jp (hl)
tr_dos_tbl
dw #0010,tr_dos_ignore
dw #0d6b,tr_dos_ignore
dw #1a1b,tr_dos_ignore
dw #1f54,tr_dos_scf
dw #028e,tr_dos_xora
dw #031e,tr_dos_scf
dw #0333,tr_dos_keys
tr_dos_cont
ex de,hl
pop de
ex (sp),hl
ret
tr_dos_ignore
pop de
pop hl
ret
tr_dos_xora
pop de
pop hl
xor a
ret
tr_dos_scf
pop de
pop hl
scf
ret
tr_dos_keys
pop de
pop hl
ld a,"R"
ret
Alex Rider
26.07.2014, 16:53
Пока ниасилил :v2_dizzy_vodka: :v2_dizzy_sleep2:Потом буду здрав - соображу. :v2_dizzy_indy:
https://pbs.twimg.com/media/B3H7rS3IQAAsFrH.jpg (https://twitter.com/BenwayRW/status/536486567821725696)
Shadow Maker
23.11.2014, 16:29
Круть :) А у тебя есть бесплатная кассета как автору?
Shadow Maker, пока нет... но обещали :)
Shadow Maker
23.11.2014, 20:33
Интересно как ретроворксы печатают прямо на кассеты принты... Или это наклейки все же?
Интересно как ретроворксы печатают прямо на кассеты принты...
это называется imprinting
http://www.atozaudio.com/html/cassetteprint.html
Shadow Maker
23.11.2014, 22:15
Ну я думал они кустарно делают. На спецоборудовании-то понятно.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot