DeepSeek AI for coding with LibNX

  • Thread starter Thread starter littlesmurf
  • Start date Start date
  • Views Views 10,864
  • Replies Replies 73
  • Likes Likes 18
I've managed to create complex programs using only AI. Even right now i'm using it to write an automation program. As long as you give it documentation and some context it does the job well. People who think AI is completely useless simply have no clue how to use it and prompt correctly.
Exactly this,

I asked deepseek to make a list menu with 4 options, using a red background and blue item with the item text white and selected item have a green border using sdl2. I got a few errors when compiling and running a couple of times, then I told deepseek the errors I was getting so it fixed the code and then made a version of code that worked.


This is the nro running on the switch once deepseek fixed the errors.
2025013100133700-A8CC7D635A643C4ECCA12004192CC15E.jpg


Ok, cool but now I need to centre the text and add two buttons:

Untitled.jpg


Next fixed code looks like this:
2025013100214600-A8CC7D635A643C4ECCA12004192CC15E.jpg
 
Last edited by littlesmurf,
Maybe just learn how to code instead of heavily relying on AI to do all of the work for you. It's just so lazy. Although, I will say it can be useful for solving problems without having to search the problem via Google. Makes things a lot more easier to facilitate and how to re-arrange it.
 
Last edited by SylverReZ,
I just love all the techbros that think that "AI" is the solution to everything.

A LLM cannot figure out any easier way to do anything. All it can ever output is stuff that has already been inputted as training data.

Next will be a thread coming up with a "softmod exploit for patched Switch units" based on some BS a LLM outputs for the prompt "patched switch exploit pls".
I have had AI help me with coding problems that I was not able to solve through Google and which may well have taken me an entire day to figure out by myself, multiple times.
Of course it has limitations, but as a tool it can and does make a lot of things easier.
 
Learn how to code instead of heavily relying on AI to do all of the work for you. It's just so lazy.
I know how to code, but not everyone knows everything, when AI writes the code it explains how the code works, how to go about solving a problem and shows you the code to write. This can save hours of time and makes life far easier to learn something you never knew. Instead of scouring the internet for hours looking for some example code for something you don't know it's a simple task to write a prompt to AI and have it explain and reply instantly. AI is a great tool to have in your toolbox and it's only going to get better from now on and be more widely adopted. I advise many to get on board with it especially coders should learn to use it as they will inevitably need to use in their jobs from this point forward. Not just coders but graphics artists and music artists should get on board as well to unleash your creativity.
 
Exactly this,

I asked deepseek to make a list menu with 4 options, using a red background and blue item with the item text white and selected item have a green border using sdl2. I got a few errors when compiling and running a couple of times, then I told deepseek the errors I was getting so it fixed the code and then made a version of code that worked.


This is the nro running on the switch once deepseek fixed the errors.
View attachment 483495

Ok, cool but now I need to centre the text and add two buttons:

View attachment 483497

Next fixed code looks like this:
View attachment 483498
This is actually REALLY good! What model did you use for this example? I’d like to see if I could get it running locally.
 
This is actually REALLY good! What model did you use for this example? I’d like to see if I could get it running locally.
I asked Deepseek, this is the code it gave me:

Code:
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h> // Include SDL_ttf header
#include <switch.h>

#define SCREEN_WIDTH 1280
#define SCREEN_HEIGHT 720

// Function to render text
void renderText(SDL_Renderer *renderer, TTF_Font *font, const char *text, int x, int y, SDL_Color color) {
    SDL_Surface *surface = TTF_RenderText_Solid(font, text, color);
    SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
    SDL_Rect rect = {x, y, surface->w, surface->h};
    SDL_RenderCopy(renderer, texture, NULL, &rect);
    SDL_FreeSurface(surface);
    SDL_DestroyTexture(texture);
}

