yea, also a built in hex editor that automatically opens when you try to open a asm program. Maybe you and Captain Calc could integrate your programs so that Hexaedit opens files that you feed it?
randomguy wrote:
yea, also a built in hex editor that automatically opens when you try to open a asm program. Maybe you and Captain Calc could integrate your programs so that Hexaedit opens files that you feed it?


I think that would be a great idea. Could it open a C program or appvar as well, since Hexaedit works on those too?
Sorry for late reply, it's been a bit busy this week.

TIny_Hacker wrote:
Wow! This is really starting to take shape as a shell! Do you know how soon you'll have a release ready for the public? Great work on displaying programs on the home screen; it looks even better than I thought it would! Will it be possible to edit programs through Xenon?


Thank you Smile, I can't say when I will be releasing the shell, but hopefully soon (you can also look at the Trello Board to view its development process). Yes, it would be possible to run/edit programs thanks to Epsilon5.


randomguy wrote:
yea, also a built in hex editor that automatically opens when you try to open a asm program. Maybe you and Captain Calc could integrate your programs so that Hexaedit opens files that you feed it?


A while back, I said the last program run name will be stores in "ans". So the user would have to run the program they want to Hexaedit to edit and return to the shell then run Hexaedit (Hexaedit should read "ans" and open the program in its editor), maybe later on the shell can just do it automatically if it detects Hexaedit.
Quick Update:

Hello Cemetech, It's Sunday and its time for Xenon weekly update. I did a lot this week so lets get into it:

Opening folders:
I attempted to open folders via code I haven't implemented it graphical, but it should work too.

The first screenshot is Xenon's in its home folder. While the second screenshot displays Xenon in it's appvar folder.

Displaying Program Attributes:
I also implemented displaying program attribute icons and allowing the sprite to change based on the sprite color.

I changed the attribute icons a bit (only the archive).

Displaying Backgrounds:
I created a prototype displaying a tile map image (I haven't implement dithering yet).


I don't think it has a major color difference based on original photo.


Developing Oxygen's windows and menu system:
I have started to create oxygen's windows and menu system. I will be implementing a few of it's functions into Xenon. Here is some concept art of it's window:


It should support a wide rage of widgets from button, menus, switches, and etc.
Here is a concept displaying Xenon using oxygen window system:


Thanks for reading, See you next week Smile
Quick Update:

Whhelllocme Cemetech!! To another weekly Xenon update, let's go over what I did this week.

Backgrounds have been implemented:
This was a painstaking issue I had throughout this week and mainly consumed most of my time. I had to look at how title sets are store and in appvar and then retrieving it's LUT if they had Xenon's Header file. I'll be implementing costume palette to increase the background quality (I'll be implementing it next week).




This is what happens when I use a default palette to display an image:

(There is a huge difference)

Saving and Loading:
Now when a user exits Xenon without logging in then Xenon will stay on the log in screen, same goes for exiting without logging out.

(in the screenshot, I exit and enter Xenon and return to the same point on entry)

Oxygen's Windows System:
Even though most of my time was taken up by working on displaying backgrounds, I managed to start development on some window functions. I've created functions that can display and change the color of a window. Here is a simple example of rendering:


New Oxygen Functions:
This week I created some new useful graphic routines for Oxygen. Here they are:

Code:

/**
 * Convert Rgb1555 colors to closet palette color.
 * @param color color to convert to Palette.
 * @returns (uint8_t) Palette Position.
 */
uint8_t oxy_Rgb1555toPalette(uint16_t color);

/**
 * Returns the difference between two colors (used in oxy_Rgb1555toPalette).
 * @param color1 color compared to color2.
 * @param color2 color compared to color1.
 * @return int The difference between to color (read more here https://en.wikipedia.org/wiki/Color_difference#sRGB).
 */
int oxy_ColorDifference(uint16_t color1, uint16_t color2);

/**
 * Convert Rgb1555 colors to RBG.
 * @param color color to convert.
 * @returns a pointer to RBG colors.
 */
uint8_t* oxy_Rgb1555ToRGB(uint16_t color);


//My favorite functions. 
// Used to create a Transparent effect on a rectangular area.
void oxy_DarkenArea(uint16_t x, uint8_t y, uint8_t w, uint8_t h, uint8_t amount);
void oxy_LightenArea(uint16_t x, uint8_t y, uint8_t w, uint8_t h, uint8_t amount);


Background Concept Art:
Lastly, I had time to create some background concept art:



Thank you for reading today's weekly update Smile, Tune in NEXT week!! (if you want to know what I'm doing next week join my discord server or look at Xenon Trello Board)
Quick Update:
Hello Ceeemmmeetch Welcome to other weekly update! Let's cover what I did this week.

Backgrounds:
Backgrounds!!! I implemented a custom palette for higher quality images. Here are the same example images from last week and on the right the image in Xenon.





Opening Folders:
Last week I was able to open folders through code, but this week I spent time adjusting oxygen mouse system to allow "button"/"clickable spots" to store data and run set pointer functions (I can use this later to run programs if necessary).


Oxygen Notifications:
Notification now don't depend on the time to render, For example, let's say it's 12:01 am and there is a notification set to display at 12:01 am. Now Oxygen has 2 new functions, 1 for detecting if a notification has a set time (I think this maybe very slow depending on how it's implemented) and 2 just detects all any notifications without set times (I think is the fastest method of display a
Notification).


(still needs rendering work)

Thank you for reading today's weekly update Smile, Tune in NEXT week!! (if you want to know what I'm doing next week join my discord server or look at Xenon Trello Board)
This is looking awesome! I love the way the backgrounds look with the new pallet. What if for notifications you would check every, say, ten minutes and see if any notifications needed to be rendered? You probably don't need notification times to be as precise as a minute, but I don't know whether that would be needed or not.
TIny_Hacker wrote:
This is looking awesome! I love the way the backgrounds look with the new pallet. What if for notifications you would check every, say, ten minutes and see if any notifications needed to be rendered? You probably don't need notification times to be as precise as a minute, but I don't know whether that would be needed or not.


Thanks for the support Smile.

I actually implemented a check timer before I made checking a bit simpler, but only it displays notifications as soon as the user get on, this includes after running a program. I'll try and implement it again if I can make it a bit simpler/optimized.

Will Xenon doesn't exactly need precise notification it's just in case if another program is using oxygen and want to display a notification in Xenon and hour later. For example let say I run FlipFrog and in a hour time I want the user to get back on the program so I set a notification to render in an hour (If the user doesn't get on in an hour time it will display when the user gets back on).
Great work! I love watching this project develop. Keep it up!
TheLastMillennial wrote:
Great work! I love watching this project develop. Keep it up!


Thanks for the support Smile.
I realize that this has nothing to do with either Xenon or Oxygen... but where'd you get all those cool backgrounds? Also, does it work with Vysion and/or the TI-OS background function?
darkwater4213 wrote:
I realize that this has nothing to do with either Xenon or Oxygen... but where'd you get the background from here? Also, does it work with Vysion and/or the TI-OS background function?


Xenon wallpapers do not work with VYSION or VYSION 2, as they are stored in a different format and at different resolutions (Xenon is something like 320 x 280, VYSION is 160 x 120, and VYSION 2 is full-res 320 x 240). It's likely Alvajoy is also using a different form of compression (if he is using it) and displaying the background than either version of VYSION.

As for the wallpaper, this is the closest I could find-a DuckDuckGo search for "synthwave wallpaper" seems to return a lot of similar ones.
Okay, cool. Although that does remind me of an idea I had a while ago: why don't Vysion and the like use the *.8ca format for images instead of *.8xv? That would make images more universally compatible, and then you don't need to store duplicates...
Because it's not at the same resolution and also in 16bpp-VYSION, VYSION 2, and Xenon all use 8bpp. Also, storing it in an appvar makes it very easy to control the format, including how the wallpapers are compressed, where the custom palette is stored (if applicable), the header string for detection, and so on.

EDIT-And Alvajoy's development Discord server is here. He has all of the wallpapers and the latest development news there, so check it out if you're interested.
Epsilon is Partly Right. Xenon does not use 320 * 280 res wallpaper. Instead, it uses a scaleable compressed tilemap that can resize to 320 * 240. At the time, Xenon background appvars currently don't operate with Vysion 2 or 1 (Epsilon explained it above).
Okay, thank you. I was wondering how that whole system worked.
I recently got a message about the ICE version of Xenon causing some small bugs. I was letting everyone the Current Version of Xenon in Cemetech Archives is littered with bugs use it at your own discretion.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 9 of 9
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement