Autor Wątek: Pytania od bardzo początkującego  (Przeczytany 57340 razy)

sect0r

  • *****
  • Wiadomości: 698
  • Miejsce pobytu:
    Oltedal/NO
  • speccyholic
Odp: Pytania od bardzo początkującego
« Odpowiedź #45 dnia: 2014.01.08, 20:19:09 »
Ostra jazda zaczyna się dopiero w assemblerze, chłopaki robią cuda  ;)
Szarak # DivIDE+ # MasakratorFM DeluXe by Zaxon

mad1

  • **
  • Wiadomości: 86
Odp: Pytania od bardzo początkującego
« Odpowiedź #46 dnia: 2014.01.08, 21:51:32 »
Ok, dzięki za pomoc w tym wątku, udało mi się dzięki temu stworzyć małą mini gierkę, bardzo krótką i prymitywną aczkolwiek jest satysfakcja :) tylko dla hardcorowych i zatwardziałych spectrumowców ;)




ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Pytania od bardzo początkującego
« Odpowiedź #47 dnia: 2014.01.09, 04:18:12 »
Wiesz twip nie ty jeden marzysz o takim czymś, są nas miliony. I myślę że to kwestia czasu. W jednym chipie już mamy NES-a, które przez lata sprzedały się w 62mln a dziś na Allegro są po 20zł z tysiącami gier dwoma padami i pistoletem, a zwie się to PolyStation lub FunStation3 zależy jaki kolorek wolisz. ;)

Czytałem też że zrobiono już InOneChip MSX-a, ale nie widziałem nawet fotek, cóż to nie Europa jest rynkiem zbytu tej platformy, a raczej Japonia i Ameryka Południowa.
W FPGA i/lub jako emulatorek na Raspberry są już praktycznie wszystkie maszynki sprzed lat,choć ceny zwłaszcza tych pierwszych jak na razie odstraszają. W miarę nasycania się rynku w podobny sposób będą robione kolejne platformy. Bo technologia tanieje. Jak będziemy się zdrowo odżywiać to doczekamy czasów że będziemy mieli drukarki 3d w domach z opcją drukowania we wysokiej rozdzielczości także układów elektronicznych. Jak będziesz chciał mieć z 10 Spectrusiów w obudowach w kolorach tęczy to sobie wydrukujesz. A jak ci się zgubi lub pobrudzi to sobie dodrukujesz. ;) A takie jednochipowe sprzętowe emulatorki będą wtykane w handheldy jak karta microSD. Sprzedawane dziesiątkami w kolekcjach do zbierania, tak jak dziś się zbiera karty z pokemonami. :D I będzie karta z Atarką, Trumienką, AppleII, TRS... itd itd dziesiątki maszynek. ;)

A emulator za jakieś powiedzmy 15 lat? - Hmmm niech pomyślę...  Stacjonarny komp to będą wtedy dwa dotykowe blaty wielkie jak stół, jeden jako stół a drugi na ścianie. Pierwszy będzie wyświetlał bałagan typowy na biurku nieletniego a wszystko reaguje na dotyk i gesty, długopis resoraki Commodorek czy Amstradzik czy czego tam dusza zapragnie a obok leży Bajtek z którego przepisujesz linie Data. hahaha - Oczywiście jego strony przewracają się po szurnięciu blatu w miejscu gdzie go wyświetla. A na ścianie wyświetla nie tylko ekran komputera ale kawał pokoju z telewizorem na którym ten ekran jest, półki z książkami, kasety, widać że w magnetofonie się kręci taśma, plakaty na ścianie Kajagoogoo, Madonna, Papa Dance, Kasia Figura. ;) To dopiero będzie klimat. :D

Myślicie że przesadzam? - Niedawno policzyłem i wychodzi mi że mój obecny skromny przecież laptop jest ok 5 tys razy szybszy od mojego pierwszego kompa i ma 16 tys razy więcej pamięci. Jego standardowy nośnik jest ponad milion razy pojemniejszy i kilkadziesiąt tysięcy razy szybszy. Standardowo pamięć ekranu ma 8 tys razy większą a przeciętna gra zajmuje dziesiątki tysięcy razy więcej miejsca. Ot tak, na marginesie. A to tylko 20 lat różnicy. To pomnóżcie sobie o tyle wasze obecne konfigi i co wam wyjdzie? I co to będzie potrafić?

No co? Ja też się rozmarzyłem. ;) Niedawno gdzieś przeczytałem że jeśli nie boisz się swoich marzeń to znaczy że są za małe. ;) Niektórzy mawiają że dla odważnych świat należy inni że "Sky is the limit" - bzdura, skoro niektórzy byli już na księżycu, to ja tam spędzę emeryturę. :D
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Pytania od bardzo początkującego
« Odpowiedź #48 dnia: 2014.01.09, 08:39:53 »
mad1: Gratuluje pierwszej gry. Refleks przy niej trzeba mieć ;)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Pytania od bardzo początkującego
« Odpowiedź #49 dnia: 2014.01.10, 20:47:14 »
Proponuję tak. Jeśli PAUSE 0 w linii 160 źle działa, to można wstawić pętlę opóźniającą.
30 LET d=INT (97+RND*25)
60 PRINT AT 1,0;"Wcisnij '";CHR$ d
70 LET i$=INKEY$: IF i$="" THEN GO TO 70
120 IF i$=CHR$ d THEN LET n$="OK": GO TO 160
150 LET n$="Blad"
160 PRINT n$: PAUSE 0: PAUSE 100: CLS: GO TO 30
AY Music, ULA plus.

mad1

  • **
  • Wiadomości: 86
Odp: Pytania od bardzo początkującego
« Odpowiedź #50 dnia: 2021.10.22, 15:28:58 »
Witam ponownie,
Zamierzam napisać nową gierką żużlową. Pomysł chcę przenieść z gry "kreski" na PC, w którą wielu z was miało okazję grać w zamierzchłych czasach.
Mam pytanie o koncepcję algorytmu jazdy i skrętu w lewo. Założenia na początek są takie:
1. Po starcie samoistnie rysuje mi się linia jazdy(ruch jednostajny)
2. Sterowanie jednym klawiszem. Mogę skręcać tylko lewo gdy przytrzymam(nacisnę) klawisz. Gdy go puszczę "motor" jedzie prosto(w kierunku w który skręciłem). Generalnie ma to polegać na jeżdżeniu w kółko.

Teraz pytania:
Jak najlepiej nadać ruch? rysować PLOTEM?
Jak mogłaby wtedy wyglądać ogólna koncepcja algorytmu do otrzymania współrzędnych w celu rysowania linii jazdy?

Moje próby napisania takiego algorytmu w Basicu spełzy na niczym dlatego zwracam z pomocą do was. 

mad1

  • **
  • Wiadomości: 86
Odp: Pytania od bardzo początkującego
« Odpowiedź #51 dnia: 2022.03.21, 08:12:43 »
Mam pytanie odnośnie komendy PAUSE w Basicu. Domyślnie naciśniecie dowolnego klawisza przerywa taką pauze. Co zrobić by naciśnięcie klawisza nie przerywało pauzy tylko nadal ona trwała przez zdefiniowany pierwotnie czas?
Jeśli nie da się tego zrobić za pomocą PAUSE to może jest jakiś inny sposób w Basicu?
 

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Pytania od bardzo początkującego
« Odpowiedź #52 dnia: 2022.03.21, 09:45:04 »
Prosto to się tak nie da. Nie przypominam sobie żadnego POKE na zablokowanie wszystkich klawiszy.
A o jakim czasie mowa? I o jaką precyzję? Bo można po prostu zrobić nic nierobiącą pętlę o zadanej liczbie cykli. Ale jeśli ważna jest precyzja, to lepiej użyć zmiennej systemowej liczącej ramki.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Pytania od bardzo początkującego
« Odpowiedź #53 dnia: 2022.03.21, 12:27:54 »
PAUSE wykonuje cykliczne HALT synchronizując się z ramką i po nim sprawdza klawiaturę i jeśli nic nie jest wciśnięte zamyka wewnętrzną pętlę.

Rozwiązaniem problemu przerwania PAUSE przy chęci zachowania dokładności czasowej jest użycie PAUSE 1 w pętli FOR-NEXT:

10 FOR i=1 TO 100 : PAUSE 1 : NEXT i

PAUSE 1 nie sprawdza klawiatury i trwa "dokładnie" 1/50 sekundy, pętla wyrabia się w jednej ramce i całość daje - moim zdaniem - wymagany efekt nawet jeśli cały czas będziemy trzymali wciśnięty jakiś klawisz.

mad1

  • **
  • Wiadomości: 86
Odp: Pytania od bardzo początkującego
« Odpowiedź #54 dnia: 2023.02.28, 20:38:54 »
Mam pytanie co do dźwięków/muzyki w Basicu Spectruma. Czy jest możliwość generowania dźwięków komendą BEEP ale by jednocześnie wykonywały się inne instrukcje? Innymi słowy jak zrobić w basicu by grała muzyczka i równolegle można było robić inne rzeczy?

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Pytania od bardzo początkującego
« Odpowiedź #55 dnia: 2023.02.28, 21:02:14 »
Nie, nie można. Podczas wykonywania BEEP .. wykonuje się tylko BEEP.

Jeżeli chcesz mieć muzykę to musisz bardzo mocno pomieszać komendy BEEP z innymi instrukcjami, tak aby czas wykonywania tych innych był na tyle krótki, aby dźwięki z głośniczka stanowiły rodzaj muzyki.

W przypadku efektów dźwiękowych jako wynik naciśnięcie klawisza czy innej akcji jest znany stary sposób, np taki:
10 FOR i=0 TO 10
20 BEEP .01,i*1
50 NEXT i

