AGB Hack GBA

From GameBrew
AGB_Hack
Agbhack02.png
General
AuthorDonnie Russell
TypeRole playing
Version1.6
LicenseFreeware
Last Updated2007/09/16
Links
Download
Website

AGB_Hack is a roguelike game based on RevivedHack 1.1, an adaptation of Don G. Kneller's PC Hack 3.61.

User guide

The object of Hack is to descend into a dungeon to retrieve the Amulet of Yendor and return to the surface with it. The Amulet is in the possession of the Wizard of Yendor.

About Saves

As you play AGB_Hack, each "keystroke" is recorded in a special area of memory that is not erased when the power is turned off. Before ending a game session, you should enter the command 'S' with the key selector to save and halt the game, making it safe to turn off the power. If you accidentally turn off the power without using this command first, there is a small chance that the saved data will be corrupted.

To continue a previous game, turn on the console, and if a saved game is found it will be played back to the point where you left off. During playback a progress bar is displayed. Pressing and releasing the A button allows you to switch the progress bar off so you can see each move being played. Holding down the B button slows down each move. Saved games play back faster with the progress bar turned on.

About Memory

There is a limited amount of memory available for saving games, enough for 65,523 "keystrokes". Any input made after this limit is not recorded, but the game will continue playing normally. In my own experience, this limit has never been reached, even for winning games.

The GameBoy Advance has enough memory to store around 30 visited dungeon levels, which theoretically is enough for a complete winning game. Levels are compressed when not in use, and since the amount of compression varies with each level, this is a very rough estimate.

If you attempt to visit more than 30 levels, there is an increasing chance that the game will run out of memory. When that happens the dungeon will collapse, immediately ending the current game. However, you will still be able to see your final score.

Addendum: There are some adjustments made to memory usage in version 1.6 that may lower the risk of dungeon collapses, even after visiting 35 levels.

Controls

Buttons (key selector off):

A - Type Space key

B - Type Backspace key

L - Turn key selector on

R - Type Escape key (cancel command, close menu)

Start - Type Enter key (open game menu when game is waiting for a command)

Start+D-Pad - Run in specified direction

Select - Type defined key, initially 's' (search command)

Select+D-Pad - Move in specified diagonal direction

Buttons (key selector on):

A - Type Space key, keep key selector on

B - Type selected key, keep key selector on

L - Turn key selector off

R - Type selected key, turn key selector off

Start - Type Enter key, turn key selector off

Select - Define selected key, initially 's' (search command)

Screenshots

agbhack3.pngagbhack4.png

agbhack5.pngagbhack6.png

Compatibility

Can be played on an actual device with third-party rewritable game cartridges, or on a computer with an emulator.

Changelog

1.6

Changes:

  • Progress bar was added and is displayed by default when restoring saved game. Visible playback can be toggled on/off by pressing A button. Visible playback can be slowed by holding down B button.
  • levl[] was moved from EWRAM to IWRAM and data types of bitfields were adjusted to conserve memory.

Bugs fixed:

  • Player tile was displayed as guard when u.ux,u.uy did not match '@' position.
  • Dungeon offset did not follow cursor in getpos(). Previous bug prevented this from being fixed.

1.5:

Changes:

  • Graphical tile mode was added (on by default).
  • Sound effects were changed, and new ones were added.
  • Cursor now wraps around at top and bottom of menus.

Bugs fixed:

  • Lockup in xmore() caused by docrt() calling cls() calling more() calling xmore() infinitely because flags.toplin was set. Fixed by setting flags.toplin to 0 before calling docrt().

1.4

Changes:

  • Menu command interface was added.
  • Graphics functions were optimized.
  • Removed "last_multi" so that "again" command always executes previous command only once. This is to prevent, for example, repeated prompts for the object and direction of the "throw" command after a count was used.
  • When "pick up" command is used, and gold and one item are at player's location, pick up gold but ask before picking up item.
  • During saved game playback no sound effects are played and dungeon now scrolls.
  • Key selector is positioned so as to avoid obscuring current position of cursor.
  • First byte of SRAM is skipped due to incompatibility with some hardware.

Bugs fixed:

  • If you are levitating, and zap a wand of digging downwards, you'll still fall into the hole you make.
  • Reading a scroll of food detection while you are confused is supposed to detect potions. What it actually does is detect potions, except that when counting the number of potions to show, it still counts food. This can cause problems when there are different numbers of potions and foods on the board.
  • A scroll of destroy armor fails to operate on your shield.
  • If you read a scroll of enchant weapon while confused, the program fails to check to see if you're actually wielding a weapon, which means that you can wield your armor and rustproof it with an enchant weapon scroll.
  • Enchant or damage weapon, read while confused, fail to check for plural in stating what happens to the weapon.
  • There doesn't seem to be any limit on how many hit points your pet can have. Therefore, the pet can get negative or zero hit points if it wraps around (past 127).
  • Wielding a dead cockatrice is safe, even if you aren't wearing gloves. (Gloves are still required to safely pick one up, though, and you can't remove the gloves while wielding it.)
  • Eating a dead bat sets confusion to 50, instead of adding 50. If you are very confused, eating the bat could conceivably reduce your confusion.
  • When you wield a dead cockatrice against monsters, you are told that they turn to stone, but the monsters only leave normal corpses.
  • A long worm that dies without leaving a corpse fails to print the worm tooth on the screen.
  • If you eat a lump of royal jelly and it increases your strength but does nothing else that would change the status line, the program fails to update the status line.
  • Doing an inventory of gold will produce the response "1 gold pieces" (instead of piece) if you only have 1.
  • A cockatrice that hits another cockatrice turns it to stone. However, when you hit a cockatrice with a cockatrice corpse nothing happens.
  • When you zap a wand of undead turning at a corpse to bring it back to life, the corpse doesn't get erased from the screen.
  • A cancelled rust monster can still rust your helmet, though not your armor. A scorpion cannot be cancelled.
  • If you are confused and read a scroll of fire, you are damaged by the scroll catching fire and burning your hands even if you are fire resistant.
  • You are damaged by scrolls catching fire after being hit by dragon fire or bouncing wands of fire even if you are fire resistant.
  • 'M' character remains on SDOOR after mimic is killed.

Credits

Level compression uses Markus Franz Xaver Johannes Oberhumer's miniLZO 1.08, a mini subset of the LZO real-time data compression library.

External links

Advertising: