the files
commit
4294a7e857
@ -0,0 +1,16 @@
|
|||||||
|
unbindall
|
||||||
|
bind "A" "+jump"
|
||||||
|
bind "B" "+reload"
|
||||||
|
bind "X" "save a;load a"
|
||||||
|
bind "Y" "+use"
|
||||||
|
bind "UP" "slot1"
|
||||||
|
bind "DOWN" "slot3"
|
||||||
|
bind "LEFT" "slot4"
|
||||||
|
bind "RIGHT" "slot2"
|
||||||
|
bind "WHITE" "save b"
|
||||||
|
bind "BLACK" "load b"
|
||||||
|
bind "STICK1" "+duck"
|
||||||
|
bind "STICK2" "+speed"
|
||||||
|
bind "R TRIGGER" "+attack"
|
||||||
|
bind "L TRIGGER" "+attack2"
|
||||||
|
bind "BACK" "exec the_config.cfg"
|
||||||
@ -0,0 +1,91 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
_ "embed"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
const offset = 0x26DB27 //where the default config is located
|
||||||
|
const maxSize = 0x44D //safe size so i don't overwrite anything else
|
||||||
|
|
||||||
|
func usage() error {
|
||||||
|
return errors.New("Usage: <config_to_inject.cfg> <zip0_xbox.xzp>")
|
||||||
|
}
|
||||||
|
|
||||||
|
func inject(in []byte, orig []byte) []byte {
|
||||||
|
return bytes.Join(
|
||||||
|
[][]byte{
|
||||||
|
bytes.Clone(orig[:offset]),
|
||||||
|
in,
|
||||||
|
bytes.Clone(orig[offset+maxSize:]),
|
||||||
|
},
|
||||||
|
|
||||||
|
[]byte{},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func open(path string) (*os.File, int64) {
|
||||||
|
file, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
stat, err := file.Stat()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
return file, stat.Size()
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if len(os.Args) <= 2 {
|
||||||
|
err := usage()
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg, cfgSize := open(os.Args[1])
|
||||||
|
defer cfg.Close()
|
||||||
|
|
||||||
|
orig, origSize := open(os.Args[2])
|
||||||
|
defer orig.Close()
|
||||||
|
|
||||||
|
if cfgSize > maxSize {
|
||||||
|
decSize := fmt.Sprintf("%d", maxSize)
|
||||||
|
err := errors.New("config file too large, max size " + decSize + " bytes")
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cfgData := make([]byte, maxSize)
|
||||||
|
cfg.Read(cfgData)
|
||||||
|
|
||||||
|
origData := make([]byte, origSize)
|
||||||
|
orig.Read(origData)
|
||||||
|
|
||||||
|
modified := inject(cfgData, origData)
|
||||||
|
|
||||||
|
xzp, err := os.Create("modified.xzp")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
defer xzp.Close()
|
||||||
|
|
||||||
|
xzp.Write(modified)
|
||||||
|
|
||||||
|
modStat, err := xzp.Stat()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if modStat.Size() != origSize {
|
||||||
|
err = errors.New("modified file not correct size")
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(string(modified[offset : offset+maxSize]))
|
||||||
|
|
||||||
|
log.Println("now just rename the file to zip0_xbox.xzp :3")
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
alias "w" "wait"
|
||||||
|
alias "w2" "w;w"
|
||||||
|
alias "w4" "w2;w2"
|
||||||
|
alias "w8" "w4;w4"
|
||||||
|
alias "w16" "w8;w8"
|
||||||
|
alias "w32" "w16;w16"
|
||||||
|
alias "w64" "w32;w32"
|
||||||
|
alias "w128" "w64;w64"
|
||||||
|
alias "w256" "w128;w128"
|
||||||
|
alias "w512" "w256;w256"
|
||||||
|
alias "w1024" "w512;w512"
|
||||||
|
alias "w2048" "w1024;1024"
|
||||||
|
alias "w4096" "w2048;w2048"
|
||||||
|
bind "DOWN" "w4096"
|
||||||
|
bind "LEFT" "sv_cheats 1;noclip;god;shake;createhairball;createflashlight"
|
||||||
|
bind "UP" "map d2_coast_01"
|
||||||
|
bind "RIGHT" "say uwu"
|
||||||
|
sv_unlockedchapters "15"
|
||||||
Loading…
Reference in New Issue