OldComp.cz
http://oldcomp.cz/

Deimos
http://oldcomp.cz/viewtopic.php?f=23&t=1142
Stránka 14

Autor:  Solaris104 [ 02.03.2014, 10:49 ]
Předmět příspěvku:  Deimos

Deimos je moc pěkná hra na Atari. Bohužel se mi nepodařilo ji dohrát, což mě hrozně irituje. Dostanu se až ke kalichu, ale nejde ho sebrat. Fandal z kódu vyčetl, že se musí splnit ještě nějaká podmínka. Bohužel originální přebal hry nic neprozradil.
[youtube]https://www.youtube.com/watch?v=PG4I-yJz8LM[/youtube]
Mapa hry je zde:
http://mapy.atari8.info/deimos.php
Různé verze hry Deimos zde:
http://www.atarionline.pl/v01/index.php ... mos#Deimos
Ve verzi Deimos (v3).xex se lze podívat na závěrečnou gratulaci.

Autor:  Poison [ 04.03.2014, 09:08 ]
Předmět příspěvku:  Re: Deimos

sice ti nepomůžu, ale v devadesátejch jsme s kámošem tuhle hru málem dohrály taky:) Kreslili jsme si i vlastní mapu, ale ten kalich sme nesebrali taky. To jen, že vyjadřuji spoluúčast:)

Autor:  ctirad [ 04.03.2014, 15:34 ]
Předmět příspěvku:  Re: Deimos

Mě tam zaujala hudba. Jsou tam minimálně dva samplovací kanály a to i během hry, což nebývá zvykem. Navíc ty samply zní nadstandardně čistě. To je nějaký standardní formát/editor nebo něco napsaného na míru?

Autor:  PG [ 19.03.2014, 13:29 ]
Předmět příspěvku:  Re: Deimos

ctirad píše:
Mě tam zaujala hudba. Jsou tam minimálně dva samplovací kanály a to i během hry, což nebývá zvykem. Navíc ty samply zní nadstandardně čistě. To je nějaký standardní formát/editor nebo něco napsaného na míru?

To nejsou samply ani v jednom případě. To jenom POKEY umí některé fakt pěkné bicí :-) Podobně jsou vytvořené i ve hře Rebound, je na ně ale potřeba 2 kanály.

Autor:  ctirad [ 19.03.2014, 13:55 ]
Předmět příspěvku:  Re: Deimos

Fakt? Jinde se zase domnívali, že jde o MPT tracker, který má 2 pokey hlasy a zbylé dva na samply. A kormě toho jestli to zabere dva kanály, tak já tam slyším všechny 4, jsou tam bicí, bas, rozložený akord a hlavní melodie. Schválně si to stáhnu z ASMA a kouknu se jestli jsou tam nějaké samply.

Autor:  Lukaso [ 27.11.2016, 16:31 ]
Předmět příspěvku:  Re: Deimos

solaris104 píše:
Deimos je moc pěkná hra na Atari. Bohužel se mi nepodařilo ji dohrát, což mě hrozně irituje. Dostanu se až ke kalichu, ale nejde ho sebrat. Fandal z kódu vyčetl, že se musí splnit ještě nějaká podmínka. Bohužel originální přebal hry nic neprozradil.

Hru jsem projel k poháru v několika verzích a nikde nejde sebrat. Mě napadlo, že podmínka pro sebrání poháru by mohla být nějakým způsobem provázaná s počítačem na začátku hry, ten jediný mi tam nesedí - prostředí středověku, hrad, meče, lebky a najednou jediný počítač v jediné lokaci? Divné, viz obrázek s místem kde se nachází:

Obrázek

Zkusím bádat dál.

Autor:  Lukaso [ 29.11.2016, 16:23 ]
Předmět příspěvku:  Re: Deimos

Tak jsem hru několikrát prošel a na to co kde případně aktivovat pro sebrání poháru jsem bohužel nepřišel.
Povrtal jsem se tedy trošku v kódu hry a zjistil, že skok na obrazovku gratulace se nachází na adrese 82DF, odskokem JMP $BA0F. Tento odskok je vázán na proměnnou $EF, jejíž hodnota se nachází na adrese 00EF. Pokud je tam vyplněna jiná hodnota než 0 tak se obrazovka gratulace spustí. Pro otestování jsem vyměnil proměnnou $EF za proměnnou $EC, která slouží pro životy a po jejich vyčerpání se skutečně dostaneme na obrazovku gratulace. Stejně tak v případě výměny odskoku $BA00 (odskok na obrazovku game over) za $BA0F.

Co však je potřeba ve hře udělat pro změnu proměnné $EF jsem nezjistil. S proměnnou by měly hýbat příkazy STA $EF na adresách D8AB a DD44 ale jakým způsobem netuším, tak dobrý programátor nejsem, avšak pro takového Fandala by to mohla být hračka. :D

Zkusím nad tím ještě bádat, z laického pohledu mě napadá, že se někde ve hře asi nachází nějaké značky či symboly, které budou s danou aktivací proměnné asi souviset. Usuzuji z názvu proměnné, která má "přídomek" (nebo jak se tomu nadává) $EF ;ESIGN. Obdobný přídomek má i proměnná $EE ;NSIGN ale její funkci jsem zatím neidentifikoval. Jak říkám, v oblasti programovacích jazyků jsem hodně velký laik. ;)

Autor:  rEVERz [ 29.11.2016, 18:23 ]
Předmět příspěvku:  Re: Deimos

Kdysi jsem to pojal jako výzvu a taky bádal. Toto jsem vyhrabal z mého email arc.:
Při detekci kolize z objekty se vybírají vektory z adresy 9773h. Při kolizi s pohárem se skáče na (9773h+52h), cože je
adresa 9837h. Tam se kontroluje obsah adresy D1h a pokud je roven 3 skočí se na gratulaci.
Bohužel jsem nenašel kdy a proč se na D1h ukládá. Jediné na 9652h kde se "ORuje" 2. Ale proč netuším.

Autor:  Lukaso [ 29.11.2016, 19:16 ]
Předmět příspěvku:  Re: Deimos

Ano, podmínku pro možnost sebrání poháru jsem taky už našel, na adrese 9837 je proměnná #$03, jejíž hodnota je odečítána příkazem CMP $D1. To znamená, že je potřeba udělat či sebrat 3 věci, aby se pohár dal sebrat. Podmínku $D1 jsem zatím nedohledal. :(

Pokud proměnnou #$03 nahradíme proměnnou #$00 tak se pohár dá vzít a je tu gratulace. Divná je však jedna věc. Je možné, že to je chyba v kódu hry od samého počátku a nic se dělat/sbírat nemá. Když totiž proměnnou změním na nulu a hru dokončím, po okamžitém startu nové hry se proměnná nevrátí na hodnotu 3, což by logicky měla (jako "splň 3 věci a můžeš sebrat pohár"), ale zůstane na hodnotě 0. Což svým způsobem znamená - dokončím hru kdy seberu pohár po splnění podmínky 3 věcí, začnu novou hru a už můžu pohár sebrat hned bez plnění podmínky 3 věcí. Logicky by se podmínka měla defaultně anulovat stejně jako například v počtech životů apod.

Co se má však sebrat či udělat za 3 věci je mi zatím stále záhadou...

Autor:  Fandal [ 29.11.2016, 19:19 ]
Předmět příspěvku:  Re: Deimos

Tak jsem si právě udělal v rychlosti zdroják od té hry a koukám, že adresa $00D1 se na hodnotu #$03, nutnou k nahození gratulace, dá dostat. Jednou se ORuje #$01 a na jiném místě se ORuje #$02.

Ale jako fakt nemám sílu tu hru procházet, to musí jiní, např. Lukaso.

