Join us on Discord!
You can help CodeWalrus stay online by donating here.
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Unicorn

#1
Web / Holiday Vault
March 24, 2018, 09:21:25 AM
So I made this thing for a cemetech contest.

Its a website where people can submit their holiday ideas and how to do them. They will use markdown to describe everything, or post links to existing guides or lists of ideas.

The backend is in NodeJS and using Express and the Handlebars templating engine. I guess suggestions would be cool!

https://cc21.mogdan.xyz


#2
Gaming / Unicorn's Retro Console
November 03, 2016, 05:52:42 AM
Hey everyone! I recently got a lattepanda and created a case for it. I've been thinking about what to do with it, and I've decided to make a Retro Console! So I have a couple questions that I hope you guys can help with ;)

1. What are the best emulators? I'm open to any OS. Being able to scale up on a tv would be great, and support for keyboard would also be nice.

2. What controller should I get? I've looked around, and I'm gonna buy this one for myself, but for friends and family I would like to buy some cheaper ones. So far I found SNES controllers, 2 for 16 bucks, but @DJ Omnimaga told me that the N64 needs more buttons, so that is a problem. So preferable less than 20 dollars for 2 controllers that will work with most, if not all popular emulators.

3. Will I be able to also run atari games with those controllers?

Is there anything else I should know or ask?

Thanks in advance!
#3
AspirinCE
AspirinCE is a fun reaction game with three difficulty levels and 3 different highscores.

Dowload here






Hello again! So while I take a break from DoodleJump, I kinda got distracted and am now attempting to port Aspirin. So far I've got one of those stabby lines moving, a player, and one of the point balls. Collision is now working, and all I have to do is implement more lines! Any suggestions on how to do that?

#4
So I am attempting to create a doodle jump clone for the CE. I've gotten as far as a menu screen with a whole bunch of sprites, and I need to get double buffers working so I can erase graphics, and I've worked for a while trying to make it run fast, but to no avail. So, I'm wondering if anyone would like to try themselves to make this buffering work at an acceptable speed. Here's how fast I've gotten it (a video):



So there's that, and here is the code if you want to take a shot at making it work at a reasonable speed.


//--------------------------------------
// Program Name:
// Author:
// License:
// Description:
//--------------------------------------

/* Keep these headers */
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <tice.h>

/* Standard headers - it's recommended to leave them included */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <graphx.h>
#include <keypadc.h>
#include <fileioc.h>
#include <debug.h>
#include "gfx/sprites.h"
/* Other available headers */
// stdarg.h, setjmp.h, assert.h, ctype.h, float.h, iso646.h, limits.h, errno.h, debug.h

/* Put your function prototypes here */
void spriteDecompress();
void drawMenu();
/* Put all your globals here. */
gfx_image_t *splashScreen;
gfx_image_t *dLeft;
gfx_image_t *dLeftBG;
gfx_image_t *greenPlatform;
gfx_image_t *brokePlatform;
gfx_image_t *spring;
gfx_image_t *grid;
void main(void) {
uint8_t x = 130, key = 0, keypress = 0, guyY = 168;
bool guyUp = true;
gfx_Begin(gfx_8bpp);
gfx_FillScreen(gfx_white);
gfx_SetPalette( sprites_pal, sizeof(sprites_pal), 0);
spriteDecompress();
gfx_SetDrawBuffer();
drawMenu();
gfx_SetDrawScreen();
drawMenu();
gfx_TransparentSprite(greenPlatform, 130, 190);
while (kb_ScanGroup(kb_group_6) != kb_Clear) {
if (key & kb_Left) {
x -= 109;
guyY = 168;
gfx_TransparentSprite(greenPlatform, x, 190);
}
if (key & kb_Right) {
x += 109;
guyY = 168;
gfx_TransparentSprite(greenPlatform, x, 190);
}
gfx_SetDrawBuffer();
drawMenu();
gfx_TransparentSprite(greenPlatform, x, 190);
gfx_PrintStringXY("Start", 145, 197);
gfx_PrintStringXY("Settings", 30, 197);
gfx_PrintStringXY("Quit", 262, 197);
gfx_TransparentSprite_NoClip(dLeft, x+18, guyY);
gfx_SwapDraw();
gfx_SetDrawScreen();
if (guyUp == true)
guyY-=5;
if (guyUp == false)
guyY+=7;
if (guyY <= 80)
guyUp = false;
if (guyY >= 168)
guyUp = true;
key = kb_ScanGroup(kb_group_7);
keypress++;
}
gfx_End();
pgrm_CleanUp();
}
void drawMenu(void) {
uint8_t y = 0;
uint24_t x = 0;
gfx_FillScreen(214);
gfx_SetColor(213);
for (x = 0; x<320; x+=16) {
gfx_Line(x, 0, x, 240);
}
for (y = 0; y<240; y+=16) {
gfx_Line(0, y, 320, y);
}

gfx_ScaledTransparentSprite_NoClip(splashScreen, 60, 0, 2, 2);
gfx_SetTextFGColor(8);
gfx_PrintStringXY("Start", 145, 197);
gfx_PrintStringXY("Settings", 30, 197);
gfx_PrintStringXY("Quit", 262, 197);
}
void spriteDecompress(void) {
malloc(0);
splashScreen = gfx_AllocSprite(100, 47, malloc);
dLeft = gfx_AllocSprite(25, 25, malloc);
brokePlatform = gfx_AllocSprite(72, 19, malloc);
greenPlatform = gfx_AllocSprite(75, 22, malloc);
spring = gfx_AllocSprite(34, 17, malloc);
grid = gfx_AllocSprite(16, 16, malloc);
gfx_LZDecompressSprite(splashScreen_data_compressed, splashScreen);
gfx_LZDecompressSprite(brokePlatform_data_compressed, brokePlatform);
gfx_LZDecompressSprite(greenPlatform_data_compressed, greenPlatform);
gfx_LZDecompressSprite(spring_data_compressed, spring);
gfx_LZDecompressSprite(grid_data_compressed, grid);
gfx_LZDecompressSprite(dLeft_data_compressed, dLeft);
}
/* Put other functions here */


Help would be greatly appreciated :)
#5
I haven't a C topic here, so I made one! I'll just post all those things that I've experimented on here but aren't made into games, or my ideas, or my questions about things that don't yet have topics.

To start it off, a question!

How might I go about using the Tilemap functions in graphx.h? @MateoConLechuga could you help?

I realize there is this command:

void gfx_Tilemap(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset);

But what about this info? How would I set this data up?

/* Type for tilemap */
typedef struct gfx_tilemap {
uint8_t *map;             /* pointer to indexed map array */
gfx_image_t **tiles;          /* pointer to tiles */
uint8_t tile_height;      /* individual tile height */
uint8_t tile_width;       /* individual tile width */
uint8_t draw_height;      /* number of rows to draw in the tilemap */
uint8_t draw_width;       /* number of cols to draw tilemap */
uint8_t type_width;       /* 2^type_width = tile_width */
uint8_t type_height;      /* 2^type_height = tile_height */
uint8_t height;           /* total number of rows in the tilemap */
uint8_t width;            /* total number of cols in the tilemap */
uint8_t y_loc;            /* y pixel location to begin drawing at */
uint24_t x_loc;           /* x pixel location to begin drawing at */
} gfx_tilemap_t;

typedef enum gfx_tilemap_type {
gfx_tile_2_pixel = 1,      /* Set when using 2 pixel tiles */
gfx_tile_4_pixel,          /* Set when using 4 pixel tiles */
gfx_tile_8_pixel,          /* Set when using 8 pixel tiles */
gfx_tile_16_pixel,         /* Set when using 16 pixel tiles */
gfx_tile_32_pixel,         /* Set when using 32 pixel tiles */
gfx_tile_64_pixel,         /* Set when using 64 pixel tiles */
gfx_tile_128_pixel,        /* Set when using 128 pixel tiles */
} gfx_tilemap_type_t;


And the final question: How do I load a map using it? Do I need different sprites that are how ever large my tiles are and then I call some sort of command that sets them to certain places on the tilemap for it to draw? c4ooo explained that I draw it myself and just tell the tilemap how to behave, with tile size and whatnot, which I still need to know how to do.
And I'm assuming I really should learn how to use buffers to erase things.

(I'm thinking about making some type of platformer)
#6
I've found that we need a program to convert BBCode (The formatting that the forum uses) to Wiki Markup (The formatting that most of the community wikis use). It will make it easy to bring tutorials written on the forum into the wiki.

I will be using Ruby to write it, with Shoesfor a gui. It will not support images, tables, lists, fonts, and colors right away, if ever. It will definitely support code, bold, italics, underlines, and urls.

The one problem I have is figuring out how to distribute it. Using Ocra, the gem that lets you package your script into a .exe file doesn't quite work, and I'm unsure how I would be able to host it online.

Here's an example that uses all of the converted functions:

BBCtoWiki Example

Wassup! This is an example![/b]
Strike this text, it makes no sense!
And don't forget an image!

Lets indent this code, as well!
    codecodecode codecodecode codecodecode
    codecodecode codecodecode
    codecodecode
    codecodecode
    codecodecode codecodecode codecodecode

    ---------------------------------------------------------------------
    That was the post, here's the BBC:

    [size=24]BBCtoWiki Example[/size]

    [i]Wassup! [b]This is an example![/i][/b]
    [s]Strike this text, it makes no sense![/s]
    [size=12]And don't forget an image![/size]
    [img]https://codewalr.us/Themes/CodeWalrus/images/english/smflogo.png[/img]
    Lets indent this code, as well!
    [list][code]codecodecode codecodecode codecodecode
    codecodecode codecodecode
    codecodecode
    codecodecode
    codecodecode codecodecode codecodecode

    [/list][/code]
    -------------------------------------------------------------------
    And here is the Wiki Markup:

    == BBCtoWiki Example ======

    ''Wassup! ''''This is an example!'''''
    <strike>Strike this text, it makes no sense!</strike>
    ==== And don't forget an image! ======
    https://codewalr.us/Themes/CodeWalrus/images/english/smflogo.png
    Lets indent this code, as well!
    <blockquote><pre>codecodecode codecodecode codecodecode
    codecodecode codecodecode
    codecodecode
    codecodecode
    codecodecode codecodecode codecodecode
    </pre>
    </blockquote>

    ----------------------------------------------
    Go here to see an example of the Wiki Markup: https://www.cemetech.net/learn/Bbcodeconvertexample
    #7
    Following in the ways of the Ivoah, a crosspost.

    Quote from: UnicornHey everyone! I've decided to enter this contest with an idea of my own :)

    I just came up with a better idea for a game, without complex storylines and complicated mechanics. Without further ado, let me present Switch Operator!
    ---------------------------
    Switch Operator
    ---------------------------
    You take the place of a switch operator at a railroad tunnel. There are four lines, and each one has a gate for the trains to go through. Your job is to control the gates, as there are no sensors installed on the inside of this tunnel, so the gates only open automatically for incoming trains. You have to make sure that the trains don't run into a gate or some other obstacle. Only one gate can be open at a time, so you are constantly opening and closing them. Sometimes a gate will get stuck and you will have to make the train switch to an above or below track, and open the gate there. As the game progresses, the railroad upgrades their gate system so that multiple can be open at once, but they close automatically.
    ---------------------------
    You will need to be fast with your fingers, as the gates are controlled by the numbers
    • , [1], [4], [7] (the western gates) and [(-)], [3], [5], [9] (the eastern gates). The switches are controlled by simultaneously pressing [.], [2], [5], or [8] for the corresponding track, and pressing the arrow key in the direction you want to switch it towards, North or South (or up and down)

      So I'm not sure how this question thing will work, but I can ask any manner of questions having to do with the C libraries and I will not be penalized?
    Quote from: UnicornSo I've made progress! I have most of my sprites created and sorta working, so far.
    EDIT: Turns out I misunderstood palettes a little :P

    Anyways, heres a screenshot of the title screen. I need to fix up my erasing, but other than that, things are working out pretty good.

    Quote from: Unicorn
    Quote from: mr womp wompWow, very nice sprites and smooth moving, of course, you are going to want to get the cross sections of the track to be redrawn and maybe remove the white outline around  the train sprites, but it's looking good!
    Thanks! I already have removed the white outlines, and the redrawing but is a little harder to fix, because the sprite is 7 pixels wide, and the train moves 1 at a time. I could make the train move 7, but I would have to slow it down, and slowing it down may make it look less smooth.
    Quote from: UnicornIt is one train sprite, but I start drawing it at about X -190 so it looks as if it appears from the side of the screen. I do not use the clipping routine.

    Anyways, I've made progress!

    I've added highscores and actual loosing, as you can see in the screenshot. The pace of the game also increases as you progress.

    Quote from: Unicorn
    Quote from: MateoConLechugaA better option would be to double buffer and simply redraw the whole screen each time, and then swap buffers. This would be a lot easier than what you are trying to do currently :)
    I'm not entirely sure how effective that is, it seems to be slow, so I'm sticking with my original method for now.

    Besides that, though, I was wondering if anyone could make a short 2-4 page animation of this train switch to tracks above and below it?



    The red line would be the path of the train.

    #8
    Hey everyone! I'm going to attempt to port the Don't Touch the Spikes iPhone/Android game.

    Just a warning, it may not be exactly the same, but the game will have the same principle.

    So far I have no progress, except for testing things out in basic, I was waiting to make sure the SC3 was up to date with the C libraries. Anyways I probably am going to have a hard time testing the program as there is no online CE emulator, but I think in a few days ill be able to download CEmu. If someone would like to test for me, please PM. :)

    Also, the screen coords are 240x320 right?

    Anyways, I hope to get something done. :D
    #9
    Media Talk / Post Your Photos!
    June 03, 2016, 09:32:15 PM
    So yeah, post your photos here! I'll start us off with some bird photography I got in Costa Rica!


    A toucan....


    Rufous tailed hummingbird...


    And a "wild turkey" with some weird lighting


    I'm hoping to get some better pictures of hummingbirds, heading to cloud forest now, but I will definitely be getting a lot of monkeys!
    #10
    Have you ever played the timeless game Stacker on your Phone, or at an arcade? Well, now you can with the all new StackerCE! The program is complete, with customizable colors and two different skins, as well as an Endless gamemode! I suggest giving this game a try!

    Download



    [spoiler=Original]Hey everyone! I pretty much finished SwipeCE yesterday, so I decided to go ahead and start creating another game! At first I went for snake, but I haven't figured out how to get a snake moving around, so I decided to port Stacker!

    Anyways, Screenshot below, and I hope to finish it by next week Wednesday or so, depending on the amount of studying I have to do for finals ;)

    [/spoiler]
    #11
    Gaming / Survival Modded Server [BTW]
    May 07, 2016, 11:13:52 PM
    Hey everyone! At the urging of @Strontium I took my computer  turned server that I had lying around, and created a modded survival server. The only mod is Better Than Wolves, google it!

    If you want to join us, the ip is  Unicorn.noip.me and you need to install BTW. Check out this tutorial, it worked for me! http://www.sargunster.com/btwforum/viewtopic.php?f=9&t=8506

    So yeah, join us! If you can't connect, the power went out, or the internet died. Just wait a few hours, or PM me, and I should have it back up!
    #12
    For the past week or so, I've been working on porting this game to the CE. I've finished it, more or less.

    There is only one mode, the main one, and and there is no color mode. It does have a Highscore System, though!
    The other gameplay and color modes are planned, and should come out soon :)

    Screenshot:




    //--------------------------------------
    // Program Name:
    // Author:
    // License:
    // Description:
    //--------------------------------------

    /* Keep these headers */
    #include <stdbool.h>
    #include <stddef.h>
    #include <stdint.h>
    #include <tice.h>

    /* Standard headers - it's recommended to leave them included */
    #include <math.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <graphc.h>
    #include <keypadc.h>
    #include <debug.h>
    #include <fileioc.h>
    #include "gfx/sprites.h"
    /* Other available headers */
    // stdarg.h, setjmp.h, assert.h, ctype.h, float.h, iso646.h, limits.h, errno.h, debug.h

    /* Put your function prototypes here */
    void spritePal();
    void inGame();
    void menu();
    void loadHS();
    void setHS();
    /* Put all your globals here. */
    int key, key1, keyPress, swipe, rightSwipe, score = 0, color = 255, timer, timerStart, press;
    ti_var_t file;
    uint8_t highscore;
    bool correct, keyTouched;
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    void main(void) {
    loadHS();
    menu();
    gc_FillScrn(255);
    gc_CloseGraph();
    pgrm_CleanUp();
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    void setHS(void) {
    if (score >= highscore) {
    highscore = score;
        /* Close all open file handles before we try any funny business */
        ti_CloseAll();
         
        /* Open a file for writting*/
        file = ti_Open("swipehigh", "w");
         
        /* write some things to the file */
        if (file)
             ti_Write(&highscore, sizeof(highscore), 1, file); 
    }
    }
    void loadHS(void) {
    ti_CloseAll();
    file = ti_Open("swipehigh", "r");
    if (file) {
    ti_Read(&highscore, sizeof(highscore), 1, file);
        }   
        else {
        highscore = 0;
        }

    }
    void menu(void) {
    setHS();
    gc_InitGraph();
    gc_FillScrn(255);
    gc_InitGraph();
    gc_SetTextColor(0 | (255 << 8));
    gc_PrintStringXY("Swipe Arrow", 120, 1);
    gc_SetTextColor(192 | (255 << 8));
    gc_PrintStringXY("2nd to start", 118, 10);
    gc_PrintStringXY("Clear to exit", 117, 20);
    gc_PrintStringXY("Highscore:", 117, 50);
    gc_SetTextXY(195, 50);
    gc_PrintInt(highscore, 3);
    gc_SetPalette(sprites_pal, sizeof(sprites_pal));
    gc_NoClipDrawTransparentSprite(uparrow,120, 100, 75, 75);
    srand(rtc_Time());
    score = 0;
    while (kb_ScanGroup(kb_group_6) != kb_Clear) {
    if (keyPress % 15 == 0) {
    if (key1 & kb_2nd)
    inGame();
    }
    keyPress++;
    key = kb_ScanGroup(kb_group_7); //Arrow Keys
        key1 = kb_ScanGroup(kb_group_1);  //2nd
    }
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    void inGame(void) {
    gc_InitGraph();
    gc_FillScrn(255);
    gc_SetColorIndex(23);
    rightSwipe = gc_RandInt(1,8);
    timerStart = 30;
    timer = timerStart;
    while (kb_ScanGroup(kb_group_6) != kb_Clear) {
    if (keyPress % 15 == 0) {
    timer--;
    if (key & kb_Up) {
    swipe = 1;
    keyTouched = true;
    press++;
    }
    if (key & kb_Down) {
    swipe = 2;
    keyTouched = true;
    press++;
    }
    if (key & kb_Right) {
    swipe = 3;
    keyTouched = true;
    press++;
    }
    if (key & kb_Left) {
    swipe = 4;
    keyTouched = true;
    press++;
    }
    if (key & kb_Up && rightSwipe >= 5) {
    swipe = 5;
    keyTouched = true;
    press++;
    }
    if (key & kb_Down && rightSwipe >= 5) {
    swipe = 6;
    keyTouched = true;
    press++;
    }
    if (key & kb_Right && rightSwipe >= 5) {
    swipe = 7;
    keyTouched = true;
    press++;
    }
    if (key & kb_Left && rightSwipe >= 5) {
    swipe = 8;
    keyTouched = true;
    press++;
    }
    if (rightSwipe == swipe && keyTouched == true) {
    correct = true;
    keyTouched = false;
    timer = timerStart;
    }
    if (rightSwipe != swipe && keyTouched == true || timer <= 0) {
    keyTouched = false;
    gc_InitGraph();
    gc_FillScrn(255);
    gc_PrintStringXY("You Lost",120,5);
    while (kb_ScanGroup(kb_group_1) != kb_2nd) {
    }
    menu();
    }
    if (correct == true) {
    rightSwipe = gc_RandInt(1,8);
    gc_InitGraph();
    gc_SetColorIndex(color);
    gc_NoClipRectangle(120,80,75,75);
    score++;
    correct = false;
    }
    }
    if (rightSwipe == 1) {
    spritePal();
    gc_NoClipDrawTransparentSprite(uparrow,120, 80, 75, 75);
    }
    if (rightSwipe == 2) {
    spritePal();
    gc_NoClipDrawTransparentSprite(downarrow,120, 80, 75, 75);
    }
    if (rightSwipe == 3) {
    spritePal();
    gc_NoClipDrawTransparentSprite(rightarrow,120, 80, 75, 75);
    }
    if (rightSwipe == 4) {
    spritePal();
    gc_NoClipDrawTransparentSprite(leftarrow,120, 80, 75, 75);
    }
    if (rightSwipe == 6) {
    spritePal();
    gc_NoClipDrawTransparentSprite(uparrowWrong,120, 80, 75, 75);
    }
    if (rightSwipe == 5) {
    spritePal();
    gc_NoClipDrawTransparentSprite(downarrowWrong,120, 80, 75, 75);
    }
    if (rightSwipe == 8) {
    spritePal();
    gc_NoClipDrawTransparentSprite(rightarrowWrong,120, 80, 75, 75);
    }
    if (rightSwipe == 7) {
    spritePal();
    gc_NoClipDrawTransparentSprite(leftarrowWrong,120, 80, 75, 75);
    }
    if (press == 10 && timerStart > 7) {
    timerStart = timerStart - 5;
    press = 0;
    }

    gc_SetColorIndex(255);
    gc_NoClipRectangle(1,1,16,16);
    gc_SetTextXY(1,1);
    gc_PrintInt(score, 3);
    keyPress++;
    key = kb_ScanGroup(kb_group_7); //Arrow Keys
        key1 = kb_ScanGroup(kb_group_1);  //2nd
    }
    menu();
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    void spritePal(void) {
    gc_SetPalette(sprites_pal, sizeof(sprites_pal));
    }
    /* Put other functions here */
    #13
    Web / Codewalrus USerstyle
    May 04, 2016, 04:48:13 AM
    Hey Everyone! I had been converting all of the websites I used to a sort of galaxy themeing, and I decided ot make a Codewalrus one!

    Here's the link to it, though the forums look kinda bad, if you check it out. https://userstyles.org/styles/127443/codewalr-us-galaxy-theme



    If anyone wants a different background or just something different, let me know, I may make one for you!
    #14
    I've been experimenting with C again, and I think I'm going to attempt to create some sort of shooting game. Not sure how this going to work, but if it gets to complicated, I'm gonna make it into something of a level by level jumping/parkour/portal type thing (without portals)

    So here's a screenshot...



    Tell me what you think!
    #15
    Randomness / Weird "lightbulb"moments.
    March 03, 2016, 07:21:38 AM
    Just post those times were you realize something, and it probably is a coincedence, is not at all related to anything, but is still amazing.

    When I was in history class the other day, we were talking about the 5 "civilized" tribes in north america. A moment later, I was thinking about what I am going todo to conquer the world in Civ 5. I realized the connection, and my mind was blown. Is the game some protest against the trail of tears? there is the brave newworld scenarios... :P
    #16
    I'm figuring out how to use C with the CE, so I decided to port this game.

    I've got the displaying part down, with the absence of buttons to change the color you want, but that should be easy to implement.



    I've been trying to figure out how to check the colors of the squares adjacent and how to change their colors. Currently I have this in mind:

    Select color
    Change top left color
    If the color of an adjacent is color of last color, change to current color
    increase turns
    repeat

    Do you think this works? I'm going to check using getpixel, and I'm starting to believe that I'm gonna need to have each square mapped using a variable. Suggestions would be welcome on how to do this!
    #17
    Hardware / Unicorn's Arduino Explorations
    February 21, 2016, 10:46:55 PM
    Hey! So I just recently got myself an arduino mega, an ethernet shield, and a 2.8" LCD TFT Capacitive touch breakout board from adafruit. This is were I'll be posting about my adventures and questions with and about these items.

    I also want to know, are there any good, simple calc modding things that I could do with an arduino? I do have the 83+ SE for its spacious case.

    So the first thing I did:
    I created CircleIt on the Arduino using my Adafruit LCD.

    Video:



    #include <Adafruit_GFX.h>    // Core graphics library
    #include <SPI.h>       // this is needed for display
    #include <Adafruit_ILI9341.h>
    #include <Wire.h>      // this is needed for FT6206
    #include <Adafruit_FT6206.h>
    // The FT6206 uses hardware I2C (SCL/SDA)
    Adafruit_FT6206 ctp = Adafruit_FT6206();
    // The display also uses hardware SPI, plus #9 & #10
    #define TFT_CS 10
    #define TFT_DC 9
    Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
    int oldcolor, currentcolor;
    int radius = 65;
    int score;
    int highscore;

    void setup(void) {
      while (!Serial);     // used for leonardo debugging

      Serial.begin(115200);
      Serial.println(F("Cap Touch Paint!"));

      tft.begin();

      if (! ctp.begin(40)) {  // pass in 'sensitivity' coefficient
        Serial.println("Couldn't start FT6206 touchscreen controller");
        while (1);
      }

      Serial.println("Capacitive touchscreen started");

      tft.fillScreen(ILI9341_BLACK);
      tft.setCursor(27,130);
      tft.setTextSize(4);
      tft.setTextColor(ILI9341_PINK);
      tft.print("CircleIt");
      tft.setCursor(27,165);
      tft.setTextSize(2);
      tft.setTextColor(ILI9341_GREEN);
      tft.print("Highscore: ");
      tft.print(highscore);
      while (1) {
        if (ctp.touched()){
          tft.fillScreen(ILI9341_BLACK);
          tft.fillCircle(120,166,50,ILI9341_PINK);
          tft.drawCircle(120,166,51,ILI9341_BLUE);
          tft.drawCircle(120,166,52,ILI9341_BLUE);
          tft.drawCircle(120,166,53,ILI9341_BLUE);
          tft.drawCircle(120,166,54,ILI9341_BLUE);
          tft.drawCircle(120,166,55,ILI9341_BLUE);
          tft.setTextSize(2);
          tft.setTextColor(ILI9341_GREEN);
          tft.setCursor(1,1);
          tft.fillRect(1,1,100,15,ILI9341_BLACK);
          tft.print("Score: ");
          tft.print(score);
          return;
        }
      }
    }

    void loop() {
      // Retrieve a point 
      TS_Point p = ctp.getPoint();
      // flip it around to match the screen.
      p.x = map(p.x, 0, 240, 240, 0);
      p.y = map(p.y, 0, 320, 320, 0);
      Serial.print("(");
      Serial.print(p.x);
      Serial.print(", ");
      Serial.print(p.y);
      Serial.println(")");
      tft.drawCircle(120,166,radius,ILI9341_YELLOW);
      if (radius <= 50){
        tft.drawCircle(120,166,radius,ILI9341_PINK);
      }
      if (radius > 50 && radius <= 55){
        tft.drawCircle(120,166,radius,ILI9341_BLUE);
      }
      if (radius > 55){
        tft.drawCircle(120,166,radius,ILI9341_BLACK);
      }
      if (ctp.touched() && radius <= 50 || ctp.touched() && radius > 55) {
        if (score > highscore)
          highscore = score;
        tft.fillScreen(ILI9341_BLACK);
        tft.setTextSize(2);
        tft.setTextColor(ILI9341_WHITE);
        tft.setCursor(1,1);
        tft.println("GAME OVER");
        tft.setTextColor(ILI9341_ORANGE);
        tft.println("tap to play again.");
        tft.setCursor(1,37);
        tft.setTextColor(ILI9341_GREEN);
        tft.print("Highscore: ");
        tft.print(highscore);
        tft.setTextColor(ILI9341_PURPLE);
        tft.setCursor(1,53);
        tft.print("Score: ");
        tft.println(score);
        score = 0;
        while (1) {
          if (ctp.touched()){
            radius = 65;
            tft.fillScreen(ILI9341_BLACK);
            tft.fillCircle(120,166,50,ILI9341_PINK);
            tft.drawCircle(120,166,51,ILI9341_BLUE);
            tft.drawCircle(120,166,52,ILI9341_BLUE);
            tft.drawCircle(120,166,53,ILI9341_BLUE);
            tft.drawCircle(120,166,54,ILI9341_BLUE);
            tft.drawCircle(120,166,55,ILI9341_BLUE);
            tft.setTextSize(2);
            tft.setTextColor(ILI9341_GREEN);
            tft.setCursor(1,1);
            tft.fillRect(1,1,100,15,ILI9341_BLACK);
            tft.print("Score: ");
            tft.print(score);
            return;
          }
        }
      }
      if (ctp.touched() && radius <= 55 || ctp.touched() && radius > 50) {
        score++;
        tft.setTextSize(2);
        tft.setTextColor(ILI9341_GREEN);
        tft.setCursor(1,1);
        tft.fillRect(1,1,100,15,ILI9341_BLACK);
        tft.print("Score: ");
        tft.print(score);
      }
      radius--;
      radius--;
      radius--;
      if (radius <= 1){
        radius = 65;
      }
    }


    Its great fun, and I'm thinking about what to do next with these things. :)


    Oh yeah, I got a hc-05 Bluetooth module from my robotics teacher and got that working with an arduino using the arduino IDE's built in serial port.
    I decided to make it a little more fancy and create a ruby program to interface with it. But, I got a permissions error of some sort when trying to interface with the Bluetooth. But, when trying to interface with an arduino everything worked fine. I asked about it here: http://stackoverflow.com/questions/35190016/bluetooth-serial-port-permission-error-errnoeacces-ruby-serialport-gem
    #18
    As some of you may know, PT_ and I have been working on separate tutorials for xLIBC. We have decided to combine our efforts, and with the help of Kerm, begin working on our tutorial on the Doors CSE wiki. It is located here.
    This will be our development thread, where we post and keep track of everything we have done and are working on. The wiki already has the basic outline of the tutorial. We also will create an exemplary program that explains and uses all of the commands.

    Todo
    - real(1 to real(9
    - Move already written commands real(1 to real(4 into the wiki
    - Move spriting and tilemap explanations to wiki
    - Create exemplary program

    If anyone has any questions or suggests, please post below!
    #19
    So, I finally came up with an idea for the contest!  :w00t:

    WalTourney:

    Storyline:
    You are the lowly :walrii: and you must advance through the annual WalTourney to get the prize money that is needed to keep your forum alive. As you go, you get some amounts of money from the battles, but you need that money to train and get better skills to be able to be the WalTourney Champion.

    Gameplay:
    The game is essentially a bunch of battles randomized in a tournament style. The battles will be something like an RPG's battles, turn based. As you go along, you get new :walrii: skins as you reach certain training levels. Once you become the champion (it may take a few years) money will rain down upon you and you will get to choose which calc site you would like to give your money to. There will also be an "Other" option. (Would this be ok? I'm not sure, it might cause some problems)

    Technical Stuff:
    Will be written in xLIBC/Celtic/BASIC for the TI 84+ CSE
    Screenshots to come!

    Any Suggestions?
    #20
    Site Discussion & Bug Reports / Karma Tracking IRC Bot?
    September 03, 2015, 03:44:39 AM
    I was thinking that we should have a karma tracking IRC bot. I have one set up, all it needs is a little more tuning and to join the channel. (nothing complicated, just has !karma <nick> and <nick>++/-- ) Would you staff like to use mine? If you are concerned about privileges, and other things, you can go through all the files and say what will work, and what won't.

    And its a premade bot, I'm just editing the commands available.

    Anyhow, just asking you guys, @DJ Omnimaga @Juju @Streetwalrus .
    #21
    General Help & Troubleshooting / Which ODROID to get?
    August 13, 2015, 12:28:44 AM
    So, I've been researching things like the Rpi 2 and ODROID mini computers, and I've come to a decision. I want to get an ODROID.  I want to use the ODROID to run a minecraft server, for at least 8 people at a time.

    So there is the ODROID C1+, for 35 dollars 1gb or ram. http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143703355573

    Then, there is the ODROID XU4, for 77 dollars with 2 Gb of ram. http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825

    Which one should I get? Is the price difference worth the ram and things? Keep in mind I want to run a survival minecraft server.
    #22
    I know many of you programmers for the TI 84+ CSE would like to use sprites in your TI-BASIC programs. Well, I'm sure, if you researched it, you know you can, using XLIBC, a library included in Doors CSE. But, due to some vauge inormation here, it has been hard for some programmers to implement sprites. Fear no more, though, as you now have a tutorial for it.

    Before you start this tutorial, I assume you can set up an xlibc program. If not, go here: Link Unavailable

    2 - Creating a spritesheet.

    Go over and download TokenIDE We will use this to make and export a spritesheet in the xlibc format, .8xv.

    Make a spritesheet using the image editor. [Ctrl] + [I]
       Set the colors to xLIBC

    Then check the Draw Grid checkbox and zoom in to seven.
    Use the bucket tool to cover the whole spritesheet in one color.

    Create your 8x8 sprite. To keep it 8x8, make sure the sprite does not expand past the 8x8 square in the grid.
    Then, set the width and height to:
    Width: 128
    Height: 64
    Then, go to: File > Save As > xLIBC Tiles
    Then, name your file and click save, once you are in your project directory
    You should now have a file called "FileName.8xv"!
    You can also go to File > Open to open a premade spritesheet, then follow the instructions to create the AppVar.

    This is the spritesheet I will be using in this tutorial, if you would like to use it:


    Go here for the appvar: https://usercontent.irccloud-cdn.com/file/pYIsCZqn/SPRT.8xv


    Now, all you need to do, is send this file to your calculator, and you are done creating you spritesheet. You just need to display your sprite, which I will cover in the next section.


    2 - Displaying the sprites


    Now, you can program this on your calculator, but I suggest using SourceCoder and  JsTIfied if you have a cemetech.net account, or TokenIDE and  WabbitEmu if you do not have an account. This just makes things easier for developing larger programs.

    First off, start with this code, where "SPRT" is the name of the Spritesheet AppVar you made earlier.

    real(0,1,1
    real(8,1,0
    real(0,3,4,0
    "SPRT
    real(5,0,0

    This loads your Appvar into temporary RAM for later drawing sprites using real(4

    Now, take this line, and add it to your program, replacing the text, with the corresponding numbers.


    real(4,0,X,Y,WIDTH,HEIGHT,XOFFSET,YOFFSET,TRANSINDEX,UPDATELCD,PICINDEXSTART,PICINDEX0,PICINDEX1...etc


    X - The X coord to display at

    Y - The Y coord to display at

    WIDTH - How many 8x8 chunks the sprite takes up in width. 1 for just an 8x8 sprite, 2 for a 16x16, and so on.

    HEIGHT -  How many 8x8 chunks the sprite takes up in height. 1 for just an 8x8 sprite, 2 for a 16x16, and so on.

    XOFFSET and YOFFSET - As on now, I have no idea what these do. Just set them to zero, it doesn't effect anything that way.

    TRANSINDEX - The color that the parser sees, and makes transparent. So, I set the background of my sprite sheet to green which is identified by the number 7, so any time a green color like that shows up, it becomes transparent.

    UPDATELCD - If you set this to 1, it switches sides of the screen for drawing. If you set it to zero, nothing happens. Set it to zero for your purposes.

    PICINDEXSTART - This tells the calc what Pic Index to load from in this case, we load from 0, so set it to zero.

    PICINDEX0, 1, and 2 - Below

    For my spritesheet, my sprite is located on the top left hand corner, in which that area just so happens to be associated with the number 0, shown below. So, in place of PICINDEX0, I would place a 0. The numbers correspond to each 8x8 square.


    So, we have our code:

    real(0,1,1
    real(8,1,0
    real(0,3,4,0
    "SPRT
    real(5,0,0
    real(4,0,0,0,1,1,0,0,7,1,0,0
    Pause


    When you run the code, you should see something like this:


    Now, if my sprite was 16x16, I would need to change 4 things. WIDTH, HEIGHT, and PICINDEX

    The changes:
    WIDTH: 2
    HEIGHT: 2
    PICINDEX1: 0
    PICINDEX2: 1
    PICINDEX3: 8
    PICINDEX4: 9


    So my entire sprite displaying code would become:

    real(0,1,1
    real(8,1,0
    real(0,3,4,0
    "SPRT
    real(5,0,0
    real(4,0,0,0,2,2,0,0,7,1,0,0,1,8,9
    Pause


    I hope this helped you! Post below if you have any questions :)

    Thanks to tr1p1ea for writing this library, and Kerm for helping me learn this myself AND hosting dcs.cemetech.net for us programmers.

    Oh yeah, and PM me or post below if you notice any grammatical errors. :P
    #23
    So, @alexgt has let me port his Nagoji contest entry to the TI 84+ CSE!
    Its all finished! Wooooo!
    You must play the part of the Ninja (Ninja-go) and deke all of the obstacles. This version includes highscores, crazy colors, and even a preview on the menu!
    This will only work on the TI 84+ CSE. More levels will come. Eventually.
    HAVE FUN!

    I have heard something about @DJ Omnimaga trying to port this to the CE???

    Download below!

    #24
    SO, this is where you can post requests for any type of pixel art. (Just not NSFW)  :thumbsup:

    So yeah, I have a request:
    Can anyone try to make some 8x8 dice for my Game Of Pig game that would work in a .gif like this one?
    [spoiler=LARGE .GIF]

    [/spoiler]
    I'll then convert it to a .png and put it in my spritesheet:
    #25
    So, I decided to make a question/display thread about ruby. I am currently trying to make a guessing game, sticking with the first game I made in TI-BASIC :P

    Anyways, I'll ask questions here and showcase my programs, and maybe post downloads. :)

    EDIT: A little input and display program:

    Code (Input/Display) Select

    while 1
    puts 'Type whatever you want here!'
    text = gets.chomp
    puts text
    if text == 'Quit'
        abort
    end
    end


    Also, a guessing game :)
    If you have ruby installed, run the attached file.
    Else, install it :P

    guess = 10000
    puts 'Guess a number from 0 to 50!'
    number = rand(50)
    while guess > 0
      guess = gets.to_i
      if guess == number
        puts 'Great job! You guessed the number!'
        abort
      elsif guess > number
        puts 'That is not the right number.'
        puts 'Try again, with a LOWER number'
      elsif guess < number
        puts 'That is not the right number.'
        puts 'Try again, with a HIGHER number'
      end
    end
    #26
    Games / [TI-84+CSE] Game Of Pig
    July 13, 2015, 03:44:22 PM
    This is Game of pig, a dice game. There are some glitches with the screenshots, but they are not what really happens in game. Emulators  <_<
    It requires Doors CSE.
    There is currently no AI, so single player will not work. I am working on making the AI. :)

    The AI has been made! So now you can be a loner! :P

    Go to http://cs.gettysburg.edu/projects/pig/piggame.html to see the rules.

    If you have any opinion on the AI or something like that, please post below.

    Screenshot:
    Two Player Game:

    One Player Game:

    Have Fun!
    #27
    So, this is my contest entry: Whack-A-Color for the CSE
    It shows you random color to look for, and then shows a 3x3 screen of different color squares. You must "hit" the square that is the color shown before the game starts. To hit the color, you will use the numpad. eg: if the color is on the top right, hit the [7]. For every color you "hit" you get one point.

    Oh yeah, and there is a timer. :D

    Scoring: The scores are displayed once the timer runs out, they are color coded, so RED<=5 points and so on.



    The top right is the color to hit, and the bottom right is your score. Scoring is as follows:

    BLUE    =    5
    GREEN   =  10
    ORANGE = 15
    RED     =     20
    Yellow    =   25
    PURPLE =  30


    Download here.

    EDIT (DJ): Removed unnecessary text scrolling tag usage
    #28
    Well, as a break from MoneyWalrii, I am making the game of pig, link to explanation soon. I have the opening scene done; as seen in the video.



    Oh yeah, and the background noise is a Marx brothers movie ;D

    Link to game: http://cs.gettysburg.edu/projects/pig/piggame.html
    #29
    Other / Why your avatar?
    June 10, 2015, 03:15:36 AM
    So, why your avatar everyone?

    Mine because Harpo Marx is the best silent comedian in the world.

    I also thought that is was time for a change from my awesome unicorn avatar. :P
    #30
    Hardware / Macintosh PowerBook 190cs [Fix?]
    June 05, 2015, 05:00:23 AM
    Well, I just acquired a Macintosh PowerBook 190cs. It seems like the place where the power cord is plugged in is not connected well enough. When wiggling the connection around, the screen occasionally flashes yellow.

    Anyways, I was thinking, could this be fixed? I'm going to open it up and take some pictures tomorrow.

    So, yeah, It might be cool to have around. :D
    #31
    Other / Make a Mythology!
    May 10, 2015, 10:01:12 PM
    I was just thinking about a mythology for Unicorns and this is what I can up with:

    [spoiler="The Unicorn Mythology"]

    The evil Nikkybot once ruled the world... He was a hated tyrant of all life. Then, one day a splendid majestic unicorn named Uniacorn rose out a volcano in hawaii (nikkybot didn't know about hawaii) and raised the Unicorn rebellion there. They attacked nikkybot and his clones 3 years later, and almost one, but they ran out of rainbows for their ammo. So, they created a solvent to put in their rainbows to make the nikkybots' blood turn into rainbows after it was exposed to air. They fought again, one year later, and one because a siege could not stop the UNICORNS! They then raised their leader, Uniacorn to the top and named him leader of the land. he didn't abuse this privilege, and all life loved him because of the rainbows and moonbows he gave the people. But now, there is so much technology, that nikkybot might come back, so the Unicorns are gathering forces in hawaii to take the nikkybot out if he comes back.
    [/spoiler]

    Tell me what you think, and maybe make your own!
    #32
    Other / Your post/coding Milestones!
    May 01, 2015, 05:29:20 AM
    So, lets have a post and coding milestone topic!

    This is my 303... And I have officially made a game with xlibc! Wooooooo!



    Please don't make it spammy as DJ said!
    #33
    Contests / [4x3 Contest] Hyper Hues/Whack-a-Color
    April 29, 2015, 05:42:37 PM
    NEW IDEA
    So, this is my contest entry: Whack-A-Color for the CSE
    It shows you random color to look for, and then shows a 3x3 screen of different color squares. You must "hit" the square that is the color shown before the game starts. To hit the color, you will use the numpad. eg: if the color is on the top right, hit the [7]. For every color you "hit" you get one point.

    Oh yeah, and there is a timer. :D

    Scoring: The scores are displayed once the timer runs out, they are color coded, so RED<=5 points and so on.



    The top right is the color to hit, and the bottom right is your score. Scoring is as follows:

    BLUE    =    5
    GREEN   =  10
    ORANGE = 15
    RED     =     20
    Yellow    =   25
    PURPLE =  30


    Download here.

    OLD IDEA:
    [spoiler]
    So, this is my contest entry: Hyper Hues for the CSE
    It displays 12 squares (may become 9)  that are all the same color, except one that is a different shade of that color. You must press the corresponding key to guess the color within a constantly shortening time span, and for every color you get right, you get 1 point.

    Scoring: The scores are displayed once the timer runs out, they are color coded, so RED<=5 points and so on.

    Screenshots:


    Did I forget anything?  ???

    I hope not :P
    [/spoiler}
    #34
    So, I've been in the market for a new laptop, I've gotten fed up with my old mac. This laptop has to be under 450 dollars and be able to run Minecraft and other semi 3D games. I, of course, want it to be good for coding. Wink (And I don't want it to be a tablet like the Surface)

    The specs I want to get:
    ::Intel core i5 or i7 or the equivalent AMD processor.
    ::More than 5 GB of RAM
    ::4 hour= battery life
    ::Graphics card

    I have looked around the interwebs, I am I currently looking at this Lenovo.

    What do you think? Please post any thoughts you have!

    If I get the 500GB option, I can get a CE too...   :ninja:
    #35
    So a while back I posted a few low quality recording of an ukulele festival at my school.
    Now, I have high quality ones, so here they are!

    Compare:

    Stairway to heaven (Led Zeppelin)



    Stairway to heaven (Ukulele)

    http://picosong.com/VdnY

    Dream On (Aerosmith)



    Dream On (Ukulele) I was a soloist!!!!!! :D

    http://picosong.com/Vdnn

    Don't Stop (Journey)



    Don't Stop (Ukulele)

    http://picosong.com/Vdns



    Then, the Classic Rock Medley

    http://picosong.com/VdnF
    #36
    Contests / Contests discussion (split thread)
    April 04, 2015, 05:40:46 PM
    Yeah, I think I will also do a RPG, but it would be a bit different. There should be an RPG  themed contest!
    #37
    Hey! Since we don't have a completed game with :walrii: in it, I figured I'd make on!

    It's going to be a small RPG, with basic leveling up, and 6 levels of enemies. No storyline, and there really won't tooooo much variety, being that I don't know how to use tilemaps.



    [spoiler=old post]
    Well, since we don't have a game featuring walrii and I really need to learn xlibC,  I decided to make a walrii game!
    The whole idea would be to throw money at walrii and rack up the dough.

    Don't expect it to be finished really soon because, well its my first time.

    So yeah! I'll be posting questions and updates and screenshots here in the future!
    #38
    Randomness / Joke Thread
    March 31, 2015, 04:39:58 AM
    So, I noticed we don't have a joke thread, and now here one is! >:D

    Post any jokes here and keep them clean please. There are people under 18 in this wonderful world. ;)

    Well, here's the first one1

    A mushroom walks into a bar and orders a drink.
    The barkeeper says: "HEY! We don't serve your kind here! Get OUT!"

    The mushroom says: "Why? I'm a FUNGI! :blah:
    #39
    Update for part 1.
    I have the basics of the enemies, I just need to implement enemy shooting and speed up the bullets. I also need to clean up the screen.
    #40
    Games / [TI-84+CSE] Caticle Chronicles (Downloads)
    January 01, 2015, 06:00:24 AM
    Caticle Chronicles, the story in which cats fly is space, and have misadventures.

    In this installment, the cats are attacked my caterites, or cat pirates, and you must shoot them down to destroy them, in increasingly harder difficulties.

    This program is now available for both the CE and the CSE. I'm working on porting it to the monochrome calcs as well.

    If you are looking for the development thread, look at  This.
    :D

    Cemetech Link to CaterPiCSE: CaterPi
    Cemetech Link to CaterPiCE: Coming soon!




    CaterPiCSE


    CaterPiCE
    #41
    Programs and Utilities / [TI-84+CSE] Letter Draw
    January 01, 2015, 05:38:38 AM
    So, this is my drawing program Letter Draw:
    Letter Draw is a simple drawing program where you can change the tool and color easily. It is not very complicated and has a very simple saving saving future. More info in the readme.
    Note: Updates are subject to come.


    Link: Letter Draw

    Edit:
    Minor Update: Fixed a bugs and added background colors. Probably added bugs to :P
    Powered by EzPortal