· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HEAP —› Крис, это DEN, ай нид хелп :)

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Июн 12, 2004 22:58:46

Скачал я DOSBox. Дзенская прога)). Вот только несколько вопросов есть. О файле dosbox.conf.
Группа cpu.
Первый параметр, core, может быть normal, full и dynamic. В чем разница между ними?
Второй параметр, cycles.
[q]Amount of instructions dosbox tries to emulate each millisecond.[/q] – Количество инструкций, которое dosbox пытается эмулировать каждую миллисекунду. Насколько я понял это скорость. Вот только как узнать, какое максимальное для моего компа может быть это число? DOSBox может выяснить это?

Вот, что у меня пошло:

Alone in the dark.
Alone in the dark 2.
Alone in the dark 3.
Another world.
CRB.
Dungeon master.
Elite.
Elite 2: frontier.
F1GP.


Вот, что не пошло:
The elder scrolls: Arena :( :( :( :( А ТАК ХОТЕЛОСЬ!!! :( :(
Impulse tracker пошел, но задетектить смог только гуся, а в итах удобнее все же с бластером работать. Да и со шрифтами там возникла проблемма.
Не пошел эмулятор ZX Spectrum. (эмулятор для эмулятора! :-) )

У меня с каких-то незапамятных времен сохранилась демо-версия “TES: Arena”. Так вот, самое интересное то, что демо версия идет, а полная – нет. Демо-версию я думаю сейчас уже хрен где найдешь, а полная валяется на www.oldgames.ru. Я пробовал менять типы core, но ничего не получилось((. Можно ли что-нибудь еще попробовать?

PS: Какие еще эмуляторы есть хорошие?


Дата: Июн 12, 2004 23:24:21

_DEN_
Вот только как узнать, какое максимальное для моего компа может быть это число? DOSBox может выяснить это?

Лично я устанавливал это экспериментальным путём, пока World of Xeen не начал работать с устраивающим меня качеством :).


Дата: Июн 13, 2004 06:40:53

> Группа cpu.
> Первый параметр, core, может быть normal, full и dynamic. В чем разница между ними?
выбор модуля эмуляции. динамический самый быстрый, но в нем еще много багов и под него мало, что идет.

> Вот только как узнать, какое максимальное для моего компа может быть это число? DOSBox может выяснить это?
никак. сначала с ростом кол-ва циколов, скорость эмуляции увеличивается, но достигув пределена начинает падать, т.к. ЦП задыхается от перегрузки. подбирается экспериментально. еще можно fps попробовать уменьшить.


> Вот, что не пошло:
> The elder scrolls: Arena
"не пошло" это как? зависает? падает? отваливается с ошибкой?
сорцы ведь есть, встренный отладчик тоже. лично я пару блок в динамическом эмуляторе нашел и ufo стало падать раз в пять реже, но еще падает ;(( и хуже всего, что нестабильно, затрудняя тем самым отладку ;((

> :( :( :( :( А ТАК ХОТЕЛОСЬ!!! :( :(
так поиграйся с режимами, потрассируй код...
я уже столкулся с парой прог, которые используют недокументированные возможности железа, которые dos box не эмулит. надо бы их прикрутить, да все руки не доходят. тем более, что сейчас у меня и на любимого алладина времени не хватает ;(

> Impulse tracker пошел, но задетектить смог только гуся,
ну так выруби бластер ;)
хотя лично у меня проблем не было, так что скорее всего надо крутить сам тракер.

>Да и со шрифтами там возникла проблемма.
со шрифтами - это может, т.к. сама Вынь не позволяет их переустанавливать и надо переключаться на полноэкранный режим.

> Не пошел эмулятор ZX Spectrum. (эмулятор для эмулятора! :-) )
ну наверное ему зверски защищенный режим требуется ;)
это dos box не эмулит

> www.oldgames.ru. Я пробовал менять типы core, но ничего
> не получилось((. Можно ли что-нибудь еще попробовать?
поподробнее на счет "не получилось".
какие симпотмы? а то: доктор, поставьте диагноз, у меня проблемы ;)

> PS: Какие еще эмуляторы есть хорошие?
а это уже зависит от критериев "хорошести".
лично меня интересует в первую очередь наличие сорцов и встроенного дебагера


Дата: Июн 13, 2004 17:25:23

Сорцы я пока не скачал. У меня инет плохой :(
Я что-то не совсем понял по сигнатурке, на чем о написан. Но раз уж он импортирует msvcrt.dll то я думаю это все же Visual C++ :)

> Вот, что не пошло:
> The elder scrolls: Arena
"не пошло" это как? зависает? падает? отваливается с ошибкой?

a.exe пускает игру без звука и музыки. arena.bat формируется install.exe, и просто запускает a.exe с параметрами имени драйверов звука и музыки. Так что я думаю, что для начала надо добиться запуска a.exe без параметров. У меня a.exe просто виснет. Правда, вроде как успевает в графический режим перейти. А дальше черный экран. При этом DOSBox продолжает усиленно работать. Это видно из TaskManager-а. Сначала я думал, что он просто долго грузится, но прождав 15 минут я так ничего и не увидел, в то время как демо-версия пускается без проблемм.

> Impulse tracker пошел, но задетектить смог только гуся,
ну так выруби бластер ;)
хотя лично у меня проблем не было, так что скорее всего надо крутить сам тракер.

Бластер включен, гусь включен = детектится гусь.
Бластер выключен, гусь включен = детектится гусь.
Бластер включен, гусь выключен = детектится Soundblaster Pro, а хотелось бы SB 16, потому как Pro не умеет юзать 32-х битную интерполяцию :(

>Да и со шрифтами там возникла проблемма.
со шрифтами - это может, т.к. сама Вынь не позволяет их переустанавливать и надо переключаться на полноэкранный режим.

И в оконном, и в полноэкранном одна фигня - все шрифты стандартные, а там вся графика построена на игре со шрифтами.

Про "не получилось". Виснет у меня Arena и все. Что тут не сделай. Сначала я подумал, что возможно проблемма в том, что a.exe pklite упакован (демоверсия не упакована). Распаковал 170k -> 340k, но не помогло :(
При отключении EMS арена говорит, что ей не хватает памяти и корректно выходит. Иначе, как я уже и сказал, входит в режим 320x200x8 и виснет.

Вообще надо попробовать написать несколько тестов для dos-эмуляторов. Скажим, переход в защищенный режим и все сопутствующие извращения, правильно ли он себя ведет в т.н. "нереальном" режиме, и т.д.

Я еще посмотрю идой эту арену, может какие мысли появятся...

А на данный момент я буду считать эмулятор хорошим, если в нем без проблем пойдет Arena, с музыкой и звуком :)


Дата: Июн 13, 2004 17:58:05

> Сорцы я пока не скачал. У меня инет плохой :(
сорцы там небольшые, а без них еще хуже ;(
в сорцах документация и вообще весь код с комментариями

> Я что-то не совсем понял по сигнатурке, на чем о
да, на Cи++, копилиться MS VC

> a.exe пускает игру без звука и музыки. arena.bat
попробуй вырубить бастер и гусь, оставив адлиб, ну или поиграйся с настойками бластера. а так... смотри дебагером где ласты. много проблем связано с тем, что некоторые проги детектят присутствие бластера всякими дикими способами, которые не эмулируются...

> формируется install.exe, и просто запускает a.exe с
> параметрами имени драйверов звука и музыки. Так что я
ну с музыкой дело поправимое.
драйвера обычно там стандартные из нескольких девелоперских наборов, я еще с ними во времена ms-dos на настоящем бластере намучался. в общем, отдираешь драйвер от проги, если он в нее вживлен и замещаешь аналогичым драйвером, выдарнной из другой игрушки, который гарантированно работает...

> А дальше черный экран. При этом DOSBox продолжает
> усиленно работать.
посмотреть бы какой код он выполняет... может он просто записал чего-то в какой-то порт и ждет ответа? дебегер позволяет сказать что. останется только подправить исходники.

> Бластер включен, гусь выключен = детектится
> Soundblaster Pro, а хотелось бы SB 16, потому как Pro не
> умеет юзать 32-х битную интерполяцию :(
dos box не умеет ее делать тоже, это все-таки эмулятор бластера, а не просто виртуализатор портов ;)

> И в оконном, и в полноэкранном одна фигня - все шрифты
> стандартные, а там вся графика построена на игре со
> шрифтами.
не знаю, не сталкивался... опять-таки надо ковыряться в дебеггере. значит, программа каким-то извращенным образом шрифты меняет ;)

> Про "не получилось". Виснет у меня Arena и все. Что тут
> не сделай.
блин. "виснет" это когда эмуль дохнет, а так можно вызвать дебаггер и увидеть _где_ именно она виснет...

> Сначала я подумал, что возможно проблемма в том, что
> a.exe pklite упакован (демоверсия не упакована).
не, это не влияет

> Вообще надо попробовать написать несколько тестов для dos-эмуляторов.
тесты - дело доброе! они бы действительно помогли...

> Я еще посмотрю идой эту арену, может какие мысли появятся...
ИДОЙ - наряд ли. лучше дебагом. встроенным.

> А на данный момент я буду считать эмулятор хорошим,
> если в нем без проблем пойдет Arena, с музыкой и звуком :)
понятно. а ты поищи на сайте информацию - там вроде бы длиииннннный список игр и указания как что лечится. может эта проблема уже решена или есть какой падч.


Дата: Июн 13, 2004 18:23:54

Глянул я все же арену идой. Всмысле a.exe. Игра вообще 1993-го года. Некие мысли...
Ида не нашла ни lmsw, ни smsw, ни прямого обращения к cr0 через mov, хотя уже не помню, был ли у нас cr0 11 лет назад? :) Каким же она тогда образом в защищенный режим выходит? (дос4гвоздя она не юзает)
Далее, многие функции получают параметры из стека (пока не понял - в прямом или в обратном), и сами стек не выравнивают, это делается после вызова. На сколько я понимаю это очень похоже на cdecl, тоесть возможно Arena на сях написана. Вот только на каких... WatCom?

Да, если a.exe запускать без параметров, то она ничего не детектит. Поидее проблемма не в звуке. (Демо версия ж работает и со звуком и с музыкой!).
Вот, что Arena юзает (один из драйверов):

sbdig.adv

00000000: 2D 00 43 6F-70 79 72 69-67 68 74 20-28 43 29 20 - Copyright (C)
00000010: 31 39 39 31-2C 31 39 39-32 20 4D 69-6C 65 73 20 1991,1992 Miles
00000020: 44 65 73 69-67 6E 2C 20-49 6E 63 2E-1A 64 00 6B Design, Inc....
00000030: 0B 65 00 26-0C 66 00 8B-0D 68 00 89-0B 7B 00 56 ...............
00000040: 10 7D 00 10-11 7E 00 7D-11 7F 00 C8-11 80 00 FC ...............
00000050: 11 7C 00 23-12 81 00 EF-0B 82 00 0E-0C 83 00 B8 ...............
00000060: 0B 84 00 D7-0B 78 00 5E-0E 79 00 C9-0F 7A 00 38 ...............
00000070: 10 FF FF C8-00 02 00 56-4F 43 00 8B-00 00 00 20 ...............
00000080: 02 07 00 01-00 FF FF FF-FF 00 00 43-72 65 61 74 ........ Creat
00000090: 69 76 65 20-4C 61 62 73-20 53 6F 75-6E 64 20 42 ive Labs Sound B
000000A0: 6C 61 73 74-65 72 28 54-4D 29 20 44-69 67 69 74 laster(TM) Digit
000000B0: 61 6C 20 53-6F 75 6E 64-00 4D 65 64-69 61 20 56 al Sound Media V
000000C0: 69 73 69 6F-6E 20 54 68-75 6E 64 65-72 62 6F 61 ision Thunderboa
000000D0: 72 64 28 54-4D 29 20 44-69 67 69 74-61 6C 20 53 rd(TM) Digital S
000000E0: 6F 75 6E 64-00 00 7F 00-40 00 14 75-77 17 14 74 ound ..........
000000F0: 76 16 07 03-01 02 FF 0B-09 0A 00 00-00 00 00 00 ................

Это шапка драйвера. Можешь об этом что-нибудь сказать?

Вообще действительно, попробую-ка я качнуть исходники, возможно это прояснит ситуацию.


Дата: Июн 13, 2004 18:44:14

> Каким же она тогда образом в защищенный режим выходит? (дос4гвоздя она не юзает)
dos4gw тогда был не очень полулярен. а разных расширителей существовало много. а в прот моду наверное входит через bios, если она вообще туда входит...

> Далее, многие функции получают параметры из стека (пока не понял - в прямом или в обратном),
из дизассемлерного листинга узнать невозможно

> и сами стек не выравнивают, это делается после вызова.
> На сколько я понимаю это очень похоже на cdecl
PASCAL или stdcall

> тоесть возможно Arena на сях написана. Вот только на каких... WatCom?
а есть же куча scan-пешков (в том числе и на васме) они знают много компиляторов, есть шанс, что опознают. ну еще поискать копирайты самого компилятора. а ИДА ничего не распознала? попробуй ручную загрузку сигнатур, т.е. она опеределяет компилер по стартовому коду, а если он изменен, то даже и не пытается ничего предпринимать...
ИМХО должна она его опознать, есть только это не асм, что тоже вряд ли. может трубо паскаль? 93 год - пик его популярности...

> Вот, что Arena юзает (один из драйверов):
> sbdig.adv
> Это шапка драйвера. Можешь об этом что-нибудь сказать?
до боли знакомые сердцу пнентаты ;)
отыщи диски типа "классик фонд" с коллекцией игрушек, там таких драйверов - уйма, можно вполне найти работающий.

> Вообще действительно, попробую-ка я качнуть исходники,
> возможно это прояснит ситуацию.
конечно, с исходниками все намного проще.


Дата: Июн 13, 2004 19:12:40

Вот только качнуть 500 кило по моей линии - задача не из легких... На данный момент 67% :)

Arena стопудово на сях написана. По-моему ты что-то напутал: stdcall вырвнивает за собой стек, а cdecl нет. На сях, потому что я встретил строчку вида: "Condition: %s, Wight: %d". И таких много.

А что скажешь о такой строке, выдранной из иды:
seg032:8896 aEmmxxxx0 db 'EMMXXXX0',0
Я уже плохо помню... Что там у нас с EMM, и как и где он инится? В config.sys DEVICE=xxxxx ?

И вот еще что: Arena юзает временные файлы. Не может ли тут глюка возникать? Куда dosbox по дефолту пишет, если эмулируемая прога пишет на винт?


Дата: Июн 13, 2004 19:33:44

> Вот только качнуть 500 кило по моей линии - задача не из легких... На данный момент 67% :)
это еще ничего. у меня своем недавно иннет был еще хуже. я вообще радовался, когда хоть что-то качалось, хотя бы по 1 байту в секунду...

> Arena стопудово на сях написана. По-моему ты что-то напутал: stdcall вырвнивает за собой стек,
"выравнивает" это выталивает прараметры из стека?
т.е. ret n? или потом дают ADD [E]SP,n? если первое, то PASCAL/stdcall, если второе - то cdecl или его разновидность fast call. да, я перепутал. сейчас в глубокой отдадке и мозги неадекватно работают...

> На сях, потому что я встретил строчку вида: "Condition: %s, Wight: %d". И таких много.
да, для Си-библиотек это характерно.

> А что скажешь о такой строке, выдранной из иды:
seg032:8896 aEmmxxxx0 db 'EMMXXXX0',0
что программа обращается к драйвему EMM (ну например qEMM) за расширенной памятью.

> Я уже плохо помню... Что там у нас с EMM, и как и где он инится? В config.sys DEVICE=xxxxx ?
dos box эмулит его самостоятельно без config.sys

> И вот еще что: Arena юзает временные файлы. Не может ли тут глюка возникать?
может, т.к. там нужно явно монтировать диски командой MOUNT

> Куда dosbox по дефолту пишет, если эмулируемая прога пишет на винт?
так же как и в DOS'е... попробуй смонитировать весь диск целиком, чтобы там была папка TEMP. некоторые еще и переменной окружения TEMP требуют...


Дата: Июн 13, 2004 20:02:22 · Поправил: _DEN_

По поводу конвенций.
если add sp,n происходит сразу перед retn, то это pascal/stdcall. В a.exe add sp,n происходит после вызова, т.е.

push param_a
push param_b
call some_proc
add sp,4


На сколько я понимаю это cdecl/fastcall.

По поводу временных файлов надо будет поэксперементировать...

Скачал я сорцы. Почему там нехватает SDL.h? Где ее взять?


Дата: Июн 13, 2004 21:02:11

> На сколько я понимаю это cdecl/fastcall.
ага

> Скачал я сорцы. Почему там нехватает SDL.h?
потому что это внешний пакет ;)

> Где ее взять?
а кто будет манулы по компиляции читать?

Things needed for compilation.

SDL
The Simple DirectMedia Library available at http://www.libsdl.org

Curses
(optional)
If you want to enable the debugger you need a curses library.
ncurses should be installed on just about every unix distro.
For win32 get pdcurses at http://pdcurses.sourceforge.net

Libpng
Needed for the screenshots. (optional)
For win32 get libpng from http://www.sourceforge.net/projects/gnuwin32

Zlib
Needed by libpng. (optional)
For win32 get libz (rename to zlib) from http://www.sourceforge.net/projects/gnuwin32

SDL_Net
For modem support(optional). Get it from http://www.libsdl.org

ALSA_Headers
(optional)
???????? for Alsa support under linux

If you want compile from the CVS under a unix system, you'll also need
automake (>=1.6), autoconf(>=2.50). Should be available at http://www.gnu.org

For building on unix systems.
If you are building from the cvs run ./autogen.sh first before doing the following.

1. ./configure
2. make

In step 1 you could add the following switches:
--enable-debug
enables the internal debugger. --enable-debug=heavy enables even more
debug options. Dosbox should then be run from a xterm and when the sdl-
window is active press - on numeric keyboard to enter the debugger.

--disable-fpu
Will disable the emulated fpu. Although the fpu emulation hasn't finished and isn't
entirely accurate it's advised to leave it on.

--enable-core-inline
enables some memory increasing inlines. This greatly increases compiletime for maybe a increase
in speed.

Check the src subdir for the binary.



Compiling on FreeBSD might be a problem since SDL has no joystick support there.
To get around this edit sdlmain.cpp to enable some #define.
Let's hope someday the sdl people will just report 0 joysticks in freebsd or get it working some other way :)


Build instructions for VC++6
Don't use VC++ 6:it creates faulty code in core_normal.cpp


Дата: Июн 14, 2004 03:19:12

Спасибо за ссылочки...
Но чувствую всю эту радость придется из клубака сливать - из дома не реально :(

И еще вопросик :) Я какой-то мега-пак слил с dosbox.sourceforge.net, dosbox_0.61-2_i386.deb называется. Что это за расширение такое? Первый раз такой архиватор вижу...


Дата: Июн 14, 2004 14:53:49

_DEN_
Странное ты что-то намутил. Я арену пускал под DosBox-ом, нормально запускается. Да и наверное не только я, раз уж его на elderscrolls.com рекомендовали пользовать.

Вот только потом тормозит сильно - мне с количеством циклов экспериментировать было лень, я плюнул и пустил ее из-под w98se... уже прошел и забыл.

kaspersky
А там есть встроенный отладчик? Как-то я его проморгал :-\
Или существует несколько разных DosBox-ов?


Дата: Июн 14, 2004 15:43:40

> А там есть встроенный отладчик?
есть, хоть и не шибко навороченный, но вполне функциональный

> Как-то я его проморгал :-\
> Или существует несколько разных DosBox-ов?
там можно компилировать с поддержкой отладчика и без


Дата: Июн 14, 2004 15:58:52

> Спасибо за ссылочки...
там еще есть frontend'ы - визуальные конфигураторы dos-box'а. попробуй, может с ними удастья...
http://members.home.nl/mabus
http://www.pcgamester.co.uk/
http://www.ingoknito.de/produkte/dbfrontend/

> И еще вопросик :) Я какой-то мега-пак слил с > dosbox.sourceforge.net, dosbox_0.61-2_i386.deb называется.
> Что это за расширение такое? Первый раз такой архиватор вижу...
это не архиватор... это угораздило же тебя слить дебияновский пакгач. теперь ставь линух ;) большим человеком будешь. а для винды инстал вот:http://prdownloads.sourceforge.net/dosbox/DOSBox0.61-win32-install er.exe?download
а сорцы вот: http://prdownloads.sourceforge.net/dosbox/dosbox-0.61.tar.gz?download

>> Вот только потом тормозит сильно - мне с количеством
>> циклов экспериментировать было лень,
>> я плюнул и пустил ее из-под w98se... уже прошел и забыл.
попробуй включи динамический режим эмуляции, если он только пойдет (там багов много), то тормозить ничего не будет

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057