Archiwum kategorii: Avocado

Avocado uruchamia pierwszy program

Po kilkugodzinnej sesji czytania assemblera, analizy dumpów pamięci i żmudnego przeklikiwania się debuggerem po breakpointach udało mi się rozwiązać problem, który towarzyszył mi od początku projektu. Problem Wspominałem o nim w poprzednim poście – objawiał się tekstem "VSync: timeout", a efektem … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado | Skomentuj

Stan projektu – pierwszy miesiąc

Minął pierwszy miesiąc od startu Daj się poznać 2017 i uznałem to za dobry moment, aby podzielić się w jakim stanie znajduje się mój projekt oraz z jakimi problemami walczę na ten moment. Muszę nadmienić, że w momencie startu tegorocznej … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado, Podsumowanie | Skomentuj

Procesor – skoki i delay slot

Operacje skoków nie są takie oczywiste jak mogłoby to się wydawać – jest tutaj kilka pułapek o chciałem wspomnieć. Kodowanie instrukcji skoku Przykładowa instrukcja skoku (j) w assemblerze będzie wyglądać tak:   Na zapisanie adresu skoku dostępne jest tylko 26 bitów. … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado | Otagowano , | 1 komentarz

Procesor – emulacja pierwszej instrukcji

Procesor zastosowany w Playstation oparty jest na 32-bitowej architekturze MIPS. To co ją wyróżnia to fakt, że jest to architektura RISC (Reduced Instruction Set Computing), a nie CISC (Complex Instruction Set Computing) do której przyzwyczaiły nas PCty. Z czym to się … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado | Otagowano , | Skomentuj

Playstation – architektura systemu

Pisząc blog, w którym opisuje proces tworzenia emulatora dla konsoli Playstation wypada mi przybliżyć jak ten sprzęt jest zbudowany. Patrząc na specyfikację przypomina on komputery, które pojawiały się w tamtych czasach (1994), jednak niektóre rozwiązania wybrane przez twórców – szczególnie … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado | Skomentuj

Integracja CI ze Slackiem

Przy procesie ciągłej integracji ważną częścią jest monitorowanie czy ostatnie zmiany nie sprawiają problemów z kompilacją i uruchamianiu na różnych platformach. Podczas developmentu na bieżąco buduję i uruchamiam program na lokalnej maszynie. Niestety to nie wyklucza możliwości, kiedy na czystym środowisku … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado | Otagowano , , | 3 komentarze

Ciągła integracja projektu z użyciem Travis CI i AppVeyor

Continuous Integration jest mocno powiązany ze współczesnym podejściem do tworzenia oprogramowania. Usprawnia proces automatycznego budowania i testowania oprogramowania. Oto jak ja rozumiem zasadę działania CI: programista wprowadza zmiany w kodzie i wysyła je do głównego repozytorium (git push) serwer wykrywa zmiany, pobiera kopię … Czytaj dalej

Opublikowano Avocado, Daj się poznać 2017 - Avocado | Otagowano , | Skomentuj

Integracja z GDB

Debugger jest nieocenioną pomocą przy takich programach jak emulator, ponieważ zachodzi potrzeba analizy działania zarówno naszej aplikacji jak i programu będącego uruchomionego w wirtualnym środowisku. W tym poście poruszę jedynie drugi przypadek. Gdy zaczynałem implementować procesor jedyną opcją było logowanie każdej wykonywanej instrukcji … Czytaj dalej

Opublikowano Avocado | Skomentuj

Avocado – podstawowa implementacja timerów

Stworzyłem proste implementacje klasy Timer, która jest kluczowa do działania większości programów – chodzi o obsługę przerwania VBlank i jej synchronizacji z timerem zliczającym HBlanki. Niestety kod pisany "na teraz" kopie mnie teraz po tyłku – trzeba usiąść i rozplanować … Czytaj dalej

Opublikowano Avocado | Skomentuj

Język i biblioteki

W tym krótkim poście opiszę jakich technologii korzystam przy Avocado i co zmotywowało mnie do ich użycia. Język Zdecydowałem się na użycie C++ z kilku powodów: Jest to język z którym mam najwięcej doświadczenia i wydaje mi się że pozwoli mi … Czytaj dalej

Opublikowano Avocado | Otagowano , | 3 komentarze