How hard is it to program a SNES game?

How hard is it to program a SNES game?

Thalidomide Vintage Ad Shirt $22.14

Ape Out Shirt $21.68

Thalidomide Vintage Ad Shirt $22.14

  1. 2 years ago
    Anonymous

    I think they're written C

    • 2 years ago
      Anonymous

      assembly.

      https://i.imgur.com/ByW4u4C.png

      How hard is it to program a SNES game?

      On an actual SNES? HARD! It would be much easier to make a SNES-like game on PC or phone.

      • 2 years ago
        Anonymous

        doubt it, probably machine lang

        C was rarely used for that generation

        C on an 8-bit CPU? Are you daft? C is barely usable with 16-bit hardware.

        Modern compilers could absolutely make C or even C++ work, but ASM was used back in the day because it was the only thing that could squeeze enough performance from the consoles

        OP, listen to

        Pretty fricking hard, there's a shitload of graphics modes that don't seem to have any use by virtue of being completely inferior to other graphics modes.

        Honestly just make a Genesis game unless you REALLY need something the SNES offers for some reason, like Mode 7 or the better palette. Genesis has SGDK, which is a VERY good library for writing Genesis games in C. Best used on Windows but a few people have gotten in working on Linux and Mac.

        , SNES is more capable but Genesis is easier to program for since the CPU is moronicly fast and VRAM is unified as well as DMA being simpler

        • 2 years ago
          Anonymous

          >Modern compilers could absolutely make C or even C++ work
          yes. compilers for 6502 based systems have advanced a long way, no longer generating epic amounts of bloated code, but still not recommended to use for any routines requiring cycle accurate timing or performance.

      • 2 years ago
        Anonymous

        >How hard is it to program a SNES game?
        surprisingly easy in assembly. has dma so you can copy large amounts of data around using very few instructions. audio system is probably the hardest part to learn.

        >On an actual SNES? HARD!
        if you already know 6502, you could learn the basics of snes hardware programming in a weekend. you'll have graphics and sprites going in no time. hardest part is the audio system, but thankfully there's publicly available SPC drivers.

        I think they're written C

        >I think they're written C
        some were, most were not and were programmed in pure 65816 assembly. some musicians also used assembly to construct their audio tracks. no fancy midi sequencers or trackers, just typing in notes, rests and effects by hand either in pure assembly language or MML.

        • 2 years ago
          Anonymous

          >some musicians also used assembly to construct their audio tracks
          You literally had to. Both the SNES and Genesis had a second CPU for handling audio so musicians had to know how to write code for these coprocessors

          • 2 years ago
            Anonymous

            the musicians didn't need to know how to code for it. for megadrive, sega's drivers used a custom variant of MML language, some snes drivers did too. musician didn't need to know how to read the code, just the music data and an ability to know how to compile it. the expectations for musicians was low, anon. very few were writing their own drivers or they got a lot of help.

    • 2 years ago
      01100010 01101111 01110100

      doubt it, probably machine lang

    • 2 years ago
      Anonymous

      C was rarely used for that generation

    • 2 years ago
      Anonymous

      C on an 8-bit CPU? Are you daft? C is barely usable with 16-bit hardware.

      • 2 years ago
        Anonymous

        >on an 8-bit CPU?
        Anon, snes was 16-bit

        • 2 years ago
          Anonymous

          >Anon, snes was 16-bit
          8/16-bit microprocessor. 65816.

  2. 2 years ago
    Anonymous

    Pretty fricking hard, there's a shitload of graphics modes that don't seem to have any use by virtue of being completely inferior to other graphics modes.

    Honestly just make a Genesis game unless you REALLY need something the SNES offers for some reason, like Mode 7 or the better palette. Genesis has SGDK, which is a VERY good library for writing Genesis games in C. Best used on Windows but a few people have gotten in working on Linux and Mac.

    • 2 years ago
      Anonymous

      really?
      Sega genesis games were kind off shitty compared to the super nintendo except for sonic. I'd figure if they were easier to make they should have been better.

      • 2 years ago
        Anonymous

        >Sega genesis games were kind off shitty compared to the super nintendo except for sonic
        profoundly ignorant take

    • 2 years ago
      Anonymous

      They're both done in assembly on a 65c or 6800 chips etc. You don't use C and it wasn't really until ps2 dreamcast era that console games used C.Maybe some custom stuff for psx

      • 2 years ago
        Anonymous

        https://github.com/Stephane-D/SGDK
        Maybe back in the day, but it is very possible to use C to develop Genesis games now.
        Shit's rather performant too, you'll want to use ASM if you want to do anything cutting-edge but that won't matter unless you're a pro or an idiot.

        • 2 years ago
          Anonymous

          Wouldn't C (with inline/file separated) macro assembly be the ideal?

          • 2 years ago
            Anonymous

            I think you can do that with SGDK, don't quote me on that though.

      • 2 years ago
        Anonymous

        Super Nintendo and earlier games were likely written in assembly but the modern dev tools use C

      • 2 years ago
        Anonymous

        PSX and N64 era games were written in C on SGI workstations. Nobody used assembly for that generation of consoles.

        • 2 years ago
          Anonymous

          SEGA told devs to use assembly that gen and made everyone hate them

          • 2 years ago
            Anonymous

            Sega should've just not made the Saturn lol
            Probably made sense to tell devs to use assembly back then
            now of the many chips in the Saturn. a few were sane. There's a 68k and 2xSH2's Those actually likely had solid C Compiler support, if not officially - there was likely something unofficially

            The VDP chips on the other hand were a custom design, with VLIW instruction processing. C Compilers and back ends were largely not optimized to deal with that and so assembly was better. (This would remain largely unimproved, as lack of good enough tooling destroyed the whole Itanium project by the more funded and connected Intel)

        • 2 years ago
          Anonymous

          >Nobody used assembly for that generation of consoles.
          they did. inline assembly in c was a thing, homosexual. and it was used. c is just not that great for everything. and those sdks for both systems were notoriously bad.

        • 2 years ago
          Anonymous

          here's a poor devBlack person programming pure assembly for saturn's shitty dsp

          he has more videos on that channel of him programming assembler for that "era"

          > PSX and N64 era games were written in C on SGI workstations
          > Nobody used assembly for that generation of consoles.
          shut the frick up.

        • 2 years ago
          Anonymous

          N64 had microcode that required assembly programming. Some games used a whole lot of it and consequently are a lot harder to emulate correctly, like Rogue Squadron. Or even Majora's Mask uses microcode for the audio.

          • 2 years ago
            Anonymous

            Most N64 games didn't bother with custom RSP microcode which is why HLE worked so well for so long. But some games used it a whole bunch which is why certain games fricked up spectacularly on those titles.

  3. 2 years ago
    Anonymous

    as difficult as the game you're trying to make. want to build an atari 2600 on a snes? cake walk.

    • 2 years ago
      Anonymous

      Easy to learn, hard to master.

      probably these, making a simple nes-tier game would probably not be difficult, but making a AAA snes game will require a bunch of skills and good knowledge of the system's limitations and quirks

  4. 2 years ago
    Anonymous

    Easy to learn, hard to master.

  5. 2 years ago
    Anonymous

    just write a NES game and use Project Nested to generate a SNES rom
    https://github.com/Myself086/Project-Nested

  6. 2 years ago
    Anonymous

    Dunno about SNES but there's an open source NES game if you want to get an idea of the code
    https://github.com/Vector35/PwnAdventureZ

  7. 2 years ago
    Anonymous

    pokemon red and blue were 512kb
    A single letter character is 1 byte
    How the heck did they do it?

    • 2 years ago
      Anonymous

      programmers were of a different breed then

      • 2 years ago
        Anonymous

        I'm tired of people having this stupid perception that games used to be harder to program because there were more limitations
        The simplicity of things made things easier not harder, it's ten times harder to program a game today

        • 2 years ago
          Anonymous

          I really want a game console with dead simple graphics rendering like the consoles before the ps3

          The tight coupling of software and hardware made it faster and easier to program

        • 2 years ago
          Anonymous

          I cant think of a harder programming task than making a modern game engine from scratch.
          Gtards talk about making a game from scratch as if it were equivalent to using html+css vs wordpress or something.
          Still pokemon red was made in assembly. Imagine just push and mov bytes and making a whole game that way. But yeah my main question is how did they make it so small. Hell a pixel is one byte.

          • 2 years ago
            Anonymous

            making simple stuff in assembly is simple
            as for how they make it so small, an assembly op for Gameboy is probably only a single byte. A pixel certainly isn't one byte, Gameboy only had four colors, it's 2 bits

          • 2 years ago
            Anonymous

            Oh maybe thats why
            If its 16x16 pixels and each pixel is 2 bits that'd be.... small

      • 2 years ago
        Anonymous

        Iwata had to come and start whooping ass when the coders back then couldn't handle it

        pokemon is a very simple game

        don't you have some paste to finish eating

        pokemon red and blue were 512kb
        A single letter character is 1 byte
        How the heck did they do it?

        compression was huge in this.
        for a slight example of what's going on

        here's how Pokemon sprites were compressed for the battle scenes

        and while not Pokemon, this Is an example of some solid era relative space saving techniques

        ?t=171

    • 2 years ago
      Anonymous

      pokemon is a very simple game

      • 2 years ago
        Anonymous

        If pokemon is a simple game whats a complex game?

        • 2 years ago
          Anonymous

          World of Warcraft

        • 2 years ago
          Anonymous

          nethack

        • 2 years ago
          Anonymous

          That's actually an interesting question.
          Ignoring graphics, what is the largest game?

          Some sort of flight sim or maybe a city builder?

          • 2 years ago
            Anonymous

            >Some sort of flight sim or maybe a city builder?
            Not even close
            an MMORPG or some other big online game

          • 2 years ago
            Anonymous

            I'm not so sure.
            I know a lot of them have full fledged economies and stuff, but the gameplay is usually fairly simple.

          • 2 years ago
            Anonymous

            The complexity of the gameplay doesn't determine how big the codebase is
            Best judge of how much code a game has is how much content it has, how long it's been supported
            So no single-player single release game is going to have a large codebase, although the engine behind it could be large
            Live service games that have content added and developed over years, decades even like WoW is probably going to have quite a large codebase

          • 2 years ago
            Anonymous

            a driving simulator that uses google maps data to accurately simulate driving around your city like its gtav

        • 2 years ago
          Anonymous

          Dwarf Fortress

          • 2 years ago
            Anonymous

            Actually a good point.
            Its only 700,000 lines of code though

    • 2 years ago
      Anonymous

      How my C string implementation is, I handle words like tokens, which I store in a dictionary. I guess they use that in the game. When a character talks, every word can actually be a reference to the word in the dictionary. Assume a 16 bit dictionary, a 15 word long saying is now only 30 bytes, if it were encoded as characters it would probably be 60 or more. In fact it would be trivial to expand that out and find common word patterns and put those in the dictionary. Easy compression

      • 2 years ago
        Anonymous

        you're so smart 🙂

    • 2 years ago
      Anonymous

      I'm tired of people having this stupid perception that games used to be harder to program because there were more limitations
      The simplicity of things made things easier not harder, it's ten times harder to program a game today

      I really want a game console with dead simple graphics rendering like the consoles before the ps3

      The tight coupling of software and hardware made it faster and easier to program

      Imagine a game world 100GB big. No patches, no nothing.
      Xbox/PS2 Graphics.
      Everything filled to the brim, guaranteeing hours upon hours of new content waiting to be explored.
      Is that what you want?

    • 2 years ago
      Anonymous

      512KB is not even impressive for a game like Pokemon which has repeating sprites all over the place.
      Look at what they can fit nowadays in a standard 64KB Windows .exe
      https://invidious.snopyta.org/watch?v=6INL_pxX8L4

      • 2 years ago
        Anonymous

        it's not really fair to compare a game on an 8bit machine to a scene demo on modern hardware
        try comparing it to modern games written for old platforms
        here's a 40k NES game;
        http://iteroni.com/watch?v=ZWQ0591PAxM

      • 2 years ago
        Anonymous

        Thanks for introducing me to that world

    • 2 years ago
      Anonymous

      maybe not using frameworks and having sovl

      • 2 years ago
        Anonymous

        >not using frameworks
        a retro console is somewhat like having a framework except the framework is built into the hardware and can't be changed if it has issues
        >thing i did as a child == soul
        >thing i didn't do as a child == soulless
        yeah we know

        • 2 years ago
          Anonymous

          cope and seethe frametards, you will never be optimized and performant, you will never run true transparent effects on 1GB ram again

    • 2 years ago
      Anonymous

      isn't the z80/8080 really good at crunching numbers?

      • 2 years ago
        Anonymous

        It's a 40 year old 8-bit processor that doesn't even have divide instructions. Are you stupid?

    • 2 years ago
      Anonymous

      Hecking impossible!

  8. 2 years ago
    Anonymous

    Thst screenshot is NES, not SNES, you fricking zoomster.

  9. 2 years ago
    Anonymous

    NES is 65C02, technically a Ricoh clone. SNES is 65C816. The best bet for targetting those today would be to use a macro assembler, also termed "high level assembly", but not as high level as C.

  10. 2 years ago
    Anonymous

    Im undecided on which was probably harder to program.
    World of warcraft or the original age of empires.
    World of warcraft didnt use terribly complex lighting i think and age of empires did a lot despite of tge limitations at the time.

    • 2 years ago
      Anonymous

      world of warcraft

    • 2 years ago
      Anonymous

      WoW's net code alone eats the entirety of complexity of AoE by a mile

  11. 2 years ago
    Anonymous

    not too bad. you have to make your own tools when they don't exist, though.
    this is something i was putting together on /vr/ years ago before i got into grad school. i need to pick it back up now that i have more free time.
    https://github.com/gewballs/graviton

  12. 2 years ago
    Anonymous

    Probably very hard, especially considering you often had to hack the console to get the desired results. And since games were largely on cartridges back then, they had to be released as bug-free as possible since you couldn't download fixes.

    Link is a game dev who worked on several older titles, including Sonic, Castle of Illusions, and Toy Story.
    >https://www.youtube.com/c/GameHut/featured

  13. 2 years ago
    Anonymous

    >you can inline assembly with SGDK
    - anon

    • 2 years ago
      Anonymous

      I spoke with the developer awhile back, there were two ways of mixing ASM with C, one recommended and one not recommended, I don't remember what they were.

  14. 2 years ago
    Anonymous

    Making games for retro game consoles is fricking pointless. A Raspberry Pi is 4000 times faster, and easier to program for, and is actually cheaper than buying the used console now

    • 2 years ago
      Anonymous

      old hardware has a lot more character than modern stuff

      • 2 years ago
        Anonymous

        >more character
        what is this moronic shit?

      • 2 years ago
        Anonymous

        no actually all of it was designed by nerds sitting in a room laying out circuits

    • 2 years ago
      Anonymous

      Eh, dunno, 6502 is an extremely elegant architecture, 65816 less so but still good. It's amazing what is capable with limited hardware with some forethought and careful design.

      • 2 years ago
        Anonymous

        I agree

      • 2 years ago
        Anonymous

        I agree

        you both are moronic. 65816 is a superset of 6502. it's 6502 with more features.

        • 2 years ago
          Anonymous

          65816 has a 6502 mode but the 16-bit mode is rather clunky with the page boundaries.

          • 2 years ago
            Anonymous

            >the 16-bit mode is rather clunky with the page boundaries
            a page is 256 bytes in this context. you are probably thinking of the memory segmentation mechanism to extend the 16-bit address space of banks to 24-bits. however this mechanism spans segment boundaries when indexing data, it's just code wraps back around in the same bank. the 6502 on the other hand has only a 16-bit address space, and the indirect jump instruction is bugged when crossing page boundaries

      • 2 years ago
        Anonymous

        Or you can not do that, and write whatever you want on a Raspberry Pi using whatever language you want and whatever tools you want, and never worry about taxing the cpu or ram or graphics because even a gimp mobile GPU is way more than enough to run any 2d game

        • 2 years ago
          Anonymous

          Ok, but if I was going for ARM dev I'd target the ARM7TDMI for Game Boy Advance development.

          • 2 years ago
            Anonymous

            A new Raspberry Pi is at least 350 times more powerful than a game boy advance and is actually cheaper than a used game boy advance

          • 2 years ago
            Anonymous

            >actually cheaper than a used game boy advance
            Lmao not anymore Black person

          • 2 years ago
            Anonymous

            Uhh no it's still cheaper, like a lot cheaper

  15. 2 years ago
    Anonymous

    6502 and 65816 only have 3 general purpose registers. They also have weird addressing modes. Even the gameboy had more registers and was easier to write for.

    • 2 years ago
      Anonymous

      >65xx, the chad 3 LTR opcodes
      >Zgaiety, the virgin unconfident variablelength opcodes

      • 2 years ago
        Anonymous

        I mean the simplicity of 6502 is very elegant, but you have to use the stack for literally everything with only A, X, and Y to work with.

        • 2 years ago
          Anonymous

          By the stack do you mean the zero page?

          • 2 years ago
            Anonymous

            stack is on page 1
            zero page is on... page 0

        • 2 years ago
          Anonymous

          That simplifies it. Part of the difficulty of writing assembly for modern archs is deciding what variables to keep in registers and what in memory to optimize performance. No such dilemma when you don't have an option.

  16. 2 years ago
    Anonymous

    There is a genius named Randy Linden who made programming SNES games look easy. He created a custom engine in Assembly to port Doom to the SNES, all by himself, in less than a year.

    • 2 years ago
      Anonymous

      Randy Linden also build a custom assembly engine to poet Quake to the GBA. But id didn’t pick this one up so he only converted the first level as a tech demo.
      https://www.retrorgb.com/impossible-port-of-quake-found-for-gba-playable-now.html

    • 2 years ago
      Anonymous

      homie be looking like a tomato

      • 2 years ago
        Anonymous

        Have some respect

        • 2 years ago
          Anonymous

          okay, i'm sorry

          • 2 years ago
            Anonymous

            he do be lookin like dat doe

  17. 2 years ago
    Anonymous

    I doubt you will easily find manuals/tutorials to write a game using the SNES sdk. There's a small chance there's no SDK and everything was done bare metal.

    • 2 years ago
      Anonymous

      There was an SDK. Anyhow it's been thoroughly reverse engineered since the 00s.

  18. 2 years ago
    Anonymous

    Extremely easy - it's based (and redpilled) on a 6502 variant.
    Basically, if you can't build a game for a SNES, you should consider that great comedy duo, Rafter 'n' Rope.

  19. 2 years ago
    Anonymous

    That's NES game.

  20. 2 years ago
    Anonymous

    these guys made a 4 player co-op NES game

    but the other anons ITT are right. developing on the genesis would be a whole lot easier. or you could do some low level C for an n64 homebrew. they reverse engineered SM64 and OoT already.

  21. 2 years ago
    Anonymous

    A pain in the ass due to awkward graphics hardware, segmented memory, and a really shitty ISA.
    Just program genesis games instead.

  22. 2 years ago
    No_file

    Pretty simple in TempleOS.

    • 2 years ago
      Anonymous

      Frick off, you annoying little shit. You have never attempted to write a SNES game in TempleOS.

      • 2 years ago
        No_file

        Your aggressiveness is proof enough that TempleOS is the best development environment for it.

        • 2 years ago
          Anonymous

          Prove it then. Write a SNES game in TempleOS right now.

  23. 2 years ago
    Anonymous

    Genesis is soooo much easier. There are barely any good tools for snes. Nes is easier but still requires very in depth PPU, APU, and overall nes internals knowledge. Snes? Fricking forget about it. The 65C816 is an absolute fricking monstrosity that was used in barely anything.

    • 2 years ago
      Anonymous

      from what i understand, part of the jankiness of the snes architecture was because it was originally meant to be backwards compatible with the nes

    • 2 years ago
      Anonymous

      I agree. I've made games for both NES and Genesis. SNES programming just isn't fun.

  24. 2 years ago
    Anonymous

    >posts a nes game
    This a good game tho

  25. 2 years ago
    Anonymous

    I've been programming for 20 years and just got into homebrew. I'm not a shit developer by any means but It's actually pretty fricking hard if you're used to modern development toolchains. We get babied a lot today. The bar of entry used to be MUCH higher.

Your email address will not be published. Required fields are marked *