Recoil Amp Reload
Recoil & Reload
The problem with the Original DefaultLG game file, is that only one recoil method can be used. If a different recoil method is to be used, then a new game file is needed. So if the game supports 3 recoil methods, then 3 game files would be needed. This goes against my 1 game file per game. So I needed to combine all the game files into one. The player prioritizes the recoil method, when entering the light gun. The priority tells Hook of the Reaper, what recoil method to use, if multiple recoil methods are supported in the game. If there is only 1 recoil method supported by the game, then that method is used.
Hook of the Reaper has 3 main recoil methods that all light guns support. And there is one subset method, that only 3 light guns support. The first is just recoil from a solenoid recoil output signal. The second is to use the ammo value to know when a recoil is needed. The last is converting the rumble recoil output signal to solenoid recoil. This was first used on Alien 3, and now a handful of games. The subset is of the solenoid recoil output signal. This is were the output signal value directly controls the solenoid. Only the Gun4IR, Fusion, and OpenFire light guns support this method.
After the ‘Players’ section and before the ‘[States]’, is the new ‘Recoil & Reload’ section. This section tells Hook of the Reaper what recoil and reload methods are supported by the game. Let’s look at Let’s Go Island 3D game file. To make thing more clear, I removed all the unused output signals.
2
P1
P2
Recoil & Reload
Ammo_Value 0
Recoil 1
Recoil_R2S 1
Recoil_Value 1
[States]
:mame_start
*All
>Open_COM
:mame_stop
*All
>Close_COM
[Signals]
:P1_CtmRecoil
*P1
#Recoil
#Recoil_Value
:P2_CtmRecoil
*P2
#Recoil
#Recoil_Value
:P1_Damaged
*P1
>Damage
:P2_Damaged
*P2
>Damage
:P1_GunRecoil
*P1
>Shake
:P1_GunMotor
*P1
#Recoil_R2S
:P2_GunRecoil
*P2
>Shake
:P2_GunMotor
*P2
#Recoil_R2S
:P1_Life
*P1
>Display_Life
:P2_Life
*P2
>Display_Life
Now that you have seen the new ‘Recoil & Reload’ DefaultLG game file. Lets look at the ‘Recoil & Reload’ section.
Ammo_Value 0
Recoil 1
Recoil_R2S 1
Recoil_Value 1
Before I tell you, can you guess what recoil methods the game supports? Hopefully it is obvious. As the recoil method is followed by a ‘0’ or ‘1’. The ‘0’ means that the recoil method is not supported. The ‘1’ means that the recoil method is supported. So 'Recoil', 'Recoil_R2S', and 'Recoil_Value' are supported in the game file. While 'Ammo_Value' is not supported. Now Let look at players 1 recoil output signals, player, and commands.
*P1
#Recoil
#Recoil_Value
:P1_GunMotor
*P1
#Recoil_R2S
The command signal ‘>’ is not used for these recoil methods. They now have the ‘#’ in front of them. This confuses the people the most. But hopefully you can see a pattern. Look above at the ‘Recoil & Reload’ section. Do you see the pattern now? All the recoil commands supported, are the same that have the ‘#’ in front of them. This is done to tell them apart from the other commands. Also for safety too, as a person doesn’t want 2 recoil methods working at the same time. The rule is, if it has a 1, then any command in the line has to have a ‘#’ in front of it. Hopefully this clears up the big mystery of the ‘#’ over the ‘>’.
After that, there is no difference from the Original DefaultLG game file. So lets move on to a harder ‘Recoil & Reload’ DefaultLG game file. Let’s look at my favorite, House of the Dead 4, which supports all 4 recoil methods. Again I took out the unused output signal to make this clearer. Also, I changed the reload for 'Recoil_Vale' recoil method.
- Players
2
P1
P2
Recoil & Reload
Ammo_Value 1 Ammo_Value
Recoil 1 Reload_Value
Recoil_R2S 1 Reload_Value
Recoil_Value 1 Reload
[States]
:mame_start
*All
>Open_COM
:mame_stop
*All
>Close_COM
[Signals]
:P1_CtmRecoil
*P1
#Recoil
#Recoil_Value
:P2_CtmRecoil
*P2
#Recoil
#Recoil_Value
:P1_Damaged
*P1
>Damage
:P2_Damaged
*P2
>Damage
:P1_Ammo
*P1
#Ammo_Value
#Reload_Value
>Display_Ammo
:P2_Ammo
*P2
#Ammo_Value
#Reload_Value
>Display_Ammo
:P1_GunMotor
*P1
#Recoil_R2S
:P2_GunMotor
*P2
#Recoil_R2S
:P1_Clip
*P1
#Reload
:P2_Clip
*P2
#Reload
:P1_Life
*P1
>Display_Life
:P2_Life
*P2
>Display_Life
Now let's get the 'Recoil & Reload' section. Also, any player 1 info that has the '#' in it. We know the rule now, so lets see if it stays.
Ammo_Value 1 Ammo_Value
Recoil 1 Reload_Value
Recoil_R2S 1 Reload_Value
Recoil_Value 1 Reload
*P1
#Recoil
#Recoil_Value
:P1_Ammo
*P1
#Ammo_Value
#Reload_Value
>Display_Ammo
:P1_GunMotor
*P1
#Recoil_R2S
:P1_Clip
*P1
#Reload
Yes, the rule stands. If it has a '1' in the line, the commands in the line, need a '#' instead of the '>'. But now there is a reload command after the '1'. Let's Go Island is an unlimited ammo game, so it had no reload. Since there was no reload, it was not needed in the 'Recoil & Reload' section. Now that there is reload, it is different for some methods.
If the recoil method has an '0' after it, it is not supported in the game. So there should never be a reload command after the '0'. If this happens, Hook of the Reaper will error out when loading the DefaultLG game file.
'Ammo_Value' recoil method, can both do recoil and reload. So it is optional after the '1' to put 'Ammo_Value', as both options work. So "Ammo_Value 1" or "Ammo_Value 1 Ammo_Value" work. But the other recoil methods need a separate way to do reload. The best way is to use the 'Reload_Value' command with the ammo output signal. In the normal game file, that is how all other recoil methods do reload. But I change 'Recoil_Value' to 'Reload' method, to show all the methods for reload. Another way to think what needs to have the '#', is just the recoil commands and the reload commands. See below for the list.
Ammo_Value
Recoil
Recoil_R2S
Recoil_Value
Ammo_Value
Reload_Value
Reload
Hopefully, this closes the book on the confusion on the commands with the '#' in front. Then the rest of the game file is just like the Original DefaultLG game file. Now you should now how all versions of the DefaultLG game file works. Like I said, output signal, player(s), and then command(s). It is that over and over again.
Now let look at the original House of the Dead 2: Remake DefaultLG game file. This only had 'Ammo_Value' recoil method in it.
2
P1
P2
Recoil & Reload
Ammo_Value 1 Ammo_Value
Recoil 0
Recoil_R2S 0
Recoil_Value 0
[States]
:mame_start
*All
>Open_COM
:mame_stop
*All
>Close_COM
[Signals]
:p1_damage
*P1
>Damage
:p2_damage
*P2
>Damage
:p1_ammo
*P1
#Ammo_Value
>Display_Ammo
:p2_ammo
*P2
#Ammo_Value
>Display_Ammo
:p1_health
*P1
>Display_Life
:p2_health
*P2
>Display_Life
Now the 'Recoil' method was added to the software. The new output signals are p1_recoil and p2_recoil. Can you add the 'Recoil' method to the file? A big hint would be to look at the House of the Dead 4 game file above. Can you cross reference the difference? Let start in the 'Recoil & Reload' section, and see what is different between the 2 files with respects to the 'Recoil'.
Recoil 1 Reload_Value
Recoil 0
OK, it is a lot better now. Looks like I need to add the 'Recoil' method with the new output signals. Also, need to add 'Reload_Value' to the ammo output signal, like the House of the Dead 4 did. Let's do that.
2
P1
P2
Recoil & Reload
Ammo_Value 1 Ammo_Value
Recoil 1 Reload_Value
Recoil_R2S 0
Recoil_Value 0
[States]
:mame_start
*All
>Open_COM
:mame_stop
*All
>Close_COM
[Signals]
:p1_damage
*P1
>Damage
:p2_damage
*P2
>Damage
:p1_ammo
*P1
#Ammo_Value
#Reload_Value
>Display_Ammo
:p2_ammo
*P2
#Ammo_Value
#Reload_Value
>Display_Ammo
:p1_health
*P1
>Display_Life
:p2_health
*P2
>Display_Life
:p1_recoil
*P1
#Recoil
:p2_recoil
*P2
#Recoil
Got it done. Had to add 8 new lines, and change 1 line in the 'Recoil & Reload' section. Now lets remove the 'Ammo_Value' recoil method. Like before, let's compare the 'Recoil & Reload' of Let's Go Island 3D and the modified House of the Dead 2: Remake, with respects to 'Ammo_Value'..
Ammo_Value 0
Ammo_Value 1 Ammo_Value
Now I see that I have to modify the 'Recoil & Reload' section, on the 'Ammo_Value' line. The reload needs to be removed, and the '1' needs to be changed to a '0'. Then the '#Ammo_Value' needs to be removed from the file. Since the ammo output signal has other commands tied to it, the player(s) and commands shouldn't be erased. Let's do that now.
2
P1
P2
Recoil & Reload
Ammo_Value 0
Recoil 1 Reload_Value
Recoil_R2S 0
Recoil_Value 0
[States]
:mame_start
*All
>Open_COM
:mame_stop
*All
>Close_COM
[Signals]
:p1_damage
*P1
>Damage
:p2_damage
*P2
>Damage
:p1_ammo
*P1
#Reload_Value
>Display_Ammo
:p2_ammo
*P2
#Reload_Value
>Display_Ammo
:p1_health
*P1
>Display_Life
:p2_health
*P2
>Display_Life
:p1_recoil
*P1
#Recoil
:p2_recoil
*P2
#Recoil
That was easier, as I had to modify 1 line and remove 2 lines. Now we enabled the 'Recoil' method, with the new output signals. Also, we removed the 'Ammo_Value' recoil method from the game file.
Hopefully, that wasn't to hard to learn about the new 'Recoil & Reload' DefaultLG game file. I tried to make it as simply as possible.
If you want a video going over all the details, it is embed below. The new DefaultLG info starts at 17:50 in the video. It is about 40mins going over all the details.