Just tried it on the hardware - very nice, very playable. I would be great if you could find a good solution for playing it on a one button joystick.

Thanks.

Yeah, I thought about that.

If you don't need flags one could play with a one button joystick straight, no flags. A bit more difficult, but not all impossible. You had to like remember where you wanted the flags. Actually I thought I had joystick support in there, but the code is testing one key at a time (no table lookup or clever stuff), so I dropped the joysticks, since ESDX is often mirrored to the arrowkeys in emulation.

One solution could be that the first press sets a flag, one more press (on a flag) reveals the square. You couldn't remove a flag and probably ended up pressing fire an awful lot.

Another solution would reveal a list of choices when you press and hold fire. You'd then navigate the list and release fire when you got your choice:

The location of the mines is discovered by a process of logic. Clicking on the game board will reveal what is hidden underneath the chosen square or squares (a large number of blank squares may be revealed in one go if they are adjacent to each other). Some squares are blank but some contain numbers (1 to 8 ), each number being the number of mines adjacent to the uncovered square. To help avoid hitting a mine, the location of a suspected mine can be marked by flagging it. The game is won once all mines have been flagged.

Keys

1, 2 and 3 generates a new game at the corresponding level (1=Beginner, 2=Intermediate and 3=Expert).
E, S, D and X moves the cursor around.
Q reveals a square.
W sets or removes a flag.

Timer

The timer works with MESS and Classic99, but apparently not with Js99'er. And hopefully it works with the real iron ?

PS. The timer part works with MESS and Classic99, but not with Js99'er and Win994a.

A nice challenge. When I first implemented Js99'er I asked for examples of programs using the 9901 timer, but did not get any reply, so this is the first program I'm aware of that I can use for testing.

A nice challenge. When I first implemented Js99'er I asked for examples of programs using the 9901 timer, but did not get any reply, so this is the first program I'm aware of that I can use for testing.

I tried to implement the timer in js99er.net based on Thierry Nouspikel's documentation, but I'm having a bit of problems with the timing . Basically it's much too fast and irregular. Could you give me a few clues about how you're using the timer? Are you using the interrupt, for instance?

I tried to implement the timer in js99er.net based on Thierry Nouspikel's documentation, but I'm having a bit of problems with the timing . Basically it's much too fast and irregular. Could you give me a few clues about how you're using the timer? Are you using the interrupt, for instance?

I use Thierry's code, and method 1 to time intervals.

If you start a game by revealing a square and not hitting a bomb, the timer starts to run.

"Placing the TMS9901 in I/O mode again will resume updating of the Read register. However, if any bit between 1 and 14 is written to while in timer mode, the decrementer will be reinitialized with the current value of the Clock register. This is nice because it means that it is not necessary to reload all 14 bits in the Clock register: since they haven't changed, writting one of them (such as the least significant one) is enough to reload the whole data word."

"Placing the TMS9901 in I/O mode again will resume updating of the Read register. However, if any bit between 1 and 14 is written to while in timer mode, the decrementer will be reinitialized with the current value of the Clock register. This is nice because it means that it is not necessary to reload all 14 bits in the Clock register: since they haven't changed, writting one of them (such as the least significant one) is enough to reload the whole data word."