Open SoniEx2 opened 9 years ago
Well, how would such a thing work together with the CAD?
How about you leave that for the IC itself, while the die just tells where things are? (alternatively enable bundled I/O on 16x16 boards)
Option 1, the die is not the IC:
Option 2, bundled I/O on 16x16 boards:
Option 3, "circuit I/O" mode:
Pick your poison ;)
(PS: there's probably something I didn't think of)
For the 16x16 might be a doable thing, it won't be one line though as the renderer has to connect them as well... I'll think about it. I leave this open as a suggestion.
For the 16x16, with bundled I/O, it won't have to connect, and it's probably just a few lines to make the renderer support 16x16 bundled I/O + make the 16x16 take bundled cables. Option 3 seems best option tho. Maybe refactor it a bit and make it so mods can add custom I/O (I'm too tired to check if it's already possible with the current code base, so I'll check it tomorrow and edit here what I find)? (then someone would probably add CC and OC I/O modes, lol)
It might be useful. But I see it a bit different.
It looks to me as a flat cable connecting adjacent circuits, instead of bundled or redstone. It is impossible to connect non-adjacent circuits this way, because such cables don't tolerate noise well, especially when signal is weak, coming from IC logic and not IO amplifiers. Only circuits of the same size can connect. Maybe because they use different voltages etc. It might be depicted as different cable colors (e.g. green, orange and red for T1, T2 and T3 respectively).
From inside the CAD, it will look as green pins along whole side, with the same order on left/right and top/bottom sides, numbered for convenience (just a tooltip will do). There are too much of them, so they will not be controlled from window sides (unlike other IO modes). You will have to click IO pins themselves (on PCB border), preferably just left button, but requiring a screwdriver ("edit" tool) will do. Controls on UI window sides will be disabled (as when the side is disabled completely, see #110)
Internally, this mod already passes signals directly between adjacent ICs, even when no mod provides bundled cables. So passing "extra wide" signals should not be a problem. However, I am not sure if it works the same way when circuit is FMP one. Might be a special feature of non-FMP gates then.
If implemented as above, these "flat cables" will actually work as a way to create bigger circuits, without 16 bits per side interconnection limit, but still with extra hassle of switching between several CADs often.
By the way, T1 chips are in fact 14x14 and not 16x16 (because of unusable PCB border), so I guess there is no well-defined way to enable normal bundled IO for them.
I think that there should be a special bus that works only between ICs. It should be numbered, and it will allow a 16x16 to connect to a 32x23 and 64x64 as it only show connections from 1-14.
So, my work in doing #164 has shown some things.
And not to mention that rendering it in the CAD GUI will be painful.
Say you put 2 16x16's side-by-side; they should be able to "merge" together (maybe with user interaction? i.e. the user has to do it) and make a 2-block-wide 32x16 (or 16x32, w/e) board!