Posts by gartenzwerg

    Ganz ungepackt wäre besser für das Kerberos, da ich immer 4 kB Flash einfach als ROM von der Hardware reinmappe und kopieren davon noch schneller als RLE geht. EasyFlash dagegen arbeitet blockorientiert mit eigenem Treiber, daher ist dort der Packer wahrscheinlich ein wenig schneller.


    Aber ich kann auch die gepackte Version nehmen. Ob es nun in 2 oder 3 Sekunden startet macht ja keinen praktischen Unterschied. Muss nur ein normales PRG sein, was aber auch über den IO-Bereich gehen darf, und dann ins RAM darunter geladen wird.

    Naja, was Frank vergessen hatte hinzuzufügen. Das war die gepackte Bitmap für den Editormodus. Das Programm stürzte im Editomodus nicht ab, es zeigte nur das, was ab $F700 im RAM stand.

    Ich werde natürlich ein CSDB release daraus machen. Aber dazu werde ich das Programm nochmal selber cracken und alles unnötige entfernen. Der Crack sollte so kurz wie möglich werden aber nicht kürzer.

    Prima, danke, ich bin wohl kein besonders guter Cracker :D Fürs Kerberos wäre eine Version sinnvoll, die nicht gepackt ist, da das entpacken länger dauert, als es direkt vom Flash zu laden, und die einzelnen Slots im Flash sowieso alle fest 64 kB sind.

    Ja, das Video meinte ich. Es läuft mit 8 MHz. Zumindest bei diesem Test. Ist immer die Frage bei solchen Sachen die außerhalb der Spezifikation liegen wie gut es läuft. Anderer Batch vom YM2151 und es läuft nicht mehr, oder im Sommer wenn es heisser ist, oder bei Vollmond :D Für ein Hobbyprojekt egal, aber wenn man es kommerziell verkauft, dann sollte man sich schon ans Datenblatt halten.

    Die Frage des Soundchips ist ja immer noch offen. Die beiden im Moment in Kombination geplanten Chips YM2151 und SAA1099 finde ich durchaus sinnvoll (wenn sie denn überhaupt bei den im Moment festgesetzen 8Mhz funktionieren). Ob und wann die Yamaha Chips irgendwann mal nicht mehr verfügbar sein werden (sind ja vermutlich sowieso China-Klone) ist ja nicht so relevant, wenn bei der Variante für die Massen alles in einem FPGA umgesetzt werden soll.

    Zumindest laut Original Datenblatt vom YM2151 ist es ausserhalb der Spezifikation, wenn man den YM2151 mit 8 MHz am Datenbus betreibt, da das Write-Signal mindestens 100 ns lang sein muss, aber der 6502 nur für einen halben Takt das Signal auf low zieht, also 63 ns. Scheint aber wohl dennoch zu funktionieren. Auf dem Testaufbau der in der Facebookgruppe gezeigt wurde, konnte man aber auch die CPU auf 4 MHz und 2 MHz runtertakten. Das wäre dann das sichere Verfahren, um den Chip anzusprechen.


    Ich habe übrigens in den Emulator eine YM2151 Emulation eingebaut. Ist noch nicht perfekt, da die noch besser mit der CPU synchronisiert werden muss, aber wenn man die Audio Puffergröße gering genug wählt, dann funktioniert es schon recht gut. Hier mal ein Beispiel was ich dafür dann auf Anwendungsebene programmiert habe:



    Der VERA Grafikchip auf FPGA Basis ist auch recht nett. Hat auch Rasterzeileninterrupts usw. Ein kleines Beispiel was ich dafür programmiert habe:



    Kann mittlerweile auch bis zu 128 Sprites darstellen. Da gibt es von anderen Leuten mit zuviel Zeit schon einige Ansätze für Demos für, wie eine dypp Laufschrift, die natürlich mit sovielen Sprites prima machbar ist, ohne viel Rechenaufwand für die CPU.

    Also hypothetisch ist das möglich, muß dann nur einer machen :D Ist aber gar nicht so schwierig. Der VHDL-Code ist gut dokumentiert. Ist zwar nicht der beste Code, aber dafür alles übersichtlich in einer Datei:


    https://github.com/FrankBuss/k…ld/kerberos/vhdl/main.vhd


    Dort Registerzugriffe rauszunehmen ist nicht allzu schwierig. Die Xilinx "ISE" IDE ist auch kostenlos und ein Xilinx Platform Cable gibt es preisgünstig bei eBay:


    http://cgi.ebay.de/272600102573


    Macht wirklich Spaß, CPLDs und FPGAs zu programmieren, kann ich nur empfehlen.

    Die Problematik an sich ist mir bewusst. Allerdings ist das FM-YAM-Modul ein moderner Nachbau des Commodore SFX Sound Expanders mit kleinen Unterschieden. Das SFX-Cart ist eines der wenigen C64-Module, das seinerseits selbst einen Modulschacht hat, also explizit für die gemeinsame Verwendung mit einem anderen Cartridge vorgesehen ist, z.B. mit einem MIDI-Adapter. Da gibt's dann also auch keinen Konflikt im I/O-Bereich.
    FM-YAM passt von der Größe in ein Standardmodulgehäuse, hat also keinen Modulslot, daher ist man auf eine Weiche am Expansionsport angewiesen. Die Probleme mit Kerberos in diesem Zusammenhang ergeben sich vermutlich durch die EasyFlash-Implementation?


    Siehst du denn eine Möglichkeit, Kerberos und FM-YAM zur Zusammenarbeit zu bewegen? Die Frage ist jetzt nicht nur technisch gemeint, sondern beinhaltet auch deine Lust und Laune bzw. etwaige Bedingungen, die dafür erfüllt sein müssten. Wenn es für den C64 schon ein quasi All-in-one-MIDI-Modul gibt, wäre die Funktionalität zusammen mit FM-YAM das Tüpfelchen auf dem i zur perfekten Abrundung. :)

    Wenn du die IO-Belegung des FM-YAM kennst, dann könntest du den VHDL-Code für den CPLD anpassen und mit einem Xilinx Platform Cable neu flashen.

    Eine Expansionsportweiche wird vom Kerberos Cartridge nicht unterstützt, da beide IO-Bereiche ($dexx und $dfxx) verwendet werden. Würde ich auch generell nicht verwenden, da je nach Last der Module die 6502 CPU langfristig kaputt gehen kann, da der Adress- und Datenbus ungepuffert am Expansionsport anliegt (das wurde erst beim C128 verbessert). Und die Module können auch kaputt gehen, falls die auf dieselbe Adresse reagieren und den Datenbus parallel treiben wollen.

    Ja, leeres BASIC Programm geht. Da kann man dann einfach die gewünschte MIDI-Emulation in der Kerberos App anklicken.


    Oder auch per "R" ein Reset zum BASIC prompt, und dann per POKE. Das sollte gehen, um die DATEL Emulation einzuschalten:


    poke 56889, 70
    poke 56890, 37


    Übrigens, man kann auch die LEDs direkt ansteuern:


    LED 1 an: poke 56891, 7
    LED 2 an: poke 56891, 11
    beide LEDs an: poke 56891, 15
    LEDs wieder für MIDI Stauts verwenden: poke 56891, 3


    Die vollständige Dokumentation aller Register ist hier zu finden:


    https://github.com/FrankBuss/k…lob/master/c64/src/regs.h

    Ich plane ein Spiel zuende zu entwickeln, was ich vor ein paar Jahren mal angefangen hatte, wenn genügend Interesse dafür besteht:


    https://www.kickstarter.com/pr…ex-pc-mac-ios-and-android


    Sieht aktuell so aus, als würde das Ziel erreicht. Aber nach den ersten beiden Tagen die sehr gut liefen, ist der Verlauf der Unterstützungen mittlerweile etwas abgeflacht, kann noch spannend werden.


    Die erste Version des Cartridges ist Open Source Hardware und gibt es hier, für alle die selbst ein Cartridge bauen möchten:


    https://hackaday.io/project/28295-vectrex-cartridge


    Eine gute IDE mit integriertem Emulator usw. gibt es hier:


    http://vide.malban.de


    Bei meinem Kickstarter Projekt gibt es originalgetreue Gehäuse mit Schutzhülle mit nettem Cover:



    Unabhängig vom Bloxorz-Spiel biete ich dort auch an, ein beliebiges ROM auf ein Cartridge zu brennen.

    Die Platine ist da und habe das FPGA draufgelötet und getestet. Hier ein Update zum Projekt. Werde dort weiter über das Projekt schreiben und hier dann erst wieder, wenn es was neues zum CrazyCartridge allgemein gibt.

    WLAN hatte ich zunächst nur vorgesehen, da das Modul bei eBay für weniger als 3,20 Euro zu haben ist. Und dort soll ein 8 MByte Flash drauf sein und eine relativ leistungsfähige programmierbare CPU (32 Bit RISC CPU mit 80 MHz Takt). Die Kosten für Flash und CPU wenn ich das einzeln draufbauen würde, wären ungefähr gleich hoch oder sogar teurer, je nach CPU. WLAN ist dann ein nettes Gimmick.


    Aber stimmt schon, USB einstecken ist einfacher, als erst bei einem WLAN-Netzwerk anmelden. Gegenüber dem EasyFlash wird das sogar noch einfacher werden, da ich keinen eigenen Treiber brauche, sondern den normalen virtuellen COM-Port Treiber vom FTDI-Chip verwenden werde, der im Windows Update enthalten ist (und Mac und Linux). Bedeutet also, einstecken, Treiber wird automatisch installiert, Transfer-Anwendung starten und läuft.


    Ich weiß nicht, ob man dann überhaupt noch eine SD-Card braucht, zumindest nicht für die Atari 2600 Version. Auf die 8 MByte Flash passen ja schon fast alle jemals für das System herausgekommenen Cartridges drauf :)

    Ok, vielleicht doch besser, auch USB und SD-Card vorzusehen. WLAN ist dann ein nettes Spielzeug fürs Wohnzimmer und die anderen beiden Alternativen kann man dann verwenden, wenn es damit Probleme gibt. Für USB würde ich dann was problemloses nehmen, wie ein FT232RL Chip für 4 Euro (wird z.B. auch von Arduinos und dem Bus Pirate verwendet). Die SD-Card kann man ggf. ans WLAN-Modul anschließen, da das auch programmierbar ist und über die UART-Schnittstelle dann auch Daten über USB übertragen kann.

    Einen Access Point bieten heute viele Handys an (z.B. mein iPhone, heisst da "Persönlicher Hotspot"). Damit kann man dann auch gleich ins Internet. Habe aber noch nicht probiert, ob damit auch der Datenaustausch zwischen zwei lokalen Geräten möglich ist (Laptop und Atari 2600), denke aber schon.


    Löst natürlich nicht das Problem für Orte, wo das Aufspannen eigener WLANs nicht gern gesehen ist. Dort hat man aber dann meist auch Zugriff auf das vorhandene WLAN. Eine Idee wäre vielleicht, noch zusätzlich eine UART-Verbindung vorzusehen, wo man dann einen der UART-USB-TTL Adapter einstecken kann, die es für 3-4 Euro bei eBay gibt (kostenloser Versand aus China, laufen meist gut, habe welche hier).

    Habe mal einen neuen Prototypen gebaut, diesmal für den Atari 2600. USB und SD-Card ist aber nicht mehr zeitgemäß, hat jetzt ein WLAN-Modul drauf, was heutzutage ja auch fast jeder hat:
    http://www.frank-buss.de/atari2600/index.html
    Damit kann ich dann ein paar Sachen testen und dann ggf. in die 2-Platinen Bauweise umorganisieren, um die anderen Systeme einfacher unterstützen zu können. Sollte relativ preiswert werden, wenn ich löten auf einer Platine ganz vermeiden kann, z.B. indem ich einen Mini-PCI Stecker auf der Hauptplatine vorsehe und die systemspezifische Platine die in den Cartridge-Port gesteckt wird, dann einfach dort eingesteckt und festgeschraubt wird.


    Puh, das ist aber umständlich, bzw. richtig verstanden habe ich das nicht. Das war das schöne bei FreeCAD. Man macht einen Würfel, gibt die Größe an und der veränderte sich entsprechend, ggf. hat man aus dem Bild rausgezoomt, damit man den Würfel wieder vernünftig sehen kann.


    Das geht auch alles. Du kannst auf den Würfel links in der Leiste klicken (oder im Draw-Menü wie beschrieben auswählen) und einfach mit der Maus zeichnen (gibt mehrere Zeichenmöglichkeiten, siehe die kleine Toolbar oben die zu sehen ist, wenn man das Würfel-Tool angeklickt hat). Danach kannst du dann auch die Maße noch oben ändern. Mit Mausrad raus- und reinzoomen, gedrückt gehaltenem Mausrad und bewegen der Maus zum rotieren der Ansicht. PS: Die Help->Tutorials sind wirklich gut :)