Suprapote/Altra64

[Issue] MK64 Hack Amped up won't start

Closed this issue · 11 comments

Hi Suprapote,

I am following your Altra64 fork with great interest!
But now I have a short question about the MK64 Hack Amped up. It won't start on Altra64 but it starts on the stock firmware.

I can confirm that up to v2.93 work, v2.94 breaks on altra64. v2.96a work on cloned firmware.

Are you sure? 2.9.6a won't work with this altra64 fork on my ed64+ (Red China modul)

Are you sure? 2.9.6a won't work with this altra64 fork on my ed64+ (Red China modul)

yes that's what i say, v2.96a doesn't work with this altra64, however it will work with clone firmware or "official OS" (see image)
(you need to force save type to EEP4K to be able to save, because v2.96a changes the i think it's called rom header from NKTE to NUBE and that code is not in the save database)

example

The latest version of the hack that works with this altra64 is v2.93.

Hi, i have tested this error, and you can fix it using this: https://github.com/ariahiro64/Nes-Padder.

Oh, thanks for that! I did not know that the NES-padder helps out here. I am just curious why it worked on the clone firmware/offical OS/stock firmware.

It's because the altra64 firmware only read well roms which the size is a multiple of a MB.

I mainly contributed to Altra64 for my own development need but I think the advancements since my last real commit are neat. You guys are the best.

im also glad people found nes padder useful

Hello Ariahiro,
Thank you for your work. We discussed the NES Padder internally and we did not understand addition of an offset.
We thought that you want to pass up the ROM to a multiple of 64 KB but why did you create an offset with the addition of "0xFFFF" in your return function?
We tested it with and without this offset and both roms worked.

a more non convoluded way i could have done it is the way my friend did it

/*

  • pad-up.c <z64.me>
  • pads a binary file up to the next whole unit

*/

#include <stdio.h>

#define UNIT (1024 * 1024) // byte size of 1 MiB

int main(int argc, char *argv[])
{
const char *fn = argv[1];
FILE *fp;

if (argc != 2)
{
	fprintf(stderr, "not enough args: pad-up /path/to/file.bin\n");
	return -1;
}

// open in append mode
if (!(fp = fopen(fn, "ab+")))
{
	fprintf(stderr, "failed to open '%s' for appending\n", fn);
	return -1;
}

// seek end
fseek(fp, 0, SEEK_END);

// pad up to nearest unit
while (ftell(fp) % UNIT)
	fputc(0, fp);

// cleanup
fclose(fp);
return 0;

}