home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 May / GSSH0504TT.iso / Programme / Seck / _SETUP.1 / men2_2W.txt < prev    next >
Text File  |  1997-09-08  |  8KB  |  190 lines

  1.  SECK 4.00                            Savegame Editor Construction Kit                            THEORIE
  2. --------------------------------------------------------------------------------------------------------------------------
  3.                                                    Wie verΣndert man Savegames ?                        
  4. --------------------------------------------------------------------------------------------------------------------------
  5.  
  6.   Savegames lassen sich von Hand nicht einfach "mal eben so" verΣndern.
  7.   Es handelt sich hier um binΣre Dateien,die man nicht mit einem 
  8.   Texteditor (wie MS-DOS EDIT) oder anderen anzeigen,verΣndern und wieder
  9.   speichern kann.Die Texteditoren sind fⁿr TEXTdateien zustΣndig, also
  10.   Dateien im ASCII (American Standard Code for Information Interchange) 
  11.   Format.
  12.   
  13.   
  14.   Um binΣre Dateien zu modifizieren, ben÷tigt man einen HEX-Editor.
  15.   Dieser liest die Werte der Dateien ein und lΣ▀t Sie beliebige
  16.   Manipulationen vornehmen, die Sie dann auch speichern k÷nnen.
  17.   Solche HEX-Editoren gibt es in Massen auf dem Shareware und
  18.   Public - Domain Sektor.Sie kosten oftmals unter 20,- DM.
  19.   SECK stellt Ihnen als Bonus ebenfalls einen HEX-Editor zur Verfⁿgung.
  20.  
  21.  
  22.   Haben Sie nun ein SAVEGAME vorliegen, so k÷nnen Sie es in den 
  23.   HEX-Editor einlesen und sehen dann seinen "binΣren Gehalt".
  24.   
  25.     
  26.   Angenommen, Sie wissen von einem Bekannten oder aus einer Spiele-
  27.   Zeitschrift, in den SAVEGAMES des Spieles, welches sie gerade spielen
  28.   und nicht weiter kommen, befindet sich an der Dateiposition 14227 der
  29.   Wert fⁿr die Spielleben.
  30.   Sie lesen also ihr SAVEGAME mittels eines HEX-Editors ein und bewegen 
  31.   sich darin - mittels den Befehlen des Editors - an die besagte Position.
  32.   Dort steht beispielsweise der Wert 03.Und Sie erinnern sich, dieses war
  33.   genau der Wert ihrer Spielleben, als Sie abgespeichert haben.
  34.   Nun schreiben Sie an die Stelle eine 99.
  35.   Sie speichern die Datei, verlassen den Editor, laden ihr Spiel und 
  36.   im Anschlu▀ daran da▀ SAVEGAME.
  37.   Und Sie sehen,es hat sich tatsΣchlich etwas getan - statt 3 Spielleben
  38.   haben Sie nun 153.
  39.   (Es kann aber durchaus auch sein,da▀ das Programm z.B. nur die hinterste
  40.    Stelle anzeigt, weil es vielleicht nur bis 9 gedacht war!Es wΣre somit
  41.    denkbar,da▀ sie nur die 3 sehen, oder, bei zwei Stellen, nur die 53 !)
  42.    Aber Sie haben doch eine 99 ins Savegame eingetragen ?
  43.  
  44.  
  45.   Die L÷sung besteht darin, da▀ in Hex-Editoren  
  46.   HEXADEZIMALE Zahlen eingegeben werden (Aha,daher der Name!).
  47.   Diese haben normalerweise zur Erkennung ein $-Zeichen als Vorzeichen.
  48.   
  49.   Das HEXADEZIMAL System ist ein eigenes Zahlensystem, im Unterschied
  50.   zu unserem gebrΣuchlichen DEZIMAL System oder dem DUALSYSTEM 
  51.   (nicht dualES System!!!).
  52.  
  53.   
  54.   WENN SIE DAS HEXADEZIMALSYSTEM EINFACH EINMAL ALS GEGEBEN 
  55.   HINNEHMEN  UND LIEBER SCHNELL WEITERLESEN M╓CHTEN, SO 
  56.   BL─TTERN SIE BITTE WEITER BIS ZUR MARKIERUNG!
  57.   HABEN SIE ABER INTERESSE DARAN, GENAUERES ZU ERFAHREN, SO 
  58.   LESEN SIE BITTE HIER WEITER !
  59.   
  60.  
  61.   Das HEXADEZIMAL System ist ein Zahlensystem mit der Basis 16.
  62.   Das DEZIMAL System ist ein Zahlensystem mit der Basis 10.
  63.  
  64.   Das bedeutet: 
  65.   ---------------------
  66.   
  67.   Im DEZ. gibt es 10 Ziffern ( nΣmlich 0 bis 9)
  68.   Im HEX. gibt es hingegen 16 "Ziffern" : 0-9 und A-F.
  69.  
  70.  
  71.   GezΣhlt wird also :
  72.   ---------------------------
  73.   
  74.   Im DEZ. : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
  75.  
  76.   Im HEX. : $01 $02 $03 $04 $05 $06 $07 $08 $09 $0A $0B $0C $0D $0E $0F 
  77.               
  78.                      $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D $1E ...
  79.            
  80.  
  81.   Bei der Berechnung einer Zahl geht man vor wie folgt :
  82.   --------------------------------------------------------------------------------
  83.  
  84.   Wenn wir 1467 im DEZ.sagen, meinen wir eigentlich die folgende Rechnung :
  85.              1467 = 1*10^3 + 4 * 10^2 + 6 * 10^1 + 7*10^0
  86.                        = 1*1000 + 4 * 100  + 6 * 10   + 7*1
  87.                        =  1000  +   400    +  60      + 7
  88.                        =  1467
  89.   
  90.   Im HEX. steht nun ⁿberall statt 10^ eine 16^ !
  91.  
  92.   Das hei▀t, wenn wir im HEX. $2912 sagen, so meinen wir eigentlich :
  93.  
  94.              $2912 = 2 * 16^3 + 9 * 16^2 + 1 * 16^1 + 2 * 16^0
  95.  
  96.  
  97.   Um nun eine HEX. Zahl in eine DEZ. Zahl umzuwandeln :
  98.  
  99.              HEX:                    DEZ:
  100.           ------------             -------------
  101.              $2A4B       =   2*16^3 + 10 *16^2  + 4 * 16^1 + 11 * 16^0
  102.                                  =   2*4096 + 10 * 256  + 4 * 16   + 11 * 1
  103.                                  =    8192  +   2560    +    64    +   11
  104.                                  =   10827
  105.  
  106.  
  107.   Um eine DEZ. Zahl in eine HEX. Zahl umzuwandeln :  
  108.   
  109.              DEZ.                    HEX.
  110.           ------------             ------------
  111.             14488        =   3 * 16^3  + 8 * 16^2 + 9 * 16^1 + 8 * 16^0
  112.                                 =   3  * 4096 + 8 *  256 + 9 *  16  + 8 *  1  
  113.                                 =   $ 3898
  114.  
  115.  
  116.  
  117.          SO, HIER GEHT ES NUN F▄R ALLE EINHEITLICH WEITER IM LESEN !
  118.   
  119.  
  120.  
  121.  Allerdings k÷nnen Sie sich das Umrechnen von Hand sparen, da nahezu jeder
  122.  bessere wissenschaftliche Taschenrechner Zahlen aus den beiden Systemen
  123.  in das jeweilige andere umsetzen kann.Und , richtig, auch SECK hat einen
  124.  HEX/DEC Umwandler in seinem Repertoire ... Sie finden ihn im Menu  Tools  !
  125.  
  126.  
  127.   WICHTIG ist nur, da▀ sie stets daran denken,in den HEX - Editoren 
  128.   von vornherein (Grundeinstellung) immer HEX - Zahlen einzugeben. 
  129.   M÷chten Sie also - um auf das obige Beispiel zurⁿckzukommen -  
  130.   99 Spielleben eintragen, so rechnen sie die (dezimale) 99 um und
  131.   erhalten die (hexadezimale) $63 .
  132.   Speicherten Sie den Wert in jenem fiktiven SAVEGAME, so wⁿrden Sie im 
  133.   Spiel 99 stehen haben!
  134.  
  135.  
  136.   Eine Speicherzelle kann maximal Werte bis 255 aufnehmen (1 Byte!). 
  137.   Also kann es passieren, da▀ dies auch der Maximalwert fⁿr bestimmte
  138.   ─nderungen ist, wenn das Spiel selbst im SAVEGAME nur eine Speicherzelle
  139.   (also 1 Byte) fⁿr den entsprechenden Wert vorsieht.Das ist in sofern 
  140.   vernⁿnftig,weil der Programmierer nicht mehrere Stellen zu verschwenden 
  141.   braucht, hat er nur bsp. 5 Spielleben vorgesehen!
  142.   Ein Byte kann aber wie gesagt nur werte von 0 - 255 aufnehmen.
  143.  
  144.  Stellt ein SAVEGAME hingegen zwei Speicherzellen zur Verfⁿgung, k÷nnen 
  145.  durchaus h÷here Werte (z.B. GeldbetrΣge u.Σ.) gespeichert werden.
  146.  Dabei ergibt sich eine weitere Besonderheit: 
  147.  
  148.   Bei zwei aufeinanderfolgenden Speicherzellen fⁿr einen Wert wird dieser
  149.   im Format LOW-Byte und dann HIGH-Byte abgespeichert,zu deutsch 
  150.   NIEDERW─RTIGES-Byte und H╓HERWERTIGES-Byte. 
  151.   (Puh,lieber LOW und HIGH!).
  152.   Es gilt: Das HIGH-Byte ist um 256 mal "gr÷▀er" als das LOW-Byte.
  153.  
  154.   Als Beispiel :
  155.  
  156.   Angenommen Sie wissen, da▀ bei einem SAVEGAME an den Positionen 
  157.   157 und 158 der Geldbetrag, den Sie im Spiel zur Verfⁿgung haben, 
  158.   gespeichert steht. Sie schauen sich die Stellen an und finden : in 157 eine 
  159.   $40 und in 158 eine $9C.
  160.   Um den Betrag daraus ersehen zu k÷nnen, wandeln sie die HEX .Werte zunΣchst  
  161.   in DEZ. Werte um :
  162.  
  163.                          $40 = 64
  164.                          $9C =156
  165.  
  166.   Da $40 vor der $9C steht, ist also $40 das LOW-Byte und $9C das HIGH-Byte.
  167.  
  168.   Das hei▀t, der Geldbetrag, der spΣter im Spiel aus diesen beiden 
  169.   Speicherzellen ausgeleses wird, lautet:
  170.  
  171.                         156 * 256   +   64   = 40000
  172.                            HIGH         LOW
  173.  
  174.   Wenn Sie sich nun 50000 geben wollen, mⁿssen Sie diesen Wert entsprechend 
  175.   auf die zwei Stellen aufteilen : 50000 geteilt durch 256 ergibt  
  176.   195.3125  Die Nachkommastellen werden ignoriert!
  177.   Das HIGH-Byte lautet also 195.
  178.   Dann bleibt fⁿr das LOW-Byte noch ⁿbrig : 50000 - 195 * 256 = 80.
  179.   Somit lautet dieses also 80.
  180.   Nun werden die DEZ. Werte wieder in HEX. Werte umgewandelt ...
  181.  
  182.                         195 = $C3
  183.                          80 = $50
  184.  
  185.   ... und in die Speicherzellen 157 und 158 in der Reihenfolge LOW-Byte und 
  186.   dann HIGH-Byte eingetragen.
  187.   Also steht nach dieser (fiktiven) VerΣnderung in 157 eine $50 und in 158
  188.   eine $C3 !
  189.  
  190.