![]() |
| |||||||
| Wiremod Addons Have you created a wiremod addon? Post it here. |
![]() |
| | LinkBack (12) | Thread Tools | Display Modes |
| |
#1 (permalink)
| ||||||||
| Wirererer ![]()
Join Date: Apr 2007
Posts: 103
![]() | Hey there! I started work on a custom consolescreen version, not just optimize it's code a little but also add new features ![]() After some ideas you gave me I came to the point where we can start testing it ^^ I don't have that much time to test everything right now so it would be kind of some of you could test it, check shifting, clearing, rt screen, pointer (touchscreen) functionality, etc ![]() I made a svn repo so it's easier to fix errors, add new graphics etc etc url: https://borsty.dyndns.org:8443/svn/advconsolescreen name/pw: anonsvn Video http://www.youtube.com/watch?v=iZgGgSuL9uEScreenshot: ![]() What can be done with this console screen? Instead of a single layer of combined background and text color, this screen uses a background layer which only stores color (RG and two layers of text/icons which has the classical layout Char/Color, Chars are normal ASCII codes from 0 to 128, everything above contains small graphical icons as seen on the screenshot above. The color code for the text layers is (ARG . Colors work like with the classic consolescreen, 000 would be black, 900 red, 090 green, 009 blue and 999 white.The text layers also got an alpha value which is 0 for completly invisible to 9 completly visible, don't forget to add a 9 in front of your color code to make it visible ![]() So every block is 5 memory values big instead of 2. RT screen: The screen also supports rendering of the render target for the normal well known RT-Camera. Touchscreen Touchscreen functionality have been added but it only works for the owner of the screen. If you read memory address 3065 (Pointer Address) it either returns 540, which means that the owner isn't looking at the screen or something betwen 0 and 539 ( Address = X + Y * 30 ) I will work on this so you can set who is allowed to use the screen's pointer. Misc The screen also got a global brightness register ( 0 for everything black, 255 for everything normal ), alpha scale registers for both text layers, overlay registers for both layers to toggle overlay on rt screen areas, check the memory map for addresses! Memory map: You'll notice that there's a "buffered" and an "unbuffered" area, the big difference here is that the buffered area only gets applied when the clock register gets triggered ( 0 to 1 ), the remaining unbuffered area gets applied directly! Code: ** Buffered ** 0 - 2699 Image Memory: 5 values per pixel (Background RGB), (Layer 1 Char), (Layer 1 ARGB), (Layer 2 Char), (Layer 2 ARGB) Hardware control 2700 - Hardware scale (0) 2701 - Vertical scale (1) 2702 - Horizontal scale (1) 2703 - Screen Brightness (255) 2704 - Hardware Background Color (000) 2705 - Layer 1 Alpha (255) 2706 - Layer 2 Alpha (255) RT Screen control 2707 - RT Enable 2708 - Start X 2709 - Start Y 2710 - End X 2711 - End Y 2712 - Enable Layer 1 overlay 2713 - Enable Layer 2 overlay Cursor control: 2714 - Cursor Enabled 2715 - Cursor Blink Rate (0.50) 2716 - Cursor Size (0.25) // Obsolete, I mean... what's it for? 2717 - Cursor Address 2718 - 2749 ** RESERVED ** ** Unbuffered ** 2750 - 3036 ** UNUSED ** Hardware image control: 3040 - Screen ratio (read only) 3041 - Rotation (0 - 0*, 1 - 90*, 2 - 180*, 3 - 270*) Shifting control: 3050 - Low shift column 3051 - High shift column 3052 - Low shift row 3053 - High shift row Control registers: 3060 - Shift columns (number of columns, >0 shift right, <0 shift left) 3061 - Shift rows (number of rows, >0 shift down, <0 shift up) 3062 - Hardware Clear Column (Writing clears column) 3063 - Hardware Clear Row (Writing clears row) 3064 - Hardware Clear Screen Pointer control: 3065 - Pointer Address (read only) ( owner only ) 3066 - Screen got used by player (read only, auto reset) Clock 3070 - Hardware Reset 3071 - Clock With Version 0.6 comes another gate which allows to use the Advanced Consolescreen with normal wires: Clk is used to put the new char with its params into the right address, Active needs to be 1 to get the chars drawn (just like with the cpu when you print a bigger chunk of text) So set active to 0, put your text into the screen, set active to 1 and zing! your string or whatever gets drawn. ![]() Changelog 0.7b - 20th September (Rev. 34)
0.7 - 20th September (Rev.31)
0.6b - 19th September (Rev. 30)
0.6 - 27th August (Rev. 26)
0.5 - 26th August (Rev. 23)
0.4 - 26th August (Rev. 20)
0.2 - 24th August
0.1 - 24th August
Last edited by Borsty; 09-20-2008 at 01:04 PM. | ||||||||
| | |
| | #3 (permalink) |
| Wire Amateur ![]() Join Date: Apr 2008
Posts: 96
![]() | How about a layer input like Layer=0-2 Which would allow Background text. Which means lets say you put Hello on the screen but go to the next layer and type Waffles. Waffles would be written over Hello causeing Weird looking text effect. Do you see what i mean? |
| | |
| | #5 (permalink) |
| Wire Amateur ![]() Join Date: Apr 2008
Posts: 96
![]() | BTW implementing a graphics tablet interface would be stupid unless you can eliminate the mager lag from haveing multiple Graphics Tablets at once. The input for my idea should be Layer and possible values should be 0-Background(Default), 1-Foreground, 2-This one draws the text/graphics over all the other layers. |
| | |
| | #7 (permalink) | ||||||||
| Wirererer ![]()
Join Date: Apr 2007
Posts: 103
![]() | Hmmm, the layer thing isn't that much of a bad idea, need to think about that. Rendering the screen twice will take twice the time... Maybe I change it to something like 1 - background color, no chars 2 - first char layer 3 - second char layer with alpha About the touch-screen thing, well... why not ^^, I could make it toggle-able using a control register :EDIT: Updated first post! Last edited by Borsty; 08-21-2008 at 05:19 PM. | ||||||||
| | |
| | #8 (permalink) |
| Wire Amateur ![]() Join Date: Apr 2008
Posts: 96
![]() | Hey btw i made an expression to type stuff on a screen to type stuff and i want to know if i use the address bus could ilink it to my egate and change stuff like this? I imagine i could and i have lots of spare time to go through it but before i start i want to know if it is possible without a cpu. 3047 - Rotation (0 - 0*, 1 - 90*, 2 - 180*, 3 - 270*) |
| | |
| | #9 (permalink) | |||||||||
| Wirererer ![]()
Join Date: Apr 2007
Posts: 103
![]() | Quote:
I'll provide an interface chip to use this screen with the "normal" part of wiremod, I don't like to have hundreds of inputs > | |||||||||
| | |
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| need alitle help with a custom gate plz | metanight | Help & Support | 4 | 02-07-2009 08:36 PM |
| [REQ] Custom Thruster Expression | Phoenix T'ril | Custom Gates | 3 | 11-02-2008 09:45 PM |
| Bouncing Ball (ConsoleScreen + Egate) | 3dfactor | Contraptions & Saves | 3 | 09-05-2008 06:31 PM |
| Custom values ? | prut96 | Advanced Gates | 3 | 08-09-2008 06:33 AM |