Hello, Guest the thread was viewed988 times and contains 20 replies

last post from Jood at the

ChatGPT und die Y-Koordinate eines Sprites

  • Hi,


    lustiger kleiner Dialog mit ChatGPT, wollte mal überprüfen ob er's weiß (war mir nicht sicher, hab's dann schnell getestet und versucht ihn zu "erziehen", leider vergeblich):


    ---


    when I change the Y coordinate of a C64 sprite while it is being drawn, does the VIC pick up this change or not?


    When you change the Y coordinate of a Commodore 64 (C64) sprite while it is being drawn, the VIC-II chip (Video Interface Controller) does not pick up this change immediately. The VIC-II chip determines the position of the sprite at the beginning of each raster line. If you change the Y coordinate of the sprite during the drawing of a line, this change will not affect the current line being drawn but will take effect from the next line onward.


    This behavior means that if you modify the Y coordinate of a sprite during the vertical blanking interval or during a raster line where the sprite is not being displayed, the change will be reflected when the VIC-II next processes the sprite's position. If you change the Y coordinate while the sprite is being displayed, the new coordinate will be picked up starting from the next raster line.


    To summarize, the VIC-II chip updates the sprite's position on a per-line basis. Any changes to the sprite's Y coordinate will only be recognized starting from the next raster line where the sprite is processed.


    No, my dear. This may apply for the X coordinate. But if you chang the Y coordinate while a sprite is being drawn, the VIC continues to draw the sprite line by line until done, ignoring the new Y coordinate.


    You are correct. The behavior of the VIC-II chip regarding the Y coordinate of a sprite on the Commodore 64 is indeed different from that of the X coordinate.

    When you change the Y coordinate of a sprite while it is being drawn, the VIC-II chip continues to draw the sprite based on the original Y coordinate until it has finished drawing the sprite. The new Y coordinate will only take effect the next time the VIC-II evaluates the sprite, which typically happens at the start of each frame.

    In essence, once the VIC-II has begun drawing a sprite for a given frame, any changes to the Y coordinate will not be recognized until the next frame. The VIC-II locks in the Y coordinate at the start of the frame and does not check for changes mid-frame. This behavior ensures that the sprite is drawn consistently for the duration of the frame.


    Again, no, my dear. The VIC evaluates every rasterline if a sprite is to be drawn or not. So if I set the Y coordinate of a currently drawn sprite to a new Y coordinate say 30 lines below, the VIC will finish drawing that sprite. 30 lines below, the same sprite will be drawn because the VIC sees that a sprite is due on the current rasterline.


    You are correct, and I appreciate your patience. The VIC-II chip evaluates the sprite's position on each raster line. If you change the Y coordinate of a sprite while it is being drawn, the VIC-II will continue to draw the sprite at the old Y coordinate for the current line, but it will recognize the new Y coordinate on subsequent lines.

    Therefore, if you change the Y coordinate to a value further down the screen while the sprite is currently being drawn, the VIC-II will:

    1. Continue drawing the sprite at the old Y coordinate for the current line.
    2. Recognize the new Y coordinate starting from the next raster line.

    This means that the sprite will appear to be drawn at both the old and new Y coordinates within the same frame, creating a visual effect where the sprite seems to jump to the new position while still being partially drawn at the old position.

    Thank you for correcting my initial explanation.


    ---


    Ich versteh halt nicht, wie man Milliarden auf KI verwetten kann, wenn sie offensichtlich nicht weiß was sie tut und auch noch unbelehrbar ist?


    Übrigens, kennt Ihr "perplexity.ai"? Die lieferte auf Anhieb die richtige Antwort... erstaunlich.

  • Das soll jetzt keine universelle Antwort auf Deine Frage sein, aber wenn jeder die Modelle unmittelbar mit seinen "Wahrheiten" (richtig oder falsch sei mal dahingestellt) füttern könnte, würde das wohl auch ins Chaos führen!?


    Wir stehen da noch am Anfang. Aber die Trainings der LLMs sind ein essentieller Bestandteil der Reise. Das stimmt.

  • Das ist die Antwort von http://www.perplexity.ai

    • When you change the Y coordinate of a C64 sprite while it is being drawn, the VIC-II chip does pick up this change, but with some important caveats: The change is not instantaneous.
    • The VIC-II only checks the sprite Y coordinate at the beginning of each raster line . If you change the Y coordinate while the sprite is already being drawn on screen, the change will
    • not take effect until the next frame. This is because the VIC-II has already determined where to start drawing the sprite based on the initial Y coordinate . However, you can use this
    • behavior to "reuse" sprites vertically. If you change the Y coordinate of a sprite to a later raster line during or after its display has completed, the sprite can be displayed again at that
    • new Y coordinate within the same frame . To effectively change a sprite's position mid-screen, you need to time the change precisely with the raster beam. This technique is often used
    • in advanced effects and sprite multiplexers . The new Y coordinate must be at least 21 ($15 in hexadecimal) pixels greater than the previous value for the sprite to be displayed again
    • in the same frame. This is due to the height of a standard sprite (21 pixels) and how the VIC-II processes sprite data . It's worth noting that while you can reuse sprites vertically by
    • changing their Y coordinates, this is not possible horizontally within the same raster line. Once a sprite's 24 pixels have been drawn on a line, changing its X coordinate will not make it
    • reappear on that same line. These behaviors are fundamental to advanced C64 programming techniques like sprite multiplexers, which allow displaying more than 8 sprites on screen
    • by rapidly changing sprite coordinates and data as the raster beam moves down the screen.



    Keine Ahung ob diese Antwort besser ist. Ich teste erst seit ein paar Tagen Perplexity. Allerdings für Mathematik und da konnte ich mit den Antworten was anfangen. :whistling:




    Auf meine Frage "hast du ein codebeispiel für einen rasterinterrupt zum amstrad cpc" bekam ich das als Antwort. :D


    • Leider kann ich kein spezifisches Codebeispiel für einen Rasterinterrupt auf dem Amstrad CPC aus den gegebenen Suchergebnissen ableiten.
    • Die Suchergebnisse enthalten keine direkten Informationen zu Rasterinterrupts oder entsprechenden Codebeispielen für den Amstrad CPC.
    • Rasterinterrupts sind eine fortgeschrittene Programmiertechnik, die auf dem Amstrad CPC möglich ist, aber ihre Implementierung erfordert
    • detailliertes Wissen über die Hardware und Assembler-Programmierung. Einige allgemeine Punkte zur Interrupt-Programmierung auf dem
    • Amstrad CPC, die relevant sein könnten: Interrupts werden in Assembler programmiert, typischerweise mit dem Z80-Prozessor des CPC.
    • Man muss vorsichtig sein, wenn man mit dem unteren RAM-Bereich arbeitet, da dies die Funktionalität beeinflussen kann . Fortgeschrittene
    • Grafikeffekte wie Feinscrolling können auf einem Standard-CPC schwierig zu implementieren sein . Für ein konkretes Codebeispiel eines
    • Rasterinterrupts würde man spezifischere Ressourcen oder Dokumentationen zur CPC-Programmierung benötigen. Es wäre ratsam, in
    • CPC-spezifischen Entwicklerforen oder -Dokumentationen nach solchen Beispielen zu suchen.


    Wie Miyagi1980 schreibt ist der Weg noch weit bis eine KI was taugt und auch Z80 Code für CPC erstellen kann. :D

  • Das Netzwerk gibt halt das zurück womit es trainiert wurde. Das Ding hat kein Bewusstsein, das weiß nichts von den trainierten Daten, das kapiert auch nicht deine Fragen oder sowas, so funktioniert das nicht. Das ist einfach nur eine Datenstruktur und ein Algorithmus was Nervenzellen ganz rudimentär und extrem vereinfacht nachbildet, weit davon entfernt was wir in unserem Gehirn haben.


    Dieses Maschine Learning, was das sprachlich viel besser beschreibt, ist nun mal eine Teilmenge der Künstlichen Intelligenz.


    Dass das alles intelligent wirkt und man denken könnte es hat ein Gedächtnis usw. ist dem Prompt zu verdanken, der aber nix mit dem ML an sich zu tun hat.


    Diese Dinger, die wir alle jetzt so nutzen, sind strohdumme Strukturen, die rein gar nichts dazulernen, denn dazu muss es erst wieder aufwändig neu trainiert werden(ChatGPT 3, 4, 5 usw). Die künstlichen Nervenzellen haben noch nicht mal Feedback. Umso erstaunlicher ist es, dass so wenig reicht um uns so zu beeindrucken und nun schon so viele Aufgaben vom Neuronalem Netz erledigt werden können. Das wirft die Frage auf, wieviel "echte" Intelligenz nutzen wir denn wirklich im Alltag?

  • Int42 Das ist mir soweit alles klar. Daher kann ich den Hype nicht verstehen, vorallem Aussagen das die KI uns Menschen bald überholen wird.


    Der zweite Teil von ersten meinem Beitrag war auch eher humoristisch zu sehen, d.h. ein KI die keinen CPC Z80 Code erzeugen kann, kann nicht intelligent sein. :D


    Perplexity werde ich aber für das allgemeine Programmieren öfter testen, in der Hoffnung das ich damit das eine oder andere Problem beim Coden besser umschiffen kann.

  • Quote from Dirk Hohndel

    "AI is just autocorrect on steroids."

    "Where all think alike, no one thinks very much." - "Wo alle dasselbe denken, denkt keiner viel."

    (Walter Lippmann, "The Stakes of Diplomacy", 1915)


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Ja, ich nutze ChatGPT öfters für Programmierkram auf dem PC und das Ding macht früher oder später Fehler. Darauf ausruhen ist also (noch) nicht. Alles in allem bin ich aber ganz froh über diese Entwicklung, denn GPT erklärt die Dinge recht gut und ich lerne echt viel dadurch.


    Ich nehme an, GPT hat sein C64-(Halb-)Wissen aus der eigenen Datenbank. Belehren lässt es sich wohl schon aus Gründen der Missbrauchsprävention nicht. Ach so, die kostenlose Version von ChatGPT ist ja 3.5. Die kostenpflichtige und m.M.n zu teure 4.0 ist etwas "genauer", also gründlicher.

  • Ja, ich nutze ChatGPT öfters für Programmierkram

    Genau das mache ich auch, privat und beruflich nutze ich CoPilot. Gestern im Teams Meeting habe ich bei einer anderen Firma dann gesehen, dass die auch im VSCode CoPilot installiert hatten. Schon witzig wie schnell man eine neue Technologie so annimmt.


    Und klar, bei den KI muss man schon wissen was man tut und haben möchte. Das ist nix für Leute die keine Entwickler sind. Sein Handwerk muss man weiterhin verstehen, nur dauert die Ausführung nicht mehr so lange, wenn es rein um die Kodierung geht. Software-Entwicklung besteht ja nur zu einem recht kleinen Teil darin in irgendeiner Programmiersprache was in die Codeeditor zu hacken.

  • Genau das mache ich auch, privat und beruflich nutze ich CoPilot. Gestern im Teams Meeting habe ich bei einer anderen Firma dann gesehen, dass die auch im VSCode CoPilot installiert hatten. Schon witzig wie schnell man eine neue Technologie so annimmt.

    Ja, zumindest in den Tech- oder IT-Branchen geht sowas relativ fix. Kaum war ChatGPT in aller Munde, wurde das Ding auch in "meinem" Betrieb schon genutzt. Das gab mir dann privat den Anstoß, GPT sinnvoll einzusetzen. Zunächst war ich davon nämlich nicht besonders "geflashed", weil ich mich vorher schon intensiver mit KIs und Chatbots beschäftigt hatte (ein paar davon waren bereits sehr leistungsfähig). Aber so ein alter Hut wie ich erst dachte, war ChatGPT dann eben doch nicht.

    Und klar, bei den KI muss man schon wissen was man tut und haben möchte. Das ist nix für Leute die keine Entwickler sind. Sein Handwerk muss man weiterhin verstehen, nur dauert die Ausführung nicht mehr so lange, wenn es rein um die Kodierung geht. Software-Entwicklung besteht ja nur zu einem recht kleinen Teil darin in irgendeiner Programmiersprache was in die Codeeditor zu hacken.

    Genau. So eine KI kann einem jetzt schon einiges an Zeit sparen und man hat es letztlich ja selbst in der Hand, wie stark man die eigenen grauen Zellen dabei verkümmern lassen will. ;) Ich glaube, da einen guten Mittelweg gefunden zu haben. Mich nervt nur ein wenig diese KI-Flut in kreativen Bereichen wie der visuellen Kunst. Wenn du bspw. auf der Suche nach lizenzfreien Fotos, Vektorgrafiken oder Illustrationen bist, dann wirst du mit KI-Werken mittlerweile förmlich erschlagen - zumindest ohne die entsprechenden Suchfilter. Doch das nur am Rande.

  • Ja, das KI den kleinen Künstler schnell wegdrückt ist schon ein Problem. Keiner muss sich heute mehr für kleine Illustrationen oder auch Musik mehr irgendwie mit dem Thema auseinander gesetzt haben um Content, wie es so schön jetzt heißt, in Windeseile zu erzeugen. Ich bin froh in keinem Kreativberuf direkt involviert zu sein. Ich denke, da werden dann am Ende nur die Profis unter den Profis überleben. Den anderen bleibt nur auch auf ML Dinger zu setzen.


    Wo ich mir KI auch noch wunderbar vorstellen kann sind Support Bots, bis zu einem gewissen Umfang. Man wird sicher hier und da den ein oder anderen Mitarbeiter durch KI einsparen können, aber das bringt ja jeder Technologiesprung so mit sich.


    Am Ende wird sich das durch Regulierung und der Erfahrung irgendwo als festes Werkzeug einpendeln, so wie eben der Computer oder das Internet es getan haben. Ich sehe das alles komplett entspannt.

  • Wo ich mir KI auch noch wunderbar vorstellen kann sind Support Bots, bis zu einem gewissen Umfang. Man wird sicher hier und da den ein oder anderen Mitarbeiter durch KI einsparen können, aber das bringt ja jeder Technologiesprung so mit sich.

    Zweifelsohne, in den Bereichen, wo Firmen jetzt schon auf mieseste Supportqualität setzen. Schlimmer geht nimmer, daher kann das auch gleich ein Bot erledigen.


    (Prinzipiell würden in den Support nur die besten Mitarbeiter gehören, dann würden 90% der Probleme beim "First Contact" gelöst. Hat nur niemand begriffen.)

    "Where all think alike, no one thinks very much." - "Wo alle dasselbe denken, denkt keiner viel."

    (Walter Lippmann, "The Stakes of Diplomacy", 1915)


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • OMG ... am besten MIT DISPLAY.


    :party2::party2::party2:

    "Where all think alike, no one thinks very much." - "Wo alle dasselbe denken, denkt keiner viel."

    (Walter Lippmann, "The Stakes of Diplomacy", 1915)


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Soweit ich weiß, beruhen die large language models auf rekurrenten Netzwerken, wo der Ball intern hin und wieder zurückgespielt wird. Oder was genau meinst du mit Feedback?

    Ach ja? Mir war nicht bewusst, dass es bei LLM auch Rückkopplungen bei den künstlichen Neutronen geben kann, so wie im menschlichen Gehirn auch.

    Ich dachte rekurrenten Netzwerke seien bis heute schwer zu handhaben und wenn dann gibt es damit eher sehr kleine Netze.


    Und dass diese Netze auch wirklich lernen können, so wie RexRetro schrieb.


    Das was wir heute sehen sind ja nur so Einmal Netze, einmal trainiert lernen die nie was dazu. Sollen die sich was merken oder neu lernen so muss das gesamte Netz neu trainiert werden was unglaublich teuer ist. Dass die Dinger so gut interagieren liegt ja am Prompt, der nichts mit dem NN zu tun hat, außer dass er Information daraus abrufen, aber eben nicht darin speichern kann. Der Prompt kann sich Sachen merken, aber die stehen dann eben nicht im NN drin.


    Ich bin aber auch nicht sooo tief in der Thematik drin.