(good) MSX-emulator for mobile phones?

Página 2/4
1 | | 3 | 4

Por Guillian

Prophet (3455)

imagem de Guillian

03-07-2003, 16:07

It seems you don't understand me, or I did not explained it right. Of course you can run emulators on some mobile phones as Karloch or GuyveR800 said. WGE is also fast enough (C/C++) to do it, or nGage from Nokia. But do you think that terminals are "common"? I don't think so. Furthermore, how many terminal do you know with at least 256x192?

Por anonymous

incognito ergo sum (116)

imagem de anonymous

03-07-2003, 17:21

My Nokia3650 already is a real JAVA phone....And it has Symbian OS....I already have a great GBC emulator for it....So an MSX emulator shouldn't be any problem......
Uhm, this is as the dutch say 'nogal kort door de bocht'. The thing has a GBC emulator -->> SO a MSX emulator shouldn't be any problem??
MSX is really a much more powerful thing than GBC. MSX has different screenmodes, lots of hardware peripherals, more complex CPU, and probably the biggest hurdle: heaps and heaps of (V)RAM.

Come on, GEM exists! I haven't seen a MSX emulator for GBC, even GBA can't emulate MSX decently...

Por MOA

Champion (293)

imagem de MOA

03-07-2003, 20:27

>>
Well, most phones have ARM based processors these days. The GBA has a 16Mhz ARM7TDMI (no cache) and it is capable of emulating NES, ZX-Spectrum, etc.
<<

Yes, you are right. But bare in mind that the GBA has diferent screen modes, with support for tiles, which makes a lot easier to emulate those systems. It also has screen layers, sprites, palettes, etc...

Well, I never wrote vdp emulation before (although I did emulate some CPU's), but these hardware features won't help you much when you use a scanline based renderer; you would select one of the 3 bitmap modes the GBA has and render to the framebuffer.
It'll help you when using a frame based renderer, I agree.

Maybe someone with vdp emulation experience can comment on this? (GuyveR800?)

Por Thom

Paladin (685)

imagem de Thom

03-07-2003, 20:50

(p/s: am I the only one here without a mobile phone, or are you still with me Thom Big smile )

Nope, I recently bought one because I'm job hunting!! However, I NEVER use the darn thing. Hence I'm still with you, Master.

Por anonymous

incognito ergo sum (116)

imagem de anonymous

03-07-2003, 22:18

Tilebased screenmodes allow you to do very quick partial screen updates (dirty rectangles). In fact, in GEM I approach SCREEN5 (bitmapped) as a tilemode for the purpose of speed. If you arrange the tiles right, you can access it both bitmapped and tiled.
And ofcourse having sprites really speeds up emulation of any sprite-capable system like MSX.

So yes, a GBA has a big headstart compared to a simple bitmap/framebuffer screen.

Offtopic, but as far as I understand it the GP32 has a CPU 6 times as powerful as GBA, but it has a simple framebuffer only. I wouldn't be surprised that if you wanted to emulate on GP32 the same video features GBA offers, you'd waste all your extra CPU speed to just that purpose.

Por MOA

Champion (293)

imagem de MOA

03-07-2003, 23:04

Tilebased screenmodes allow you to do very quick partial screen updates (dirty rectangles). In fact, in GEM I approach SCREEN5 (bitmapped) as a tilemode for the purpose of speed. If you arrange the tiles right, you can access it both bitmapped and tiled.
And ofcourse having sprites really speeds up emulation of any sprite-capable system like MSX.

So yes, a GBA has a big headstart compared to a simple bitmap/framebuffer screen.

Offtopic, but as far as I understand it the GP32 has a CPU 6 times as powerful as GBA, but it has a simple framebuffer only. I wouldn't be surprised that if you wanted to emulate on GP32 the same video features GBA offers, you'd waste all your extra CPU speed to just that purpose.

Dirty rectangles certainly speed up things, but isn't that only usable in a frame based renderer? Will it still emulate screensplits/hblank effects correctly? (i.e.: waves/mode switches halfway the screen/palette switches/etc.)... These are used quite extensively on MSX (the MSX2 logo already uses it... SpaceManbow & Aleste 2 are other examples).

About GP32: yes, it has a 16 bit frame buffer (or maybe two for double buffering) and a 200Mhz ARM8, I believe. Basically a pocket PC without OS (hurray!) in a GBA (not SP) alike case.

GBA has a real nice VDP with modes like:

Mode 0: 4 tile based layers (16c/256c per tile) with 128 sprites (32kB sprite VRAM, 64 kB tile/attribute VRAM)
Mode 1: 2 tile based layers (16c/256c per tile), 1 tile based rotation/scaling layer (256c per tile) with 128 sprites (32kB sprite VRAM, 64 kB tile/attribute VRAM)
Mode 2: 2 rotation/scaling layers (256c per tile) with 128 sprites (32kB sprite VRAM, 64 kB tile/attribute VRAM)
Mode 3: 240x160 bitmap mode, 15 bit (32k) colors, 1 frame buffer, 128 sprites (16kB sprite VRAM, 80 kB frame buffer VRAM)
Mode 4: 240x160 bitmap mode, 8 bit (256c, paletized) colors, 2 frame buffers, 128 sprites (16kB sprite VRAM, 80 kB frame buffer VRAM)
Mode 5: 128x160 bitmap mode, 15 bit (32k) colors, 2 frame buffers, 128 sprites (16kB sprite VRAM, 80 kB frame buffer VRAM)

Sprites can be 16c or 256c, ranging from 8x8 to 64x64... rotation/scaling is possible too.

Alpha blending/brightness control: one setting, which can be used by layers and/or sprites.

But whether these features are usable by scanline renderers... I still doubt it Smile

Por anonymous

incognito ergo sum (116)

imagem de anonymous

04-07-2003, 00:19

Unless they changed the specs GP32 has a ARM9 clockable to 133MHz, but only capable of reaching that when running 100% from cache. I believe ~96 MHz is the highest possible for the RAM.

Dirty rectangles certainly speed up things, but isn't that only usable in a frame based renderer? Will it still emulate screensplits/hblank effects correctly? (i.e.: waves/mode switches halfway the screen/palette switches/etc.)... These are used quite extensively on MSX (the MSX2 logo already uses it... SpaceManbow & Aleste 2 are other examples).You can certainly use dirty rectangles and still emulate splits and effects properly. In fact, GEM does exactly that Smile
Although it's currently only accurate to 8 lines, a slightly more complicated renderer could support line based hblank fx/splits and still work with dirty rectangles. I believe openMSX does it, tho I'm not 100% sure.

Por Guillian

Prophet (3455)

imagem de Guillian

04-07-2003, 00:33


Dirty rectangles certainly speed up things, but isn't that only usable in a frame based renderer? Will it still emulate screensplits/hblank effects correctly? (i.e.: waves/mode switches halfway the screen/palette switches/etc.)... These are used quite extensively on MSX (the MSX2 logo already uses it... SpaceManbow & Aleste 2 are other examples).

Yes, GBA can handle screen splits or whatever you want by checking an special register that tells you the actual scanline. It is also possible to generate an interruption at certain scanline.
Two years ago I ported PuddleLand to GBA and used the well-known horizontal wave effect in a background layer (to simulate underwater stages)
As far as I know, it is possible to modify things in the same scanline, to generate a vertical & horizontal wave effect.

About tile modes. I really think that it speed thing up when emulating tile based screens (like Foon does for emulating an spectrum)

Por MOA

Champion (293)

imagem de MOA

04-07-2003, 00:37

>>
Dirty rectangles certainly speed up things, but isn't that only usable in a frame based renderer? Will it still emulate screensplits/hblank effects correctly? (i.e.: waves/mode switches halfway the screen/palette switches/etc.)... These are used quite extensively on MSX (the MSX2 logo already uses it... SpaceManbow & Aleste 2 are other examples).
<<

Yes, GBA can handle screen splits or whatever you want by checking an special register that tells you the actual scanline. It is also possible to generate an interruption at certain scanline.
Two years ago I ported PuddleLand to GBA and used the well-known horizontal wave effect in a background layer (to simulate underwater stages)
As far as I know, it is possible to modify things in the same scanline, to generate a vertical & horizontal wave effect.

About tile modes. I really think that it speed thing up when emulating tile based screens (like Foon does for emulating an spectrum)

Well, I know pretty much anything about the GBA, and yes it has a VCOUNT interrupt (generate an interrupt @ a certain line). Most HBlank effects on GBA are generated through HBlank DMA, though (i.e: for a sine wave you'd only have to create a HSCROLL table for a certain layer and say: DMA one entry of this table to the HSCROLL register for layer <n> for every line).

But the VCOUNT register is not usable by emulators unless they guarantee a steady 60fps. In all other cases they would have to emulate the line interrupt by checking the VDP settings each line (i.e.: a set amount of CPU ticks) and by performing the correct drawing commands according to these VDP settings for each line in the frame buffer.

At least that's what my locigal thinking brain told me just now...

Por Guillian

Prophet (3455)

imagem de Guillian

04-07-2003, 00:58

But the VCOUNT register is not usable by emulators unless they guarantee a steady 60fps. In all other cases they would have to emulate the line interrupt by checking the VDP settings each line (i.e.: a set amount of CPU ticks) and by performing the correct drawing commands according to these VDP settings for each line in the frame buffer.

At least that's what my locigal thinking brain told me just now...

Maybe you are right, but it should not be a problem to emulate effects like the ones used in Space Manbow, Aleste, etc... I think GBA hardware is good enough to emulate MSX VDP in a easy way (tiles, palettes, sprites, bitmap modes, etc...)
The main problem is that you will need to write an acurate MSX emulator designed for GBA, and not to port fMSX, for example, since (I think) it uses a bitmap mode for emulating the VDP.

Página 2/4
1 | | 3 | 4