A downloadable game

Download NowName your own price

A block stacking puzzle game for the Gameboy Advance, with focus on delivering responsive gameplay and satisfying visuals. It follows guideline rules, so all spins, kicks and setups should work as expected.

For Everdrive Users:

You might have to set the save type for the game to SRAM for saves to work!

Source Code:




  • Combo "walls" now go up all the way to the top
  • Placing a piece in combo mode before starting a combo no longer leads to Game Over
  • Post-Game stats now keep showing state until reboot
  • Fixed Rotate Left/Right labels in Controls settings being swapped
  • Fixed bug that caused early top-outs
  • Saving on cartridges with both flash and SRAM/FRAM should now be handled correctly


  • Fixed bug in survival mode


  • Added 4 Wide Combo Mode
  • Added tetr.io style Blitz Mode (scoring should be the same)
  • Added Survival Mode
  • Added tetresse style Finesse training option to Training Mode
  • Added 180 spins (not assigned to any buttons by default)
  • Added even more customization options including skins, backgrounds, remappable inputs and a lot more
  • Added stats in after-game screen
  • Improved menus (hopefully)
  • Changed four line clear text and sound effects to "Quad"
  • Held piece gets grayed out when holding is not allowed
  • Next preview pieces now visible during Ready-Go
  • Quick resetting now works during Ready-Go
  • Dig garbage "holes" are now always 1 square deep
  • Flash saving should now work for some bootleg cartridges (using lesserkuma's goombacolor code)
  • Fixed a few bugs, including a couple that affected piece locking
  • The game is now open source
  • More that I'm probably forgetting!


  • Fixed a bug that caused the game lock up on the name input screen


  • Added white frame color
  • Added new skin
  • Added quick restart shortcut (hold L+R)
  • Fixed ultra scoreboard bug


  • Added Ultra Mode
  • Added Training Mode
  • Added 2 Player Battle Mode
  • Added 4 more Music Tracks
  • Added a lot of customization options, including a Light Mode for non-backlit GBAs


  • Left/Right - Move falling piece
  • A - Rotate Clockwise
  • B - Rotate Counter-Clockwise
  • Down - Soft drop
  • Up - Hard drop
  • L/R - Hold piece
  • Start - Pause


Link Cable Library



Updated 13 days ago
Rated 5.0 out of 5 stars
Made withAseprite
TagsGame Boy, Game Boy Advance, Open Source, Pixel Art, Retro, Tetris
Average sessionA few minutes
MultiplayerLocal multiplayer
Player count1 - 2
LinksSource code


Download NowName your own price

Click download now to get access to the following files:

apotris.gba 2 MB

Development log


Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 40 of 41 · Next page · Last page

I think Chinese players will be very happy. I would be honored if I could help out in Chinese if needed.





Thank you for your support, and recommending my game to your friends!

I will try to add Chinese language support (among other languages) in the next major update! Though it might take a while.

Also, thank you for the art!!

(1 edit) (+1)

I know this is a dumb request, but can you add an option to bring back the four line clear text and sound effects to "Tetris". I found it really amusing hearing "Tyetris" in that robotic voice :D .  I wouldn't mind if it was just the voice, though.

Keep up the good work!

I prefer "tetris" too but I changed it to be a bit safer with copyright stuff... So it will have to stay unfortunately :/


Ah, I see.  That's understandable.

Have a good one!


Sooooo good!!!


That's a good looking GBA :D

Also damn it! I forgot to add the game mode title in the end screen, it's not easy to tell what you were playing like this...

(5 edits) (+1)

Hmm seems like it broke saving on the flash cart I was using. Is that possibly because of the bootleg flashcart save changes? My cartridge just uses normal 32KB FRAM and v2 it worked perfectly fine. Does it try to use the bootleg save feature automatically? The save works perfectly in mGBA still and on v2.1.1

Edit: what's weird is it does auto fill my name and stuff out of my old high scores list.

Edit edit: So I've done some testing. On my flash cart it seems to be writing the save back to the ROM and not seeing that there's 32KB of FRAM on board. Is there a way to get a version that doesn't do that lol I don't currently have devkitarm setup on my WSL but I guess I can try messing around with the source if it's not something you want to look at.

final edit: It's definitely an issue with the save to ROM chip code. I think it just assumes if the ROM chip responds to the flash commands that it needs to write to the ROM chip. Which doesn't work in situations like mine where the ROM chip is flashable, but also it has FRAM. It ends up just ignoring the FRAM and writing to the ROM chip anyways. I was able to clone the repository and get the build running on my WSL Ubuntu installation. And just changing the def.h file to:


And after that it just works as expected. Hopefully it doesn't introduce any other issues since I'm building it on my machine rather than yours which is untested thus far. I'm unsure how much work it would take to add some logic to the save to flash code for this scenario or if it's just easier to build with that def changed as an option.

Anyways thanks a lot for the great homebrew title! I love it.

This is my cart for reference: 

Ah I'm sorry for the trouble, I tested on a few devices and I had no problems with the code, so I decided to leave flash detection on... Didn't think about bootlegs with FRAM. I could always just have 2 builds available, but I will try to fix the code!

Props for finding the issue yourself and building the game, hope it wasn't too much hassle.

I've got a couple of ideas on how to fix the bug, but unfortunately I have no way to test them. I'd really appreciate your help testing, if you have the time!

If you want to help, DM me on twitter or tell me where I can DM you!

(1 edit)

Hey just saw your message. I'm happy to help test out the changes I'll send you a message on Twitter. 

Edit: says I can't message you. I just made a new Twitter account, I'm @SmellyGhosty if you can DM, not sure if it's permissions or a security setting.

Ah I thought I had DMs turned on, my bad!


Hey I love your Tetris game so much. It's extremely high quality and is basically the GBA ROM version of Nullpomino because it has so many modes!

Hello! So I'm curious when we can expect a new version with the lock-delay bug fixed and other stuff (diagonal disabled, etc) and whatever you have in mind next. I've been opening this every day for the last 2 months :))


