Decompile firingrange ROM segment
This commit is contained in:
parent
74630d5af4
commit
86307c5053
|
@ -2014,6 +2014,7 @@ f0068491f441172310f2b6868c03739d build/jap-final/files/bgdata/bg_wax_padsZ
|
|||
ea5a2ff4e5e0a68822f62feff2c40af4 build/jap-final/files/bgdata/bg_wax_tilesZ
|
||||
d41d8cd98f00b204e9800998ecf8427e build/jap-final/files/ob/ob_mid.seg
|
||||
39ef58f5babf5d619bec8b2629c26bc8 build/jap-final/ucode/boot.bin
|
||||
333e8b4f6fe9dc9b59cf3e61b4e0c224 build/jap-final/ucode/firingrange.bin
|
||||
bd6e5fc360d5e0c35ea3605e2514f205 build/jap-final/ucode/game.bin
|
||||
22d5e92bffcc67b222cf3697e96106f6 build/jap-final/ucode/gamedata.bin
|
||||
843285fdc0e80a77576eeb73940d2fd3 build/jap-final/ucode/inflate.bin
|
||||
|
|
|
@ -2012,6 +2012,7 @@ f0068491f441172310f2b6868c03739d build/ntsc-1.0/files/bgdata/bg_wax_padsZ
|
|||
ea5a2ff4e5e0a68822f62feff2c40af4 build/ntsc-1.0/files/bgdata/bg_wax_tilesZ
|
||||
d41d8cd98f00b204e9800998ecf8427e build/ntsc-1.0/files/ob/ob_mid.seg
|
||||
402561223a33f48461e302e1cca12129 build/ntsc-1.0/ucode/boot.bin
|
||||
cb373c94109322d081a57b142fdd9999 build/ntsc-1.0/ucode/firingrange.bin
|
||||
5181a0d11cf8f24370a3f2d3b29e522e build/ntsc-1.0/ucode/game.bin
|
||||
b21679a1b2dabd721bc4afee11bf5266 build/ntsc-1.0/ucode/gamedata.bin
|
||||
843285fdc0e80a77576eeb73940d2fd3 build/ntsc-1.0/ucode/inflate.bin
|
||||
|
|
|
@ -2011,6 +2011,7 @@ c6f0dd6193685637763d426dfce837fb build/ntsc-beta/files/bgdata/bg_wax_padsZ
|
|||
ea5a2ff4e5e0a68822f62feff2c40af4 build/ntsc-beta/files/bgdata/bg_wax_tilesZ
|
||||
d41d8cd98f00b204e9800998ecf8427e build/ntsc-beta/files/ob/ob_mid.seg
|
||||
74cb41628ed5784a8ad48c6398b0ce83 build/ntsc-beta/ucode/boot.bin
|
||||
a12b5437510403bb09b3cceb45dd2a10 build/ntsc-beta/ucode/firingrange.bin
|
||||
daae19f7ce11d3f3e1f98d543ad856f5 build/ntsc-beta/ucode/game.bin
|
||||
cab47b8c30b1be608c1c5c1db08342de build/ntsc-beta/ucode/gamedata.bin
|
||||
d13f25c1c59fb96346ac23301ccd9d7d build/ntsc-beta/ucode/inflate.bin
|
||||
|
|
|
@ -2012,6 +2012,7 @@ f0068491f441172310f2b6868c03739d build/ntsc-final/files/bgdata/bg_wax_padsZ
|
|||
ea5a2ff4e5e0a68822f62feff2c40af4 build/ntsc-final/files/bgdata/bg_wax_tilesZ
|
||||
d41d8cd98f00b204e9800998ecf8427e build/ntsc-final/files/ob/ob_mid.seg
|
||||
2a1aa1eff3cdfe5dc3e91a2e773a55b9 build/ntsc-final/ucode/boot.bin
|
||||
cb373c94109322d081a57b142fdd9999 build/ntsc-final/ucode/firingrange.bin
|
||||
ed0462324d1287de21611707172d316a build/ntsc-final/ucode/game.bin
|
||||
11c9c4c2737f66e7312949909b894dcc build/ntsc-final/ucode/gamedata.bin
|
||||
843285fdc0e80a77576eeb73940d2fd3 build/ntsc-final/ucode/inflate.bin
|
||||
|
|
|
@ -2012,6 +2012,7 @@ f0068491f441172310f2b6868c03739d build/pal-beta/files/bgdata/bg_wax_padsZ
|
|||
ea5a2ff4e5e0a68822f62feff2c40af4 build/pal-beta/files/bgdata/bg_wax_tilesZ
|
||||
d41d8cd98f00b204e9800998ecf8427e build/pal-beta/files/ob/ob_mid.seg
|
||||
541e374b58a36056f73ad02a2bbb5f75 build/pal-beta/ucode/boot.bin
|
||||
333e8b4f6fe9dc9b59cf3e61b4e0c224 build/pal-beta/ucode/firingrange.bin
|
||||
ad5835b91b7e252ef8f4a421a44eb12b build/pal-beta/ucode/game.bin
|
||||
bca5001a5dd0ef9aab24ba085f27eb40 build/pal-beta/ucode/gamedata.bin
|
||||
843285fdc0e80a77576eeb73940d2fd3 build/pal-beta/ucode/inflate.bin
|
||||
|
|
|
@ -2012,6 +2012,7 @@ f0068491f441172310f2b6868c03739d build/pal-final/files/bgdata/bg_wax_padsZ
|
|||
ea5a2ff4e5e0a68822f62feff2c40af4 build/pal-final/files/bgdata/bg_wax_tilesZ
|
||||
d41d8cd98f00b204e9800998ecf8427e build/pal-final/files/ob/ob_mid.seg
|
||||
7c4233976802db99f90c6c0fede1080b build/pal-final/ucode/boot.bin
|
||||
333e8b4f6fe9dc9b59cf3e61b4e0c224 build/pal-final/ucode/firingrange.bin
|
||||
4e506821044251aecc10ec332389c576 build/pal-final/ucode/game.bin
|
||||
1c49c171e829a5407f0ae5fd28a123cd build/pal-final/ucode/gamedata.bin
|
||||
843285fdc0e80a77576eeb73940d2fd3 build/pal-final/ucode/inflate.bin
|
||||
|
|
9
ld/pd.ld
9
ld/pd.ld
|
@ -78,8 +78,8 @@ SECTIONS
|
|||
_checksum7f15c9ac = 0x2c7b42f8;
|
||||
#endif
|
||||
|
||||
_frdataSegmentRomStart = 0x007e9d20;
|
||||
_frdataSegmentRomEnd = 0x007eb270;
|
||||
_firingrangeSegmentRomStart = 0x007e9d20;
|
||||
_firingrangeSegmentRomEnd = 0x007eb270;
|
||||
|
||||
_antipiracyUncloakWriteAddress = 0x7002a324;
|
||||
|
||||
|
@ -126,6 +126,11 @@ SECTIONS
|
|||
}
|
||||
__rompos += SIZEOF(.mpconfigs);
|
||||
|
||||
.firingrange : AT(__rompos) {
|
||||
build/ROMID/firingrange/firingrange.o (.data);
|
||||
}
|
||||
__rompos += SIZEOF(.firingrange);
|
||||
|
||||
MPSTRINGS(E)
|
||||
MPSTRINGS(J)
|
||||
MPSTRINGS(P)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -837,7 +837,7 @@ char *frMenuTextTargetsDestroyedValue(struct menuitem *item)
|
|||
char *frMenuTextAccuracyValue(struct menuitem *item)
|
||||
{
|
||||
struct frdata *frdata = getFiringRangeData();
|
||||
f32 totalhits = (frdata->numhitstype4 + frdata->numhitstype1 + frdata->numhitstype2 + frdata->numhitstype3) * 100.0f;
|
||||
f32 totalhits = (frdata->numhitsring3 + frdata->numhitsbullseye + frdata->numhitsring1 + frdata->numhitsring2) * 100.0f;
|
||||
f32 accuracy = 0;
|
||||
|
||||
if (frdata->numshots) {
|
||||
|
|
|
@ -48,10 +48,10 @@
|
|||
|
||||
#define FRSCRIPTINDEX_WEAPONS 0x00
|
||||
#define FRSCRIPTINDEX_TARGETS 0x22
|
||||
#define FRSCRIPTINDEX_MAINS 0x71
|
||||
#define FRSCRIPTINDEX_HELP 0x71
|
||||
|
||||
extern u8 *_frdataSegmentRomStart;
|
||||
extern u8 *_frdataSegmentRomEnd;
|
||||
extern u8 *_firingrangeSegmentRomStart;
|
||||
extern u8 *_firingrangeSegmentRomEnd;
|
||||
|
||||
u16 *g_FrScriptOffsets = NULL;
|
||||
u8 g_FrIsValidWeapon = false;
|
||||
|
@ -422,10 +422,10 @@ void func0f19d4ec(void)
|
|||
g_FrIsValidWeapon = false;
|
||||
g_FrRomData = NULL;
|
||||
|
||||
g_FiringRangeData.mainscriptindex = 0;
|
||||
g_FiringRangeData.scriptoffset = 0;
|
||||
g_FiringRangeData.scriptenabled = false;
|
||||
g_FiringRangeData.scriptsleep = 0;
|
||||
g_FiringRangeData.helpscriptindex = 0;
|
||||
g_FiringRangeData.helpscriptoffset = 0;
|
||||
g_FiringRangeData.helpscriptenabled = false;
|
||||
g_FiringRangeData.helpscriptsleep = 0;
|
||||
g_FiringRangeData.unk464 = 0;
|
||||
g_FiringRangeData.numtargets = 0;
|
||||
|
||||
|
@ -442,7 +442,7 @@ void *frLoadRomData(u32 len)
|
|||
g_FrRomData = malloc(ALIGN16(len), 4);
|
||||
|
||||
if (g_FrRomData) {
|
||||
return func0000d488(g_FrRomData, &_frdataSegmentRomStart, len);
|
||||
return func0000d488(g_FrRomData, &_firingrangeSegmentRomStart, len);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -528,10 +528,10 @@ void frInitDefaults(void)
|
|||
g_FiringRangeData.numhitsring2 = 0;
|
||||
g_FiringRangeData.numhitsring1 = 0;
|
||||
g_FiringRangeData.numhitsbullseye = 0;
|
||||
g_FiringRangeData.mainscriptindex = 0;
|
||||
g_FiringRangeData.scriptoffset = 0;
|
||||
g_FiringRangeData.scriptenabled = false;
|
||||
g_FiringRangeData.scriptsleep = 0;
|
||||
g_FiringRangeData.helpscriptindex = 0;
|
||||
g_FiringRangeData.helpscriptoffset = 0;
|
||||
g_FiringRangeData.helpscriptenabled = false;
|
||||
g_FiringRangeData.helpscriptsleep = 0;
|
||||
g_FiringRangeData.proxyendtimer = 0;
|
||||
g_FiringRangeData.unk465_04 = false;
|
||||
g_FiringRangeData.ammohasgrace = true;
|
||||
|
@ -962,7 +962,7 @@ glabel var7f1b93ec
|
|||
// if (scriptindex >= FRSCRIPTINDEX_WEAPONS && scriptindex < FRSCRIPTINDEX_TARGETS) {
|
||||
// u8 *script = &g_FrRomData[g_FrScriptOffsets[scriptindex]];
|
||||
// s32 mult = 1;
|
||||
// s32 end;
|
||||
// s32 start;
|
||||
// s32 capacity;
|
||||
// s32 index;
|
||||
// u8 *subscript;
|
||||
|
@ -973,7 +973,7 @@ glabel var7f1b93ec
|
|||
// g_FiringRangeData.unk470 = script[offset + 1];
|
||||
// offset += 2;
|
||||
// break;
|
||||
// case FRCMD_SETUPTARGET: // f19d9d0
|
||||
// case FRCMD_ADDTARGET: // f19d9d0
|
||||
// if (!frIsDifficulty(script[offset + 4])) {
|
||||
// offset += 5;
|
||||
// break;
|
||||
|
@ -1060,33 +1060,33 @@ glabel var7f1b93ec
|
|||
// g_FiringRangeData.goaltargets = script[offset + 1 + g_FiringRangeData.difficulty];
|
||||
// offset += 4;
|
||||
// break;
|
||||
// case FRCMD_SETMAINSCRIPT: // f19dd0c
|
||||
// g_FiringRangeData.mainscriptindex = script[offset + 1];
|
||||
// g_FiringRangeData.scriptenabled = true;
|
||||
// index = FRSCRIPTINDEX_MAINS + g_FiringRangeData.mainscriptindex;
|
||||
// case FRCMD_SETHELPSCRIPT: // f19dd0c
|
||||
// g_FiringRangeData.helpscriptindex = script[offset + 1];
|
||||
// g_FiringRangeData.helpscriptenabled = true;
|
||||
// index = FRSCRIPTINDEX_HELP + g_FiringRangeData.helpscriptindex;
|
||||
// subscript = &g_FrRomData[g_FrScriptOffsets[index]];
|
||||
// offset += 2;
|
||||
//
|
||||
// // d48
|
||||
// if (g_FiringRangeData.difficulty == FRDIFFICULTY_BRONZE) {
|
||||
// end = FRCMD_ENDIFBRONZE;
|
||||
// start = FRCMD_IFBRONZE;
|
||||
// } else /*d58*/ if (g_FiringRangeData.difficulty == FRDIFFICULTY_SILVER) {
|
||||
// end = FRCMD_ENDIFSILVER;
|
||||
// start = FRCMD_IFSILVER;
|
||||
// } else /*d6c*/ if (g_FiringRangeData.difficulty == FRDIFFICULTY_GOLD) {
|
||||
// end = FRCMD_ENDIFGOLD;
|
||||
// start = FRCMD_IFGOLD;
|
||||
// }
|
||||
//
|
||||
// // d7c
|
||||
// g_FiringRangeData.scriptoffset = 0;
|
||||
// g_FiringRangeData.helpscriptoffset = 0;
|
||||
//
|
||||
// while (subscript[g_FiringRangeData.scriptoffset++] != end);
|
||||
// while (subscript[g_FiringRangeData.helpscriptoffset++] != start);
|
||||
//
|
||||
// if (subscript[g_FiringRangeData.scriptoffset] >= FRCMD_ENDIFBRONZE) {
|
||||
// g_FiringRangeData.scriptoffset++;
|
||||
// if (subscript[g_FiringRangeData.helpscriptoffset] >= FRCMD_IFBRONZE) {
|
||||
// g_FiringRangeData.helpscriptoffset++;
|
||||
// }
|
||||
//
|
||||
// if (subscript[g_FiringRangeData.scriptoffset] >= FRCMD_ENDIFBRONZE) {
|
||||
// g_FiringRangeData.scriptoffset++;
|
||||
// if (subscript[g_FiringRangeData.helpscriptoffset] >= FRCMD_IFBRONZE) {
|
||||
// g_FiringRangeData.helpscriptoffset++;
|
||||
// }
|
||||
//
|
||||
// break;
|
||||
|
@ -1138,43 +1138,43 @@ char *frGetInstructionalText(u32 index)
|
|||
return langGet(textid);
|
||||
}
|
||||
|
||||
void frExecuteMainScript(void)
|
||||
void frExecuteHelpScript(void)
|
||||
{
|
||||
if (!g_FiringRangeData.scriptenabled || g_Vars.lvupdate240 == 0) {
|
||||
if (!g_FiringRangeData.helpscriptenabled || g_Vars.lvupdate240 == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_FiringRangeData.scriptsleep == 0) {
|
||||
s32 index = FRSCRIPTINDEX_MAINS + g_FiringRangeData.mainscriptindex;
|
||||
if (g_FiringRangeData.helpscriptsleep == 0) {
|
||||
s32 index = FRSCRIPTINDEX_HELP + g_FiringRangeData.helpscriptindex;
|
||||
u8 *script = &g_FrRomData[g_FrScriptOffsets[index]];
|
||||
u32 offset = g_FiringRangeData.scriptoffset;
|
||||
u32 offset = g_FiringRangeData.helpscriptoffset;
|
||||
|
||||
switch (script[offset]) {
|
||||
case FRCMD_END:
|
||||
case FRCMD_ENDIFBRONZE:
|
||||
case FRCMD_ENDIFSILVER:
|
||||
case FRCMD_ENDIFGOLD:
|
||||
g_FiringRangeData.scriptenabled = false;
|
||||
case FRCMD_IFBRONZE:
|
||||
case FRCMD_IFSILVER:
|
||||
case FRCMD_IFGOLD:
|
||||
g_FiringRangeData.helpscriptenabled = false;
|
||||
break;
|
||||
case FRCMD_HUDMSG:
|
||||
hudmsgCreateViaPreset(frGetInstructionalText(script[offset + 1]), HUDMSGTYPE_TRAINING);
|
||||
g_FiringRangeData.scriptoffset += 2;
|
||||
g_FiringRangeData.helpscriptoffset += 2;
|
||||
break;
|
||||
case FRCMD_WAITSECONDS:
|
||||
g_FiringRangeData.scriptsleep = script[offset + 1] * 60;
|
||||
g_FiringRangeData.scriptoffset += 2;
|
||||
g_FiringRangeData.helpscriptsleep = script[offset + 1] * 60;
|
||||
g_FiringRangeData.helpscriptoffset += 2;
|
||||
break;
|
||||
case FRCMD_WAITUNTILSHOOT:
|
||||
if (g_FiringRangeData.numshots) {
|
||||
g_FiringRangeData.scriptoffset++;
|
||||
g_FiringRangeData.helpscriptoffset++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
g_FiringRangeData.scriptsleep -= g_Vars.lvupdate240_60;
|
||||
g_FiringRangeData.helpscriptsleep -= g_Vars.lvupdate240_60;
|
||||
|
||||
if (g_FiringRangeData.scriptsleep <= 0) {
|
||||
g_FiringRangeData.scriptsleep = 0;
|
||||
if (g_FiringRangeData.helpscriptsleep <= 0) {
|
||||
g_FiringRangeData.helpscriptsleep = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1742,12 +1742,12 @@ glabel func0f19e7a8
|
|||
//{
|
||||
// // 7bc
|
||||
// if (var80088808 == false) {
|
||||
// u32 len = (u32)&_frdataSegmentRomEnd - (u32)&_frdataSegmentRomStart;
|
||||
// u32 len = (u32)&_firingrangeSegmentRomEnd - (u32)&_firingrangeSegmentRomStart;
|
||||
// u32 index = 0;
|
||||
// s32 i;
|
||||
// s32 count = 1;
|
||||
// s32 j;
|
||||
// u32 len2 = (u32)&_frdataSegmentRomEnd - (u32)&_frdataSegmentRomStart;
|
||||
// u32 len2 = (u32)&_firingrangeSegmentRomEnd - (u32)&_firingrangeSegmentRomStart;
|
||||
//
|
||||
// var80088808 = true;
|
||||
//
|
||||
|
@ -2660,7 +2660,7 @@ glabel var7f1b94e4
|
|||
.L0f19fd20:
|
||||
/* f19fd20: 8ecc0284 */ lw $t4,0x284($s6)
|
||||
/* f19fd24: 240b0001 */ addiu $t3,$zero,0x1
|
||||
/* f19fd28: 0fc677d6 */ jal frExecuteMainScript
|
||||
/* f19fd28: 0fc677d6 */ jal frExecuteHelpScript
|
||||
/* f19fd2c: ad8b1c08 */ sw $t3,0x1c08($t4)
|
||||
/* f19fd30: 92ad045a */ lbu $t5,0x45a($s5)
|
||||
/* f19fd34: 51a0004b */ beqzl $t5,.L0f19fe64
|
||||
|
|
|
@ -581,7 +581,7 @@
|
|||
#define FLOORTYPE_DIRT 7
|
||||
#define FLOORTYPE_SNOW 8
|
||||
|
||||
#define FRCMD_SETUPTARGET 0x00
|
||||
#define FRCMD_ADDTARGET 0x00
|
||||
#define FRCMD_SETNUMTARGETS 0x01
|
||||
#define FRCMD_SETGOALSCORE 0x02
|
||||
#define FRCMD_SETTIMELIMIT 0x03
|
||||
|
@ -589,7 +589,7 @@
|
|||
#define FRCMD_SETEXTRASPEED 0x05
|
||||
#define FRCMD_SETGOALACCURACY 0x06
|
||||
#define FRCMD_SETGOALTARGETS 0x07
|
||||
#define FRCMD_SETMAINSCRIPT 0x08
|
||||
#define FRCMD_SETHELPSCRIPT 0x08
|
||||
#define FRCMD_SETGRENADELIMIT 0x09
|
||||
#define FRCMD_0A 0x0a
|
||||
#define FRCMD_SETSCOREMULTIPLIER 0x0b
|
||||
|
@ -601,9 +601,9 @@
|
|||
#define FRCMD_WAITUNTILSHOOT 0x11
|
||||
#define FRCMD_WAITSECONDS 0x12
|
||||
#define FRCMD_END 0x13
|
||||
#define FRCMD_ENDIFBRONZE 0xfb
|
||||
#define FRCMD_ENDIFSILVER 0xfc
|
||||
#define FRCMD_ENDIFGOLD 0xfd
|
||||
#define FRCMD_IFBRONZE 0xfb
|
||||
#define FRCMD_IFSILVER 0xfc
|
||||
#define FRCMD_IFGOLD 0xfd
|
||||
|
||||
#define FRDIFFICULTY_BRONZE 0
|
||||
#define FRDIFFICULTY_SILVER 1
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
#define add_target(frpadnum, script, target01, flags) \
|
||||
0x00, frpadnum, script, target01, flags
|
||||
|
||||
#define set_num_targets(bronze, silver, gold) \
|
||||
0x01, bronze, silver, gold
|
||||
|
||||
#define set_goal_score(bronze, silver, gold) \
|
||||
0x02, bronze, silver, gold
|
||||
|
||||
#define set_time_limit(bronze, silver, gold) \
|
||||
0x03, bronze, silver, gold
|
||||
|
||||
#define set_ammo_limit(bronze, silver, gold) \
|
||||
0x04, bronze, silver, gold
|
||||
|
||||
#define set_extra_speed(bronze, silver, gold) \
|
||||
0x05, bronze * 10, silver * 10, gold * 10
|
||||
|
||||
#define set_goal_accuracy(bronze, silver, gold) \
|
||||
0x06, bronze, silver, gold
|
||||
|
||||
#define set_goal_targets(bronze, silver, gold) \
|
||||
0x07, bronze, silver, gold
|
||||
|
||||
#define set_help_script(script) \
|
||||
0x08, script
|
||||
|
||||
#define set_grenade_limit(bronze, silver, gold) \
|
||||
0x09, bronze, silver, gold
|
||||
|
||||
#define cmd_0a(value) \
|
||||
0x0a, value
|
||||
|
||||
#define set_score_multiplier(bronze, silver, gold) \
|
||||
0x0b, bronze, silver, gold
|
||||
|
||||
#define go_to_pad(frpadnum, unk2, seconds) \
|
||||
0x0c, frpadnum, unk2, seconds
|
||||
|
||||
#define restart() \
|
||||
0x0d
|
||||
|
||||
#define cmd_0e(seconds) \
|
||||
0x0e, seconds
|
||||
|
||||
#define rotate(angle, speed) \
|
||||
0x0f, angle, speed
|
||||
|
||||
#define hudmsg(frtextindex) \
|
||||
0x10, frtextindex
|
||||
|
||||
#define wait_until_shoot() \
|
||||
0x11
|
||||
|
||||
#define wait_seconds(seconds) \
|
||||
0x12, seconds
|
||||
|
||||
#define end() \
|
||||
0x13
|
||||
|
||||
#define if_bronze() \
|
||||
0xfb
|
||||
|
||||
#define if_silver() \
|
||||
0xfc
|
||||
|
||||
#define if_gold() \
|
||||
0xfd
|
||||
|
||||
#define start() \
|
||||
0xfe
|
||||
|
|
@ -36,7 +36,7 @@ void frExecuteWeaponScript(s32 scriptindex);
|
|||
void func0f19de24(void);
|
||||
bool frTargetIsAtScriptStart(s32 targetnum);
|
||||
char *frGetInstructionalText(u32 index);
|
||||
void frExecuteMainScript(void);
|
||||
void frExecuteHelpScript(void);
|
||||
bool frExecuteTargetScript(s32 targetnum);
|
||||
void frHideAllTargets(void);
|
||||
void frInitTargets(void);
|
||||
|
|
|
@ -5348,10 +5348,10 @@ struct frdata {
|
|||
/*0x465*/ u8 unk465_04 : 1;
|
||||
/*0x465*/ u8 ammohasgrace : 1;
|
||||
/*0x465*/ u8 unk465_06 : 2;
|
||||
/*0x466*/ u8 mainscriptindex;
|
||||
/*0x467*/ u8 scriptoffset;
|
||||
/*0x468*/ u8 scriptenabled;
|
||||
/*0x46c*/ s32 scriptsleep;
|
||||
/*0x466*/ u8 helpscriptindex;
|
||||
/*0x467*/ u8 helpscriptoffset;
|
||||
/*0x468*/ u8 helpscriptenabled;
|
||||
/*0x46c*/ s32 helpscriptsleep;
|
||||
/*0x470*/ u8 unk470;
|
||||
/*0x471*/ u8 feedbackzone;
|
||||
/*0x472*/ s8 feedbackttl;
|
||||
|
|
|
@ -36,6 +36,7 @@ def main():
|
|||
write_binary(fd, 0x7df820, get_mpstrings('F'))
|
||||
write_binary(fd, 0x7e2f20, get_mpstrings('S'))
|
||||
write_binary(fd, 0x7e6620, get_mpstrings('I'))
|
||||
write_binary(fd, 0x7e9d20, get_firingrange())
|
||||
write_binary(fd, 0x7f2388, get_fonts())
|
||||
write_binary(fd, 0x80a250, get_sfxctl())
|
||||
write_binary(fd, 0x839dd0, get_sfxtbl())
|
||||
|
@ -95,6 +96,9 @@ def get_mpconfigs():
|
|||
def get_mpstrings(lang):
|
||||
return getfilecontents(bdir() + '/ucode/mpstrings%s.bin' % lang)
|
||||
|
||||
def get_firingrange():
|
||||
return getfilecontents(bdir() + '/ucode/firingrange.bin')
|
||||
|
||||
def get_fonts():
|
||||
return getfrombaserom(0x7f2388, 0x17ec8)
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ class Extractor:
|
|||
self.extract_ucodes()
|
||||
self.extract_mpconfigs()
|
||||
self.extract_mpstrings()
|
||||
self.extract_firingrange()
|
||||
|
||||
#
|
||||
# Audio
|
||||
|
@ -151,6 +152,14 @@ class Extractor:
|
|||
addr = self.val('mpconfigs') + 0x68 * 44 + 0x3700 * index
|
||||
self.write('ucode/mpstrings%s.bin' % lang, self.rom[addr:addr+0x3700])
|
||||
|
||||
#
|
||||
# Firing Range
|
||||
#
|
||||
|
||||
def extract_firingrange(self):
|
||||
addr = self.val('firingrange')
|
||||
self.write('ucode/firingrange.bin', self.rom[addr:addr+0x1550])
|
||||
|
||||
#
|
||||
# Fonts
|
||||
#
|
||||
|
@ -249,6 +258,7 @@ class Extractor:
|
|||
'files': 0x28080,
|
||||
'gamedata': 0x39850,
|
||||
'mpconfigs': 0x7d0a40,
|
||||
'firingrange': 0x7e9d20,
|
||||
'sfxctl': 0x80a250,
|
||||
'textures': 0x01d65f40,
|
||||
},
|
||||
|
@ -257,6 +267,7 @@ class Extractor:
|
|||
'files': 0x28080,
|
||||
'gamedata': 0x39850,
|
||||
'mpconfigs': 0x7d0a40,
|
||||
'firingrange': 0x7e9d20,
|
||||
'sfxctl': 0x80a250,
|
||||
'textures': 0x01d65f40,
|
||||
},
|
||||
|
@ -265,6 +276,7 @@ class Extractor:
|
|||
'files': 0x29160,
|
||||
'gamedata': 0x30850,
|
||||
'mpconfigs': 0x785130,
|
||||
'firingrange': 0x79e410,
|
||||
'sfxctl': 0x7be940,
|
||||
'textures': 0x01d12fe0,
|
||||
},
|
||||
|
@ -273,6 +285,7 @@ class Extractor:
|
|||
'files': 0x28910,
|
||||
'gamedata': 0x39850,
|
||||
'mpconfigs': 0x7bc240,
|
||||
'firingrange': 0x7d5520,
|
||||
'sfxctl': 0x7f87e0,
|
||||
'textures': 0x01d5ca20,
|
||||
},
|
||||
|
@ -281,6 +294,7 @@ class Extractor:
|
|||
'files': 0x29b90,
|
||||
'gamedata': 0x39850,
|
||||
'mpconfigs': 0x7bc240,
|
||||
'firingrange': 0x7d5520,
|
||||
'sfxctl': 0x7f87e0,
|
||||
'textures': 0x01d5bb50,
|
||||
},
|
||||
|
@ -289,6 +303,7 @@ class Extractor:
|
|||
'files': 0x28800,
|
||||
'gamedata': 0x39850,
|
||||
'mpconfigs': 0x7c00d0,
|
||||
'firingrange': 0x7d93b0,
|
||||
'sfxctl': 0x7fc670,
|
||||
'textures': 0x01d61f90,
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue