Symbian emulator? (Emulation MSX Fora)MSX Resource Center MRC MEGA Challenge - Develop an MSX2 game and win!           
            
English Nederlands Español Português Russian         
 Nieuws
   Voorpagina
  Nieuws archief
  Nieuws onderwerpen

 Informatie
   MSX Fora
  Artikelen
  Recensies
  Beursverslagen
  Fotoreportages
  Beurzen en meetings
  Enquêtes
  Links
  Zoek

 Software
   Downloads
  Webshop

 MRC
   Wie we zijn
  Kom bij ons team
  Doneren
  Policies
  Contact met het MRC
  Link naar Ons
  Statistieken

 Zoek
 
  

  

 Login
 

Gebruikersnaam

Wachtwoord




Ben je nog niet lid? Klik hier en word MSX vriend!


 Statistieken
 

Er zijn 117 gasten en 0 MSX vrienden online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

Emulation - Symbian emulator?

Ga naar pagina ( Vorige pagina 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 Volgende pagina )
Schrijver

Symbian emulator?

bacterion

msx user
Berichten: 42
Geplaatst: 05 Februari 2004, 12:12   
has been tested on a non Nokia phone? or it is only for series60 and does not support any other symbian OS7 device?
karloch

msx addict
Berichten: 389
Geplaatst: 05 Februari 2004, 14:34   
I think that it won't work on other phones appart of the Series60 ones, however, it should be possible to make a port (for example, to Ericcson P800/P900) with minimal changes on the code.
bacterion

msx user
Berichten: 42
Geplaatst: 05 Februari 2004, 15:37   
code anywhere? any volunteer?
jr
msx addict
Berichten: 310
Geplaatst: 06 Februari 2004, 09:08   
It *should* work on any phone that is based on Series 60, also non-Nokia ones (like Siemens SX1). I do have some assumptions in the code for display & sound though. I think nobody has tested the emulator on a non-Nokia Series 60 phone so far so I cannot guarantee that it would work. Of course, I will be happy to fix any possible bugs in the emulator

Other Symbian OS but non-Series 60 based systems will not run the emulator as such (e.g. Nokia 9210/7700 or systems based on UIQ like SonyEricsson P800/P900). Porting to other Symbian OS based systems shouldn't be too difficult but I suppose it would require some work, mostly in the emulator UI and the assumptions that I've made as mentioned before.

I haven't released the source code for fMSX/S60 and I'm not planning to do that, sorry for the inconvenience. Of course, fMSX/Unix source code IS available...
jr
msx addict
Berichten: 310
Geplaatst: 06 Februari 2004, 09:14   
Quote:

I'd be happy to add your Z80 changes to blueMSX. If you want of course


Sure, I've already explained earlier in this thread what I did. If you need more information just ask. I don't suppose those changes prevented any games from running though as it was mostly related to undocumented opcodes. The architectural changes I've made I want to keep to myself (the best way to keep people from criticizing my crappy coding skills, hehe)
snout

msx legend
Berichten: 4981
Geplaatst: 06 Februari 2004, 14:04   
Hey JR, you mention the fMSX/Unix source is available, which made me wonder. With many ASM optimizations and a new improved Z80 core, how much of the original fMSX is still 'intact'?
jr
msx addict
Berichten: 310
Geplaatst: 07 Februari 2004, 08:51   
Hmmm.. difficult to say, strictly speaking there are only some data tables that are really intact, but if we count "very similar" code as intact also then I'd say around half.

Most similar parts are the 8251, 8255, PSG and SCC emulations and most different parts are sound mixer, VDP, disk/tape and timing code. I'd say that the Z80 emulation still resembles the original a lot but it works differently Also the main MSX "glue" component that contains e.g. memory mapping routines is logically somewhat intact.
dvik
msx master
Berichten: 1262
Geplaatst: 10 Februari 2004, 23:49   
Quote:

Sure, I've already explained earlier in this thread what I did. If you need more information just ask. I don't suppose those changes prevented any games from running though as it was mostly related to undocumented opcodes. The architectural changes I've made I want to keep to myself (the best way to keep people from criticizing my crappy coding skills, hehe)



If you want to share your effort I'd be very happy to get your updates to the timing tables and modifications to the opcodes. I'm not that interested in the architectural changes since I'm also modifying the z80 core.
If you want to share your updates you can send them to me. You will of course be credited!

Thanks,
Daniel
bacterion

msx user
Berichten: 42
Geplaatst: 11 Februari 2004, 09:53   
well, if, some day, you would want to port it to UIQ Symbian devices, here is a link about porting Series60 to UIQ www.symbian.com/developer/index.html
snout

msx legend
Berichten: 4981
Geplaatst: 11 Februari 2004, 10:01   
I've got another idea. Patriek Lesparre improved the Gameboy Emulator for MSX quite a lot using 'dynamic recompilation'. Maybe this can give the emulator the last boost it needs to emulate most games at smart-fit without frameskip.

As for MSX-MUSIC emulation. Of course I'd like the sound to be as close to the real thing as possible, but I would not mind if a less accurate approach of the MSX-MUSIC was used. You could, for instance, approach the standard MSX-MUSIC sounds and drums as wavetables instead of FM-synthesis (see: PSG/SCC). Then the only problem you have left are the user voices. Those will either consume a lot of CPU-power or not sound like they were intended at all.. Still... It might be interesting, as not every song uses an user-defined instrument.
jr
msx addict
Berichten: 310
Geplaatst: 11 Februari 2004, 11:13   
I suppose dynamic recompilation of GB code on MSX is easier because they have the same CPU so in fact the machine code doesn't really need to be totally recompiled - if I remember correctly I must admit that I don't know much about dynamic recompilation. Generating ARM assembly code from Z80 assembly code would be easy, but handling interrupts, self modifying code, MSX BASIC ROM's nasty jump techniques (jumping into the middle of opcodes) and so on sounds like a lot of work...
jr
msx addict
Berichten: 310
Geplaatst: 11 Februari 2004, 11:23   
Quote:

If you want to share your effort I'd be very happy to get your updates to the timing tables and modifications to the opcodes. I'm not that interested in the architectural changes since I'm also modifying the z80 core.l


I didn't change the logic of any existing opcodes, just added new ones. The timing tables that I currently use are:

// main opcodes
{
4,10, 7, 6, 4, 4, 7, 4, 4,11, 7, 6, 4, 4, 7, 4,
8,10, 7, 6, 4, 4, 7, 4,12,11, 7, 6, 4, 4, 7, 4,
7,10,16, 6, 4, 4, 7, 4, 7,11,16, 6, 4, 4, 7, 4,
7,10,13, 6,11,11,10, 4, 7,11,13, 6, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
7, 7, 7, 7, 7, 7, 4, 7, 4, 4, 4, 4, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 7, 4,
5,10,10,10,10,11, 7,11, 5,10,10, 0,10,17, 7,11,
5,10,10,11,10,11, 7,11, 5, 4,10,11,10, 0, 7,11,
5,10,10,19,10,11, 7,11, 5, 4,10, 4,10, 0, 7,11,
5,10,10, 4,10,11, 7,11, 5, 6,10, 4,10, 0, 7,11
}

// CB opcodes
{
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
8, 8, 8, 8, 8, 8,12, 8, 8, 8, 8, 8, 8, 8,12, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8,
8, 8, 8, 8, 8, 8,15, 8, 8, 8, 8, 8, 8, 8,15, 8
}

// ED opcodes
{
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
12,12,15,20, 8,14, 8, 9,12,12,15,20, 8,14, 8, 9,
12,12,15,20, 8,14, 8, 9,12,12,15,20, 8,14, 8, 9,
12,12,15,20, 8,14, 8,18,12,12,15,20, 8,14, 8,18,
12,12,15,20, 8,14, 8, 8,12,12,15,20, 8,14, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
16,16,16,16, 8, 8, 8, 8,16,16,16,16, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 8
}

