Du bist nicht angemeldet.

DustyBits

Pixelor-Team

  • »DustyBits« ist der Autor dieses Themas

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

1

24.03.2015, 09:23

"Racer 2" für Atari Falcon 030 - Homebrew Game

Update 25.02.2017 - DustyBits Neustart

Die Folge wird in Kürze online gehen ...

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »DustyBits« (25.02.2017, 13:56)


henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

2

24.03.2015, 13:50

Unglaublich! So etwas programmiert da jemand für den Falcon 030?!? Sehr gute und vor allem - für mich als Technik-Freak - sehr informative Folge! Gerne mehr davon! :)

Bei »... Dusty Witz ... « habe ich auch wieder herzlich gelacht. :-)


** Techno-Babble **
Das mit dem Framebuffer bei 65.536 Farben wusste ich gar nicht. 6 Frames für die Darstellung eines Bildes ... typisch Atari.

Aber kann das sein? Ich habe mal ein wenig nachgerechnet. Ich kenne jetzt die Falcon-Programmierung nicht, aber ich schätze mal, dass dieser Modus nicht wie beim Amiga mit HAM/HAM8 zustande kommt, sondern einfach zwei Byte für ein Pixel verwendet werden (RGB565); ähnlich wie bei alten VGA-Karten. Bei 320x240 Pixel benötigt man dann exakt 128.000 Byte. Bei einem 16-MHz 32-Bit-Bus 16-Bit-Bus wären die rohe Datenübertragungsrate 32 MB/s. Nehmen wir mal ein Fünftel davon - weil die RAMs refreshed werden müssen, der Display-DMA läuft und der 68030er liefert ja auch nicht bei jedem Takt ein 16-Bit-Wort - dann kommen wir auf 6,4 MB/s. Damit wäre ein Frame in 0,02 s Übertragen und das wären 50 Hz. Oder ist die Berechnung auf dem 030er so langsam? Ich habe da echt keine Ahnung.

Obwohl, eigentlich kann ich mir die Frage selber beantworten: Der 68030er ist ja kein RISC-Prozessor, braucht für die Befehle also deutlich mehr Taktzyklen. Vermutlich ist man eher so bei alle 15 bis 30 Takte ein berechnetes Datenwort. Und dann kommt das schon wieder hin.

Wenn der Programmierer den 256-Farben-Modus verwendet hätte, dann könnte die Bildrate vermutlich noch mal nach oben gehen. Aber ich schätze mal, dass der Ansporn auch war, ein Rennspiel mit 65.536 Farben auf dem Falcon darzustellen.

Und das ist hier jetzt bitte um Himmels Willen kein Herumgedeutel an der Leistung ... ich finde das grandios, was er da auf die Beine gestellt hat! :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »henrikf« (24.03.2015, 15:16)


DustyBits

Pixelor-Team

  • »DustyBits« ist der Autor dieses Themas

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

3

24.03.2015, 14:52

Der Bus läuft mit 16 MHz und ist 16 Bit breit...

Ich habe nie auf dem Falcon programmiert aber Laurent hat mir ein paar Beispiele geschickt.
Deshalb stelle ich das mal nicht in Frage - der 256 Farben BitplaneModus ist tatsächlich noch langsamer bei dieser Art der Grafikberechnung.

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

4

24.03.2015, 15:15

Der Bus läuft mit 16 MHz und ist 16 Bit breit... [...]

Ach Mist, das meinte ich auch. Ich hab's oben korrigiert.

[...] Ich habe nie auf dem Falcon programmiert aber Laurent hat mir ein paar Beispiele geschickt.
Deshalb stelle ich das mal nicht in Frage - der 256 Farben BitplaneModus ist tatsächlich noch langsamer bei dieser Art der Grafikberechnung.

Alles klar.

Wie gesagt: Ich wollte da nix in Frage stellen ... nur ein wenig Techno-Fachsimpeln. Ich hoffe, das kam nicht falsch rüber. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

  • »DustyBits« ist der Autor dieses Themas

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

5

24.03.2015, 15:16

nein... ich habe laurent um code Beispiele gebeten ... ich poste die dann

DustyBits

Pixelor-Team

  • »DustyBits« ist der Autor dieses Themas

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

6

24.03.2015, 15:22

Aus der ersten Antwort von ihm:


I mean in 320x200 true color, copying a picture on a dest screen takes 6 VBLs (yes, 6) with an algo like this

movem.l (a5)+,d0-a4
movem.l d0-a4,(a6)

So just to copy a static picture is 6 VBLs, but displaying a whole frame in Racer 2 includes :
- refresh of all the graphics
- get the player movements
- recompute all the sprites pos
- detect collisions (with road borders, with other drivers, with offroad sprites and between drivers)
- bonuses / race management
- sounds management, special effects (whosh sounds, ...)

Everything is done in 3 VBLs (so 3 VBLs better than just copying a picture on screen)

So, the greatest coding challenge is on the 68030 optims (always keep the code into the instr cache), reuse as much as possible the registers and trick a little where nobody can see it ;)

The second most important "coding challenge" was the memory management to keep the game for 4 Megs machines like mine.
Keeping all the sprites, textures, sounds, in memory + the game itself was a real challenge.
I had to be very careful, a little change in the memory management or in a routine could break many circuits that were "short" in memory

7

24.03.2015, 15:24

Dieses Racing Game sieht so..... schön aus! Auf sowas fahre ich total ab :love: Wisst ihr ja ... Viele reine Falcon Spiele wurden ja nicht veröffentlicht. Ich meine so richtig boxed. So'n originales Pinball Dreams für Falcon würde mir echt gefallen....
Sir Pommes: "What the Fatsch!"