ROM Hack [Request] Tetris DS - Change Auto-Repeat Speed & Enable Diagonal Input

SapphireBulletBill

Well-Known Member
OP
Member
Joined
Mar 21, 2017
Messages
117
Trophies
0
Age
42
XP
513
Country
United States
The auto-repeating when moving left/right is very slow, which makes the game sluggish at high-level play.
When I say "Diagonal Input", I mean allow the player to hard drop while left/right is pressed.

These changes would make Tetris DS a lot more enjoyable for me.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
Does the homebrew Tetris Grand Masters serve you better ( https://gamebrew.org/wiki/Tetris:_The_Grand_Master_3_DS )? Tetnus on Drugs/Lockjaw The Overdose might also be a place to look. TGM is indeed aimed at recreating TGM3 on the DS and by most accounts does very well, and Tetnus/Lockjaw (also available on the GBA and PC) was also designed at being very customisable. Though as high level play presumably means multiplayer somewhere in that then that might be harder (and that is before we consider the cheat or not or valid for speedrun but meh to all that -- play with what you like). I can't say such things have bothered me before but I don't know that I have particularly considered such things, though while I can appreciate the gravity, wall kick and stickiness debates I don't actually really care that much about it when all is said and done and this seems even lesser than those from that perspective (you are more likely to find me have a passionate discussion about piece storage, how many moves ahead are visible and ghost).

Anyway interesting proposal. Going to be squarely in the realm of control hacking but possibly the easier side of such things. Could make for a nice intro to control hacking and practical assembly hacking too. I could almost see someone grasping the ideas of https://www.romhacking.net/documents/361/ and maybe some of the hints given later in this reply turning around and doing it themselves when their other experience of ROM hacking would still see them ask "what's a table?", though I would not necessarily expect any reading a site like this to pull it off like I might for basic cheat finding.

Hard drop when diagonal left or right is pressed might vary depending upon your expected behaviours. Simply enabling hard drop on those being pressed should not be so bad -- just set the hard drop to occur with different button combos*. If you want to move and then hard drop from one press that gets marginally trickier as you are potentially adding new behaviours, though you might be able to overwrite the next debounced area.


*a lot of people don't like fiddling with debouncing and reads. Here hard drops do different things to the score so I would go backwards from there (find the score with conventional cheat search https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial , what changes the score by however many points it does it by will have resulted somewhere from the hard drop code in the recent past and can go one more sequence backwards to find what triggered it and then change that to read different button ranges), and I might even do it if I don't mind playing with controls ( http://problemkaputt.de/gbatek.htm#dskeypad , most games will copy that state once per frame to avoid switch bounce issues and operate from that copied state so you can't simply put a break on read to that hardware area other than to find where the copied location is).

Repeats I will have to query further. Do you mean the speed of the movement once the repeating kicks in or the delay before repeating starts (or maybe both)? Some also seek things like double press has it move faster or kicks in immediately but that is into expanding functionality, and you will need to have figured out the stuff below to do that anyway.
I presume the tetronimos are sprites (I doubt they would be BG or 3d objects) so are controlled on screen by the OAM which is even nicer than the score stuff from before. Whatever changes the OAM will key off the controls here eventually, though you might not have to go back that far as any distance factor will be before then (if it adds or subtracts from the X location then add or subtract more, maybe play with shifts too) and delay factors are probably also obvious when looking at such things (countdowns and greater than tests with something added or subtracted every frame leading to the relevant OAM section being tickled when things hit a limit tend to be rather obvious. Set the limit lower or make the speed at which it gets to those higher). Main thing to note is the OAM might not be the same as the game's internal understanding of its state so make sure if it goes to two outputs (that being the OAM and the game's internal state, if it has one, both get fed the same data or you will end up with some very odd scenarios that make invisible tetris at the end of various tetris games look trivial).
The double press thing will need to have found out above the stuff above, and will mean adding some not insignificant amount of code. Tetris DS being a wifi game means likely later in the ROM are all sorts of exotic wifi error codes that I am pretty sure nobody ever saw, and likely never will today (we still have the various wifi replacement options after all). If I need space in a DS game I tend to look for those. In this case you will likely want to jump to one of those, do your deal and jump back. Many options here on what to do (some will adapt the code entirely and basically recreate it there, others will have it jump, detect the double tap and set speeds or delay to whatever needs it and go to where the code needs to go to (might be back to where it left originally, might be to where it would have set off for the next section of code in a normal game -- no point in jumping back to the original start location if that code is just going to overwrite your good work by resetting a timer).
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BakerMan @ BakerMan: hot take: freddy fazbear's pizzeria simulator is peak fnaf