Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Brogue (Android)
PORTSNATIVE

Brogue (Android)

NATIVE PORTACTION / ADVENTUREANDROIDBETA

Brogue (Android)

Brogue

OriginWindows

TechnologyNative C/C++ port (engine reimplementation)

Available forAndroid

View official project

About the project

El término null, nulo o nil es a menudo utilizado en la computación para hacer referencia a la nada. Su significado y uso varía según el lenguaje de programación.

Official project information

Author's original READMEOpen on GitHub ↗

Android port of Brogue using SDL2

Installation

You can find the latest release in here.

Under Assets section there are files with apk extension (each for a different Brogue version).

You can install the game by downloading the preferred version to your Android device and running it.

Currently Community Edition is supported.

Note that apks require two additional permissions which both are optional:

  • Internet Access: This permission is to check updates. You can disable internet access by disabling updates.

  • Write Access: This permission is to write /sdcard/Brogue. For Android 6.0+ if you do not grant it at runtime it will write to default data folder under Android/data.

Updates

By default the app check if there is a new version when started. You can disable it via check_update config. You can also set the interval of checks via check_update_interval . If you want to be asked before update check ask_for_update_check .

App Folder

All versions will try to use /sdcard/Brogue. If write permission is not granted, they will use /sdcard/Android/org.brogue.brogue.[version suffix]/files/ instead. Note that since all save files etc. is written under a folder specific to the that version even multiple versions are installed they will not override others' files under /sdcard/Brogue.

User Input

Mouse Input

First touch selects the cell and second touch on the same cell clicks there.

Zooming

The game grid can be zoomed in/out via pinch gesture. You can also toggle on/off zoom by tapping with two fingers.

On-screen D-pad

D-pad is enabled by default to help with more precise control.

There are two mods of D-pad: movement mode (default) and selection mode. You can change between modes via long pressing d-pad.

Movement Mode

In this mode movement keys directly moves the PC. The square sends Enter key (makes the D-pad mode temporarily selection mode). One exception is that the square sends Space key instead of Enter key when the game is playing a record. D-pad is yellow.

Selection Mode

In selection mode direction keys moves the cursor and the square clicks the selected cell. D-pad is white.

Keyboard Input

Escape Key

There are two ways to send escape key:

  • Pressing Back Button

  • Pressing Bottom Left Corner of the Screen

Enter Key

Top left corner of the screen is reserved for enter key (when It is not playing a record)

Space Key (in Playback Mode)

Top left corner sends space key instead of enter key when It is playing a record.

Control Key

Three finger touch. Note that it is implemented to enter a custom seed.

Virtual Keyboard

Except corners left edge of the screen is reserved for opening virtual keyboard.

Settings

You can access settings from title menu. The explanations of the configurations can be found under the Configuration File section.

Configuration File

When the application started it reads the configuration file in [App Folder]/settings.txt . You can use this file for customizing the behaviour of the application.

The syntax of this file is very simple,name value pairs separated with a space in every line: [NAME1] [VALUE1]<br/> [NAME2] [VALUE2]<br/> [NAME3] [VALUE3]<br/> ...

Note that currently the application does not handle erroneous syntax so make sure that configuration is correct.

You can see the supported configurations below:

NameValue TypeDefault Value
custom_cell_widthDecimal0When present and value is not 0 it sets the cell width
custom_cell_heightDecimal0When present and value is not 0 it sets the cell height
custom_screen_widthInteger0When present and value is not 0 it sets the screen width.Disables custom_cell_width when active
custom_screen_heightInteger0When present and value is not 0 it sets the screen height.Disables custom_cell_height when active
force_portraitBoolean0By default the app will start in landscape mode. If this option enabled it will force application to use portrait mode
dynamic_colorsBoolean1Dynamic colors on water,lava etc. Disabling will lower the power consumption
filter_modeInteger2Selects the algorithm for anti-aliasing: 0 uses nearest pixel sampling, 1 uses linear filtering and 2 uses anistropic filtering. If you get graphical glitches or performance issues, try to lower the value
default_graphics_modeInteger00 enables text-only, 1 enables tiles and 2 enables hybrid graphics by default
tiles_animationBoolean1Enables tiles animation. Disabling will lower the power consumption
blend_full_tilesBoolean1Tries to blend full tiles like walls with adjacent ones. May result in blurrier tiles
double_tap_lockBoolean1When enabled it will ignore the missclicks within double_tap_interval range
double_tap_intervalInteger500Milliseconds.The maximum time between two taps to acknowledge it as a double tap. Value is between 100 and 100000
dpad_enabledBoolean1Enable on-screen d-pad
dpad_widthInteger0When it is not 0 it sets the width of the d-pad square. Otherwise width is set to fit into left panel
dpad_x_posInteger0When it is not 0 it sets the x position of the top left corner of the d-pad square. Otherwise position is set to bottom of the left panel
dpad_y_posInteger0When it is not 0 it sets the y position of the top left corner of the d-pad square. Otherwise position is set to bottom of the left panel
allow_dpad_mode_changeBoolean1Allow to change d-pad mode by long pressing
default_dpad_modeBoolean1Decides if the mode of d-pad at the start of the game will be selection mode (0) or movement mode (1)
dpad_transparencyInteger75Value is between 0 (non-visible) and 255 (opaque)
long_press_intervalInteger750Milliseconds.The minimum time between press and release to acknowledge it as a long press. Value is between 100 and 100000
keyboard_visibilityInteger10 disables virtual keyboard completely, 1 shows the keyboard on demand and 2 opens the keyboard at the start of the game and prevents it from closing when touch input is occured. Note that pressing back button still closes the keyboard
zoom_modeInteger10 disables zoom, 1 zooms to player character (default), 2 zooms to cursor (falls back to zoom_mode 1 if the cursor is not present on the screen)
init_zoom_toggleBoolean0Start the game as zoomed
init_zoomDecimal2.0Default zooming at the start of the game. Value is between 1.0 and 10.0
max_zoomDecimal4.0Maximum allowed zoom level. Value is between 1.0 and 10.0. It is overriden by init_zoom if init_zoom is bigger than max_zoom
smart_zoomBoolean1Zoom out when a menu, logs or a confirmation dialog open or an item in left panel is tapped except left edge (when left_panel_smart zoom is enabled)
left_panel_smart_zoomBoolean1Enable smart zoom for left panel
check_updateBoolean1Check updates when the app starts
check_update_intervalInteger1How many days should pass before checking again. With 0, the app checks update each time it starts
ask_for_update_checkBoolean0Ask before checking update

Saves,Recordings and Highscore

These files are stored in [App Folder]/[Brogue Version] which is accessible by the user.

Graphics

By default the port uses ASCII. To always use tileset, you can use default_graphics_mode settting. You can also use in-game menu to enable tiles. Note that changes from in-game menu setting is not persistent.

Default graphics use modified Dejavu Sans Mono with missing characters added/modified from Dejavu Sans for the text. For the tiles, tileset based on Oryx Design Lab Tiles is used with some additions/changes.

You can use custom fonts by copying them to [App Folder]/custom.ttf .

However fonts must be:

  • Edited according to draw_glyph function in main.c

  • Monospace

Additionally:

  • If the font have animated tiles then the offset between the first frame and the second one should be 256

  • the font should define a boundary box in glyph 139 for full tiles

Read official guide
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Action / Adventure
Status
beta
Original platform
Windows
Technology
Native C/C++ port (engine reimplementation)
Version
—
Updated
Mar 14, 2023

Target platforms 1

Android
View on GitHub
Advertisement