Gotcha. If these things will all be solved with a new better bootloader, then you're right, it's better to not waste time trying to support the old broken one.Jubatian wrote: ↑Sun Oct 01, 2017 12:16 pmIt overrides the area defined in the .hex or .uze file. If it overrode more, then there wouldn't be any point of persisting the ROM at all expect for supporting the current quirky bootloader, while this way it would be capable to support programs which store things in areas of the ROM not covered by the main binary (honestly I would happily ditch persisting ROM altogether, it is a rather useless feature beyond trying to work with the current bootloader).Artcfox wrote: ↑Sun Oct 01, 2017 11:58 amI was just thinking that if someone passed a .uze or .hex (that is not a bootloader) as a parameter that it should always override whatever is in the coderom, since that is a unique case only to the emulator (being able to force it to run exactly this thing I pass you on the command line). The real hardware only has what's been flashed to it (the bootloader and/or a .hex file). You can tell right now whether something passed is a bootloader or not correct? (Based on where the code is loaded, IIRC) so I think that might be enough for the intended behavior. If a user wants to test the bootloader, they'll always pass in a bootloader hex file on the command line, otherwise, just force it to load a game directly as if there is no bootloader?
The emulator is not capable to tell whether a file is a bootloader or not. It can assume that a .uze file is not a bootloader, but it can not make such assumptions on .hex files (the information which regions were written is lost across the interface).
For normal users these all shouldn't be a problem as they wouldn't load the bootloader (or if they have such a package, then would always use the bootloader).
I wouldn't want to put any effort in trying to mess with this any more for now. Better invest that effort in creating a bootloader which works better and forget about these problems.
The coderom persisting is the only thing that allows the Android port to work, so please don't remove that.