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



Autor Thema: CTREK (Startrek) für 68k TangNano
redo
Stammgast
**
ID # 245


  Erstellt am 31. Dezember 2025 12:41 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo,
über Tuti, Creep, Andi und euch habe ich im Herbst 2025 ja zum TangNano mit 68k gefunden. Dann war das mit dem C auch nicht mehr weit. ALs Anfänger wollte ich natürlich in C einsteigen und suchte ein Anfängerprojekt.
Hier möchte ich euch heute meinen Einstieg präsentieren:

CTREK für den TangNano mit 68k (68000).

Programmiert habe ich nach Unterlagen aus den 1980er Jahren und in Erinnerung an eine Spielvariante für den TRS80 Model I, den ich damals hatte. Ich habe nur einfachste C-Befehle verwendet und die Struktur mag vielleicht nicht besonders professionell sein. Aber es funktioniert und es hat Spass gemacht. Ich fand damit auch einen guten Einstieg in C.



Ich möchte es euch und vor allem Neueinsteigern in den NKC mit TangNano und dem 68k hier weitergeben. Es gibt da sicher noch viele Ideen, die da hineinpassen würden. Keine aufwändige Grafik, aber der damals vorgefundene Spieltyp.

Entwickelt unter Windows 10, mit MSYS2 und dem Croscompiler-Framework von Andi von hier

https://github.com/avg67/nkc/wiki/GCC-Crosscompile-Framework-f%C3%BCr-den-NKC

für den TangNano NKC mit 68000er CPU, GP 7.1 und Jados 3.5.

Zum Upload verwende ich die dl.py auf dem Windowsrechner und RS232D auf dem TangNano.

Hier das Zip mit allen Dateien (Quellen, ausführbare Datei, Laderoutine dl.py und Makefile)

ctrek.zip

VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Beiträge: 172 | Mitglied seit: Juni 2025 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 03. Januar 2026 11:32 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hi Jürgen
Super Sache ! Lief bei mir auf Anhieb (warum auch nicht). Ein Spiel mehr für den NKC :) . Und meines Wissens das erste Strategiespiel ! Muss mir mal in einer ruhigen Minute die Anleitung dazu anschauen, aber ein Paar Klingonen mussten schon dran glauben.

Wie geht's nun weiter? CTREK mit mehr Grafik und Sound verfeinern, das wäre eine feine Sache, dann wäre CTREK in der Profiliga, oder ein neues Projekt?

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 und eine FPGA-GDP.

NKC - OpenSource since 1983

Beiträge: 299 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
redo
Stammgast
**
ID # 245


  Erstellt am 03. Januar 2026 12:28 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail   HP HP
Hallo Smed,
gute Neues Jahr für Dich und viel Spass hier mit Deinem NKC.
Es freut mich, dass es gleich bei Dir gelaufen ist.

Zunächst war CTREK für mich ja ein Einstiegsprojekt in die C Programmierung unter 68k auf dem TangNano. Wie ich geschrieben habe, verzichtete ich auf (in Zukunft wichtige) Sprachelemente. Es hat mir bis hierher viel Spass gemacht.

Und ja, in der Tat kamen mir bei der Umsetzung schon weitere Ideen: Intro fehlt ja, oder ein Scoreboard.

In meinem Fundus, ich recherchierte ja zu dem Spiel, gibt es einen Screenshot von einer "grafischen" Variante:



Der Autor findet sich hier:

https://github.com/jacklh9/StarTrek_BASIC

Das ist dann für mich noch eine andere Kategorie. Da muss ich erst noch weiter lernen.

Ich habe mich über Dein Feedback sehr gefreut.

VG Jürgen

-----------------------
Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend!

Beiträge: 172 | Mitglied seit: Juni 2025 | IP-Adresse: nicht gespeichert
andi
Fühlt sich wie zu Hause
***
ID # 213


  Erstellt am 05. Januar 2026 20:04 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Jürgen,

Tolles Spiel!. Gratulation dazu :)
hab mir jetzt CTREK mal runter geladen und mal rein geschaut. Hier sind einige Dinge die mir aufgefallen sind.
Wenn du ein Array z.B. int myArray[10] deklarierst und dann mit einer for schleife for(i=0;i<=10;i++) {myArray[i] ...} drüber iterierst dann ist das ein Fehler, weil die Schleife dann auf 11 Elements (0..10) zugreift, der Index von myArray aber nur für 0..9 gültig ist. D.h. du überschreibst im Speicher die Variable die unmittelbar hinter myArray zu liegen kommt. Solche Fehler sind meisst extrem schwer zu finden weil dann das programm meisst an ganz anderer Stelle abstürzt oder einen unerklärlichen Fehler ausgibt.
Richtig wäre bei der Schleife: for(i=0;i<10;i++) ...
Hier ist der neuere Linux GCC (6.3.0) ein Vorteil weil dieser hier Warnungen ausgibt:

m68k-linux-gcc -c -g -Os -m68000 -Wall -fomit-frame-pointer -nostartfiles -std=gnu99 -Dndrcomp -DUSE_JADOS -lm ctrek.c -o obj/ctrek.o
In file included from ctrek.h:286:0,
from ctrek.c:10:
ctrek.c: In function 'InitUniversum':
init.c:43:31: warning: iteration 10 invokes undefined behavior [-Waggressive-loop-optimizations]
Universum[ix][iy] = ES;

init.c:42:9: note: within this loop
for (ix = 0; ix <= 10; ix++) {
^~~
In file included from ctrek.h:287:0,
from ctrek.c:10:
ctrek.c: In function 'FillSector':
calc.c:28:28: warning: iteration 10 invokes undefined behavior [-Waggressive-loop-optimizations]
Sektor[ix][iy] = ES;

calc.c:27:9: note: within this loop
for (ix = 0; ix <= 10; ix++) {
^~~
In file included from ctrek.h:295:0,
from ctrek.c:10:
ctrek.c: In function 'Torpedo':
torpedos.c:91:37: warning: iteration 3 invokes undefined behavior [-Waggressive-loop-optimizations]
if (klpos[i][0] == x && klpos[i][1] == y) {
~~~~~~~~^~~
torpedos.c:90:21: note: within this loop
for (i=0; i<=3; i++) {
^~~

Weiters ist das einbinden von .c files via #include nicht so gut. Ich würde diese ins makefile (CSRCS= ) hinzu fügen. Außerdem würde ich in jedes .h file einen (multi-include) "Verhinderer" (#ifdef _H_FILE ...) am Anfang einbauen ansonsten bekommst du compiler-fehler sollte ein .h file mehrmals inkludiert werden (multiple declaration fehler etc.) -> siehe z.B. https://github.com/avg67/nkc/blob/main/SW/SysGCC-delta/m68k-elf/nkc_common/nkc/nkc.h#L1

Beiträge: 420 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert



| https://nkcforum.de | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,049460 Sekunden erstellt
15 Dateien verarbeitet
gzip Komprimierung eingeschaltet
2198,60 KiB Speichernutzung