SWBF2 XBOX Development FAQ - Gametoast/Documentation GitHub Wiki

You can run/test SWBF2 mods on either modded XBOX 360, modded Original XBOX hardware or the XEMU emulator.

XBOX specific Porting tutorials can be found on this page

RGH XBOX 360 Notes

  • RGH XBOX 360 systems don't always start up quickly due to the nature of how the RGH works.
  • Older (Phat) RGH 360 models tend to have very loud fan noise, you'll probably be happier with a slim Xbox 360.

Is it easier to develop against a modded OG Xbox, RGH Modded Xbox 360 or XEMU?

For this it depends on which part of development you are doing.

  • If you're trying to debug a loadscreen hang/crash then OG XBOX hardware is easier because XBOX 360 RGH systems do not restart as quickly.
  • If you are just tweaking some things then it can be easier to develop against RGH 360 using a USB stick (because you don't need to recycle console power to apply your changes; simply press the Xbox button to return to the 360 dash, remove USB drive, place new files, re-insert USB drive, re-load game through xexmenu).
  • XEMU is easier to develop against when creating an entirely new ISO (you can use extract-xiso to create the image); but you can also develop an installer if you FTP the files to the XEMU HDD.
  • You can also boot an image with XEMU and FTP stuff to the HDD like in this video.

How can I know how far my mission script is getting?

This can be tough, here are some tips:

  • If the mission lua isn't in the mission.lvl file then you will see an immediate crash.
  • Logic also states that the longer the loadscreen is up, the further it gets.
  • You can try showing a custom load screen at different parts of your script; this isn't foolproof, but it can help narrow things down.

How do I debug my loadscreen hang?

Loadscreen hangs often occur due to running out of memory. Try the following:

  • Check your world lvl size against this list, try to get your map lvl size in the appropriate range for XBOX.
  • Reduce texture sizes. Max size texture on XBOX should typically be 512x512, you may want to make an exception in certain circumstances. In practice, 256x256 is fine.
  • Use the memory pool tuning technique here
  • Reduce Model memory. Either by modifying the models or by removing them from your map.
  • Reduce size/complexity of your terrain by flattening out parts the player is unlikely to see.
  • Load fewer units and vehicles to see if you can get your mod to load.
  • Reduce Unit count (when calling SetupTeams() )

How do I debug my loadscreen crash?

You will often see the 'Disc is Dirty or Damaged' error message appear when developing mods targeting XBOX. Usually this occurs when calling ReadDataFile() on a file that isn't present or with a .lvl file that doesn't contain the named asset or something associated with that asset. Use the loadscreen tip from above to narrow down the crash.