Different Hashes with Javascipt and Remix

I make a hash of these two values: 1 and 0xDA0bab807633f07f013f94DDD0E6A4F96F8742B53 and they return different values depending on where I do it.

In javascript:

const contract = "0xDA0bab807633f07f013f94DDD0E6A4F96F8742B53" 
 let messageHash = ethers.utils.hashMessage(1, contract); 

result: 0x4d7df8449c9c3c240b091b1f6660a76593e77662edd1efa00e5d826609415208

with remix

        function getMessageHash(
         uint _idGame, address _contract
        public pure returns (bytes32)
        return keccak256(abi.encodePacked(_idGame, _contract));


Why are they different?

Looking at the documentation of ethers.js I see that in addition to the ethereum string the size of the message is added:

"Computes the EIP-191 personal message digest of message . Personal messages are converted to UTF-8 bytes and prefixed with \x19Ethereum Signed Message: and the length of message ."

So when I want to retrieve the message I will have to add that size somehow in the prefixed function... otherwise it won't match, right?

    function prefixed(bytes32 hash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));

may be llike this?:
"\x19Ethereum Signed Message:LENGTHNUMBER";