New game convertions!

Página 6/9
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9

Por SLotman

Paragon (1240)

imagem de SLotman

02-12-2007, 01:02

To give people a choice, of playing the game in "normal" mode or in "turbo" mode Smile

in the case of my latest release (you know where to go right? Wink) this is even more true: the game is almost at the same speed as on Spectrum, but with turbo, you get one hell of a smooth (and faster) game... so, it's up to the player to choose how he wants the game to be Smile

Btw, the latest release I did... it's Gilbert Space from Drill ;)

Por spl

Paragon (1470)

imagem de spl

02-12-2007, 12:29

Good game! I didn't new it, but now I enjoy it Big smile

http://www.icongames.com.br/msxfiles/gilbert/index.htm

Por Manuel

Ascended (18855)

imagem de Manuel

02-12-2007, 13:56

YOu mean: Escape from Drill? Tongue

By the way, you talked about a bug that prevented it from running on openMSX and blueMSX. Can you tell us more about it? If the emulators are right, it should also not have run on real MSX. If it did, there must be an emulation flaw.

Por SLotman

Paragon (1240)

imagem de SLotman

02-12-2007, 17:49

Heh, yeah, Escape from Drill... I was sleepy when I posted that Wink

As for the bug I was using some HALTs to time the ICON Games logo - that worked fine on BrMSX and on my A1ST, but on blueMSX and OpenMSX (emulating the same A1ST) it was freezing the emulation... don't ask me why. Changing the HALTs with a counter fixed it on the emulators.

Por PingPong

Prophet (3898)

imagem de PingPong

02-12-2007, 20:13

@SlotMan: the game will be excellent if for the main char. a sprite is used.!

Por Manuel

Ascended (18855)

imagem de Manuel

02-12-2007, 21:33

Can you please send me a version that uses the HALTs? So that we can debug our emulators...

Thanks!

Por Fudeba

Expert (113)

imagem de Fudeba

03-12-2007, 18:11


30fps? i think a bit too much for the z80. a z80 ldir command
can transfer about 170kb/sec
It's a bit too much even for a 7mhz msx system...

You are correct. I stated that since the game runs really smooth on 7MHz, but it is not "smooth scroll", so there is no need of 30FPS. 15 FPS should be sufficient, and I believe this is the standard FPS for Speccy games.
Is there any simple way to test real FPS?


I debugged the vram I/O transfer and i've realized the same
crappy thing: ram-vram ->I/O transfers are done with this code:
ld a, (HL)
out (0x98),a
nop
inc h
ld a,(HL)......
(...)
game speed could improve a lot if they adapted the zx speccy sw
gfx routines to match the msx vram layout.
in this way the ram->vram could be done with a OTIR, a lot
faster than the above.
as usual, to take advantage of a specific hw the sw should be
adapted.

Well, I am not so sure... And I will tell you why.
MSX VDP is very slow; TMS 9128 is even slower than V9938/58. If you speed up things on Z80 side, there will be garbage on MSX1 screen. When running on MSX2, I noticed (on Shinobi) that exchanging sequences like above by OUTIs (the game works with a framebuffer that can be output this way), there was only a marginal gain. I was not able to determine why, but it is like if VDP 9938/58 slowed down the computer (specially true for turbo R). Anyway, the use of multiple OUTIs is faster than one (or multiple) OTIR, at least in theory.

But I believe the small speed improvement on Shinobi is not a final proof, since each games' engines work in a very different fashion.

Also, I would like to point that Altered Beast works with somewhat converted game data. The structure is still linear bitmap the game colors were pre-converted (this was the first time I have ever seen this!). Why the conversion was done this way, I really don't know... but I believe it was done to speed things up. The same can be done to rearrange bitmap data, I believe.

Since I had not statically modified a single byte of Altered Beast, be my guest to try improving its display graphical routine. Smile If you don't move everything around, my loader will work ok.

Regards!

Por PingPong

Prophet (3898)

imagem de PingPong

03-12-2007, 21:11

@Fudeba:
remember only on thing, the main bottleneck is the process of converting 'linear' display format to msx one. the vdp is not the *only* thing that slow down things. Plus on msx2 standard machines the I/O speed does not slow the z80 because the vdp can (hardly, but can, keep up the z80 at max speed). The problem is the MSX1 game. While i'm not so sure, i think that even an OTIR could be reliable on msx1 machines. Comparing the time of the speccy->msx blit routine we see that is very slow with respect to a plain OTIR.

Why we need the speccy format on a non-speccy machine? Because programmers are simply too lazy to implement a sw sprite routine that can work on the z80 ram in the SAME FORMAT as VRAM VDP. they work in the backbuffer in speccy-alike mode then they convert while blitting in vram to msx mode. THIS IS THE MAIN CAUSE OF SLOWNESS.

For games that also manipulate colors there is also twice almost the amount of data to be processed. this explain why a z80 @ 7mhz is needed to get similar speccy performances.

A thing that could be done will be to convert some sw sprites (where possible) into hw ones, thus minimizing the amount of work that the z80 must do

Por SLotman

Paragon (1240)

imagem de SLotman

08-12-2007, 20:08

Another release, this time from Amusement Factory... Karateka!

Por Fudeba

Expert (113)

imagem de Fudeba

08-12-2007, 20:28

@Fudeba:
remember only on thing, the main bottleneck is the process of converting 'linear' display format to msx one. the vdp is not the *only* thing that slow down things.

MSX has many things that slow everything down. I had already explained several times that even without the need of sending data to VDP... MSX would be slower than Speccy. Speccy doesn't have an extra wait state on every M1 cycle as MSX does (from MSX1 to turboR in Z80 mode).
Of course that every data conversion "on the fly" will slow things down, but this is only one of the problems.


Why we need the speccy format on a non-speccy machine? Because programmers are simply too lazy to implement a sw sprite routine that can work on the z80 ram in the SAME FORMAT as VRAM VDP. they work in the backbuffer in speccy-alike mode then they convert while blitting in vram to msx mode. THIS IS THE MAIN CAUSE OF SLOWNESS.

Of course it can (cause slowness); On MSX1, thought, the time Z80 is waiting for the VDP is being "wasted" in these conversions. If they weren't present, there would be the need of some NOPs between OUTs (as I had to add many times because TMS9128 fails to process the data fast enough).
Anyway, programmers are lazy by definition. Big smile

If you are not lazy, as I had already said before, feel free to adapt the game data. I am sure the game will be faster, even if not as fast as it is on Spectrum.
Just as an example, with a few optimizations in the output routine of Karateka (nothing huge like you are proposing) I was able to make the game run a little faster (just a little!... the game still crawls at 3.57MHz... but it crawls under Spectrum too, no big deal) and was able to re-enable some features that were previously disabled.


For games that also manipulate colors there is also twice almost the amount of data to be processed. this explain why a z80 @ 7mhz is needed to get similar speccy performances.

Colors are less complicated than patterns. Usually the processing is conversion using a table and then outputing 8 times the same value... this way, the "overhead" is not that critical. I found it curious why the programmers had chosen to statically convert the colors and left the pattern conversion to be made on-the-fly. The only reason I could find is that it would be too complicated/complex and would require rewrite so many parts of the game that it couldn't be justified... on a conversion. Maybe it would be better to rewrite the entire game (and the programmers probably were not paid to rewrite the entire game).


A thing that could be done will be to convert some sw sprites (where possible) into hw ones, thus minimizing the amount of work that the z80 must do

This is often discussed by me and SLotman; but I was never compelled to do it.
There are some good examples of conversions, though. Knight Tyme is one superb one. And it uses sprites for the main character. Smile

My kindest regards,

Daniel Caetano

Página 6/9
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9