Originally posted by rumata at forum.romov.net 15.07.2005 17:47Эта проблема уже обсуждалась, правда в другом разделе. Дествительно, при попытке прохожения в эмуляторе посе первого боса вместо следующего уровня выдается сообщение:
O.K THATS ALL THE THE LEVELS OF PUGGSY
YOUR ALLOWED TO PLAY
NOW GO AND PLAY A CARTRIDGE VERSION OF
THE GAME INSTEAD OF THIS SILLY COPY
UNTIL THEN.......BYE
TRAVELLERS TALES 93
Если использовать патч-код, предложенный GManiac'ом (04B5D4:600E), то проявляется другой текст:
WELL DONE!
YOU HAVE COMPLETED ALL 51 LEVELS!
BUT ARE YOU GOOD AT MATHS?
И в том, и в другом случае далее игра сбрасывается на начало.
Использовались:
Puggsy (U) [!] и Gens 2.11
Originally posted by GManiac at forum.romov.net 16.07.2005 15:43Да, с патч-кодом я поторопился. Просто прошёл все Junior-уровни, мне выдали сообщение:
YOU HAVE COMPLETED THE JUNIOR LEVELS
И я решил, что всё верно
Скоро скажу нормальные исправления.
Вроде всё исправил. Нужны эти три патч-кода:
000542:600A
029982:601C
04B5D4:600EВот отдельные куски кода:
Код:
00000526 41F9 001FD4BD LEA $001FD4BD,A0
0000052C 41E8 2B67 LEA $2B67(A0),A0
00000530 30BC 2222 MOVE.W #$2222,(A0)
00000534 0C50 2222 CMP.W #$2222,(A0)
00000538 6614 BNE $0000054E
0000053A 30BC 4444 MOVE.W #$4444,(A0)
0000053E 0C50 4444 CMP.W #$4444,(A0)
00000542 660A BNE $0000054E
00000544 4EB9 0004B4DA JSR $0004B4DA
00029966 41F9 001FC3E5 LEA $001FC3E5,A0
0002996C 41E8 3C3F LEA $3C3F(A0),A0
00029970 30BC 4231 MOVE.W #$4231,(A0)
00029974 0C50 4231 CMP.W #$4231,(A0)
00029978 6626 BNE $000299A0
0002997A 30BC 1234 MOVE.W #$1234,(A0)
0002997E 0C50 1234 CMP.W #$1234,(A0)
00029982 661C BNE $000299A0
00029984 0C79 0000 FFFF04A4 CMP.W #$0000,$FFFF04A4
0002998C 6612 BNE $000299A0
0002998E 0C79 003A FFFF0452 CMP.W #$003A,$FFFF0452
00029996 6C08 BGE $000299A0
00029998 33FC 0005 FFFF0722 MOVE.W #$0005,$FFFF0722
000299A0 4CDF 7FFF MOVEM.L (A7)+,D0-D7/A0-A6
000299A4 4E73 RTE
000299A6 3E3C 0006 MOVE.W #$0006,D7
000299AA 4E73 RTE
0004B5B8 41F9 001FCFEB LEA $001FCFEB,A0
0004B5BE 41E8 3039 LEA $3039(A0),A0
0004B5C2 30BC 4231 MOVE.W #$4231,(A0)
0004B5C6 0C50 4231 CMP.W #$4231,(A0)
0004B5CA 6618 BNE $0004B5E4
0004B5CC 30BC 1234 MOVE.W #$1234,(A0)
0004B5D0 0C50 1234 CMP.W #$1234,(A0)
0004B5D4 660E BNE $0004B5E4
0004B5D6 4EB9 0004B7F4 JSR $0004B7F4
Во всех кусках значение A0 становится 200024, туда записывается что-то и проверяется, действительно ли записались эти значения. Если да, игра начинает свои выкрутасы. Насколько я знаю, область $200000 - это SRAM. Действительно, эмуль создаёт srm-файл на 64 байта и по адресу $24 записывает одно из этих значений.
Если хотите, чтобы srm не создавался, используйте эти патч-коды:
Код:
000526:6026
029966:6038
04B5B8:602A
Кстати, там есть один секретный пассворд. Пассворд состоит из 27 символов, каждый символ принимает значения от 0 до 7. То есть его можно закодировать 3 битами, итого на весь пассворд приходится 27*3=81 бит. Из них некоторые биты не учитываются вообще (обозначены звёздочкой), даже для генерируемых паролей.
В битовой записи секретный пассворд выглядит так:
Код:
0*1 *10 011 111 110 101 *00 100 100
001 111 *11 00* 11* 1** 101 011 *11
100 *0* 1*1 *1* *11 111 111 *11 10*
Например, если вместо всех звёздочек подставить нули, получится
123 765 044
173 064 533
405 237 734
А если единицы, то
363 765 444
177 177 537
457 777 775
Пароль делает вид, что не работает, и обнуляет строки ввода, но на самом деле открывает большую часть уровней.
ПропущеноOriginally posted by rumata at forum.romov.net 28.07.2005 18:44Что бы закрыть вопрос окончательно:
В KEGA Fusion можно поступить проще (как оказалось):
Oprioms -> Set Config -> Genesis -> Disable SRAM
Но если бы не GManiac, мне бы это и в голову не пришло...
ПропущеноOriginally posted by GManiac at forum.romov.net 07.02.2006 00:55http://gens.consolemul.com/cgi-bin/ikon ... ;f=4;t=843Пропущено