Dead or Alive 4 was for hardcore fans in some ways a step forward and in others a step back. So a few of us want to change how the game plays. There's a single file that's contains a majority of this data. In fact, it contains more than I originally thought. There's an official patch for the game that you receive when you connect to Xbox Live, this patch is just an updated version of the file in question: anm.afs. Some of you may already be familiar with the AFS format from the Dreamcast days, it's basically a container format like ZIP or something similar with no compression (I think). So it has each character's movesets. With the updated anm.afs however there were variables changed that were thought to be in the executable (which couldn't be modified without breaking its signature) but were changed in this file. Also a few additional moves were added with the update. Who knew? Neat shit. Basically the problem now is cracking the format of the files inside this AFS. You can see here how some of the data matches up here: So far we've managed to get a very basic modification done. A lot of it is guessing and not 100%. And the current app looks like this: So, yeah I'm stuck and haven't got any ideas. Here's two files if any one of you wants to have a look see and help me out. http://home.comcast.net/~doa4/alpha.bin http://home.comcast.net/~doa4/ayane.bin
Changing some of the properties of those unknown flags yields these results: http://www.youtube.com/watch?v=6DqtNf5Jw7Q And just for shits and giggles I got a semi-playable final boss by file swapping: http://www.youtube.com/watch?v=dA7eDwzDmfQ
Well, posting 3 times in a row isn't going to help you get a response... What I've seen so far is rather interesting, though. I don't normally mess around with fighting games, but I can attest to the fact that swapping files can have some pretty favorable results. The best thing I can suggest when it comes to finding out unknown variables is just to change something drastically and test. Over and over again. Do it until you can find out something specific about that value, and how it affects the game. That's the bane of reverse-engineering, really—experimentation.
See I don't really want to do that since 99.9% of the file's format is unknown and testing a single variable would mean burning a single DL DVD+RW for an hour. I mean that's what I've been basically doing so far but it's really tedious and even when something is changed I'm still not quite sure what I've done. haha
Nobody said it'd be easy, though. :P There's not really much more you can do, to be honest. I hope you've got a lot of discs and a lot of patience. It's gonna be a long ride.
DOA4 file structure \ (root) anm.afs anm_version.bin zack.bin tina.bin janlee.bin karate.bin ryu.bin kasumi.bin genfu.bin hika.bin bayman.bin bass.bin hakyo.bin ninja.bin leifang.bin ayane.bin boy.bin lisa.bin alpha.bin tengu.bin spartan.bin suiken.bin gokei.bin koryu.bin rtm.bin sambo.bin anime_cm.binavt.afs chrone.afs chr_version.bin zac00.tpr zac00.cat zac01.tpr zac01.cat zac02.tpr zac02.cat dmy.bin dmy.bin zac04.tpr zac04.cat tin00.tpr tin00.cat tin01.tpr tin01.cat tin02.tpr tin02.cat tin03.tpr tin03.cat tin04.tpr tin04.cat dmy.bin dmy.bin jan00.tpr jan00.cat jan01.tpr jan01.cat jan02.tpr jan02.cat jan03.tpr jan03.cat dmy.bin dmy.bin ein00.tpr ein00.cat ein01.tpr ein01.cat ein02.tpr ein02.cat ein03.tpr ein03.cat dmy.bin dmy.bin ryu00.tpr ryu00.cat ryu01.tpr ryu01.cat ryu02.tpr ryu02.cat ryu03.tpr ryu03.cat kas00.tpr kas00.cat kas01.tpr kas01.cat kas02.tpr kas02.cat kas03.tpr kas03.cat kas04.tpr kas04.cat kas05.tpr kas05.cat kas06.tpr kas06.cat dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.binchrthree.afs boy00.tpr boy00.cat dmy.bin dmy.bin boy02.tpr boy02.cat boy03.tpr boy03.cat boy04.tpr boy04.cat lis00.tpr lis00.cat lis01.tpr lis01.cat lis02.tpr lis02.cat lis03.tpr lis03.cat lis04.tpr lis04.cat alp01.tpr alp01.cat alp01.tpr alp01.cat tng00.tpr tng00.cat dmy.bin dmy.bin tng02.tpr tng02.cat spa00.tpr spa00.cat spa01.tpr spa01.cat spa02.tpr spa02.cat spa03.tpr spa03.cat spa04.tpr spa04.cat spa05.tpr spa05.cat spa06.tpr spa06.cat dmy.bin dmy.bin dmy.bin dmy.bin bra01.tpr bra01.cat bra02.tpr bra02.cat bra03.tpr bra03.cat cri00.tpr cri00.cat cri01.tpr cri01.cat dmy.bin dmy.bin dmy.bin dmy.bin cri04.tpr cri04.cat cri05.tpr cri05.cat cri06.tpr cri06.cat kor00.tpr kor00.cat kor01.tpr kor01.cat kor02.tpr kor02.cat kor03.tpr kor03.cat dmy.bin dmy.bin kor05.tpr kor05.cat kor06.tpr kor06.cat kor07.tpr kor07.cat kor08.tpr kor08.cat kor09.tpr kor09.cat rtm00.tpr rtm00.cat rtm01.tpr rtm01.cat rtm02.tpr rtm02.cat rtm03.tpr rtm03.cat rtm04.tpr rtm04.cat bay00.tpr bay00.cat bay01.tpr bay01.cat bay02.tpr bay02.cat kasAA.tpr kasAA.cat kasBA.tpr kasBA.cat kasCA.tpr kasCA.cat kasDA.tpr kasDA.cat leiAA.tpr leiAA.cat leiBA.tpr leiBA.cat leiCA.tpr leiCA.cat leiCA.tpr leiCB.cat leiCA.tpr leiCC.cat leiCA.tpr leiCD.cat leiCA.tpr leiCE.cat leiCA.tpr leiCF.cat leiCA.tpr leiCG.cat leiDA.tpr leiDA.cat leiEA.tpr leiEA.cat leiFA.tpr leiFA.cat leiGA.tpr leiGA.cat ayaAA.tpr ayaAA.cat lisAA.tpr lisAA.cat lisBA.tpr lisBA.cat lisCA.tpr lisCA.cat lisDA.tpr lisDA.cat lisEA.tpr lisEA.cat lisFA.tpr lisFA.cat criAA.tpr criAA.cat korAA.tpr korAA.cat korAA.tpr korAB.cat einAA.tpr einAA.cat janAA.tpr janAA.cat boyAA.tpr boyAA.cat hakAA.tpr hakAA.cat hakAA.tpr hakAB.cat hakAA.tpr hakAC.cat hakAA.tpr hakAD.cat hakAA.tpr hakAE.cat hakAA.tpr hakAF.cat hakAA.tpr hakAG.cat helAA.tpr helAA.cat helAA.tpr helAB.cat helAA.tpr helAC.cat helAA.tpr helAD.cat helAA.tpr helAE.catchrtwo.afs gen00.tpr gen00.cat gen01.tpr gen01.cat gen02.tpr gen02.cat gen03.tpr gen03.cat dmy.bin dmy.bin hel00.tpr hel00.cat hel01.tpr hel01.cat hel02.tpr hel02.cat hel03.tpr hel03.cat dmy.bin dmy.bin hel05.tpr hel05.cat hel06.tpr hel06.cat leo00.tpr leo00.cat leo01.tpr leo01.cat leo02.tpr leo02.cat leo03.tpr leo03.cat bas00.tpr bas00.cat bas01.tpr bas01.cat bas02.tpr bas02.cat bas03.tpr bas03.cat hak00.tpr hak00.cat dmy.bin dmy.bin dmy.bin dmy.bin hak03.tpr hak03.cat hak04.tpr hak04.cat hak05.tpr hak05.cat hak06.tpr hak06.cat hak07.tpr hak07.cat hak08.tpr hak08.cat dmy.bin dmy.bin hak10.tpr hak10.cat hak11.tpr hak11.cat hak12.tpr hak12.cat dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin hyt00.tpr hyt00.cat hyt01.tpr hyt01.cat hyt02.tpr hyt02.cat hyt03.tpr hyt03.cat dmy.bin dmy.bin dmy.bin dmy.bin lei01.tpr lei01.cat lei02.tpr lei02.cat dmy.bin dmy.bin dmy.bin dmy.bin lei05.tpr lei05.cat lei06.tpr lei06.cat dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin lei10.tpr lei10.cat lei11.tpr lei11.cat lei12.tpr lei12.cat aya00.tpr aya00.cat aya01.tpr aya01.cat aya02.tpr aya02.cat aya03.tpr aya03.cat aya04.tpr aya04.cat aya05.tpr aya05.catcmn.afs cmn_version.bin comon.mot efc0.tpr rtmlight.bin rtmwatch.bin dmy.bin cam_raw.bindefault.xex mot.afs mot_version.bin zack.mot m_zack.mot c_zack.mot tina.mot m_tina.mot c_tina.mot janlee.mot m_janlee.mot c_janlee.mot karate.mot m_karate.mot c_karate.mot ryu.mot m_ryu.mot c_ryu.mot kasumi.mot m_kasumi.mot c_kasumi.mot genfu.mot m_genfu.mot c_genfu.mot hika.mot m_hika.mot c_hika.mot bayman.mot m_bayman.mot c_bayman.mot bass.mot m_bass.mot c_bass.mot hakyo.mot m_hakyo.mot c_hakyo.mot ninja.mot m_ninja.mot c_ninja.mot leifan.mot m_leifan.mot c_leifan.mot ayane.mot m_ayane.mot c_ayane.mot boy.mot m_boy.mot c_boy.mot lisa.mot m_lisa.mot c_lisa.mot alpha.mot m_alpha.mot c_alpha.mot tengu.mot m_tengu.mot c_tengu.mot spartan.mot m_spartan.mot c_spartan.mot suiken.mot m_suiken.mot c_suiken.mot gokei.mot m_gokei.mot c_gokei.mot koryu.mot m_koryu.mot c_koryu.mot kasumi.mot m_rtm.mot c_kasumi.mot sambo.mot m_sambo.mot c_sambo.mot t_al_ks.mot t_ay_km.mot t_ay_ks.mot t_ay_kt.mot t_ay_lu.mot t_ay_ni.mot t_ba_ay.mot t_ba_fa.mot t_ba_gy.mot t_ba_kl.mot t_ba_ks.mot t_ba_lu.mot t_ba_sa.mot t_ba_tn.mot t_ba_pr.mot t_fa_ay.mot t_fa_gy.mot t_fa_hi.mot t_fa_kl.mot t_fa_km.mot t_fa_ks.mot t_fa_le.mot t_fa_sa.mot t_fa_su.mot t_fa_tn.mot t_fa_bo.mot t_go_hi.mot t_go_su.mot t_go_ko.mot t_go_sa.mot t_gy_ba.mot t_gy_fa.mot t_gy_kl.mot t_gy_km.mot t_gy_sa.mot t_gy_tn.mot t_hi_fa.mot t_hi_go.mot t_hi_km.mot t_hi_ks.mot t_hi_le.mot t_kl_ba.mot t_kl_gy.mot t_kl_km.mot t_kl_ko.mot t_kl_le.mot t_kl_sa.mot t_kl_tn.mot t_km_ay.mot t_km_ba.mot t_km_fa.mot t_km_gy.mot t_km_ks.mot t_km_kt.mot t_km_lu.mot t_km_ni.mot t_km_sa.mot t_km_tn.mot t_ko_kl.mot t_ko_kt.mot t_ko_ni.mot t_ko_ha.mot t_ks_al.mot t_ks_ay.mot t_ks_ba.mot t_ks_hi.mot t_ks_kl.mot t_ks_km.mot t_ks_ko.mot t_ks_kt.mot t_ks_su.mot t_kt_ay.mot t_kt_ba.mot t_kt_kl.mot t_kt_km.mot t_kt_ko.mot t_kt_ks.mot t_kt_lu.mot t_le_hi.mot t_le_kt.mot t_le_lu.mot t_le_tn.mot t_lu_fa.mot t_lu_gy.mot t_lu_km.mot t_lu_kt.mot t_lu_le.mot t_lu_sa.mot t_ni_ay.mot t_ni_go.mot t_ni_km.mot t_ni_su.mot t_pr_ba.mot t_pr_tn.mot t_pr_ko.mot t_sa_ba.mot t_sa_fa.mot t_sa_gy.mot t_sa_kl.mot t_sa_km.mot t_sa_kt.mot t_sa_tn.mot t_sa_go.mot t_su_fa.mot t_su_kl.mot t_su_ha.mot t_su_bo.mot t_tn_ba.mot t_tn_fa.mot t_tn_gy.mot t_tn_kl.mot t_tn_km.mot t_tn_ks.mot t_tn_le.mot t_tn_pr.mot t_tn_sa.mot t_ha_bo.mot t_ha_ay.mot t_ha_pr.mot t_ha_ni.mot t_ha_ko.mot t_bo_fa.mot t_bo_le.mot t_bo_su.motsnd.afs snd_version.bin system_se.xwb system_se.xsb bgm_stream.xsb voice_sys.xsb voice_stream_male.xsb voice_stream_female.xsb voice_zac.xwb voice_zac.xsb voice_tin.xwb voice_tin.xsb voice_jan.xwb voice_jan.xsb voice_ein.xwb voice_ein.xsb voice_ryu.xwb voice_ryu.xsb voice_kas.xwb voice_kas.xsb voice_gen.xwb voice_gen.xsb voice_hel.xwb voice_hel.xsb voice_leo.xwb voice_leo.xsb voice_bas.xwb voice_bas.xsb voice_lei.xwb voice_lei.xsb voice_aya.xwb voice_aya.xsb voice_tng.xwb voice_tng.xsb voice_bay.xwb voice_bay.xsb voice_kor.xwb voice_kor.xsb voice_hyt.xwb voice_hyt.xsb voice_bra.xwb voice_bra.xsb voice_cri.xwb voice_cri.xsb voice_hak.xwb voice_hak.xsb voice_boy.xwb voice_boy.xsb voice_lis.xwb voice_lis.xsb voice_alp.xwb voice_alp.xsb voice_spa.xwb voice_spa.xsb stage_test.xwb stage_test.xsb stage_ds.xwb stage_ds.xsb stage_bo.xwb stage_bo.xsb stage_tc.xwb stage_tc.xsb stage_mk.xwb stage_mk.xsb stage_ny.xwb stage_ny.xsb stage_ts.xwb stage_ts.xsb stage_cp.xwb stage_cp.xsb stage_rn.xwb stage_rn.xsb stage_pro.xwb stage_pro.xsb stage_kyo.xwb stage_kyo.xsb stage_saf.xwb stage_saf.xsb stage_bri.xwb stage_bri.xsb stage_kyn.xwb stage_kyn.xsb stage_ray.xwb stage_ray.xsb stage_hel.xwb stage_hel.xsb stage_tcr.xwb stage_tcr.xsb stage_kyr.xwb stage_kyr.xsb con_ks1.xwb con_ks1.xwb con_ks2.xwb con_ks3.xwb con_ay2.xwb con_ay3.xwb con_ry1.xwb con_ry2.xwb con_ry3.xwb con_hy1.xwb con_hy2.xwb con_hy3.xwb con_tn2.xwb con_le2.xwb con_le3.xwb con_ba1.xwb con_ba1_tn.xwb con_ba1_ba.xwb con_ba1_br.xwb con_ba2.xwb con_jn3.xwb con_by2.xwb con_by3.xwb con_zk1.xwb con_zk2.xwb con_zk3.xwb con_zk4.xwb con_ko1.xwb con_ko2.xwb con_ko3.xwb con_bo1.xwb con_bo2.xwb con_bo3.xwb con_ha1.xwb con_ha2.xwb con_ha3.xwb con_li3.xwb con_br3.xwb con_he1.xwb con_he2.xwb con_he3.xwb con_etc1.xwb con_etc1_adv.xwb con_sp1.xwb con_e3_152biod.xwb con_ks1.xsb con_ks1.xsb con_ks2.xsb con_ks3.xsb con_ay2.xsb con_ay3.xsb con_ry1.xsb con_ry2.xsb con_ry3.xsb con_hy1.xsb con_hy2.xsb con_hy3.xsb con_tn2.xsb con_le2.xsb con_le3.xsb con_ba1.xsb con_ba1_tn.xsb con_ba1_ba.xsb con_ba1_br.xsb con_ba2.xsb con_jn3.xsb con_by2.xsb con_by3.xsb con_zk1.xsb con_zk2.xsb con_zk3.xsb con_zk4.xsb con_ko1.xsb con_ko2.xsb con_ko3.xsb con_bo1.xsb con_bo2.xsb con_bo3.xsb con_ha1.xsb con_ha2.xsb con_ha3.xsb con_li3.xsb con_br3.xsb con_he1.xsb con_he2.xsb con_he3.xsb con_etc1.xsb con_etc1_adv.xsb con_sp1.xsb con_e3_152biod.xsb hos_000_zak.xwb hos_000_zak.xsb hos_001_flo.xwb hos_001_flo.xsb hos_002_wat.xwb hos_002_wat.xsb hos_003_oka.xwb hos_003_oka.xsb hos_004_jun.xwb hos_004_jun.xsb hos_005_bok.xwb hos_005_bok.xsb hos_006_gor.xwb hos_006_gor.xsb hos_007_unv.xwb hos_007_unv.xsb hos_008_ice.xwb hos_008_ice.xsb hos_009_hol.xwb hos_009_hol.xsb hos_010_clo.xwb hos_010_clo.xsbspr.afs spr_version.bin spBase.xpr spLoad.xpr spGameN.xpr spGameW.xpr spSelcmn.xpr spModsel.xpr spModeW.xpr spChrN.xpr spChrW.xpr spChrBG1.xpr spChrBG2.xpr spChrBG4.xpr spChrBG5.xpr spChrBG6.xpr spChrBG7.xpr spStgN.xpr spStgW.xpr spLogoN.xpr spLogoW.xpr spPfileJ.xpr spPfileU.xpr spPfileF.xpr spPfileG.xpr spPfileI.xpr spPfileE.xpr spPfileC.xpr spPfileK.xpr spUpsN.xpr spUpsW.xpr spLiveN.xpr spLiveW.xpr spLvmodN.xpr spLvmodW.xpr spOption.xpr spOptrnk.xpr spOptkey.xpr spWarn.xpr spVsN.xpr spVsW.xpr spAvatar.xpr spmovie.xpr spCmdlst.xpr spZshop.xpr spAvtcm.xpr spZsicon.xpr spLvsrvN.xpr spLvsrvW.xpr spPhoto.xpr spBtRecN.xpr spBtRecW.xpr spPlypnl.xpr spTest.xprstg.afs stg_version.bin stage_MK.tpr sMK_dat.bin stage_MK2.tp sMK2_dat.bin stage_DS.tpr sDS_dat.bin stage_BO.tpr sBO_dat.bin stage_TC.tpr sTC_dat.bin stage_NY.tpr sNY_dat.bin stage_NY2.tp sNY2_dat.bin stage_TS.tpr sTS_dat.bin stage_TS2.tp sTS2_dat.bin stage_CP.tpr sCP_dat.bin stage_RN.tpr sRN_dat.bin stage_PRO.tp sPRO_dat.bin stage_KYO.tp sKYO_dat.bin stage_KYN.tp sKYN_dat.bin stage_AQU.tp sAQU_dat.bin stage_SAF.tp sSAF_dat.bin stage_BRI.tp sBRI_dat.bin stage_POL.tp sPOL_dat.bin stage_DAN.tp sDAN_dat.bin stage_RAY.tp sRAY_dat.bin stage_HEL.tp sHEL_dat.bin stage_BAB.tp sBAB_dat.bin stage_TCR.tp sTCR_dat.bin stage_KYR.tp sKYR_dat.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin dmy.bin\SOUND bgm_stream.xwb doa4_sound.xgs voice_alp_stream.xwb voice_aya_stream.xwb voice_bas_stream.xwb voice_bay_stream.xwb voice_boy_stream.xwb voice_bra_stream.xwb voice_cri_stream.xwb voice_ein_stream.xwb voice_gen_stream.xwb voice_hak_stream.xwb voice_hel_stream.xwb voice_hyt_stream.xwb voice_jan_stream.xwb voice_kas_stream.xwb voice_kor_stream.xwb voice_lei_stream.xwb voice_leo_stream.xwb voice_lis_stream.xwb voice_ryu_stream.xwb voice_spa_stream.xwb voice_sys_stream.xwb voice_tin_stream.xwb voice_tng_stream.xwb voice_zac_stream.xwb\dic ximejpmain.dic ximejpnameaddr.dic ximejpsub.dic\movie ayane.sfd doa4_usa_cm.sfd kokoro.sfd ninja_vi_hd.sfd eliot.sfd helena.sfd lisa.sfd kasumi.sfd zack.sfd hitomi.sfd leifang.sfd tina.sfd jannlee.sfd hayabusa.sfd bayman.sfd christie.sfd hayate.sfd brad.sfd bass.sfd
Almost completely cracked. From oldest to newest. http://www.youtube.com/watch?v=dA7eDwzDmfQ http://www.youtube.com/watch?v=6DqtNf5Jw7Q http://www.youtube.com/watch?v=41OY0nOLaPg http://www.youtube.com/watch?v=xz-l4-4JYNI http://www.youtube.com/watch?v=XKRzqMXzhps http://www.youtube.com/watch?v=M1iWjpl2cI8 http://www.youtube.com/watch?v=i1yddbWN-QI http://www.youtube.com/watch?v=kL1FWCcBWcI http://www.youtube.com/watch?v=B0whARnVJes http://www.youtube.com/watch?v=r4so8UDkjHo http://www.youtube.com/watch?v=0uZwDt4nKdM http://www.youtube.com/watch?v=5dA1fJZkKDM http://www.youtube.com/watch?v=RceC7jaJOzM