Antwort schreiben 
 
Themabewertung:
  • 5 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT
Verfasser Nachricht
uxl
erfahrener Abenteurer
***


Beiträge: 62
Gruppe: Vollmitglieder
Registriert seit: Sep 2007
Bewertung 0
Offline
Beitrag: #1821
RE: Reverse Engineering der NLT


Klasse, dass es weitergeht! :up:

Ich selbst, habe jedoch ein keines Problemchen:
Zitat:./configure CXX='g++' CXXFLAGS='-O1 -g'
   






05.12.2016 20:13
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
HenneNWH
sehr erfahrener Abenteurer
****

HEX-Service

Beiträge: 588
Gruppe: HEX-Service
Registriert seit: Nov 2007
Bewertung 16
Offline
Beitrag: #1822
RE: Reverse Engineering der NLT


@arbosh, rabenaas:
Leider warnt der GCC nicht bei solchen Fehlern. Ich bin dem Problem aber schon auf der Spur.

EDIT: Nach ein paar Änderungen läuft Bright-Eyes mit Clang und GCC mit "-O2".
Ich habe den Commit eben gepusht, aber es kann an anderen Stellen im Spiel zu ähnlichen Fehlern kommen.
Meine Empfehlung vorerst: lieber auf die Optimierung verzichten.


@uxl:
Bei mir tritt der Fehler nicht auf.
Probier mal folgendes: füge folgende Zeile in seg000.cpp vor der ersten include-Zeile ein:

#include <time.h>


Gib bitte Bescheid ob es funktioniert.





(Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2016 22:36 von HenneNWH.)

05.12.2016 21:35
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
uxl
erfahrener Abenteurer
***


Beiträge: 62
Gruppe: Vollmitglieder
Registriert seit: Sep 2007
Bewertung 0
Offline
Beitrag: #1823
RE: Reverse Engineering der NLT


Leider keine Besserung.

Ich habe die Ausgabe des Terminals in eine Textdatei gepackt, vielleicht helfen dir diese Angaben etwas weiter.

Ich verwende Mac OS X 10.11.6 mit Xcode v7.0 und den Paketen von MacPorts (zusätzlich installiert: autogen, autoconf, automake, libsdl, libsdl_sound)

(05.12.2016 21:35)HenneNWH schrieb:  @uxl:
Bei mir tritt der Fehler nicht auf.
Probier mal folgendes: füge folgende Zeile in seg000.cpp vor der ersten include-Zeile ein:

#include <time.h>

Gib bitte Bescheid ob es funktioniert.







Angehängte Datei(en)
.txt  terminal.txt (Größe: 96,79 KB / Downloads: 4)

05.12.2016 23:31
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
NewProggie
erfahrener Abenteurer
***


Beiträge: 73
Gruppe: Vollmitglieder
Registriert seit: Nov 2007
Bewertung 0
Offline
Beitrag: #1824
RE: Reverse Engineering der NLT


(05.12.2016 23:31)uxl schrieb:  Leider keine Besserung.

Ich habe die Ausgabe des Terminals in eine Textdatei gepackt, vielleicht helfen dir diese Angaben etwas weiter.

Ich verwende Mac OS X 10.11.6 mit Xcode v7.0 und den Paketen von MacPorts (zusätzlich installiert: autogen, autoconf, automake, libsdl, libsdl_sound)

(05.12.2016 21:35)HenneNWH schrieb:  @uxl:
Bei mir tritt der Fehler nicht auf.
Probier mal folgendes: füge folgende Zeile in seg000.cpp vor der ersten include-Zeile ein:

#include <time.h>

Gib bitte Bescheid ob es funktioniert.

Das eine Betriebssystem ist halt "POSIXer", als das andere :-) Probier mal das hier in der Datei einzufügen, in der der Fehler auftritt

Code:
#if !defined __timer_t_defined && \
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timer_t)
# define __timer_t_defined      1

# include <bits/types.h>

/* Timer ID returned by `timer_create'.  */
typedef __timer_t timer_t;

@Henne: Lohnt sich vielleicht das Projekt auch mal auf travis-ci (oder ähnlichem) automatisiert bauen zu lassen. Need a hand?






06.12.2016 08:23
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
HenneNWH
sehr erfahrener Abenteurer
****

HEX-Service

Beiträge: 588
Gruppe: HEX-Service
Registriert seit: Nov 2007
Bewertung 16
Offline
Beitrag: #1825
RE: Reverse Engineering der NLT


(05.12.2016 23:31)uxl schrieb:  Leider keine Besserung.

Ich habe die Ausgabe des Terminals in eine Textdatei gepackt, vielleicht helfen dir diese Angaben etwas weiter.

Ich verwende Mac OS X 10.11.6 mit Xcode v7.0 und den Paketen von MacPorts (zusätzlich installiert: autogen, autoconf, automake, libsdl, libsdl_sound)


(06.12.2016 08:23)NewProggie schrieb:  Das eine Betriebssystem ist halt "POSIXer", als das andere :-) Probier mal das hier in der Datei einzufügen, in der der Fehler auftritt
Danke an NewProggie für den Hinweis. Der Fehler tritt allerdings bei time_t und nicht bei timer_t auf.
Hier ist mal der entsprechende Ausschnitt aus meiner time.h.
Probier den mal.

Code:
#if !defined __time_t_defined && (defined _TIME_H || defined __need_time_t)
# define __time_t_defined       1

# include <bits/types.h>

__BEGIN_NAMESPACE_STD
/* Returned by `time'.  */
typedef __time_t time_t;
__END_NAMESPACE_STD
#if defined __USE_POSIX || defined __USE_MISC || defined __USE_SVID
__USING_NAMESPACE_STD(time_t)
#endif

#endif /* time_t not defined and <time.h> or need time_t.  */
#undef  __need_time_t

(06.12.2016 08:23)NewProggie schrieb:  @Henne: Lohnt sich vielleicht das Projekt auch mal auf travis-ci (oder ähnlichem) automatisiert bauen zu lassen. Need a hand?

Prinzipiell folge ich dem CI-Gedanken schon seit einiger Zeit:
  • In meinem lokalen Repo werden mit dem Borland-Compiler bei jedem Commit alle Objekt-Dateien gebaut und geprüft,
    ob der Code mit dem aus der SCHICKM.EXE (v3.02) übereinstimmt.
  • Auf meinem System muss auch jeder Commit gebaut werden können.
  • In einer Windows-VM teste ich mit MSVC nur vor den Releases.

Das sind zur Zeit die wenigen wichtigen Kriterien auf die ich achte.

Treten Fehler bei den Testern auf, wie dieser Reisemodus-Optimierungs-Bug, kann ein CI-Server erstmal auch nicht helfen.
Der Fehler von uxl wäre gefunden worden, wenn der CI-Server auch für Mac bauen würde.

Generell bin ich dafür, aber in der aktuellen Phase halte ich das noch für verfrüht.
Wenn der Code nativ (in lesbarem C und ohne DOSBox) läuft, dann ist ein CI-Server ein Muss.
Halte deine Hand bereit! :D

P.S.: Wenn du es aber trotzdem probieren möchtest, würde ich mich über deine Erfahrungsberichte freuen.






06.12.2016 13:22
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
uxl
erfahrener Abenteurer
***


Beiträge: 62
Gruppe: Vollmitglieder
Registriert seit: Sep 2007
Bewertung 0
Offline
Beitrag: #1826
RE: Reverse Engineering der NLT


Zitat:Danke an NewProggie für den Hinweis. Der Fehler tritt allerdings bei time_t und nicht bei timer_t auf.
Hier ist mal der entsprechende Ausschnitt aus meiner time.h.
Probier den mal.


Unter den Dateien, die ich gestern von GitHub heruntergeladen habe, befindet sich keine Datei mit dem Namen time.h.
Ich finde nur /include/timer.h






06.12.2016 19:11
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Borbaradwurm
Veteran
*****


Beiträge: 766
Gruppe: Vollmitglieder
Registriert seit: Feb 2007
Bewertung 10
Offline
Beitrag: #1827
RE: Reverse Engineering der NLT


(06.12.2016 19:11)uxl schrieb:  Unter den Dateien, die ich gestern von GitHub heruntergeladen habe, befindet sich keine Datei mit dem Namen time.h.
time.h ist ein Standard C Header und sollte im Lieferumfang eines jeden C Compilers enthalten sein.






06.12.2016 20:29
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
uxl
erfahrener Abenteurer
***


Beiträge: 62
Gruppe: Vollmitglieder
Registriert seit: Sep 2007
Bewertung 0
Offline
Beitrag: #1828
RE: Reverse Engineering der NLT


Zitat:time.h ist ein Standard C Header und sollte im Lieferumfang eines jeden C Compilers enthalten sein.
Nö, da lass ich mal lieber die Finger weg!


Ich hab's aber inzwischen anderweitig zum laufen bekommen.

Der Error verweist in der Datei seg000.h auf den Eintrag:
Code:
Bit32s bc_time(time_t*);

Dieser steht noch vor:
Code:
#include <TIME.H>
...daher habe ich diesen an den Anfang der Datei kopiert. Damit läuft make ohne Error durch.

   

:thx:






06.12.2016 23:18
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Obi-Wahn
Tech-Admin
*******


Beiträge: 2.338
Gruppe: Tech-Administratoren
Registriert seit: Aug 2006
Bewertung 17
Offline
Beitrag: #1829
RE: Reverse Engineering der NLT


Mit der neusten Version gibt es unter Linux das Problem im Reisebildschirm nicht mehr.






--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Laberrabarber

Avatar by: Keven Law (CC BY-SA 2.0)
10.12.2016 13:57
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
HenneNWH
sehr erfahrener Abenteurer
****

HEX-Service

Beiträge: 588
Gruppe: HEX-Service
Registriert seit: Nov 2007
Bewertung 16
Offline
Beitrag: #1830
RE: Reverse Engineering der NLT


Nochmal ein kleines Release:

Es wurde ein Dungeon ersetzt - das Totenschiff.
Jetzt fehlen nur noch: Die Herberge, die Spinnenhöhle und die Orkhöhle.

Außerdem habe ich den Bugfix für den Reisemodus überarbeitet und an anderen Stellen angewandt.


Ersetzte Funktionen (Segmente sind komplett identisch):
  • seg076: Dungeon: Totenschiff

Bugfix:
  • Zeigerarithmetikprobleme: führte zu Abstürzen im Reisemodus
  • Kompilieren auf Mac: time.h eingefügt

Original-Bugfix:
  • Totenschiff: kaputter Text beim Öffnen der Rätselkiste (führte auf aktuellen Rechnern zum Absturz)

TODO-Liste:
  • Dungeons (33 sehr kleine und 3 sehr lange Funktionen, insgesamt noch 36)
  • Audio-CD Steuerung (11 Funktionen)


Statistik:

Es sind 1189 von 1237 Funktionen nachgebaut (96,12%).
Davon sind 1184 identisch mit dem Originalcode.
Nach Byte-Metrik sind schon 94,14% (korrigiert) fertig.


Viele Spaß beim Testen,
HenneNWH

Admin-Edit: Fehlerhaften Code-Tag korrigiert.





(Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2016 18:09 von HenneNWH.)

10.12.2016 18:05
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Obi-Wahn
Tech-Admin
*******


Beiträge: 2.338
Gruppe: Tech-Administratoren
Registriert seit: Aug 2006
Bewertung 17
Offline
Beitrag: #1831
RE: Reverse Engineering der NLT


Neue Version vom 10.12.2016!

Hier die Übersicht, die Henne erstellt hat: https://bright-eyes.obiwahn.de/Bright-Eyes/details.html






--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Laberrabarber

Avatar by: Keven Law (CC BY-SA 2.0)
10.12.2016 21:48
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Rabenaas
Спам-бот
******

Super Moderatoren

Beiträge: 10.508
Gruppe: Super Moderatoren
Registriert seit: Jul 2008
Bewertung 32
Offline
Beitrag: #1832
RE: Reverse Engineering der NLT


Dann können wir ja Wetten abschließen, ob dieses Jahr noch die 100 geknackt wird. ;)





(Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2016 15:39 von Rabenaas.)

Dwarf Fortress (Wiki), Cataclysm: Dark Days Ahead, Dungeon Crawl
11.12.2016 15:38
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
NRS
erfahrener Abenteurer
***


Beiträge: 150
Gruppe: Vollmitglieder
Registriert seit: Jun 2011
Bewertung 10
Offline
Beitrag: #1833
RE: Reverse Engineering der NLT


HenneNWH schrieb:seg076: Dungeon: Totenschiff
seg077 :)
HenneNWH schrieb:Totenschiff: kaputter Text beim Öffnen der Rätselkiste (führte auf aktuellen Rechnern zum Absturz)
Da fehlen aber noch die 10 AP, von denen im Textfenster die Rede ist.






13.12.2016 08:55
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
HenneNWH
sehr erfahrener Abenteurer
****

HEX-Service

Beiträge: 588
Gruppe: HEX-Service
Registriert seit: Nov 2007
Bewertung 16
Offline
Beitrag: #1834
RE: Reverse Engineering der NLT


(13.12.2016 08:55)NRS schrieb:  
HenneNWH schrieb:Totenschiff: kaputter Text beim Öffnen der Rätselkiste (führte auf aktuellen Rechnern zum Absturz)
Da fehlen aber noch die 10 AP, von denen im Textfenster die Rede ist.

Aufgefallen ist mir das schon, aber diese Kiste ist ein Spezialfall:
In jeder Schatzkiste können auch, neben den Gegenständen, noch Geld, Rationen und AP sein.
Bei dieser Kiste stehen die 10 AP tatsächlich in der Beschreibung der Kiste drin, nur werden sie nicht angerechnet. :)






13.12.2016 12:23
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Shihan
erfahrener Abenteurer
***


Beiträge: 65
Gruppe: Vollmitglieder
Registriert seit: Oct 2012
Bewertung 1
Offline
Beitrag: #1835
RE: Reverse Engineering der NLT


Hey ihr lieben Leute!

Habe doch mal etwas weiter gebastelt. Und weil es gerade so einen Spaß macht, muss ich euch daran teilhaben lassen :lol:


Da ich mittlerweile die Geduld verloren habe und das 3DM-Format jetzt endlich knacken will, habe ich mir ein neues Programm geschrieben, mit dem ich im Format nach Zusammenhängen suchen kann. Habe die Infos aus dem Wiki alle darin verarbeitet. Herausgekommen ist einiges, aber leider noch keine Geometrie. Das ist aber mein nächster Schritt. Immerhin bin ich jetzt in der Lage, aus PIX-Dateien (danke an Borbaradwurm für die Infos) und den dazugehörigen Paletten OpenGL-Texturen zu basteln. Die kann man sich dann auch ansehen. Nächster Schritt ist eine Anzeige der Faces. Drückt mir die Daumen, wenn alles gut läuft haben die dann auch die richtigen Texturen.

Mal ein Screenshot:
[Bild: riva_analyzer.jpg]



Das Programm basiert auf einer Software, die ich im beruflichen Umfeld gebastelt habe. Deshalb kann ich das Ding zum jetzigen Zeitpunkt nicht open-source stellen, sorry :sad2:
Aber das werde ich klären und -- sollte da was möglich sein -- dann auch zur Verfügung stellen!
Falls es jemanden interessiert: Das Ding nutzt die ImGui! Ein absolut geiles Teil!




Damit ihr mal eine Meldung von mir habt, was gerade so passiert ;)






16.12.2016 01:29
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Obi-Wahn
Tech-Admin
*******


Beiträge: 2.338
Gruppe: Tech-Administratoren
Registriert seit: Aug 2006
Bewertung 17
Offline
Beitrag: #1836
RE: Reverse Engineering der NLT


@Shilan: Schön, dass auch bei Riva Fortschritte zu erkennen sind! :)

@Henne: Im Moment wird jeweils eine 32bit-Version von Bright-Eyes gebaut, oder? Welche Vorteile würde eine 64bit-Version eigentlich bringen? Keine sichtbaren Vorteile, oder?





(Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2016 10:07 von Obi-Wahn.)

--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Laberrabarber

Avatar by: Keven Law (CC BY-SA 2.0)
23.12.2016 10:06
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
HenneNWH
sehr erfahrener Abenteurer
****

HEX-Service

Beiträge: 588
Gruppe: HEX-Service
Registriert seit: Nov 2007
Bewertung 16
Offline
Beitrag: #1837
RE: Reverse Engineering der NLT


(23.12.2016 10:06)Obi-Wahn schrieb:  @Henne: Im Moment wird jeweils eine 32bit-Version von Bright-Eyes gebaut, oder? Welche Vorteile würde eine 64bit-Version eigentlich bringen? Keine sichtbaren Vorteile, oder?

Kurze Antwort: Nein.

Mehr als 4GB RAM wird die DOSBox nicht brauchen. Die 8 zusätzlichen CPU-Register bringen vielleicht einen kleinen Geschwindigkeitsvorteil, aber das ist den Aufwand nicht wert.






23.12.2016 14:32
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
HenneNWH
sehr erfahrener Abenteurer
****

HEX-Service

Beiträge: 588
Gruppe: HEX-Service
Registriert seit: Nov 2007
Bewertung 16
Offline
Beitrag: #1838
RE: Reverse Engineering der NLT


Die Überprüfung nach der eingelegten CD bei SCHICK kann abgeschaltet werden. Wie das geht?

Bei starten der SCHICKM.EXE kann ein Parameter übergeben werden.
Beispiel:
  • SCHICKM.EXE +/:[[mmz}
  • SCHICKM.EXE !55AISjuv
  • SCHICKM.EXE Wagiimnrs

Groß- und Kleinschreibung sind wichtig, die Reihenfolge kann verändert werden.
Jedes Zeichen des Parameters wird als Zahl repräsentiert.
Es wird das Produkt aus diesen Zahlenwerten gebildet und im Speicher hinterlegt.
Wenn das Produkt den Wert 0x682772E4 hat, wird angenommen es läge die richtige CD im Laufwerk.

SCHICK fordert aber trotzdem, dass ein CD-Laufwerk vorhanden ist, in diesem muss dann aber nicht die SCHICK-CD liegen.





(Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2016 23:20 von HenneNWH.)

23.12.2016 14:46
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Obi-Wahn
Tech-Admin
*******


Beiträge: 2.338
Gruppe: Tech-Administratoren
Registriert seit: Aug 2006
Bewertung 17
Offline
Beitrag: #1839
RE: Reverse Engineering der NLT


Danke für die Erklärungen! Hatte ich mir aber schon fast gedacht, dass 64bit keinen Sinn macht. Die Erläuterungen zur CD habe ich jetzt noch nicht ganz verstanden. Kann ich jetzt mit dem entsprechenden Startbefehl Schick ohne CD spielen?

Es gibt neue Änderungen im Git-Repo, aber noch kein Changelog hier. Kann ich einen neuen Build bauen?






--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Laberrabarber

Avatar by: Keven Law (CC BY-SA 2.0)
23.12.2016 15:47
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Rabenaas
Спам-бот
******

Super Moderatoren

Beiträge: 10.508
Gruppe: Super Moderatoren
Registriert seit: Jul 2008
Bewertung 32
Offline
Beitrag: #1840
RE: Reverse Engineering der NLT


Mit einer 64bit-Version könnte man sich aber in Zukunft uU das 32bit-Subsystem ganz sparen. Mach für mich aber gerade eh keinen Unterschied.






Dwarf Fortress (Wiki), Cataclysm: Dark Days Ahead, Dungeon Crawl
23.12.2016 18:23
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren Hoch
Antwort schreiben 




Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste