Load games using MSX2CAS

ページ 1/4
| 2 | 3 | 4

By Shinobi

Master (200)

Shinobi さんの画像

26-08-2020, 03:38

I am trying to load some games to my msx ax-200 using a hacked cable, I have some notes and I wonder if anyone had the same issues:

1- Some games were loaded successfully using MSX2CAS for PC like Pitfall1 and Ninja Kun.

2- Some games were loaded to MSX and it showed Found: program name, but after Wave file finished playing, MSX shows "OK", you write List, you get OK, you write Run, you get OK.
I tried 16 Bit wav (using Caslink3), I tried Invert Waveform, it all give me just an OK on MSX Side.

3- Some games were loaded to MSX, also I get "Found: Program name" but after Wave file finishes playing, I get "Syntax Error" .. "Resume without error" ... "For without Next"

4- I could load and play some games that are even more than 35 KB successfully using Castools. So no issue with memory or cable.

5- I used Audacity to amplify the wave by 1 or 2 dBs, I got the same results mentioned above.

6- Some of the games that didn't work are like Bomberman which is 8KB, and some of the games that worked successfully is Hunchback, Pitfall, and some game with Bug Byte loader that is +35KB.

7- There is nothing wrong with WAV files generated since they were tested on emulator like openMSX, also tested on SM-X computer (Thanks to MSX2CAS coder Roberto Focosi that helped a lot).

8- I used Audacity to plot a frequency spectrum of the Wave files, they all use the same frequencies, the only difference is the amplitude of each frequency and I amplified some Wave files to be in the range of the working games wave files so that I cancel the condition that some frequencies are not recognized by MSX.

Now, what is your ideas, opinions, solutions to this issue??
Anyone with the same issue??

ログイン/登録して投稿

By hamlet

Scribe (4106)

hamlet さんの画像

26-08-2020, 08:42

We have often heard that there are output level problems with many handheld devices.
It is difficult to find the right setting. Some devices do, others don't.
Some cut hights, some compress.
You have been looking for a solution to this problem on other channels for a while now. Fact is, you are not doing anything wrong. In my eyes it is the level of the playback device.
It is certainly easier with devices like the CasDuino or a ROM loader cartridge. Of course there are costs involved in buying such a device but it also promises to be easier to use.
And more pleasant lifetime. Isn't that what we are looking for?

By Shinobi

Master (200)

Shinobi さんの画像

27-08-2020, 03:44

Let me try some tests before ending getting a RAM loader.
1- I tried MP4 device and it worked great, loaded my WORKING wav files mentioned in my post like (Pitfall, NinjaKun), loaded them successfully.

2- I tried SofaCAS to make my waves a sine wave...it worked with Pitfall and NinjaKun and didn't work with others. i.e. it gave me the same results of MSX2CAS and Caslink3

3- The one thing I am thinking is that: is MSX AX-200 with it's weird subslots (it got 32K RAM on Slot 0-0 and 32K RAM on Slot 0-2)..does it have a relation of why some games are not loaded successfully, if this is the problem, may be the coders of MSX2CAS and Caslink can work their codes to support this thing..

By hamlet

Scribe (4106)

hamlet さんの画像

27-08-2020, 11:56