I'm almost done with the update, I've just been having a bit of a summer vacation :)

I'll try to finish everything in the next few days!


Amazing work, a perfect game for my Miyoo Mini!
After playing a bit I went back and donated some money because you definitely deserve it.
My minor suggestion would be to show the leaderboard for the game mode after you finish your game/input your name.


Downloaded this a few days ago and have not put it down for more than a few hours since. Absolutely addictive! 

I think my only critiques would be on each “stage select” as it were ( dig, marathon, sprint, etc ) could you put that at the top of the screen above “Lines” ( or time for Ultra ) that way if I snap a photo of a new score, it’s easy to identify what I was playing.

I saw you left a comment recently about an option to limit the next piece preview, which is awesome! Or changing their size too, which would work for sure. My other suggestion is to maybe make an option for them to be in the same style as the shadow displayed in the playfield?
Same for the held piece, that is actually my biggest hurdle is I keep mistaking the held piece for the next up, but that is on me!

Regardless, this is by far and away the best block stacking game for the GBA, and a super close second for the Game Boy entirely, though that might be just because DX has more nostalgia for me.


Thanks for the feedback! I'll add the names of the modes in stage select for sure!

(1 edit) (+1)

Who should I call if I can't stop playing it? ;) Some suggestions:

- I can see that people are asking about new tracks. Maybe you could make a tool for adding additional songs to Apotris (in MOD format, for instance)

- rumble feature for flashcarts that support it

- any interesting ideas for new content? Some kind of challenges, bonus blocks (could be especially nice in multi), alternative pentomino shapes?

- have you ever considered creating a package of interesting block puzzle games for GBA in the future? With Apotris working so well... That would have been awesome for sure. Personally, I have great memories of playing Block Out for DOS as a kid, check it out:

And here's an arcade version:

BTW, is there a GitHub page for your project?

Keep up the great work!

Thank you!

I did think about adding rumble, maybe in the patch after the next one!

About other puzzle games, I've certainly considered it! Especially a tetris attack/ panel de pon style game since I've already made a crappy clone in the past (though that one already has a pretty good port on GBA).

Right now I'm focusing on adding all the "regular" tetris modes. When I run out of stuff to add, I'll definitely expand to new types of content!


My Game Boy Advance was aching for a decent Tetris version, and you made that dream possible. Amazing work! And just in time for me trying to get into Tetris again.

For now, I've gone for the direct download, but I'll buy the next update for sure. Your work is incredible!


