[Feature request/proposal] Hardware layout description files (custom mapper support) #524
Labels
enhancement
Typically new features; lesser priority than bugs
rgbasm
This affects RGBASM
rgblink
This affects RGBLINK
Milestone
(Note: I'm well aware that this is a complicated, long term feature that won't see the light of day for a long time. "This is very complicated to implement" and "don't expect it anytime soon" are base assumptions.)
As of right now, the tool chain assumes a specific hardware layout. While this does match the GB/GBC, matching non-standard mappers is harder, and often not possible at all.
Therefore, my proposal consists of a hardware layout file, which would describe the addressing space and the binary ROM layouts. Custom and unusual mappers can be handled this way, as well as unusual configurations (e.g., using echo RAM). This layout file would be given as an input to the assembler and/or the linker (preferrably the latter), which would then be used as an input for the section allocation process (being similar to linker scripts in this regard).
I've written up a proposal in specification form. This is mostly because it's a format I'm used to, and therefore it is the best way I can explain a feature proposal as complex as this one; I'm not intending to set a format in stone this way, and I'll be happy to update the proposal document if we reach some consensus — I assume that the developer perspective of something like this would be very different from mine.
Proposed spec: https://gist.github.com/aaaaaa123456789/9ede2447ffde027f0fac1c54589d2ed4
Sample files: https://gist.github.com/aaaaaa123456789/9ede2447ffde027f0fac1c54589d2ed4#file-samples-md (it's the same gist, but I'm linking it here for convenience)
The sample files cover the current layout, as well as a few mappers that aren't properly supported right now by the tool chain, like MBC1 and MBC6.
Please let me know what you think. I don't expect this to be implemented within any reasonable timeframe, but I figured that some proposal is better than no proposal.
The text was updated successfully, but these errors were encountered: