Earth Defense Forces 2 Portable (PSP)

As noted in my blog, I picked this Japanese gem up in a bookstore recently for around half the price quoted on Ebay. It's not a complicated game (not a surprise as it's a part of the Simple series), but the EDF series has a cult following. Not for the graphics or plotline, but for the simplicity of blowing the crap out of aliens, UFO's, giant insects and monsters. The kaiju are good fun, reminiscent of Godzilla and his pals, while the bugs are more akin to Them! or, at a stretch, Mothra.

The real fun is that everything can be destroyed. Buildings, bugs, city-sized spaceships, all can be blown to pieces with the myriad of weapons available to the two playable characters (Storm-1 and Pale Wing). Why you need hundreds of weapons is beyond me, but its fun to try out to see what is effective against the various enemies. One of the game's strengths is also the cause of its greatest flaw: the sheer spectacle of gigantuan spaceships or hordes of mutant insects. These do look cool, especially when the level is set at twilight. But blow a few of the UFO's up with an atomic handgrenade and the game struggles. The framerate stutters and reaches single figures at best. This isn't a problem with the PSP as such, as the PS2 version suffered from exactly the same issue. But if you can get past this, you'll have a blast ... literally.

So why is this of interest to us game hackers? Well, there is an extra file in one of the folders, labelled EDF2.DAT. As this is located in a folder called USA and mirrors a file of the same name in the JPN folder, it initially appears to be a translation of the Japanese version. Not so, as it fails to load when moved to the JPN folder. From the dodgy translations I've gleaned off of Japanese gaming sites, it seems it contains missions from the PS2 version of the second EDF game. After further research, it seems that a number of the subsequent missions are those from the first game (Monster Attack). As for the other 25+, who knows ...

Japanese Version

Unused Levels




The only unused mission is Mission 79 in the main PSP game, which loads one of the city levels and has what are charmingly called Dumpling Mechs in the game's coding. It starts off with just one of these, then two more spawn out of nowhere, followed by a large wave. These aliens look like woodlice from a distance, but curl up into a ball and hurl themselves at you. Nasty.

Unused Enemies



Labelled GIANTANT2_5, this seems a more primitive version of the red ant. However, it looks somewhat better when animated.



This bug, called GIANTANT1_1, is very similar to the regular ants seen infesting the cities of the game.

The third unused model is called GIANTFLYINGANT_S and is one of the flying ant enemies. I have not been able to get a look at this one yet, but it may not be so different to the ones in the game.

Level Hacks



It is possible to change the enemies and maps on different levels. Using a hex editor on EDF2.DAT, you can change the relevant names, providing there is enough space to accommodate the new moniker. So you can change GIANTANT2_2.VOB to GIANTANT2_5.VOB or something with a maximum number of eleven letters (excluding the file suffix, of course). If it is shorter, you can just add spaces to fill up the gap. Trying to squash in GIANTANTQUEEN.VOB will not work, as the game will crash.

CWCheat Codes



I can only take credit for the odd code like the Level Select. Other than that, here are the ones that seem to be the most useful (see link below for source):

_S ULJS-00374
_G EDF 2 PORTABLE
_C0 All Missions open
_L 0x401BE2EB 0x004E0006
_L 0x01010101 0x00000000
_L 0x801BE2EC 0x004E000C
_L 0x10000101 0x00000000
_C0 Mission clear
_L 0x401BE2F4 0x004E0006
_L 0x01010101 0x00000000
_L 0x801BE2F8 0x004E000C
_L 0x10000101 0x00000000
_C0 EDF Weapon 1
_L 0x001BE208 0x00000000
_C0 EDF Weapon 2
_L 0x001BE20C 0x00000000
_C0 EDF HP 9999
_L 0x201C8B38 0x00001985
_C0 Pail Wing Weapon 1
_L 0x001BE210 0x00000000
_C0 Pail Wing Weapon 2
_L 0x001BE214 0x00000000
_C0 Pail Wing HP9999
_L 0x201C8B3C 0x0000338F
_C0 Weapon All
_L 0x401C8B40 0x00520001
_L 0x01010101 0x00000000
_C0 Unlimited Bullet
_L 0x200E2580 0x24840000
_C0 Unlimited Energy
_L 0x20120164 0xE48C00BC
_C0 Item Auto Get
_L 0x20050C78 0x10000010
_L 0x20035E14 0x00000000
_C0 Damage 100000
_L 0x20001000 0x47C35000
_L 0x200E2B14 0x3C080880
_L 0x200E2B18 0xC50C1000
_C0 Character Select
_L 0x001BE1F8 0x00000000
_C0 No Water Judge
_L 0x2012A218 0x24846D7E
_C0 Buildings weak
_L 0x20126F10 0x00000000
_C0 Building Not Break
_L 0x20127060 0x00000000
_C0 Area Open
_L 0x20050C14 0x10000017
_C0 Player Stealth
_L 0x200497D8 0x00000000
_L 0x2004982C 0x00000000
_C0 Booster Stealth
_L 0x200554DC 0x00000000
_C0 Booster Effect Stealth
_L 0x20055064 0x00000000
_C0 Weapon Object Stealth
_L 0x200E232C 0x00000000
_C0 Radar Off
_L 0x2002E1C0 0x03E00008
_L 0x2002E1C4 0x00000000
_C0 Gauge Off
_L 0x2002E13C 0x03E00008
_L 0x2002E140 0x00000000
_C0 aim Off
_L 0x1001FE1C 0x00000000
_L 0x1001FE24 0x00000000
_L 0x1001FE30 0x00000000
_L 0x1001FE3C 0x00000000
_C0 Infinite Jump
_L 0x0005018C 0x10000002
_L 0x00050948 0x10000002
_C0 View XXXX 6th-x 7th-y 8th-z
_L 0x2012E058 0xC48D0000
_L 0x2012E05C 0xC48E0004
_L 0x2012E064 0xC48F0008
_L 0x2012E078 0x0A200400
_L 0x2012E080 0xE4AF0008
_L 0x20001000 0x3C060000
_L 0x20001004 0x3C070000
_L 0x20001008 0x3C080000
_L 0x2000100C 0x44868000
_L 0x20001010 0x46106B40
_L 0x20001014 0xE4AD0000
_L 0x20001018 0x44878000
_L 0x2000101C 0x46107380
_L 0x20001020 0xE4AE0004
_L 0x20001024 0x44888000
_L 0x20001028 0x0A24B820
_L 0x2000102C 0x46107BC0
_C0 Level Select 1-79
_L 0x0077E2D4 0x00000000
_C0 Sel+Down/R/Up TPS/FPS
_L 0xD0000001 0x10000011
_L 0x2001F4A8 0x0E20042D
_L 0x200010B4 0x3C053E0E
_L 0x200010B8 0x44857000
_L 0x200010BC 0x03E00008
_L 0x200010C0 0x460C7341
_L 0xD0000001 0x10000081
_L 0x2001F4A8 0x0E20042D
_L 0x200010B4 0x3C053F70
_L 0x200010B8 0x44857000
_L 0x200010BC 0x03E00008
_L 0x200010C0 0x460C7341
_L 0xD0000001 0x10000041
_L 0x2001F4A8 0x0E20042D
_L 0x200010B4 0x3C053FCA
_L 0x200010B8 0x44857000
_L 0x200010BC 0x03E00008
_L 0x200010C0 0x460C7341
_C0 Monaco 1
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51CDC
_C0 City Night 1
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51CE8
_C0 Monaco 2
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51CF8
_C0 City Night 2
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D04
_C0 Mountains
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D14
_C0 Ruins
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D20
_C0 Coast
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D2C
_C0 Residential Areas
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D38
_C0 London
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D44
_C0 Cave 1
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D50
_C0 Cave 2
_L 0x2019D18C 0x3C05089B
_L 0x2019D190 0x0E200400
_L 0x20001000 0x0A2353BB
_L 0x20001004 0x34A51D5C
_C0 Use Ant acid attack
_L 0x200E2AF4 0x3C053F12
_L 0x200E2AF8 0xAFA5000C
_L 0x200E2B04 0x3405012C
_L 0x200E2B14 0x3C054348
_L 0x200E2B1C 0xAFA500C8
_L 0x200E2B2C 0xAFA000CC
_L 0x200E2B38 0x3C053E99
_L 0x200E2B3C 0xAFA500D0
_L 0x200E2B48 0x3C05437F
_L 0x200E2B4C 0xAFA500D4
_L 0x200E2B58 0x3C05433C
_L 0x200E2B5C 0xAFA500D8
_L 0x200E2B6C 0xAFA000DC
_L 0x200E2B78 0x3C054200
_L 0x200E2B7C 0xAFA500E0
_L 0x200E2E80 0x3C04089A
_L 0x200E2E8C 0x3484E4D0
_C0 Ant acid firing angle
_L 0x10065BB0 0x00003F80
_C0 Frozen Ants
_L 0x201C3260 0x089911FC
_C0 Frozen Ants (alt.)
_L 0x20061C8C 0x03404000
_C0 1st 11 Empty Levels (from folders)
_L 0x100D9090 0x00000000
_L 0x100D9208 0x0000FFD3
_L 0x201B1BD8 0x6D746166
_L 0x201B1BDC 0x2F3A3073
_L 0x201B1BE0 0x32464445
_L 0x201B1BE4 0x524F5020
_L 0x201B1BE8 0x4C424154
_L 0x201B1BEC 0x694D2F45
_L 0x201B1BF0 0x6F697373
_L 0x201B1BF4 0x73252F6E
_L 0x201B1BF8 0x2E73252F
_L 0x201B1BFC 0x006D7662
_L 0x201B1C1C 0x6D746166
_L 0x201B1C20 0x2F3A3073
_L 0x201B1C24 0x32464445
_L 0x201B1C28 0x524F5020
_L 0x201B1C2C 0x4C424154
_L 0x201B1C30 0x694D2F45
_L 0x201B1C34 0x6F697373
_L 0x201B1C38 0x73252F6E
_L 0x201B1C3C 0x2E73252F
_L 0x201B1C40 0x73706B4B
_L 0x201B1C44 0x00000000

The Level Select code allows you to play the unused mission (with a value of 79). The "1st 11 Empty Levels" code needs some folders placed in the root of the memory stick (as included with the ミッション application ... link below as usual) and, with the code enabled, will load a different map for the first eleven missions in the game. These lack any enemies or civilians, but may form the basis of a custom mission once the necessary files have been figured out. For the moment, use the Area Open code as well to explore the extensive maps.

For different camea angles, try the "View XXXX" code to change the X, Y and Z axes (change the 6th, 7th and 8th values in the code). The "Sel+Down/R/Up TPS/FPS" code will change the angle from TPS to FPS by pressing Select and Up, Right or Down. Finally, for decent screenshots, try the various "Stealth" codes to make the character, radar, map et al disappear.

To alter the map, use the individual codes to select Monaco, London or whatever. This can change the dynamics of a mission completely, especially if you transport a Cave mission to one of the cities. Watch out for falling kaiju, though!

The "Character Select" is a misnomer, as there are only two characters to choose from. Unlike the PS2 version of the game, no one seems to have figured out how to play as a monster yet.

English Version

This tutorial allows you to play the extra missions contained in USA\EDF2.DAT. First, you will need some programs, codes and files:

- The EDF2.DAT file, extracted from the USA folder of your EDF2 Portable game.
- VFS展開ツール v1.00 program (see links below)
- CWCheat codes to activate the extra missions.
- ミッション archive (optional - see links below)



You need to put the contents of VFS展開ツール v1.00 into a folder. I chose to place this at the root of my C drive, as it did not seem to work elsewhere.



Place EDF2.DAT in there as well. Rename VFSWJ.BAT to VFS.bat.



Now drag the EDF2.DAT into the VFS.BAT and it will extract the contents.



You should end up with a folder called EDF2.



In this folder, you'll find the extracted contents. At the moment, only the MISSION folders are of interest to us. Rename the _MISSION16, _MISSION053, and _MISSION055 folders to follow on from the main sequence of files. Include the 11 empty levels from the ミッション archive if you want and rename these so that they fit on to the end of the sequence of folders. Delete folder MISSION044B as it does not load and crashes the game.

On the PSP memory stick, create a folder called EDF2 PORTABLE in the root directory. Place the renamed missions files from the extracted archive into a folder called MISSIONS in the EDF2 PORTABLE folder. You'll need a copy of the GameSequence folder as well in the EDF2 PORTABLE folder. Use a hex editor to create a file of 8 bytes in length, with all values set to 0. Name this MissionCommentList0.Vfs and create 4 more, each numbered between 1 and 4 (e.g. MissionCommentList1.Vfs, MissionCommentList2.Vfs, etc.), then place all of these in the GameSequence folder.

Install CWCheat and open the CHEAT.DB file, then create a new entry for EDF 2 Portable. Copy the following codes across:

_C0 LEVEL SELECT
_L 0x2077E2D4 0x0000009B
_C0 EDF EXTRA MISSIONS
_L 0x100D9090 0x00000000
_L 0x100D9208 0x0000FFD3
_L 0x201B1BD8 0x6D746166
_L 0x201B1BDC 0x2F3A3073
_L 0x201B1BE0 0x32464445
_L 0x201B1BE4 0x524F5020
_L 0x201B1BE8 0x4C424154
_L 0x201B1BEC 0x694D2F45
_L 0x201B1BF0 0x6F697373
_L 0x201B1BF4 0x73252F6E
_L 0x201B1BF8 0x2E73252F
_L 0x201B1BFC 0x006D7662
_L 0x201B1C1C 0x6D746166
_L 0x201B1C20 0x2F3A3073
_L 0x201B1C24 0x32464445
_L 0x201B1C28 0x524F5020
_L 0x201B1C2C 0x4C424154
_L 0x201B1C30 0x694D2F45
_L 0x201B1C34 0x6F697373
_L 0x201B1C38 0x73252F6E
_L 0x201B1C3C 0x2E73252F
_L 0x201B1C40 0x73706B4B
_L 0x201B1C44 0x00000000
_C0 ENGLISH MISSION TEXT CODE
_L 0x20141B24 0x27A4FE00
_L 0x20141B40 0x0A200400
_L 0x20141B4C 0x8E040004
_L 0x20141DC0 0x34020000
_L 0x20001000 0x27BDFE00
_L 0x20001004 0x3C050880
_L 0x20001008 0x34A51038
_L 0x2000100C 0x0E24516C
_L 0x20001010 0x02203025
_L 0x20001014 0x02002025
_L 0x20001018 0x0E250730
_L 0x2000101C 0x27A50000
_L 0x20001020 0x10400003
_L 0x20001024 0x27BD0200
_L 0x20001028 0x0A250728
_L 0x2000102C 0x34020001
_L 0x20001030 0x0A2506D2
_L 0x20001038 0x6D746166
_L 0x2000103C 0x2F3A3073
_L 0x20001040 0x32464445
_L 0x20001044 0x524F5020
_L 0x20001048 0x4C424154
_L 0x2000104C 0x73252F45
_L 0x20001050 0x00000000

The EDF EXTRA MISSIONS code will allow the extra misisons to be loaded in place of the regular ones. Some of these are the same as the final game (e.g. the first two missions), but many are different.



The ENGLISH MISSION TEXT CODE does what it says on the tin, allowing the correct English mission briefings, mission images and missions to be loaded in place of the Japanese versions. You need to load up a mission and then quit for these to show up on the mission screen. As the Japanese mission briefing goes up to 78 as opposed to the 71 English ones, you have some of the extra missions at the end that you also play. Basically, the EDF EXTRA MISSIONS and ENGLISH MISSION TEXT CODE load up the deleted English port of the game.




If you make a folder called WEAPON in the EDF2 folder and transfer the WEAPONCOMMENTLIST.VFS from the USA archive, there will be English translations of many of the weapons in the amoury menu.

There are more missions available above the first 71 missions on the list, so use the LEVEL SELECT code (using decimal values rather than hex) to select these new missions. The missions numbered 101 to 125 are the PS2 missions from the first game, Monster Attack. There are even missions beyond this and these do have Japanese mission briefings (see link below), which is somewhat bizarre. If I can get a translation, I'll post them here.

Not all missions can be finished once you have destroyed all of the enemies. There are no new maps in the extracted archive. Using the MAP SELECT code can provide mods of any mission by changing the map.

One day, I'll figure out how to create custom missions ...

Links

EDF 2 Portable Wiki (Japanese)
Long forum discussion about codes and custom levels (Japanese)
Various programs for hacking into the game (Japanese)
Five things that must return in the EDF sequel
EDF 2 discussion thread over at NeoGAF forums
Official Site (Japanese)
Details of the deleted missions (Japanese)
Back to Tech Demo