Ya know, it took me a while to realize it, but I could in fact play Lockjaw (GBA version) on my PSP... and I'm friggin' loving it. CFW 3.71 M33-3 w/ 1.50 kernel v2 for homebrew capability UO gpSP kai 3.2 test 8 for GBA emulation (naturally, with the ability to remap buttons) music.prx plugin to play MP3s stored on the memory stick in the background UFighterX d-pad mod for tighter control Combine all this with the PSP's own big, bright, beautiful screen that makes it a better GBA than the GBA (or NDS) ever was and you have, IMO, the best version of any tetromino game ever. I don't think I can firm drop, but that's okay... How often is the GBA port of Lockjaw updated anyway?
In "Control: Drop", set "Hard drop" to Slide. Now Up acts roughly like it does in The New Tetris, TGM, TAP, and Ti Classic. Every time the PC version's game logic is updated, the DS and GBA versions are updated with it, as they build from the same source tree. But changes to the PC front end may or may not be echoed in the DS and GBA front end. The change log states which changes are PC-specific or GBA/DS-specific.
requests? okay. error practice mode. while you play the other modes, game remembers scenarios where you either a) created a hole or b) took three or more times as many active frames than your average. after you finish the game, you can choose to go over these scenarios and practice them. i don't actually expect you to implement it, but i just thought it sounded like a cool feature.
How would we define a "hole"? An increase in the number of empty cells that are disconnected from the top of the well? That'd be doable, but watch it catch triple doubles, and watch it stop on every I4 piece when garbage is turned on. It'll pick up all my T-spins if I'm not firm dropping.
LOCKJAW 0.40 is out 0.40 (2007-11-27) Split out speed curves and randomizers to separate files called speed.c and random.c. Adjusted master delays to be closer to TAP; 600-999 no longer overlap Death 000-399. Displays short description of each option (requested by AXYP. Drill gimmick is back, with the new goal of clearing the bottom row (requested by DIGITAL). Begin to add code for explosive line clear gimmick; not yet integrated (requested by Joshua). Debrief shows number of floor kicks. Bottom blocks is called Deep drop to match recent Multiblocks. PC: Close box works in Options and Game Keys. PC: Does not redraw title screen if close box is clicked. PC: If skin sets transparentPF=1, hotlines and line clear animations are drawn transparent (requested by Rich Nagel). GBA/DS: Can quit game from pause screen (requested by AXYP. GBA/DS: Copyright notice and options screen drawn with proportional font for readability. GBA/DS: Menu uses the same sound manager that the game play uses, not the platform-specific sound manager. GBA: Sound for end of game (requested by Lardarse). DS: Closing the lid pauses the game and turns off the screens (requested by AXYP. DS: Unavailable hold piece is really grayed out. DS: Real music and sound effects engine (requested by bob_fossil). The next thing I work on will be the randomizers.
Yay, new release! Just a few issues though. I can't seem to find speed.c or random.c. Also, bottom blocks still retains its name it seems.
hm, wouldn't a t-spin triple be a gap (with an opening?) or do you mean making a prophetical t-spin? i don't know of a way of excluding intentional holes. also, for srs/ars, known unfixable gaps could be included as well, but that sounds hard.
Fudge. I found a whole bunch of packaging errors. They should be fixed now; try downloading again. caffeine: I wasn't considering an overhang to be a gap, given all the slides and spins that are common in advanced play. Specifically, I was thinking of the "Oscar Robertson" move. However, I could store the frame in which each row was last locked into, in order to fast forward to each fatal mistake that permanently costs the player a row. This method appears to be common in analysis of players learning to play Death.
Thanks for the new version, Tepples! Love the (re)addition of Drill - Works perfectly, thanks! - Found a bug when enabling this feature. After enabling "Deep Drop", exiting LockJaw, restarting LockJaw, and then beginning a new game, LJ locks up hard as a rock (requiring an ALT+TAB, CTRL+ALT+DEL, and then an "End Task" to shut it down). BTW, this is the very FIRST lockup bug that I've *ever seen* since I've been playing the various versions of LJ! - If only other developers (i.e. Mickey$oft <LOL>!) could create such stable software! Any chance of a "TOS" - 'Tepples Operating System' in the future <BG>? -
Drill + Sticky by color + Multimino = The Next Tetris (PS1). Of the three, only multimino is not yet implemented. I'm having difficulty reproducing this on my PC running Windows XP. Does anyone see this? Does 0.39 (when it was still "Bottom blocks") have the same problem? No, I'm not planning to develop a PC operating system. If I were, it would probably just be a GNU/Linux distribution.
Thanks for the info - I'll need to redownload version 0.39 and give it a whirl (although, IIRC it didn't suffer from this problem), and get back to ya ASAP. Hehe, I'll be the first in line for it <BG> - EDIT: Just redownloaded and tested: No problems with v0.39, only v0.40 locks up with that option enabled. P.S. I'm running Windows 98SE
It was generating a shadow before properly generating an active piece, and heck broke loose. I've uploaded 0.40a, which fixes the problem in two separate ways.
Superb! Thanks, Tepples! - BTW, any idea of why it worked OK when run under Windows XP, but not Windows 98 (SE)?
Windows XP and Windows 98 are completely different operating systems (NT and an MS-DOS extender respectively) that happen to provide the same user-mode API and hence run the same applications. To put it in perspective, XP is almost as different from 9x as it is from Wine on Linux. Different operating systems fill unallocated memory with different values. Windows XP in this case happened to fill it with a value that didn't cause invalid shadow location calculations to loop forever, while Windows 98 did not. In Lockjaw Engine, three data objects of type LJField, LJControl, and LJView together represent a tetrion. The function newGame() prepares most members of LJField for use. The function updHardDropY() calculates the height (Y coordinate) of the shadow based on the blocks in the field and the current position and orientation of the active piece. Unlike normal play, which searches from the active piece's current position down and places the shadow one row above the first height that does overlap, the deep drop code searches from the floor up and places the shadow in the first Y position that does not overlap. However, at some points during newGame(), the X (horizontal) positions of the left wall, right wall, and active piece are mutually inconsistent. For example, if the rotation system is not set up, the position of the active piece might not be correct, as X positions and initial orientations depend on the rotation system. If updHardDropY() is called then, all possible heights overlap the wall, and thus the search from the floor up will terminate immediately (deep drop off) or never terminate (deep drop on). This behavior happened only because the process of constructing the tetrion for the first time made enough consistency for deep drop search to proceed correctly. The changes to the program between 0.40 and 0.40a were as follows: Do not call updHardDropY() in newGame(), instead waiting until the game loop has started. By this time, the walls and piece positions will be valid. In the deep drop code branch of updHardDropY(), terminate search if the position has gone above the falling piece or above the top of the vanish zone. Either of the two fixes would have solved the crash; I just put them both in for defense in depth.