# NullpoMino

Thread in 'Discussion' started by Caithness, 18 Aug 2009.

1. ### Muf

Another bug: GM should not be achievable as a provisional grade. If not yet qualified, it should show up as MM.

2. ### Zaphod77Resident Misinformer

I think that particular bug is intentional, so without the exam system in, it would show up as GM still.

Also, does PoochyBot play honestly (use ARE to charge DAS) or does it cheat and skip the delay completely?

Btw, where's the PASS/FAIL roulette?

Here are the rules of the roulette, as far as I know.

If you make the grade exactly during an exam and you are not qualified GM, it will do the roulette, and stop on PASS.

If you miss by one grade, it will do the roulette and stop on FAIL. All other cases should be instant fail or pass, except for the one exception below.

If it's the GM exam, and your grade is GM, it will stop on fail anyway. It will then drop the PASS! message on top of and crush the FAIL message.

For demotion exams, the lower grade should fall down and attempt to crush the existing grade, and if you pass, the failing grade explodes. If you fail, the old grade gets knocked off the bottom.

3. ### Muf

The roulette speed is determined by how close you are to the target grade. I don't know what the cut-off is for instant FAIL without a roulette, but there is definitive variation in roulette speed.

4. ### Zircean

Huh. I thought I did have it so that you wouldn't get GM unless you were either playing a qualification exam for it or unless you were already qualified... Looks like my buggy ass exams didn't entirely work as planned, heh...

5. ### m:)

it is nice that the off by one on joystick button (osx at least) bug is gone now.. although I did just save the settings then quit and edit the file before I realized this.

6. ### Poochy

I think there may also be a bug in the demotion exam trigger, since PoochyBot got a demotion exam right after three consecutive games where it got a grade higher than its qualified grade.

To my knowledge, TI triggers a demotion exam if the past couple games were generally lower than the qualified grade. (Something like the promotion exam, only checking for an average less than the qualified grade as opposed to greater than) Poking around in the NullpoMino source code, it seems to trigger demotion exams after a cumulative number of demotion points, but it's only reset after an exam of either kind. So for an M9-qualified player, a series of games with results M9-MM-M9-S1-M9-MM-M9-S1-M9-MM-M9-S1-M9 can trigger a demotion exam even though the player's median grade matches his/her qualified grade.

[Edit: Note that I'm not saying the use of demotion points itself is inaccurate to TI; I'm saying that I'm not so sure the exact way they're calculated is accurate.]

On a semi-related note, PoochyBot has passed a MasterV promotion exam.

I've tried to make it use ARE to charge DAS, but there's been a couple bugs with it, so I currently just forbid it from pressing the same button two frames in a row, both directional and rotation. So it can tap over about 2-3 times faster than a human, but it doesn't use DAS at all. I figured it balances out and I've left it at that, since I've clocked its TPM at roughly the same as Jin8 in the Arika video.

Last edited: 3 Apr 2010
7. ### Zircean

Poochy, I PM'd you with some details.

Anyway, nice job cracking the MasterV promotional exam! This must be a hell of a bot, haha

NullpoMino Version 6.6.0.0 (2010/04/03)

Small (but netplay is not compatible) updates.
I added debug logging for GRADE MANIA 3 exams. If you find some weirdness, please post some of log file. That will help everyone.
It still has leaderboard GM problems, but fixing this will require 2 separate leaderboards; "no-exam-system" and "with-exam-system". Without separated leaderboards, getting GM grade will be impossible in no-exam setting. I'll implement separate leaderboards in next version.

Oh, on the side notes, I implemented some new netplay related features.

Version 6.6.0.0 (2010/04/03)
#This version is NOT compatible with 6.5 netplay server.
+SDL/Slick/NetLobby: Added "Watch" (or "Observer") feature. (If you have a better name please tell me )
This feature displays how many players are online. Number of current not-logged-in players and already-logged-in players will be displayed.
If you are the only online player, the font color is blue.
If there are some other players but nobody is in NetPlay mode, the font color is green.
If someone is in NetPlay mode, the font color is red.
You can enable it in NetLobby GUI, by selecting a server then click "Set to watch" button.
Click "Unset watch" button to disable the watch feature.
+NetPlay: Added Rule Lock feature (Force all players to use the same rule you are using)
+NetPlay: Added opponent piece preview in 1vs1 game (But only when Rule Lock feature is used)
+NetPlay: Game screen displays amount of your wins (But will be reset in zero when you leave the room)
+NetPlay: Client will automatically disconnect if there is no response from the server more than 5 minutes
+GRADE MANIA 3: Various exam-related debug log will be dumped to "log_sdl.txt", "log_slick.txt", or "log_swing.txt".
-GRADE MANIA 3: Probably fixed a bug that qualified grade does not update in exam when the game is ended by surviving the roll.

Thanks everyone for supporting NullpoMino!

10. ### m:)

I don't think the recovery medal is awarded anymore. I'm pretty sure it was in an earlier version, but I haven't seen it in a while.

this is defiantly my preferred clone now! it's great.

the only thing I feel it's missing is best section times.

11. ### Muf

RE is only awarded in TAP, not in Ti, so it should only show up in those modes.

NullpoMino Version 6.6.0.1 (2010/04/06)

There is a bug that RE medal is not awarded in ARE-enabled ruleset. (ARE-disabled rulesets have no problems) I'll fix it in next version.

EDIT: I made a few minor updates. This version is still compatible with previous netplay server.

Version 6.6.0.1 (2010/04/06)
#This version is minor fix release. NetPlay feature is still compatible with 6.6 netplay server.
+Added section time best records to following modes. Push F button in settings screen to see it.
SPEED MANIA (all)
GARBAGE MANIA
PHANTOM MANIA
SCORE ATTACK
FINAL
+GRADE MANIA 3: Created separated leaderboard for exam-enabled setting. It has some differences from the normal (no-exam) one:
1.GM grade doesn't appear in this leaderboard unless you are qualified as GM.
2.Your game doesn't appear in this leaderboard when the game is promotional/demotional exam.
+NetPlay: You can end single player game instantly by pressing F button.
-NetPlay: Fixed a bug that sometimes when you lose, "Win!/1st Place!" message does not appear in the winner field.
-GRADE MANIA 2/SPEED MANIA: Fixed a bug that RE medal not awarded for ARE-enable rulesets.
-TECHNICIAN: Fixed a bug that game does not end when LV15 is completed with T-Spin Zero.

Thanks everyone for supporting NullpoMino!

P.S. It's still difficult to find other players in netplay mode...

13. ### KevinDDR

I'm sure we can solve that problem.

14. ### clincher

Is there a way to set line clear delay to zero or something close to it?
If not it would be nice to have it as an option
Netplay was really fun I finally got to try it, good job

16. ### briannn

clearing 1 line with a 'tspin triple' is detected as tspin mini

17. ### awake

TOJ and a few other games count it as a Tspin Mini as well.

There are several definitions of a Tspin Mini. The one used by TOJ is:
- is a Tspin (3 of 4 corners blocked)
- clears one line
- a rotation from the final position is not possible (without wallkicks)

Nullpomino has 2 types of Tspin Minis depending on the rule settings. I think the first is the same as TOJ and the second is more lenient (no rotation checks).

GameEngine.java
Code:
if(tspinminiType == TSPINMINI_TYPE_ROTATECHECK) {
if(nowPieceObject.checkCollision(nowPieceX, nowPieceY, getRotateDirection(-1), field) &&
nowPieceObject.checkCollision(nowPieceX, nowPieceY, getRotateDirection( 1), field))
tspinmini = true;
} else if(tspinminiType == TSPINMINI_TYPE_WALLKICKFLAG) {
tspinmini = kickused;
}

Tetris Friends does it a bit differently. I'm not sure what their rules are.

It counts a Tspin Triple that clears one line as a Tspin Single but counts the following as a Tspin Mini:

None of these are counted as a Tspin Mini in TOJ because the piece can still rotate freely.

Note: Digital informed me a while ago that Tetris Zone (or was it another game?) was the first game to introduce the Tspin Mini, which it called an EZ Tspin. Tetris Friends Tspin Mini might be using Tetris Zone's definition of an EZ Tspin, which I know nothing about.

18. ### Zaphod77Resident Misinformer

Re: NullpoMino - now with netplay!

The only time i've gotten a t-spin Mini is when ZERO lines were cleared on TF.

The rule seems to be
a) the T kicked to the final position and
b) no lines were cleared

19. ### Poochy

Re: NullpoMino - now with netplay!

Question: Can AIs play over netplay? I had the idea to demonstrate PoochyBot's capabilities over netplay, but I couldn't make it work in a test run.

Edit: Found a bug with Phantom Mania when I had PoochyBot play it a couple times on a whim:

The game fails to save the line information, and a new score with a green or orange line seems to outrank any other score with the same grade.
(The #1 ranked MM in the screenshot is a green-line, while #2 and #3 were orange-lines. Most if not all of #6-10 are from old versions of PoochyBot, by the way.)

Also, Phantom Mania gives two separate SK medals; I think this is a bug as well.

Last edited: 9 Apr 2010
20. ### Burbruee

Re: NullpoMino - now with netplay!

Can we set up a logging level for the server? I just logged on to my server and noticed it had 0 bytes of free disk space. And eventually traced it down to NullpoMino log files of 15 GB.
Something appeared to have happened on April 7. The log file for that day was so huge I couldn't even open it.

Anyway, I'm cleaning the log files now and the nullpo server should be up and running again soon.
Sorry for the inconvenience.