76

(522 odpowiedzi, napisanych Bałagan)

Wrzuciłem nową wersję playera na githuba. https://github.com/pik33/ultibo-retro-sid

Wstępnie działa mysz. Gra sidy i wavy (póki co tylko standard, 16bit/44100/stereo).

Jak jeszcze będzie grać sapy, mp3, modułki i midy, tudzież interpretował Softsyntha, można będzie uznać że mam uniwersalny odtwarzacz audio na malinę :)  Ale do tego jeszcze trochę.

A tymczasem mysz jest, kulki są, dźwięk jest - można implementować arkanoida :)

77

(11 odpowiedzi, napisanych Bałagan)

Wetnę się trochę w topic bo...

Jest takie cóś jak "Compy Shop" Atari Graphic Demo.

Ma to osiem ekranów w w dwóch porcjach po cztery..

Na siódmym z nich widać czterech ludków , tekst "Graphic von FROGDESIGN" i gra muzyczka.

Zawsze mi się to z Kraftwerkiem kojarzyło, ale nijak nie mogę sobie ani tytułu, ani wykonawcy - jeśli to nie Kraftwerk - przypomnieć - ktoś pamięta "co to za melodia"?

78

(522 odpowiedzi, napisanych Bałagan)

Ale wtedy nie ma najmniejszych możliwości wypuszczać dźwięku tak, jak jest to robione w tym odtwarzaczu. Jest to pierwszy sprzęt/system jaki mam w ręku który pozwala wysłać dźwięk z pomocą filtrów kształtowania szumów przy częstotliwości próbkowania 960 kHz, nad którą to częstotliwością mam pełną kontrolę. Chcesz trochę wolniej, trochę szybciej - słynne ezoteryczne 432 Hz zamiast 440 - zmieniasz stałą i już. No i synteza - normalnie, czy wypuszczasz przez analog, czy przez kartę dźwiękową, nie da się bez potężnych filtrów antyaliasowych z którymi malina nie daje rady. Albo słychać aliasy. Przy 960 kHz antyalias niepotrzebny. Możliwość zmiany częstotliwości próbkowania w czasie rzeczywistym daje fajne opcje.

A w Ultibo to jest dobre, że jest, więc nie stawiasz systemu od zera. Jest obsługa systemu plików, jest obsługa całej masy hardware napisana w wysokopoziomowym kodzie. Prawie jak pod... może nie tyle Lin ile Win, bo autor wzorował się na Windows API. Hello World w Ultibo wygląda tak (żywcem z githuba autora):

program HelloWorld;

{$mode objfpc}{$H+}

{ Example 01 Hello World                                                       }
{                                                                              }
{  This example provides the classic first example but takes a couple of extra }
{  lines to achieve the result using Ultibo.                                   }
{                                                                              }
{  To compile the example select Run, Compile (or Run, Build) from the menu.   }
{                                                                              }
{  Once compiled copy the kernel7.img file to an SD card along with the        }
{  firmware files and use it to boot your Raspberry Pi.                        }
{                                                                              }
{  Raspberry Pi 3B version                                                     }
{   What's the difference? See Project, Project Options, Config and Target.    }


{ A couple of introductions first, notice the program keyword above? That tells}
{ Free Pascal that this is a program and not just a unit. When we compile this }
{ program we want Free Pascal to compile all of the required units and then    }
{ link them into a completed executable ready for us to run.                   }

{We need to declare some units that are used for this example.}
uses
  GlobalConst,
  GlobalTypes,
  Threads,
  Console,
  Framebuffer,
  BCM2837,
  BCM2710;

{We also need to declare a variable to hold a console window handle.}
var
 WindowHandle:TWindowHandle;

{Our code goes between the begin and end of the program file or in other units
 we create that can be called from this unit (File, New Unit from the menu).
 Whatever is the first line after begin below will be the first thing executed
 by Ultibo after the started process has completed.}

begin
 {First we create a console window to write our text on, we make it the full
  size of the screen by specifying CONSOLE_POSITION_FULL and allow it to be the
  default window by passing True as the last parameter.}
 WindowHandle:=ConsoleWindowCreate(ConsoleDeviceGetDefault,CONSOLE_POSITION_FULL,True);

 {Next write some text on our newly created console window, we pass the handle
  of the console window created above to tell it where to write the text since
  there can be multiple console windows on screen at once.
  This will appear in the top left corner of the screen in the default color
  and font.}
 ConsoleWindowWriteLn(WindowHandle,'Hello Ultibo!');

 {There are multiple ways to achieve the same thing, because we allowed our console
  window to be the default and we know there are no other windows present, we could
  simply call ConsoleWriteLn() or even WriteLn() instead and the text would appear
  on the default console window. Try them out if you want to experiment.}

 {Because Ultibo is always multi threaded, we should never allow the code to exit
  from the begin..end block of the program. See the Wiki for more information on
  why but unless you are sure of what will happen it is best to simply halt this
  thread here.}
 ThreadHalt(0);
end.

79

(522 odpowiedzi, napisanych Bałagan)

pik33 napisał/a:

Przy ośmiu milionach instalacji Raspbiana to jest już jedna z wiodących dystrybucji :) i jak tak dalej pójdzie  to niedługo Debian będzie pochodną Raspbiana zamiast na odwrót :)

Powoli idzie w kierunku opisanym powyżej - https://www.raspberrypi.org/blog/pixel-pc-mac/

A ja i tak "szaleję" z Ultibo. Audio wypuszczam teraz z noise shaperem. Czyli "Hi-Fi" z wyjścia tzw. analogowego. Jest szansa na zrobienie całkiem porządnej niby-analogowej syntezy dźwięku - przy częstotliwości próbkowania 960 kHz, a na tyle stać lekko podkręconą malinkę trójkę, nie powinno być słychać aliasów :)

A to wszystko bez żadnego linuxa i wstaje dwie sekundy. Jak Atari :) Zacząłem robić pod ultibo mocno inspirowany ośmiobitowcem interpreter Basica. Prawie 800 megabajtów na BASIC :) I hardware maliny dostępny z pomocą "POKE" :)

Mam też już zrobionego microDOSa też inspirowanego atarynką - wyświetla listę programów i pozwala wybrać co ma wystartować.

Ultibo - marzenie starego atarowca. Może być i komodziarz albo amigowiec. To się programuje jak stare dobre pudła :) sprzed lat. I tylko ramu trochę więcej a i procek jakby szybszy.

80

(6 odpowiedzi, napisanych Bałagan)

W takich przypadkach

(1) testuję zasilacz - ostatnio 90% problemów ze starymi pecetami które dziwnie się zachowują to zasilacz któremu poschły kondensatory albo śmieci z innych przyczyn
(2) jeśli nie pomogło. odpinam od płyty wszystko i wyciągam RAM. Uruchamiam płytę - jak robi bip bip, wkładam ram. Teraz powinien pokazać się ekran BIOSu z komunikatem że nie ma z czego bootować - podłączam HD. Ta procedura pomaga na kabelki które potraciły kontakt bo się np utleniły.

Jakby co, można tez zdjąć wiatrak z proca, wyczyścić i przesmarować nową pastą. Gówniane pasty, a zwłaszcza pady, potrafią schnąc i taki procesor przegrzewa się zanim uruchomi się boot. Ale to już rzadsza przyczyna.

Najczęstszym problemem jest, jak już wspominałem, zasilacz.

Jak nie pomogło ani to ani to, to coś jest uwalone nasamej płycie

81

(522 odpowiedzi, napisanych Bałagan)

Jak ktoś chce się pobawić grajkiem do sidów, chodzącym na malinie bez linuxa, pushnąłem go na githuba https://github.com/pik33/ultibo-retro-sid

