Ultimate Soccer Manager 98 is a simulation game by Sierra that lets you manage your club's team, training, tactics, finances etc.
Objectives
- Used Emulator: Bizhawk 2.11.1 (DOSBox-X core)
- Uses hardest difficulty
- Heavy luck manipulation
- Genre: Simulation, Sports
The run aims to complete one season while reaching 1st place in the league, to trigger the victory screen. It does so by using the instant match feature over and over while manipulating favorable outcomes.
About the run
This is one of my childhood games that I spent quite a few hours playing. I recently managed to get the game running on DOSBox-X by turning off hardware-acceleration both in dxdiag (DirectX Diagnostic Tool) for Sounds as well as in Control Panel → System → Performance → Graphics. This fixed the game sometimes hanging up as well as the cursor glitching out, causing garbled mess to get rendered on the screen in addition to inaccurate lag frames. The cursor is still black in some parts of the game but I think that is negligible.
Since I got the game running, I was intrigued to re-play it and did some testing. I was also intrigued to finally get Windows 95 set up on Bizhawk so I could do some savestate testing with the game to figure out how the match results are determined. I posted the result of my testing
here. As I explained, the result for the upcoming match can be changed by certain actions such as swapping players' positions, reading the newspaper or looking at your voice mails amongst other things.
Manipulating the match result to your favor is not trivial. Unless you are playing a top-tier club, it takes quite a bit of retrying (or savescumming) to get a favorable result most of the time. It seems the luck algorithm punishes you a lot if players are in a bad position (such as having someone in the goal who is not a goalkeeper) in addition to minor factors such as the fitness stat, your players' the opponent players' stats, the strategic choices your opponent and your team are using (passing vs. long ball, offensive vs. defensive play etc.).
I got away with swapping just a handful of players in the beginning and then using the newspaper and the voice mails for the remainder of the season. As it turns out, manipulating luck could be done fairly easily and efficiently: Before a match, usually you have to advance time 1 to 3 times - the match result would be different depending if you read the newspaper/look at your voice mail on the 1st or 2nd or 3rd... time period. You can mix up these things, so you can for example look at your newspaper on the 1st and 2nd time period and look at your voice mail on the 3rd to get a unique outcome. Usually, 80-90% of the time, the match would result in a loss, but there were often enough options available to get the successful 10%. Sometimes I would opt for losing if I determined that winning required that you do very long sequence of actions.
If a match yielded injuries or red cards on my side, it wasn't of any use since that means I'd have to replace players and I didn't want to lose time by visiting the team selection screen again. I also never visited the team training screen. Having the assist trainer set up an automatic training program could manipulate luck, but it takes a bit longer than simply looking at the newspaper one or two times so it wasn't considered. Player stats depletion is very slow so I got away with never training my team.
In the last third of the remaining matches, I took a much closer look at my players' yellow cards and at the runner-ups in the league table. Each yellow card would give a player 3 penalty points and accumulating 21 would give them a 2-match ban, so I had to make sure that no player got close to reaching that number. I figured that I should not only try to keep winning, but also try to make the runner-ups lose or get a draw so they don't catch up too quickly. At about 5 to 6 matches remaining, it was possible to just play the remaining matches without any more manipulating to successfully win the season.
FC Twente in the Dutch KPNT league was chosen because it was the best club in its league that didn't qualify for any European Cup games. The thing is, the game is pretty intransparent about how it determines whether a team is playing in any special cup (such as the European Cup). Such games would sometimes only show up on the fixture list later on, as you keep playing. The best case scenario: you choose a team that has 34 league matches and 1 cup qualifyer that you intentionally lose. In testing, Juventus - one of the best Italian clubs - met this criteria but when I started TASing, for some reason I was entered into 6 group matches automatically. I then did testing again, and got 6 group matches again... I'm not sure how I got the 34 + 1 matches with Juventus before. But I decided to solve this issue by choosing a different club. Top Dutch clubs like Ajax would get additional games such as European Cup games, whereas FC Twente only gets one mandatory Amstel Cup match. I determined that manipulating wins with this club was easy to do so I chose this club for my TAS.
This project was very, veeery frustrating to work on with Bizhawk 2.11 since TAStudio would
crash every 2 minutes in some crucial parts, such as during screen transitions or when game files are being installed. It almost made me quit the project, but when I tried Bizhawk 2.11.1, there were no more crashes and I could TAS the game for three days straight without problems!
Also, I almost could not submit the run because the Windows 95 installation movie
didn't sync anymore, likely a side-effect of the 2.11 crashes I experienced while working on it... But I was able to successfully resync the installation movies on Bizhawk 2.11.1.
Game version
There is the original USM 97-98 version and the updated 98-99 version. The latter updated the clubs and player rosters, added the Dutch and Spanish leagues and fixed a few bugs. Since I don't know of any bugs that would have been useful for this run, I opted for using the more recent game version (2.00).
Difficulty setting
This TAS uses Coach Mode on Real Hard difficulty. The game doesn't make it very clear what the difficulty entails. Perhaps you get a game-over for bad performance faster, the AI is more aggressive, you don't get to give players too high wages or don't get to buy just any player you want. Or perhaps the match simulation is more unforgiving. Either way, I hope that I made it more impressive choosing the hardest option.
Verification Steps
If you see any ROM hash mismatch errors, it is probably safe to ignore them - these are the result of resyncing the movies and migrating from Bizhawk 2.11 to 2.11.1.
1) Create w95_500MB.hdd
Make sure to have these files in the same directory. These are also mentioned in the Windows 95 tab
here.
| Filename | Filesize | MD5 hash |
|---|
| Windows 95B OEM (000-45234)(Microsoft Corporation)(July 1996).iso | 626,272,256 bytes | 5c3188e4685d19a98defc011395aaa6b |
| windows9x-utilities.iso | 17,725,440 bytes | 6b51f465a5b7fed54154f52930261544 |
| w95install.conf | | |
Then, load this XML in Bizhawk 2.11.1:
<BizHawk-XMLGame System="DOS" Name="w95">
<LoadAssets>
<Asset FileName=".\Windows 95B OEM (000-45234)(Microsoft Corporation)(July 1996).iso" />
<Asset FileName=".\windows9x-utilities.iso" />
<Asset FileName=".\w95install.conf" />
</LoadAssets>
</BizHawk-XMLGame>
Then, load
this BK2. At the last frame, export HDD:
| Filename | Filesize | MD5 hash |
|---|
| w95_500mb.hdd | (todo) | (the hash will be added eventually) |
2) Find the game ISO
Find the game ISO
| Filename | Filesize | MD5 hash |
|---|
| USM98-99.ISO | 226 MB | (the hash will be added eventually) |
3) Verification Movie
Load an XML file in Bizhawk 2.11.1 with this content:
<BizHawk-XMLGame System="DOS" Name="USM 98 verification file">
<LoadAssets>
<Asset FileName=".\w95_500mb.hdd" />
<Asset FileName=".\USM98-99.ISO" />
</LoadAssets>
</BizHawk-XMLGame>
| Filename | Filesize | MD5 hash |
|---|
| USM98_play.hdd | (todo) | (file hash will be added here later) |
What the verification movie does:
- Inserts "c:/sierra/usm98-99.exe" behind "run=" in WIN.INI, so the game runs as soon as Windows boots up.
- Turn off hardware acceleration in Control Panel → System → Performance → Graphics (fixes mouse cursor glitching up)
- Set Display to 256 colors and 640x480
- Turn off hardware acceleration in dxdiag → Sounds (fixes occasional softlock)
- Installs the game
4) TAS Movie
Load this XML in Bizhawk 2.11.1:
<BizHawk-XMLGame System="DOS" Name="Ultimate Soccer Manager 98-99">
<LoadAssets>
<Asset FileName=".\USM98_play.hdd" />
<Asset FileName=".\USM98-99.ISO" />
</LoadAssets>
</BizHawk-XMLGame>
Then play either of these two movies:
- load the bk2 movie file from this submission
- load this bk2 with extended input so honorable mentions are shown after the initial victory screen
I verified the steps and the movies should sync.
Note about extended input: The submitted run only reaches the victory screen, whereas the above linked extended input bk2 advances the screen every 5 seconds or so to show all the honorable mentions. Feel free choosing what should be used for the publication.
Note about mouse cursor when movie ends: When the submitted bk2 movie ends, the user re-gains control over the mouse which will cause the mouse cursor to go to places unintended. Please make sure during encoding to extend the input or set mouse movement to sensitivity 0% so the mouse will not move until the end of the encode.
Links
Thanks
Dimon12321 for listening to my complaints in the Running Windows games in DOSBox-X forum topic.