Du bist nicht angemeldet.

1

17.04.2017, 21:02

(C64) LFT: A Mind is Born

Da schiebe ich noch eins hinterher.

Die folgende C64-Demo ist 256 Bytes groß (nein, keine Zahl vergessen oder verdreht - die 4K im Video-Titel beziehen sich auf die Wettbewerbskategorie. LFT hat den Code nach der Compo gezeigt), wirkt im ersten Moment befremdlich und wie ein einziger Glitch. Bei dem, was da ab etwa 30 Sekunden passiert, setzt meine Vorstellungskraft komplett aus. Ich habe schon gehört, dass man Musik über Algorithmen generieren kann, begreife das Konzept dennoch nicht. Schon gar nicht mit dem Winz-Code.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »v3to« (17.04.2017, 21:50)


henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

2

17.04.2017, 21:46

Ich habe mir erlaubt, das in einen neuen Thread zu schieben. Ich habe ja extra eine Untersektion in unserem Forum angelegt, damit wir hier nach Herzenslust neue Postings verfassen können. Also nur keine Scheu, einen neuen Thread aufzumachen. ;)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

Beiträge: 814

Wohnort: Ingolstadt

Beruf: Senior Software Engineer

  • Private Nachricht senden

3

17.04.2017, 22:45

:o Unglaublich! Das muss ich mir ziehen, um mich selbst davon zu überzeugen. Die Musik geht glatt als Lead für einen Technotrack durch!

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

4

18.04.2017, 21:07

So, jetzt habe ich's auch gesehen.

!!! :o !!!

Es gibt so Programme, wenn man die gesehen hat, dann bekommt der folgende Spruch durchaus wieder Gewicht:

Live will be different from now on!

Wobei ich mir technisch schon vorstellen kann, wie die das gemacht haben. Was mich nicht am Ansatz befähigt, das nachmachen zu können (schon gar nicht auf dem C64). Mich beeindruckt eigentlich eher die musikalische Qualität in Verbindung mit der psychedelischen Optik. Stellenweise hatte ich das Gefühl, dass ICH beim Zuschauen umprogrammiert werden soll. Das hat schon was Hypnotisches. ;)

[Nachtrag]
FUCK! Das Ding ist ja nur 256 Byte groß. Ich hatte mich durch den ursprünglichen Titel des Videos täuschen lassen. 256 Byte! Da setzte es auch bei mir KOMPLETT aus!
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

5

18.04.2017, 22:28

Boa ... es gibt immer wieder "solche" Momente ... Ihr wisst schon ... gerade war so ein Moment ...

Kann man sich den Code anschauen irgendwo ? Ich raff es nicht ...

Danke Dir v3to für die Verlinkung !

6

19.04.2017, 08:55

Bislang hat LFT den Code nicht hochgeladen. Das PRG-File gibt es hier:
http://csdb.dk/release/?id=155560

Nebenbei: Linus 'LFT' Akesson hat auch einen Youtube-Channel, bei dem sich das Stöbern durchaus lohnt. Er hat immer mal wieder außergewöhnliche Projekte am Start. Mal sind es Demos, die auf Microcontrollern von Kühlschränken oder Windkraftanlagen laufen. Dann baut er eine Orgel, mit denen man Chiptunes live spielen kann, das sogenannte Chipophone. Ein talentierter Chiptune-Musiker ist er auch noch.
https://www.youtube.com/user/lftkryo

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

7

19.04.2017, 09:58

Bei 256 Byte kann man das aber schon fast per Hand disassemblieren ... wenn denn nicht selbstmodifizierender Code am Start ist (keine Ahnung). Ich habe mir gestern Abend mal die ersten paar Byte vom HexDump angesehen. Eigentlich ist der Code sogar nur 254 Byte groß, denn die ersten beiden Byte in einem .prg sind ja - wenn ich das richtig verstanden habe - die Lade-Adresse (hier $0801). Und schon der zweite Prozessor-Befehl (das 6. Byte) scheint ein illegaler OpCode des 6510 zu sein ($D3) ... und dann hatte ich keine Lust mehr. ;)

Hier mal eine Tabelle der OpCodes:

http://www.oxyron.de/html/opcodes02.html
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

8

19.04.2017, 10:23

Oh man die OpCodes des C64 ...
Da haben die kleinen Jungs (wir) über $EA -> NOP gelacht (EA für Electronic Arts) ... jaja ich weiß ... albern ... :-D

Aber ich habe mir immer den Z80 des CPCs schön geredet :-)
System Wars ... yes :-D

Soweit ich noch weiß hat der MOS 65xx nur 1 Index Register richtig ?

Ach Wurscht ... gehört hier nun nicht hin :-)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DustyBits« (19.04.2017, 10:35)


henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

9

19.04.2017, 11:48

Gerade in Bezug auf diese Demo finde ich eine Diskussion um Prozessor-Tralala eigentlich ganz passend. :)

Das mit NOP ($EA) des 6502 finde ich in Bezug auf Electronic Arts ehrlich gesagt sogar jetzt noch sehr witzig. :lol:

Wegen der Index-Register: Nein, der 6502 - von dem die ganzen Prozessoren der Commodore-Computer abstammen - hat zwei Index-Register: X und Y. Beide aber nur 8 Bit breit. Dafür hat der 6502 eine sehr sehr SEHR wichtige Adressierungsart, nämlich »Indirect Index Y« welche die Zero-Page als 16-Bit-Register verwendet. Als Zero-Page werden beim 6502 einfach die ersten 256 Byte, also $0000 bis $00FF, im Adressraum bezeichnet. Zwei aufeinander folgende Byte in der Zero-Page werden als 16-Bit-Register verwendet, dazu wird der Inhalt vom Y-Register gezählt (mit X geht das leider anders) und das Ergebnis ist dann die eigentliche Adresse. Damit kann man schon eine Menge anfangen. Voraussetzung ist allerdings, dass hier auch RAM und nicht wie beim Z80 ROM vorhanden ist. Das ist aber bei allen Computern mit einem 6502 der Fall.

Wenn ich es recht in Erinnerung habe, dann sind die Index-Register im Z80 allesamt 16 Bit breit, wodurch diese Klimmzüge vermieden werden. Und generell ist der Z80 mit seiner Register-Vielfalt ein Paradies für Programmierer; da muss man nichts schön reden. Nicht ohne Grund sind die ersten erfolgreichen Business-Applikationen unter CP/M entstanden. Der Nachteil der ganzen schönen bequemen Adressierungsarten des Z80 ist leider, dass er dadurch nicht sonderlich schnell ist. Im Prinzip konnte man im Vergleich zwischen Z80 und 6502 schon ein wenig das spätere RISC-Prinzip der 32-Bit-Welt erkennen: Durch einen reduzierten Instruktionssatz wird die Programmierung zwar komplizierter, aber der Prozessor arbeitet schneller.
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

10

19.04.2017, 16:38

Gerade in Bezug auf diese Demo finde ich eine Diskussion um Prozessor-Tralala eigentlich ganz passend. :)

Das mit NOP ($EA) des 6502 finde ich in Bezug auf Electronic Arts ehrlich gesagt sogar jetzt noch sehr witzig. :lol:


No Operation :lol: ... hach wir Nerds ;-)

Zitat


Wegen der Index-Register: Nein, der 6502 - von dem die ganzen Prozessoren der Commodore-Computer abstammen - hat zwei Index-Register: X und Y. Beide aber nur 8 Bit breit.

Ach ja so wars - 2 x 8 Bit Index Register. Sind die Index Register im 6502/6510 direkt an die ALU angebunden ? Im Z80 war das meines Wissens der Fall, deshalb waren viele Operationen auch für die Index Register verfügbar ... ich glaube hier waren die MOS Vertreter oft am Jammern ... auch ich weiß es auch nicht mehr ... irgendwo war da ein Pferdefuß, aber der 6502/6510 war nun mal ein auf "Low Cost" getrimmter Prozessor. Aber ich glänze hier bestimmt mit jeder Menge Halbwissen ... mit dem 6502 kenne ich mich im Grunde wenig bis gar nicht aus :-)

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

11

19.04.2017, 17:04

No Operation :lol: ... hach wir Nerds ;-)

:lol: :D

Ach ja so wars - 2 x 8 Bit Index Register. Sind die Index Register im 6502/6510 direkt an die ALU angebunden ? Im Z80 war das meines Wissens der Fall, deshalb waren viele Operationen auch für die Index Register verfügbar ... ich glaube hier waren die MOS Vertreter oft am Jammern ... auch ich weiß es auch nicht mehr ... irgendwo war da ein Pferdefuß, aber der 6502/6510 war nun mal ein auf "Low Cost" getrimmter Prozessor. Aber ich glänze hier bestimmt mit jeder Menge Halbwissen ... mit dem 6502 kenne ich mich im Grunde wenig bis gar nicht aus :-)

Die Index-Register im 6502 haben leider einen sehr eingeschränkten eigenen Befehlssatz. Alles zum Thema Rechnen und Bit-Operationen geht nur über das A-Register. Das ist genau der Grund, warum man sich sehr genau überlegen muss, wann man diese Register für was verwendet. Und das mit »Low Cost« ist genau richtig: Weil der 6502 eben einen eingeschränkteren Befehlssatz hat, werden Transistoren gespart, das erhöht die Chip-Ausbeute pro Wafer, und das macht den Prozessor wieder günstig.

Es gibt ein sehr gutes Video auf YouTube von einer Gruppe, die den 6502 per Elektronen-Mikroskop IM BETRIEB analysiert und dabei sehr erstaunliche Erkenntnisse gesammelt haben, wie der Chip intern funktioniert. Darin erklären sich auch einigen komische Verhaltensweisen des Chips:

https://www.youtube.com/watch?v=uP1gWg5ezyY
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

12

19.04.2017, 17:17

No Operation :lol: ... hach wir Nerds ;-)

:lol: :D

Ach ja so wars - 2 x 8 Bit Index Register. Sind die Index Register im 6502/6510 direkt an die ALU angebunden ? Im Z80 war das meines Wissens der Fall, deshalb waren viele Operationen auch für die Index Register verfügbar ... ich glaube hier waren die MOS Vertreter oft am Jammern ... auch ich weiß es auch nicht mehr ... irgendwo war da ein Pferdefuß, aber der 6502/6510 war nun mal ein auf "Low Cost" getrimmter Prozessor. Aber ich glänze hier bestimmt mit jeder Menge Halbwissen ... mit dem 6502 kenne ich mich im Grunde wenig bis gar nicht aus :-)

Die Index-Register im 6502 haben leider einen sehr eingeschränkten eigenen Befehlssatz. Alles zum Thema Rechnen und Bit-Operationen geht nur über das A-Register. Das ist genau der Grund, warum man sich sehr genau überlegen muss, wann man diese Register für was verwendet. Und das mit »Low Cost« ist genau richtig: Weil der 6502 eben einen eingeschränkteren Befehlssatz hat, werden Transistoren gespart, das erhöht die Chip-Ausbeute pro Wafer, und das macht den Prozessor wieder günstig.

Es gibt ein sehr gutes Video auf YouTube von einer Gruppe, die den 6502 per Elektronen-Mikroskop IM BETRIEB analysiert und dabei sehr erstaunliche Erkenntnisse gesammelt haben, wie der Chip intern funktioniert. Darin erklären sich auch einigen komische Verhaltensweisen des Chips:

https://www.youtube.com/watch?v=uP1gWg5ezyY


Cooler Link - werde ich mir heute Abend mit ner Cola bewaffnet in Ruhe reinziehen :-)

Danke !

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

13

19.04.2017, 18:00

Ich hab's mir eben gerade noch einmal angesehen. Das mit dem Elektronen-Mikroskop war Quatsch. Das habe ich zwar mal irgendwo gesehen, aber das waren nicht die Kollegen. Aber die Präsentation ist vor allem deshalb sehenswert, weil der Präsentator, Michael Steil, da einigen Witz hinein gebracht hat. Sehr sehr sehenswert. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

14

20.04.2017, 18:31

Inzwischen gibt es eine Dokumentation zu der Demo:

https://linusakesson.net/scene/a-mind-is-born/

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

15

20.04.2017, 19:07

Die Melodie wird mittels eines Pseudo-Zufallszahlen-Generators erzeugt. Ich pack's nicht! Und die komische Zeilennummer 54271 des BASIC-Programs zu Beginn der Demo (also kein illegaler OpCode wie von mir vermutet) ist obendrein auch noch ein Operand für spätere indirekte Adressierung. Der Hammer! :thumbsup:
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

Beiträge: 814

Wohnort: Ingolstadt

Beruf: Senior Software Engineer

  • Private Nachricht senden

16

20.04.2017, 22:49

Wirklich absolut geil und ist mein Highlight des Monats. Beim Lesen der Dokumentation habe ich richtig Lust auf die 6502-Programmierung bekommen...

Problem nur: Meine Familie wird nicht verstehen, warum ich meine Zeit mit so einem "Unsinn vergeude".

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

17

21.04.2017, 11:40

[...] Problem nur: Meine Familie wird nicht verstehen, warum ich meine Zeit mit so einem "Unsinn vergeude".

Aber erklärt das Thema »Hobby« das nicht unmittelbar und erschöpfend? Davon abgesehen und auch völlig unabhängig von aktuellen Programmiersprachen, Betriebssystemen, Programmier-Paradigmen, etcpp. hält es einfach auch den Kopf fit. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

18

21.04.2017, 14:00

Ich kann mir lebhaft ausmalen, wie die Reaktion darauf ist ...



:lol: :lol: :lol:

19

21.04.2017, 15:35

Solche Sprüche kenne ich auch. Die kamen aber meistens von Menschen die NIX mit ihrer Freizeit anzufangen wissen und mit dem Arsch vor dem TV versauern.
Hipster-Pisser!

20

21.04.2017, 16:08

Meine Frau sagt seit einigen Jahren nix mehr zu all diesen Sachen. Wenn ich genauer darüber nachdenke, hat sie noch nie irgendwas dazu gesagt. Bevor wir uns kennengelernt haben war sie schon SNES- und PSX-mäßig unterwegs. Selbst einige C64-Klassiker sind ihr sehr gut bekannt. Und während unserer Kennenlernphase hat sie sich eine Dreamcast-Konsole gekauft. Die steht heutzutage bei meinen :lol:
Sir Pommes: "What the Fatsch!"