Do zabawy nie trzeba kompilować. Wszystko co potrzebne do uruchomienia programu jest w pliku sidplay.zip. Zawartość zipa trzeba rozpakować na sformatowaną na fat32 kartę SD. W głównym katalogu karty powinny znaleźć się pliki kernel7.img, bootcode.bin, fixup.dat i start.elf oraz katalogi retro (zawiera definicje czcionki Atari ST, palety Atari 8bit, kursora myszy prosto z Windows i combined waveforms dla sida) i sid (zawiera kilka plików SID do zagrania)

Program odtwarza pliki typu PSID (*.sid) oraz SDMP (*.dmp), nie radzi sobie jeszcze z RSIDami i nie wszystkie PSIDy się odtwarzają a to z powodu błędów w emulacji 6502 - chciałem upchać tam 65C02 i 32-bitowe rozszerzenia, przez co emulator nie realizuje niektórych co rzadszych illegali, a sporo plików SID jedzie po tych illegalach równo i trzeba mieć je wszystkie w emulacji.

Jak już program działa, można spokojnie wyjąć kartę SD (oczywiście aktualnie odtwarzany plik przestanie grać), włożyć inną kartę, np. z SIDami, znajdzie ją :) Jak z dyskietką :) tyle że dyskietka ma teraz 3/4 cala :)

Aha: przed uruchomieniem trzeba odpiąć od maliny mysz, bo klawiatura nie będzie działać. Znany błąd.

82

(522 odpowiedzi, napisanych Bałagan)

Sam się wkurzyłem i napisałem :) Na razie wypluwa z siebie tylko sinus, ale gra.

Zrobić ten dźwięk w tym "systemie", to po prostu poke, poke, poke. Dosłownie, napisałem funkcję która ładuje dane pod adres i nazwałem ja "poke" :) :) :) Parę wpisów do rejestrów układu PWM, parę do sterownika DMA...  i gra.

83

(522 odpowiedzi, napisanych Bałagan)

Dzisiaj pokazała się nowa wersja ultibo. Zaczyna mieć wsparcie dla 64-bitowego kodu (póki co tylko wczesna alfa, ale się zaczyna), poza tym framebuffer dostał synchronizację z vblankiem

To wygląda prawie jak ataryna, "dos" na dole, bufor ramki na górze, jeszcze wyżej rejestry sprzętu, wolny ram pośrodku, żadnej tam pamięci wirtualnej, żywy po ludzku adresowany ram, i tylko basica brak, co postaram się nadrobić :)

Brak też póki co audio. Ciekawe co będzie najpierw: twórca doda czy sam się wkurzę i napiszę :) Midi by też warto dodać.

Żeby tak zrobić na malinę emulator ataryny, co to wstaje sekundę, dwie po podaniu zasilania, jak to robi ultibo - marzenie....

84

(4 odpowiedzi, napisanych Bałagan)

Klon to to nie jest... ale wygląda fajnie

85

(522 odpowiedzi, napisanych Bałagan)

W malinie "wszystko" idzie przez jeden kontroler usb, stąd ograniczenie. Na szczęście wifi w RPi3 jest podpięte niezależnie od USB, więc net już nie zajmuje pasma dla podpiętego pod USB HDD

86

(522 odpowiedzi, napisanych Bałagan)

Intel Athlona

Cóś się marki pomięszały :) Ale to już tak offtopic :)

Apropos maliny i dysku... mam ja 250 GB 2.5" HDD przyczepionego do malinki przez usb i zadowolony jestem z tego rozwiązania. Z SD tylko się bootuje na dzień dobry, reszta systemu stoi na HD. A teraz to bym w sumie nawet mógł i SD wywalić bo ostatnio trójka potrafi bootnąć się i bez tego.

Co do UPa - jak będzie okazja, pomacać go trzeba. Do LattePandy mam takie zastrzeżenie, że linuxa na tym nie tak łatwo postawić a i z driverami do win też nie jest do końca różowo.

87

(522 odpowiedzi, napisanych Bałagan)

Iron napisał/a:

https://www.youtube.com/watch?v=dPJiShBIPw8

Nie wiem czy było ale właśnie znalazłem ;)

Fajna płytka tylko to nie ta klasa cenowa. Mam podobny wynalazek, nazywa się toto LattePanda, jest od malinki nieco większe i też ma na pokładzie atoma. Płytka jest wciąz chora na choroby niemowlęce, ale generalnie działa. Dużo szybsza od maliny.. ile razy szybsza, tyle razy i droższa.

Ten Up full wypas kosztuje $150, co się przełoży na ok. 800 PLN w Kamami albo Botlandzie.. czyli to samo co i LattePanda. Chociaż Up mi się - tak na oko - bardziej podoba :) Bardziej malinowaty jest. Zobaczymy, jak się pojawi w polskich sklepach, może uda mi się położyć na tym łapę i pomacać.

88

(522 odpowiedzi, napisanych Bałagan)

Adam Klobukowski napisał/a:

Da sie pod to Ultibo pisac w C?

Nie, ono jest od początku do końca w pascalu z mozliwością przejścia w każdej chwili na asm.

Ze względu na duża ilość pożytecznego gotowego kodu w C w planach ma być możliwość dołączania  do własnego programu prekompilowanych bibliotek, dlli, nie wnikałem w szczegóły, napisanych w C, ale póki co zdaje się tego jeszcze nie ma.

89

(522 odpowiedzi, napisanych Bałagan)

Postawiłem środowisko do programowania Ultibo na malince trójce. Jeszcze trochę (napisać muszę jedną procedurkę która trochę pomiesza w katalogu /boot) i będę miał to środowisko na malinie - samowystarczalnie, bez machlowania kartami SD i używania blaszaka.

Bomba.

Malinka wstaje w sekundę. Procesor i hardware twój, jesteś w trybie supervisora, możesz robić co chcesz. Żadnych tam sudo coby led zamrugał, żadnego czekania pół minuty aż system wstanie.

Paru driverów mi tam brak - przede wszystkim audio :( Najwyżej będę dopisywał :) Na tamtejszym forum jest wsparcie.

90

(522 odpowiedzi, napisanych Bałagan)

skrzyp napisał/a:

Jeśli chcesz aktualizować do PIXELa, tak - musisz od nowa.

Co prawda możesz wykonać upgrade według instrukcji na dole newsa, ale wątpię czy tego chcesz - można obudzić się z ręką w nocniku i niedziałającym w ogóle systemem, jeśli aktualizowałeś ostatnio wtedy kiedy widziałem je na oczy (czyt. ponad rok temu)

E tam, od nowa. Parę apt-getów i jest. Swojego pixela od nowa nie stawiałem i chodzi bez bólu. Tylko przywróciłem mu standardową tapetkę z malinką w środku i ściągnąłem z powrotem panel w dół.

Przy okazji wreszcie skończyła się paranoja o nazwie Iceweasel: aktualizacja przywróciła mu standardową nazwę Firefox. Poza tym ten firefox jakby lepiej chodził niż owa "lodowa łasica" sprzed aktualizacji.

No ale jak ktoś ma jeszcze Wheezy  :)   to różnie może być.

91

(522 odpowiedzi, napisanych Bałagan)

Dwie nowinki dla malinki

- poprawiony desktop -  https://www.raspberrypi.org/blog/introducing-pixel/

- system, nie system, w każdym razie można projektować na malinę bez linuxa, w specjalnie spreparowanym lazarusie :) Ponieważ brak jest systemu jako takiego, ma się pełną kontrolę nad sprzętem. Pisze się i kompiluje na blaszaku, a wynikiem kompilacji jest kernel, który należy zgrać na SD i uruchomić z niego malinę, która też podnosi się w ciągu sekundy odpalając nasz soft. Nazywa się to Ultibo - https://ultibo.org/

92

(15 odpowiedzi, napisanych Bałagan)

Tak może być, ale tamtemu komputerowi po odwirusowaniu przeszło.

93

(15 odpowiedzi, napisanych Bałagan)

