12. Prosinec 2017 - 18:47

Autor Téma: Textovka v Basicu na ZX  (Přečteno 6167 krát)

solaris104

  • Plný člen
  • ***
  • Příspěvků: 156
    • Zobrazit profil
Textovka v Basicu na ZX
« kdy: 29. Srpen 2010 - 21:42 »
Chtel bych udelat nejaky remake textovky pro ZX Spectrum z jine platformy. Bohuzel jsem liny a nechce se mi vymyslet a programovat novy engine. Doporucite mi nejakou textovku, ze ktere bych ho mohl pouzit? Mam nejakou predstavu, aby byl relativne rychly a slo pouzivat 3 pismenne zkratky povelu. Predpokladam, ze neni problem tam pridat assemblerovou rutinu pro prehravani AY hudby za behu.

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #1 kdy: 30. Srpen 2010 - 07:43 »
Myslím, že z českých má smysl "vykrást" jen IJ 3 (viz. hra Nemesis 2, On the road).

solaris104

  • Plný člen
  • ***
  • Příspěvků: 156
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #2 kdy: 30. Srpen 2010 - 08:14 »
Tak jsem se dival na Indiana Jonese 3 a jako Basicovy vypis ho nevidim. Prohlizel jsem tap i tzx verzi. Pomuze nekdo?

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #3 kdy: 30. Srpen 2010 - 12:26 »
No, tak se buď můžeš podívat na ty dvě zmíněné hry, které IJ 3 "vykrádají", anebo si to po nahrání ulož jako .sna (to už to bude rozkódované a uložené v paměti jako normální basic).

zxretrosoft

  • Plný člen
  • ***
  • Příspěvků: 231
    • Zobrazit profil
    • zxretrosoft
Re: Textovka v Basicu na ZX
« Odpověď #4 kdy: 19. Říjen 2010 - 11:22 »
Chtel bych udelat nejaky remake textovky pro ZX Spectrum z jine platformy. Bohuzel jsem liny a nechce se mi vymyslet a programovat novy engine. Doporucite mi nejakou textovku, ze ktere bych ho mohl pouzit? Mam nejakou predstavu, aby byl relativne rychly a slo pouzivat 3 pismenne zkratky povelu. Predpokladam, ze neni problem tam pridat assemblerovou rutinu pro prehravani AY hudby za behu.

Já myslím, že enginů je docela dost a jsou použitelné. Pokud jde o tu hudbu z AY, určitě by to šlo, ale chtěl bych upozornit na takové ty běžné, krátké, reklamní songy dneška, které se do textovek naprosto nehodí. Jde totiž o to, že textovku člověk hraje docela dlouho a poslouchat každý 4 minuty hudbu odznova je na nervy a musí se to vypnout. Pak ale taková hudba je škoda práce. Navrhoval bych tedy udělat tuto textovku tak, že by byla přímo pro 128kB, pokud tam má být hudba. Většinu paměti bych vyplnil hudbou - např. tolik muziky jako v nějakém lepším demu. Pak jedině to má smysl  ::)
Jedna stará textovka vydá za desítky dnešních nadutých her.

misticjoe

  • Globální Moderátor
  • Mladší člen
  • *****
  • Příspěvků: 68
  • www.amiga.cz
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #5 kdy: 29. Srpen 2011 - 23:29 »
No napadlo mě - pamatuju si tuším SINBAS - dosovej program, kterej uměl udělat ze SNApshotů spustitelné EXE pod DOSem. Výhoda byla, že pokud hra byla napsaná v BASICu, tak mohla mít ochranu jakou chtěla a SINBAS ji stejně vylistoval.
Občasný programátor textových her, které nikdo nehraje, ale vůbec mi to nevadí :-)

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #6 kdy: 30. Srpen 2011 - 13:01 »
Mylsím, že SINBAS fungoval jenom tehdy, pokud to bylo kompletně v basicu, ne?

adent

  • Nováček
  • *
  • Příspěvků: 5
  • Obskurnější tvůrce her pro ZX Spectrum
    • Zobrazit profil
    • Retročip
Re: Textovka v Basicu na ZX
« Odpověď #7 kdy: 3. Listopad 2011 - 12:07 »
Myslím, že z českých má smysl "vykrást" jen IJ 3 (viz. hra Nemesis 2, On the road).

Já bych k tomu pár slov dodal:

Je to asi dvaadvacet let, co jsem napsal Nemesis 2, už nevím přesně. Možná jen 20. (Bylo mi šestnáct, sedmnáct a byl jsem v plném rozpuku mladické nerozvážnosti - ale o tom někde jinde). Ten "engine" si ale trochu pamatuju, tak jestli dovolíte lehký offtopic:

Textovka (IJ3 i Nemesis 2) je vlastně furt BASIC, stejně jako v těch starších. To, co bylo ve strojáku, byla především rutina na výpis textu (proporcionálním fontem a s vyrovnáváním řádků). Tu napsal, jestli se nemýlím, Mirek Fídler. Druhá věc, o kterou se stroják staral, bylo zachytávání stisků kláves během výpisu, jejich "bufferování" a zpracování později. Proto se dalo psát dřív než text odscrolloval. Další věc, co řešil ten stroják, bylo "ukládání do paměťových lokací". Celé jsem si to poctivě ručně disassembloval V.A.S.T.em, přepsal do sešitu, prozkoumal, opsal a přeložil znovu v PIKASMu. Už si nepamatuju, jestli jsem použil naprosto stejný kód, nebo ten svůj přeložený...

Zbytek "engine" je klasický BASICový textovkový základ: lokace, předměty příkazy, všechno zapsané v DATA, v BASICu udělaný parser a hlavní herní smyčka. Stejné to bylo jak u IJ3, tak u Nemesis 2. (Plně strojákový byl až Belegost.)

Takže zase žádný nástroj, žádný univerzální engine, ale poctivý BASICový bastl, okořeněný trochou strojáku. :)

Ad hudba - nevím jestli to nakonec v Nemesis 2 bylo nebo ne, ale měl jsem nějakou hudbu od Franty Fuky pro AY. Dokonce jsem mu jednou volal a koktavě (byl to přeci textovkový pámbu!) ho žádal o svolení to použít. Jeho odpověď si pamatuju dodneška: "Dělej si s tím co chceš!" :)

mop

  • Plný člen
  • ***
  • Příspěvků: 128
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #8 kdy: 3. Listopad 2011 - 14:14 »
Vítejte na fóru a díky za zajímavé info. Jestli máte emulátor Spectra, můžete si u Solarise na stránkách stáhnout spoustu českých her včetně té vaší Nemesis 2 (i když ta se zřejmě zachovala jen ve snapshotu SNA):
http://cs.speccy.cz/Hry/hry.html

solaris104

  • Plný člen
  • ***
  • Příspěvků: 156
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #9 kdy: 2. Únor 2012 - 19:09 »
U hry Indiana Jones 3 se lze dostat do BASICu tak, ze date Nahrat pozici z pameti 6. Bohuzel hra opravdu pouziva assemblerove rutiny a na to ja nestacim.

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #10 kdy: 3. Únor 2012 - 13:57 »
Ty rutiny by ale meli byt jen na tisk 42 znaku na radek a rezidentni rutinka na zachytavani klavesnice, ne? To podle me muzes pouzivat bez jakehokoliv zasahu resp. to muzes bez ujmy vymazat, ne?

solaris104

  • Plný člen
  • ***
  • Příspěvků: 156
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #11 kdy: 4. Únor 2012 - 18:58 »
No to by mi nekdo musel ty assemblerove rutiny ulozit jako code.

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #12 kdy: 5. Únor 2012 - 13:54 »
Podle me jsou vsechny rutinky vc. mapy znaku 6x8 obsazeny v bloku od adresy 62400 v delce 3136 (to odpovida poslednimu datovemu bloku v Jones3.tzx, kde je to ale zakodovano). Ulozil jsem ti to do "indy.tap" a stahnout to muzes tady: http://petr.kain.sweb.cz/solaris/indy.tap. V programu pak bude minimalne treba dat: CLEAR 62399: LOAD "indy" CODE.

solaris104

  • Plný člen
  • ***
  • Příspěvků: 156
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #13 kdy: 5. Únor 2012 - 16:36 »
Diky, ono to fakt funguje.

misticjoe

  • Globální Moderátor
  • Mladší člen
  • *****
  • Příspěvků: 68
  • www.amiga.cz
    • Zobrazit profil
Re: Textovka v Basicu na ZX
« Odpověď #14 kdy: 8. Únor 2012 - 09:00 »
Tohle jde take jeste nejak pres Mload loader. Uz si to moc nepamatuju, je to drahne let. Ale vim, ze 42 znaku nebo AY hudbu jsem delal tak, ze jsem si do pameti nechal natahnout male utility, ktere tohle delaly. Pak napsal program a ulozil cely obsah pameti (na kazetu je to masakr, ale pod emulatorem nebo z diskety to neni problem). Delalo se to pres nejake Randomize USR (presne cislo uz si nepamatuju, ale asi bych ho dohledal) nebo to umely nektere emulatory na PeCku (tusim Z80 i ve win verzi). Ty utility mam jeste ve svem archivu, kdybys potreboval. Ale koukam, ze prozatim si to vyresil asi elegantnejsim zpusobem.
Vyhoda mloadu je v tom, ze mas jen kratkou zavadeci hlavicku a pak uz se nahrava vse, vcetne uvodni obrazovky najednou. Je to nevic takova berlicka pro nas, co nikdy nepochopili nejake CODE :-)
Občasný programátor textových her, které nikdo nehraje, ale vůbec mi to nevadí :-)