Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Basically, anything that can happen in playing, while noting that you can't arbitrarily select which frame an enemy dies under given randomness; enemies do move, and you have to fire shots, and those shots do travel.
Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
So you are.
I wished people would not post here (after Mukki's post), but it seems I can't have things my way.
EDIT: Suddenly, Balinn loses his ability to post.
Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
As I have never seen this game before, I have no idea how good this movie is as for strategy choices and tactics.
It also being almost two hours long, it is somewhat long...
But after seeing the first 10 minutes, I still want to watch the rest of it, so it seems I'll have to vote "yes".
Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
It seems like I'm only getting a white window instead of something resembling a game, when I try to play this movie, or actually even just load the game...
Edit: The ROM version 554DEDC4 specifically does that. Some other versions seem to work better. Your mileage may vary.
Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
It looks like that when it is a web-page that is encoded in ShiftJIS, but served with "default" character encoding. In such case, it depends entirely on the browser's locale settings which character set it will guess. Such broken pages are very common in Japan over the world.
To view it properly, you have to select ShiftJIS as the encoding. In Firefox, this happens via View|Character encoding|More|East asian|Japanese (Shift_jis).
Similar phenomenon is seen with text files too.
Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Yes. (Also in Rockman 2.)
However, I recall the game does object-object collision checks only to half of the objects per frame.
I don't remember if it covered all kind of collision checks, but it means for example that when you enter a teleport, you can only enter it at even frames but not at odd frames (or vice versa, depending whether the teleport item received an odd or even slot number in the object table when it was spawned).
Point being, I'm not sure if you can actually reliably kill any selected two enemies at the same frame…
But you can clearly see this (your question) being the case in Rockman 2, for example when you use the wood shield and a flock of tiny birds approach it simultaneously.
It is supposed to format the movie length (indicated as number of seconds, a decimal number) into hours, minutes and seconds.
If the movie length does not include hours, hours are omitted.
If the $show_subsec parameter is given, subsecond value is also attached to it. If $show_subsec is not given, the value should be rounded towards the nearest full second.
[Edit: Already fixed it, but does someone still want to take a try? :)]
Editor, Experienced Forum User, Published Author, Active player
(296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
You need code?
Well, here goes.
First declare some global variables:
unsigned char RandomSeed; // at RAM address $46
unsigned char FrameCounter; // at RAM address $23
unsigned char Temp; // at RAM address $0D
At the end of every frame, this code is executed:
FrameCounter = FrameCounter + 1;
RandomSeed = (RandomSeed ^ Temp) + FrameCounter;
To determine a random item drop, this code is executed when an enemy is killed:
switch(RandomSeed % 100)
{
case 99: create item 0x41; break; // i.e. create extra life
case 97...98: create item 0x40; break; // i.e. create big health refill
case 95...96: create item 0x3F; break; // i.e. create big weapon refill
case 80...94: create item 0x3E; break; // i.e. create small health refill
case 65...79: create item 0x3D; break; // i.e. create small weapon refill
case 12...64: create item 0x3C; break; // i.e. create bonus pearl
case 0...11: break; // i.e. create nothing
}
The Temp variable is not reserved for any particular purpose by the game, so it is constantly overwritten with different values. However, by the time the NMI is executed, it practically contains one of these two values (unless there was lag, in which case it may contain any intermediate product of any calculation the game was doing when the NMI fired):
― The number of 8x8 sprites rendered on the screen, multiplied by 4.
― The value 3, if the screen just scrolled a pixel.
You see, this code is very simple. Now try to determine how precisely to act in order to accomplish a certain goal fast. Do not bother replying with a quick thought unless you have a simulation to back it up with.