A sprawdź jeszcze czy komputer nie jest zainfekowany. Ostatnio przynieśli mi taki: Opera wywalała dziwne komunikaty i to właśnie na temat SSLa, do tego Flash Player nie chciał się instalować i CSSy były źle interpretowane.

ComboFix wyrzucił całą litanię zarazy. Potraktowałem to jeszcze paroma narzędziami typu RKill, ADWCleaner itp. i przeszło mu.

94

(522 odpowiedzi, napisanych Bałagan)

No. Widziałem to. Czas dodać AY i Pokeya do mojego malinowego retroplayera. Nie miałem ostatnio czasu dla niego.

Apropos alternatyw dla maliny, mam okazję pobawić się teraz tym: http://www.lattepanda.com/ - fajna zabawka, ale trochę droga i jeszcze chora na choroby niemowlęce. Ale też od malinki sporo wydajniejsza

95

(9 odpowiedzi, napisanych Bałagan)

Nie. 1.3 GHz malina, 4.0 GHz AMD FX. Czyli oba lekko powyżej fabrycznych zegarów.

96

(9 odpowiedzi, napisanych Bałagan)

Nie warto robić clustera z malin zamiast blaszaka. Chyba że "dla sztuki", nauki, demonstracji, zabawy, pokazania że można.

Wydajność rdzeń do rdzenia - Rasp3/AMD FX8320 (testy własne) jest mniej więcej 1:10. Czyli AMD FX= ok. 20 malin trójek. A jak blaszak ma jeszcze sensowną grafikę... Fakt: GPU maliny też da się użyć... bodajże ~17 GFlops - ale dzisiejsze GPU blaszaka nadającego się do grania" to co najmniej 2 TFlops..

97

(9 odpowiedzi, napisanych Bałagan)

984 złote za malinę to jakaś pomyłka, tyle że teraz dwójek nie ma w ciągłym dostępie.

Clustery z malin można robić, tyle że raczej przez eth niż przez gpio.

Trójka w prawdziwym sklepie (Kamami, Botland) kosztuje ok 200 złotych.

Nowa wersja systemu dla malinki trójki potrafi startować z usb (pendrive, hdd) i nie potrzeba wtedy (zawodnej) karty SD

Na trójce dobrze chodzą emulatory zarówno A8 (Atari800) jak i A16 (Hatari)

98

(25 odpowiedzi, napisanych Bałagan)

Malinowa grajka doczekała się wersji 0.06. Download jak wyżej. Nowa opcja: klawisz f przełącza fullscreen/okienko; przy czym fullscreen jest naprawdę full, także pod X, a tryb okienkowy jest zsynchronizowany z vbl. Udało się to zrobic bez sięgania do SDL 2.0 z którym wciąż na malinie nie potrafię się dogadać, żeby chodził z jakaś sensowną szybkością.
Kod źródłowy jest już klarowniejszy ale jeszcze nie na tyle, żeby całość wrzucić na sourceforge.

99

(25 odpowiedzi, napisanych Bałagan)

Zaktualizowałem stronę domową grajka.

http://eksperymenty.edu.pl/index.php/pl/sid-player

100

(25 odpowiedzi, napisanych Bałagan)

Chciałem miec grajka na malinie, to i mam go na malinie. Jak ktoś che się pobawic w alpha-testera, paczuszka poniżej. Potrzebuje SDL 1.2. Trzeba rozpakować zipa do wybranego katalogu po czym odpalić pliczek o pięknej nazwie "project1". Działa zarówno spod X jak i spod konsoli.

A PS: gałkologia: strzałki w górę i w dół poruszaja się po plikach, enter - wybór, F1..F3 chn 1..3 on-off, Num+, Num- - zmienia subsong, 1..5 zmiana częstotliwości: 1-100 Hz, 2-200 Hz, 3-150 Hz, 4-400 Hz, 5-50 Hz, esc-wyjście.

PS2: uruchamiany na malinie #3 - nie testowałem na #2. Powinien się wyrobić i na dwójce.