Custom Start Date Patch / ArtMoney Development Thread
Posted: Wed Aug 17, 2011 8:02 pm
It seems I have been able to change the start date in EHM 2007. Having changed the start year to 2010 I've been able to successfully sim through two seasons of the NHL without any apparent issues. All of this was done without making any alteration to EHM's exe file.
EDIT: The latest developments and patch can be found here: http://www.ehmtheblueline.com/forums/vi ... =88&t=8283
EDIT: An explanation of many of the offsets can be found here: http://www.ehmtheblueline.com/forums/vi ... 02#p127402
Frustratingly this has been a one off. I've tried to start another new game doing exactly the same but it keeps crashing on 1 October 2010. I've also tried setting the year to 2011 and again it crashes on 1 October 2011. It's very frustrating to have gotten so far only for the apparent solution to work only once. However, I feel this is quite a breakthough and hopefully with further experimentation and collaboration we will be able to change the start year without any issues. Hence I'm going to put as much detail in this post as possible should anybody like to try out what I did or even try and fix the issues I've encountered.
What software did I use?
It's actually very simple; I used a game cheating utility named ArtMoney to fool EHM into starting in 2010. ArtMoney has been used in the past to cheat at Football Manager to improve the finances of the user's team. It has also been used to edit the salary cap in an EHM 2007 saved game.
ArtMoney doesn't edit the game exe directly. Instead, it edits the values loaded into the computer's RAM whilst the game is running. Thus it's effects are only temporary and it makes no alterations to the exe - it simply looks at what the exe has loaded into the RAM. This means that you have to run ArtMoney each time you want to create a new game in EHM with the modified start date.
How did I successfully change the start date?
The instructions below describe exactly how I went about editing the start date and successfuly created a fully working game which I simmed fine for over two seasons (I can upload the saved game if anybody wants to take a look). As mentioned above, it's just not working when I've subsequently tried to create further new games in EHM.
I used the Lidas v3.2 Roster Update but changed the years of birth using the Pre Game Editor so that the years of birth reflect the actual real life ones. You can do this by loading the v3.2 Roster in the Pre Game Editor, then click on Tools -> Change all staff ages, enter 5 into the pop-up window, and then save the database.
Anyway, here are the steps I followed:
1) Download and install ArtMoney (you just need the freeware special edition): http://www.artmoney.ru/e_download.htm
2) Run ArtMoney with Admin Privileges. If you right-click on the shortcut you should see the option to "Run as Administrator". ArtMoney won't load EHM if you don't run with Admin Privileges.
3) Load EHM and click on the usual New Game button so that you're presented with the list of leagues to choose.
4) In ArtMoney, click on the drop down menu near the top of the screen entitled "Select Process" (click on the downwards arrow button and not the "..." button) and select EHM from the list (it'll be something like "NHL Eastside Hockey Manager 2007 - 3.0.4").
5) Click on the Search button at the top of the screen, enter the following settings and click on OK:
[table][tr][td]Search[/td][td]Exact value[/td][/tr]
[tr][td]Value[/td][td]2006[/td][/tr]
[tr][td]Type[/td][td]Integer (standard)[/td][/tr]
[tr][td]Address range[/td][td]Custom[/td][/tr]
[tr][td]From[/td][td]00200000 to: 01600000[/td][/tr]
[tr][td]Multiplicity of address[/td][td]All[/td][/tr][/table]
6) All of the results are displayed in the left hand column. Just to the right of this column (near the centre of the screen) there are two right arrow buttons - one red and one blue. Click on the blue arrow to move all of the search results into the right hand column. It is in the right hand column that you can change the values stored in the various addresses. It also provides a live view of the values – you might see some of the values change as you do different things in EHM.
7) Having clicked on the blue arrow to move the results to the right column, next click on Edit -> Select all. This selects all of the values you have moved to the right hand column.
8) Then click on Edit -> Set value. This allows you to edit the values of all of those you selected.
9) In the Set Value window, set the Value as 2010 and the Step as 0. Click on OK.
10) Whilst keeping ArtMoney open, go back to your EHM window and click on the usual OK button to start the new game (do not select any leagues other than the NHL). Note that the "Game Start Date" setting at the bottom of the Start New Game screen might still say 2006 but this doesn’t matter. The “Game Start Date” doesn't update unless you modify your choice of leagues or change the fantasy draft / use real player names / fog of war tick boxes. It doesn't matter whether the setting at the bottom does or does not update - it'll still work either way.
11) I'm not 100% sure, but it seems as though the game loads slightly more slowly than normal. I guess this is because ArtMoney is monitoring the data in the RAM. Just be patient and it’ll get there. Once you have created you game and exited ArtMoney you’ll find that it runs at normal speed.
12) Once the game has been created, you have added new GMs, and have saved your game, exit both ArtMoney and EHM.
13) Open EHM and load your newly created game like normal. You can now play your saved game just like any normal saved game.
Note: Once the game has been saved for the first time, you no longer need ArtMoney. You only need to load ArtMoney if you want to start a new game in EHM.
How does it work?
Through trial and error, I have found that the start year is stored at certain locations (aka addresses) within the RAM. You need to modify the correct addresses in order to modify the start date and for it to run correctly. It seems from my experiments that most/all of the relevant data is stored between addresses 00200000 and 01600000. Thus in step 5 in the above instructions, I advise that you search for 2006 between these addresses and change them all to 2010 (or whatever year you want). Other ranges of addresses I've tried using as an alternative are:
00000000 to 01600000
00000000 to 01C00000
00000000 to 03000000
00000000 to 04000000
You may want to try these ranges as an alternative (or perhaps use 00200000 instead of 00000000).
It's almost certain that not all of the 2006s found within the ranges of addresses actually affect the game start date. They could be anything - data, position of buttons, rosters, etc etc. I think, however, that I may have narrowed it down to 00C00000 to 00CFFFFF. 0018C166, 01301406 and 0130141E may also be relevant. With regards to 00C00000 to 00CFFFFF, I think I've managed to identify which addresses relate to the start years for each league:
[table][tr][td]00C69BFE[/td][td](first 00C with 2006 integer)[/td][/tr]
[tr][td]00C6A848[/td][td]?[/td][/tr]
[tr][td]00C6A854[/td][td]?[/td][/tr]
[tr][td]00C6A886[/td][td]Finland[/td][/tr]
[tr][td]00C6A892[/td][td][/td][/tr]
[tr][td]00C6A8C4[/td][td]North America[/td][/tr]
[tr][td]00C6A8D0[/td][td][/td][/tr]
[tr][td]00C6A902[/td][td]Denmark[/td][/tr]
[tr][td]00C6A90E[/td][td][/td][/tr]
[tr][td]00C6A940[/td][td]Czech Republic[/td][/tr]
[tr][td]00C6A94C[/td][td][/td][/tr]
[tr][td]00C6A97E[/td][td]Russia[/td][/tr]
[tr][td]00C6A98A[/td][td][/td][/tr]
[tr][td]00C6A9BC[/td][td]Sweden[/td][/tr]
[tr][td]00C6A9C8[/td][td][/td][/tr]
[tr][td]00C6A9FA[/td][td]Slovenia[/td][/tr]
[tr][td]00C6AA06[/td][td][/td][/tr]
[tr][td]00C6AA38[/td][td]Canada[/td][/tr]
[tr][td]00C6AA44[/td][td][/td][/tr]
[tr][td]00C6AA76[/td][td]Austria[/td][/tr]
[tr][td]00C6AA82[/td][td][/td][/tr]
[tr][td]00C6AAB4[/td][td]Slovakia[/td][/tr]
[tr][td]00C6AAC0[/td][td][/td][/tr]
[tr][td]00C6AAF2[/td][td]Great Britain[/td][/tr]
[tr][td]00C6AAFE[/td][td][/td][/tr]
[tr][td]00C6AB30[/td][td]Norway[/td][/tr]
[tr][td]00C6AB3C[/td][td][/td][/tr]
[tr][td]00C6AB6E[/td][td]Germany[/td][/tr]
[tr][td]00C6AB7A[/td][td][/td][/tr]
[tr][td]00C6A8C4 (last 00C with 2006 integer)[/td][td]North America? (sometimes does not appear)[/td][/tr][/table]
Timing of using ArtMoney?
I've tried using ArtMoney to edit the data both before and after clicking on the New Game button (the button on the opening main menu screen of EHM).
If you try searching for all mentions of 2006 in the data before clicking on the New Game button there are between 179-180 results. You can search for this by entering the following into the search box in ArtMoney:
[table][tr][td]Search[/td][td]Exact value[/td][/tr]
[tr][td]Value[/td][td]2006[/td][/tr]
[tr][td]Type[/td][td]Integer (standard)[/td][/tr]
[tr][td]Address range[/td][td]All[/td][/tr]
[tr][td]Multiplicity of address[/td][td]All[/td][/tr][/table]
By doing this 'all addresses' search you can find every single mention of 2006 (or whatever else you want) in the data currently stored in the RAM for EHM. Having experimented, it seems if you change the 2006 at address 007D11C0 then you can alter the game start year. However, it seems to change the actual date as well as the year (e.g. it moves the NHL start date from 30 Aug to 1 Sept). I tried starting a new game using just this change but, again, it crashes on 1 October.
If you try using ArtMoney to do an 'all addresses' search having clicked on the New Game button then you'll see that there's something like 38,000 results. I think this is because when you click on the New Game button, EHM loads the selected database into the RAM. So when you search, you're searching through a mixture of the EHM game code/process and the database.
What now?
Well, I'm hoping to continue experimenting to see if I can figure out what exactly needs to be changed. If I can get it right once then I don't see why I can't get it right again.I thought by posting all of this information that it might inspire others to have a go with ArtMoney and to see if they can achieve a successful change of the start date.
I think it's best to restrict testing to get the NHL up and running first. Hopefully the other leagues would fall into place after getting the NHL running. However I did notice through testing that I could create a new game with all leagues running on Enhanced other than the ECHL (selecting the ECHL causes a crash). I don't know what's so unique about the ECHL - maybe it's because it has the latest start date of all of the playable leagues.
Additionally, I wonder why the game crashes once it reaches the morning of 1st October. What happens on this date?
EDIT: The latest developments and patch can be found here: http://www.ehmtheblueline.com/forums/vi ... =88&t=8283
EDIT: An explanation of many of the offsets can be found here: http://www.ehmtheblueline.com/forums/vi ... 02#p127402
Frustratingly this has been a one off. I've tried to start another new game doing exactly the same but it keeps crashing on 1 October 2010. I've also tried setting the year to 2011 and again it crashes on 1 October 2011. It's very frustrating to have gotten so far only for the apparent solution to work only once. However, I feel this is quite a breakthough and hopefully with further experimentation and collaboration we will be able to change the start year without any issues. Hence I'm going to put as much detail in this post as possible should anybody like to try out what I did or even try and fix the issues I've encountered.
What software did I use?
It's actually very simple; I used a game cheating utility named ArtMoney to fool EHM into starting in 2010. ArtMoney has been used in the past to cheat at Football Manager to improve the finances of the user's team. It has also been used to edit the salary cap in an EHM 2007 saved game.
ArtMoney doesn't edit the game exe directly. Instead, it edits the values loaded into the computer's RAM whilst the game is running. Thus it's effects are only temporary and it makes no alterations to the exe - it simply looks at what the exe has loaded into the RAM. This means that you have to run ArtMoney each time you want to create a new game in EHM with the modified start date.
How did I successfully change the start date?
The instructions below describe exactly how I went about editing the start date and successfuly created a fully working game which I simmed fine for over two seasons (I can upload the saved game if anybody wants to take a look). As mentioned above, it's just not working when I've subsequently tried to create further new games in EHM.
I used the Lidas v3.2 Roster Update but changed the years of birth using the Pre Game Editor so that the years of birth reflect the actual real life ones. You can do this by loading the v3.2 Roster in the Pre Game Editor, then click on Tools -> Change all staff ages, enter 5 into the pop-up window, and then save the database.
Anyway, here are the steps I followed:
1) Download and install ArtMoney (you just need the freeware special edition): http://www.artmoney.ru/e_download.htm
2) Run ArtMoney with Admin Privileges. If you right-click on the shortcut you should see the option to "Run as Administrator". ArtMoney won't load EHM if you don't run with Admin Privileges.
3) Load EHM and click on the usual New Game button so that you're presented with the list of leagues to choose.
4) In ArtMoney, click on the drop down menu near the top of the screen entitled "Select Process" (click on the downwards arrow button and not the "..." button) and select EHM from the list (it'll be something like "NHL Eastside Hockey Manager 2007 - 3.0.4").
5) Click on the Search button at the top of the screen, enter the following settings and click on OK:
[table][tr][td]Search[/td][td]Exact value[/td][/tr]
[tr][td]Value[/td][td]2006[/td][/tr]
[tr][td]Type[/td][td]Integer (standard)[/td][/tr]
[tr][td]Address range[/td][td]Custom[/td][/tr]
[tr][td]From[/td][td]00200000 to: 01600000[/td][/tr]
[tr][td]Multiplicity of address[/td][td]All[/td][/tr][/table]
6) All of the results are displayed in the left hand column. Just to the right of this column (near the centre of the screen) there are two right arrow buttons - one red and one blue. Click on the blue arrow to move all of the search results into the right hand column. It is in the right hand column that you can change the values stored in the various addresses. It also provides a live view of the values – you might see some of the values change as you do different things in EHM.
7) Having clicked on the blue arrow to move the results to the right column, next click on Edit -> Select all. This selects all of the values you have moved to the right hand column.
8) Then click on Edit -> Set value. This allows you to edit the values of all of those you selected.
9) In the Set Value window, set the Value as 2010 and the Step as 0. Click on OK.
10) Whilst keeping ArtMoney open, go back to your EHM window and click on the usual OK button to start the new game (do not select any leagues other than the NHL). Note that the "Game Start Date" setting at the bottom of the Start New Game screen might still say 2006 but this doesn’t matter. The “Game Start Date” doesn't update unless you modify your choice of leagues or change the fantasy draft / use real player names / fog of war tick boxes. It doesn't matter whether the setting at the bottom does or does not update - it'll still work either way.
11) I'm not 100% sure, but it seems as though the game loads slightly more slowly than normal. I guess this is because ArtMoney is monitoring the data in the RAM. Just be patient and it’ll get there. Once you have created you game and exited ArtMoney you’ll find that it runs at normal speed.
12) Once the game has been created, you have added new GMs, and have saved your game, exit both ArtMoney and EHM.
13) Open EHM and load your newly created game like normal. You can now play your saved game just like any normal saved game.
Note: Once the game has been saved for the first time, you no longer need ArtMoney. You only need to load ArtMoney if you want to start a new game in EHM.
How does it work?
Through trial and error, I have found that the start year is stored at certain locations (aka addresses) within the RAM. You need to modify the correct addresses in order to modify the start date and for it to run correctly. It seems from my experiments that most/all of the relevant data is stored between addresses 00200000 and 01600000. Thus in step 5 in the above instructions, I advise that you search for 2006 between these addresses and change them all to 2010 (or whatever year you want). Other ranges of addresses I've tried using as an alternative are:
00000000 to 01600000
00000000 to 01C00000
00000000 to 03000000
00000000 to 04000000
You may want to try these ranges as an alternative (or perhaps use 00200000 instead of 00000000).
It's almost certain that not all of the 2006s found within the ranges of addresses actually affect the game start date. They could be anything - data, position of buttons, rosters, etc etc. I think, however, that I may have narrowed it down to 00C00000 to 00CFFFFF. 0018C166, 01301406 and 0130141E may also be relevant. With regards to 00C00000 to 00CFFFFF, I think I've managed to identify which addresses relate to the start years for each league:
[table][tr][td]00C69BFE[/td][td](first 00C with 2006 integer)[/td][/tr]
[tr][td]00C6A848[/td][td]?[/td][/tr]
[tr][td]00C6A854[/td][td]?[/td][/tr]
[tr][td]00C6A886[/td][td]Finland[/td][/tr]
[tr][td]00C6A892[/td][td][/td][/tr]
[tr][td]00C6A8C4[/td][td]North America[/td][/tr]
[tr][td]00C6A8D0[/td][td][/td][/tr]
[tr][td]00C6A902[/td][td]Denmark[/td][/tr]
[tr][td]00C6A90E[/td][td][/td][/tr]
[tr][td]00C6A940[/td][td]Czech Republic[/td][/tr]
[tr][td]00C6A94C[/td][td][/td][/tr]
[tr][td]00C6A97E[/td][td]Russia[/td][/tr]
[tr][td]00C6A98A[/td][td][/td][/tr]
[tr][td]00C6A9BC[/td][td]Sweden[/td][/tr]
[tr][td]00C6A9C8[/td][td][/td][/tr]
[tr][td]00C6A9FA[/td][td]Slovenia[/td][/tr]
[tr][td]00C6AA06[/td][td][/td][/tr]
[tr][td]00C6AA38[/td][td]Canada[/td][/tr]
[tr][td]00C6AA44[/td][td][/td][/tr]
[tr][td]00C6AA76[/td][td]Austria[/td][/tr]
[tr][td]00C6AA82[/td][td][/td][/tr]
[tr][td]00C6AAB4[/td][td]Slovakia[/td][/tr]
[tr][td]00C6AAC0[/td][td][/td][/tr]
[tr][td]00C6AAF2[/td][td]Great Britain[/td][/tr]
[tr][td]00C6AAFE[/td][td][/td][/tr]
[tr][td]00C6AB30[/td][td]Norway[/td][/tr]
[tr][td]00C6AB3C[/td][td][/td][/tr]
[tr][td]00C6AB6E[/td][td]Germany[/td][/tr]
[tr][td]00C6AB7A[/td][td][/td][/tr]
[tr][td]00C6A8C4 (last 00C with 2006 integer)[/td][td]North America? (sometimes does not appear)[/td][/tr][/table]
Timing of using ArtMoney?
I've tried using ArtMoney to edit the data both before and after clicking on the New Game button (the button on the opening main menu screen of EHM).
If you try searching for all mentions of 2006 in the data before clicking on the New Game button there are between 179-180 results. You can search for this by entering the following into the search box in ArtMoney:
[table][tr][td]Search[/td][td]Exact value[/td][/tr]
[tr][td]Value[/td][td]2006[/td][/tr]
[tr][td]Type[/td][td]Integer (standard)[/td][/tr]
[tr][td]Address range[/td][td]All[/td][/tr]
[tr][td]Multiplicity of address[/td][td]All[/td][/tr][/table]
By doing this 'all addresses' search you can find every single mention of 2006 (or whatever else you want) in the data currently stored in the RAM for EHM. Having experimented, it seems if you change the 2006 at address 007D11C0 then you can alter the game start year. However, it seems to change the actual date as well as the year (e.g. it moves the NHL start date from 30 Aug to 1 Sept). I tried starting a new game using just this change but, again, it crashes on 1 October.
If you try using ArtMoney to do an 'all addresses' search having clicked on the New Game button then you'll see that there's something like 38,000 results. I think this is because when you click on the New Game button, EHM loads the selected database into the RAM. So when you search, you're searching through a mixture of the EHM game code/process and the database.
What now?
Well, I'm hoping to continue experimenting to see if I can figure out what exactly needs to be changed. If I can get it right once then I don't see why I can't get it right again.I thought by posting all of this information that it might inspire others to have a go with ArtMoney and to see if they can achieve a successful change of the start date.
I think it's best to restrict testing to get the NHL up and running first. Hopefully the other leagues would fall into place after getting the NHL running. However I did notice through testing that I could create a new game with all leagues running on Enhanced other than the ECHL (selecting the ECHL causes a crash). I don't know what's so unique about the ECHL - maybe it's because it has the latest start date of all of the playable leagues.
Additionally, I wonder why the game crashes once it reaches the morning of 1st October. What happens on this date?