Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
	
		Läuft alles wie geschmiert.   
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.283 
	Themen: 17 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		 (10.07.2011, 19:02)HenneNWH schrieb:  Es gibt noch ein paar Kleinigkeiten, welche ich dir nicht vorenthalten möchte:- Verzeichnislayout 
 
Pro Spiel sollte ein Verzeichnis in src/custom erstellt werden, in deinem Fall "schweif". 
In diesem sollten alle Dateien liegen, die nur in Verbindung mit DOSBox sinnvoll sind und 
nach erfolgter Migration weggeworfen werden. In diesem Verzeichnis solltest Du dann ein 
Verzeichnis mit dem Namen "rewrite_c100de" anlegen, in welches dann der Spielecode deiner 
Version kommen sollte. 
Das ist kein Muss, aber meiner Meinung nach die sinnvollste und ordentlichste Variante. 
  Schon passiert   
 (10.07.2011, 19:02)HenneNWH schrieb:  
Dateinamen 
Mit "MS VisualC++ 2008" bin ich auf ein Problem gestoßen. 
Dieser Compiler legt alle Objektdateien in ein Verzeichnis. 
Existiert mehrmals der gleiche Dateiname in verschiedenen Verzeichnissen, 
so werden beim kompilieren nur die Objektdateien immer überschrieben und es gibt einen Linker-Fehler. 
Desswegen sollten die Dateinamen mit einem eindeutigen Prefix versehen werden. 
In dem Fall schlage ich vor: z.B "c100de_seg001.cpp" für den Code für seg001 
Namespaces 
Um bei soviel ähnlichem Code nicht in Schwierigkeiten zu kommen ist es sinnvoll soviel es geht in 
Namespaces zu packen, damit wir keine Namenskonflikte bekommen. 
 
Ansonsten: Happy H*cking! 
Ich bin schon mordsmäßig gespannt.   
Werd ich machen. Happy Hocken. Vor dem Rechner.   
	 
	
	
Hallo, ich bin's - der Bart von Fidel Castro. Und mir ist total  langweilich nie geschnitten wurde. 
I'm a roleplayer. My dice are like my relationships: platonic and unlucky.
  
	
	
 
 
	
	
	
		
	Beiträge: 52 
	Themen: 3 
	Registriert seit: Nov 2008
	
 Bewertung: 
 0
	 
 
	
	
		Ich schau auch mal wieder rein und lass nen Gruß hier... Klingt alles recht nett... ^^
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 44 
	Themen: 0 
	Registriert seit: Jul 2011
	
 Bewertung: 
 2
	 
 
	
	
		 (08.07.2011, 09:13)HenneNWH schrieb:  Es gibt (für mich) etwas bahnbrechendes: Ich habe herausgefunden wie man den Emulator aus rekonstruiertem Code wieder aufruft. 
Ich hoffe wirklich das deine Extensions irgndwann in den Main DOSBox Branch einfliessen - auch wenns bestimmt schwer wird   
Wo kann man denn solche Aufrufe in deinem Code finden?
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		Hallo llm und willkommen im Forum, 
Zu deiner Frage kann ich dir folgenden Link  src/custom/schick/rewrite_g105de/g105de_seg006.cpp anbieten. Diese Datei enthält alle Aufrufe ins Miles-Sound-System.
 
Etwas technische Details:
 
Unter DOSBox existiert folgende Funktion:
 
void CALLBACK_RunRealFar(segment, offset);
 
mit dieser kann man far-call Aufrufe in Programmcode des DOS-Programms auslösen. 
Die Funktion endet nachdem der entsprechende RET Befehl ausgeführt wurde.
 
Zeile 7-10 zeigen eine Funktion ohne Paramter und Rückgabewert. 
Diese kann ich jetzt ganz bequem aus anderem Code aufrufen, 
ohne diese Funktion nachprogrammieren zu müssen.
 
Zeile 12-17 zeigen eine Funktion ohne Rückgabewert mit einem Parameter. 
Der Parameter wird auf den Stack gepackt, die Funktion aufgerufen und 
wieder vom Stack entfernt.
 
Rückgabewerte, sofern die aufzurufenden Funktionen welche haben, liegen in 
reg_al (8 Bit), reg_ax (16 Bit) oder (reg_dx << 16) || reg_ax.
 
Einschränkungen: 
Dieses Verfahren funktioniert nicht bei Overlay-Segmenten. Warum das so ist, weiß ich auch noch nicht. 
 
Sinnvolle Anwendungen: 
Sämtliche Low-Level-Funktionen, die man nicht (oder noch nicht) nachprogrammieren will: 
C-Library (Dateiverwaltung, Speicherverwaltung), 
CD-Audio, Soundsystem
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
	
		Moin! 
Leider stürzt das Generierungsprogramm reproduzierbar ab:
 
obi@linux-33kx:~/Dokumente/Spiele/Bright-Eyes/src> ./bright-eyes  
DOSBox version 0.74 
Copyright 2002-2010 DOSBox Team, published under GNU GPL. 
--- 
CONFIG:Loading primary settings from config file dosbox.conf 
"" is not a valid value for variable: inactive. 
It might now be reset it to default value: normal 
MIXER:Got different values from SDL: freq 44100, blocksize 1024 
ALSA:Can't subscribe to MIDI port (65:0) nor (17:0) 
MIDI:Opened device:none 
 
DSA1 Schicksalsklinge gefunden V3.02_de 
Starte Profiler 
Verzoegerungsfaktor ausgeschalten 
Statusvergleich aktiviert 
IRQ timer aktiviert 
random(6) = 2 
random(7) = 4 
randomInterval 0 - 1 : 0 
randomInterval 70 - 130 : 96 
random(100) = 56 
randomInterval 0 - 3 : 3 
randomInterval 70 - 130 : 118 
random(100) = 20 
randomInterval 0 - 7 : 5 
randomInterval 70 - 130 : 123 
random(100) = 97 
randomInterval 0 - 7 : 5 
randomInterval 70 - 130 : 74 
random(100) = 4 
randomInterval 0 - 6 : 1 
randomInterval 70 - 130 : 99 
random(100) = 96 
randomInterval 0 - 4 : 3 
randomInterval 70 - 130 : 94 
random(100) = 2 
randomInterval 0 - 5 : 1 
randomInterval 70 - 130 : 71 
random(100) = 98 
randomInterval 0 - 7 : 4 
randomInterval 70 - 130 : 73                                                                                                                                                                                                                  
random(100) = 93                                                                                                                                                                                                                              
randomInterval 0 - 5 : 4                                                                                                                                                                                                                      
randomInterval 70 - 130 : 97                                                                                                                                                                                                                  
random(100) = 98                                                                                                                                                                                                                              
randomInterval 0 - 3 : 3                                                                                                                                                                                                                      
randomInterval 70 - 130 : 99                                                                                                                                                                                                                  
random(100) = 22                                                                                                                                                                                                                              
randomInterval 0 - 8 : 2                                                                                                                                                                                                                      
randomInterval 70 - 130 : 119                                                                                                                                                                                                                 
random(100) = 66                                                                                                                                                                                                                              
randomInterval 0 - 1 : 1                                                                                                                                                                                                                      
randomInterval 70 - 130 : 91                                                                                                                                                                                                                  
random(100) = 1                                                                                                                                                                                                                               
randomInterval 0 - 3 : 1                                                                                                                                                                                                                      
randomInterval 70 - 130 : 82                                                                                                                                                                                                                  
random(100) = 92                                                                                                                                                                                                                              
randomInterval 0 - 4 : 4                                                                                                                                                                                                                      
randomInterval 70 - 130 : 116                                                                                                                                                                                                                 
random(100) = 34                                                                                                                                                                                                                              
randomInterval 0 - 6 : 0                                                                                                                                                                                                                      
randomInterval 70 - 130 : 85                                                                                                                                                                                                                  
random(100) = 79 
randomInterval 0 - 7 : 3 
randomInterval 70 - 130 : 105 
random(100) = 66 
randomInterval 0 - 4 : 2 
randomInterval 70 - 130 : 78 
random(100) = 26 
randomInterval 0 - 7 : 6 
randomInterval 70 - 130 : 117 
random(100) = 100 
randomInterval 0 - 2 : 2 
randomInterval 70 - 130 : 89 
random(100) = 2 
randomInterval 0 - 2 : 0 
randomInterval 70 - 130 : 90 
random(100) = 68 
randomInterval 0 - 1 : 1 
randomInterval 70 - 130 : 103 
random(100) = 59 
randomInterval 0 - 2 : 0 
randomInterval 70 - 130 : 84 
random(100) = 48 
randomInterval 0 - 2 : 2 
randomInterval 70 - 130 : 105 
random(100) = 1 
randomInterval 0 - 1 : 0 
randomInterval 70 - 130 : 105 
random(100) = 17 
randomInterval 0 - 3 : 1 
randomInterval 70 - 130 : 111 
random(100) = 93 
randomInterval 0 - 1 : 0 
randomInterval 70 - 130 : 104 
random(100) = 12 
randomInterval 0 - 6 : 1 
randomInterval 70 - 130 : 107 
random(100) = 76 
randomInterval 0 - 1 : 1 
randomInterval 70 - 130 : 110 
random(100) = 2 
randomInterval 0 - 2 : 2 
randomInterval 70 - 130 : 70 
random(100) = 56 
randomInterval 0 - 3 : 1 
randomInterval 70 - 130 : 79 
random(100) = 82 
randomInterval 0 - 5 : 0 
randomInterval 70 - 130 : 88 
random(100) = 62 
randomInterval 0 - 7 : 7 
randomInterval 70 - 130 : 74 
random(100) = 91 
randomInterval 0 - 7 : 5 
randomInterval 70 - 130 : 108 
random(100) = 81 
randomInterval 0 - 8 : 5 
randomInterval 70 - 130 : 111 
random(100) = 52 
randomInterval 0 - 3 : 3 
randomInterval 70 - 130 : 98 
random(100) = 69 
randomInterval 0 - 7 : 1 
randomInterval 70 - 130 : 91 
random(100) = 74 
randomInterval 0 - 5 : 3 
randomInterval 70 - 130 : 108 
random(100) = 56 
randomInterval 0 - 3 : 0 
randomInterval 70 - 130 : 80 
random(100) = 30 
randomInterval 0 - 4 : 4 
randomInterval 70 - 130 : 112 
random(100) = 6 
randomInterval 0 - 4 : 1 
randomInterval 70 - 130 : 110 
random(100) = 86 
randomInterval 0 - 7 : 0 
randomInterval 70 - 130 : 120 
random(100) = 7 
randomInterval 0 - 6 : 2 
randomInterval 70 - 130 : 103 
random(100) = 66 
randomInterval 0 - 8 : 7 
randomInterval 70 - 130 : 96 
random(100) = 23 
randomInterval 0 - 10 : 0 
randomInterval 70 - 130 : 130 
random(100) = 3 
randomInterval 0 - 5 : 4 
randomInterval 70 - 130 : 80 
random(100) = 95 
Location betreten: Tempel 
Typindex: 0x0001 
DSA1 Generierung gefunden V1.05_de 
Statusvergleich deaktiviert 
IRQ timer deaktiviert 
Gen gestartet 
reloc (0x3673) 
Starte Profiler 
HOST gen_alloc(13000); 
HOST gen_alloc(64108); 
HOST gen_alloc(50000); 
HOST gen_alloc(1524); 
HOST gen_alloc(200); 
HOST gen_alloc(6000); 
HOST gen_alloc(592); 
fd_open_datfile(): failed to open datafile at /home/obi/Dokumente/Spiele/dsa/SCHICKSAL//DSAGEN.DAT 
Speicherzugriffsfehler  
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		Das Programm kann die DSAGEN.DAT unter /home/obi/Dokumente/Spiele/dsa/SCHICKSAL//DSAGEN.DAT 
nicht öffnen. 
Guck mal in dem Verzeichnis, ob die Datei da ist und ob sie großgeschrieben ist.
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.283 
	Themen: 17 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		Ich sehe da auch ein "/" zuviel. Normalerweise macht das fopen(...) nichts aus, aber das wäre auch eine mögliche Fehlerquelle.
	 
	
	
Hallo, ich bin's - der Bart von Fidel Castro. Und mir ist total  langweilich nie geschnitten wurde. 
I'm a roleplayer. My dice are like my relationships: platonic and unlucky.
  
	
	
 
 
	
	
	
		
	Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
		
		
		15.08.2011, 21:05 
(Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2011, 21:06 von Obi-Wahn.)
	
	 
	
		ja, die kleinschreibung war schuld. bei mir ist leider alles kleingeschrieben...   
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
		
		
		16.08.2011, 15:44 
(Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2011, 15:52 von HenneNWH.)
	
	 
	
		 (15.08.2011, 21:05)Obi-Wahn schrieb:  ja, die kleinschreibung war schuld. bei mir ist leider alles kleingeschrieben...   
Das kann ich sehen   
Innerhalb von DOSBox werden alle neu angelegten Dateinamen großgeschrieben. 
Das werde ich allerdings erst ändern wenn GEN.EXE eingenständig läuft und eine eigene Konfigurationsdatei hat.
 
Im Moment schreibe ich ein Programm (genripper), welches die ganzen Tabellen und Farbpaletten aus allen mir bekannten Versionen von GEN.EXE 
ausliest und in benutzbaren C-Code umwandelt. 
Meine Versionen sind (V1.01de, V1.03de, V1.04de, V1.05de und V3.00en). Bis jetzt sind alle Tabellen identisch. 
Wenn ich doch noch Unterschiede finden sollte, werde ich davon berichten. 
Sollte jemand eine V1.00de oder V1.02de haben oder von deren Existenz wissen, wäre es nett mich davon in Kenntnis zu setzten.
 
Sobald alle Tabellen übertragen sind, werde ich das Programm so schreiben, dass es mit den 3 mir bekannten verschiedenen Versionen der 
DSAGEN.DAT klarkommt. Das sind die deutschsprachige Diskettenversion, die deutschsprachige CD-Version und die englischsprachige Diskettenversion.
 
Danach werden Tastatur- und Mauseingaben, die Grafik und der Sound auf SDL umgestellt, 
eine Konfigurationsdatei erstellt, 
sämtliche SEGFAULTS beseitigt und das autonome Programm vom Bright-Eyes ins BrightEyes Repo kopiert. 
Fertig!
 
P.S.: Ich habe in GEN.EXE einen Bug gefixt, der auftreten kann, wenn im Anfängermodus die Talente und Zaubersprüche automatisch gesteigert werden. 
Dieser Bug hat zu folge, dass man eine negative Anzahl von übrigen Steigerungen hat. Beim nächsten Stufenanstieg, bei welchem die neue Anzahl der Steigerungen dazu gerechnet wird, 
kann man 1 oder 2 Steigerungspunkte weniger haben. Das sieht man allerdings nur, wenn man im Expertenmodus spielt.
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
	
		Oha, es geht mal wieder  weiter.  
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		Es hat nie aufgehört weiterzugehen, aber ich hielt es vorm Studienbeginn sinnvoll ein kleines Resümee des letzten halben Jahres zu ziehen und den weiteren Entwicklungsverlauf bekanntzugeben. 
Sicherlich können nur Wenige mit den Commit-Messages aus dem Repository etwas anfangen, 
und ehrlich gesagt sind sie für Spieler nicht sonderlich interessant.   
Als kleiner Vorgeschmack auf Kommendes: 
Die nächsten Funktionen die ich ersetzte sind die Dialoge. 
Ab diesem Punkt werden Story-relevante Funktionen ersetzt (Reisebegegnungen, NPCs, spezielle Gebäude, evtl sogar Dungeons). 
Das geht meistens sehr schnell. Wenn ich ein Segment (mehrere Funktionen) fertig hab, werde ich natürlich meine Erkentnisse hier zum Besten geben.
 
Falls jemand eine Frage zu einem bestimmten Detail hat kann ich auch gern mal einen Blick auf den Code werfen und in etwas Menschenverständliches übersetzen.
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
	
		 (03.10.2011, 18:41)HenneNWH schrieb:  Sicherlich können nur Wenige mit den Commit-Messages aus dem Repository etwas anfangen, 
und ehrlich gesagt sind sie für Spieler nicht sonderlich interessant.   
Na, mit etwas Fantasie (sich bitte einen  Regenbogen denken) kann man sich schon vorstellen, was ungefähr passiert ist.    Ich finde es einfach nur großartig, dass du weiter dran bleibst und das Ganze nicht versanden lässt. Einen regelmäßigen Besucher und Aus-Checker hast du mit Sicherheit.   
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		Sehr gut! Es freut mich zu hören, dass Du die aktuellste Version benutzt. 
(Und dass Du bis jetzt auch noch keinen Bug gepostet hast spricht für die Qualität dieser Arbeitsmethode    )
 
Heute hab ich den Ecliptifactus ersetzt und den Grammatik-Bug behoben. 
Die Funktion fürs Gegenstände entfernen/wegwerfen und das Immanstadion und der Müller in Thorwal 
waren auch noch in meinem Wirkungsfeld.
 
Am Wochenende werd ich allerdings nichts machen können, da ich unterwegs bin.
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
		
		
		06.10.2011, 16:55 
(Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2011, 16:57 von Obi-Wahn.)
	
	 
	
		Naja, ich spiele nicht richtig. Meistens starte ich nur und lauf nen bisschen in Thorwal rum. Wenn du mir Tipps/Anweisungen gibst, kann ich aber gezielt Funktionen usw testen und gucken, ob die funktionieren.   
Was hast du denn mit dem Immanstadion usw. gemacht?
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		Jedes spezielle Gebäude hat eine eigene Funktion, welche ich z.T. auch schon ersetzen konnte. 
 
Beim Müller z.B. Kommt eine ja/nein Frage ob man den Müller besuchen will. 
Antwortet man mit Ja, wird der Text angezeigt, dass man etwas zu mahlen hätte mitbringen 
sollen und eine Variable im Spielstand wird gesetzt. Geht man wieder zum Müller, so ist dieser nun genervt. 
 
In der Botschaft des Mittelreiches wird ab TSA 17 Hal ein andrer Text angezeigt. 
Dort ist ab diesem Zeitpunkt die Tür auf geheiß des Hetmans vernagelt. 
Weiß jemand was um diese Zeit in Aventurien los war? 
 
Der Swafnir-Tempel war auch als ein spezielle Gebäude gedacht, 
er ist aber durch einen normale Tempel ersetzt worden.
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 2.615 
	Themen: 25 
	Registriert seit: Aug 2006
	
 Bewertung: 
 17
	 
 
	
	
		Da war viel los, ... aber keine Ahnung was genau.    http://www.wiki-aventurica.de/wiki/Chronik:1010
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 14.534 
	Themen: 97 
	Registriert seit: Sep 2006
	
 Bewertung: 
 48
	 
 
	
		
		
		06.10.2011, 18:05 
(Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2011, 18:05 von Zurgrimm.)
	
	 
	
		 (06.10.2011, 17:46)HenneNWH schrieb:  In der Botschaft des Mittelreiches wird ab TSA 17 Hal ein andrer Text angezeigt. 
Dort ist ab diesem Zeitpunkt die Tür auf geheiß des Hetmans vernagelt. 
Weiß jemand was um diese Zeit in Aventurien los war? Keine Ahnung, die Zeittafel des Jahres bei der Wiki-Aventuica enthält kein Ereignis, das sich dafür aufdrängen würde:
 http://www.wiki-aventurica.de/wiki/Chronik:1010
Aber es ist jedenfalls interessant, daß das eingebaut wurde.    Wer läuft schon gegen Ende des Spiels nochmal in dieses (spieltechnisch) unwichtige Gebäude? Das hätte ich wohl nie herausgefunden.
 
EDIT: Zu spät...   
	 
	
	
"Haut die Säbel auffe Schnäbel."
 
	
	
 
 
	
	
	
		
	Beiträge: 235 
	Themen: 2 
	Registriert seit: Jul 2008
	
 Bewertung: 
 2
	 
 
	
	
		Diplomatische Probleme infolge des Bruchs des Garether Vertrags? (Die Thorwaler besetzen im Hesinde Salzerhaven)
	 
	
	
Freiheit nur für die Anhänger der Regierung, nur für die Mitglieder einer Partei - und mögen sie noch so zahlreich sein - ist keine Freiheit. Freiheit ist immer die Freiheit des Andersdenkenden. (Rosa Luxemburg)
 
	
	
 
 
	
	
	
		
	Beiträge: 776 
	Themen: 4 
	Registriert seit: Nov 2007
	
 Bewertung: 
 18
	 
 
	
	
		 (06.10.2011, 18:21)Alter Ugdalf schrieb:  Diplomatische Probleme infolge des Bruchs des Garether Vertrags? (Die Thorwaler besetzen im Hesinde Salzerhaven) 
Es scheint so, als wäre genau das damit gemeint.
  (06.10.2011, 18:05)Zurgrimm schrieb:  Aber es ist jedenfalls interessant, daß das eingebaut wurde.   Wer läuft schon gegen Ende des Spiels nochmal in dieses (spieltechnisch) unwichtige Gebäude? Das hätte ich wohl nie herausgefunden. 
Das sind die kleinen unentdeckten Gimmiks der Programmierer.   
Hier noch ein paar vielleicht unbekannte Infos zu den Zaubersprüchen:
 
Grosse Gier: Der Gegner verliert permanent 2 AT und 2 PA Punkte. Der Spruch kann mehrmals angewendet werden. 
Er funktioniert nicht bei Skeletten
 
FlimFlam/Dunkelheit: Dauert Level des Zauberers + 3 Stunden
	  
	
	
	
	
 
 
	 
 |