als Beipiel meine Dosbox Staging Fork für das DOS game "Alpha Waves" : https://github.com/LowLevelMah…es_tests/src/_alpha_waves
in https://github.com/LowLevelMah…ha_waves/_alpha_waves.cpp
hänge ich mich an Code-Ausführungs-Stellen und near/far Calls, printe teilweise nur die Parameter vom Aufruf oder ersetze z.B. die Game-Data Dekomprimierungs-Routine durch meinen eigenen Code
oder ein Branch mit Spezialisierungen für das DOS game Stunts: https://github.com/LowLevelMah…s/src/_stunts/_stunts.cpp
da hänge ich mich in die Sound-Plugin Aufrufe rein und trace alle Daten die da hin und her gereicht werden
alles relativ einfach wenn man ein IDA(oder Listing-Datei von IDA hat) - man braucht nur den Start-Offset aus der Exe, auf das Exe-Image laden warten, ein paar Code-Stellen mit der Distanz
zu dem Startpunkt adressieren und schon kann man relativ viel mit dem Code anstellen - am besten z.B. Beobachten/Tracen oder Code ersetzen (zum Portierungen im echten Code testen oder nur als prüfung)
zum selberbauen braucht man nur vcpkg und VS2019 mehr nicht (vcpkg sorg für alle dependencies), alles ordentlich beschrieben unter: https://github.com/dosbox-staging/dosbox-staging
mein Fork/Branches lassen sich identisch bauen
ich bevorzuge Dosbox Staging weil da fixes im Debugger enthalten sind die ich nicht in Dosbox SVN einbringen durfte
z.B. break-point Erreichung wird mit dem 32bit linear-offset und nicht mit seg=brkpoint.seg, ofs=brkpoint.ofs geprüft (=> breakpoints werden nicht ausgelöst wenn seg und ofs nicht exakt passen)