Beta Anarch

Magic Sam

Forever Homebrew
Aug 10, 2007
Yuzu onsen
Hi all,

I have ported Drummyfish's Anarch to the Pandora :)


Original source code is available on Gitlab:

My small modifications to the source code are available on SourceHut:

Grab it here while it's hot !


* build #2

- Implemented @M-HT 's suggestions, the game is slightly faster now (2-3 FPS)

* build #1

- Drummyfish's Anarch 1.1.D
- Compiled with @ptitSeb 's latest Code::Blocks package (GCC 11.2)
- Makes good use of @ptitSeb 's GL4ES


- DPAD: move
- Triggers: strafe left and right
- (X) : shoot
- (B): jump
- (Y): cycle weapons
- START: map

Performance is Okayish (18-28 FPS on my Rebirth), depending on overclocking. The game remains playable IMHO, even at a low frame rate.

Cheers, Magic Sam
Last edited:
I was wondering why a game which says that it has lower HW demands than Doom would only run at 15-20 FPS, so I took a quick look at the source code and here are some notes about it:
  • There's no need to compile it as c++ - either change the compiler from g++ to gcc or add the parameter -x c to compilation flags.
  • There's no need to link SDL2 statically - change the line SDL_FLAGS=`sdl2-config --libs --static-libs` to SDL_FLAGS=`sdl2-config --libs` in
  • Replace usleep function with SDL_Delay - change usleep(timeMs * 1000); to SDL_Delay(timeMs); in main_pandora.c.
  • Use resolution 640x480 instead of 700x512 - change #define SFG_SCREEN_RESOLUTION_X 700 to #define SFG_SCREEN_RESOLUTION_X 640 and #define SFG_SCREEN_RESOLUTION_Y 512 to #define SFG_SCREEN_RESOLUTION_Y 480 in main_pandora.c.
  • Change the texture access pattern from static to streaming - change SDL_TEXTUREACCESS_STATIC to SDL_TEXTUREACCESS_STREAMINGin main_pandora.c.
  • If that doesn't help much, then maybe stop using SDL texture and renderer and draw SDL surface directly to screen (backbuffer) like in SDL1.
  • Or maybe even switch from SDL2 to SDL1 and use the HW accelerated SDL1 library by notaz.
Hi all,

@M-HT : thanks for your suggestions, I'll give them a try over the week-end :)

Setting the resolution to something closer to the actual screen size was already on my TODO list, hence the "Beta" tag.

Cheers, Magic Sam
Hi all,

@M-HT : I have implemented your suggestions:

Updated version is on the repo:

It's slightly faster now, 2-3 extra FPS at default speed (600 MHz)

There are many more parameters to play with though :)

Cheers, Magic Sam

P.S : I got an error message after uploading the updated PND to the repo, something about the PXML not being valid...

EDIT: the screen ratio appears to be the same as before (i.e fullscreen), even after setting the resolution to 640x480. I guess @ptitSeb 's GL4ES does some upscaling. So in addition I'll try some of his options too (FBO ?) :

Last edited:
@atari_afternoon : the "map" button is set to "START" on the Pandora. When I press START the map is displayed on screen, when I release the button I return to the game

EDIT 2: I'm completely stuck on level 2, I have no idea how to get the keys I need to open the two %$!§! doors :D

What about you ?

EDIT: and thank you for giving this port a try :)
Last edited:
I have spent quite some time reading the interesting website of the original programmer, so, among other things, I have found out there is ten levels.
Thanks a lot to you for a new game port, @Magic Sam, and for this update; I´ll write in a little bit or tomorrow :)
Last edited:
  • Like
Reactions: rSl
Now is tomorrow. Runs smooth at 600 MHz now. Technically, all is brilliant :) thank you!
And of course you are right about START bringing up the map.
I´m also in level 2 now, the map looks twice as big as level 1...and I haven´t even seen the keys or locked doors yet. Still running through and I got shot by the second arachne,
I suspect you need more jumping now?
Hi all,

@atari_afternoon : saving and loading works just fine on my Rebirth unit. Saved games should be in appdata/anarch_magicsam/anarch.sav.

At the end of a level, you can press left or right in order to save (or not) your progression.

And on the main menu there's a "load" button, which will bring you back to the start of the last level you reached.

Cheers, Magic Sam
Oh right, I was just stupid: It is as you said of course: Saving by pushing the dpad right for save and left for not. Not the other way as would appear more familiar to me.
I had just pushed it the wrong way, and more than once, so yesterday I just thought save is just not implemented :)
Mmh at the moment I am also playing Doom GBA and Wolf3D again so Nintendo got me disorientated ;)