Dobór czasu trwania oraz wysokości dźwięku musisz sobie dobrać sam, lub też stworzyć tablicę i z niej czytać dane... lub też wprowadzić szereg BEEPów po kolei.

Mam nadzieję że chociaż trochę pomogłem ;) Jeżeli nie - będziemy myśleć dalej.\

damik

  • Fresh rosin sniffer ;)
  • *****
  • Wiadomości: 2426
  • Miejsce pobytu:
    Generalnie Polska, głównie Bytom czasem Bielsko-Biała oraz okolice
  • ZX'owy i nie tylko...
Odp: Pytania od bardzo początkującego
« Odpowiedź #56 dnia: 2023.02.28, 21:17:51 »
Lepiej do muzyczki w trakcie gry stosować generatory AY'ka bo nie wstrzymują wykonywania programu podczas generowania dźwięku, jednak tutaj trzeba by bawić się już instrukcjami OUT programując bezpośrednio jego rejestry sekwencyjnie np w głównej pętli programu z jakiejś tablicy DATA lub wcześniej załadować te dane rejestrów do DIM.
BEEP w Basic'u będzie Ci dość mocno spowalniał program a żeby tego uniknąć trzeba będzie stosować bardzo krótkie milisekundowe dźwięki, a jeśli dźwięk/ton miałby trwać dłużej to trzeba by go szatkować co daje efekt popierdywania pisząc to w samym Basicu.  ;D
« Ostatnia zmiana: 2023.02.28, 21:27:16 wysłana przez damik »
Wszystkiego po trochu: Schwarz, mydło i powidło... konsole, stare i nieco nowsze komputery oraz akcesoria i duperele.

mad1

  • **
  • Wiadomości: 86
Odp: Pytania od bardzo początkującego
« Odpowiedź #57 dnia: 2023.02.28, 21:48:43 »
Dziękuję za odpowiedzi, szczerze mówiąc spodziewałem się takich ale jednocześnie miałem nadzieję, że jest jakiś patent. Tygrys dzięki za podpowiedź,  potestuję i zobaczę czy gra jest warta świeczki. Damik AY to póki co dla mnie zbyt odległy temat na dziś, nie chce wchodzić w te rejony. Jeśli program znacznie ucierpi na szybkości to rzeczywiście nie ma sensu się w to bawić. 

damik

  • Fresh rosin sniffer ;)
  • *****
  • Wiadomości: 2426
  • Miejsce pobytu:
    Generalnie Polska, głównie Bytom czasem Bielsko-Biała oraz okolice
  • ZX'owy i nie tylko...
Odp: Pytania od bardzo początkującego
« Odpowiedź #58 dnia: 2023.02.28, 22:39:05 »
Patent jakiś chyba jest, ale wymaga już raczej znajomości assemblera i ogarnięcia mechanizmu kontroli przerwań procka Z80 ;)
Jednak to już temat do innego wątku... ale co ja tam się będę wymądrzał kiedy są tu na forum już od tego specjaliści w kodowaniu (ja tam tylko ogarniam mały śrubokręt i lutownicę)  8)

Kiedyś już gdzieś widziałem jakąś gotową procedurkę w kodzie maszynowym ładowaną z Basic'a w kodzie maszynowym grającą muzyczki w tle na przerwaniach podczas wykonywania Basic'owych programów, tylko teraz już nie jestem pewien czy to było na ZX Spectrum czy na Amstrad CPC.
Może ktoś podpowie gotowca... ;)
« Ostatnia zmiana: 2023.02.28, 23:13:17 wysłana przez damik »
Wszystkiego po trochu: Schwarz, mydło i powidło... konsole, stare i nieco nowsze komputery oraz akcesoria i duperele.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Pytania od bardzo początkującego
« Odpowiedź #59 dnia: 2023.03.01, 08:40:29 »
Prosta sprawa - w samym BASICu się nie da i nie ma co kombinować - BEEP wyłącza przerwania, żeby dźwięk brzmiał "przyzwoicie". Jak się zmodyfikuje ROM i usunie to wyłączanie to BEEP dalej zajmuje tyle samo czasu i zatrzymuje wykonanie programu, ale za to przerwania działają a to powoduje, że BEEP "pierdzi" ;)
Można oczywiście zrobić jakiś player w ASMie beepający na przerwaniach, ale żeby brzmiał sensownie będzie zjadał kosmiczne ilości procesora a efekt nadal będzie taki sobie. Proste efekty można uzyskać metodą sugerowaną przez Tygrysa, ale cokolwiek bardziej skomplikowanego albo zje procesor albo będzie brzmiało mocno tak sobie. Albo oba na raz.
AY można "popychać" OUTami ale to też raczej do prostych efektów - cokolwiek więcej będzie wymagało na tyle dużo OUTów, że znowu zje procesor a efekt będzie średni. Sensowne rozwiązanie to muzyczka AY grająca na przerwaniach (da się zrobić stosunkowo prosto) oraz program w BASICu unikający instrukcji wyłączających przerwania.