simozzer / Oric6502

Trying to re-learn 6502 for the Oric computer
2 stars 1 forks source link

Nice scrolling effects routines! Some ideas for HIRES. #1

Open seclorum opened 5 months ago

seclorum commented 5 months ago

Nice project! I'd like to participate.

I definitely see how I could use some of your routines in my project "Soundtoy", which aims to be a synthesizer playground for the Oric.

"Soundtoy" is just a playground - you can use it to scroll through the ROM and find interesting parameters for the synth chip, treating the ROM itself as patch memory. Eventually I'd like to map out the whole ROM as a parameter bank, and find the cool sounds to present as a library of 'starter' patches, and then add a UI for editing.

I don't have much of a UI yet, but I'm thinking a lot about scrolling and representing a big blob of data, or maybe just concise data in a fast way, so your scroll routines are great.

I currently have a HIRES "hack" in the "Soundtoy" project where I fill the HIRES screen with bytes, masking any bytes that would cause clashing. Its an interesting result and I'm going to explore how I can use attributes in interesting ways, in the synth context - i.e. might develop a graphical ontology around the interesting attribute glyphs that get produced:

https://github.com/seclorum/soundToy/blob/25469220049a2cd9ea845a4f86921cbd8ddb4c49/toy.c#L194

EDIT: This produces (slowly, coz random()) the following screenshot - from this chaos I will find a way to make an abstract synth interface.

I'd like to get a faster random routine, and as well see about how your scrolling functions can be used in a synthesizer UI (maybe HIRES, maybe also TEXT) - so the question is, how best to include elements of Oric6502 into "Soundtoy" in a library manner? I guess some care should be made with regards to the C interface and use of page 0. I will assess this a bit and report back..

Split-screen scrolling is awesome - how about adapting it so that it can be used with variable TEXT screen sizes, i.e. in the case of mixed HIRES/TEXT modes. I might only use 64 HIRES lines at the top of my UI, and the rest would be TEXT, so having the scrolling routines be adaptable to the HIRES attribute placement would be a cool feature.

simozzer commented 5 months ago

I'm not sure if it's any faster but try out _GetRand from utils.s - does that help?

Maybe You or I should start another project with routines that can be shared easily? A lot of this code is quite tightly tied to the game 'BiggerWorm', that I'm writing.

I've no experience of mixing hires and text attributes, I basically just code in text mode. It's an interesting challenge but I'm not sure I'll dedicate enough time to this, as I'm a text-mode guy ;)

For splti screen stuff i've tried to accomodate multiple screen splits (I'm looking at a 2 x 2 layout next). The unit setScreenMetrics.s might provide an idea of how i'm doing this.

I need to take a look at SoundToy, and have a play, to see if I can help you in any way.