int main(int argc, char *argv[]) {
    // Initialize SDL, SDL_ttf, and libnx
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        printf("SDL_Init failed: %s\n", SDL_GetError());
        return 1;
    }
    if (TTF_Init() == -1) {
        printf("TTF_Init failed: %s\n", TTF_GetError());
        return 1;
    }
    romfsInit();

    // Initialize the pad
    PadState pad;
    padConfigureInput(1, HidNpadStyleSet_NpadStandard);
    padInitializeDefault(&pad);

    // Create a window and renderer
    SDL_Window *window = SDL_CreateWindow("List Menu Example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
    if (!window) {
        printf("SDL_CreateWindow failed: %s\n", SDL_GetError());
        return 1;
    }
    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
    if (!renderer) {
        printf("SDL_CreateRenderer failed: %s\n", SDL_GetError());
        return 1;
    }

    // Load font
    TTF_Font *font = TTF_OpenFont("romfs:/font.ttf", 48);
    if (!font) {
        printf("Failed to load font: %s\n", TTF_GetError());
        return -1;
    }

    // Define menu items
    const char *menuItems[] = {"Option A", "Option B", "Option X", "Option Y", "Option +", "Option -"};
    int selectedItem = 0; // Index of the currently selected item

    // Colors
    SDL_Color textColor = {255, 255, 255, 255}; // White text
    SDL_Color itemBackgroundColor = {0, 0, 255, 255}; // Blue menu item background
    SDL_Color borderColor = {0, 255, 0, 255};   // Green border for selected item

    // Calculate menu item positions
    int menuItemWidth = 200; // Width of each menu item
    int menuItemHeight = 60; // Height of each menu item
    int menuItemSpacing = 20; // Spacing between menu items
    int totalMenuHeight = (6 * menuItemHeight) + (5 * menuItemSpacing); // Total height of all menu items and spacing
    int startY = (SCREEN_HEIGHT - totalMenuHeight) / 2; // Starting Y position to center the menu

    // Main loop
    bool running = true;
    while (running) {
        // Clear screen with red
        SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); // Red background
        SDL_RenderClear(renderer);

        // Render menu items
        for (int i = 0; i < 6; i++) {
            int x = (SCREEN_WIDTH - menuItemWidth) / 2; // Center horizontally
            int y = startY + i * (menuItemHeight + menuItemSpacing); // Position vertically

            // Draw a blue background for the menu item
            SDL_Rect itemRect = {x, y, menuItemWidth, menuItemHeight};
            SDL_SetRenderDrawColor(renderer, itemBackgroundColor.r, itemBackgroundColor.g, itemBackgroundColor.b, itemBackgroundColor.a);
            SDL_RenderFillRect(renderer, &itemRect);

            // Draw a green border around the selected item
            if (i == selectedItem) {
                SDL_SetRenderDrawColor(renderer, borderColor.r, borderColor.g, borderColor.b, borderColor.a);
                SDL_RenderDrawRect(renderer, &itemRect);

                // Draw a second rectangle for the 2-pixel border
                SDL_Rect innerRect = {itemRect.x + 1, itemRect.y + 1, itemRect.w - 2, itemRect.h - 2};
                SDL_RenderDrawRect(renderer, &innerRect);
            }

            // Render menu item text
            renderText(renderer, font, menuItems[i], x + 10, y + 10, textColor); // Adjust text position within the rectangle
        }

        // Handle input
        padUpdate(&pad);
        u64 kDown = padGetButtonsDown(&pad);

        if (kDown & HidNpadButton_Up) {
            selectedItem = (selectedItem - 1 + 6) % 6; // Move selection up
        } else if (kDown & HidNpadButton_Down) {
            selectedItem = (selectedItem + 1) % 6; // Move selection down
        } else if (kDown & HidNpadButton_A) {
            printf("%s selected!\n", menuItems[selectedItem]); // A button selects the item
        } else if (kDown & HidNpadButton_B) {
            printf("%s selected!\n", menuItems[selectedItem]); // B button selects the item
        } else if (kDown & HidNpadButton_X) {
            printf("%s selected!\n", menuItems[selectedItem]); // X button selects the item
        } else if (kDown & HidNpadButton_Y) {
            printf("%s selected!\n", menuItems[selectedItem]); // Y button selects the item
        } else if (kDown & HidNpadButton_Plus) {
            printf("%s selected!\n", menuItems[4]); // Plus button selects "Option +"
        } else if (kDown & HidNpadButton_Minus) {
            printf("%s selected!\n", menuItems[5]); // Minus button selects "Option -"
        } else if (kDown & HidNpadButton_Plus) {
            running = false; // Exit on Plus button
        }

        // Present the renderer
        SDL_RenderPresent(renderer);
    }

    // Clean up
    TTF_CloseFont(font);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    TTF_Quit(); // Quit SDL_ttf
    SDL_Quit();
    romfsExit();
    return 0;
}
[code]

You can use the makefiles I posted above, just add a ttf font to romsfs folder (see code above for the font name).
Post automatically merged:

Cool eh!
Post automatically merged:

@Marusu
Change the red backgrounds or solid colours now to load an image instead, then you can create beautiful GUI's easily and play music etc as sdl2 supports all off this.

Here's a quick example to load a background image and border around the buttons:
2025013101102400-DB1426D1DFD034027CECDE9C2DD914B8.jpg


Code all written by deepseek:
Code:
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h> // Include SDL_ttf header
#include <SDL2/SDL_image.h> // Include SDL_image header for PNG support
#include <switch.h>

#define SCREEN_WIDTH 1280
#define SCREEN_HEIGHT 720

// Function to render text
void renderText(SDL_Renderer *renderer, TTF_Font *font, const char *text, int x, int y, SDL_Color color) {
    SDL_Surface *surface = TTF_RenderText_Solid(font, text, color);
    SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
    SDL_Rect rect = {x, y, surface->w, surface->h};
    SDL_RenderCopy(renderer, texture, NULL, &rect);
    SDL_FreeSurface(surface);
    SDL_DestroyTexture(texture);
}

int main(int argc, char *argv[]) {
    // Initialize SDL, SDL_ttf, SDL_image, and libnx
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        printf("SDL_Init failed: %s\n", SDL_GetError());
        return 1;
    }
    if (TTF_Init() == -1) {
        printf("TTF_Init failed: %s\n", TTF_GetError());
        return 1;
    }
    if (IMG_Init(IMG_INIT_PNG) == 0) {
        printf("IMG_Init failed: %s\n", IMG_GetError());
        return 1;
    }
    romfsInit();

    // Initialize the pad
    PadState pad;
    padConfigureInput(1, HidNpadStyleSet_NpadStandard);
    padInitializeDefault(&pad);

    // Create a window and renderer
    SDL_Window *window = SDL_CreateWindow("List Menu Example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
    if (!window) {
        printf("SDL_CreateWindow failed: %s\n", SDL_GetError());
        return 1;
    }
    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
    if (!renderer) {
        printf("SDL_CreateRenderer failed: %s\n", SDL_GetError());
        return 1;
    }

    // Load font
    TTF_Font *font = TTF_OpenFont("romfs:/font.ttf", 48);
    if (!font) {
        printf("Failed to load font: %s\n", TTF_GetError());
        return -1;
    }

    // Load PNG background
    SDL_Texture *backgroundTexture = IMG_LoadTexture(renderer, "romfs:/background.png");
    if (!backgroundTexture) {
        printf("Failed to load background image: %s\n", IMG_GetError());
        return -1;
    }

    // Define menu items
    const char *menuItems[] = {"Option A", "Option B", "Option X", "Option Y", "Option +", "Option -"};
    int selectedItem = 0; // Index of the currently selected item

    // Colors
    SDL_Color textColor = {255, 255, 255, 255}; // White text
    SDL_Color itemBackgroundColor = {0, 0, 255, 255}; // Blue menu item background
    SDL_Color borderColor = {0, 255, 0, 255};   // Green border for selected item
    SDL_Color outerBackgroundColor = {128, 0, 128, 255}; // Purple background for the entire menu

    // Calculate menu item positions
    int menuItemWidth = 200; // Width of each menu item
    int menuItemHeight = 60; // Height of each menu item
    int menuItemSpacing = 20; // Spacing between menu items
    int totalMenuHeight = (6 * menuItemHeight) + (5 * menuItemSpacing); // Total height of all menu items and spacing
    int startY = (SCREEN_HEIGHT - totalMenuHeight) / 2; // Starting Y position to center the menu
    int startX = (SCREEN_WIDTH - menuItemWidth) / 2; // Starting X position to center the menu

    // Calculate the bounding box for the entire menu
    SDL_Rect menuBoundingBox = {
        startX - 10, // X position (with padding)
        startY - 10, // Y position (with padding)
        menuItemWidth + 20, // Width (with padding)
        totalMenuHeight + 20 // Height (with padding)
    };

    // Main loop
    bool running = true;
    while (running) {
        // Clear screen
        SDL_RenderClear(renderer);

        // Draw the PNG background
        SDL_RenderCopy(renderer, backgroundTexture, NULL, NULL);

        // Draw the purple background for the entire menu
        SDL_SetRenderDrawColor(renderer, outerBackgroundColor.r, outerBackgroundColor.g, outerBackgroundColor.b, outerBackgroundColor.a);
        SDL_RenderFillRect(renderer, &menuBoundingBox);

        // Render menu items
        for (int i = 0; i < 6; i++) {
            int x = startX; // Center horizontally
            int y = startY + i * (menuItemHeight + menuItemSpacing); // Position vertically

            // Draw a blue background for the menu item
            SDL_Rect itemRect = {x, y, menuItemWidth, menuItemHeight};
            SDL_SetRenderDrawColor(renderer, itemBackgroundColor.r, itemBackgroundColor.g, itemBackgroundColor.b, itemBackgroundColor.a);
            SDL_RenderFillRect(renderer, &itemRect);

            // Draw a green border around the selected item
            if (i == selectedItem) {
                SDL_SetRenderDrawColor(renderer, borderColor.r, borderColor.g, borderColor.b, borderColor.a);
                SDL_RenderDrawRect(renderer, &itemRect);

                // Draw a second rectangle for the 2-pixel border
                SDL_Rect innerRect = {itemRect.x + 1, itemRect.y + 1, itemRect.w - 2, itemRect.h - 2};
                SDL_RenderDrawRect(renderer, &innerRect);
            }

            // Render menu item text
            renderText(renderer, font, menuItems[i], x + 10, y + 10, textColor); // Adjust text position within the rectangle
        }

        // Handle input
        padUpdate(&pad);
        u64 kDown = padGetButtonsDown(&pad);

        if (kDown & HidNpadButton_Up) {
            selectedItem = (selectedItem - 1 + 6) % 6; // Move selection up
        } else if (kDown & HidNpadButton_Down) {
            selectedItem = (selectedItem + 1) % 6; // Move selection down
        } else if (kDown & HidNpadButton_A) {
            printf("%s selected!\n", menuItems[selectedItem]); // A button selects the item
        } else if (kDown & HidNpadButton_B) {
            printf("%s selected!\n", menuItems[selectedItem]); // B button selects the item
        } else if (kDown & HidNpadButton_X) {
            printf("%s selected!\n", menuItems[selectedItem]); // X button selects the item
        } else if (kDown & HidNpadButton_Y) {
            printf("%s selected!\n", menuItems[selectedItem]); // Y button selects the item
        } else if (kDown & HidNpadButton_Plus) {
            printf("%s selected!\n", menuItems[4]); // Plus button selects "Option +"
        } else if (kDown & HidNpadButton_Minus) {
            printf("%s selected!\n", menuItems[5]); // Minus button selects "Option -"
        } else if (kDown & HidNpadButton_Plus) {
            running = false; // Exit on Plus button
        }

        // Present the renderer
        SDL_RenderPresent(renderer);
    }

    // Clean up
    SDL_DestroyTexture(backgroundTexture);
    TTF_CloseFont(font);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    IMG_Quit(); // Quit SDL_image
    TTF_Quit(); // Quit SDL_ttf
    SDL_Quit();
    romfsExit();
    return 0;
}
[code]
 
Last edited by littlesmurf,
I support AI; to a certain extent. If it can help you create a structure or understand an existing workflow faster if it was trained and you couldn't because you were "missing" something or it escaped you (sometimes devs are very lazy in documenting their tools and don't mind ignoring you leaving you with no answers)

But if the project becomes more complex, you will suffer more. Because the chances of the AI code working will degrade and the success rate will decrease, and you will depend more on this AI than on your own understanding of what is happening, and it will end up being another unfinished project.

AI only answers questions that have been answered for years and are not easily accessible, but not for current problems.
 
OK. Let it create more specific stuff: recursive dir browsing on FTP.
I think a better idea is this: Do the same thing, but use deko3d and the shared system font instead of SDL. That will make it shit its pants and prove our points too. Granted, it seems to be lost on this guy either way. He says he knows how to code, but seems impressed by AI spitting out bare-bones baby shit.
 
  • Like
Reactions: Djakku and l7777
I once tried asking an AI what was wrong with my code after deliberately removing a single bracket on line four. It gave me several tips on making my code more human-readable, and then randomly restructured the code a bit.

But after a little more prompting, including straight up telling it I thought there was a missing bracket, it told me to delete the main function of the code which would have made it entirely non-functional and impossible to debug.*

I think this demonstrates why "AI" is not going to revolutionise coding. My IDE identified the problem in about 0.001 milliseconds. It did this by an advanced method known as "counting the brackets".

These AIs do not follow logical methods like this - they stir the word soup of their training data until it looks right. And my code was only one character off, it already LOOKED 99.9% good. So it flailed around for a bit, pointlessly shifting stuff around, mixing my code with training data code structure to produce something that now looked about 98℅ good without actually addressing any problems.

But more simply, an alarm went off in my head the moment it told me to make my code more human readable. The Artificial Intelligence Machine telling me to make it more human readable. Because that's what most of its training data was - people asking questions to other people, and the common response of how to make it easier and cleaner to interpret. For people. Why would the Artificial Intelligence care about human-readability? It's all just word soup.

AI's main innovation is in how easily the prompts can be put together, literally just natural language. But it fails at anything more complicated than generating simple boilerplate template code, something that could be done much more efficiently with an actual specific solution - like, a list of known templates maybe with some configuration options. But that's not as appealing to the stock market as The Magic Tool that can Do Anything. God help us all when someone tries to use it to do something important.

"Just use [other model]", "it's only early stages" - no amount of resources pumped into different variants of this autocorrect engine are ever going to teach it how to think. It'll just get faster and maybe make things that look slightly more right. It still won't be able to count brackets, not without the growing industry of "humans at AI companies who manually graft on non-AI solutions to cover up the holes".

*and this wasn't even where the missing bracket was, like, it deleted 95℅ of the code and the bracket count was STILL off by one!
 
Last edited by Sir Tortoise,
ChatGPT kind of give me the same things. Not sure why to use a censored AI over ChatGPT
You need to go check your source because that’s not true open AI has more censorship than any other AI out there. Note, if you wanted to, you could remove the censorship from most ai except for open AI. Stop spreading misinformation.
Post automatically merged:

I’ve been reading the comments, and it’s clear that no one is even trying to understand where this guy is coming from. At no point did he say this tool is the best or that it can do everything—he simply stated that it helps him get to where he’s going. Yet people are mad at him for that. You can’t make this up.

Also, keep in mind—this is the worst it’s ever going to be. Think about what you could use this tool for two years ago versus what it can do now. If you hate it, that’s fine. But acting like it’s completely useless? That’s a stretch. It may not help you, but it can help others.

You’re the same people who, if asked for help, would be too busy or condescending.
 
Last edited by JaRocker,
  • Like
Reactions: RubyDaCherry
I've managed to create complex programs using only AI. Even right now i'm using it to write an automation program. As long as you give it documentation and some context it does the job well. People who think AI is completely useless simply have no clue how to use it and prompt correctly.
That’s what I’ve been trying to say

Cursor is a powerful IDE. If you know how to use all its tools and have it reference your own files/documentation

It’s still not a replacement if you have zero experience in programming tho
 
It didn't.

Yeah, and did you try to do it? No? I thought so. It accurately pointed out challenges that make it impossible to work without modifying libmtp (more accurately custom USB driver), and there is nothing in that output helpful to resolve that issue

AI Bros can only write prompts, doing anything above that is too hard for them. This doesn't stop them from hyping it.

Go back to reddit or X with this bullshit. HOS is a completely different beast than well-documented and very popular big three.
Not trying to defend these type of people, but you sound butthurt, you should at very least try to understand what OP is trying to accomplish here, as JaRocker pointed out.

The fact that people in the comments don't even seem to understand the difference between DeepSeek and OpenAI/ChatGTP and its implications also doesn't help.
 
You need to go check your source because that’s not true open AI has more censorship than any other AI out there. Note, if you wanted to, you could remove the censorship from most ai except for open AI. Stop spreading misinformation.
Ask DeepSeek what happend in 1989 at tiananmen square, Last time I did, it gave me nothing as an answer.
ChatGPT maybe is censored, but its not controlled by a government entity. I just gave one example,

Only thing I gotten ChatGPT to censor me about have been if I ask directly for copyright infringing material. And sometimes when it misunderstands me.

EDIT: https://www.merriam-webster.com/dictionary/censorship seems to only be censorship when a state censor you and not a company.
 
You have a point there. A well-meaning person comes along to say "Hey, I tried this AI thing to do X, and it looks like it works, don't you see how useful it is?" Yes, these are tools that do have their uses, and yes, they can be good to get you started or save time on generic tasks.

If this was the point OP was making, I agree with it. I'm not mad. I am just so very tired of all the hype and aggressive marketing nonsense around this tech, and the arguments used tend to be the same.

There is the argument of "if you don't like it, don't use it, but everyone else will". That's FOMO marketing talk, and the sad part is that it works. I'm sick of watching companies buying into "AI" in my current line of work due to FOMO. Some actually state outright they want their product to "have AI" or "do X with AI", but when questioned further, the people involved invariably have no idea what that means or what they want to do with it, much less how. Others are smarter, and simply slap "AI" buzzwords on their existing product, just to stay competitive.

Then, there's the argument of "but it will only improve over time". Will it? The leading models are already trained on the largest datasets available, and are being actively used to poison the net with garbage machine-generated articles, in a corporate greed-driven attempt to increase ad revenue. What will happen once they start feeding back on their own garbage?

Like others, this tech is also being used against people for profit. People don't have the resources of a company or a nation, so what they let us use is controlled and intentionally limited, even beyond censorship and bias.

Just keep in mind these tools do not work as the average layperson has been (mis)led to expect.
 
Ask DeepSeek what happend in 1989 at tiananmen square, Last time I did, it gave me nothing as an answer.
ChatGPT maybe is censored, but its not controlled by a government entity. I just gave one example,

Only thing I gotten ChatGPT to censor me about have been if I ask directly for copyright infringing material. And sometimes when it misunderstands me.

EDIT: https://www.merriam-webster.com/dictionary/censorship seems to only be censorship when a state censor you and not a company.
Sigh both are censored. One can be removed the other cannot what’s your point
 
I been using AI myself. It all depends on what you're programming. If it's anything important, like embedded software: Not a chance in hell. But if it's for something like making a parser for large note pad files...I found it's great.

Personally I wouldn't ever use for something like homebrew. Too much can go wrong if you don't know exactly what you're looking at. I'm pretty sure it'd be possible to even brick things if you get a bit too into it.
 
  • Like
Reactions: JaRocker
Like others, this tech is also being used against people for profit. People don't have the resources of a company or a nation, so what they let us use is controlled and intentionally limited, even beyond censorship and bias.
That's the big deal with DeepSeek. Yes, the trained data they provide is biased as expected, but the AI and its weights are all open source and don't need nearly as much resources as ChatGPT and others do, if you have a decent PC you can run it locally and totally offline.

These companies are seeing this as a real threat to them, and I think it is actually a good thing for everyone.
 
  • Like
Reactions: Nephiel
How many trees had to be cut down and lakes to have dried up for this?

Maaaan, reading the documentation of the framework you're using only takes so long.
 
  • Like
Reactions: hippy dave
OK. Let it create more specific stuff: recursive dir browsing on FTP.
I'll post that later, I've almost completed it.
Post automatically merged:

2025020910295800-76A162A172A481640E7186896FCBA8D8.jpg


Here's a menu I've been working on, it's got parallax scrolling. Text scrolling, gradiant fading. Effects Console box, touchscreen, button detection, other graphics effects. It was all done with DeepSeek. Even the starfield was drawn by DeepSeek using a python script it made to generate it. It mostly it uses libnx and sdl2. I've attached a compiled NRO so you can see it in all it's glory. I've also written a lightweight ftp server for the switch and a funky sinus scroller and some other stuff using Deepseek and chatGPT. If I get any issues with code I tell it what the problem is and it fixes it, sometimes I upload code and ask it to make it better and fix stuff. TBH anyone without any coding experience can learn really fast with these tools as they tell you everything and help you without being condesending or giving you crap.
 

Attachments

Last edited by littlesmurf,
  • Like
Reactions: WE1ZARD

Site & Scene News

Popular threads in this forum