Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

CTPAX-X _ Программы _ No-CD для Little Bill Thinks Big

Автор: Siberian GRemlin Nov 4 2018, 13:14

Игра хранит большую часть своих файлов на диске, что не удобно. В реестре прописывает пути к папке и букву диска. https://archive.org/details/LittleBillThinksBig_201711

Изменение значений в реестре пользы не приносит. Аналогично и с изменением путей (удаление двоеточия) и копирование файлов в

CODE
[папку с игрой]\[буква диска из реестра]\

Игра почему-то начинает вылетать при обращении к THE_ROOM.cxt. Я что-то упустил?


Автор: -=CHE@TER=- Nov 4 2018, 23:21

Я долго ломал мозг пользуясь вот этой ссылкой: http://fileformats.archiveteam.org/wiki/Lingo_bytecode.

1) Копируешь всё с CD диска в каталог.
2) Через subst Z: <каталог> создаёшь виртуальный диск.
3) Меняешь в реестре букву диска на Z.
4) После этого патчишь:
Joy.cxt
0001D046: 0F 0E
0001D088: 10 0E
Теперь оно будет работать без CD. Проверка отломана не очень красиво, ибо она меняет код "если CD-ROM" на "если не CD-ROM", а также "свободного места на диске больше нуля" на "свободного места не ноль".

Хочешь чтобы работало без проверки CD и без виртуального диска тупо из каталога? Кури доки по ссылке выше и ковыряй байт-код. Меня откровенно ломает в этом рыться.

CODE
4C 05; local
44 0E; push local literal to stack (0E="type")
43 02; arg(2)
57 B1; call
44 0F; push local literal to stack (0F="CD-ROM")
0F  ; a = b
95 00 13 (jmp1 if false)

<...>

4C 06; local var
44 10; push local literal to stack (10="size")
43 02; arg(2)
57 B1; call
03  ; push 0
10  ; a > b (size > 0)
95 00 41; jmp2 if false


Индексы строк проверки, если, вдруг, понадобятся (ищи по 44 XX, где XX номер литерала для складывания на стек):
CODE
00=Projector
01=You need to insert the Little Bill Thinks BIG CD-ROM to play!
02=Windows
03=DirectSound
04=windows
05=Animal Joy
06=SOFTWARE\Scholastic Inc\Little Bill Things BIG
07=CDLet
08=Error
09=HKEY_LOCAL_MACHINE
0A=:\DATA\LB_MAIN.DXR
0B=:\DATA\CASTS
0C=:\DATA\VIDS
0D=:\DATA\TALKING
0E=type
0F=CD-ROM
10=size
11=FileXtra4
12=Little Bill Thinks Big:DATA:LB_MAIN.DXR
13=Little Bill Thinks Big:DATA:CASTS
14=Little Bill Thinks Big:DATA:VIDS
15=Little Bill Thinks Big:DATA:TALKING