Ich möchte nicht Apple-Fanboy genannt werden...
Würd ich nie tun...du MEGA FANBOY
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von sparhawk am
Ich möchte nicht Apple-Fanboy genannt werden...
Würd ich nie tun...du MEGA FANBOY
Also ich bin jetzt definitiv einer...
Grüße vom "Late Summer Games"
Mal 'ne ernsthafte Frage: Ich hab jetzt einen JTAG-Ersatz installiert (irduino, Win10) und kriege auch eine Verbindung zum Mega65. Ich kann also PRGs hochladen und starten, den M65 resetten und sowas. Was aber nicht geht, sind solche Sachen, die ich *eigentlich* machen wollte: D81s mounten, Cores flashen und eben solche wichtigen Dinge. Beim Treiber-Installieren führt die (Zadig-) Verbindung vom COM-Port mit dem "Converter" dazu, dass der COM-Port weg ist und ich gar nichts mehr tun kann. Zwei COM-Ports, wie in Lydons Video, habe ich nicht. Lasse ich Zadig aus, habe ich einen COM-Port (und eine Verbindung), kann aber nur die Hälfte tun (wie beschrieben). Was mache ich falsch?
Arndt
Kann denn der "Irduino" ein JTAG ersetzen oder nur das UART interface? Ein echtes JTAG erscheint als zwei Devices, so wie du das auch bei mir im Video siehst.
D81 "mounten" geht nur mit UART über die serielle Schnittstelle, kann ich aber nicht empfehlen, da meineserachtens noch suboptimal implementiert.
Cores flashen kann man mit dem JTAG auf der MEGA65R3 Plattform nicht, das würde wenn ja mit Vivado gemacht werden und Vivado kann den Flash Chip (noch?) nicht.
Bitstreams pushen macht man mit JTAG, und das erfordert besagtes zweites Interface.
Ich vermute mal (nur ein Interface, Serieller kram klappt) das du kein JTAG durch das Irduino ding hast.
Also ich bin jetzt definitiv einer..
Und ich erst....
Also ich bin jetzt definitiv einer..
Und ich erst....
Und passt der Kaktus auf das Diskettenlaufwerk?
Und passt der Kaktus auf das Diskettenlaufwerk?
Theoretisch ja, praktisch nein. Bier und Kaktus gehen nicht gleichzeitig.
Man muss halt Prioritäten setzen.
Während nur die 100 Devkits verfügbar waren, hatten viele Entwickler eine TARDIS auf dem MEGA65 stehen.
Mit der kann man in der Zeit zurückreisen und Fehler korrigieren bevor sie entstehen.
Ich vermute mal (nur ein Interface, Serieller kram klappt) das du kein JTAG durch das Irduino ding hast.
Mist.
Arndt
Während nur die 100 Devkits verfügbar waren, hatten viele Entwickler eine TARDIS auf dem MEGA65 stehen.
Mit der kann man in der Zeit zurückreisen und Fehler korrigieren bevor sie entstehen.
Wo bekomme ich die her!!
(also nicht die Entwickler, da habe ich schon 5 von im Keller, die Tardis natürlich!)
Wo bekomme ich die her!!
(also nicht die Entwickler, da habe ich schon 5 von im Keller, die Tardis natürlich!)
Guck mal hier oder google nach Papercraft Tardis.
Ansonsten gab es auch ein limitiertes LEGO Dr. Who Set.
Hallo Leute
Ich mal wieder.
Habe ja von Targas Info erhalten in Bezug auf Sprites für den Mega65
siehe hier #5.821
ZitatAlles anzeigenAus dem Discord:
I'm failing to relocate sprite image locations:
- Sprite pointers start at 4088 (default, verified) and I want them to remain there
- Sprite data is loaded to $40000 (verified)
- this would mean sprite location number 4096
- so I'm putting 0 into 4088 and 16 into 4089
- also, according to manual appendix M-17, SPRPTR16 bit (7) has to be set in $d06e, so Poke $d06e,128 (?)
Unfortunately, only garbage is being displayed - what did I do wrong?
Reply:
The sprite pointers in 80 column mode on $FF8 - $FFF have 1 byte per sprite, so $FF8 (4088) for sprite 0, $FF9 (4089) for sprite 1, etc.
Switching to 40 columns mode copies the sprite pointers to $3f8 - $3ff
Tja das habe ich probiert.
Aber ich hatte keinen Erfolg damit.
Ich kann die Sprite-Daten nicht von $40000 abrufen, trotz dieser guten Anleitung.
Nur wenn ich die Sprite-Daten bei $600 ablege, klappt alles ohne Probleme
Und mir ist nochwas aufgefallen. Wenn ich im 80 Modus bleibe, kann ich den Spritepointer $ff8 auch benutzen.
Schalte ich auf auf den 40 Modus funktionnier der Spritepointer $3f8 wie beschrieben nicht. Der Sprite erschein zwar mit den Mega65 Befehlen aber ich habe keine Ahnung welche Spritepointer jetzt gelten. Nämlich der Spritepointer $ff8 hat auch keine Wirkung beim 40 Modus
Zur Info die Figur besteht aus 3 Sprites
Wer es mal testen möchte hier das Programm
Vielleicht kann mir mal jemand erklären wie ich einen anderen Speicherbereich nehmen kann für meine Sprites.
Leider gibt es noch zu wenig Info über die Speicherbereiche. Aber der Mega65 hat die Reise ja erst bekonnen.
Vielleicht kann mir mal jemand erklären wie ich einen anderen Speicherbereich nehmen kann für meine Sprites.
Leider gibt es noch zu wenig Info über die Speicherbereiche. Aber der Mega65 hat die Reise ja erst bekonnen.
Erklären, weiss nicht, hab zu wenig mit Sprites gemacht... aber ich kann greppen und VHDL lesen
Das sind die VIC-IV Sprite Pointer Register. Mit denen sagst du wo die Sprite Pointer Tabelle im Speicher liegt. Da die 23 bit hat kannst du die also überall hinlegen. Umgekehrt liest du diese Register aus um zu wissen wo die Sprite Tabelle gerade ist. Niemals solltest du von festen werten ausgehen! Das ist das was ich lazy programming nenne...
Das bit 7 von $D06E macht die 8 bit Sprite Pointer Tabelle zu einer 16 bit tabelle. Was heisst das? Normalerweise sagt das eine Byte aus wo die Sprite Daten im Speicher liegen. Mit einem byte * 64 (soviele bytes hat ein Sprite) kommst du aber nur auf 16384, also noch nicht mal auf den ganze 64KB speicher einer BANK. Hier spielen dann noch die DD00 bits für die VIC-II Bank eine Rolle, glaube ich...
Schaltest du aber das bit 7 von $D06E auf 1, ist die Tabelle doppelt so groß und jeder sprite hat einen 16bit pointer (wieder mal 64). Damit kannst du jetzt den ganzen Speicher adressieren, ähnlich wie bei FCM Grafik.
Im Userguide findet sich auch ein Abschnitt "Extended Sprite Image Sets" im VIC-IV Anhang.
Hoffe das hilft ein wenig.
Edit: gerade erst gesehen das dein Programm alles BASIC ist. Da muss ich passen wie man das in BASIC macht, oder ob man da einfach die Spritetabelle woanders hinschieben und auf 16 bit ändern darf
Während nur die 100 Devkits verfügbar waren, hatten viele Entwickler eine TARDIS auf dem MEGA65 stehen.
Mit der kann man in der Zeit zurückreisen und Fehler korrigieren bevor sie entstehen.
Wo bekomme ich die her!!
(also nicht die Entwickler, da habe ich schon 5 von im Keller, die Tardis natürlich!)
Ich habe meine TARDIS hier gekauft:
Alles anzeigenVielleicht kann mir mal jemand erklären wie ich einen anderen Speicherbereich nehmen kann für meine Sprites.
Leider gibt es noch zu wenig Info über die Speicherbereiche. Aber der Mega65 hat die Reise ja erst bekonnen.
Erklären, weiss nicht, hab zu wenig mit Sprites gemacht... aber ich kann greppen und VHDL lesen
Code
- GS $D06C VIC-IV:SPRPTRADRLSB sprite pointer address (bits 7 - 0)
- GS $D06D VIC-IV:SPRPTRADRMSB sprite pointer address (bits 15 - 8)
- GS $D06E.0-6 VIC-IV:SPRPTRBNK sprite pointer address (bits 23 - 16)
- GS $D06E.7 VIC-IV:SPR!PTR16 16-bit sprite pointer mode (allows sprites to be located on any 64 byte boundary in chip RAM)
Das sind die VIC-IV Sprite Pointer Register. Mit denen sagst du wo die Sprite Pointer Tabelle im Speicher liegt. Da die 23 bit hat kannst du die also überall hinlegen. Umgekehrt liest du diese Register aus um zu wissen wo die Sprite Tabelle gerade ist. Niemals solltest du von festen werten ausgehen! Das ist das was ich lazy programming nenne...
Das bit 7 von $D06E macht die 8 bit Sprite Pointer Tabelle zu einer 16 bit tabelle. Was heisst das? Normalerweise sagt das eine Byte aus wo die Sprite Daten im Speicher liegen. Mit einem byte * 64 (soviele bytes hat ein Sprite) kommst du aber nur auf 16384, also noch nicht mal auf den ganze 64KB speicher einer BANK. Hier spielen dann noch die DD00 bits für die VIC-II Bank eine Rolle, glaube ich...
Schaltest du aber das bit 7 von $D06E auf 1, ist die Tabelle doppelt so groß und jeder sprite hat einen 16bit pointer (wieder mal 64). Damit kannst du jetzt den ganzen Speicher adressieren, ähnlich wie bei FCM Grafik.
Im Userguide findet sich auch ein Abschnitt "Extended Sprite Image Sets" im VIC-IV Anhang.
Hoffe das hilft ein wenig.
Edit: gerade erst gesehen das dein Programm alles BASIC ist. Da muss ich passen wie man das in BASIC macht, oder ob man da einfach die Spritetabelle woanders hinschieben und auf 16 bit ändern darf
Vielen Dank für die Info. Mal schauen was ich damit unter Basic anstellen kann. Wenn ich was habe mache ich einen extra Thread auf.
WIMRE musst du aufpassen, wenn du VIC und VIC4-Aufrufe mischst. Es gibt da so einen "Hot-Regs"-Modus. Der VIC4 arbeitet anfangs in einem Kompatibilitätsmodus. Wenn du bei VIC-Registern rumpörkelst, wird das im Hintergrund umgemappt auf die zugrunde-liegenden VIC4-Register. D.h. damit kann man sich ungewollt vorher gemachte VIC4-Einstellungen verbiegen.
WIMRE musst du aufpassen, wenn du VIC und VIC4-Aufrufe mischst. Es gibt da so einen "Hot-Regs"-Modus. Der VIC4 arbeitet anfangs in einem Kompatibilitätsmodus. Wenn du bei VIC-Registern rumpörkelst, wird das im Hintergrund umgemappt auf die zugrunde-liegenden VIC4-Register. D.h. damit kann man sich ungewollt vorher gemachte VIC4-Einstellungen verbiegen.
Also doch nicht so einfach in Basic mit Sprites zu spielen.