Темы
Ontario, Canadarainwarrior4 years ago

I made a patch to make this game run at consistent speeds on faster computers. The patch also applies to the first Mega Man game, so I'll just link that thread here rather than repeat everything I wrote there:

https://www.speedrun.com/Mega_Man_DOS/thread/c0nxu

Ontario, Canadarainwarrior4 years ago

I dunno if runners of this game would be interested, but I recently patched this game to be able to run at consistent framerates on faster hardware:

https://github.com/bbbradsmith/mmpatch

This patch should make the speed of the game very consistent if played on faster hardware. This will even run quite well on a modern PC using FreeDOS. The changes are minimal, and intended to address the hardware speed issues only.

TLDR

  • Without the patch: this game has to run on some very specific speed of hardware, and it would be hard to compare any runs not made on exactly the same machine.
  • With this patch: it will run the same on almost any PC.

More detailed information below.

Some notes on things that will effect overall game time:

  1. VGA hardware will sync these games at 70Hz (regardless of mode selected). I believe true EGA or CGA hardware will sync at 60Hz instead, and would be 6/7 speed, but VGA hardware is pretty much ubiquitous (and still used in modern PCs). You probably wouldn't normally find a true EGA card in anything later than a 286.

The game says it has CGA, EGA, VGA and TANDY modes, but really it just has CGA and EGA. A VGA graphics device is backward compatible with both of those, but it has this slightly faster refresh rate. (Note: DOSBox simulates VGA hardware by default, not EGA.)

  1. There is some processing time in transitions between screens, the longest of which can be seen at the opening of MM3 with several seconds of black screen. On a fast computer these generally shrink to "instant". I think the difference here becomes pretty much insignificant to a speedrun somewhere around 386 or 486 speed.

Most of these are pretty short to begin with though, and the only really long one is before the start of the run I think. Might make a few seconds difference across the run if played on a slower (<386?) computer?

  1. In general, the faster the computer, the more consistently it will run with this patch. Slow computers (<=286?) that were experiencing enough slowdown to make this play tolerably will still have this additional slowdown, though at least would sync to a video frame, so that might be slightly more consistent than before.

In the original game the CGA mode never had any synchronization, but the EGA mode actually did actually sync to the next video frame during gameplay. A slowdown setting of 0 basically puts things back the way they were. Because EGA mode already had a sync, settings of 0 and 1 are essentially the same on fast computers. On slow computers there is an additional delay.

0 = 70.0 Hz (EGA) or Unlimited (CGA) 1 = 70.0 Hz (sync 1 frame) 2 = 35.0 Hz (2 frames) 3 = 23.3 Hz (3 frames) 4 = 17.5 Hz (4 frames) et cetera.

.

So... maybe people here are happy with the arbitrary DOSBox at speed 500 setup you've been using, and I'm not trying to insist you should use this patch instead, but if anyone's interested in doing runs on hardware this might be a way to make that possibility more accessible.

The changes applied by the patch are very minimal. The default speed setting of 3 should be comparable to existing DOSBox runs, though not identical.

The patch also applies to Mega Man 3.

Ontario, Canadarainwarrior5 years ago

Lizard now has an official randomizer:

http://lizardnes.com/lizard_of_random.html

This randomizes lizard locations, boss locations, and door connections for the NES version of the game.

juef и WinnerBit нравится это
Ontario, Canadarainwarrior5 years ago

For anyone that wants to investigate the random number generator with an emulator, use a RAM Watch feature to look at a 2-byte value at $0044. This is the seed value for the RNG. (Two bytes at $44 and $45.)

If you can start the game with a Left + Right + Start press, the RNG will be reset to a known state.

For a TAS this will let you easily see what does or does not affect the RNG seed, but for a live run, theoretically you could control the RNG for maybe the beginning segment of the run, depending on how long you can maintain perfect synchronization with it.

Ontario, Canadarainwarrior5 years ago

The Karnov ROM is commonly found with the wrong header on it. It should be mapper 206, not mapper 4. This IPS will fix it:

http://rainwarrior.ca/projects/nes/karnov_header_fix_206.ips

This should correct garbage graphics on the second screen of the game, on some emulators and Everdrive N8.

.

If you've got a PowerPak, though, you'll get an unsupported mapper error, so if you need to reverse this correction:

http://rainwarrior.ca/projects/nes/karnov_header_unfix_4.ips

Pianotorious нравится это
Ontario, Canadarainwarrior5 years ago

I have made for you the Karnov Inspector! It's a Lua script that you can use with FCEUX, Bizhawk, or Mesen.

.

Download: https://gist.github.com/bbbradsmith/46e53f67f681814337001445539995ad

.

http://rainwarrior.ca/projects/nes/karnov_inspector.png

.

H - Help - Toggles the help display. S - Stats - Your screen coordinates, scrolling, and map coordinaes at the bottom. K - Tiles - All the level tiles: collision, hidden item triggers, spawn triggers, etc. L - Touch Hitbox - All the hitboxes that you can touch. V - Shoot Hitbox - All the hitboxes that you can shoot, plus enemy health. B - Bomb Triggers - All the places you can use a bomb. N - Hide Screen - Blanks the image to view only the inspector overlays.

.

This should work with most versions of FCEUX, but I recommend the "interim" build available here, which will display the overlaid colours a little better:

http://www.fceux.com/web/download.html

.

To run this, open Karnov in FCEUX then go to: File > Lua > New Lua Script Window > Browse...

Toad22484, nd523, и baldnate нравится это
Ontario, Canadarainwarrior5 years ago
  1. AEEITKLP
  2. AAXSTULP

For people that are practicing this game a lot and want SFX but no music (even though it's a great tune), this pair of game genie codes will do the trick.

1 stops the music from playing at the start of the level, 2 stops it from playing after a death.

baldnate нравится это
Ontario, Canadarainwarrior5 years ago

The in-game timer counts active frames (assuming 60 per second) but it skips lag frames spent loading graphics data between screens. It also halts if you pause the game, and stops when the ending sequence is triggered.

You can turn the clock on in the PC build to see the timer overlaid on the screen. That will show you when it starts and stops, the NES version behaves the same.

On the PC the lag frames between screens are always the same, I think it's always 20 frames from room to room. On NES it varies depending on how much graphics are shared between rooms, seems to take either 19 or 20 frames in most cases. The exact number of frames depends on the route.

Also, the NES is usually close to 60.1 Hz, and the PC version runs at 60 Hz. I think that's about 2 seconds over ~20 minutes.

So, the two platforms are designed to be frame-for-frame compatible while you're able to give input to the player, at least. The in-game time is just a frame counter and should give equivalent times for frame-equivalent runs. Real-time though I'd only expect a difference of a few seconds overall.

О rainwarrior
Вступил
6 years ago
Онлайн
8 months ago
Времена
9
Сыгранные игры
Aspetra
Aspetra
Последний рекорд 2 years ago
3
Времена
Karnov
Karnov
Последний рекорд 5 years ago
1
Время
Battletoads (NES)
Battletoads (NES)
Последний рекорд 2 years ago
1
Время
Home Alone (NES)
Home Alone (NES)
Последний рекорд 2 years ago
1
Время
Lizard
Lizard
Последний рекорд 6 years ago
1
Время
Fantasy Zone II (SMS)
Fantasy Zone II (SMS)
Последний рекорд 4 years ago
1
Время
Life & Death
Life & Death
Последний рекорд 4 years ago
1
Время
Игры, за которыми следят
Lizard
Lizard
Последнее посещение 9 months ago
318
посещений
Karnov
Karnov
Последнее посещение 1 year ago
179
посещений
Life & Death
Life & Death
Последнее посещение 1 year ago
103
посещений
Mega Man (DOS)
Mega Man (DOS)
Последнее посещение 3 years ago
42
посещений
Mega Man 3 (DOS)
Mega Man 3 (DOS)
Последнее посещение 4 years ago
8
посещений
Aspetra
Aspetra
Последнее посещение 1 year ago
153
посещений
Модерируемые игры
Aspetra
Aspetra
Последнее действие 1 year ago
8
действия
Life & Death
Life & Death
Последнее действие 1 year ago
3
действия