Já bych začal takto. Pokud máte pozice ze hry uložené v emulátoru, mrkněte na stav při příchodu k poháru, zda je adresa $00D1 alespoň nenulová. V takovém případě se alespoň jednu ze dvou nutných podmínek podařilo splnit. Během hry bych pak přes breakpointy hlídal, zda se program dostal na adresy $940C (ORA #$01) nebo $9652 (ORA #$02), aby se konečně zjistila alespoň jedna z těch nutných podmínek. Pak nás to třeba někam posune.

F.

Autor:  Lukaso [ 29.11.2016, 19:28 ]
Předmět příspěvku:  Re: Deimos

Fandal píše:
Tak jsem si právě udělal v rychlosti zdroják od té hry a koukám, že adresa $00D1 se na hodnotu #$03, nutnou k nahození gratulace, dá dostat. Jednou se ORuje #$01 a na jiném místě se ORuje #$02.

Ale jako fakt nemám sílu tu hru procházet, to musí jiní, např. Lukaso.

Já bych začal takto. Pokud máte pozice ze hry uložené v emulátoru, mrkněte na stav při příchodu k poháru, zda je adresa $00D1 alespoň nenulová. V takovém případě se alespoň jednu ze dvou nutných podmínek podařilo splnit. Během hry bych pak přes breakpointy hlídal, zda se program dostal na adresy $940C (ORA #$01) nebo $9652 (ORA #$02), aby se konečně zjistila alespoň jedna z těch nutných podmínek. Pak nás to třeba někam posune.

F.

Adresa 00D1 po celou dobu hraní až k poháru byla nulová, zkusím hlídat ty dvě adresy přes breaky, snad najdu tu "správnou" obrazovku kde se na ně skáče. Každopádně díky za tip. :)

Autor:  Fandal [ 29.11.2016, 19:45 ]
Předmět příspěvku:  Re: Deimos

Lukaso píše:
Adresa 00D1 po celou dobu hraní až k poháru byla nulová, zkusím hlídat ty dvě adresy přes breaky, snad najdu tu "správnou" obrazovku kde se na ně skáče. Každopádně díky za tip. :)


V případě, že $00D1 je nulová, tak nemá smysl ty dvě adresy hlídat. Je jasné, že se tam kód nikdy nedostal.

Spíš bych hlídal např. $93F4, která předchází ORA #$01.

ORA #$02 je zajímavější. Tam je testuje mrak věcí a mě napadá, jestli to nemá co do činění s tím computerem. Můžete sem někdo plácnout stav emulátoru u toho compu? Nejlépe v Atari800Win PLus 4.0, protože Altirru já nerad.

F.

Autor:  Lukaso [ 29.11.2016, 20:02 ]
Předmět příspěvku:  Re: Deimos

Fandal píše:
V případě, že $00D1 je nulová, tak nemá smysl ty dvě adresy hlídat. Je jasné, že se tam kód nikdy nedostal.

Spíš bych hlídal např. $93F4, která předchází ORA #$01.

ORA #$02 je zajímavější. Tam je testuje mrak věcí a mě napadá, jestli to nemá co do činění s tím computerem. Můžete sem někdo plácnout stav emulátoru u toho compu? Nejlépe v Atari800Win PLus 4.0, protože Altirru já nerad.

F.

Stav kdy jsem se dostal k poháru a pak vrátil ke computeru je zde.

Přílohy:
end2.zip [44.11 KiB]
593 krát

Autor:  Fandal [ 29.11.2016, 20:47 ]
Předmět příspěvku:  Re: Deimos

Tak bohužel s compem to ORA #$02 nesouvisí.

Nyní bych tedy kromě adresy $93F4 testoval též skok na adresu $95FB, což by mělo předcházet tomu ORA #$02.

Plus tu mám další hádanku. V kódu jsem našel jakýsi cheat. Z klávesnice je třeba naklapat "gdzie leziesz?", obrazovka krátce zeleně blikne a adresa $8269 se nahodí na #$01. Význam této akce ovšem nechápu.

F.

Autor:  baktra [ 29.11.2016, 21:04 ]
Předmět příspěvku:  Re: Deimos

Fandal píše:
Tak bohužel s compem to ORA #$02 nesouvisí.

Nyní bych tedy kromě adresy $93F4 testoval též skok na adresu $95FB, což by mělo předcházet tomu ORA #$02.

Plus tu mám další hádanku. V kódu jsem našel jakýsi cheat. Z klávesnice je třeba naklapat "gdzie leziesz?", obrazovka krátce zeleně blikne a adresa $8269 se nahodí na #$01. Význam této akce ovšem nechápu.

F.


Po zadání kódu přestanou ubývat životy - je to tedy heslo na nesmrtelnost.

Stránka 14 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/