Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
Мои игры: [Overload][Removal]
Список игр для ZX-Spectrum: [2015] [2014]
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Товарищи кодеры, помогите разобраться! Решил я значит подредактировать карты обоих левелов в REX, чтобы можно было свободно гулять по комнатам. Но прежде чем начать, хотелось бы понять, как сделать возможным возврат в нулевую комнату? Ведь в игре 0 - это запрет перехода.
char справился с этой проблемой. Он дал какой-то код, но как мне применить этот код к кодовым блокам рекса? Как этим кодом пропатчить те блоки, которые мне нужно? (хочу править русифицированую версию)
Вот несколько цитат с темы про правку карты рекса:
Куплю корпус и материнку от Spectrum +2/+3
либо запрет на вход меняй на любой другой неюзаный, либо нулевой экран перенумеруй....
Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
Мои игры: [Overload][Removal]
Список игр для ZX-Spectrum: [2015] [2014]
rasmer, как поменять запрет на вход с #00 на #FF?
Как перенумеровать нулевой экран? Я нифига не понимаю ))
Просто я подумал, что раз char выложил патч, то этот патч можно как-то применить, а если его нельзя приментить, тогда нафига его выкладывать. Вот я и хочу понять, как применять этот патч или какой-либо другой.
Куплю корпус и материнку от Spectrum +2/+3
ну раз тебе char выложил, то и попроси его применить...
ты здесь спросил как сделать возможным возврат, я тебе объяснил... а как и где менять - это сам ковыряй код игры... почитай капульцевича "как написать игру на асме" и инфоркомовский справочник по машкодам, я думаю через полгода-год найдёшь ответ в них...
Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
Мои игры: [Overload][Removal]
Список игр для ZX-Spectrum: [2015] [2014]
хорошо, набросал патчилку на бейсике, проверяй:
можно патчить что-угодно, в операторах data указывая стартовый адрес, пробел, и дальше - последовательность байт для poke (1 байт = 2 символа в шестнадцатеричном)
Код:10 goto 30 20 rem h= HexToDec(h$) 21 let h=0:let p=1:for L=len h$ to 1 step -1:let k=code h$(L)-48 23 if k>10 then let k=k-7:if k>15 then let k=k-32:if k<0 or k>15 then print "error!":stop 25 let h=k*p+h:let p=p*16:next L: return 30 read a$:if len a$>0 then print inverse 1;" #";a$:let h$=a$(to 4):gosub 20: let adr=h:let a$=a$(6 to):for i=1 to len a$/2:let h$=a$(i*2-1 to i*2):gosub 20:poke adr+i-1,h:print adr+i-1;" ";h:next i:goto 30 1000 data "d0a4 f8" 1010 data "d0b5 f8" 1020 data "d13c f8" 1030 data "d19f fa" 1040 data "B133 ff01ffff" 1050 data "B139 ff0F0200" 1060 data "B13F 0103ffff" ... 1999 data ""
Последний раз редактировалось char; 19.11.2014 в 14:35.
пора открывать тендер "Поможем Новосибу!"
Спасибо! Код бейсика у тебя на высшем уровне
Когда я задавал вопрос, про то как ты изменил запрет на вход, то я неправильно выразился. Я затупил и поэтому не разглядел, что измена запрета входа с 00 на ff это: poke 53412,248/ 53429,248/ 53564,248/ 53663,250. Именно про это я и спрашивал. Я не имел ввиду как ты вышел на эти адреса, понятно, что для этого надо как минимум, фигурально выражаясь, "полгода читать капульцевича" )))
Так бывает, что человек спрашивает одно, а ему отвечают другое, ибо никто не допускает даже мысли, что человек, задавая вопрос, элементарно затупил, или упустил что-то из виду.
P.S. Эту замечательную универсальную патчилку на бейсике я еще не проверял на рексе, но есть опасения, что для бейсика не хватит места, ибо распакованный кодовый блок рекса занимает довольно много места в памяти, бейсик-патчилка тоже не маленькая. Может статься, что в случае с рексом проще поменять значения в дебаггере эмулятора. Посмотрим.
---------- Post added at 19:04 ---------- Previous post was at 18:57 ----------
И по горячим следам у меня еще один вопрос. Как юзать патчилку на бейсике - это понятно. Загружаем патчилку, загружаем блок, запускаем патчилку, она патчит. А как юзать патчилку на асме, которую ты выкладывал? Я правильно понял, что нужно открыть редактор ассемблера, вбить туда код (а скопипастить как-нибудь можно?), потом это всё надо скомпилровать в машинный код, а дальше уже юзать этот код как бейсик-патчилку? Или я что-то напутал?
Куплю корпус и материнку от Spectrum +2/+3
на асме примерно так:
Код:org #4000 ;16384 ; PATCH ld hl,P_DATA patchlp ld e,(hl) inc hl ld d,(hl) inc hl ld a,e or d ret z ;de=#0000=exit ld c,(hl) inc hl ld b,#00 ldir jr patchlp ; P_DATA dw #d0a4 db 1,#f8 dw #d0b5 db 1,#f8 dw #d13c db 1,#f8 dw #d19f db 1,#fa dw #B133 db 4,#ff,#01,#ff,#ff dw #B139 db 4,#ff,#0F,#02,#00 dw #B13F db 4,#01,#03,#ff,#ff dw #B145 db 4,#0f,#04,#ff,#02 ;... dw #0000 ;finish ; P_LEN equ $-PATCH ; for save "mypatch" code 16384,P_LEN
Последний раз редактировалось char; 19.11.2014 в 17:02.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)