Of course it can also be due to the technology of your computer, but general loading problems for the AX-200 are not known (at least I didn't heard about any (that massive)).
The easiest way would be to verify your workflow on another (working proofed) machine.
For this test setup you are surely in demand.

By Shinobi

Master (200)

Shinobi さんの画像

27-08-2020, 11:35

In genereal..when you load from tape using bload"cas:",r..where in memory does the game load??

By lintweaker

Champion (474)

lintweaker さんの画像

27-08-2020, 11:48

Shinobi wrote:

In genereal..when you load from tape using bload"cas:",r..where in memory does the game load??

That depends on the information in the header.
See:
https://www.msx.org/wiki/MSX-BASIC_file_formats

By Shinobi

Master (200)

Shinobi さんの画像

27-08-2020, 16:09

From the page you linked, I see that binary files loaded with bload is loaded between 8000 and ffff where this has no problem with my msx.
How say a 32kb game or more is loaded from cassette or msx2cas ???because as we know that not all 8000 to ffff is available..only 28815 is free for us to use

By thegeps

Paragon (1249)

thegeps さんの画像

27-08-2020, 16:54

28815 only for basic programs. Such restriction doesn't apply to binary files (the ones you bload)

By Shinobi

Master (200)

Shinobi さんの画像

27-08-2020, 17:48

Ok..so when I boot in international mode and bload a 32kb game from wave...where does this 32kb go in memory??? Does it go in 8000 to ffff???

By Wild_Penguin

Hero (644)

Wild_Penguin さんの画像

27-08-2020, 18:30

I'm not a programmer, but I've understood the issue as following (roughly):

A binary file (which is loaded straight from BASIC) can only load into those addresses which are free when BASIC is loaded at MSX boot (not on top of blocks already containing the routines, on which the program is still reliant on). After the first binary block, which will be run, has been run, the binary file can take over. That is what the ,r -parameter does; it runs the binary code, again at an address, which is specified in the header. Some loaders (loaded with load"cas:",r or just run"cas:" - these two are equivalent commands) might load several binary blocks, and in that case, usually only the last one will be run (you can list the BASIC program beforehand and see what it does).

Now, after the binary program is in charge, it can do whatever it wants. It can erase those parts of the RAM which are occupied by MSX-BASIC (and whatnot; actually, it would be more correct to say change slots), in case the program does not need them; however there might be some limitation here, for example space reserved by disk drive controllers can not be overwritten (many games insist on disabling disk drives and even print errors, requesting a reboot with SHIFT held down). I'm not sure why the disk controller reserves memory this way... maybe someone more inclined into programming and the internals of the MSX might shed a light on this with layman terms =)

The binary program might do other stuff, too, such as copy parts of the binary file elsewhere in the RAM, copy parts of itself into VRAM etc... (again: I'm not a programmer and don't know what kind of tricks are useful and commonplace, I'm talking in terms of what is possible in principle).

Some programs might use BIOS ROM (or any other memory mapped device in some other slot); i.e. change the slot for each of 0000-3FFF,4000-7FFF,8000-BFFF and C000-FFFF pages as it pleases; they should keep track of at what slot the RAM resides. But some programmers made assumptions, such as not take into account the RAM could be in subslot(s) - or just made an error in the routine, which works in most, but not all cases. This causes the errors; the program thinks it is changing the slot to RAM while it is actually not doing that (but changing to some other slot). Note: in principle this has nothing to do with the size of the program; size!="what memory addresses a program uses" !

EDIT: See: https://www.msx.org/wiki/Slots . Don't care about memory mapper information on that page, as memory mappers are a bit more complicate thing, but vast majority (=probably all) of cassette software uses only 64kb max, i.e. it does not use mappers.

However, it is quite useless to speculate much further; you could list the games which are giving problems, and there 1) either might be known problems with those games (also list the sources/MD5SUMs etc., there might be several versions floating around the net) and 2) those which do not have known problems, could be tested on another computer where the RAM is split in the same way as on the AX-200 (or, by someone else on the AX-200).

One thing which hasn't been mentioned is the universal poke (see the incompatibility page). Have you checked the games which are giving problems, for BASIC loaders which might have poke commands in them?

By Shinobi

Master (200)

Shinobi さんの画像

28-08-2020, 00:43

Actually Roberto Focosi, the guy who wrote MSX2CAS helped a lot, I sent him the WAV of 6 sample games which I had two of them only works, all of them worked for him.
In my tests I used two laptops to play wave file to MSX, and a MP4 pocket device that can play WAV, all gave me the same result when using MSX2CAS, Caslink3 or Castools for the same sample of games.
For example, the Galaxian ROM didn't work, but I found a cas version of the game with bug byte loader, an it loaded correctly and I could play it.
So my problem is not on volume or devices I use to play the WAV, I think I came to conclusion that it is in the memory layout although I am not sure since I couldn't run some 4k or 5k games while I could run some 35K game..so it is very weird issue

thanks for your explaination

ページ 1/4
| 2 | 3 | 4