Agree on a strong battery any time cranking an engine, especially when one sits for long periods without being run and having fuel fresh in the powerhead. Other thing is the fact that starting current, even for a 100 hp engine could be up around 200 Amperes.
Considering a starter needs at least 10 Volts across it to spin up an engine to 200 RPM cranking speed (mentioned in service manuals), and a lot of 12V electronics is designed to run on 9V minimum, sucking 200 Amperes from a 12V battery and needing 10V at the starter while spinning the engine, means your wiring can't be more than 12-10 = 2Volts/200 Amperes = 0.01 Ohms........for the electrically challenged or unknowing definitions of the electrical terms are on the www and that isn't much corrosion, loose crimps, loose hardware, or too small a service cable diameter or too much length.
That means that all your cables, connector crimps, connectors and anything in the circuit between the battery and the engine including mounting points needs to be "clean and bright and tight"....clean on the inside where the current flows, not just on the outside where it looks pretty.
On the battery, static voltage testing isn't enough. You need to know the battery output voltage when its delivering your required 200 give or take Amperes....aka a load test. Auto parts stores can make this test for you or Harbor Freight sells testers for about 50 bucks. Older batteries that have "Sulphated Up"......Sulphur in the H2SO4 + H2O solution has deposited on the plates resulting in reduced chemical interaction area, making for increased internal voltage drop at high currents.
Internal voltage drop means that the battery terminals can't be at enough voltage to deliver 10 Volts to the starter (and electronics) under the starting load.
Phew.