[#331] Re: Dewelopment gry Sołtys

@Don_Adan, post #296

Jeszcze jeden blad byl.
Spliter
  move.l AllocMemPtr,A0
  move.l AllocMemSize,D7
  move.l A0,BufferPtr
  move.l D7,BufferSize
NextFile
  move.l BufferPtr,A0
  move.l BufferSize,D7
  moveq  #16,D2
  cmp.l  D2,D7
  ble.b  UpdateBuff
  tst.b  (A0)
  beq.w  Quit
  cmp.b  #"-",2(A0)
  bne.w  Quit
  cmp.b  #"l",3(A0)
  bne.w  Quit
  cmp.b  #"h",4(A0)
  bne.w  Quit
  cmp.b  #"0",5(A0)
  bne.w  Quit

  moveq  #2,D2
  add.b  (A0),D2
  move.l A0,A2
  add.l  D2,A2  ; pointer to file data, if no subdirectory
  move.b 10(A0),D1
  lsl.w  #8, D1
  move.b 9(A0),D1
  swap   D1
  move.b 8(A0),D1
  lsl.w  #8, D1 
  move.b 7(A0),D1 ; skip size
  add.l  D1,D2
  sub.l  D2,D7
  bpl.b  InBuffy
  add.l  D2,D7
UpdateBuff
  move.l AllocMemPtr,A1
  move.l A1,BufferPtr
CopyRest
  move.b (A0)+,(A1)+
  subq.l #1,D7
  bne.b  CopyRest
  move.l A1,A0
  jsr    UpdateBuffer  ;  read next part of file from new file offset to A0 and set new D7
  move.l D7,BufferSize
  bra.b  NextFile
InBuffy
  add.l  D2,BufferPtr
  sub.l  D2,BufferSize
  move.b 14(A0),D0
  lsl.w  #8, D0 
  move.b 13(A0),D0
  swap   D0
  move.b 12(A0),D0
  lsl.w  #8, D0 
  move.b 11(A0),D0 ; file size to save
  move.b 21(A0),D2 ; length of file name
  lea    22(A0),A0 ; pointer to file name
  move.l PathEndPtr,A1
  sub.l  D0,D1
  beq.b  CopyName
  add.l  A2,D1
  cmp.b  #2,(A2)+
  bne.b  Quit
 CopyPath
  move.b (A2)+,(A1)+
  cmp.b  #-1,(A2)
  bne.b CopyPath
  move.b #"/",(A1)+   ; insert slash
  move.l D1,A2
CopyName
  move.b (A0)+,(A1)+
  subq.b #1,D2
  bne.b  CopyName
  clr.b (A1)  ; end of path
  move.l A2,A0 ; pointer to memory
; D0 - size of memory to save
  jsr    SaveFile
  bra.w   NextFile
Quit
  rts

AllocMemPtr
 dc.l 0
AllocMemSize  ; must be greater than the biggest splited file
 dc.l 0
BufferPtr
 dc.l 0
BufferSize
 dc.l 0
PathEndPtr ; slash or colon
 dc.l 0
[#332] Re: Dewelopment gry Sołtys

@Don_Adan, post #330

Może też jest tego zdania co ja, że mamy 2025 rok i szkoda się bawić w dyskietki. Tak się przyjęło, że większość gier to 1, 2 lub 3 dyskietki, czyli bardzo ograniczone miejsce na dane dla gry. No chyba że w NDOSie.
[#333] Re: Dewelopment gry Sołtys

@tukinem, post #332

No wlasnie, mozesz zrobic wersje instalacyjna NDOS.
Drugi, trzeci i czwarty dysk, bylyby NDOS.
Tak jak TeenAgent ma, pierwszy dysk DOS, a pozostale 5 dyskietek NDOS.
Od razu wiecej danych sie wtedy upchnie na dyskietce.
I pelna wersja gry zmiescilaby sie na 4 dyskietkach wtedy.
Masz dobre pomysly.
Tylko 4 dyskietki, dla gry zajmujacej 10 MB, tego jeszcze na Amidze nie bylo.
[#334] Re: Dewelopment gry Sołtys

@Don_Adan, post #333

Gorzej z realizacją tych pomysłów... Ja nie wiem jak ogarnąć NDOS. No i jakby to miało działać? Cały plik 12 MB spakować LZMA i podzielić na dyskietki NDOS? Obawiam się, że to zbyt duży projekt żebym się uczył na nim. No i musiałbym w ASM One napisać cały kod, który podzieli plik po spakowaniu LZMA na części a następnie skopiuje jego dane na dyskietki. Jak to się robi? Nie wiem. Wolałbym aż tak nie szaleć bo mogę narobić dziadostwa.
[#335] Re: Dewelopment gry Sołtys

@tukinem, post #334

Od prostego dzielenia jest FileMaster 2.2 i opcja Cut.
Ale jak chcesz mozesz napisac wlasna procedure.

Na przykladzie tego dema do ktorego zrobiles juz instaler.
To masz 4 pliki LZMA, laczysz je teraz LHA w jedno archiwum.
Otrzymujesz np. plik 2,4 MB.
Dzielisz ten plik na 2 pliki o wielkosci 901120 bajtow (to sa ADF-y NDOS), a trzeci plik to bedzie 600 kB, kopiujesz na dyskietke 1 jako zwykly plik.
Czyli na pierwszej dyskietce masz installer, i pliki potrzebne dla skryptu instalujacego plus reszte z tego pliku 2.4 MB.

Instaler kopiuje ta reszte na HD, robi ADF-a z dyskietki 2 i 3.
Potem je laczy Join.
Depakuje LHA (czyli masz juz te 4 pliki LZMA).
A dalej robisz tak jak w Instalerze masz.

Dla mnie to jest dosc proste do zrobienia (zakladajac, ze mam spakowane pliki LZMA, bo nie mam PC-ta, zeby to zrobic).
Dla Ciebie to nie wiem.
A sens ma raczej tylko wtedy, gdy dzieki temu zyskujemy 1 dyskietke.
Czyli np. demo gry Soltys bedzie na 3 dyskietkach, a nie na 4 dyskietkach.
[#336] Re: Dewelopment gry Sołtys

@Don_Adan, post #335

Czyli zapisany plik o rozmiarze 901 120 B zapisuję jako plik ADF i on będzie już wtedy obrazem dyskietki?

A jak później odczytać takie dyskietki?

Ostatnia aktualizacja: 17.01.2025 07:15:16 przez tukinem
[#337] Re: Dewelopment gry Sołtys

@tukinem, post #336

Tak, będzie obrazem dyskietki.
A jak odczytać ?
Tak samo jak robi się z dyskietki obraz adf .
[#338] Re: Dewelopment gry Sołtys

@Norbert, post #337

No nie do końca to tak jest. Przy tworzeniu pliku z rozszerzeniem .ADF 880 kB nie ma problemu. Ale odczyt takiej dyskietki to już co innego. Mając dyskietkę w stacji nie zmienię DF0: na soltys1.pack przecież.
[#339] Re: Dewelopment gry Sołtys

@Don_Adan, post #320

Kwestia użycia xfdmaster już rozwiązana. Zezwolenie mam na użycie
No problem.

I hereby grant you permission to include xfdmaster.library in the game
installer with one condition: You do not need to distribute the whole
package es requested in the documentation, but either in the game or the
game documentation must be stated, that the library is used and where to
find the full software (either Aminet link or my webpage, whatever you
like better .

Sincerely


W takim razie obok pliku xfddecrunch muszę stworzyć plik .DOC, w którym będzie link do Aminetu z całym oprogramowaniem xfdmaster oraz link do strony samego autora. Chyba o to chodzi.
[#340] Re: Dewelopment gry Sołtys

@tukinem, post #338

Robisz obraz dyskietki za pomoca np DIC.
I laczysz z innymi czesciami archiwum.
Nazwa obrazu moze byc dowolna, chocby Tuki.bin.
Normalnie to DIC o ile nie podasz mu jaka chcesz nazwe to nazywa obrazy dyskietek Disk.1, Disk.2 itd

Cos takiego mniej wiecej musisz zrobic w instalerze.
(run "JOIN RAM:disk.1 RAM:disk.2 RAM:soltysrest.bin AS RAM:soltysLZMA.join")
(run "SOLDEMO1:C/lha x RAM:soltysLZMA.join")
(delete "RAM:soltysLZMA.join")
(run "xfdDecrunch RAM:soltys1.pack")
(run "xfdDecrunch RAM:soltys2.pack")
(run "xfdDecrunch RAM:soltys3.pack")
(run "xfdDecrunch RAM:soltys4.pack")
(run "JOIN RAM:soltys1.pack RAM:soltys2.pack RAM:soltys3.pack RAM:soltys4.pack AS RAM:soltys.join")
(run "SOLDEMO1:C/lha x RAM:soltys.join RAM:")

Zobacz sobie taki instaler FastBrain. Uruchom go. I wloz dowolna dyskietke do stacji. Bedziesz widzial/wiedzial jak dziala DIC.
link

Ostatnia aktualizacja: 17.01.2025 12:39:50 przez Don_Adan
[#341] Re: Dewelopment gry Sołtys

@tukinem, post #338

A co za problem żeby stworzony adf z dyskietki miał nazwę soltys1.pack.
Przy instalacji gry na HDD użytkownik musi wkładać dyskietki do stacji zgodnie z poleceniami Instalera
[#342] Re: Dewelopment gry Sołtys

@tukinem, post #339

Jesli chcesz to ladnie zrobic, to taki doc moglby byc z Instalatorem zintegrowany i wyswietlal by sie taki tekst na poczatku
"This install script uses xfdmaster.library, full package available at Aminet https://aminet.net/package/util/pack/xfdmaster"
1
[#343] Re: Dewelopment gry Sołtys

@Don_Adan, post #340

Demko zostawię jak jest bo i tak tu się nic nie ugra, ale pokombinuję z DIC bo może się przydać do pełnej wersji.

Masz rację co do komunikatu wyświetlającego linki do strony autora w installerze. Wystarczy tu użycie komendy (message) na początku chyba.
[#344] Re: Dewelopment gry Sołtys

@tukinem, post #343

Doca i tak malo kto czyta, a takie info na poczatku byloby wedlug mnie w sam raz, i kazdy kto instaluje gre by je zobaczyl.
Ja bym jeszcze nizej dodal info o PackFire by hitchkihrs
1
[#345] Re: Dewelopment gry Sołtys

@Don_Adan, post #344

I depacker by DonAdan
[#346] Re: Dewelopment gry Sołtys

@tukinem, post #345

Mozesz wymienic kogo chcesz, np. Krashan for installer support

Ostatnia aktualizacja: 17.01.2025 15:12:44 przez Don_Adan
[#347] Re: Dewelopment gry Sołtys

@Don_Adan, post #346

Musiałbym wszystkich pytać o zgodę.
[#348] Re: Dewelopment gry Sołtys

@tukinem, post #347

Pozdrowienia i podziekowania nie potrzebuja zgody.
Wiec dowolny message mozesz dodac do dema.
Tym bardziej, ze demo gry bedzie mialo duzo wiecej odbiorcow, niz wersja final gry.
Dopiero jak piracka wersja na Chomiku sie pojawi.
No i mozesz jeszcze do dema dodac tekst typu:
Full version of Soltys will be available in May 2025 from https://retronics.eu/?a=cat&id=33&l=en

Edycja. Oczywiscie chodzi mi o message w Instalatorze.

Ostatnia aktualizacja: 17.01.2025 22:58:51 przez Don_Adan
[#349] Re: Dewelopment gry Sołtys

@Don_Adan, post #348

Szkoda, że message nie jest w stanie wyświetlić zawartości pliku tekstowego. Wstawienie całego tekstu w jeden łańcuch porażka :) No i nie mogę powstawiać znaków końca lini, chyba że da się?
[#350] Re: Dewelopment gry Sołtys

@tukinem, post #349

Na pewno sie cos da zrobic.
Sprobuj.
run echo
run type plik.txt
albo Krashan podpowie.
[#351] Re: Dewelopment gry Sołtys

@Don_Adan, post #350

I jeszcze jedno mi przyszlo do glowy.
Jak nie mam sklerozy to uzywasz w grze katalogu "Soltys".
Zmien go na katalog "Soltys demo".
Bo moga byc problemy jak ktos bedzie instalowal pelna wersje gry w to samo miejsce gdzie ma juz zainstalowane demo gry Soltys.
[#352] Re: Dewelopment gry Sołtys

@Don_Adan, post #350

A z innej beczki... Jak odczytać taką dyskietkę NDOS? Może założyć osobny wątek? Mam taką skromną minigierkę, którą napisałem z pomocą Asmana w AsmOne co plik exe zajmuje kilka kB i czy trudno taki exe przerobić na ADF bootowalny w NDOSie? Może to byłby dobry start żebym zrozumiał obsługę takich nośników? Na pewno inaczej będzie z odczytem danych z takiej dyskietki.

Co do nazwy katalogu nie będzie problemu. Nawet save z dema działa na pełnej wersji :D na odwrót nie, bo będzie zwiecha, jeśli save będzie z lokacji dalszej niż ósma.

Ostatnia aktualizacja: 17.01.2025 23:25:48 przez tukinem
[#353] Re: Dewelopment gry Sołtys

@tukinem, post #352

Nie trudno, jesli to mozna od razu wczytac cale do pamieci, czyli bez doczytywania danych.
Traktuj to jak intro/cracktro.
Tylko, ze ja juz nic nie pamietam.
Potrzebujesz jakis prosty bootblock, ktory wczyta traki z ta gra do pamieci.
I skoczy pod ten adres.
[#354] Re: Dewelopment gry Sołtys

@tukinem, post #349

I autor PackFire to jest "hitchhikr", zle napisalem poprzednio.
[#355] Re: Dewelopment gry Sołtys

@Don_Adan, post #353

To jest po prostu zwykły Pong na dwóch graczy. Exe to jak pamiętam 14 kB, a po spakowaniu Stonecrackerem to 2 kB. Asman mi pomógł z obsługą sprajtów, DMA i powrotem do systemu, chociaż teraz w przypadku przejścia na NDOS powrót do systemu jest zbyteczny.

Nie ma żadnego doczytywania danych w grze, jest na końcu tylko IncBin, ale to po kompilacji samo wkleja do exe. Tutaj jest kod gierki. 2 tygodnie to męczyłem.

Teraz sprawdziłem autora Packfire i pisze: hitchhikr/Neural.

Ostatnia aktualizacja: 17.01.2025 23:32:24 przez tukinem
[#356] Re: Dewelopment gry Sołtys

@Don_Adan, post #353

Jeżeli dobrze pamiętam, to Frank Wille zrobił jakieś "pudełkowe" rozwiązanie na przenoszenie gier na dyski NDOS (np. "Solid Gold" i kilka innych), a w 2023 lub 2024 ktoś stworzył taki "odpalacz" takiego ADF z grą w wersji NDOS z HD (przykład to gra "Glubble" - kopiujesz na HD plik ADF oraz jakiś mały EXE to uruchamiający).
[#357] Re: Dewelopment gry Sołtys

@tukinem, post #349

Wstawienie całego tekstu w jeden łańcuch porażka :) No i nie mogę powstawiać znaków końca lini, chyba że da się?
Z koniecznością wstawiania całego tekstu w jeden łańcuch można sobie poradzić używając cat. Znak końca linii oczywiście, że można wstawić: \n. Oto ilustracja obu zagadnień:



Trzeba tylko pamiętać, że cat nie wstawia spacji między fragmenty tekstów, więc trzeba je powstawiać w tychże fragmentach. A no i koniec linii po ostatnim "S" jest zbędny, ale nie chciało mi się już robić nowego obrazka...
1
[#358] Re: Dewelopment gry Sołtys

@tukinem, post #355

Pierwszy krok to jest zwykle przerobienie pliku exe na plik binarny absolutny.
Ja do tego celu uzywalem zwykle StoneCrackera lub Crunchmanii.
Load/Jump daj na np. $60000.
Spakuj jako absolutny.
Uruchom czy dziala ok.
Jesli tak to zdepakuj xfdDecrunch.
I masz plik binarny absolutny.
[#359] Re: Dewelopment gry Sołtys

@Krashan, post #357

Ach... nie wiedziałem że używając cat można wstawiać dowolną ilość parametrów, czyli części składowych

@DonAdan: czytałem na EAB że można również skompilować w AsmOne, tylko nie komendą WO, a tam, gdzie podaje się adres początkowy BEGIN, czy START. Oczywiście metodę Stonecrackerem spróbuję. Jeśli się uda, to potem domyślam się, że bootloader muszę przepisać z książki Doligalskiego i plik binarny exe wstawić w odpowiedni adres a później zapisać całość jako plik binarny $DC00 i zmienić nazwę na .adf... rozpędziłem się z głośnym myśleniem chyba

Ostatnia aktualizacja: 18.01.2025 17:57:58 przez tukinem
[#360] Re: Dewelopment gry Sołtys

@tukinem, post #359

Myslalem, ze to gra w BB2.
W ASM-One, mozna od razu zapisac plik jako binarny absolutny.
Choc ja tak nigdy nie robilem.
Skoro to prosta gra to lepiej adres wczytywania ustaw na $30000 a nie na $60000, to jeszcze wtedy na A1000 z 256 KB zadziala.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem