Programmer2004 9 Opublikowano 27 lipca 2017 Udostępnij Opublikowano 27 lipca 2017 (edytowane) Witam. Chciałbym zaprezentować mój autorski emulator komputerów BBC Micro. BBC Micro jest komputerem wyprodukowanym w 1981 roku przez brytyjską firmę Acorn Computers. Obecna wersja programu to 1.0.2. Potrafi on częściowo bootować niektóre gry. Aby załadować program do emulatora, należy zrzucić obraz dysku z prawdziwego BBC Micro bądź pobrać z internetu, następnie wypakować z niego pliki dowolnym programem, np. BBC Explorer. Następnie wczytać plik rozruchowy do emulatora (przeważnie jest to plik !BOOT). WAŻNE: Nazwy plików muszą się kończyć znakiem $, więc jeśli Twój program rozpakowujący nie dodał ich na końcu pliku, to należy je dodać ręcznie w celu poprawnego działania. Screen z próby uruchomienia gry Acheton: Download: 1.0.2 1.0.1 1.0.0 Skan: 1.0.2 1.0.1 1.0.0 Kod źródłowy: Repozytorium na GitHubie Edytowane 24 sierpnia 2017 przez Programmer2004 Kod przeniesiono na GitHuba KrejzolekPRO 1 Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/ Udostępnij na innych stronach Więcej opcji udostępniania...
Nieaktywny Opublikowano 28 lipca 2017 Udostępnij Opublikowano 28 lipca 2017 Zamiast jak człowiek kod źródłowy na GitHub'ie, to woli dać jako osobny link do pobierania, ehh. Dobra, pisze to jako osobny już post. Jak jakiś moderator połączy, to fajnie, ale mnie to nie interesuje. Kod to istny rak i onkologia, wszystko zbyt statyczne, nazewnictwo klas totalnie wzięte z dupy. W kodzie znajduję się takie kwiatki jak ten: public static void start(String path) throws FileNotFoundException, IOException { Hardware.reset(path); new Thread(new Runnable() { public void run() { for (;;) { try { } catch (FileNotFoundException exception) { Main.window.dispose(); exception.printStackTrace(); } catch (IOException exception) { Main.window.dispose(); exception.printStackTrace(); } } } }) .start(); Nie wiem na jaką ku*wę i pietruszkę się tu znajduje, bo to jest tylko marnowanie pamięci. Pominę fakt, że ten flagowy interpreter języka jest napisany w najbardziej możliwie chu*owy sposób, jak się dało. public class Memory { private static int page = 0; private static byte[] memory = new byte[65536]; public static void reset() { page = 0; Arrays.fill(memory, (byte)0); } public static int getPage() { return page; } public static void setPage(int address) { page = address; } public static void write(short address, byte data) { memory[(address & 0xFFFF)] = data; } public static byte read(short address) { return memory[(address & 0xFFFF)]; } } Nie wiem na jaki kij jest to statyczne. public class Main { public static Window window = new Window(); public static void main(String[] args) {} } Co to do cholery za start programu? xDD Co to za obsługi wyjątków, żadnego powiadomienia na ekranie, jak okienko się wyłączy to co ma użytkownik myśleć, że program miał tak działać? Słabe. Łączę //Michma Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-137947 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 28 lipca 2017 Autor Udostępnij Opublikowano 28 lipca 2017 (edytowane) 10 godzin temu, Wizzard napisał: Zamiast jak człowiek kod źródłowy na GitHub'ie, to woli dać jako osobny link do pobierania, ehh. To, że dałem kod źródłowy na stronie innej, niż GitHub, to nie znaczy, że nie jestem człowiekem. 10 godzin temu, Wizzard napisał: Dobra, pisze to jako osobny już post. Jak jakiś moderator połączy, to fajnie, ale mnie to nie interesuje. Kod to istny rak i onkologia, wszystko zbyt statyczne, nazewnictwo klas totalnie wzięte z dupy. W kodzie znajduję się takie kwiatki jak ten: public static void start(String path) throws FileNotFoundException, IOException { Hardware.reset(path); new Thread(new Runnable() { public void run() { for (;;) { try { } catch (FileNotFoundException exception) { Main.window.dispose(); exception.printStackTrace(); } catch (IOException exception) { Main.window.dispose(); exception.printStackTrace(); } } } }) .start(); Nie wiem na jaką ku*wę i pietruszkę się tu znajduje, bo to jest tylko marnowanie pamięci. Pominę fakt, że ten flagowy interpreter języka jest napisany w najbardziej możliwie chu*owy sposób, jak się dało. public class Memory { private static int page = 0; private static byte[] memory = new byte[65536]; public static void reset() { page = 0; Arrays.fill(memory, (byte)0); } public static int getPage() { return page; } public static void setPage(int address) { page = address; } public static void write(short address, byte data) { memory[(address & 0xFFFF)] = data; } public static byte read(short address) { return memory[(address & 0xFFFF)]; } } Nie wiem na jaki kij jest to statyczne. public class Main { public static Window window = new Window(); public static void main(String[] args) {} } Co to do cholery za start programu? xDD Co to za obsługi wyjątków, żadnego powiadomienia na ekranie, jak okienko się wyłączy to co ma użytkownik myśleć, że program miał tak działać? Słabe. Po pierwsze: Twój program dekompilujący źle odkodował program, gdyż po pierwsze tam nie ma pętli for(;;), tylko while(true), a po drugie w bloku try...catch jest wywołanie Hardware.tick(). Po drugie: Zrobiłem statyczne funkcje, gdyż nie ma potrzeby tworzenia ich jako obiektów. Po trzecie: Normalny start, tworzy okno i można korzystać. Po czwarte: Mój program nie jest jedynym, który w przypadku wyjątku zamyka się i wypisuje błąd w konsoli. Nie wiem, dlaczego krytykujesz moją stylistykę kodu, każdy ma swój styl kodowania. Ważne, że emulator interpretuje niektóre programy bez problemu. //edit: Domyślam się, że chodziło też o to, dlaczego główna pętla emulatora jest tworzona w nowym wątku. Otóż gdy próbowałem dać to w tym samym wątku, to spotykałem się z licznymi bugami związanymi z oknem (JFrame) jak i z samą emulacją. I dlatego też właśnie ta pętla jest tworzona w nowym wątku w celu odseparowania jej od okna, co nie blokuje pętli komunikatów. Edytowane 28 lipca 2017 przez Programmer2004 Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-137960 Udostępnij na innych stronach Więcej opcji udostępniania...
kapi. 332 Opublikowano 28 lipca 2017 Udostępnij Opublikowano 28 lipca 2017 Spoiler 11 godzin temu, Programmer2004 napisał: To, że dałem kod źródłowy na stronie innej, niż GitHub, to nie znaczy, że nie jestem człowiekem. Po pierwsze: Twój program dekompilujący źle odkodował program, gdyż po pierwsze tam nie ma pętli for(;;), tylko while(true), a po drugie w bloku try...catch jest wywołanie Hardware.tick(). Po drugie: Zrobiłem statyczne funkcje, gdyż nie ma potrzeby tworzenia ich jako obiektów. Po trzecie: Normalny start, tworzy okno i można korzystać. Po czwarte: Mój program nie jest jedynym, który w przypadku wyjątku zamyka się i wypisuje błąd w konsoli. Nie wiem, dlaczego krytykujesz moją stylistykę kodu, każdy ma swój styl kodowania. Ważne, że emulator interpretuje niektóre programy bez problemu. //edit: Domyślam się, że chodziło też o to, dlaczego główna pętla emulatora jest tworzona w nowym wątku. Otóż gdy próbowałem dać to w tym samym wątku, to spotykałem się z licznymi bugami związanymi z oknem (JFrame) jak i z samą emulacją. I dlatego też właśnie ta pętla jest tworzona w nowym wątku w celu odseparowania jej od okna, co nie blokuje pętli komunikatów. moja kupa jest lepsza niż te wszystkie twoje "programiki". Kolejny zbędny "program"... Jakbyś nie mógł zacząć tworzyć MC od nowa i byś może zarobił 5 kałów za to 1/10 [ ANTY-WARN ]opinia konstruktywna ~ esej. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138211 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 28 lipca 2017 Autor Udostępnij Opublikowano 28 lipca 2017 Teraz, esej napisał: Pokaż ukrytą zawartość moja kupa jest lepsza niż te wszystkie twoje "programiki". Kolejny zbędny "program"... Jakbyś nie mógł zacząć tworzyć MC od nowa i byś może zarobił 5 kałów za to 1/10 [ ANTY-WARN ]opinia konstruktywna ~ esej. Krytykujesz, a nawet nie podałeś argumentów. Program nie jest bezużyteczny, jest dopiero we wczesnym stadium. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138212 Udostępnij na innych stronach Więcej opcji udostępniania...
kapi. 332 Opublikowano 28 lipca 2017 Udostępnij Opublikowano 28 lipca 2017 A do czego tu argumenty? Argumenty podał już @Wizzard i podzielam jego zdanie. Jeśli tworzysz swoje programy , które są krytykowane to przestań je tu wstawiać i będzie dobrze! Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138213 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 28 lipca 2017 Autor Udostępnij Opublikowano 28 lipca 2017 Teraz, esej napisał: A do czego tu argumenty? Argumenty podał już @Wizzard i podzielam jego zdanie. Jeśli tworzysz swoje programy , które są krytykowane to przestań je tu wstawiać i będzie dobrze! Nie wiem, bo jego argumenty tyczą się tylko mojego stylu kodowania, a nie samego programu. A program interpretuje kod BASIC'a dobrze. Co do krytyki, to akurat wcale mi to nie przeszkadza, żeby zamieszczać tutaj moje programy. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138214 Udostępnij na innych stronach Więcej opcji udostępniania...
kapi. 332 Opublikowano 28 lipca 2017 Udostępnij Opublikowano 28 lipca 2017 (edytowane) 1 minutę temu, Programmer2004 napisał: Nie wiem, bo jego argumenty tyczą się tylko mojego stylu kodowania, a nie samego programu. A program interpretuje kod BASIC'a dobrze. Co do krytyki, to akurat wcale mi to nie przeszkadza, żeby zamieszczać tutaj moje programy. Ok, przestań już spamować , bo zaraz warna zgarniesz... #topic Co do programu 2 zakładki brzydki styl... nie polecam Edytowane 28 lipca 2017 przez esej Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138215 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 28 lipca 2017 Autor Udostępnij Opublikowano 28 lipca 2017 Teraz, esej napisał: Ok, przestań już spamować , bo zaraz warna zgarniesz... #topic Co do programu 2 zakładki brzydki styl... nie polecam 2/10 Jak już piszesz, że program ma brzydki styl, to chociaż napisz, co mam zmienić w interfejsie. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138218 Udostępnij na innych stronach Więcej opcji udostępniania...
KrejzolekPRO 600 Opublikowano 29 lipca 2017 Udostępnij Opublikowano 29 lipca 2017 Wszyscy hejtują, ale pragnę zauważyć, że autor ma dopiero 13 lat - wnioskując po nicku. I jak na taki wiek umie dużo. Chciałbym się spytać, np. @eseja, czy umie takie coś napisać? Zamiast krytykować wszystko co tylko można, lepiej napiszcie co i jak może poprawić. No a co do samego programu to pomysł fajny, gratulacje. kapi., bopke i Programmer2004 2 1 Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138302 Udostępnij na innych stronach Więcej opcji udostępniania...
kapi. 332 Opublikowano 29 lipca 2017 Udostępnij Opublikowano 29 lipca 2017 49 minut temu, KrejzolekPRO napisał: Wszyscy hejtują, ale pragnę zauważyć, że autor ma dopiero 13 lat - wnioskując po nicku. I jak na taki wiek umie dużo. Chciałbym się spytać, np. @eseja, czy umie takie coś napisać? Zamiast krytykować wszystko co tylko można, lepiej napiszcie co i jak może poprawić. No a co do samego programu to pomysł fajny, gratulacje. @KrejzolekPRO ja umiem tylko VB.NET i nie znam się na innych jenzykach () Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138319 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 29 lipca 2017 Autor Udostępnij Opublikowano 29 lipca 2017 2 godziny temu, KrejzolekPRO napisał: Wszyscy hejtują, ale pragnę zauważyć, że autor ma dopiero 13 lat - wnioskując po nicku. I jak na taki wiek umie dużo. Chciałbym się spytać, np. @eseja, czy umie takie coś napisać? Zamiast krytykować wszystko co tylko można, lepiej napiszcie co i jak może poprawić. No a co do samego programu to pomysł fajny, gratulacje. Cieszę się, że się podoba. Tematem emulacji zainteresowałem się tak rok temu, a że uwielbiam też stare technologie, to pomyślałem, że emulator BBC Micro będzie fajnym pomysłem. Nie jest jeszcze ukończony i są emulatory o wiele lepsze od mojego, ale i tak dziękuję bardzo. A co do pana @esej, nadal czekam na to, co mogę poprawić w interfejsie, aby nie był on brzydki. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-138347 Udostępnij na innych stronach Więcej opcji udostępniania...
arizonaTwentyOne 7 Opublikowano 8 sierpnia 2017 Udostępnij Opublikowano 8 sierpnia 2017 Tam zamiast "you must" bardziej pasowałoby "you have to" Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-140094 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 8 sierpnia 2017 Autor Udostępnij Opublikowano 8 sierpnia 2017 2 minuty temu, arizonaTwentyOne napisał: Tam zamiast "you must" bardziej pasowałoby "you have to" Cóż, może i by pasowało, no ale tego już zmienić nie mogę, no bo jak wiemy, to emulatory nie polegają na przepisywaniu gier na inną platformę, lecz na udawaniu danego sprzętu. Więc no... Bez edytowania plików gry nie idzie tego zmienić. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-140095 Udostępnij na innych stronach Więcej opcji udostępniania...
Ixidi 719 Opublikowano 12 sierpnia 2017 Udostępnij Opublikowano 12 sierpnia 2017 Zamien swinga na javafx, o wiele ladniejszy. Programmer2004 1 Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-140798 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 12 sierpnia 2017 Autor Udostępnij Opublikowano 12 sierpnia 2017 23 minuty temu, Ixidi napisał: Zamien swinga na javafx, o wiele ladniejszy. OK, postaram się coś poduczyć o JavaFX i przeprogramować do niego interfejs, gdyż szczerze to nigdy nie używałem JavaFX. Ale dzięki za poradę. Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-140802 Udostępnij na innych stronach Więcej opcji udostępniania...
Gość gabixdev Opublikowano 26 sierpnia 2017 Udostępnij Opublikowano 26 sierpnia 2017 (edytowane) Spodziewałem się tutaj raczej emulatora procesora niż interpretera BASIC-a...https://github.com/Programmer2004/JBBCME/blob/master/src/hardware/BASIC.java PO DOKŁADNYM PRZEJRZENIU KODU MOGĘ POWIEDZIEĆ OFICJALNIE TO ŚMIETNIK XDDDDDDDDDDDD Na czym się wzorowałeś? xDDDDDDDDDDDDD No dobra, jako osoba znająca się na programowaniu niskopoziomowym - muszę powiedzieć, że marny ten "emulator", a technicznie raczej interpreter programów... Następnym razem poducz się trochę na temat sprzętu, procesora, działania komputera i spróbuj napisać najprostszą maszynę wirtualną. Następnie podnieś sobie poprzeczkę i napisz taki emulator procesora 6502 oraz reszty części komputera i doprowadź to tego aby mógł uruchamiać dump ROM-u z prawdziwego komputera oraz wszystkie aplikacje (nie tylko te w BASIC)... Edytowane 26 sierpnia 2017 przez gabixdev Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-143427 Udostępnij na innych stronach Więcej opcji udostępniania...
Nieaktywny Opublikowano 26 sierpnia 2017 Udostępnij Opublikowano 26 sierpnia 2017 (edytowane) Dnia 28.07.2017 o 23:24, esej napisał: moja kupa jest lepsza niż te wszystkie twoje "programiki". Ten program się przynajmniej uruchamia i wyświetla kolorowe napisy, a ty takiego byś nawet w Javie nie napisał. A Skript tego nie wspiera. XDDD Poza tym, też mi konstruktywna opinia, porównywanie fekaliów do programów. Zapytany o argumenty zasłaniasz się czyjąś opinia i unikasz dalszej konwersacji. Tchórz. Wyrób sobie własne zdanie, a nie powielasz zdanie innych. Edytowane 26 sierpnia 2017 przez Nieaktywny Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-143436 Udostępnij na innych stronach Więcej opcji udostępniania...
Programmer2004 9 Opublikowano 26 sierpnia 2017 Autor Udostępnij Opublikowano 26 sierpnia 2017 (edytowane) 1 godzinę temu, gabixdev napisał: Spodziewałem się tutaj raczej emulatora procesora niż interpretera BASIC-a...https://github.com/Programmer2004/JBBCME/blob/master/src/hardware/BASIC.java PO DOKŁADNYM PRZEJRZENIU KODU MOGĘ POWIEDZIEĆ OFICJALNIE TO ŚMIETNIK XDDDDDDDDDDDD Na czym się wzorowałeś? xDDDDDDDDDDDDD No dobra, jako osoba znająca się na programowaniu niskopoziomowym - muszę powiedzieć, że marny ten "emulator", a technicznie raczej interpreter programów... Następnym razem poducz się trochę na temat sprzętu, procesora, działania komputera i spróbuj napisać najprostszą maszynę wirtualną. Następnie podnieś sobie poprzeczkę i napisz taki emulator procesora 6502 oraz reszty części komputera i doprowadź to tego aby mógł uruchamiać dump ROM-u z prawdziwego komputera oraz wszystkie aplikacje (nie tylko te w BASIC)... Rozumiem, faktycznie, trochę naśmieciłem w tym programie i bez bugów nie jest. Co do maszyn wirtualnych to napisałem raz prosty emulator peceta, który bootował małe programy z obrazów dyskietek IMG (i było to wszystko emulowane, procesor, grafika, pamięć, itd., itp.). Tutaj starałem się zrobić emulację wysokopoziomową. Cóż, za wszelkie błędy przepraszam i postaram się je poprawić. //edit: Mogę zrobić niskopoziomową emulację, ale to będzie wymagało napisania własnego BIOS'u, bo jak wgram pobrany z internetu to wiadomo, że to łamanie praw autorskich. Edytowane 26 sierpnia 2017 przez Programmer2004 Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-143437 Udostępnij na innych stronach Więcej opcji udostępniania...
Gość gabixdev Opublikowano 26 sierpnia 2017 Udostępnij Opublikowano 26 sierpnia 2017 (edytowane) W przypadku emulatora x86 możesz użyć wolnych alternatyw jak SeaBIOS czy Bochs BIOS, mimo że "normalne" BIOSy takie jak AWARD czy AMI też działają... Używanie pliku ROM-u z emulatorem nie jest naruszeniem praw autorskich, jedynie nie możesz rozpowszechniać go z programem, ale możesz poinstruować użytkownika jaki plik wymagany do działania emulatora ma zdobyć. Edytowane 26 sierpnia 2017 przez gabixdev Odnośnik do komentarza https://skript.pl/temat/20329-jbbcme-emulator-komputera-bbc-micro-napisany-w-j%C4%99zyku-java/#findComment-143578 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi