Rogue-like ascii based on Arduboy

(Pharap) #301

Fair enough. But now I want to eat soba…


Hrm… it’s tempting.

I’ve always wanted to try miso dengaku.


Idk dengaku but a miso ramen bowl is always nice
Especially one with chili oil

1 Like
(Stephane C) #303

辛い Ramen!! Hmmm now I am hungry.

1 Like
(Pharap) #304

It’s grilled tofu glazed or coated with miso,
typically served on a stick.
Technically it’s a festival food (‘dengaku’ is the name of the festival too).

I believe it’s a festival to celebrate rice planting.
In ancient Japan the amount of rice you owned determined how wealthy you were,
to the point that samurai were often paid with rice.

辛いラーメン。@Vampirics のラーメンは辛いです。

It only just occurred to me that ramen is always written in katakana.
I looked it up and found that there is kanji for it,
but it’s always written in katakana.
And now I know why, it’s because it’s actually a loan word, originally ‘lamian’ in Chinese.

For those who don’t know, hiragana and kanji are used for native Japanese words and katakana are used for loan words, like フォーク (fo-ku, fork), スプーン (supu-n, spoon), ワイン (wain, wine), ボール (bo-ru, bowl), ビール (bi-ru, beer), スープ (su-pu, soup).

Should we all just start a Japanese food forum while we’re at it? :P


Just make food the next jam topic

1 Like
(Simon) #306

There is no need to be rude.


Wow! It really is a thread on food! :star_struck:

Hello everyone.
After all, there was a problem with save function. The conversion table of the goods was not properly saved. I think that the abnormal figures of the high score have been resolved.
I will release a new, version 1.5.6.

Rogue156.hex.pdf (78.2 KB)

This version uses “remove USB stack” technique. When you upload a new game, you need to hold down the DOWN button while ARDUBOY is starting up.

This version is:

  • [FIX] Armor becomes extremely weak due to attack by Aquator and trap of rust.
  • [SYS] A little, variation of the passage
  • [SYS] Fix save function

Again, I will place the source code here. (33.9 KB)

(Stephane C) #308

@BlueMax your game is great!

I have been thinking about something… I find it weird that the scores is only based on the amount of gold we have. I think in the original Rogue you actually only got a score based on the amount of gold total after you sold all your items when you beat the game.

And if you die you were listed in the graveyard with the level you died at.

Being able to enter our name and save it in the graveyard would be great I think. I know we still don’t have much space left…

Also is there a site somewhere that covers all the monster names and what each scrolls are doing? Some of them, I can’t really understand what they are doing at all.

(Jul) #309
Here it is. I don’t know if BlueMax is using this site or another one.
Also this:
Is a good guide gameplay wise.

1 Like

To @Vampirics. Sorry for the late reply.

The original “Rogue” starts with famous lines.—“Who are you?”
I’d like to do my “Rogue”, but since ARDUBOY does not have a keyboard, it looks difficult. I have to add code for typing characters.I also want the tombstone to be more luxurious.

Basically, it is as explained by @Jul. (thank you, @Jul). My “Rogue” is closer to “Rogue clone” than “Rogue”. For example, “Rogue clone” has no dark room. However, I implemented it because the dark room seemed attractive. However, since the item remains “Rogue clone”, “wand of light” does not appear.
Also, the item name is shortened. “ring of slow digestion” to “= food”, “wand of haste monster” to “/ fast”, and so on.

Tips for miso ramen…:stuck_out_tongue:

  • miso ramen with vinegar
    If you eat half miso ramen, add a little vinegar. However, if you put it in too much, you will choke on it.
  • miso ramen with milk
    When miso flavored cup noodles are made, add a proper amount of hot milk. Miso and milk are compatible.

@Pharap really knows a lot of things.“Dengaku” may be made with “Tofu”, but “Konnyaku” is sometimes used.

(Scott) #311

You could use the Unit Name that the system allows you to store in the System EEPROM area.
From the Arduboy2 library documentation:

The name can be used for any purpose. It could identify the owner or give the unit itself a nickname. A sketch could use it to automatically fill in a name or initials in a high score table, or display it as the “player” when the opponent is the computer.

A sketch can read this using the readUnitName() function. The SetSystemEEPROM sketch, included as an example in the Arduboy2 library, can be used to set the Unit Name.

File > Examples > Arduboy2 > SetSystemEEPROM

1 Like
(Stephane C) #312

While this is a clever idea. It would always use the same name unless you are flashing the utilities to change it and then reflash the game if somebody else wants to play and save his name.

Part of the fun was to use funny names for each playthrough. And it’s also to make it look more like the original Rogue.

(Scott) #313

True, but it might be better than nothing if available storage limits implementing per game user input.

(Pharap) #314


見ってください、@filmote@Vampirics の ゴルフ コンパニオン。


I suspect when you say ‘vinegar’, you mean Japanese rice vinegar (米酢).
Aparently it’s milder than most western vinegars.

In Britain the most common vinegar is ‘malt vinegar’, made from fermented ale (which is made from barley), which tends to be more sour than sweet.
Malt vinegar is the kind we use on chips (as in fish and chips), and in ‘salt and vinegar’ crisps.

Other kinds of vinegar are used for cooking.
Particularly balsamic vinegar (from Italy) and wine vinegar (from France).
Cider vinegar is more traditional, but isn’t used very often anymore.
(It’s probably still popular in the countryside.)

Fun fact: if you mix milk and vingegar it produces ’casein’.
(英語:ケイシーン, 日本語:カゼイン / 乾酪素 / 酪素)

変です。 グレーな野菜ゼリー。

1 Like


I see. I did not know this. Thank you for teaching me.

I see. I will try to implement it in my program.

Gray vegetable jelly… surely! It is as odd as a “slime mold”! :laughing: But it’s yummy.

(Pharap) #316

What you need is:

  • A char name[] variable
  • A char nextCharacter(char) function (次文字)
  • A char previousCharacter(char) function (先文字)
  • A uint8_t selectedIndex variable


  • Right button = if(selectedIndex < (getSize(name) - 2)) ++selectedIndex;
    • (getSize(name) - 1)より(getSize(name) - 2)、空白文字ですから。
  • Left button = if(selectedIndex > 0) ++selectedIndex;
  • Up button = name[selectedIndex] = nextCharacter(name[selectedIndex]);
  • Down button = name[selectedIndex] = previousCharacter(name[selectedIndex]);





Perhaps I’ll try it someday.


To @Pharap.

For me, your source code is a mountain of treasure. I will study it carefully.

“Slime mold” seems to be a hero’s favorite coming out in good old roguelike. In Japanese, it is translated as “ねばねばかび”—“nebanebakabi”, but I do not know what it is. “nebaneba” means high viscosity.

I think you know that, “Dragon Quest” is a program written with only 64 kilobytes.“Super Mario Bros.” is only 40 kilobytes.

However, if the wizards of this community are serious, ARDUBOY also seems to be able to play these games.

(Pharap) #318


You don’t need to understand how getSize works, you only need to know how to use it.

But if you want me to explain the magic, I can try.


Apparently ‘slime mould’ is a real thing:

I’ve never heard of it before.
(Interestingly, ねばねば is 粘々, which uses 粘.)
It seems ‘slime mould’ is somehow related to ‘Protists’ (原生生物).




1 Like
(atiek) #319

this is great !It’s a lot of fun.
But there is one point to be worried about.
When you press the A button to select an item,
it may be pressed twice and you may make a mistake,
so it would be nice if you could fix it.


To @twit_ID.

Thank you for your feedback. In fact, I do not have ARDUBOY. Since my ARDUBOY is home-made, I can not reproduce the phenomenon.
It’s probably a problem due to button chattering, so it might be solved by taking a small delay. Do you have source code?

byte inputWait() {
  byte result = 0;
  do {
    if (arduboy.justPressed(LEFT_BUTTON)) result = 1;
    if (arduboy.justPressed(UP_BUTTON)) result = 2;
    if (arduboy.justPressed(RIGHT_BUTTON)) result = 3;
    if (arduboy.justPressed(DOWN_BUTTON)) result = 4;
    if (arduboy.justPressed(A_BUTTON)) result = 5;
    if (arduboy.justPressed(B_BUTTON)) result = 6;
  } while (result == 0);
  delay(10); <-add this
//  clearBuf();
  return result;

Please try this. “10” may not be optimal. Adjustment is necessary. If this does not solve it, it is necessary to deal with chattering in earnest.

スミマセン,もしかして日本の方ですか?(Maybe you are Japanese?)