i wyszedl oficjalnie: http://8bit-unity.com/?p=669
* Implemented high performance directory listing and file loading system using xBIOS
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Nowa obudowa dla 800XL - zostało 36 dni Niewiele ponad miesiąc do końca kampanii.
Zmarł twórca języka BASIC Zmarł Thomas E. Kurtz twórca języka BASIC
Zmiana serwera atari.area Serwis przeszedł właśnie ważną aktualizację infrastruktury
4th Atari ASCII Compo - wyniki Dostępne są już wyniki tegorocznego ATASCII Compo.
thing neo 1.60 Olivier Landemarre wydał nową wersję desktopu Thing.
atari.area forum » Fabryka - 8bit » xBios - biblioteka IO dla gier ktore lubia przestrzen
Strony Poprzednia 1 … 68 69 70 71 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
i wyszedl oficjalnie: http://8bit-unity.com/?p=669
* Implemented high performance directory listing and file loading system using xBIOS
a co to jest xbios ?
@xxl: Czy ten czas oczekiwania to inny parametr niż to, co było potrzebne dla SIO2BT (timeout po wysłaniu komendy)? Na ile go ustawiasz dla FujiNet?
sa dwa wazne miejsca - petla oczekujaca na odpowiedz urzadzenia i retry - obydwa na raz to nie jest timeout.
standardowo nie ma problemu ale pojawil sie gdy mamy urzadzenie ktore moze np. w protokole odpowie przyjmuje rozkaz ale po minucie dopiero odpowie wykonałam ;-) i po tym zacznie wysylac dane. tak jest z FujiNet.
troszke tam pozmienialem... ogolnie wyplynal fajny temat - czy urzadzenia natychmiast przerywaja wysylanie danych jak dostaja sygnal z linii COMMAND ... sam jestem ciekawy odpowiedzi jak to wyglada fdd vs emulatory urzadzen SIO,
nie wiem co tam w PoP zrobi gosc ale najlatwiej jest po prostu skorzystac z tego ze FujiNet keszuje (dwa sektory na raz) i po prostu zwiekszyc licznik retry :-) banal.
najwieksza zmiana dotyczy tego ze urzadzenie moze: 1.wyslac rozna ilosc danych, 2. odpowiedziec w zaleznosci od czasu wykonywania roznych rozkazow... innymi slowy przygotowujemy xB pod sterowanie FN bez udzialu CIO ;-)
Jeśli dobrze pamiętam to w procedurze SIO są dwa liczniki DRETRY i CRETRY. Jeden jest ustawiany na dwa powtórzenia, drugi na 15. Ile retry i jakie dajesz u siebie dla FN (chyba, że masz retry inaczej zaimplementowane)? Timeout na odpowiedź po komendzie jest 2 ramki, natomiast typowy dla komendy R/P to jest 7 ramek - to by nam dawało 15*7=105 ramek czyli mniej więcej 2 sekundy. Do minuty jeszcze daleko...
Konkludując - ciekawi mnie jakie wartości timeoutów i retry ustawiasz u siebie do poprawnej komunikacji z FN. Bo inaczej będę musiał to sam badać :)
xB oddaje statusy (zaleznie of funkcji) w C, rejestrach i reg.statusu.
obecnie przy EOF znacznik C=1 co okazuje sie byc klopotliwe poniewaz:
jsr xBIOS_OPEN_DEFAULT_FILE
ldy <dest
ldx >dest
jsr xBIOS_LOAD_DATA
C=1
ale jak ustalimy ilość danych, nawet na dlugosc pliku to EOF nie zostanie osiagniety:
jsr xBIOS_OPEN_DEFAULT_FILE
ldy <data_len
ldx >data_len
jsr xBIOS_SET_LENGTH
ldy <dest
ldx >dest
jsr xBIOS_LOAD_DATA
C=0
obydwa przypadki zaladuja tyle samo danych ale w drugim przypadku nie osiagamy EOF.
prawdopodobnie, kolejna wersja xB zglosi EOF poprzez C=0
sa jakies przeciwskazania ktorych jeszcze nie widze?
pojawila sie nowa mysll aby dodac funkcjonalnosc ladowania danych w trybie "burst" (w uproszczeniu: pomijajac bufor w pewnych sytuacjach)
mozliwa realizacja tego jest poprzez usuniecie juz istniejacych niektorych funkcji lub dodanie kolejnej: wymiana modulu FS.
podobnie jak SET_DEVICE daje mozliwosc wymiany modulu I/O (dzieki temu mozemy obslugowac CAR/FDD/RAMDISK itp.)
po wymianie modulu FS przykladowo LOAD_FILE i LOAD_DATA dzialalyby "w trybie burst".
pieknie, 8bit-Unity dla Atari zaczyna uzywac skompresowanych binarek baj default. drugi po LiteDOS ktory uzywa formatu cex :D
poniewaz liczba programistow "C" korzystajacych z xB wzrostla do trzech :D to powstala wersja kierowana wlasnie dla userow "C":
- zintegrowany config (nie przeszukuje dysku w poszukiwaniu .cfg)
- zintegrowany OS SIO Driver
- zintegrowany dekompresor np. ladowanie spakowanych plikow binarnych (obecnie ZX0 ale wymienny na LZ4,aPL,ZX5)
Potrzebuję, aby XIOS był przechowywany skompresowany w pamięci ROM kartridża z grą. Inflate do pamięci, gdy wymagany jest dostęp do dysku. Używam Inflate/Deflate, ponieważ miał on, w czasie gdy go tworzyłem, dobry współczynnik kompresji. Pojawia się monit o to, który slot pliku ma być użyty, jak 0 do 9. Zapisuje się do pliku jak GAMSAV0 do GAMSAV9. Można go później ponownie załadować.
Mam dużą grę typu Adventure, którą złożyłem dla Atari 8-bit. Obecnie pracuję z systemem operacyjnym i zapisuję dane gry bezpośrednio do sektorów dysku, ale nie chcę mieć do czynienia z idiotami, którzy ignorują ostrzeżenia i umieszczają w systemie dysk z innymi plikami i kasują je. Są też wichrzyciele, którzy zrobią coś takiego celowo, aby twierdzić, że kartridż z grą jest wadliwy, próbowali dostać go za darmo lub żeby dostać darmową kopię od autora. Jeden z nich lubi zamieszczać obelgi na temat XXL w mediach społecznościowych i na forum AtariAge. Na razie powiem tylko, że nie lubię wchodzić na forum AtariAge, bo to toksyczne środowisko.
U mnie program ładuje się do pamięci przy 2800$ i zapisuje na dysk blok 2K, który ma wszystkie informacje o postępie gry.
pisz po angielsku bedzie nam latwiej.
z tego co zrozumialem:
1. masz gre na kartrydzu ktora ma zapisywac i ladowac dane z fdd - ten element chcesz zmienic.
2. dane z kartrydza ladujesz w swoj sposob, po zaladowaniu dekompresujesz dane - tego elementu nie chcesz zmieniac mimo, ze dekompresor ktorego uzywasz zajmuje razem z buforami ktorych potrzebuje do dzialania wiecej miejsca niz caly xB wraz z dekompresorem ZX0.
co do 1: chcesz wprowadzic zapis danych do pliku zamiast obecnego zapisu danych do sektorów
czy o to chodzi?
mam przygotowana (publikacja wraz z nowym 8bit-Unity) wersje xB ktora ma dekompresje plikow, dekompresor ladowania plikow binarnych w ZX0, jest krotsza (faktycznie moze byc dolaczana bo ma "w sobie" predefinicje dyskow) akurat dla kartrydzy to sie moze przydac.
I need XIOS to load into RAM at $2800 from cartridge. It will be loaded with a deflate routine. I use Inflate / Deflate because it had a good compression ratio at the time I created it. The game will program will ask which file slot to use, like 0 to 9. Saves to a file like GAMSAV0 to GAMSAV9. You can reload it later.
I have a big adventure game that I made for an Atari 8-bit. Currently, I'm working with the operating system and saving game data directly to disk sectors, but I don't want to deal with idiots who ignore warnings and put other files on the system and delete them. The program saves a 2K block from RAM to the disk, which has all the data for progress of the game. Variables, and what has happened so far.
I will keep the discussion here. The other thread seems to be about people who want to bully each other that makes asses out of everyone. I want to run the XBIOS parts that I need to name the files, access the directory, load the binary and save the variable area used for the cartridge game. This allows the player to save his progress in a large role-playing game. Variable space is stored at $2,800 and is approximately 2KB in size.
jesli planujesz produkcję tylko dla CAR to moim zdaniem nie ma potrzeby uzywania xB. sa rozwiazania zapewniajace zapis danych na CAR bez potrzeby angazowania filesystemu.
przykladem moze byc: https://github.com/jhusak/jataricart
jesli jednak chcialbys uzyc xB to w przypadku zapisu na car potrzebowalbys odpowiedniego przygotowania takiego car... to moze byc klopotliwe, rozwiazanie nr.1 jest prostsze
I want to write from memory to disk. XBIOS will be called from a cartridge game.
OK. I remember what I was trying to do a few years ago. I needed the XBIOS source code so, I can add my piece of code to prompt the user for the file name. The program will save or load the game files from there using XBIOS. I can assemble the routine call it when the player wants to save their game progress.
The program currently uses a function that directly writes to disk sectors with no file names. The users will just format a separate diskette with nothing else on it, just for the game files. I have concerns that someone will accidentally put in a disk with other important files on it
skoro decydujesz sie na ten moim zdaniem trudniejszy dla Ciebie wariant to w pierwszej kolejnosci musisz przygotowac dzialajaca swoja gre w pliku .atr, poniewaz chcesz miec mozliwosc zapisu na car wiec pliki ktore chcesz zapisywac umiesc w drugim .atr (mam nadzieje rozumiesz jak wyglada zapis do pamieci flash) mozesz dla uproszczenia umiescic kazdy plik zapisu w innym pliku .atr, nastepnie Twoja gra musi zapisywac do tych plikow - przetestuj to na emulatorze, umiesc w D1 twoja gre a D2-D15 kolejne atr z plikami save.
jesli to zrobisz przejdziemy do umieszczenia tego na car
---
przygotuj jakis test i mi wyslij zebysmy wiedzieli ze sie rozumiemy
OK. I remember what I was trying to do a few years ago. I needed the XBIOS source code so, I can add my piece of code to prompt the user for the file name. The program will save or load the game files from there using XBIOS. I can assemble the routine call it when the player wants to save their game progress.
The program currently uses a function that directly writes to disk sectors with no file names. The users will just format a separate diskette with nothing else on it, just for the game files. I have concerns that someone will accidentally put in a disk with other important files on it.
[Edit] I am attaching the current disk save/load system that accesses sectors directly.
Jak już jesteś na linii to mam kilka pytań związanych z xBIOSem. Nie znam go a interesuje mnie sprawa obsługi cartridgeów.
1. Czy xBIOS umiałby potraktować pamięć carta jak sektory dyskietek ale z dziurami? Czyli np. z banku 8kB tylko połowa jest na te sektory a druga połowa to coś tam.2. Czy biblioteki xBIOS umiałby się przecisnąć przez okno $D500-$D5FF. Chodzi mi, że jakbym zrobił takiego carta co przy zapisie bankuje jak zwykły Maxflash ale przy odczycie to tam w tym zakresie pojawi się normalny kod dla CPU to czy xBIOS dało by się ogarnąć w tych 256bajtach (ten zakres też mogłyby być bankowany)? Zmierzam do tego, żeby mając cart w ogóle nie używać pamięci RAM (no może stos).
1. tak,
2. tu są dwa problemy:
- xB uzywa samomodyfikacji a wiec standardowo nie moze byc uruchamiany z rom, moze byc skopiowany z rom do ram i tam dzialac. zmiana xB tak, zeby nie uzywal samomodyfikacji wydluzy kod (jesli mozliwa)
- xB ma tablice skokow na poczatku a wiec jesli masz bankowana pamiec z programem do odczytu na d5 do po powrocie programu z d5xx ta strona musialaby zawsze byc tak skonfigurowana zeby odczytywac ten pierwszy okreslony bank z tabela skokow xB.
Rozumiem.
Zawsze stronę D5XX mogę zrobić tak, że na początku dam sobie tablicę skoków. I w każdym "minibanku" te skoki będą identyczne. Więc przełączanie tych minibanków po D5XX nie wpłynie na powroty itp.
Bardzo ciekawy ten xBIOS :)
Przewertowałem 20 stron i nie znalazłem. Na stronie też jest zaszarzony.
XBios obsługujący kartridże MaxFlash/JCart. Niema. Smuteczek. A może czegoś nie rozumiem.
Strony Poprzednia 1 … 68 69 70 71 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Fabryka - 8bit » xBios - biblioteka IO dla gier ktore lubia przestrzen
Wygenerowano w 0.038 sekund, wykonano 41 zapytań