Activision Classics PS1 Extraction
Using Duckstation, I ran games within Activision Classics and dumped the RAM to a file for each game as [game].bin. I then altered a script I found online for the PC version to work with the PS1 version. Here is my altered script below:
#!/bin/bash
for f in *.bin; do
g="${f%%.bin}"
for len in 2048 4096 8192 16384; do
count=$((len/4))
dd if="$f" of=out/"$g.$len" skip=163073 bs=4 count="$count"
done
done
I ran the script under WSL2 and used No-Intro's database and matched up the output sizes to find the correct game files. The original script and info is in the link below. https://forums.atariage.com/topic/336118-how-to-extract-roms-from-the-activision-anthology-for-pc-and-a-request-for-info-on-the-included-roms/
I have a new, less tedious method.
- Extract the file "RESOURCE/INGAME2.PKR" from the game's filesystem.
- Download Offzip from here: https://www.aluigi.altervista.org/mytoolz/offzip.zip if not already downloaded.
- Run the command
offzip.exe -a Path/To/INGAME2.PKR Path/To/Output 0x0005bb70with adjusting it depending on file locations. - Create the file extract.sh and copy this in it:
#!/bin/bash
if [ ! -d "out" ]; then
mkdir out
fi
fieldpos="-f5"
for file in 000*.*; do
name="$(head -c 32 "$file" | cut -d '' "$fieldpos")"
for len in 2048 4096 8192 16384; do
count=$((len/4))
dd if="$file" of=out/"$name.$len.bin" skip=35 bs=4 count="$count"
done
fieldpos="-f4"
done
- Run extract.sh in the output directory used in step 5 in WSL or a Linux environment.
- Research the correct game file sizes and delete the unnecessary game files.
Here are the correct files/file sizes:
- Atlantis.4096.bin
- Barnstorming.4096.bin
- Boxing.2048.bin
- Chopper Command.4096.bin
- Cosmic Commuter.4096.bin
- Crackpots.4096.bin
- Dolphin.4096.bin
- Dragster.2048.bin
- Enduro.4096.bin
- Fishing Derby.2048.bin
- Freeway.2048.bin
- Frostbite.4096.bin
- Grand Prix.4096.bin
- H.E.R.O..8192.bin
- Ice Hockey.4096.bin
- Kaboom!.2048.bin
- Keystone Kapers.4096.bin
- Laser Blast.2048.bin
- Megamania.4096.bin
- Pitfall!.4096.bin
- Plaque Attack.4096.bin
- River Raid II.16384.bin
- River Raid.4096.bin
- Seaquest.4096.bin
- Skiing.2048.bin
- Sky Jinks'.2048.bin
- Spider Fighter.4096.bin
- Stampede.2048.bin
- Star Master.4096.bin
- Tennis.2048.bin
And here's a script to be ran in the "out" folder to rename the proper files and put them in a "roms" directory.
#!/bin/bash
if [ ! -d "roms" ]; then
mkdir roms
fi
mv "Atlantis.4096.bin" "roms/Atlantis.a26"
mv "Barnstorming.4096.bin" "roms/Barnstorming.a26"
mv "Boxing.2048.bin" "roms/Boxing.a26"
mv "Chopper Command.4096.bin" "roms/Chopper Command.a26"
mv "Cosmic Commuter.4096.bin" "roms/Cosmic Commuter.a26"
mv "Crackpots.4096.bin" "roms/Crackpots.a26"
mv "Dolphin.4096.bin" "roms/Dolphin.a26"
mv "Dragster.2048.bin" "roms/Dragster.a26"
mv "Enduro.4096.bin" "roms/Enduro.a26"
mv "Fishing Derby.2048.bin" "roms/Fishing Derby.a26"
mv "Freeway.2048.bin" "roms/Freeway.a26"
mv "Frostbite.4096.bin" "roms/Frostbite.a26"
mv "Grand Prix.4096.bin" "roms/Grand Prix.a26"
mv "H.E.R.O..8192.bin" "roms/H.E.R.O..a26"
mv "Ice Hockey.4096.bin" "roms/Ice Hockey.a26"
mv "Kaboom!.2048.bin" "roms/Kaboom!.a26"
mv "Keystone Kapers.4096.bin" "roms/Keystone Kapers.a26"
mv "Laser Blast.2048.bin" "roms/Laser Blast.a26"
mv "Megamania.4096.bin" "roms/Megamania.a26"
mv "Pitfall!.4096.bin" "roms/Pitfall!.a26"
mv "Plaque Attack.4096.bin" "roms/Plaque Attack.a26"
mv "River Raid II.16384.bin" "roms/River Raid II.a26"
mv "River Raid.4096.bin" "roms/River Raid.a26"
mv "Seaquest.4096.bin" "roms/Seaquest.a26"
mv "Skiing.2048.bin" "roms/Skiing.a26"
mv "Sky Jinks'.2048.bin" "roms/Sky Jinks.a26"
mv "Spider Fighter.4096.bin" "roms/Spider Fighter.a26"
mv "Stampede.2048.bin" "roms/Stampede.a26"
mv "Star Master.4096.bin" "roms/StarMaster.a26"
mv "Tennis.2048.bin" "roms/Tennis.a26"