Source von Night Knight
Moderator: Rockford
- LarsImNetz
- Beiträge: 170
- Registriert: 24.08.2021 18:27
- Has thanked: 127 times
- Been thanked: 89 times
- Kontaktdaten:
Source von Night Knight
Die aktuelle Night Knight Version im Source
https://github.com/the-atari-team/tat.night-knight.git
Freiwillige vor!
Wer traut sich es mal zu pullen und zu bauen.
Linux oder Windows mit MinGW, vielleicht auch Mac.
* braucht Java 11, oder 17, vielleicht 21.
Dann einfach "make init" und wenn das geht, dann "make start"
https://github.com/the-atari-team/tat.night-knight.git
Freiwillige vor!
Wer traut sich es mal zu pullen und zu bauen.
Linux oder Windows mit MinGW, vielleicht auch Mac.
* braucht Java 11, oder 17, vielleicht 21.
Dann einfach "make init" und wenn das geht, dann "make start"
- Dinadan
- Beiträge: 138
- Registriert: 18.08.2021 17:17
- Has thanked: 208 times
- Been thanked: 43 times
- Kontaktdaten:
Re: Source von Night Knight
Das sieht auf meinem iMac gar nicht so schlecht aus, "atari800" und "atasm" kann man mit Homebrew installieren, dann noch "ATARIXL.ROM" in ../firmware kopiert und den Pfad um compiler/bin ergänzt: "make init" läuft dann durch und mit "make" kann man versuchen zu bauen. Leider steigt das ganze dann mit einem obskuren Fehler im Assembler aus. Da ich mich mit atasm so gar nicht auskenne, bin ich etwas ratlos:
Code: Alles auswählen
HHROTOSC0101:tat.night-knight dj$ make
wnfc night-knight.wnf '-O' 3 '-smallHeapPtr' -showvariableusage -I library -I library/tests-utils
WARN Parameter for small Heap Pointer is given, we use only byte wide size heap!
WARN Make sure your Heap_Ptr starts at equal word address! See RUNTIME.INC
INFO Parameter for variable usage is given, see how often each variable is used.
ERROR Given path library/tests-utils does not exist.
INFO Read file: 'night-knight.wnf'
INFO Check for header file: 'header.wnf'
INFO Found a 'header.wnf' file, read it first.
INFO compile
INFO set variable GAME_MODE from header.
INFO set variable SHOW_SCREEN from header.
INFO set variable PM_BASE_ADDR from header.
INFO set variable NEW_LIVE_AT_SCORE from header.
INFO set variable NEW_LIVE_AT_SCORE_IN_SIMPLE from header.
INFO set variable NEW_LIVE_AT_SCORE_IN_GODMOD from header.
INFO set variable PLAYFIELD_SCREEN from header.
INFO set variable MESSAGE_SCREEN from header.
INFO set variable INTRO_SCREEN from header.
INFO set variable OUTRO_SCREEN from header.
INFO set variable SPEED_50 from header.
INFO set variable SPEED_66 from header.
INFO set variable SPEED_75 from header.
INFO set variable SPEED_80 from header.
INFO set variable SPEED_85 from header.
INFO set variable SPEED_90 from header.
INFO set variable SPEED_95 from header.
INFO set variable SPEED_98 from header.
INFO set variable MODE_INTRO from header.
INFO set variable MODE_PLAY from header.
INFO set variable MODE_GAME_OVER from header.
INFO set variable MODE_ABBRUCH from header.
INFO set variable MODE_LOST_LIVE from header.
INFO set variable MODE_LEVEL_DONE from header.
INFO set variable MODE_OUT_OF_TIME from header.
INFO set variable MODE_NO_MORE_LIVES from header.
INFO set variable DIRECTION_STAY_LOOK_RIGHT from header.
INFO set variable DIRECTION_STAY_LOOK_LEFT from header.
INFO set variable DIRECTION_WALK from header.
INFO set variable DIRECTION_WALK_RIGHT from header.
INFO set variable DIRECTION_WALK_LEFT from header.
INFO set variable DIRECTION_JUMP from header.
INFO set variable DIRECTION_JUMP_RIGHT from header.
INFO set variable DIRECTION_JUMP_LEFT from header.
INFO set variable DIRECTION_DEAD from header.
INFO set variable DIRECTION_DEAD_RIGHT from header.
INFO set variable DIRECTION_DEAD_LEFT from header.
INFO set variable DIRECTION_BLOW_AWAY from header.
INFO set variable MAX_SPRITES from header.
INFO set variable MAX_ENEMIES from header.
INFO set variable WALL_1 from header.
INFO set variable WALL_2 from header.
INFO set variable BACKGROUND_DASH_1 from header.
INFO set variable BACKGROUND_DASH_2 from header.
INFO set variable BACKGROUND_DASH_3 from header.
INFO set variable BACKGROUND_DASH_4 from header.
INFO set variable FLOOR_YELLOW_1 from header.
INFO set variable FLOOR_YELLOW_2 from header.
INFO set variable FLOOR_1 from header.
INFO set variable FLOOR_2 from header.
INFO set variable DOOR_CLOSED_1 from header.
INFO set variable DOOR_CLOSED_2 from header.
INFO set variable DOOR_CLOSED_3 from header.
INFO set variable DOOR_CLOSED_4 from header.
INFO set variable DOOR_CLOSED_5 from header.
INFO set variable DOOR_CLOSED_6 from header.
INFO set variable DOOR_OPENED_1 from header.
INFO set variable DOOR_OPENED_2 from header.
INFO set variable DOOR_OPENED_3 from header.
INFO set variable DOOR_OPENED_4 from header.
INFO set variable DOOR_OPENED_5 from header.
INFO set variable DOOR_OPENED_6 from header.
INFO set variable KEY_1 from header.
INFO set variable KEY_2 from header.
INFO set variable BODEN_MESSER_1 from header.
INFO set variable BODEN_MESSER_2 from header.
INFO set variable BODEN_MESSER_1HI from header.
INFO set variable BODEN_MESSER_2HI from header.
INFO set variable ELEVATOR_1 from header.
INFO set variable ELEVATOR_2 from header.
INFO set variable ELEVATOR_3 from header.
INFO set variable ELEVATOR_4 from header.
INFO set variable ELEVATOR_5 from header.
INFO set variable ELEVATOR_6 from header.
INFO set variable SANDCLOCK_1 from header.
INFO set variable SANDCLOCK_2 from header.
INFO set variable SANDCLOCK_3 from header.
INFO set variable SANDCLOCK_4 from header.
INFO set variable STOPWATCH_1 from header.
INFO set variable STOPWATCH_2 from header.
INFO set variable STOPWATCH_3 from header.
INFO set variable STOPWATCH_4 from header.
INFO set variable SHIELD_1 from header.
INFO set variable SHIELD_2 from header.
INFO set variable SHIELD_3 from header.
INFO set variable SHIELD_4 from header.
INFO set variable GEMS_1 from header.
INFO set variable GEMS_2 from header.
INFO set variable GEMS_3 from header.
INFO set variable GEMS_4 from header.
INFO set variable GAME_SCREEN from header.
INFO set variable SCORE_TEXT from header.
INFO set variable XOFFSET from header.
INFO set variable THE_DUDE from header.
INFO set variable KEY from header.
INFO set variable DOOR from header.
INFO set variable SANDCLOCK from header.
INFO set variable SHIELD from header.
INFO set variable GEMS from header.
INFO set variable STOPWATCH from header.
INFO set variable E_SKELETON from header.
INFO set variable E_ARCHER from header.
INFO set variable E_DARK_KNIGHT from header.
INFO set variable E_GHOST from header.
INFO set variable E_VAMPIRE from header.
INFO set variable E_WIZARD from header.
INFO set variable E_WERWOLF from header.
INFO set variable E_CAT from header.
INFO set variable IDX_SKELETON from header.
INFO set variable IDX_ARCHER from header.
INFO set variable IDX_DARK_KNIGHT from header.
INFO set variable IDX_GHOST from header.
INFO set variable IDX_VAMPIRE from header.
INFO set variable IDX_WIZARD from header.
INFO set variable IDX_WERWOLF from header.
INFO set variable IDX_CAT from header.
INFO set variable IDX_ARROW from header.
INFO set variable IDX_BAT from header.
INFO set variable IDX_BLOW from header.
INFO set variable ANIM_JUMP_UP from header.
INFO set variable ANIM_JUMP_DOWN from header.
INFO set variable ANIM_END from header.
INFO set variable COLOR_SKELETON from header.
INFO set variable COLOR_ARCHER from header.
INFO set variable COLOR_DARK_KNIGHT from header.
INFO set variable COLOR_GHOST from header.
INFO set variable COLOR_VAMPIRE from header.
INFO set variable COLOR_WIZARD from header.
INFO set variable COLOR_WERWOLF from header.
INFO set variable COLOR_CAT from header.
INFO set variable COLOR_ARROW from header.
INFO set variable COLOR_BAT from header.
INFO set variable COLOR_BLOW from header.
INFO set variable @NTSC_COLOR_ADD from header.
INFO set variable DUDE_COLOR_P1 from header.
INFO set variable DUDE_COLOR_P2 from header.
INFO set variable COLOR_DUDE_P1_PAL from header.
INFO set variable COLOR_DUDE_P2_PAL from header.
INFO set variable COLOR_DUDE_P1_NTSC from header.
INFO set variable COLOR_DUDE_P2_NTSC from header.
INFO set variable COLOR_YELLOW_PAL from header.
INFO set variable COLOR_YELLOW_NTSC from header.
INFO set variable COLOR_WHITE from header.
INFO set variable COLOR_PW_DELETE from header.
INFO set variable COLOR_PW_OK from header.
INFO set variable COLOR_PW_ARROW from header.
INFO set variable COLOR_CASTLE_WHITE from header.
INFO set variable COLOR_CASTLE_GRAY from header.
INFO set variable COLOR_CASTLE_DARK_BLUE from header.
INFO set variable COLOR_CASTLE_YELLOW from header.
INFO set variable KEY_OPTION from header.
INFO set variable KEY_SELECT from header.
INFO set variable KEY_START from header.
INFO set variable KEY_ESCAPE from header.
INFO set variable KEY_SPACE from header.
INFO set variable KEY_LEFT from header.
INFO set variable KEY_RIGHT from header.
INFO set variable KEY_P from header.
INFO set variable SCORE_ENTER_FLOOR from header.
INFO set variable SCORE_REST_SECONDS from header.
INFO set variable SCORE_GEMS from header.
INFO set variable SCORE_STAGE_CLEARED from header.
INFO set variable COLOR_NIGHT_LETTER_1 from header.
INFO set variable COLOR_NIGHT_LETTER_2 from header.
INFO set variable COLOR_NIGHT_LETTER_3 from header.
INFO set variable PACMAN_CANAL from header.
INFO set variable GHOST_CANAL from header.
INFO set variable AUGEN_CANAL from header.
INFO set variable TIC_TOC_CANAL from header.
INFO set variable X_POS_HEART from header.
INFO set variable X_POS_SCORE from header.
INFO set variable AUDCTL_9BIT_POLY from header.
INFO set variable AUDCTL_12_1_79M from header.
INFO set variable AUDCTL_34_1_79M from header.
INFO set variable AUDCTL_12_16BIT from header.
INFO set variable AUDCTL_34_16BIT from header.
INFO set variable AUDCTL_15K from header.
INFO set variable AUDCTL_64K from header.
INFO set variable AUDCTL_0 from header.
INFO Variable usage count:
INFO show only variables with read usage of at least 9 times.
INFO show only variables with write usage of at least 4 times.
INFO Variable: 'GAME_MODE' has 6 writes
INFO Variable: 'SECONDS' has 12 reads
INFO Variable: 'LEVEL' has 10 reads
INFO Peephole Optimizer has 252 optimizations applied.
INFO Register Optimizer has 20 optimizations applied.
INFO Long Jump Optimizer has 42 optimizations applied.
INFO write to /Users/dj/IdeaProjects/tat.night-knight/NIGHT.ASM
atasm -ha -s NIGHT.ASM -gNIGHT.lst -lNIGHT.lab >NIGHT.log
ATasm 1.09 (A mostly Mac65 compatible 6502 cross-assembler)
Pass 1:
In NIGHT.ASM, line 1174--
Error: Symbol '=1=WEND17' already defined!
make: *** [NIGHT.65o] Error 1
- Dinadan
- Beiträge: 138
- Registriert: 18.08.2021 17:17
- Has thanked: 208 times
- Been thanked: 43 times
- Kontaktdaten:
Re: Source von Night Knight
Ich habe auf Github eine neuere Version von atasm von Peter Hinz gefunden und damit baut Knight Night!
Das atr bootet auch auf meinem Emulator und läuft prima.
Das atr bootet auch auf meinem Emulator und läuft prima.
- LarsImNetz
- Beiträge: 170
- Registriert: 24.08.2021 18:27
- Has thanked: 127 times
- Been thanked: 89 times
- Kontaktdaten:
Re: Source von Night Knight
Danke für den Hinweis, mach mal bitte ein `git pull`. Ich habe das Makefile entsprechend angepasst und die tests-utils entfernt. Die werden nicht gebraucht.
LG
Lars
LG
Lars
- LarsImNetz
- Beiträge: 170
- Registriert: 24.08.2021 18:27
- Has thanked: 127 times
- Been thanked: 89 times
- Kontaktdaten:
- Dinadan
- Beiträge: 138
- Registriert: 18.08.2021 17:17
- Has thanked: 208 times
- Been thanked: 43 times
- Kontaktdaten:
Re: Source von Night Knight
1.23 ist die Version von Peter Hinz die ich auf Github gefunden habe: https://github.com/CycoPH/atasm
Das Paket in Homebrew ist leider veraltet.
Das Paket in Homebrew ist leider veraltet.
- LarsImNetz
- Beiträge: 170
- Registriert: 24.08.2021 18:27
- Has thanked: 127 times
- Been thanked: 89 times
- Kontaktdaten:
Re: Source von Night Knight
Homebrew, ist das wirklich auf Github? https://github.com/Homebrew dann könntest Du bestimmt einen Issue schreiben, das die atasm Version veraltet ist. Ich habe keinen Mac, nutze nur Linux und ab und zu noch Windows (10), ab 2025 dann wohl nur noch Linux.
- cas
- Beiträge: 861
- Registriert: 18.06.2021 21:01
- Wohnort: Solar System
- Has thanked: 196 times
- Been thanked: 399 times
- Kontaktdaten:
Re: Source von Night Knight
Die offizielle Version von ATASM ist 1.09
https://atari.miribilist.com/atasm/
Homebrew ist daher nicht veraltet.
Die Version von Peter Hinz ist ein "Fork" von ATASM 1.08
Wahrscheinlich ist es kein "offizieller" Fork.
Es wäre mit Peter Hinz zu klären ob er mit Mark Schmelzenbach die Arbeit an ATASM abgesprochen hat. Wenn nicht, wäre es besser wenn Peter seine Weiterentwicklung umbenennt, denn beide ATASM-Versionen entwicklen sich nun unabhängig und sind nicht mehr kompatibel.
https://atari.miribilist.com/atasm/
Homebrew ist daher nicht veraltet.
Die Version von Peter Hinz ist ein "Fork" von ATASM 1.08
Wahrscheinlich ist es kein "offizieller" Fork.
Es wäre mit Peter Hinz zu klären ob er mit Mark Schmelzenbach die Arbeit an ATASM abgesprochen hat. Wenn nicht, wäre es besser wenn Peter seine Weiterentwicklung umbenennt, denn beide ATASM-Versionen entwicklen sich nun unabhängig und sind nicht mehr kompatibel.
- cas
- Beiträge: 861
- Registriert: 18.06.2021 21:01
- Wohnort: Solar System
- Has thanked: 196 times
- Been thanked: 399 times
- Kontaktdaten:
Re: Source von Night Knight
Im Hinblick auf den "xz" Sicherheitsvorfall Anfang April sollten Paketmanager wie Homebrew nicht ohne Rückversicherung des original Autors der Software auf ein neues Repo wechseln. Auch wenn es hier unwahrscheinlich ist, könnte doch das ATASM von Peter Hinz von Autor (Mark Schmelzenbach) unautorisierte Inhalte besitzen.LarsImNetz hat geschrieben: ↑29.04.2024 12:03Homebrew, ist das wirklich auf Github? https://github.com/Homebrew dann könntest Du bestimmt einen Issue schreiben, das die atasm Version veraltet ist. Ich habe keinen Mac, nutze nur Linux und ab und zu noch Windows (10), ab 2025 dann wohl nur noch Linux.
- Dinadan
- Beiträge: 138
- Registriert: 18.08.2021 17:17
- Has thanked: 208 times
- Been thanked: 43 times
- Kontaktdaten:
Re: Source von Night Knight
"unautorisiert" sicher nicht, Atasm 1.09 ist unter GPL 2 veröffentlicht und die Version von Peter Hinz auch. Trotzdem wäre es natürlich schön die beiden Repos wieder zusammenzuführen, so groß ist die Szene ja nicht.
- skr
- Beiträge: 178
- Registriert: 07.06.2021 00:25
- Wohnort: Hamburg, Germany
- Has thanked: 92 times
- Been thanked: 96 times
- Kontaktdaten:
Re: Source von Night Knight
Ich habe noch nie etwas in der Form "gepullt" und gebaut. Aber das hat mich gereizt und es funktioniert. War für mich sehr lehrreich. Danke, Lars!
Ich hänge hier mal den Output nach "make start" ran, da sind so einige Warns und auch Fehler, aber dennoch macht er mir ein ATR, das in Atari800MacX und Altirra (mit wine64) auf meine MacBookPro (M1) mit Sonoma 14.4.1 einwandfrei läuft.
Edit: Noch ein Nachtrag zum get-everything-skript.
Ich bin ein wenig über "Please install the atasm" gestolpert, denn da gibt es ja nichts zu installieren. Ich habe atasm 1.23 gebaut, aber dann kam das:
Er muss natürlich auch in den PATH, da bin ich dann sogar selber drauf gekommen. Wäre gut, wenn da genauso der Hinweis käme, wie bei /compiler/bin:
Ich hänge hier mal den Output nach "make start" ran, da sind so einige Warns und auch Fehler, aber dennoch macht er mir ein ATR, das in Atari800MacX und Altirra (mit wine64) auf meine MacBookPro (M1) mit Sonoma 14.4.1 einwandfrei läuft.
Edit: Noch ein Nachtrag zum get-everything-skript.
Ich bin ein wenig über "Please install the atasm" gestolpert, denn da gibt es ja nichts zu installieren. Ich habe atasm 1.23 gebaut, aber dann kam das:
Code: Alles auswählen
./get-everything.sh
Initialise the wnf compiler environment
found xldir in $PATH
found xl-packer in $PATH
found wnfc in $PATH
found atari800 in $PATH
Please install the atasm
Please copy the ATARIXL.ROM firmware to ../fireware directory
found in $PATH the compiler/bin directory!
Problems found: 1
There are more problems, please read above
Und "firmware" ist einmal falsch geschriebenadd the 'compiler/bin' to your PATH env-variable
export PATH=$PATH:$(pwd)/compiler/bin
Wobei das ja deutlich als einfacher Schreibfehler zu erkennen ist. Aber wer weiß, wenn jemand alles wörtlich nimmt, könnte das verwirren.Please copy the ATARIXL.ROM firmware to ../fireware directory
- Dateianhänge
-
- NightKnightCompileResult.rtf
- (45.62 KiB) 7-mal heruntergeladen
- skr
- Beiträge: 178
- Registriert: 07.06.2021 00:25
- Wohnort: Hamburg, Germany
- Has thanked: 92 times
- Been thanked: 96 times
- Kontaktdaten:
Re: Source von Night Knight
Und um es jetzt ganz einfach zu machen, habe ich das Repository geforked, die Datei geändert und einen Pull request erstellt. Schau mal bitte in Dein GitHub, da hat vor drei Wochen schon jemand auf die fireware hingewiesen.
- LarsImNetz
- Beiträge: 170
- Registriert: 24.08.2021 18:27
- Has thanked: 127 times
- Been thanked: 89 times
- Kontaktdaten:
- cas
- Beiträge: 861
- Registriert: 18.06.2021 21:01
- Wohnort: Solar System
- Has thanked: 196 times
- Been thanked: 399 times
- Kontaktdaten:
Re: Source von Night Knight
Die GPL2 Lizenz bezieht sich auf den Programmcode, nicht den Programm-Namen. Wenn jemand ein Programm nimmt, verändert und veröffentlicht, so sollte er entweder den Namen ändern oder dies mit dem Original-Autor abstimmen.
Wenn der original Autor nicht zugestimmt hat ist es "unautorisiert". Ja, den Code darf man nehmen und ändern, aber dann sollte man auch den Namen ändern (z.B. in ATASM-NG).
- cas
- Beiträge: 861
- Registriert: 18.06.2021 21:01
- Wohnort: Solar System
- Has thanked: 196 times
- Been thanked: 399 times
- Kontaktdaten:
Re: Source von Night Knight
Ich habe Peter Hinze angeschrieben und ihn gebeten, mit Mark mit dem Namen zu sprechen.
- Dinadan
- Beiträge: 138
- Registriert: 18.08.2021 17:17
- Has thanked: 208 times
- Been thanked: 43 times
- Kontaktdaten:
Re: Source von Night Knight
Das scheint irgendwie nicht gut gelaufen zu sein. Das Original bei Sourceforge ist ja auch noch SVN, da kann man nicht so gut zusammenarbeiten. Aber einfach in einem neuen öffentlichen Git-Repo weiterzumachen ist auch nicht cool
- skr
- Beiträge: 178
- Registriert: 07.06.2021 00:25
- Wohnort: Hamburg, Germany
- Has thanked: 92 times
- Been thanked: 96 times
- Kontaktdaten:
Re: Source von Night Knight
Mal abgesehen davon ob das nun die feine Art ist, ist es für uns Benutzer sehr verwirrend, wenn es da zwei unterschiedliche Pfade gibt. Wenn man es weiß, muss man immer daran denken abzufragen, welcher atasm nun gemeint ist. Wenn nicht, steht man vielleicht irgendwann vor einem nicht funktionierenden Projekt, nur weil jemand anderes eben die andere Version genommen hat. Ärgerlich.
Ich hoffe, die beiden kommen miteinander ins Gespräch.
Ich hoffe, die beiden kommen miteinander ins Gespräch.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast