Most Bang for Buck for new MSX User? (Expanding on a stock Yamaha CX5m)

Page 3/5
1 | 2 | | 4 | 5

Par sd_snatcher

Prophet (3592)

Portrait de sd_snatcher

06-02-2017, 22:42

Great news! Louthrax, you never cease to impress me!

Par hamlet

Scribe (4105)

Portrait de hamlet

06-02-2017, 23:08

Indeed a wonderful brand!
I waiting for SofaView, SofaPlay, SofaTalk, SofaSave, SofaWord and SofaTunes to be released!

Par NYYRIKKI

Enlighted (5970)

Portrait de NYYRIKKI

06-02-2017, 23:31

Louthrax wrote:

The ROMs are sometimes using 8KB pages instead of 16kb pages for main RAM. Also, the selection mechanisms for ROMs are not the same as for main RAM.

There are already some tools to launch ROMs on main RAM (patching the ROM code to make it work). I've been working on a new tool like that this week-end (SofaROM ?)

If you are interested, I have at home quite a nice behaving AI, who happens to have special expertise of patching MSX ROM's. (He has done it a lot from MSX to SVI platform on his own.) He is very friendly and in exchange for few KB of memory he will give you quite sophisticated opinion about your patching plans, if you just ask. Naturally you make all the final decisions. I personally think he could have a good life on your SofaROM.

Par Manuel

Ascended (19053)

Portrait de Manuel

06-02-2017, 23:46

Is that AI on your sofa, perhaps?

Par Louthrax

Prophet (2435)

Portrait de Louthrax

07-02-2017, 03:17

Ahah Smile, thank Nyyrikki, I was thinking about your AI for that project (I even think we exchanged some thoughts about that in a previous Nijmegen edition).

For now, I have pre-defined patterns to search, mainly based on Konami ROMs. This allows to avoid fetching unneeded 8KB pages combinations into RAM. It's defined like that:

        ; Pattern length
        defb 9
        ; Pattern to search in ROM
	defb	0x32,0x00,0x80,0x77,0x2C,0x3C,0x32,0x00,0xA0
        ; Replace it with that:
	defb	0x32,LOW page8000,HIGH page8000,0x77,0x2C,0x3C,0xCD,LOW setA000,HIGH setA000

So the first "ld (0x8000),a" does not cause page loading directly, this saves a lot of RAM and disk loading time.
No real need for AI on this long pattern, chances it's data and not code are very low.

But in the end, I still rely on basic patterns if none of the elaborated ones have been found:

        ; Pattern length
	defb	3
        ; Pattern to search in ROM
	defb	0x32,0x00,0x80
        ; Replace it with that:
	defb	0xCD,LOW set8000,HIGH set8000

So for this simple one, AI could make a difference and avoid corrupting data. I need to do some tests with non Konami ROMs to see how things work. Nyyrikki, maybe your AI could be specialized to detect not only code but also "page switching" and "consecutive page switching with no possible interrupts between them" ?

Coding the SofaROM prototype was quite funny (I already started a project like that back in 1990 or something but did not finish it). An interesting thing was avoiding "race conditions" for Konami games after loading pages from disk: this can cause an interrupt to be launched in an unexpected way because of the disk delay. The solution is simply to wait for an interrupt after loading from disk.

Another point of interest is performance. I used a big 0x2000-sized lookup table to get mapper pages from 8KB pages combinations, almost no slow-downs are noticeable in games (unless when loading from disk of course). Drawback is that this limits the size of the emulated ROM to 512KB.

I also have the "SCC switch emulation" working fine with an external SCC cartridge (that has to be in a different slot from the main RAM slot for performance reasons).

So the ROM-emulation mechanisms seems to work quite reliably, most of the remaining work will be clever ROM-patching.

Par Louthrax

Prophet (2435)

Portrait de Louthrax

07-02-2017, 03:28

sd_snatcher wrote:

Great news! Louthrax, you never cease to impress me!

Snatcher, your work and notes about the "Konami race condition" issue in games made me realize what the fix for disk loading would be. That was one of the thing I did not get back in the days when I made the first version of the tool (game was crashing randomly after disk loading) ! Strangely, those crashes were quite more likely on Sony's rather than on Philip's IIRC...

Special note for you Snatcher: the tool is (and probably never will be) Acid-tests compliant for performance reasons, sorry for that. But it still has those points:

  • MSX-DOS2 compatibility (paths can be used in parameters), and memory allocation is done through MSX-DOS 2 functions.
  • No memory-mapper read-back is required.
  • It works on MSX 1 machines, and 256KB RAM is enough for most of the Konami games I've tested so far (assuming the "optimized" patching to avoid unneeded combinations is applied).

Par Louthrax

Prophet (2435)

Portrait de Louthrax

07-02-2017, 03:14

hamlet wrote:

Indeed a wonderful brand!
I waiting for SofaView, SofaPlay, SofaTalk, SofaSave, SofaWord and SofaTunes to be released!

Could also be just lack of imagination Smile

Par hamlet

Scribe (4105)

Portrait de hamlet

25-02-2017, 23:12

I might need SofaRaway, a RAW converter for my dslr.

Par Louthrax

Prophet (2435)

Portrait de Louthrax

25-02-2017, 23:22

Hi Hamlet Smile
You mean RAW files generated from your reflex camera?

Par hamlet

Scribe (4105)

Portrait de hamlet

26-02-2017, 09:02

Yes, would´t it be wonderfull to connect the camera cf card to a IDE/CF and load the images directly to the MSX?
Don´t have to be proprietary .raw files, but smaller .jpgs would be ok.

Page 3/5
1 | 2 | | 4 | 5