This seems a lot of work and fancing around to do JSL $008e66, looks like it probably clears any DP movement/data page when doing the jump, so you call the function without changing the DP/Data bank. But also seems like overkill for such functionality. Am I missing something?

If you really want to see code that is badly optimized, have a look at tetris attack... oh boy, bad code for days.... even the tables are bad... hell they couldn't be bothered to make a random number generator so just threw half a bank at random number table

I was going to use a random number table for my bullet hell port, since it's going to be squeezed for performance and I figured it'd be faster. But it turns out that accessing data outside the current bank is a pain in the ass on Super FX, and I managed to hunt up a reasonably high-quality 16-bit version of xorshift that's nearly as fast as the table lookup would have been, while having twice the period...

My guess is that naming the original game would violate some NDA with its publisher and cause 93143 to lose the license to port it. And even if the publisher has a policy to tolerate non-commercial fan works, like Team Shanghai Alice's Touhou Project games, announcing the title might put an undue burden on 93143 of fielding incessant "are we there yet" requests from its fan base.

My guess is that naming the original game would violate some NDA with its publisher and cause 93143 to lose the license to port it. And even if the publisher has a policy to tolerate non-commercial fan works, like Team Shanghai Alice's Touhou Project games, announcing the title might put an undue burden on 93143 of fielding incessant "are we there yet" requests from its fan base.

Well, mainly it's closer to the latter. I've had bad experiences with overpromising and underdelivering in the past - not so much that people bug me, but that I disappoint them. I still plan to finish all my projects, but when I start something it's more likely to end up like Duke Nukem Forever than Haunted: Halloween '85.

I mentioned it on this forum a few years ago because I needed help getting started and figuring things out - it's my first SNES project. But maybe I should stop gratuitously referencing it when it doesn't add much to the conversation...

Sumez wrote:

Oh, I was just curious...

Sorry. This happens every time, and I never learn...

Oziphantom wrote:

massaged

That could be a good point.

On the other hand, it shouldn't be impossible to "massage" a real PRNG, say by rejecting results that don't meet a certain standard of playability, or by tying probability ranges to history when using the result - doesn't Tetris do this?

I suppose if you've got half a bank free anyway, a table might be the simplest approach...

Tetris 2 + Bombliss is BPS published, though its Game Boy port Tetris Blast was published by Nintendo in North America.

The RNG in Tetris since 2001 is heavily massaged. The "bag" RNG in most games deals all of a set of 7 distinct Tetriminos without replacement, and only once the set is empty is it refilled. The "history" RNG in Arika's Tetris The Grand Master is heavily biased against the four most recently dealt Tetriminos. (For more information, see Hard Drop Wiki.) Both of these paradigms improve the player's quality of life somewhat, with fewer SZ gluts and fewer I droughts.

I've used something conceptually similar to history in Thwaite for target building choice, RHDE for piece choice, and my NES port of robotfindskitten for NKI choice. The RNG in these games considers only those choices, roughly one-third to two-thirds of all available choices, that were least recently dealt. This has the advantage of a more even distribution while also letting me use raw numbers from the RNG with a power of 2 range, eliminating the need to multiply.

Puzzle League, on the other hand, needs a bit more massaging than a simple bag or LRU scheme. Not only must pieces be non-matching horizontally, but they also have to be non-matching vertically against the previously generated row. It'd be tricky to make a constant-time algorithm for that.

Who is online

Users browsing this forum: No registered users and 1 guest

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum