![]() |
Reverse Engineering der NLT II - Druckversion +- Crystals-DSA-Foren (https://www.crystals-dsa-foren.de) +-- Forum: Allgemeines zur Nordlandtrilogie DOS (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=20) +--- Forum: Technische Werkstatt (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=34) +--- Thema: Reverse Engineering der NLT II (/showthread.php?tid=5383) |
RE: Reverse Engineering der NLT II - NewProggie - 05.05.2025 Ich hab vorhin mal die sdl_update_rect_window() Funktion von dir ein bisschen optimiert, in dem ich erst die zweite Schleife vektorisiert habe und anschließend ein "händisches" double buffering ausprobiert habe. Dabei hab ich auch gleich den Mauszeiger in der Mitte des Bildschirms (Fensters) innerhalb der sdl_event_loop() noch gefangen, weil das im Original genauso ist. RE: Reverse Engineering der NLT II - HenneNWH - 05.05.2025 Das klingt spannend. Wie hast du denn die zweite Schleife vektorisiert, wenn ich fragen darf? RE: Reverse Engineering der NLT II - NewProggie - 05.05.2025 (05.05.2025, 19:53)HenneNWH schrieb: Das klingt spannend. Wie hast du denn die zweite Schleife vektorisiert, wenn ich fragen darf? Entweder darauf vertrauen, dass der Compiler das selbst checkt, oder in meinem Fall über NEON instructions (speziell vld1_u8), weil ich auf einem M4 (ARM) Macbook unterwegs bin gerade. Lass mich wissen, wenn du denkst, dass der Code soweit portiert ist und es Engstellen bei der Performance gibt. Da helfe ich gerne mit. Mein CMake Pull-Request auf GitHub dümpelt auch noch so vor sich hin und kann eigentlich gemerged werden ;-) Eine CI könnte ich auch auf GitHub schon mal aufsetzen für das Projekt. RE: Reverse Engineering der NLT II - HenneNWH - 06.05.2025 @NewProggie: Dass der Compiler das selbst checkt war damals als ich HPC gemacht habe eher eine Seltenheit. Händisch nachgucken und eine eigene Meinung haben ist da das Beste. Und natürlich: Assembler können! RE: Reverse Engineering der NLT II - Obi-Wahn - 06.05.2025 Wie kann ich jetzt das Programm kompilieren? Nur mit "make -f Makefile_old"? Oder auch irgendwie mit cmake? Damit kenn ich mich noch nicht aus. RE: Reverse Engineering der NLT II - NewProggie - 06.05.2025 (06.05.2025, 16:26)Obi-Wahn schrieb: Wie kann ich jetzt das Programm kompilieren? Nur mit "make -f Makefile_old"? Oder auch irgendwie mit cmake? Damit kenn ich mich noch nicht aus. Make geht wie gehabt. Mit CMake geht es jetzt neuerdings auch: Code: mkdir build Über -G kannst du dir mit CMake auch eine Projektdatei generieren lassen (z.B. für Eclipse, Visual Studio, Xcode o.ä.) RE: Reverse Engineering der NLT II - HenneNWH - 06.05.2025 Habs so gemacht, dass beide unabhängig voneinander gehen. Code: make -f Makefile_old CMake ist natürlich etwas moderner, komfortabler und Upper-Class! Bisher hab ich CMake noch nicht sinnvoll nutzen können, da make gereicht hat, aber CMake war mein Favorit für "wenn's mal fertig ist"! @NewProggie: Danke! RE: Reverse Engineering der NLT II - Obi-Wahn - 07.05.2025 (06.05.2025, 19:30)NewProggie schrieb: Danke! ![]() ![]() Die erstellte "ngen_cc.exe.exe" ist übrigens nur 359kb groß. Die "ngen_gcc.exe" ist 461kb groß. Edit: Und mit dem UCRT-Compiler sind es nur noch 235kb. ![]() RE: Reverse Engineering der NLT II - HenneNWH - 08.05.2025 Klugsch**ßeralarm: Diese Dateien enthalten auch Debugginginformationen. Probier mal: Code: size ngen_* RE: Reverse Engineering der NLT II - Obi-Wahn - 08.05.2025 Code: $ size ngen_* cmake und mingw sind recht ähnlich, aber ucrt ist deutlich anders. RE: Reverse Engineering der NLT II - HenneNWH - 08.05.2025 Interessant: Probier mal noch Code: file ngen_* Zur Erklärung: text = Programmcode, data = intitialisierte Daten (Tabellen, ...), BSS = uninitialisierte Daten Edit: Wenn mir -O2 kompiliert sieht das ganze so aus: Code: ls -al ngen_* Code: size ngen_* Code: file ngen_* RE: Reverse Engineering der NLT II - Obi-Wahn - 09.05.2025 Das ist unter Windows und MSYS nicht sonderlich aussagekräftig: Code: $ file ngen_* RE: Reverse Engineering der NLT II - HenneNWH - 09.05.2025 Wenn du mal eine Datei ohne Dateiendung hast, ist dieses Programm sehr hilfreich. Hast du schon die neue Version mit dem kleinen Mauszeiger probiert? Die läuft wesentlich flüssiger. RE: Reverse Engineering der NLT II - Obi-Wahn - 10.05.2025 Jap, funktioniert flüssiger. Kann man den Mauszeiger etwas größer machen? Im Vergleich zum alten Mauszeiger und auch zum Rest der UI ist er doch etwas klein. RE: Reverse Engineering der NLT II - HenneNWH - 10.05.2025 Rate mal woran ich gerade arbeite. :-D Der Cursor soll in der neuen Welt komplett von der SDL-Bibliothek übernommen werden. Bisher hat sich das Programm selbst um das Zeichnen des Cursors gekümmert, was sehr viele kleine unnötige Textur-Updates zur Folge hatte. Das entfällt jetzt merkbar. TODO (NGEN): * Skalierung Mauszeiger (Bei 320x200 Pixel sieht es perfekt aus) * Textur-Updates reduzieren * Musik (Ersatz für CDA, MIDI) * Assemblercode entfernen * kleine Verbesserungen einfügen * FERTIG RE: Reverse Engineering der NLT II - Obi-Wahn - 10.05.2025 Das hört sich nach einem Plan an! Ich freu mich schon auf die Musik! :-) RE: Reverse Engineering der NLT II - HenneNWH - 10.05.2025 So, der skalierte Mauscursor ist gepusht. BrightEyes untersützt jetzt auch 4K-Bildschirme. ;-) Mit meinem Windows-Setup kommt es häufig zu Abstürzen. Der Grund scheint, dass main() und WinMain() doch nicht gravierende Unterschiede haben. Das schau ich mir morgen an. RE: Reverse Engineering der NLT II - Obi-Wahn - 11.05.2025 Ja, ich bekomme BrightEyes nicht mehr gestartet. Es flackert kurz und das wars. Code: PS C:\msys64\home\obi\BrightEyes\src\gen> .\ngen_gcc.exe Code: PS C:\msys64\home\obi\BrightEyes\src\gen> .\ngen_cc.exe.exe RE: Reverse Engineering der NLT II - HenneNWH - 11.05.2025 Hm, probiers nochmal. Hab gestern Abend noch das Rendering verschlimmbessert und es heute wieder rückgängig gemacht. Auf meinem Raspi2 lief es auch nicht mehr. Danke fürs melden. RE: Reverse Engineering der NLT II - Obi-Wahn - 11.05.2025 Mit der MinGW-Version von MSYS klappt es bisher nicht, aber mit der UCRT-Version läuft es. Sowohl per Makefile als auch cmake. Der Mauszeiger sieht super aus! |