Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional level shapes (256x64, 64x256, 128x128) #61

Open
NovaSquirrel opened this issue Mar 31, 2022 · 0 comments
Open

Additional level shapes (256x64, 64x256, 128x128) #61

NovaSquirrel opened this issue Mar 31, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@NovaSquirrel
Copy link
Owner

NovaSquirrel commented Mar 31, 2022

Right now only 256x32 ("Horizontal") levels are supported and 32x256 is tracked in #60 - I would like to add these (in order of priority):

  • 256x64 ("Tall Horizontal") - 32K
  • 64x256 ("Wide Vertical") - 32K
  • 128x128 ("Square") - 32K
    128x64 and 64x128 should be doable but I don't think I actually need them

levelload.s uses GetLevelColumnPtr which will need to jump to a pointer that can be changed for each shape.
I think I also need updates in scrolling.s, renderlevel.s and renderlevel2.s - try to solve it with global variables (replacing constants constants), and if that fails, then use indirect jumps. Level shapes that take up 32KB do not need renderlevel2.s versions because they can't support a second layer.
GetLevelPtrXY is already set up for this.

Actor list in the level data easily has space for 128 blocks of height if I want to use those bits for that.
But I need to figure out some sort of good solution for the foreground data - maybe a special 1-byte command that can move around vertically.

@NovaSquirrel NovaSquirrel added the enhancement New feature or request label Mar 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant