Jump to content
IGNORED

Super Tilt Bro. for NES


RogerBidon
 Share

Recommended Posts

Technical highlight: Real time online gaming with the NES

Super Tilt Bro. is not a retro-game. It always tried to be a modern game on retro hardware, and modern games are playable online!

We "simply" put a WiFi chipset in the cartridge, and let's rock! New millennium, here we come!

spacer.png
A prototype of the WiFi cartridge by @BrokeStudio.

Challenges of online gaming

Writing a game to be played online is not an easy task. At any time, we have to ensure that both players see the same scene. When the game is fast-paced, some milliseconds of ping can make a big difference.

Let's assume Alice is playing against Bob. Bob unleashed his super-attack, and Alice dodged it on the last frame, EPIC! But, there is a ping of 20 milliseconds between Alice and Bob's houses (typical), and a frame lasts 16 milliseconds. Alice did actually dodge on time, so her game shows her character ready for a deadly counter-strike. Now, the information of Alice's epic dodge took 20 milliseconds to reach Bob's home, so Bob sees that Alice dodged too late, taking heavy damage. That's a typical case of desynchronization: the two players see a completely different outcome of their fight.

spacer.png
Alice and Bob's different timelines. Everybody wins!

The rollback netcode

Super Tilt Bro. is based on a rollback netcode. It does not wait to know opponent's inputs, it guesses it. When inputs finally come, the game discovers if its guess was right or wrong. A right guess is good. If the guess was wrong, the game rollbacks it's scene taking real inputs instead of guessed ones.

What does it mean for the epic fight between Alice and Bob? Alice still dodges on time, her game shows it without problem. Bob's game begins to guess that Alice did not dodge (that was an epic dodge like we rarely see), so it begins to show the attack hitting. Then, less than 20 milliseconds after, the information arrives. The game rollbacks, Alice was never hit. There will typically be one frame of flicker (Alice is hit one frame, has dodged the next), but finally both players see the same action, and can continue to fight.

spacer.png
The rollback engine, casually rewriting the past.

The guessing algorithm is super simple. It always guesses that nothing changed, no button was released nor pressed. For a game running at 60 FPS, even for a nervous player doing six inputs per second, this simple algorithm is right 90% of the time.

Adding some input lag

Another trick is to delay inputs while sending them immediately over the network. Let's say we artificially delay all inputs by four frames. If an input takes less than four frames to be transmitted from a player to another, rollback is not even necessary.

Getting back to the game between Alice and Bob, but with an input lag of four frames. When Alice inputs the dodge on the last possible frame, it has no immediate effect, so she is hit hard. One or two frames later, Bob receives the network packet with the dodge input, it has not yet had any effect. Both players see the same action: Alice took the hit. It is less epic, but at least everybody sees the same thing and there is no visual glitch.

spacer.png
Input-lag: glitch-less, but frustrating at times.

Of course, both approaches can be used together. That's what Super Tilt Bro. does. There is a little bit of input lag, which should be sufficient in most cases. In case of a latency spike the input lag may not be enough, the rollback code saves the day ensuring minimal glitch. In a nutshell, rollback makes your opponent teleport at the beginning of a move, input lag makes your character slow to react, a balance between both has to be found.

Some other implementations

All that is good, now you know how the Super Tilt Bro.'s netcode mitigates internet's latency. Most game developers just never openly discuss their netcode, while it is extremely interesting to see different approaches. Here are some known ones.

Super Smash Bros, the direct inspiration for Super Tilt Bro. does not do the same thing. There is no rollback at all in the original series, instead the game slows down or even freezes waiting for inputs. It can be easily seen by playing on an unstable connection, the game will regularly freeze. To limit the impact of these slow downs, the input lag seems dynamic. (Yes, sorry for that "seem", most available info is reverse engineered or outright guessed.) We know for sure that Super Smash Bros Brawl rates your connection and attributes it an input lag that can vary from 3 frames for the best to 15 frames for the worst. People trying to measure input lag in Super Smash Bros Ultimate failed with online mode, the input lag was too varying. Maybe Ultimate is adjusting dynamically input lag for each player during the game.

The approach of avoiding rollbacks and freezing the game has its benefits and drawbacks. First, it is really easy to implement, the only special case to handle is to wait for the needed information to be available. As a side effect, it requires very little overhead for the CPU and memory. The game engine does not have to be able to rollback from a previous point in time, the game can just run forward, forgetting anything that happened on previous frames. The effect on laggy connections is a freeze, while with a rollback netcode characters may teleport around on laggy connections. It is a matter of preference, a freeze is more "understandable", while a slight teleport is more smooth to play. The biggest problem is competitive play. Even at a moderate level, players train their combo, learning to execute moves with very precise timing (even frame-perfect sometimes). If the game slows down, freezes or changes the input lag in the middle of a frame-perfect combo, it messes it up, making it fail while player's execution is perfect. Finally, freezes must be avoided, it is not an option. So the player cannot be offered the choice to configure its input lag, it has to be conservative.

Another well-known solution is GGPO. It is a standalone rollback netcode made to be used by developers on their own game. It is especially popular in arcade emulation, and is the solution of choice of Skull Girls (which is known to have a good netcode.) GGPO is a rollback engine, their documentation does not mention input lag, but Skull Girls allows it to be configured to a fixed number of frames. This way the player can balance himself between more rollbacks or more input lag.

It is a lot like the Super Tilt Bro.'s netcode. The good thing is that input lag is fixed and constant for an entire game. You can still perform your frame-perfect combos. The biggest problem is when there is a big latency spike, characters will teleport around for a while until the game successfully re-synchronize itself with the other player. This kind of action is really confusing for the player. Also, the game engine has to take save-states and manage it to be able to rollback, putting pressure on the CPU and memory.

All these modern implementations have something in common: they are peer-to-peer. Avoiding packets to transit by a server noticeably reduces latency. That's a really cool solution. Super Tilt Bro., however, is server based, let's see why.

Super Tilt Bro.'s game server

We saw that peer-to-peer is the best model for online versus fighting. Super Tilt Bro. does not have this luxury. We also saw that rollback netcodes are costly for the CPU as the game has to be able to rollback, and the RAM because it has to store its old states. The NES runs with a 8-bit CPU at 1.5 Mhz and 2 KB of RAM. It is really far from modern systems. Implementing the rollback system entirely on the NES would be very limiting, most resources would be allocated to it at the expense of gameplay. The server is here to help.

Remember Alice and Bob? With the Super Tilt Bro.'s protocol, when Alice presses a button the game only sends the state of the gamepad and a timestamp to the server. The server knows the game, it is able to simulate frames, and compute the game's state at any point. Based on this knowledge and Alice's input, the server computes the state of the game at the frame of Alice's input, then sends all that to Bob. Bob receives the timestamp, Alice's input and a full game state. If input lag did its work, the game state can be ignored. If a rollback is needed, Bob's NES can use the state received from the server. Bob's NES does not have to manage a list of game states, the server generates it when needed, removing almost all pressure on the limited NES memory.

The server can also help with CPU budget. Let's say there is always a minimum of two frames of delay between Alice and Bob. When receiving Alice's input, instead of computing the state at the time of the input, the server can compute the state two frames after. The server is actually predicting the future, avoiding Bob's NES to do it itself. Of course a full rollback engine has to also be implemented in the server, but can help a lot with big latencies. Currently, Super Tilt Bro. is able to rollback only three frames of gameplay before running out of time. The server doing the rollback for one or two frames can help a lot.

UDP vs TCP... And web browsers

There are two big, omnipresent protocols on the internet: UDP and TCP. TCP is the most common one, it allows a computer to connect to another and send data. In TCP land, we don't lose data, and data is received in the same order as it was sent. Most of the internet is constructed on TCP, it is simple to use. UDP is a more lightweight protocol. In UDP's world, when we send a packet, the only sure thing is that we sent it. The packet may be randomly lost, or arrive before a packet sent earlier. So, TCP is a better protocol, right? No. Sadly, TCP's magic has a cost.

In Super Tilt Bro.'s protocol we don't care a lot about lost packets. A message from the server to a client contains a full game state. A recent message completely invalidates any older one. If we use TCP and lose a message, it will be re-emitted before the receiver processes any other message. If we send two messages in a row, only the most recent one is useful to Super Tilt Bro. If the useful one is physically arrived but the useless one is lost, the useful one will be delayed until the useless one is re-emitted. During development, we tested a simple ping implementation using TCP and voluntarily losing 10% of packets. With UDP, it resulted in 10% packet loss, without impact on the ping (around 20 ms in our test setup). With TCP, it resulted in 0% of messages lost (that's the TCP magic), but ping value sometimes reaching three full seconds.

Imagine having your input delayed by three seconds because a useless packet was lost? No way!

If you played the game, you probably noticed that it is available in an HTML5 NES emulator on the itch.io page. As innocent as it seems, that's actually a big deal. Web browsers don't let web pages send UDP packets. Super Tilt Bro. protocol is based on UDP and needs it. The solution was to use WebRTC, a modern protocol made for visio conferences. That's what your favorite Google Meet, Skype online, Facebook visio uses. Hijacking a video conference protocol to use it for gaming is a large topic. I may or may not write a devlog entry on the subject, for now I'll let you with the real-time twitter thread of my fight against internet's security: https://twitter.com/RogerBidon/status/1259171335135211523

See you!

Implementing modern network capabilities for a NES game was an epic journey... And it is far from over! This made it to the ALPHA stage. It is not complete, and I am in dire need for feedback.

You can test it yourself: https://sgadrat.itch.io/super-tilt-bro

Join the Discord to find a rival and/or send your feedback: https://discord.gg/qkxHkfx

Hope this little piece of internet knowledge can help somebody out there. Do not hesitate to reach me for more details, nothing is secret. Super Tilt Bro. is an open source software. It is made to make the internet a better place, not to keep its secrets!
 

Edited by RogerBidon
Grammar
  • Like 2
Link to comment
Share on other sites

Little update on how's the project is going.

As often, I went quiet for a long time. I was re-implementing the music engine from scratch. I had nothing fancy to share. The new engine is in its infancy, but already has some interesting features:

  • Able to play Famitracker files with effects (Fxx, Gxx, Dxx, Sxx, Axx, Qxx, Rxx, 1xx, 2xx, 3xx, and 4xx for now)
  • Speed and code size comparable to ggsound and famitone (if not better, always debatable)
  • Data a little heavier than ggsound/famitone, but still better than Famitracker's driver

I made my own engine to prepare for my idea of dynamic music. When the music adapts itself to what happens. The engine will be able to seamlessly switch between calm or nervous versions of the same track depending on the actual action of the game. Anyway, I will write a technical highlight on what is already implemented, I am sure it has enough technicalities to write a big wall of text.

Also, I had to take a little break to make a new trailer, hope you will enjoy it.

It was made by a good friend of mine that is starting to take freelance jobs in motion design. If you have similar needs, you may contact her 😉

  • Like 2
Link to comment
Share on other sites

  • 3 months later...

Technical highlight: rollback netcode on the NES, the gory details

Hey folks! Ready for a really technical one?

Super Tilt Bro. ALPHA 5 just hit the public, and with it the ability to play online with any character on any stage. Time to take a step back, see how the netcode works, and what where the biggest challenges.

As you know it from reading the precedent technical highlight (or at least the illustrated part), Super Tilt Bro. Implements a rollback netcode on the NES. It means that the game is always smooth, when the messages from the other NES take time to transit, the game just predicts it and continue. Sometimes it happens that the prediction was wrong, the game has to revert predicted frames, and re-compute the real ones.

How the protocol works

Rollback netcodes are notoriously hard to implement. Browsing the internet, you will see very long posts explaining that the Switch is not powerful enough to do it. How the heck can it run on the NES?! (Spoiler: of course, by cheating!)

A very big pain point in traditional implementation of such a netcode is the memory management. The game has to keep a list of its previous states to be able to rollback from any of them. With only 2 KB of very slow memory, Super Tilt Bro. has to avoid it. The solution is to make the server smarter.

When you press a button, a message is sent to the server. This message is tiny, it contains just the button pressed and a timestamp. In turn, the server computes the state of the game when you pressed the button, so it can send an enhanced message to the other NES. The enhanced message contains the button pressed, a timestamp, and the state of the game at this point. The NES receiving such a message now has everything at hand. It just replaces its current state by the received one, and rollback enough frames to compensate for transit time.

The good point of this approach is that memory management on the NES is completely removed. Of course, there are drawbacks. The server must be smart, it actually has to incorporate an emulator to compute game's state. Worst, there is no way to switch to a peer-to-peer protocol. Time will tell if this rollback netcode is better than peer-to-peer input-lag netcodes.

Introducing the main foo: the CPU

Now the NES has an old state received from the server, and must simulate missing frames. It has to be speedy. We don't want to see characters moving in fast-motion to catch-up, that would destroy the timing of player's inputs, and make them miss combos. The goal is to rollback immediately, so the game is at the same point in time it was before the message's reception. We have exactly 20 milliseconds to do it without missing a video frame (on PAL.)

The first thing to do is to be able to simulate a frame in “rollback mode”. In this mode, nothing has to be displayed, so the engine can safely skip placing sprites on the screen, updating the background, and anything visual.

That done, simulating a frame in rollback mode take 25% of the 20 milliseconds. It would be enough to rollback four frames, and compensate 80 milliseconds of ping, if the rest of the game did not take 60% of the time. Notably, it has to simulate a frame in normal mode, to show sprites and other visual effects. All in all, it allows for almost no rollback.

Next step is to optimize everything that is done multiple times per frame. Collision detection is where we get the biggest gains. It was an old code, mostly implemented while learning 6502, and is run for both players, for each platform, multiple times. With this code rewrote, it is finally possible to play online even on complex stages.

Another big win is the optimization of the animation code. While in rollback we don't care about animating sprites on screen, in Super Tilt Bro. hitboxes are stored in animation data. Parsing all meta-sprites to extract an hitbox is time-consuming. Here the trick is to always put hitboxes at the beginning of such data, and stop reading there. Plus some low level optimization, it is always good to take.

KzIwRkm.png
Optimizing gave space to rollback around three frames. The work is not over 🙂

We are not yet fast enough to compensate big latencies. Thankfully, the server is smart. It can itself predict frames, and does just that to compensate for the minimal latency ever seen between players. That way, the NES just has to handle the variable part of it. Let's say your ping oscillate between 100 and 140 milliseconds, the server will predict for 100 ms, so in the worst case the NES will have to predict only two frames.

What's next?

First and foremost, this code needs to be battle tested. For sure, it is not yet perfect. The only solution is to try it, play with it, and report anything strange. The more it is used, the more we can find issues. Super Tilt Bro. needs you! Please bring some friends, play together, and send your feedback. It really helps! Your journey begins here: https://sgadrat.itch.io/super-tilt-bro

If the online mode should work, it is still very light. There is only a very simple matchmaking available, and the user interface is the ugliest you can imagine. I guess I will now focus on the things around the netcode, beginning with a ranking system. Wouldn't it be nice to go to the official ranking page and find that you are the best player in the world?

  • Wow! 1
Link to comment
Share on other sites

  • 4 weeks later...

compil_war_banner_small.png.6df39ae3831d5c36ea16c112db289bfd.png


Technical highlight: C compilers for 6502 benchmark: A new hope!

Adding a C compiler in your game's toolchain is not an easy task. Each have their own strength, and weakness. You may want speed, ease of use, compliance to the standard, freedom, or anything. We'll try to compare some compilers, maybe it will help you.

While choosing a compiler to enter my game's toolchain, the speed was the least of the concerns but discussions invariably derived to the subject. This article will mainly focus on this question: what compiler produces blazing fast code?

Some code samples will be compared, each time with an explanation about the code, and why it may be useful to benchmark it.

That done, I'll talk about my experience with each compiler. Their strong points, their weaknesses. This part is necessarily subjective, I'll try my best to be factual.

Finally, a short "how to choose a compiler" guide will conclude the article. Hope it helps.

Let's go!

Introducing contenders

cc65 is the most used compiler. It comes with an extensive toolsuite, is actively maintained, and has a big community of users. However, it is known to be slow... We'll see 🙂

vbcc is the cool kids' compiler. Less used than the king, it has the reputation of generating largely better code.

KickC is the young promising project. Is it a toy for nerds or a real option?

6502-gcc is the mysterious one. Nobody really masters it, the project seems dead, installation instructions are cryptic, ... We'll dig in its dark secrets!

6502-gcc has two interesting optimization flags:

  • "-O3" optimize for speed
  • "-Os" optimize for code size

Run length decoding

This benchmark comes from real life. It is a function prototyped in C for Super Tilt Bro. before being converted to assembly for performance. Data used are also the original ones.

The function parses a compressed blob to extract some random bytes from it. It is pure loop logic, burning many cycles reading the memory.

bench_rle.png.5ed9d941ecd8a3f83f8abbb84ca48d71.png
Red is execution time, blue is generated code's size.

First thing first, cc65 lives by its reputation of sluggishness there. It is a complete KO. Code generated is big and slow.

The winner is 6502-gcc, by a fair bit. KickC has a slight advantage over vbcc.

Fun fact: the more popular the compiler, the worst it perform in this test.

Memcopy

Here is the super common task of copying bytes in the memory. It is important to compare compiler on what our programs will spend the most time.

The bench comes in two flavors:

  • The normal one directly copies bytes with a for-loop
    • the compiler knows both addresses and number of bytes to copy, food for optimization
  • The no-inline is "memcpy-like" function, copying at most 256 bytes at once, not inlineable
    • the compiler knows nothing, it has to implement a generic copy function

bench_memcpy.png.a3ca6accc524c6400f13aecd265f19d9.png
All graphs are sorted: slower on the left, speedier on the right

cc65 is still on the last spot.

KickC confirms to be slightly better than vbcc. Note KickC absence from the no-inline version: KickC seems to always work with the full source, so no way to forbid an inlining.

6502-gcc takes a hit. Worst, extensive tests showed that results are highly varying when changing little things to the code.

Also, did you noticed how "-O3" poo'd itself in the inline scenario? gcc (the "real" one as well as 6502-gcc) works in two steps: the fronted optimizes C code, then the backend translates it to machine code. The fronted of 6502-gcc is the regular one, it does wonders, then comes the backend. The 6502 backend is seriously lacking love, and it is showing here: the fronted detected that the code is equivalent to a "memcpy", and told "copy 200 bytes from $0400 to $0200" to the backend. The backend was expected to implement it the most optimal way, instead it just called the standard "memcpy" function, which is far from optimal for an 8bit CPU.

RPG engine

This bench is voluntarily made to take advantage 6502-gcc strength: its fronted.

It is an RPG engine with lots of abstraction. There are structs, functions making the player strike, functions for hitting monsters, the player is wielding a weapon, ...

The benched function, initialize the game's state, play one turn, then return. So while there are functions updating structures, adding attack points, and subtracting hit points, the finality is just to set the memory in a particular state.

bench_rpg.png.007d8eb205b153f4d4e115aacf395b75.png

cc65... it becomes redundant. Ok, this test is definitely not for cc65 which refuse to do high-level optimization. This benchmark actually tests the quality of the high-level optimize.

KickC is a better vbcc performance-wise. That's a trend.

6502-gcc doesn't disappoint. It's frontend is world-class, and nails it perfectly. The generated code is a short list of "lda <constant> : sta <memory>", with even redundant LDAs pruned.

Code tailored for cc65

Did you read Ilmenit's great essay "Advanced optimizations in CC65"? Here it is: https://github.com/ilmenit/CC65-Advanced-Optimizations

Let's save cc65! Here we bench a code especially tailored for cc65, made by an expert. Should do it, yes?

The code itself is comparable to the RPG benchmark: it is a uselessly abstracted RPG engine. The difference: it loops 100 times and print characters on screen each time (so, no way to reduce it to a list of LDA+STA, computations will be done.) Then, Ilmenit applies various optimizations to make it really fast.

We'll bench two versions: the first one, without any optimization, and the last one, fully optimized.

bench_ccgame.png.fe0b5050cc24a37397618b4febee40bc.png

KickC disapeared, and vbcc is half absent!

KickC had just too many limitations to compile the code: notably it refuses to output any runtime modulo or division.

vbcc generated an infinite loop on the unoptimized code, and suffered my lack of experience when integrating it in the benchmarking tool (hence the lacking code size.)

6502-gcc exhibited a bad bug (or once again my lack of experience), it puts global variables in random segments. The assembly generated had to be fixed by hand. [Edit: the bug is fixed now, 6502-gcc works without manual intervention.]

So, even before watching graphs: cc65 is the winner! It compiled this code!

Interestingly 6502-gcc does not perform on the unoptimized version. After all what has been said about its magic high-level optimizations! The problem here is that it was not allowed to inline functions. In C, when you declare a function without preceding it by "static", it has to be accessible to other compilation units, it must be there and fully usable: passing parameters on stack and all that. Of course, cc65 don't inline anyway so it is of little difference to it.

On the optimized version vbcc seems to be lacking, and cc65 is slightly better than 6502-gcc. The code has been optimized by hand to be straightforward to compile, so the compilers have not a lot of freedom to improve things.

What about this "???" entry? If you didn't read "Advanced optimizations in CC65" by now (shame on you!), you don't know how the optimized code is a mess to read. All available tricks have been used, even the author does not recommend going so far in real life.

The "???" is "6502-gcc -Os" on a version with only two of the 12 optimizations plus the use of "static" keyword. The resulting code is a lot like the unoptimized code, and the performance penalty is almost gone. That's why I think high level optimizations are what matter: it allows writing in C, without caring much of the assembly generated. Let low levels tricks to the compiler, focus on the logic.

Aside of performance

Ok, performance-wise it seems that cc65 is seriously lacking, vbcc and KickC are almost on par, and 6502-gcc varies from excellent to trash.

Actually, performance should not matter a lot when choosing a C compiler. Be sure to learn the assembly language, and you'll be able to get perfs where it is needed. Here is a summary of pros and cons of each compiler.

cc65
Pros

  • Rock-solid and battle-tested, it will not let you down.
  • Active development
  • Great resources available to learn
  • One of the most complete toolsuite out there

Cons

  • Performances (seriously, that's its only dark point)

vbcc
Pros

  • Acceptable performances
  • Active user base
  • Extensive documentation
  • Complete suite of tools (assembler, linker, versatile config files, ...)

Cons

  • Terrible licensing (like, I will recommend avoiding it just for that)
  • Buggy

KickC
Pros

  • Good performances
  • Hard to integrate with other tools (made to compile an entire project)
  • Active development (and a good base, may the future be bright!)

Cons

  • Compliance with C standard very partial (even "const" is badly supported)
  • Compiling is slow
  • Terrible compilation errors (at times, you just have a stack-trace)

6502-gcc
Pros

  • 100% compliance with the C standard
  • God-tier high-level optimizations
  • Generates assembly for ca65 (taking advantage of the cc65's toolsuite)
  • Human readable and on-point warnings and compilation errors.

Cons

  • Development inactive
  • Buggy
  • Variable quality of the generated code

Ok, but which one to choose for my project?

As always, it depends! Who are you?

Are you an experienced developer accustomed to a particular one? Stay on it. You already learned to master your tool, others bring little benefit.

It is your first C project for the 6502? Go for cc65, it is the most mature, and you'll find help.

You want high-level optimizations, and something that just work? KickC is made for you.

You want high-level optimizations, to rely on fine-prints of the C standard, and are ready to build your own toolchain? 6502-gcc is the way.

No, I won't recommend vbcc. It's licensing is terrible: it is closed source and you cannot use it for "commercial purpose" (without definition of it, nor if it applies to generated executables.) Also, it incorporates various tools and libraries with various licenses. If you want to do things "the right way", you will have to check at least three licenses to know if you can do what you have in mind.

Last word

Benchmarks are a nice tool to see the general picture, but never can be perfect. Especially these, it was my first experience with most of those compilers, and I may have had some details wrong. If you want to play by yourself, the tool used is available here: https://github.com/sgadrat/6502-compilers-bench it takes C files, and output speed metrics as well as the generated assembler.

Hope this little research can help somebody out there. Remember, in retro-development, the most important is to have fun!

 

Edited by RogerBidon
  • Like 1
Link to comment
Share on other sites

As the author of the 6502-gcc compiler port -- thank you for including my work in your benchmark comparison! I don't have a lot of time to work on it at the moment but I love to see people getting some use out of it! I'm a bit puzzled as to why the memcpy test came out so bad. The libtinyc version of memcpy (if that's what's being used) is hand-written and I don't think THAT terrible...

  • Love 1
Link to comment
Share on other sites

Wooo! Hello Itszor, I did not find a way to reach you online, very humbled that you are reaching me! I wanted to thank you for your work on 6502-gcc, I use it for non time-critical parts of my game, and really love it! Thank you. Since I tried it, I am advocating for it on any opportunity.

About memcpy

For the memcpy, the thing is the compiled code uses an 8 bits counter, and don't return the original address. So even the perfectly written memcpy can be beaten. Also, it is on the inlineable version that "gcc -O3" called memcpy instead of  writing optimized code for the case.

Compiled code is there: https://github.com/sgadrat/6502-compilers-bench/blob/master/code_samples/memcpy/memcpy_8bit_c_style_static.c
Perfect asm (without unrolling): https://github.com/sgadrat/6502-compilers-bench/blob/master/code_samples/memcpy/memcpy_8bit_asm_static.s (just noticed it is buggy and copies from $401 to $201, anyway that's the idea)

ASM output by gcc:

    benched_routine:
    ; frame size 0, pretend size 0, outgoing size 0
        lda #$c8
        sta _r4
        lda #$00
        sta _r5
        sta _r2
        lda #$04
        sta _r3
        lda #$00
        sta _r0
        lda #$02
        sta _r1
        jsr memcpy
        rts

 

About the variables in random segments

This code:
 

int g_var;
int const g_const = 5;
int g_var2;

void benched_routine() {
    g_var = 5;
}

Compiles to (gcc -O3):

		.code
		.segment "CODE"
		.export benched_routine
	benched_routine:
	; frame size 0, pretend size 0, outgoing size 0
		lda #$05
		sta g_var
		lda #$00
		sta g_var+1
		rts
		.global g_var2
	g_var2:
		.res 2
		.export g_const
		.segment "RODATA"
	g_const:
		.word	$0005
		.global g_var
	g_var:
		.res 2

g_var2 is in "CODE" segment, while g_var is in "RODATA", while both should ideally be in "BSS" or at least in "DATA".

Note for my game I don't use global variables, so I discovered it while doing these benchs. This is the first bug I encounter while using 6502-gcc everyday.

The best would be to make it a github issue I guess. I wanted to take some time to search if there is an easy fix to make a pull-request instead of an issue (but you now... time... so rare a resource)

Edited by RogerBidon
Adding useless note on parenthesis
Link to comment
Share on other sites

Thank you for taking the time to write up those problems! I think both should be fixable - I'll try to find time to do it soonish. (If you find more problems, feel free to create github issues on the gcc-6502-bits repo. I don't check it all the time but I'll see them eventually!).

Thanks,

Julian

  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...

Hey! First time I share a release note here. I guess you homebrew players also are in the brewery, it may be of interest. Skim-read it, and see what's new.

I will post such release note with each future version. Do not hesitate to give feedback on the content or the format.

Super Tilt Bro. 2.0-alpha6: Worldwide ranking!

What's new in the game?

Ranked play

You can now choose between “Casual” or “Ranked” mode. Casual plays just like before, while in ranked, your have a Match Making Rating (MMR). Winning a match gives you MMR points, while losing takes your MMR lower.

A worldwide leaderboard is available on the brand new official website: https://super-tilt-bro.com/leaderboard.html

leaderboard.png.be7e1007062ed932b186cc09d37ad15e.png
Come, the top spot is waiting you!

Private game

You can ensure to be matched with your friend in this mode. Simply share a password to be matched together.

private_game.gif.026a844d2604a6e80ce59d454bff9e9f.gif
Starting a private game

Longer hitstun

When you receive a hit, there is a small time on which your character blinks and you cannot do anything. It is essential for combos, which consist of repeatedly hitting your opponent while in hitstun to maintain them in this state. Also kill moves, which send the opponent far away, rely on it to avoid the momentum being cancelled by a special move.

Hitstun duration has been slightly increased, it is now 1.5 times what it was. Before that, there was literally no true combo in the game. So, now Sinbad has more efficient combos, and Kiki's strong strikes are more dangerous.

Kiki's moveset change

Originally, Kiki's down-special put a wall bellow her while neutral-special was a counter strike. These moves swapped input, down-special is now the counter strike while neutral-special creates a platform.

It is a simple fix, as the platform is Kiki's main recovery move, and it is unintuitive to press “down” to avoid falling.

Kiki's counter strike revamp

The counter strike has now more active frames, and more end-lag frames. Moreover, if down in the air, it slows Kiki's fall. The counter strike is still active at frame one.

counter.gif.159e71d87bc378dc2a10a81287970362.gif
Kiki's new counter strike

More active frames means your timing may be a bit less precise to pull it effectively. More end-lag, on the other hand, make it is easier to punish Kiki for missing it.

The slow fall forces Kiki to setup a proper bait. The sudden change in momentum may make the opponent miss a strike, leaving Kiki vulnerable. It also lessens the risk being KO-ed by falling too low while in end-lag.

What's new under the hood?

New servers

Originally, there was only one server per region. This server handled the matchmaking and the games.

Now there is a new login server, which handles user accounts, a ranking server that computes MMR and a website. This architecture has been intentionally split in tiny very specific servers. Very specific servers are easier to debug and operate than big ones.

It also allows for a future migration to cloud hosting, theoretically if we split the matchmaking from the game server, we could spawn as many game servers as needed to serve all players at any time. Spawnable game servers would have another advantage: the end of region server, just spawn the server near the player. Of course, all that is just wishful thinking for now but better be ready, it costs nothing.

Link to comment
Share on other sites

  • 2 months later...

Super Tilt Bro. 2.0-alpha7: Welcome Pepper & Carrot!

What's new in the game?

New character

 

Pepper is a young witch from the awesome online comic Pepper & Carrot. She lives a thrilling life, learning alchemy and witchcraft while exploring the world, and its dungeons. The comic itself is of excellent quality, and free (go read it!) It does not only mean that you don't pay money nor watch ads to access it. It is free as in freedom, you are free to read it, print it, improve it (if you can), to do fan-art, ... Actually, to put Pepper in Super Tilt Bro. is assumed fan art! (Did you know? Super Tilt Bro. share the same freedom ideas.)

Now, how does she play in Super Tilt Bro.?

Pepper is a fast-moving, short-ranged character with unrivaled combo ability. She can teleport around, and fly on her broomstick giving her the mobility to follow combos, even on strong hits. She also throws firework potions around, giving her a decent zoning and strong juggling.

Kiki changes

Kiki's recovery move is to draw a platform behind her feet. It was originally her down-special, which was unintuitive. In the last version it was change to be the neutral-special, which was not better. The only good mapping for a recovery move is up-special, so it is finally correctly, and definitely fixed!

Down-tilt had no startup-time nor end-lag. It was not on par with the design of Kiki, who should hit strongly but being punishable if she misses. It was also too strong, so there is now a little startup-time and some end-lag.

Counter-strike now keeps some momentum. It should not impact gameplay much, but feels more natural.

Formerly, you could fly by spamming up-special. It is fixed, try it and you will fall (while appearing ridiculous.)

Common gameplay changes

Fast-fall is now activated by releasing the down-button. It allows inputting down-aerial, and down-special without involuntarily fast-falling.

Input of down and up attacks has been eased, the game is more tolerant to other buttons being pressed at the same time. It is especially noticeable when attacking at the beginning of a jump, controls feel more responsive.

Fast-fall is now cancelled by mid-air jumps.

Online mode

Improved netcode on connections with high variance in ping. Because there is server-side prediction, on such connection it happened that the game receive inputs in the future. It was terribly handled, leading to big desynchronization between players.

Fixed being disconnected for being idle more than 30 seconds in game (only on the web client.)

Added a new menu “Settings” in online mode. From there you can create an account for ranked play, configure your Wi-Fi (only on real cartridges), or update the game (also on real carts.)

Link to comment
Share on other sites

  • 1 month later...

@fcgamerNo problem, I'll contact you via private message on VGS, that's ok?

Note that it will still take months before the game is in a good-enough state to be sold. I want to make it the best I can before asking for money. In the meantime, you can play the alpha, which just received an update! Release-note time!

------

Super Tilt Bro. 2.0-alpha8: New musics, and fixes

What's new in the game?

New musics

Two new musics, by Kilirane, can be heard in game.

The first is inspired by Sinbad, while the second depicts Pepper's personality.

You will also notice that the main theme is now played at correct pace in the menus. The audio engine has actually received some long-deserved love in this patch, including the feature of playing NTSC musics correctly on PAL system, and inversely.

Kiki

egWOVjA.gif
Kiki can now walljump

While Kiki does not really need a walljump, it makes it available to all characters. Kiki was the only one unable to do it, disturbing after playing other characters. So walljump is now a standard move, like the double-jump, all future characters are expected to have it.

Fixes

Kiki can no more have a free jump by buffering the jump action during an aerial. Long-time bug, it was originally on all her moves, then reduced patch by patch. All should be squashed now.

Kiki no more ignores gravity when spamming side-special.

Kiki's AI no more KO itself when thrown out of screen. Before this fix, you could often have Kiki AI draw a platform out of screen, then run straight to the blast-line.

Sinbad cannot bufferize grounded moves when his side-tilt lands aside from the platform.

Pepper's teleport no more kill her randomly.

Pepper's teleport on-spot hitbox is now correctly placed at her starting position.

Join the bug-squashing squad!

The game can be freely played (in emulator) here: https://sgadrat.itch.io/super-tilt-bro
To find an online match, there is no place better than discord : https://discord.gg/qkxHkfx

  • Love 1
Link to comment
Share on other sites

Rapid update, you can now register your email address on https://www.super-tilt-bro.com to be notified when the physical release draws near 🙂

It is a one-time mailing list. You will only receive the Kickstarter* launch notification, straight to the essential!

* Maybe a preorder notification if we decide to go without Kickstarter.

postcard.png.c80d4a3925ac88692fdcdd9ec7e34ef3.png

  • Like 2
Link to comment
Share on other sites

Super Tilt Bro. 2.0-alpha9: Redrawn menu, replays, and wishlist

What's new around the game?

Wishlist the cartridge now!

Ok, there is no Steam for retro game cartridges. We do it in the pure homebrew tradition: our wishlist system is crafted at home with love!

To wishlist your Super Tilt Bro. cartridge, go to https://super-tilt-bro.com/wishlist.html and fill your e-mail address. This is a notification system, you will receive one mail when the pre-orders are available. Nothing more, nothing less.

As soon as the mails are sent, the list will be deleted. We care about your privacy, and the well-being of your inbox. If you want to follow the game's development, you should also follow Super Tilt Bro.'s Twitter or join us on Discord

Replays

You outrageously out-played your opponent but forgot to record your screen? That happens all the time!

We know this terrible feeling when you cannot show your best moves to the world. You deserve internet felicity for every win! So here comes the replay system.

After playing an online game, you can now head to https://super-tilt-bro.com/replay.html to watch the replay of the game. As simple as that!

It's then up to you to record your screen, and share the game. You can also use this page to watch games, it is kind of a Super Tilt Bro. TV channel.

What's new in the game?

Redrawn online menu

The online menu has been completely redrawn by Martin Le Borgne

online_mode.gif.1ae9d60fec6cdb8dbf226d24b42d13bf.gif
Woah!

Other menus have also been updated. It is more subtle but you may notice that there are more sound effects than before, the navigation is slightly better, and clouds' parallax is more consistent.

Bad ping is gone

About the infamous "bad ping" message when trying to connect to a server.

This message happens when the game decides that the network conditions are too bad to even try to connect. It originally was when ping was above 200 ms.

With time, and netcode improvements, this limit became too low. The game can handle 200 ms ping and still be playable. The limit has been raised to 800 ms.

Gameplay improvements

The fast-fall mechanics has been improved. Now, your character shines while fast-falling, and weird cases where you stayed in fast-fall mode for too long have been fixed.

Added sound effects for jump, fast-fall, and land moves.

Finally, the maximum time allowed on the respawn platform has been decreased, from five to four seconds.

Kiki changes

Most animations of Kiki have been extended. The goal is to smooth the animation, and to add end-lag to her moves. Kiki always has been a character with a good range, and strong attacks. The idea is that she is strong at punishing her opponent's mistakes, but should not spam here attacks. Search the weakness in your foo's play, and exploit it. Adding end-lag to her animations ensures that Kiki's player has to think twice before attacking.

Animations change details:

- Jab is now 16 frames instead of 12. It can still be cancelled by another jab at any point.
- Side-tilt: Added 4 frames of end-lag. The animation is now 20 frames instead of 16.
- Up-tilt: Added 4 frames of start-lag, and 4 frames of end-lag. Removed 8 frames with active hitbox. The animation's duration is unchanged, 16 frames.

Talking about animations, Kiki now has a proper animation for drawing a platform above her head.

kiki_paint_up.gif.c40a055ed575d15d297e8eb31724c344.gif

When landing during an attack, Kiki slides on the ground performing the attack. This is not new, but has changed a little. Tilt-slide, and jab-slide distances are slightly reduced.

Finally, Kiki's platforms now last 2 seconds instead of 2.40 seconds previously.

This patch happens to be quite a nerf for Kiki. It will need some serious play-test to see if balance is not broken in the unusual way.

Sinbad changes

Slide attacks go slightly farther.

What's new under the hood?

Real NTSC compatibility

There are some differences between the PAL and NTSC NES. The most impacting one is the frame rate. An NTSC NES displays 60 frames per second, while the PAL version outputs only 50 frames per second.

Super Tilt Bro. has been primarily developed on PAL hardware. That said, since the beginning the game is playable on NTSC systems. Until now the trick has been to double one out of six frames, to virtually reduce NTSC frame rate to 50 frames per second.

ntsc_pal_framerate.png.06ceb68df427250b43b35075fdb8ae30.png
Frame doubling trick to get 50 FPS on NTSC

While it basically works, it is far from ideal. This trick not only loses the extra smoothness of 60 FPS, it adds extra bumpiness by oscillating between 60 and 30 FPS.

So, how do get rid of this doubled frame? There are three impacted domains: physics, animation, and audio.

In physics, all speeds have to be slower on NTSC. An object that moves 1 pixel per frame at 50 FPS needs to move at 0.83 pixels per frame at 60 FPS, to keep progressing at the same speed (50 pixels per second.) So speeds needs to be multiplied by 0.83 but here's the catch, the NES is very poor at two things: multiplications, and floating point arithmetic. Full description of the solution would not fit in this release note. Long story short: by decomposing the multiplication byte by byte, and reserving 1 KB of ROM for lookup tables, it is possible to multiply by any constant (even 0.83) blazing fast.

Characters animations also need to be slowed down. These animations actually do not run at 50 FPS, they are more like animated GIF: each encoded frame takes ROM space, so we limit it. For such animation, the frame doubling trick is completely unnoticeable, lightly extending one animation frame's duration from time to time. Just take care of always extending the same animation frames, so the animations are always played exactly the same. It is important to have consistent frame data in versus games.

And the audio engine. Yes, the audio is impacted by the frame rate: in the NES, the most reliable timing information we have is the periodic display of a new frame. We naturally use it to regulate music's beat. As most authors compose for the NTSC NES, Super Tilt Bro.'s audio engine has been converted to NTSC-native. On PAL, it occasionally plays two beats in one frame to simulate 60 FPS.

It is to be noted that while feeling the same, the game is slightly altered: 50/60 is not exactly 0.83, and frame data is not the same between PAL and NTSC. That sadly means that the netcode cannot accommodate a cross-play PAL/NTSC, desynchronizations would be terribly common. An option could be to fallback to the frame doubling trick only on cross-play, maybe better than nothing.

And voilà! You know the fun parts of being PAL/NTSC compatible (the right way.) It's been a long time without "under the hood" section in the release note. Please tell if it was a nice surprise, or "too technical, didn't read." Maybe this subject deserves a complete devlog entry?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


  • Welcome to VGS!

    Play, Make, Collect.

    Here at VGS all kinds of gamers are welcome, and that includes you!

    Join the conversation!

  • Similar Content

    • By Scrobins
      VGS Homebrew on the Horizon:
      Whereas the purpose of the VGS Homebrew Almanac is to keep an up-to-date list of cartridge homebrew releases that are currently available or whose production runs have ended, this list will provide an up-to-date list of cartridge homebrew releases within sight to one degree or another.
      Part I of this list will include live pre-orders, either through the developer’s website or a crowdfunding page such as Kickstarter or Indiegogo.
      Part II of this list will only include homebrew games that previously had pre-orders open, but which are now closed (e.g. a crowdfunding campaign has ended and no further pre-orders are being taken). This section will serve as a sort of limbo for games that will be available soon and will therefore soon be moved to the Homebrew Almanac. Completed roms for games where the developer is planning or considering a physical cart run will also be found here.
      Part III of this list will be devoted to homebrew projects that developers have announced are in the works, but which are not yet available for pre-order, though demos may have been released to whet our appetites. The line between which projects have been abandoned and which retain a glimmer of hope is a fuzzy one, so developers please pm me if you wish to be added/removed.
      Part IV is dedicated to the memory of homebrew projects which, as far as I can tell, have been abandoned. This may be because the developer has gone dormant on this project or in general, or a developer had a page for this game that has since vanished. May they one day be resurrected.
      Links will be to a game’s individual page, development blog, VGS thread, Twitter account, or some combination thereof to provide the community with the best possible access to news. But if developers would like me to link elsewhere, please tell me.
      *The usual disclaimer, I am sure that there are mistakes and games that slipped my attention in what follows. Feel free to point them out or inform us all of a change in a game's status. If you are the creator of a game and you would like to have your work included at a set date/time, please feel free to send me a pm. 
      Part I: Homebrew Available for Pre-Order
      NES/Famicom Available for Pre-Order:
      -8bit Music Power $55 CIB Link
      -8bit Music Power Final $55 CIB Link
      -The Adventures of Panzer CAD$80 CIB Link
      -Alwa's Awakening $60 CIB Link
      -Anguna: Scourge of the Goblin King $60 CIB Link
      -Blazing Rangers €55 CIB Link
      -Choumiryou-Party (FC) ¥9000 CIB Link
      -Dungeons & Doomknights $48 CIB Link
      -Full Quiet $60 CIB Link
      -Ghoul Grind: Night of the Necromancer $55 CIB Link
      -Kira Kira Star Night DX $55 CIB Link
      -KUBO 1 & 2 CIB Link
      -MOON8 re-release (chiptune) €40 C Link
      -Ooze Redux $50 CIB Link
      -Orange Island £100 CIB Link
      -Reknum: Fantasy of Dreams C Link
      -Roniu's Tale $60 CIB Link
      -Soko Banana $60 CIB Link
      -Super Bat Puncher Demo (FC) €45 CIB Link
      -Tapeworm Disco Puzzle £50 CIB Link
      -Temple Dilemma $60 CIB Link
      -Turtle Paint $52 CIB Link
      -You Are Error (music/video) $49 CIB Link
      -Zdey the Game €50 CIB Link
      SNES Available for Pre-Order:
      -Chip's Challenge $50 CIB Link
      -Eyra - The Crow Maiden $50 CIB Link
      Gameboy/Gameboy Color Available for Pre-Order:
      -Digital Monster C$30 C Link
      -Digital Retro Park (chiptune) €40 CIB Link
      -Doc Cosmos £40 CIB Link
      -The First Project €25 C Link
      -GB Productivity Suite CA$30 CIB Link
      -Gelatinous: Humanity Lost $50 CIB Link
      -Genesis $45 CIB Link
      -How did I get here? £50 CIB Link
      -Infinity CA$90 CIB Link
      -Pineapple Kid £40 CIB Link
      -Pine Creek $60 CIB Link
      -Planet Hop £50 CIB Link
      -POWA! €50 CIB Link
      -Rox OS $55 CIB Link
      -The Shapeshifter 2 €49 CIB Link
      -Space Ex: The Human Race to Mars $60 CIB Link
      -Tales of Monsterland £40 CIB Link
      -Teenage Gizzard Gameboy Game King Gizzard and the Lizard Wizard €35 CIB Link
      -The Year After $90 CIB Link
      Gameboy Advance Available for Pre-Order:
      -Avalar (music/video) $35 CB Link
      -Bowls for Breakfast (music/video) $35 CB Link
      -Bytes of Sound (music/video) $35 CB Link
      -Desire (music/video) $35 CB Link
      -Goodboy Galaxy Link
      Sega Master System Available for Pre-Order:
       
      Genesis/Mega Drive Available for Pre-Order:
      -Bone Marrow $60 CIB Link
      -Chip's Challenge $50 CIB Link
      -Eyra - The Crow Maiden $50 CIB Link
      -Irena Genesis Metal Fury €45 CIB Link
      -Metal Dragon €55 CIB Link
      -Paprium $169 CIB Link
      -Reknum: Fantasy of Dreams €60 CIB Link
      Sega Game Gear Available for Pre-Order:
      -Heroes Against Demons €59 CIB Link
      Turbografx-16 Available for Pre-Order:
      -Electronic Lifestyle (chiptune by Remute) €35 C Link
       
      Part II: Pre-Orders Closed or Completed But Not Yet Released on Cart
      NES/Famicom Pre-Order Closed or Will be Available Soon:
      -Action 53, Volume 4: Actually 54 Link
      -Copper Jacket Link
      -Gamer Quest (fka Nintendo Quest) Link
      -Mystic Searches Link
      -Nix: The Paradox Relic Link
      -Nova the Squirrel Link
      -Saturn Smash Link
      -Slow Mole Link
      -What Remains Link
      -Yeah Yeah Beebiss II
      SNES Pre-Order Closed or Will be Available Soon:
      Game Boy Pre-Order Closed or Will be Available Soon:
      -Black Castle Link
      Game Boy Advance Pre-Order Closed or Will be Available Soon:
       
      Sega Master System Pre-Order Closed or Will be Available Soon:
      Genesis/Mega Drive Pre-Order Closed or Will be Available Soon:
      -Jessie Jaeger in Cleopatra's Curse Link
      -Phantom Gear $50 CIB Link
       
      Part III: Homebrew In-Development
      NES/Famicom In-Development:
      -Adventures in Cavyverse Link
      -Afterworld Deluxe Link
      -Alien Isolation Link
      -Cityzen Link
      -Cobol's Laboratory Link
      -Courier
      -Depths Link & Link
      -Diversion Link
      -The Excitables Link
      -Fie (chiptune by Zi) Link
      -Fire & Rescue Link
      -Force Bot Link
      -Former Dawn Link
      -Gulpy Link
      -Gypsum and the Travelers Link
      -Halcyon Link & Link
      -Hamburgers En Route to Switzerland Link
      -The Inversion Project Link
      -Jester Link
      -Janus Link
      -The Last Tower Link
      -Level Zero (chiptune by Zi) Link
      -Light from Within Link
      -Malasombra Link
      -The Meating Link
      -Montezuma's Revenge Link
      -Moon Fest (FC)
      -"Project Borscht" (a Frankengraphics tale) Link
      -"Project Sword" (a Tolbert tale) Link
      -Retro Artists of the Future, Vol 1. (chiptune compilation)
      -Retro Space Championship Link
      -Rumblefest '89 Link
      -Sam’s Journey Link
      -Saru★Kani Panic Link
      -Saturday Man Link
      -Save the Leopard Cats! (FC)
      -The Shapeshifter 1 & 2 Link
      -Snakey Link
      -Sun Wukong vs Robot Link
      -Space Soviets Link
      -Super Tilt Bros. Link
      -Swords & Runes 2
      -Touhou Rououmu (FC) Link
      -Unicorn
      -UNO
      -Vice: Magic City Mayhem Link
      -The White Room Link
      -Witch N' Wiz Link
      -(untitled Chinese New Year game) (ITG-Soft) (FC)
      -(untitled chiptune album by Electric Dragon) (FC) Link
      -(untitled RPG) (in association with Amaweks) Link
      SNES In-Development:
      -Biz-Billes Link
      -Danmaku Link
      -Justice Beaver – The Great Timber Tantrum Link
      -Nova the Squirrel 2 Link
      -Super Paw-n
      Gameboy/Gameboy Color In-Development:
      -4000AD (chiptune by PROTODOME) Link
      -Busty Bunny: The Bounty Babe Link
      -Coria and the Sunken City Link
      -D*Fuzed Link
      -Digital Monster Link
      -Green Cube Link
      -Gun Ship Link
      -Kitori Link
      -The Machine Link
      -Pet the Dog Link
      -Postal Pete Link
      -The Third Shift Link
      -(untitled Tronimal chiptune) Link
      Game Boy Advance In-Development:
       
      Sega Master System In-Development:
       
      Genesis/Mega Drive In-Development:
      -Affinity:Sorrow Link
      -The Alexandra Project Link & Link
      -Alice Sisters Link
      -Apeel’s Court Link & Link
      -Arapuca Link
      -Aratu Brothers + Shaolin Carcará Link
      -ASAP PLZ Link
      -Bio Evil Link
      -Bite the Bullet: First Course Link
      -The Cursed Knight Link
      -Dreams Link
      -Ellenica: Dusk of the Gods Link
      -HorgiHugh Link
      -Insane Pain Link
      -Journey to Oblivion Link
      -Lethal Wedding Link
      -Mega Box Reloaded
      -Mega Darkula Link
      -Perlin & Pinpin Link
      -Shrine Maiden Shizuka Link
      -Space Madness Link
      -Thunder Paw Link
      -Verge World: Icarus Rising Link
      -YM2020 (chiptune) Link
      -ZPF Link
       
      Part IV: Homebrew Purgatorio
      NES/Famicom In-Development:
      -Almost Hero 2 Link
      -Balls and Booty Link
      -The Banketh Link
      -Bleu Bleu Link
      -Cotton & Candy Link
      -Deal or No Deal
      -Dimension Shift Link & Link
      -Epicade
      -Family Vacation
      -Gatsby
      -The Gift of Discernment (aka Isometric Horror Game) Link & Link
      -High Noon Knockout
      -In Cod We Trust
      -Isolation Link
      -Isshokuta Link
      -Knil Link
      -NOFX Cover Cart Link
      -Project P Link
      -Rival Swarms
      -Space Beats
      -The Sword of Ianna Link
      -The Tenth Knight Link
      -Transamnia Link
      -The Wizard: Story Unknown Link
      -You Only Live Thrice
      -(untitled game by iamerror) Link
      -(untitled game by Punch) Link
      SNES In-Development:
      -Dorven Digger Link
      Game Boy In-Development:
      -Frog Knight Link
      -Last Crown Warriors Link
      Game Boy Advance In-Development:
      Sega Master System In-Development:
      -DARC Link
      -Dead Gunner Link
      -Lain vs. the Castle of Evil Link
      -Lost Raider Link
      Genesis/Mega Drive In-Development:
      -A(...)M(...)96 $169 CIB Link
      -Chant Link
      -The Chaos Citadel Link
      -Crypt of Dracula Link
      -Field of Nightmares
      -Kung Fu UFO Link
      -Magot Link
      -The Shifting Catacombs Link
      -The Viking and the Ninja Link & Link
      -Wanted Link
      -We Got Dungeons Link
       
      Part V: Malebolge
       
    • By Scrobins
      VGS Homebrew Almanac formerly known as The Currently Available Homebrew Thread:
      The purpose of this thread is to keep an up-to-date list of cartridge homebrew releases that are currently in production for the NES, SNES, Game Boy, Game Boy Advance, Sega Master System, and Genesis. This list is for those who need their homebrew right now (well, now plus shipping time and something for the tax man).
      For those looking for NES homebrew roms, NESworld is the place to go.
      For those curious what is included in each entry of the Action 53 series, NESdev has a wiki for you.
      Part I of this list will only include currently available physical releases (available that is, from the original producer (I can't watch every eBay auction). Hacks, repros, and re-releases will not be included (but this might be a good place to also flag pirated work so we can call out theft where it happens). This list will include games as well as chiptune carts. Variants can be included where there is a substantive difference in gameplay; limited editions, variants of the physical cart itself, or minor in-game differences will not be distinguished.
      Part II of this list will include defunct homebrew games that are no longer available from their original source but can be found on the secondary market. This section is intended to serve as a reference for collectors new and old who wish to enrich their collections as well as their lives with what was once brewed but alas is brewed no more (at least until Ferris re-posts his fairly exhaustive Aftermarket Price Guide here or on a dedicate site).
      For simplicity’s sake, links will be to a game’s individual page/thread (or as close as possible). 
      *Please note, I am sure that there are mistakes and games that slipped my attention in what follows. Feel free to point them out or inform us all of a change in a game's status. If you are the creator of a game and you would like to have your work included at a set date/time, please feel free to send me a pm. 
      Part I: The Currently Available Homebrew List
      Currently Available NES/Famicom Releases:
      -0-to-X NA Edition $75 CIB Link
      -2 in 1 Geminim/Siamond $27 C Link
      -8Bit Rhythm Land $45 CIB Link
      -8-bit XMAS 2017 $75 C Link
      -8-bit XMAS 2018 $46 C Link
      -8-bit XMAS 2019 $46 C Link
      -Action 53, Volume 2: Double Action 53 $48 CIB Link
      -Action 53 Volume 3: Revenge of the Twins $50 CIB Link
      -Alfonzo's Arctic Adventure $40 CIB Link
      -Almika - The Star Rider Denetsu Gaiden $40 C Link
      -Almost Hero $50 CIB Link
      -Alter Ego €25 CIB Link
      -AO $35 CIB Link
      -Armed for Battle $52 CIB Link
      -Assimilate $35 C Link
      -Basse Def Adventures €31 CIB  Link
      -Bat Lizard Bonanza $30 C PM johnvanderhoe 
      -Battle Kid Dangerous Trap $20 CIB Link
      -Battle Kid: Fortress of Peril $36 C Link
      -Battle Kid 2: Mountain of Torment $49 CIB Link
      -Beerslinger $35 CIB Link
      -Billionaire Banshee $50 CIB Link
      -Black Box Challenge $40 C Link
      -Bovinium Quest $30 CIB Link
      -Candelabra: Estoscerro $60 CIB Link
      -Carpet Shark $50 CIB Link
      -Chumlee's Adventure: The Quest for Pinky $67.50 CIB Link
      -Chunkout 2 $25 C Link
      -City Trouble $35 CIB Link
      -Creepy Brawlers $50 CIB Link
      -Doodle World $55 CIB Link
      -Draiocht $40 CIB Link
      -Dushlan $40 CIB Link
      -Eskimo Bob $30 C Link
      -Exit Loop $30 CIB Link
      -Expedition $75 CIB + Cards Link
      -Eyra-The Crow Maiden $50 CIB Link
      -Family Picross $40 CIB Link
      -Flea! £50 CIB Link
      -Galactic Ascension $45 CIB Link
      -Get'em Gary! $40 CIB Link
      -Gold Guardian Gun Girl (NES) $60 CIB Link
      -Gotta Protectors: Amazon’s Running Diet $40 C Link
      -Haradius Zero (FC) ¥10,000 CIB  Link
      -Haratyler (FC) ¥6,000 CIB Link
      -Haunted: Halloween '85 $60 CIB Link (NES) & $45 C Link (FC)
      -Haunted: Halloween '86 $60 CIB Link (NES) & $45 C Link (FC)
      -HBWC 2012 $45 C Link
      -The Incident: Remastered $60 CIB Link
      -Jet Paco €25 CIB Link
      -Jim Power $55 CIB Link
      -Justice Duel $45 CIB Link
      -Kirakira Star Night DX (FC) $53 CIB Link
      -KUBO 3 $30 C PM dale_coop
      -L’Abbaye des Morts (FC) €45 CIB Link
      -L’Abbaye des Morts (NES) €45 CIB Link
      -Little Medusa $60 CIB Link
      -Lizard (NES) $60 CIB Link; $55 CIB Link; & €45 CIB Link; (FC) €45 CIB Link
      -Log Jammers $50 CIB Link
      -Lucky Penguin $50 CIB Link
      -Machine Cave $40 CIB Link
      -Meteor Swarm $35 C Link
      -Micro Mages €45 CIB Link; (FC) €45 CIB Link
      -Mojonian Tales $48 CIB Link
      -More Glider $35 C Link
      -Multidude $40 CIB Link
      -Mystic Origins $50 CIB Link
      -Mystic Pillars $36 C Link
      -Nebs 'n Debs $48 CIB Link; (FC) €45 CIB Link
      -Neo Heiankyo Alien (FC) $45 CIB Link
      -NES Virus Cleaner $35 CIB Link
      -Nighttime Bastards $47 CIB Link
      -Ninja I & II $49 CIB Link
      -Oof McBrewster $45 CIB Link
      -Pegs $30 C Link
      -Pico Pico (Basse Def Adventures) (FC) ¥3,124 CIB Link
      -Piss the Fish (FC) $60 CIB PM fcgamer
      -Plummet Challenge Game $30 CIB Link
      -Porun-chan no Onigiri Daisuki ¥7,963 CIB Link
      -Power Coloring $35 C Link
      -Project Blue $60 CIB Link & 50 €CIB Link
      -Quadralords $35 C Link
      -Quest Forge - By Order of Kings $40 Link
      -Rainbow Brite: Journey to the Rainbow Land €39,90 CIB Link
      -Rollie $60 CIB Link
      -Sgt. Helmet Training Day €50 CIB Link
      -Sir Abadol €30 CIB Link
      -Snakky $20 CIB Link
      -Solaris $35 C Link
      -Space Raft $60 CIB Link
      -Spirit Impel $70 CIB Link
      -Study Hall $33 C Link
      -Super NeSnake 2 $34 C Link
      -Super Painter $40 CIB Link
      -Super Uwol €25 CIB Link
      -Swords and Runes RE $45 CIB Link
      -Swords and Runes III LE $250 CIB Link
      -Swords and Runes III NA $75 CIB Link
      -Troll Burner $20 C Link
      -Trophy $60 CIB Link
      -Twelve Seconds $35 C Link
      -Twin Dragons €45 CIB Link; (FC) €45 CIB Link
      -UXO RE $35 CIB PM Neodolphino
      -Wampus C PM johnvanderhoe &  Link
      -Wart Worm Wingding C PM johnvanderhoe &  Link
      Currently Available NES/Famicom Music Carts:
      -8Bit Music Power Final $33 CIB Link
      -A Hole New World Soundtrack (chiptune) $45 CIB Link (NES) & €40 CIB Link (FC)
      -bitpuritans: 2A03 Puritans RE $50 C Link
      -Creeping it Real $40 CIB Link
      -Famicompo Pico 2014 $50 C Link
      -Famimimidi $200 C Link
      -Mega Ran: RNDM $50 CIB Link
      -Sergio Elisondo: A Winner Is You $35 C Link
      -Zi: Quiet $35 C Link
      -Zi: Silicon Statue $35 C Link
      -Zi: Thornbury $35 C Link
      -Zi: [Welcome to] Eville $35 C Link
      Currently Available SNES/Super Famicom Releases:
      -Fork Parker's Crunch Out $50 CIB Link
      -The Last Super $30 C Link
      -Little Medusa $60 CIB Link
      -Nekotako $72 CIB Link
      -Old Towers $50 CIB Link
      -Quiz Impact Habit's Great Adventure (SFC) ¥10,780 CIB Link
      -Super Sudoku $40 C Link
      -Sydney Hunter & the Caverns of Death $40 CIB Link
      -Yo Yo Shuriken $50 CIB Link
      Currently Available SNES/Super Famicom Music Carts:
      -The Cult of Remute €36 C Link
      Currently Available Gameboy/Gameboy Color Releases:
      -Airaki $15 C Link
      -Another Dracula's Castle ¥4,730 CIB Link
      -Asteroids Chasers €45 CIB Link
      -Bingo Machine ¥3,480 C Link
      -Bonesy $15.27 C Link
      -Cubic Style GB Flash Cartridge with Illustration ¥1,000 C Link
      -Dangan $25 C Link
      -Death Planet $15 C Link
      -Die and Retry $15 C Link
      -Dimeo's Jukebox $69.69 CAD CIB Link
      -Dino's Offline Adventure $15 C Link
      -DMG Deals Damage $15 C Link
      -Dracula’s Castle ¥4,400 CIB Link
      -Dragonborne £40 CIB Link
      -Escape 2042 $30 CIB Link
      -GB Dot Illustration (Quiz Impact Illustration Collection) (GB Color) ¥4,500 C Link
      -GB Dot Illustration (Technos Japan Kon) ¥4,200 C Link
      -GB Dot Illustration (Tomoe Yamane-Game Impact Collaboration) ¥4,000 C Link
      -Ghostly Labyrinth $25 CIB Link
      -Guns & Riders $15 C Link
      -Infinitron $20 CIB Link
      -Into the Blue $25 C Link
      -Leo Legend €25 C Link
      -Lunar Journey €25 C Link
      -Micro Doctor €25 C Link
      -Mona and the Witch's Hat Deluxe $25 C Link
      -Museum on a Cart €69 CB Link
      -Petris $15 C Link
      -Quartet $15 C Link
      -Quest Arrest $35 CIB Link
      -Quiz Impact Habit’s Great Adventure ¥5,550 CIB Link
      -Repair-chan's Repair Daisakusen ¥ 6,380 CIB Link
      -Retroid $20 CIB Link
      -The Retrospekt.com.au Retro Gaming Museum The Game AVCon 2019 $15.27 C Link
      -Saeko-sensei’s Sex Appeal Blackjack ¥5,280 CIB Link
      -The Shapeshifter €49 CIB Link
      -Sheep it Up! $15 C Link
      -Submarine 9 €25 C Link
      -Tobu Tobu Girl Deluxe €49 CIB Link
      -Tower of Hanoi $15 C Link
      -Where is my body? €34 CIB Link
      Currently Available Gameboy Music Carts:
      -ASM 2016 Christmas Card $25 C Link
      -Heebie-GBs 2014 $40 C Link
      -Heebie-GBs 2019 $40 C Link
      -Remute: Living Electronics €30 C Link
      Currently Available GBA Releases:
      -HomeBrew GamePack $40 C (?) Link
      -Miko Para ¥4,500 CIB Link
      -Motocross Challenge $40 C (?) Link
      -Powder $35 CIB Link
      -XE GamePack $50 C (?) Link
      Currently Available Sega Master System Releases:
      -Baru Baru €45 CIB Link
      -Flight of Pigarus €50 CIB Link
      -Heroes Against Demons €45 CIB Link
      -Prisonnier 2 €45 CIB Link
      -Voyage-A Sorceress' Vacation €45 CIB Link
      Currently Available Genesis/Mega Drive Releases:
      -16Bit Rhythm Land $60 CIB Link
      -Alien Cat 2 $50 CIB Link
      -Arkagis Revolution $50 CIB Link (Mega Cat) & €45 CIB Link (Broke Studio)
      -Balaio de Jogos (4-in-1) 99.90 R$ CB Link
      -Cannon Fire Chaos $50 CIB Link
      -Coffee Crisis $50 CIB Link
      -The Curse of Illmoore Bay $60 CIB Link
      -Debtor $60 CIB Link
      -Demons of Asteborg €69 CIB Link
      -Devwill Too $50 CIB Link
      -Escape 2042 $40 CIB Link
      -Fight for Vengeance $60 CIB Link
      -Foxy Land $60 CIB Link
      -Gluf $50 CIB Link
      -Handy Harvy $35 CIB Link
      -Kromasphere YAGAC MD $35 CIB Link
      -L'Abbaye des Morts $45 CIB Link
      -Little Medusa $55 CIB Link
      -Mega Casanova $29 CIB Link
      -Mega Marble World $35 CIB Link
      -Mega Marble World 2 $38 CIB Link
      -Mega Quadro Pong $44.75 CIB Link
      -MegaXmas ’89 $30 C Link
      -Metal Blast 2277 $32 CIB Link
      -Misplaced $50 CIB Link
      -Old Towers $50 CIB Link
      -Papi Commando: Second Blood €45 CIB Link
      -Racer $29 CIB Link
      -Romeow & Julicat $50 CIB Link
      -Smiley & Smiley $29 CIB Link
      -Space Flies Attack $38 CIB Link
      -Super Heavy Duty $35 CIB Link
      -Tanzer $50 CIB Link
      -Tanglewood $50 CIB Link
      -Xeno Crisis £55 CIB Link
      -Xump 2 €24.37 CIB Link & Link
      -Yazzie $50 CIB Link
      Currently Available Genesis/Mega Drive Music Carts:
      -genMDM $80 C Link
      -Mikeyeldey: the album C$18 CIB Link
      -Remute: Technoptimistic €33 Link
       Currently Available Game Gear Releases:
      -Hamburgers En Route to Switzerland $39 C Link
      -Saeko-sensei’s Sex Appeal Blackjack ¥7,800 CIB Link
       Currently Available TurboGrafx 16 Releases (HuCARD only):
      -Atlantean $68 CIB Link
       
      Part II: Defunct Homebrew or Sorry But Your Homebrew is in Another Castle
      No Longer Available NES/Famicom Releases:
      -1007 Bolts/Hammers/Gifts
      -8-bit XMAS 2008
      -8-bit XMAS 2009
      -8-bit XMAS 2010
      -8-bit XMAS 2011
      -8-bit XMAS 2012
      -8-bit XMAS 2013
      -8-bit XMAS 2014
      -8-bit XMAS 2015
      -8-bit XMAS 2016
      -8-bit XMAS 2020
      -Action 53, Volume 1: Function 16 Volume One "Streemerz Bundle"
      -Astro Ninja Man (FC)
      -Basic Championship Wrestling
      -Beat ‘Em
      -Beyond the Pins (The Assembly Line Game Jam 2021)
      -Blade Buster
      -Blow ‘Em Out
      -Bomb Sweeper
      -Box Boy
      -Brandon You're Going to Hell
      -Brilliant Pebbles
      -Bust A Nut: Flight of the Harbinger
      -Candelabra: Estoscerro
      -Commie Killer
      -Commie Killer featuring Jeffrey Wittenhagen
      -Console Killer
      -Convention Quest
      -Cornball Cocksuckers
      -Cowlitz Gamers Adventure
      -Cowlitz Gamers Second Adventure
      -Cross-Strait Independence
      -CTWC 2018: The Archives
      -D+Pad Hero
      -D+Pad Hero 2
      -Dead Tomb
      -Dragon Boat (FC)
      -Dragon Feet
      -Dragon Leap
      -E.T.
      -Enigmacore
      -F-Θ
      -Final Fantasy VII
      -Flappy Bird
      -Frankengraphics Concept Cart
      -Freecell LE
      -From Below
      -Galf
      -Garage Cart
      -Gemventure
      -Germ Squashers
      -Glider
      -Gold Guardian Gun Girl (FC)
      -The Grind
      -Gruniożerca 2
      -Gruniożerca 3
      -HACK*MATCH
      -Halloween Scare Cart 2015
      -Halloween Scare Cart 2016
      -Halloween Scare Cart 2017
      -Halloween Scare Cart 2018
      -Hangman
      -Haradius Zero (NES)
      -Hungry Ghost Night (Gasse version) (FC)
      -Hungry Ghost Night (Wang version) (FC)
      -Ilevan (FC)
      -The Incident
      -Jay & Silent Bob: Mall Brawl
      -Juhannusolumppialaiset 2017
      -Juhannussauna 2016
      -Kevin Power in Concert Carnage
      -Kevin Power in Too Many Games
      -KHAN Games 4-in-1 Retro Gamepak
      -Kira Kira Star Night DX
      -K.Y.F.F.
      -LAN Master
      -Larry and the Long Look for a Luscious Lover
      -Larry and the Long Look for a Luscious Lover: Engagement Edition
      -Lawn Mower
      -Legends of Owlia
      -Mad Wizard
      -The Magnilo Case
      -Midwest Gaming Classic 2011
      -Miles Con 2016
      -Mr. Splash
      -NA Halloween 2009
      -NAGE Hunt
      -Neotoxin
      -NEScape
      -Ninja Slapper
      -Nomolos: Storming the Catsle
      -NyanCat
      -Peace Love Trippy Club (FC)
      -Perfect Pair
      -Perkele
      -Ploid
      -Poronkusema
      -Random Insult Generator
      -RC 2 Rally (FC) Link
      -Rekt
      -Retro Homebrew Championships 2015
      -RetroVision
      -Rick Roll'd
      -Rise of Amondus
      -Rock, Paper, Scissors
      -RSM Cart 2011
      -RSM Cart 2012
      -Scramble
      -Shera & The 40 Thieves
      -Sitten Kitten
      -Slappin' Bitches
      -Sly Dog Studios 3-in-1 2P Pak
      -Sneak ‘n Peek
      -Space Foxes
      -Spook-o'-tron
      -Star Keeper
      -Star Versus
      -Sudoku 2007
      -Super Bat Puncher Demo (NES)
      -Super Russian Roulette
      -T*Gun
      -Tailgate Party
      -Tapeworm Disco Party
      -Tic Tac XO
      -Tortoises
      -Tower Defense 1990
      -The Tower of Turmoil
      -Turtle Rescue: Unhatched DX
      -Turtle Rescue: Unwrapped
      -Uchūsen
      -Ultimate Frogger Champion
      -Utakata Synopsis (FC)
      -Vector Run
      -Vegetablets Go (NES & FC)
      -VGBS Gaming Podcast Season 1
      -Zooming Secretary
       No Longer Available NES/Famicom Music Carts:
      -_node: d3ad_form4t
      -8Bit Music Power
      -Alex Mauer: Color Caves
      -Alex Mauer: Vegavox
      -Alex Mauer: Vegavox II
      -Alwa's Awakening Soundtrack
      -Anamanaguchi: Dawn Metropolis
      -Anamanaguchi: Endless Fantasy
      -Anamanaguchi: Power Supply
      -animal style: Teletime
      -BEATBOX
      -Chip Maestro (for making music!)
      -Holly Jolly NES Mix
      -Goofy Foot: Power Chiptunes
      -Journey
      -King Gizzard and the Lizard Wizard: Polygondwanaland
      -King Gizzard and the Lizard Wizard: Polygondwanaland 2nd Release
      -Kreese: PAL Project
      -Midlines
      -MOON8
      -Moonfall: A Legend of Zelda Compilation
      -NESK-1
      -NTRQ
      -Puzzle Boys: Duck Tails
      -RTC: Years Behind
      -Super Synth Drums Cart
      -Zao: Reformat/Reboot
      -Zi: Four
      No Longer Available SNES/Super Famicom Releases:
      -16-bit XMAS 2011
      -16-bit XMAS 2012
      -Frog Feast
      -Kaizou Choujin Shubibinman Zero
      No Longer Available Game Boy Releases:
      -Chunkout
      -Deadeus
      -Flashin'
      -IndestructoTank!
      -Rope & Bombs
      -Super Connard
      -Super Jetpack DX
      -The Warp Coin Catastrophe
      -Windows 93 Adventure
      No Longer Available Game Boy Music Carts:
      -King Gizzard & The Lizard Wizard: Flying Microtonal Banana (Gizzmoix)
      -King Gizzard & The Lizard Wizard: I’m In Your Mind Fuzz (Gizzmoix)
      -The Mist Toggles: Boneless
      -Nonfinite: Plus/Minus
      -Tronimal: Hello_World!
      No Longer Available GBA Releases:
      -Anguna: Warriors of Virtue
      No Longer Available GBA Music Carts:
      -Be Careful: Anemoia Garden
      -Be Careful: Liminal Cove
      -Doctor Popular: Destroy All Presets
      -Don Aaron: FREEDOM?
      -H A R U S P E X: Tome of the Forbidden Land
      -Lin Lin and the Symphony of Tears: Release I
      -MAGICK FLAVOUR STATION: N64 Love Songs
      -mingkurray: Hidden EP
      -mingkurray: holographic
      -NMBUS x Be Careful: Linear EP
      -OasisLtd.: Mixtape #1
      -Startide Realms: ASVMR
      -TUPPERWAVE: To you baby, with love
      -Whitewoods: Spaceship Earth
      No Longer Available Sega Master System Releases:
       -Sydney Hunter & The Sacred Tribe
      No Longer Available Genesis/Mega Drive Releases:
      -16Bit Rhythm Land
      -30 Years of Nintendon't
      -ASCII Wars
      -Barbarian
      -Beach Volley
      -Bomb on Basic City
      -Code Eliminator
      -Diamond Thieves
      -Double Symbol
      -FX Unit Yuki
      -Game Panic II
      -Germ Squashers
      -Griel’s Quest
      -Hangman SG
      -Humiliation Nation
      -Invasion
      -IK+ Deluxe
      -Ivanhoe
      -Megagames Almanac
      -Mega Cheril Perils
      -Miniplanets
      -Papi Commando
      -Pier Solar and the Great Architects
      -Return to Genesis
      -Sacred Line
      -Star J
      -Suprakillminds
      -T*Gun II
      -Uwol Quest for Money
      -War in the Machine
      -Zooming Secretary
       No Longer Available Genesis/Mega Drive Music Carts:
      -Eternalist: A Telefuture Compilation
      -Freezedream: Today
      -Hyperdub: Konsolation (bundled with Analogue Mega Sg)
      -Tanglewood Soundtrack
      -TH4 D34D: Future 2612
      -Ym2017
    • By OwlLicks
      Howdy VGS,
      I'm about ready to start aggressively searching eBay for the games missing from my library. I'm missing a few heavy hitters, but I'm more focused on getting some of the uncommon but not too pricey ones knocked out first. If you have any of these, let me know and I'd be happy to work out a fair price. I don't have too many spare games to trade at the moment.
      Updated 10/21/21
      Advanced Dungeons & Dragons: Hillsfar
      Alfred Chicken
      Indiana Jones and the Last Crusade (Ubisoft)
      Jimmy Connors Tennis
      Nobunaga's Ambition II
      Tecmo Cup: Soccer Game
      Times of Lore
      Ultima: Warriors of Destiny
      Edit: games in red are spiking on PriceCharting right now, I'll likely hold off on buying these until prices calm down again.
    • By austin532
      Here is a list of CIB, Loose, and misc stuff I have for sale, for offer, or trade. Let me know if you are interested or need pictures. I am negotiable on prices so don't be afraid to ask.🙂

      NES SEALED - FS/FT/FO

      n/a


      NES COMPLETE - FS/FT/FO

      Dick Tracy - $40
       
      NES LOOSE - FS/FT/FO

      Airwolf - $2
      Airwolf (Mint) - $5
      Goal! (Very Nice) - $5
      Jeopardy - $2
      Super Mario Bros. 3 - $10
       
      NES Nintendo Brand Controller - $9
      NES Nintendo Brand Zapper (Gray) - $6

      SNES SEALED - FS/FT/FO
      n/a

      SNES COMPLETE - FS/FT/FO

      Arkanoid: Doh It Again CIB - $40
      Madden '93 - $10
      Super Smash TV - $50
      Super Tennis CIB - $30

      SNES LOOSE - FS/FT/FO

      Chrono Trigger (Damaged Label) - $200
      Official Super Nintendo Controller - $20


      GAMECUBE - FS/FT/FO

      n/a


      Wii - FS/FT/FO
      n/a


      GAMEBOY - FS/FT/FO

      Monster Truck Madness (GBA) - $5

      Pocket Bomberman Instruction Manual - $4

       
      PLAYSTATION - FS/FT/FO

      Official RF Adapter (New in Box) - $10
      Official Playstation Controller (non analog) - $10


      PLAYSTATION 2 - FS/FT/FO

      n/a


      DREAMCAST - FS/FT/FO

      n/a


      XBOX 360 - FS/FT/FO

      Batman: Arkham City (Sealed) - $20
      Duke Nukem Forever (Sealed) - $10
      Lost Planet 2 CIB - $10
      Tomb Raider Legend CIB - $10


      MAGAZINE & STRATEGY GUIDES - FS/FT/FO
      Prima's Secrets of the Game: Super Mario World Game Secrets - $10
      Top Secret Passwords Player's Guide - $10

      Nintendo Powers:

      November/December 1988
      March/April 1990
      May/June 1990
      Volume 27
      Volume 46
      Volume 51
      Volume 44
      Volume 75
      Volume 106
      Volume 108
      Volume 111
      Volume 112
      Volume 113
      Volume 116
      Volume 117
      Volume 118
      Volume 119
      Volume 120
      Volume 121
      Volume 122
      Volume 123
      Volume 124
      Volume 125
      Volume 126
      Volume 127
      Volume 128
      Volume 129
      Volume 158
    • By matthughson
      Genre:
      Turn-Based Puzzle Platformer (e.g. Fire n' Ice, Catrap, etc)
      Technical Details:
      Targets Mapper 1 (MMC1). 128KB PRG-ROM (16KB Bank Swapping) + 128KB CHR-ROM (4KB CHR Window). Written in C (CC65) using NESLib and NESDoug/cppchris' MMC1 Helper libraries. Famitone5 sound engine (also by nesdoug). Status:
      Feature complete! Bug fixing and designing physical materials (box, manual, etc).
      Beta now open!
      Estimated release date: Late 2021.
      Planned Features:
      100+ Levels New puzzle mechanics every 5-10 levels Battery Save Rich, interactive story telling Rewind ability, to undo previous moves without restarting the entire puzzle Art by Kenneth Fejer, Daniel Turner (Alp317) and Haller Zoltan (Zolionline) Music by Tui Physical Cart Plans:
      My plan is to release a full CIB version of Witch n' Wiz through one of the major NES publishers if possible. Unlike my last game, From Below, this will not be limited (although there may be limited editions).
      Development Screenshots:



      Compo Version:
      Witch n' Wiz was submitted as part of the 2020/21 NESDev Competition, and came in 2nd place. That build of the game can still be downloaded and played on itch:
      https://mhughson.itch.io/witch-n-wiz
      You can read all about the development of that version in the compo thread here:
      https://www.videogamesage.com/forums/topic/6938-witch-n-wiz-nesdev-compo-edtion-out-now/
      Social Media:
      Twitter: https://twitter.com/matthughson
      Facebook: https://www.facebook.com/groups/2788404591447894
      Discord: https://discord.gg/DenmA4ssPY
×
×
  • Create New...