Dwack
Now employed at Dominoes!
** serious discussion only please **
So I began a little research into the BO xex. Trying to eventually load GSC files stored outside an .ff file.
I've located what I believe to be the main area of the xex that handles this.
He is my code to grab the names of the loaded files:
We start of with a hook to a new function that calls DbgPrint:
My code to print the names:
Result:
* Won't see this unless you have a DevKit or have UART enabled on a JTAG *
If anyone else gets bored and wants to spend a little time reversing the xex just post what you find in this thread.
So I began a little research into the BO xex. Trying to eventually load GSC files stored outside an .ff file.
I've located what I believe to be the main area of the xex that handles this.
He is my code to grab the names of the loaded files:
We start of with a hook to a new function that calls DbgPrint:
Code:
.text:8245D4C8 stwu r1, -0x80(r1)
.text:8245D4CC mr r29, r3
.text:8245D4D0 li r6, -1
.text:8245D4D4 li r5, 1
.text:8245D4D8 li r3, 0x25
.text:8245D4DC bl sub_82607FA0 # Original Code ==> mr r30, r4
.text:8245D4E0 bl sub_82286370
.text:8245D4E4 mr r31, r3
.text:8245D4E8 cmplwi cr6, r3, 0
.text:8245D4EC bne cr6, loc_8245D510
.text:8245D4F0 lis r11, ((unk_83E890EC+0x10000)@h)
.text:8245D4F4 slwi r10, r29, 4
My code to print the names:
Code:
.text:82607FA0 # =============== S U B R O U T I N E =======================================
.text:82607FA0
.text:82607FA0
.text:82607FA0 sub_82607FA0: # CODE XREF: sub_8245D4C0+1Cp
.text:82607FA0 mfspr r12, LR
.text:82607FA4 stw r12, -8(r1)
.text:82607FA8 stwu r1, -0x60(r1)
.text:82607FAC mr r30, r4 # r4 is string location
.text:82607FB0 lis r3, aCmdVsayS@h
.text:82607FB4 ori r3, r3, aCmdVsayS@l # "cmd vsay %s\n"
.text:82607FB8 bl DbgPrint
.text:82607FBC mr r4, r30
.text:82607FC0 li r3, 0x25
.text:82607FC4 addi r1, r1, 0x60
.text:82607FC8
.text:82607FC8 loc_82607FC8: # DATA XREF: .rdata:off_820C4140o
.text:82607FC8 lwz r12, -8(r1)
.text:82607FCC mtspr LR, r12
.text:82607FD0 blr
.text:82607FD0 # End of function sub_82607FA0
.text:82607FD0
.text:82607FD0 # ---------------------------------------------------------------------------
Result:
* Won't see this unless you have a DevKit or have UART enabled on a JTAG *
Code:
cmd vsay codescripts/delete.gsc
cmd vsay codescripts/struct.gsc
cmd vsay maps/mp/_destructible.gsc
cmd vsay maps/mp/_utility.gsc
cmd vsay common_scripts/utility.gsc
cmd vsay maps/mp/gametypes/_hud_util.gsc
cmd vsay maps/mp/_createfx.gsc
cmd vsay maps/mp/_createfxmenu.gsc
cmd vsay maps/mp/_fx.gsc
cmd vsay maps/mp/gametypes/_spawnlogic.gsc
cmd vsay maps/mp/gametypes/_callbacksetup.gsc
cmd vsay maps/mp/_audio.gsc
cmd vsay maps/mp/gametypes/_globallogic.gsc
cmd vsay maps/mp/_burnplayer.gsc
cmd vsay maps/mp/gametypes/_globallogic_player.gsc
cmd vsay maps/mp/gametypes/_hardpoints.gsc
cmd vsay maps/mp/_airsupport.gsc
cmd vsay maps/mp/gametypes/_weapons.gsc
cmd vsay maps/mp/_flashgrenades.gsc
cmd vsay maps/mp/gametypes/_globallogic_score.gsc
cmd vsay maps/mp/gametypes/_globallogic_utils.gsc
cmd vsay maps/mp/gametypes/_hud_message.gsc
cmd vsay maps/mp/_laststand.gsc
cmd vsay maps/mp/gametypes/_gameobjects.gsc
cmd vsay maps/mp/gametypes/_objpoints.gsc
cmd vsay maps/mp/gametypes/_hostmigration.gsc
cmd vsay maps/mp/gametypes/_hud.gsc
cmd vsay maps/mp/_radar.gsc
cmd vsay maps/mp/gametypes/_tweakables.gsc
cmd vsay maps/mp/_killstreakrules.gsc
cmd vsay maps/mp/_popups.gsc
cmd vsay maps/mp/gametypes/_persistence.gsc
cmd vsay maps/mp/gametypes/_class.gsc
cmd vsay maps/mp/gametypes/_customclasses.gsc
cmd vsay maps/mp/gametypes/_copycat.gsc
cmd vsay maps/mp/gametypes/_armor.gsc
cmd vsay maps/mp/gametypes/_bot.gsc
cmd vsay maps/mp/gametypes/_globallogic_ui.gsc
cmd vsay maps/mp/gametypes/_teams.gsc
cmd vsay maps/mp/gametypes/_teamset_junglemarines.gsc
cmd vsay mpbody/ordnance_disposal_mp.gsc
cmd vsay mpbody/camo_mp.gsc
cmd vsay mpbody/hardened_mp.gsc
cmd vsay mpbody/standard_mp.gsc
cmd vsay mpbody/utility_mp.gsc
cmd vsay mphead/head_armor_mp.gsc
cmd vsay mphead/head_flak_mp.gsc
cmd vsay mphead/head_camo_mp.gsc
cmd vsay mphead/head_standard_mp.gsc
cmd vsay mphead/head_utility_mp.gsc
cmd vsay maps/mp/gametypes/_teamset_urbanspecops.gsc
cmd vsay maps/mp/gametypes/_teamset_winterspecops.gsc
cmd vsay maps/mp/gametypes/_teamset_cubans.gsc
cmd vsay maps/mp/gametypes/_spectating.gsc
cmd vsay maps/mp/gametypes/_pregame.gsc
cmd vsay maps/mp/gametypes/_spawning.gsc
cmd vsay maps/mp/_tacticalinsertion.gsc
cmd vsay maps/mp/_properks.gsc
cmd vsay maps/mp/gametypes/_globallogic_audio.gsc
cmd vsay maps/mp/_music.gsc
cmd vsay maps/mp/gametypes/_weaponobjects.gsc
cmd vsay maps/mp/_satchel_charge.gsc
cmd vsay maps/mp/_decoy.gsc
cmd vsay maps/mp/_entityheadicons.gsc
cmd vsay maps/mp/gametypes/_missions.gsc
cmd vsay maps/mp/gametypes/_rank.gsc
cmd vsay maps/mp/_medals.gsc
cmd vsay maps/mp/_challenges.gsc
cmd vsay maps/mp/_vehicles.gsc
cmd vsay maps/mp/_scrambler.gsc
cmd vsay maps/mp/gametypes/_damagefeedback.gsc
cmd vsay maps/mp/_acousticsensor.gsc
cmd vsay maps/mp/_cameraspike.gsc
cmd vsay maps/mp/_ballistic_knife.gsc
cmd vsay maps/mp/_rcbomb.gsc
cmd vsay maps/mp/_treadfx.gsc
cmd vsay maps/mp/gametypes/_shellshock.gsc
cmd vsay maps/mp/gametypes/_gametype_variants.gsc
cmd vsay maps/mp/gametypes/_gv_actions.gsc
cmd vsay maps/mp/gametypes/_wager.gsc
cmd vsay maps/mp/_spyplane.gsc
cmd vsay maps/mp/_tabun.gsc
cmd vsay maps/mp/_dogs.gsc
cmd vsay maps/mp/gametypes/_battlechatter_mp.gsc
cmd vsay maps/mp/_smokegrenade.gsc
cmd vsay maps/mp/_heatseekingmissile.gsc
cmd vsay maps/mp/_explosive_bolt.gsc
cmd vsay maps/mp/_sticky_grenade.gsc
cmd vsay maps/mp/_flamethrower_plight.gsc
cmd vsay maps/mp/_tvguidedmissile.gsc
cmd vsay maps/mp/_flare.gsc
cmd vsay maps/mp/_helicopter.gsc
cmd vsay maps/mp/_airstrike.gsc
cmd vsay maps/mp/_napalm.gsc
cmd vsay maps/mp/_artillery.gsc
cmd vsay maps/mp/_mortar.gsc
cmd vsay maps/mp/_helicopter_player.gsc
cmd vsay maps/mp/gametypes/_supplydrop.gsc
cmd vsay maps/mp/_turret_killstreak.gsc
cmd vsay maps/mp/_mgturret.gsc
cmd vsay maps/mp/gametypes/_killstreak_weapons.gsc
cmd vsay maps/mp/_gamerep.gsc
cmd vsay maps/mp/gametypes/_globallogic_spawn.gsc
cmd vsay maps/mp/gametypes/_globallogic_defaults.gsc
cmd vsay maps/mp/gametypes/_globallogic_vehicle.gsc
cmd vsay maps/mp/_demo.gsc
cmd vsay maps/mp/gametypes/_killcam.gsc
cmd vsay maps/mp/_tutorial.gsc
cmd vsay maps/mp/gametypes/_deathicons.gsc
cmd vsay maps/mp/_busing.gsc
cmd vsay maps/mp/_gameadvertisement.gsc
cmd vsay maps/mp/_pc.gsc
cmd vsay maps/mp/_clientflags.gsc
cmd vsay maps/mp/gametypes/_menus.gsc
cmd vsay maps/mp/gametypes/_serversettings.gsc
cmd vsay maps/mp/gametypes/_clientids.gsc
cmd vsay maps/mp/gametypes/_scoreboard.gsc
cmd vsay maps/mp/gametypes/_healthoverlay.gsc
cmd vsay maps/mp/_serverfaceanim_mp.gsc
cmd vsay maps/mp/gametypes/_friendicons.gsc
cmd vsay maps/mp/gametypes/_globallogic_actor.gsc
cmd vsay maps/mp/animscripts/dog_combat.gsc
cmd vsay maps/mp/animscripts/shared.gsc
cmd vsay maps/mp/animscripts/utility.gsc
cmd vsay maps/mp/animscripts/dog_stop.gsc
cmd vsay maps/mp/animscripts/dog_death.gsc
cmd vsay maps/mp/animscripts/dog_init.gsc
cmd vsay maps/mp/animscripts/dog_move.gsc
cmd vsay maps/mp/animscripts/dog_pain.gsc
cmd vsay maps/mp/animscripts/dog_flashed.gsc
cmd vsay maps/mp/animscripts/dog_jump.gsc
cmd vsay maps/mp/animscripts/dog_turn.gsc
cmd vsay maps/mp/gametypes/tdm.gsc
cmd vsay maps/mp/mp_array.gsc
cmd vsay maps/mp/mp_array_fx.gsc
cmd vsay maps/mp/createfx/mp_array_fx.gsc
cmd vsay maps/mp/createart/mp_array_art.gsc
cmd vsay maps/mp/_load.gsc
cmd vsay maps/mp/_deployable_weapons.gsc
cmd vsay maps/mp/_minefields.gsc
cmd vsay maps/mp/_rotating_object.gsc
cmd vsay maps/mp/_shutter.gsc
cmd vsay maps/mp/_elevator.gsc
cmd vsay maps/mp/_interactive_objects.gsc
cmd vsay maps/mp/_lights.gsc
cmd vsay maps/mp/_art.gsc
cmd vsay maps/mp/_global_fx.gsc
cmd vsay maps/mp/animscripts/traverse/shared.gsc
cmd vsay maps/mp/_compass.gsc
cmd vsay maps/mp/mp_array_amb.gsc
cmd vsay maps/mp/_ambientpackage.gsc
cmd vsay maps/mp/animscripts/traverse/jump_down_40.gsc
cmd vsay maps/mp/animscripts/traverse/mantle_on_40.gsc
cmd vsay maps/mp/animscripts/traverse/mantle_over_40.gsc
cmd vsay animtrees/mp_vehicles.atr
cmd vsay animtrees/fxanim_props.atr
cmd vsay animtrees/multiplayer.atr
cmd vsay codescripts/delete.gsc
cmd vsay codescripts/struct.gsc
cmd vsay clientscripts/mp/_callbacks.csc
cmd vsay clientscripts/mp/_utility.csc
cmd vsay clientscripts/mp/_utility_code.csc
cmd vsay clientscripts/mp/_vehicle.csc
cmd vsay clientscripts/mp/_rcbomb.csc
cmd vsay clientscripts/mp/_rewindobjects.csc
cmd vsay clientscripts/mp/_plane.csc
cmd vsay clientscripts/mp/_airsupport.csc
cmd vsay clientscripts/mp/_airstrike.csc
cmd vsay clientscripts/mp/_fx.csc
cmd vsay clientscripts/mp/_lights.csc
cmd vsay clientscripts/mp/_players.csc
cmd vsay clientscripts/_filter.csc
cmd vsay clientscripts/mp/_acousticsensor.csc
cmd vsay clientscripts/mp/_ambient.csc
cmd vsay clientscripts/mp/_rotating_object.csc
cmd vsay clientscripts/mp/_destructible.csc
cmd vsay clientscripts/mp/_explode.csc
cmd vsay clientscripts/mp/_cameraspike.csc
cmd vsay clientscripts/mp/_explosive_bolt.csc
cmd vsay clientscripts/mp/_sticky_grenade.csc
cmd vsay clientscripts/mp/_decoy.csc
cmd vsay clientscripts/mp/_satchel_charge.csc
cmd vsay clientscripts/mp/_claymore.csc
cmd vsay clientscripts/mp/_treadfx.csc
cmd vsay clientscripts/mp/_helicopter.csc
cmd vsay clientscripts/mp/_helicopter_sounds.csc
cmd vsay clientscripts/mp/_music.csc
cmd vsay clientscripts/mp/_audio.csc
cmd vsay clientscripts/mp/_ambientpackage.csc
cmd vsay clientscripts/mp/_dogs.csc
cmd vsay clientscripts/mp/_burnplayer.csc
cmd vsay clientscripts/mp/_clientfaceanim_mp.csc
cmd vsay clientscripts/mp/_face_utility_mp.csc
cmd vsay clientscripts/mp/_footsteps.csc
cmd vsay clientscripts/mp/mp_array.csc
cmd vsay clientscripts/mp/_teamset_winterspecops.csc
cmd vsay clientscripts/mp/_load.csc
cmd vsay clientscripts/mp/_clientflags.csc
cmd vsay clientscripts/mp/_global_fx.csc
cmd vsay clientscripts/mp/_busing.csc
cmd vsay clientscripts/mp/_ctf.csc
cmd vsay clientscripts/mp/_tacticalinsertion.csc
cmd vsay clientscripts/mp/_scrambler.csc
cmd vsay clientscripts/mp/_flamethrower_plight.csc
cmd vsay clientscripts/mp/_helicopter_player.csc
cmd vsay clientscripts/mp/mp_array_fx.csc
cmd vsay clientscripts/mp/createfx/mp_array_fx.csc
cmd vsay clientscripts/mp/mp_array_amb.csc
cmd vsay animtrees/multiplayer.atr
If anyone else gets bored and wants to spend a little time reversing the xex just post what you find in this thread.