NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Kalender | Einloggen



Autor Thema: NKC Emulator für 68008
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 28. Januar 2024 17:22 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo zusammen,

ich habe einen Emulator für den NKC mit Motorola 68008 CPU auf Basis des Musashi Emulators entwickelt.
Die erste Version unterstützt neben der CPU und RAM/ROM folgende Baugruppen (GDP64K, KEY, IOE, CAS, PROMER, FLO2, COL256, SOUND, UHR). Es gibt natürlich einige Einschränkungen (z.B. nur NDR Format bei den Floppys). Es gibt zu jeder Baugruppe eine eigene doc-Datei mit wichtigen Hinweisen und Einschränkungen.
Die Emulation kann aus Windows (mit MSYS2/UCRT64, MacOSX oder Linux kompiliert werden). Für das erste Release sind auch schon fertige ZIP-Archive verfügbar (für WIN-x64, Linux-X64 und Linux-AARCH64, habe leider aktuell keinen MAC zum übersetzen).
Vielleicht möchte ja jemand es mal ausprobieren:

https://github.com/merckm/68k-NKCEmu

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 28. Januar 2024 17:26 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hier noch ein Screenshot als Teaser:



-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 29. Januar 2024 19:31 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Wow, tolle Arbeit!.
muss ich gleich mal probieren :)

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 29. Januar 2024 21:05 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
beim Versuch das mit CMAKE zu compilieren bekomm ich folgende Fehlermeldung:
Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)
Irgendwie fuindet er die sdl2 Cmake Library nicht (obwohl die da ist). Muss ich da noch irgendwas konfigurieren?
Hab das auch unter Linux probiert. Selbes Ergebnis

LG,
Andi

-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.22000.
-- The C compiler identification is MSVC 19.12.25830.2
-- The CXX compiler identification is MSVC 19.12.25830.2
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x86/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x86/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at C:/Program Files/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
cmake/sdl2/FindSDL2.cmake:317 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:14 (find_package)

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
Torsten
Kennt sich schon aus
**
ID # 92


  Erstellt am 30. Januar 2024 17:46 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Sehr geil !
Schon geklont....


LG
Torsten

Beiträge: 77 | Mitglied seit: März 2008 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 31. Januar 2024 13:10 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Andi,

hast Du noch etwas mehr Informationen wie Du die SDL2 installiert hast? Besser noch ist es wenn Du den Fehler unter Linux und die Installationsprozedur unter Linux beschreibst. Bei Windows sehe ich dass Du MSVC benutzt. Da ich kein volles (bezahltes) Visual Studio habe, bin ich mir nicht ganz sicher ob dies funktioniert und ob CMake hier benutzt werden kann und man nicht Solutions benutzen muss. Sie auch den Hinweis 3 unten.

Hier noch einiger Hinweise:

1.) In Github unter "Releases" findest Du fertig Zip Dateien die das Exe und alle Ressourcen aber auch die wichtigsten DLLs für die Laufzeit (SDL2, libyaml, ...) enthalten, sodass auf typischen Systemen der Emulator ohne Source funktionieren sollte. (Habe leider aktuell keinen Mac sodass gebaute Versionen nur für Windows und Linux verfügbar sind).

2.) Die Datei "README.md" enthält Links zu den Dateien: docs/windows.md, docs/macosx.md und docs/linux.md mit einigen Hinweisen wie man es unter den verschiedenen Plattformen bauen kann. Da kann es aber sicher auch noch Fehler geben, da ich die Beschreibungen im nachhinein erstellt habe.

3.) Unter Windows habe ich die MSYS2 Umgebung (cygwin32...) benutzt. Um genau zu sein, die UCRT64 Umgebung, da ich versucht habe den Code voll POSIX kompatibel zu halten und möglichst wenige IFDEFs für verschieden Plattformen zu verwenden. Ich habe deshalb auch GCC oder CLANG mit Visual Studio Code benutzt. Weiter Infos in der README Datei.
Da ich kein volles Visual Studio besitze bin ich mir nicht sicher ob es unter MSVC mit CMake gebaut werden kann. Wahrscheinlich müssen dann auch einige Plattform spezifische Headers benutzt werden, da MSVC nicht voll POSIX konform ist. Bin aber gespannt ob Du es schaffst es mit MSVC zu kompilieren.

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 31. Januar 2024 17:15 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
danke für die Erklärung. Ich hab leider kein Vorwissen bzgl. SDL2 Library. Ich kämpf gerade mit der Installation der Library. Was brauch ich dafür. Hab mit die Binaries von github gezogen. Aber was mir Probleme bereitet ist die installation der SDL_image und SDL2_ttf Libraries. Hättest du für die ganze intallation eine kurze Anleitung und auch wie man dann CMake aufrufen muss damit er diese auch findet. Ich setz dazu aktuell die "CMAKE_PREFIX_PATH" environment Variable in meiner MSYS-Shell. Das funktioniert für die SDL2-Library, jedoch nicht für die anderen

LG,
Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 31. Januar 2024 18:06 (#8)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
bin jetzt etwas weiter gekommen. Er startet jetzt zumindet mal mit dem compile. Aber dann bricht er ab weil er yaml.h nicht findet:
[ 3%] Building C object Musashi/CMakeFiles/m68kmake.dir/m68kmake.c.obj
[ 6%] Linking C executable m68kmake.exe
[ 6%] Built target m68kmake
[ 9%] Generating musashi 68k core

Musashi v4.60 68000, 68008, 68010, 68EC020, 68020, 68EC030, 68030, 68EC040, 68040 emulator
Copyright Karl Stenerud (kstenerud@gmail.com)

Generated 1967 opcode handlers from 518 primitives
[ 12%] Building C object Musashi/CMakeFiles/musashi.dir/m68kcpu.c.obj
[ 15%] Building C object Musashi/CMakeFiles/musashi.dir/m68kdasm.c.obj
[ 18%] Building C object Musashi/CMakeFiles/musashi.dir/m68kops.c.obj
[ 21%] Building C object Musashi/CMakeFiles/musashi.dir/softfloat/softfloat.c.obj
[ 25%] Linking C static library libmusashi.a
[ 25%] Built target musashi
[ 28%] Building C object ayumi/CMakeFiles/Ayumi.dir/ayumi.c.obj
[ 31%] Linking C static library libAyumi.a
[ 31%] Built target Ayumi
[ 34%] Building C object CMakeFiles/68k-nkcemu.dir/68k-nkcemu.c.obj
C:\Working\privat\NKC\68k-NKCEmu\68k-nkcemu.c:41:18: fatal error: yaml.h: No such file or directory
#include <yaml.h>

^
compilation terminated.

Wie installiere ich die yaml-lib auf Mingw64?

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 04. Februar 2024 09:54 (#9)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Andi,

Ja Du brauchst noch die "libyaml". Dabei sollte auch yaml.h installiert werden.

Das Kommando ist:
pacman -Sy mingw-w64-ucrt-x86_64-libyaml

Habe versucht mit möglichst wenigen Bibliotheken auszukommen, die dann auch für alle Plattformen verfügbar sind. Hoffe es geht danach.

Martin

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 05. Februar 2024 10:25 (#10)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

Danke. Unter Linux hab ich den Simulator inzwischen zum laufen bekommen. Mit Windows kämpf ich noch (u.a. mit libyaml). Wirklich tolle Arbeit von dir!
Was ich als nächstes gerne mache würde ist die GDP64 im Simulator zu einer GDP64HS upzugraden.

LG,
Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 06. Februar 2024 07:42 (#11)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Andi,

Das mit der GDP64HS finde ich interessant. Welche Features interessieren dich denn dort und hast Du Software die dies ausnutzen. Den Hardware-Scroll kann man natürlich ziemlich einfach implementieren, wird jedoch in der Simulation eher langsamer als einen Geschwindigkeitsvorteil bringen.
Ich werde wahrscheinlich erst an der Hardcopy/Maus Baugruppe arbeiten. Würde gerne das Graphik-Jados und das Mal-Programm mal sehen.

LG,
Martin

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 06. Februar 2024 11:09 (#12)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Martin,

was bei der GDP64HS am interessantesten ist ist der XOR-Mode (sollte eigentlich auch sehr einfach zu implementieren sein). Natürlich muss dann auch der Hardscroll implementiert werden damit das ganze kompatibel ist. Bei der 68k-Software spart der Hardscroll schon erheblich Zeit bei der Ausgabe von viel Text (z.B. Inhaltsverzeichnis eines Laufwerks anzeigen).
Mit der GDP64HS würde dann auch der XT (XTree clone) Dateimanager funktionieren denn ich mal (in meiner Jugend) geschrieben hab.
Was für die Zukunft auch machen will ist die GDP64HS-FPGA implementieren (Farberweiterung bis zu 256 farben, zusätzlicher Timer für Interrupts, ...). Ich hab dafür einige Spiele in C / C++ geschrieben (Tetris, 4-gewinnt, Minesweeper). Die würd ich gern mal am Simulator spielen. Dann kann auch jeder mal testen was die GDP64HS-FPGA so alles kann ;)

LG,
Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 11. Februar 2024 09:11 (#13)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Andi,

finde gerade dein Beitrag wegen der Grundprogramm Version 7.10R5 nicht mehr. Hier aber einige Hinweise dazu. Natürlich funktioniert das Grundprogramm 7.10 auch. Man muss jedoch sicherstellen das man die ROMs für den 68008 hat (nicht die für den 68000).
Dein Fehler (INTERRUPT) scheint dadurch zu kommen, dass Du eine Config-Datei für (6.22 oder 7.01) kopierst hast und dort nur den Pfad zu dem neuen ROM angepasst hast. Der Unterschied zu den anderen ROMS (7 * 8k Größe) ist das die 7.10 ROMs 64k groß sind. Du musst also auch die Größenangabe in der Config anpassen:


- RomPath_D0000: ./resources/roms/GP710508.ROM
- RomSize_D0000: 65536


ansonsten verhält sich die Simulation wie ein realer NKC in dem Du nur 7 der 8 ROM-Bausteiene auf einer ROA64 einsetzt und führt zu unerwartetem Verhalten. Habe eine Beispiels-Config für das 7.10 Grundprogramm in das Repo mit eingecheckt.

Du solltest auch in der Config die DIP-Switcher der KEY-Baugruppe unter umständen anpassen um z.B. Auto-Boot einzuschalten oder nicht. Insgesamt bietet das Grundprogramm 7.10 hauptsächlich Unterstützung für andere Baugruppen, die jedoch aktuell nicht simuliert werden.



-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 11. Februar 2024 09:17 (#14)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hier noch einmal die Bitte an die Admins ob der Titel des Threads korrigiert werden kann auf "NKC Emulator für 68008". Kann dies leider selber nicht vornehmen.

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 11. Februar 2024 13:20 (#15)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Martin,
super Projekt ! Lauft SpaceInvaders auf dem Emulator? (braucht kein GP)

https://nkc-schuetz.de/forumdrc/index.php?mode=viewthread&forum_id=2&thread=96&z=1#post1

Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 182 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 11. Februar 2024 15:16 (#16)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Martin,
Danke für das Ausprobieren. Hab es in der Zwischenzeit auch selber schon geschafft. Das Problem ist vor meinem Bildschirm gesessen - hatte vergessen die RomSize anzupassen. Darum ist es abgestürzt.
Der Hintergrund für meine Versuche mit verschiedenen GP-Versionen war ein möglicher Bug in der GDP im Emulator. Und zwar erhalte ich beim Hardscroll immer verstümmelte Ausgaben bei manchen Zeilen.
Dachte dass das ev. ein Bug im (älteren) GP ist.
Und zwar fehlt da immer der obere Teil einer Zeile (wenn die genau auf der Kante ist). Hier von UFORM.68k.
Das GP schreibt in diesem Fall die Zeile 2x. Das erste mal mit Y=252, das zweite mal mit Y=-4 (65532), wovon die oberen paar Pixel in den sichtbaren bereich kommen (und die fehlen aktuell). Der Hard-scroll setzt das wieder richtig zusammen und man merkt davon nichts mehr.


Hab dazu bei meiner GDP-FPGA maol den Hardscroll deaktiviert um zu sehen wie das dort ausschaut:



Ich denke da ist noch ein Bug in der GDP im Emulator.
Mal schauen ob ich den finde. Vielleicht hast ja auch mal Zeit da drauf zu schauen. Ansonsten würde der Hanrdscroll schon funktionieren bei mir.

LG,
Andreas

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 11. Februar 2024 19:03 (#17)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Martin,
hab den Bug gefunden und gefixt bei mir. :)
Hardscroll funktioniert nun. Waren nur einige Kleinigkeiten in der GDP. Wenn du mir Schreibrechte gibst check ich die Änderungen in dein repo ein - in einen GDP_fix branch. Kannst es dann via Pull-Request (und Review) in deine Mainline übernehmen.

LG,
Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 11. Februar 2024 20:18 (#18)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Andi,

sende mir mal per PM dein Github alias, damit ich dich dem Projekt hinzufügen kann.

Gruß,
Martin

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
b377
Lernt noch alles kennen
*
ID # 234


  Erstellt am 11. Februar 2024 20:22 (#19)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo smed,

habe gerade mal Space Invaders ausprobiert. Bisher bleibt es nach dem Intro Screen hängen. Auch der Sound scheint noch nicht richtig zu funktionieren. Es werden einige Kommandos an die Sound Karte gesendet, es kommt aber noch kein Sound. Kann aber auch damit zusammenhängen, dass es zu früh hängenbleibt. Hast Du dazu auch den Source Code. Würde beim debuggen helfen.

Gruß,
Martin

-----------------------
Gruß Martin

Beiträge: 14 | Mitglied seit: Dezember 2023 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 11. Februar 2024 20:48 (#20)  |  Zitat Zitat   PN PN   E-Mail E-Mail
https://github.com/smedde/SpaceInvaders
https://github.com/smedde/NKClibs

Habe Dir access gegeben.

Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 182 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert



| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,029740 Sekunden erstellt
18 Dateien verarbeitet
gzip Komprimierung eingeschaltet
1770,54 KiB Speichernutzung