This is fantastic, can't thank you enough for finally bringing a good Tetris version playable on the gameboy micro! This has all the best parts of the modern titles, and the soundtrack is beautifully "GBA". Even going the extra mile for 2P via link cable, I love it! You did an awesome job :)

One request: I would love to see a game track remixed from the original Tetris Theme, (or maybe remixed from the Russian folk song Kalinka to avoid any ip issues?) There's nothing like stacking blocks to the classic tune.

Glad you're enjoying the game!

I get you, I'd honestly love to put a Korobeiniki remix in the game. But right now I both worry that it's poking the bear a bit too much, and I haven't found a good remix that would make it worth it anyway... I might try my hand at making my own rendition in the future, but that's a bit outside my area of expertise lol


Just bought it, well done! The only option I would love to see is being able to select only one "Next" piece to show (coming from Tetris DX, I often get mixed up with all the "next" pieces in the corner of my eye). Also, I think I got a bug when after finishing all lines in Marathon mode after the completed screen the game hung on the title screen with strange sounds playing: video

I'm playing on an EZFlash Omega DE, btw.

Thanks! I can definitely add an option to limit previews to only 1 piece. I'll probably make the next piece be bigger too, which might help.

I've encountered that problem too on my EZFlash... It has something to do with the way it saves since I haven't had the same problem on other devices, but it's kinda hard to reproduce to know for sure. If I'm correct about this, it should be fixed in the next version (hopefully).

Thanks for answering, sounds good!

After playing for a few days (mostly Marathon) I can say I really like it and it plays very smooth. Also the tracks you've selected are great. I have three more (minor) points of feedback:

1. It seems that for Marathon, a random track (from the selected tracks) is played in a loop. I think it would be cool if the selected tracks were shuffled since I'd like to hear different tracks during a longer session.

2. I'm getting accidental hard drops on high speeds regularly when wanting to move sideways. This probably has to do with my wonky GBA D-Pad, but I read someone else mention disabling diagonal press so maybe that option would fix it.

3. I can't say I fully understand "Training" mode yet. I guess it's for practicing optimal button presses? In that case, shouldn't the finesse counter increase for every "unnecessary" button press? Because when I rotate a piece 5 times before dropping the finesse counter still only increases by one.

I appreciate the feedback!

1. You're right! I wanted to add this at the start, but at some point I forgot :P. I'll definitely let you choose if you want to loop through all songs or just one in the settings.

2. I've already added this option in the next update, hopefully it will fix your issue!

3. The main point of training mode is no speed-up and the "save states". I added it because I wanted to practice complicated openers and perfect clear solutions. It also functions as a "free-play" mode.
The finesse counter counts "wrong drops" and not movements, though I will probably change that to movements since I am quite unsatisfied with it right now (it also only works for hard-drops since I couldn't find good data on how to score soft-drops). I'm thinking about adding a Tetresse -style trainer option too.


This rocks.


This is easily the best version of Tetris I've played yet!

The responsiveness, the animations and effects, the customization.
Its really quite fantastic.

Immediately after trying it out in an emulator I dug up my old cfw 3ds so I could play it properly, and I have been playing it non-stop since!

If I had one gripe, it would be that I miss Korobeiniki, but even so, the music included is still wonderful.

I am really looking forward to what future updates might hold.

Hello, things have been quiet here lately. Is this still being actively developed?

This is good, but like a lot of homebrews this could be so great with only a few more tweaks!

The number of lines recorded in the game over screen, the fixing of the music lagging, the disabling of the diagonal press and disabling of the hard drop... 

Please don't let this be just another frustrating experience of a semi-finished game, because this could be so great!

Don't worry, I'm still working on the game!  I had to take a break for a couple of months to focus on university work, but I just got my degree!  I've written down all the suggestions I've gotten, and I'm working on them along with some other new features.  There should be a new version out in the next couple of weeks!

By the way, can you give me some more info on the music lag?  I've played the game on a ton of different devices and I haven't had any music lag...  What device/emulator are you using?  Can you test a different emulator and see if you still have the same issue?  If it's only on that emulator, see if there's anything in the emulator's settings that fixes it (maybe audio sync?).

Thank you for the reply, and glad you are still working on it!

It seems to me that the sound problem appears mostly when using savestates. I'll try to test ot more on different devices. I get this on an Android S8+ that runs other GBA games perfectly. Is this game more demanding?

It feels like the memory keeps filling and then the sound jitter appears.

I tried it on S20 and pc too, but there I only got sone random jitters. I will be back with other test results!

Another thing: to me the lock system is really inconsistent. I think that it's cool that the piece auto locks after about 3 seconds, to prevent the game from being too easy. 

But as long as I try rotating the piece and those 3 seconds haven't passed, the piece shouldn't lock. Like it is now it's really hard to play past the 10th level, because one minute you can spin the piece 10 times in that timeframe and keep trying to find it's place, then the next piece comes, you push it somehow into a corner and it just locks after 2-3 rotations, and this really messes with your flow. That's how I always lose a game, and it's frustrating.

Even if a piece can not be move anymore, as long as I press the rotate button the next piece shouldn't drop, cause it just messes everything.

Could you ease explain a bit how the lock delay works?

Hmm, the game shouldn't be any more "demanding" than other games for the GBA...

Do the jitters happen right away, after a while, or after loading a savestate? Also please tell me what emulator you're using.

You are right about the locking system, I have noticed a few problems myself. I'll have it fixed in the next update!

That's great to hear! Can't wait for the next version!

The jitters happen randomly, that's why they are so hard to capture. I usually use VBA-m either standalone ore core, or something based off it


Congratulations for your degree! Looking forward for the updated version of this excellent game

Aww thanks!


Hurray! I'm so glad I've found this. It's definitely on my top 3 Tetris games. I appreciate the customizability and the wonderful visual effects.

Here is a small suggestion. On the finish screen, if you get a new record, it would be nice to quickly see on which position.

For inspiration, here's how another game (Mr Driller) does it, by showing "2nd" before your name.


After spending some time with this game (on a phone emulator) I think it's becoming one of my top 3 Tetris games ever!

I did note some stuff that could make it better, at least in my opinion:

It would be nice to have the lines recorded in the hiscore as well (at the end), to know how many lines one has cleared.

Besides disabling diagonal presses, disabling hard drop would be really useful, at least when playing on a touch screen. If playing with a controller, I understand that this might not have much use.

Also, sometimes the music lags, no matter the song, I don't know why it happens. The game runs normally but the audio stutters

(1 edit) (+2)

Found Apotris by chance and just had a go on my Miyoo Mini. Love that it follows guidelines, has a couple fun gameplay modes and that there are options for the visuals. Music is banging too. All in all, this might be my new favorite tetris version.

I'm curious what Tetris game it mimics speed-wise. I am used to the more retro games and those seem a lot slower. In this one I can barely reach level 10 and everything becomes really fast. Does it resemble Tetris DS? Or some of the newer ones? Would a speed setting be out of the question? (Slow to resemble classic tetris games, medium to resemble Tetris DS, fast for a real fast challenge, etc.)

If by fast you're referring to the controls, that's because they mimic more modern games like tetr.io or jstris. You can change the controls to be slower in the settings if you prefer it that way.

The values the game uses for gravity can be found here. Most guideline games use these, but many games differ on how pieces lock when they reach the bottom. In some games like Tetris DS, pieces never lock if you continue rotating. This makes the game way more forgiving. I chose to go with move reset, like most Tetris games.

I'd like if the game had a bit of character, and adding a ton of options that change the rules feels like it would ruin that.

To be fair, the game is more tailored for modern/guideline Tetris fans as the GBA already had great "classic" Tetris games. If you like playing those I can see how my game feels too fast, but if you stick with it you might not be able to go back :)

Anyway, thanks for the feedback!

(1 edit) (+1)

Thanks for the reply! I meant the gravity, yes.

I get what you're saying, trying to make it stand out a bit from the rest. That's cool!

Actually, there are a lot of tetris games on the Gameboy, but only 2 on the GBA (The awful Tetris Worlds and Mina no soft - japan only) so this is why it's great that you made a homebrew version that is so good! 

I don't try to take anything away, I'm just curious about what stuff it uses and what can and can't be done in it.


If you didn't already know, there's a homebrew gba game called Lockjaw that has a lot of customisation options for gravity and other rules. I like the visual style and feel of Apotris more personally though.


This is the best and cleanest version of Tetris for any portable (not just GBA). Your game is up there with the likes of Jstris and Tetr.io for the best fan Tetris clone. Years of modern Tetris conditioned me to hard drop and hold, so Gameboy Tetris can not longer be my go-to.

Thanks for waking up one day and putting in the time to making this. You are a god--a Greek one at that. The GBA is my all-time favorite console, and I love seeing the support it still gets, years after its end. This is a wonderful community.


Just found out about this game and it's becoming one of my favorites! Everything is really well done, love the feel of it, the graphics and all the options! I'm gonna have to buy it, I love it that much!

I did find (kind of) a bug: when pressing up to hard drop, if I press up and also lesft or right (sondiagonally), the piece hard drops a square to the left or right, not where I would like it. I play on Android with virtual keys so it's really easy to press diagonally. Could you maybe diaable diagonal touch?


I'll look into it for the next update! In the meantime, your emulator might already have that option. I don't know which one you're using but I know that MyBoy lets you turn off diagonal touch for sure.

Thank you! Yes, found something called "diagonal sensitivity" and set it to zero, but it would be nice to have it by default in the game.

I don't understand what finesse is, it seems to not do anything. I know in Jstris (I think) it calculates the eficiency somehow, but I don't see any new statistic here.

Also an idea: the next piece could be displayed bigger and maybe in a border, to be easily viewed. Like it is now things get a bit confusing. Maybe a menu to show only the next piece could be nice.

These are just ideas, maybe others would find them cool too, who knows, but this game is already really good! Kind of like a Tetris DS for the GBA 😁 I love this!


Thanks for the suggestions!

Enabling "show finesse" enables a finesse error counter. It only affects sprint and training right now, but that will probably change in the next version. If you want to learn finesse there are some great tutorials on youtube!

FYI the game only counts finesse errors when you hard drop.


Amazing work, thank you so much!

But one thing I don't understand is the "Drop protection" option in the settings, what does it do?


It disables hard dropping for a few frames after placing a piece so that you don't accidentally hard drop twice in a row (happened to me a lot on the AGB because of its dpad) or hard drop right after a piece locks into place. Sorry for the vague wording, but I wasn't sure what to call it and also have it fit in the settings screen.


Ahhh makes sense, thank you!

(3 edits)

hey there! fav tetris game by far, thx <3 
question regarding drop protection: I still somehow double hard drop approx. once every second sprint run, which is frustrating – would it be possible to make the protection time customizable or just a tiny bit longer? Depending on the device / condition of the D-pad, I think that could help out.

thanks <3


Totally, I'll add it in the next version!

Awesome, thanks a lot! Hope development is fun :)



I had to pay for it again because the game is really that good, ty akouzoukos <3<3<3

Aw thank you too, I'm happy to see you like the changes!



I've been playing around a little and there are a couple quality of life things that would be nice in the "game over" screen, like start and select mappings and an option to return to the "mode menu" (not sure what you call it) so the player doesn't have to back go to the main menu and re-select their mode to adjust their level, lines and stuff like that

But seriously you've done a lot in the last two weeks and I'm so glad you added all the community suggestions :)

Hi, the update is amazing, but I have a problem that makes the game unplayable. Every time I finish playing and I have to insert the name it locks itself on that screen and stays that way until I reset the game and it doesn’t save.

(4 edits)

Edit: Never mind, I think I found the bug you're talking about and it should be fixed now. Download the game again and let me know if you still have the same issue!

I'm sorry you're having problems! Can you give me a bit more info? How are you playing the game (GBA with which flashcart or which emulator)? Also when you say it locks itself on that screen, do you mean the game freezes completely or can you still hear the music?

Thank you for the quick fix.


Created an account just to say how amazing this project is! A modern, straightforward and portable Tetris is a dream coming true.

A minor issue that I encountered is that for some reason the game doesn't register my scores. I play it on my 3DS using the Virtual Console and I used the New Super Ultimate Injector to put the game in there. Other GBA games in there save normally and I used the sane method to put it there.

But well, besides that, I honestly say that this is one of the best fanmade Tetris out there.


Thank you!

I just checked and by default New Super Ultimate Injector disables saving for the game since it can't find it in it's database. You have to manually set the save type to SRAM for saves to work!


Oh, I didn't know it! Gonna try it, thanks a lot!

Hello again!

Sorry for the lengthy comment, but I really want to fix this because I really want this to work!

Using the Beta 27 of the New Super Ultimate Injector, the Rom Save Type is set permanently to unknown:

So, I tried GBA Tool Advance to patch it, and apparently, it doesn't have a Save Type...

And because of that (I think), I can't seem to patch it. 

And using VisualBoyAdvance-M, it doesn't generate a save file too after I opened the game for a minute to play it, and unfortunately, it doesn't save it.

Again, sorry for the lengthy comment.

Any ideas? Any help is appreciated!

(1 edit) (+1)

Since the game is new, it's not going to be on any database so nothing auto-detects the save type. It looks like NSUI 27 doesn't let you manually set it, but I found the beta 28 here which does. You could also use the old Universal GBA VC Injector which also lets you choose the save type.

GBA Tool Advance patches the rom to support SRAM, but that isn't necessary since the game already does. Your problem is getting the VC Injector to use the correct save type.

In VBA-M you also have to manually set the save type to SRAM by going to Options > Gameboy Advance > Configure. Set the save type to SRAM 128k before opening the rom and it should work
though I'd recommend switching to mGBA.

Hope this helped!

Hello once again!

Thank you so much for the help! It finally works!

Used NSUI Beta 28 (after fighting my antivirus and putting an exception on it) and now it finally saves!

Sorry for the lack of knowledge and again, thank you so much.

Wish you success! 


No problem, I'm glad you got it to work!


very fun actaully makes me want to actually buy a gba just for this. only thing i can suggest is adding a white frame color if its possible

theres the 7 tetrimino colors but no white 


It's even more fun on an actual GBA ;)

Thank you for the suggestion!


I added white as an option, download the game again!


Really awesome work! The voice lines are fun.

I love the ideas for more music and a timed mode. Can I suggest a high contrast mode with a white background for non-backlit GBAs?

After you add all the important stuff a stat screen like in Tetris DX and some different block sprites/textures would be super fun!


Thanks for the suggestions, I'll see what I can do! I've already got a few customization options in the works for the next update!

(2 edits) (+1)

Awesome, I can't wait! 

Edit: small thing, could you consider adding menu mappings for start and select? I think it would really make the game feel more polished and more like the original gb tetris :)


i will definitely download and play this on my ds every single day


Very cool, and definitely fills a need. I think I'm gonna try this on my Vita  through an old PSP GBA emulator.  

And thank you for actually using the full real estate of the screen for gameplay! I'll never forget going from Tetris DS to Tetris Party Deluxe on NDS and immediately noticing the smaller blocks, all because of some dumb border at the bottom that just shrunk everything else.

If you're taking requests,  how about a 4-wide combo race like Nullpomino has? Official games don't have that.


game good

(1 edit) (+1)

Would you consider releasing it in a .pocket format as well?

Thank you for a great game!


I think the .pocket format is only for Gameboy/Gameboy Color games, so that might not be possible unfortunately


defenitly one amazing tetris game, with amazing effects.

Though the music can get repetative.

could be funny with a VS-mode against the AI where it says "take that" whenever it attacks

Thank you! I'll add some more music in the next version, stay tuned!


I must say, this is a real solid Tetris clone. I won't be goin' back to Tetris Worlds GBA for a while!


The game is really funny. I have a suggestion. You could add a timed mode of 5, 10 and 15 minutes where you try to make the most points in that time.


Thanks! I'll consider adding it in a future version!


Very solid Tetris game! Nice work!

(1 edit) (+2)

One of if not the smoothest ,most tactile and satisfying versions of tetris ive ever played and the definitive way to play tetris on gba and is one of my top 5 gba games now. Amazing work. 


Really nice work!


The perfect guideline/modern Tetris experience for handheld and on the go. Nailed every aspect of it.

Thank you for making this a reality.


I'm glad you think so!


This is perfection! I have a feeling it'll be my go-to whenever I want to throw down some blocks from now on.

Thank you so much!

Viewing most recent comments 1 to 40 of 41 · Next page · Last page