[#31] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #30

Czyli wnosi
[#32] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #30

Po drugie, Aminet bardziej służy chyba grom / programom dla systemu.


O na przykład: https://aminet.net/demo/mega/BudBrainMegaII.dms

szeroki uśmiech
[#33] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #28

stary DOBRY snake
na stare komy np NOKIA
:)
ale działa zdecydowanie za szybko xD
hehe
[#34] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #30

Mniej jest wazne w czym sie robi, ale jest wazne kto to robi.
Z tego co wiem demo gry Rastan dziala na A500 z 1MB RAM, i taki jest target autora.
Ktory robi gre w SE.
[#35] Re: Gra dla posiadaczy koszernej Amigi

@Don_Adan, post #34

Demo Tonego również działa na 0,5+0,5 MB. Później dla pełnej wersji kod urósł, doszły nowe wodotryski i plik uruchamialny zajął prawie cały slow RAM.

Ostatnia aktualizacja: 16.06.2024 05:52:36 przez tukinem
[#36] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #30

Nie widzę sensu wrzucać takiej pchełki tam. Może inaczej bym podszedł do tematu, gdybym napisał takiego Snake'a pod system działającego w okienku systemowym.
Na Aminecie jest ponad 10 gier w węża działających na Workbenchu.
3
[#37] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #30

Nie martw się i nie czytaj bzdurnych komentarzy. Tony to bardzo fajna i dopracowana gra, gratuluję wytrwałości i życzę przyszłych sukcesów!
6
[#38] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #30

To po prostu mój odzew na komentarze, że jeśli Amiga 500, to tylko goła / koszerna

Jeszcze powinieneś to zaprogramować tak aby z samego adfa nie dało się tego uruchomić tylko z prawdziwej dyskietki żeby tym "amigowym ortodoksom" utrzeć nosa gdyby chcieli korzystać z nośników cyfrowych typu karta SD/CF czy gotek
2
[#39] Re: Gra dla posiadaczy koszernej Amigi

@Madman, post #38

utrzeć nosa gdyby chcieli korzystać z nośników cyfrowych typu karta SD/CF czy gotek

W przypadku goteka wystarczyłoby włączyć tryb DIRECT.
Gotek przechodzi w tryb bezpośredniego dostępu do plików na pendrive, (do odczytu lub zapisu)
Jak wykryć że coś odpalone jest poprzez whdload a nie z dyskietki ?
[#40] Re: Gra dla posiadaczy koszernej Amigi

@Norbert, post #39

Jesli to NDOS to sprawdzasz baze exec, bodaj $0000000F tam jest o ile mnie pamiec nie myli.
A jezeli to ma byc kick 1.2 to sprawdzasz co jest pod $00fc0004. Tez o ile mnie pamiec nie myli.
Oczywiscie jesli chodzi o wykrycie WHDload, bo wykrycie WinUAE trzeba by inaczej zrobic.
2
[#41] Re: Gra dla posiadaczy koszernej Amigi

@Norbert, post #39

Jak wykryć że coś odpalone jest poprzez whdload a nie z dyskietki ?

A skąd mam wiedzieć? To był żart
[#42] Re: Gra dla posiadaczy koszernej Amigi

@Madman, post #41

Implayer wykrywa czy jest odpalany w WinUAE czy na sprzecie.
Moim zdaniem ten wymog bylby istotnijszy w tej konkretnej grze.
1
[#43] Re: Gra dla posiadaczy koszernej Amigi

@Madman, post #41

Oj tam żart.
Jak "jechać" z koszerną Amiga , to już do końca. szeroki uśmiech
[#44] Re: Gra dla posiadaczy koszernej Amigi

@Ralpheeck, post #42

Amiga Game Selector ma w startup-sequence sprawdzanie jakiegoś pliku z UAE. Pamiętam że to mi blokowało uruchomienie na realnej Amidze.
[#45] Re: Gra dla posiadaczy koszernej Amigi

@Ralpheeck, post #42

Czyli co, Imp wykrywa WinUAE jesli sie go odpali na w pelni kompatybilnym konfigu A500+/A600 kick 2.0, 1MB chip, bez zadnych sterownikow z WinUAE, czyli na scsi.device i bsdsocket.library i ze stacja dyskietek o 100% szybkosci?
[#46] Re: Gra dla posiadaczy koszernej Amigi

@Norbert, post #43

Amiga 1000 256 kB RAM.
1
[#47] Re: Gra dla posiadaczy koszernej Amigi

@amikoksu, post #46

Nie zjadę do 256KB RAM, nie ma nawet co próbować :P
[#48] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #47

Dasz radę. Może być z doczytywaniem w trakcie rozgrywki.
[#49] Re: Gra dla posiadaczy koszernej Amigi

@amikoksu, post #48

Jak lubisz gry sportowe to mogę napisać taką w Amosie, wymagania to klawiatura i szybkie palce. Będziesz miał listę rekordów. 100 leveli. Tylko potrzebuję do testów A1000 i kogoś kto napisze FABUŁĘ do tej świetnie zapowiadającej się gry.
[#50] Re: Gra dla posiadaczy koszernej Amigi

@koczis, post #49

Samo dołączenie amos.library zajmie już 10% RAM
1
[#51] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #50

Połowa rozmiaru kodu Twojej gry służy pewnie do sprawdzania czy odpalone na gołej A500 😂
[#52] Re: Gra dla posiadaczy koszernej Amigi

@_DiskDoctor_, post #51

Raczej nie. Czy się sprawdza, czy się to wyłączy, to gra podobnie zżera pamięć.

Ostatnia aktualizacja: 21.06.2024 22:22:08 przez tukinem
[#53] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #52

Oto cały kod gry dla ciekawych:
WBStartup        

#WYTNIJSHAPY=0


CNIF #WYTNIJSHAPY=1
  BitMap 0,80,64,1
  LoadBitMap 0,"snake.iff"
  GetaShape 10,0,0,73,48
  For a=0 To 9
    GetaShape a,a*4,48,4,5
  Next
  GetaShape 11,39,48,8,8
  Free BitMap 0

  SaveShapes 0,11,"GFX.SHP"
CEND





NEWTYPE .coords
  x.w
  y.w
End NEWTYPE

DEFTYPE .coords G
DEFTYPE .w score
DEFTYPE .b k,counter,bonus

Dim List moves.coords(512)
Dim map.b(21,21)


DefaultOutput
If Processor>0
  NPrint "ONLY 68000 !!!"
  End
EndIf

If FastFree>0
  NPrint "NO FAST OR SLOW MEMORY !!!"
  End
EndIf

If ExecVersion>33
  NPrint "ONLY KICKSTART 1.2 !!!"
  End
EndIf

If ChipFree>512000
  NPrint "You don't need that much of CHIP RAM !!!"
  End
EndIf

NPrint "WOW !!!      You   have   a   proper configuration"
NPrint "of your Amiga, but  this  game  uses only  0,001%"
NPrint "of resources of your computer"
NPrint "so  you  can  run  another game..."

NPrint ""
NPrint "If you have a joystick, then press FIRE..."
While Joyb(1)=0
  VWait
Wend

.LadujDane

LoadShapes 0,"GFX.SHP"
M.l = AllocMem_(FileSize("mus.mod"),2)
BLoad "mus.mod",M

MOVE.b #%01111000,d0
MOVE.b d0,$bfd100
NOP
NOP
ORI.b #%10000000,d0
MOVE.b d0,$bfd100
NOP
NOP
ANDI.b #%10000111,d0
MOVE.b d0,$bfd100

MTInit M,0,0


BitMap 0,192,192,1


InitPalette 0,2
PalRGB 0,0,$5,$c,$3
PalRGB 0,1,$3,$3,$2

VWait
BLITZ



Statement score{score.w}
  Boxf 8,0,24,5,0
  score$ = Str$(score)
  While Len(score$)<4
    score$ = "0"+score$
  Wend
  For a=1 To Len(score$)
    Blit Val(Mid$(score$,a,1)),a LSL 2+4,0
  Next
End Statement



Statement BONUS{}
SHARED map()

  a.b = Rnd(22)
  b.b = Rnd(22)

  While map(a,b)=1
    a.b = Rnd(22)
    b.b = Rnd(22)
  Wend

  map(a,b)=2
  Blit 11,a LSL 3+8 , b LSL 3+10
End Statement



InitCopList 0,64-NTSC*20,192,$1,8,2,-4
DisplayAdjust 0,-16,32,-32,64,-64
DisplayBitMap 0,0
DisplayPalette 0,0
CreateDisplay 0




; Ustawienie kolorow Copperem

For i.w = 0 To 189
  DisplayRGB 0,0,i,$4+Rnd(2),$c+Rnd(2),$3+Rnd(2)
Next




JSR StartScreen

.MAIN
Repeat
  TST.b frame
  BNE.b 'minus
  MOVE.b #2,frame
  BRA 'endframe
'minus
  SUBQ.b #1,frame
'endframe

VWait

ResetList moves()
If Peek.b(?frame)=0
  If NextItem(moves())
    Boxf moves()\x LSL 3+8,moves()\y LSL 3+10,moves()\x LSL 3+15,moves()\y LSL 3+17,0
    If bonus=False
      map(moves()\x,moves()\y) = 0
      KillItem moves()
    Else
      bonus=False
    EndIf
  EndIf
  Select k
    Case 1 : G\y-1
    Case 2 : G\y+1
    Case 4 : G\x-1
    Case 8 : G\x+1
  End Select

  G\x = QWrap(G\x,0,22)
  G\y = QWrap(G\y,0,22)

  Select map(G\x,G\y)
    Case 1 : JSR GameOver
    Case 2 : bonus = True : score+5 : score{score} : BONUS{}
             For i = 0 To 189
               DisplayRGB 0,0,i,$4+Rnd(2),$c+Rnd(2),$3+Rnd(2)
             Next
             DisplayPalette 0,0
  End Select

  If AddLast(moves())
    moves()\x = G\x
    moves()\y = G\y
    map(moves()\x,moves()\y) = 1
  EndIf
  Boxf G\x LSL 3+8,G\y LSL 3+10,G\x LSL 3+15,G\y LSL 3+17,1
  blockmove=False
EndIf

If RawStatus($45) : JSR StartScreen : EndIf

If blockmove=False
  If Joyy(1)=-1 AND k<>2 Then k=1 : blockmove=True
  If Joyx(1)=1  AND k<>4 Then k=8 : blockmove=True
  If Joyx(1)=-1 AND k<>8 Then k=4 : blockmove=True
  If Joyy(1)=1  AND k<>1 Then k=2 : blockmove=True
EndIf

Forever



.StartGame
Cls
Line 7,6,184,6,1
Line 7,7,184,7,1
Box 7,9,184,186,1

score = 0
k     = 8
G\x = 10 : G\y = 10 : k = 8
For j=0 To 21
  For i=0 To 21
    map(i,j) = 0
  Next
Next
ClearList moves()

score{score}
BONUS{}

RTS

.StartScreen
MTEnd
Cls
Blit 10,64,64

While RawStatus($45)
  VWait
Wend

While NOT Joyb(1)=1
  VWait
  If RawStatus($45) Then End
Wend
MTPlay On
JSR StartGame

RTS



.GameOver
BitMapOutput 0
Locate 6,0
NPrint "GAME OVER"
While Joyb(1)=0
  VWait
  For i = 0 To 189
    DisplayRGB 0,0,i,$4+Rnd(2),$c+Rnd(2),$3+Rnd(2)
  Next
  DisplayPalette 0,0
Wend
While Joyb(1)=1
  VWait
Wend
JSR StartScreen
RTS




Even
frame
Dc.w 0
4
[#54] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #53

Ciekawe.

W czym to jest napisane?
[#55] Re: Gra dla posiadaczy koszernej Amigi

@_DiskDoctor_, post #54

Blitz Basic 2 z niewielką domieszką asemblera.
1
[#56] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #53

MOVE.b #%01111000,d0
MOVE.b d0,$bfd100
NOP
NOP
ORI.b #%10000000,d0
MOVE.b d0,$bfd100
NOP
NOP
ANDI.b #%10000111,d0
MOVE.b d0,$bfd100


Co robi ten program? Aktywuje wszystkie stacje dysków i... porusza głowicami?
[#57] Re: Gra dla posiadaczy koszernej Amigi

@karolb, post #56

Blitz Basic ma taki dziwny odczyt danych z dyskietek, że po odczytaniu trzeba wstrzymać na długo (kilka sekund) program, aby silniczek w stacji się zatrzymał, bo jak nie to zostaje cały czas włączony i pracuje.

Ten kawałek kodu w asemblerze ręcznie wyłącza silniczek w wszystkich czterech stacjach DF0-DF3, bo nigdy nie wiadomo z której stacji uruchomiliśmy grę. Sam przerobiłem kod z książki z asemblera, bo tam jest to trochę inaczej napisane. Tam używają komend BSET i BCLR. Gdybym tak musiał stosować do 4 stacji jednocześnie, to musiałbym użyć 4 komend BSET i 4 komend BCLR. Lepiej było mi użyć rejestru D0 i na nim używać operacji logicznych do zapalania/gaszenia konkretnych bitów.
2
[#58] Re: Gra dla posiadaczy koszernej Amigi

@amikoksu, post #48

Dasz radę. Może być z doczytywaniem w trakcie rozgrywki.


Miałeś rację. Zjechałem do minimum.
Snake A1k można testować. Działa tylko na Amidze 1000 z 256 kB chip ram, kickiem 1.2 i bez żadnych fast ramów nawet muzyka gra, tylko inna, bo tamta zajmowała 80kB i brakło pamięci (gra się wieszła po sekundzie od ruchu wężem).
1
[#59] Re: Gra dla posiadaczy koszernej Amigi

@tukinem, post #58

Czy ja dobrze rozumiem, że to działa TYLKO na A1000 z 256 KB czy chodzi o to, że minimum 256 KB? Bo jeśli to pierwsze, to raczej niewiele osób w to zagra i trochę mija się to z celem. Chyba że tak miało być? Rozumiem, że tu w wątku to można robić różne jaja, ale jak widzę wrzuciłeś to na itch, więc chyba chodzi o to, żeby mogło zagrać jak najwięcej osób?
[#60] Re: Gra dla posiadaczy koszernej Amigi

@diobou, post #59

WinUAE albo mala modyfikacja kodu.
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