// DD/FD opcodes
{
8,14,11,10, 8, 8,11, 8, 8,15,11,10, 8, 8,11, 8,
12,14,11,10, 8, 8,11, 8,16,15,11,10, 8, 8,11, 8,
11,14,20,10, 9, 9, 9, 8,11,15,20,10, 9, 9, 9, 8,
11,14,17,10,23,23,19, 8,11,15,17,10, 8, 8,11, 8,
8, 8, 8, 8, 9, 9,19, 8, 8, 8, 8, 8, 9, 9,19, 8,
8, 8, 8, 8, 9, 9,19, 8, 8, 8, 8, 8, 9, 9,19, 8,
9, 9, 9, 9, 9, 9,19, 9, 9, 9, 9, 9, 9, 9,19, 9,
19,19,19,19,19,19,19,19, 8, 8, 8, 8, 9, 9,19, 8,
8, 8, 8, 8, 9, 9,19, 8, 8, 8, 8, 8, 9, 9,19, 8,
8, 8, 8, 8, 9, 9,19, 8, 8, 8, 8, 8, 9, 9,19, 8,
8, 8, 8, 8, 9, 9,19, 8, 8, 8, 8, 8, 9, 9,19, 8,
8, 8, 8, 8, 9, 9,19, 8, 8, 8, 8, 8, 9, 9,19, 8,
9,14,14,14,14,15,11,15, 9,14,14, 0,14,21,11,15,
9,14,14,14,14,15,11,15, 9, 8,14,15,14, 4,11,15,
9,14,14,23,14,15,11,15, 9, 8,14, 8,14, 4,11,15,
9,14,14, 8,14,15,11,15, 9,10,14, 8,14, 4,11,15
}

// DDCB/FDCB opcodes
{
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,
}

dvik
msx master
Berichten: 1262
Geplaatst: 11 Februari 2004, 16:56   
Quote:


I didn't change the logic of any existing opcodes, just added new ones. The timing tables that I currently use are:


Thanks for the tables.

You may want to change the flag calculation in the OUTI opcode to

R->AF.B.l=(R->AF.B.l&S_FLAG)|(R->BC.B.h? 0:Z_FLAG)|(R->HL.B.l+I>255? (C_FLAG|H_FLAG):0);

The Z80 manual says the flags are indefinite but MSXFAN games assumesthat the S-flag is not cleared. The fMSX code clears this flag
GuyveR800
msx guru
Berichten: 3048
Geplaatst: 11 Februari 2004, 17:23   
I assume that besides these tables you also take into account the differing run-time instruction timings of relative jumps and block commands?

With dynamic recompilation it really doesn't matter if the CPU's are the same (Z80 vs Z80), similar (Gameboy vs Z80), or totally different (Z80 vs ARM).
Dynamic recompilation does mean you need quite a bit of RAM for the translation cache, and you need a fast way to tag the cache, otherwise you'll loose all speed gains on cache management.

In the case of fMSX/S60, writing the Z80 core directly in ARM assembly might give the emulator enough of a speed boost. Ofcourse I don't know how much CPU time the OS takes, but 100MHz ARM is ridiculously fast, and an emulator written in assembly should easily be able to emulate an MSX close to perfection.
jr
msx addict
Berichten: 310
Geplaatst: 11 Februari 2004, 22:36   
Yes, in addition to the timing tables conditional commands (jumps, calls, returns etc.) have additional cost depending on the flags and block commands have different timing depending on the loop count - as implemented in the original fMSX Z80 emulation.

You are right, 100MHz ARM would be plenty if all the power would be for the emulator. I don't have any metrics but I guess running a multitasking OS takes its share of the power (note that the OS itself is running in THUMB mode). I wonder if a 100MHz PC runs fMSX at correct speed under MS Windows or Linux without HW FM synthesizer... perhaps it does

Oh and thanks for the tip, dvik!
 
Ga naar pagina ( Vorige pagina 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 Volgende pagina )
 







(c) 1994 - 2008 Stichting MSX Resource Center. MSX is een trademark van MSX Association.