"Weird ROMs" launching

Страница 4/14
1 | 2 | 3 | | 5 | 6 | 7 | 8 | 9

By NYYRIKKI

Enlighted (5390)

Аватар пользователя NYYRIKKI

12-01-2016, 14:28

gdx wrote:

The problem with Ninja Savior and ODO loader is different. This game works with MMM2ROM.

So this is a mirroring / automatic selection of correct OE problem?

By Ramones

Champion (264)

Аватар пользователя Ramones

12-01-2016, 14:53

mars2000you wrote:

We have a recent example with the game released by Relevo Videogames for MSXdev'15 : Ninja Savior, a 16 kb ROM. This ROM can't be runned with the ODO loader, although conceived for especially all 16 kb roms.

ODO has special check to prevent you to use ODO, Mars, because I think you don't need to use ODO in your emulator, right?
Face

I'm always thinking in your well-being. Wink

By mars2000you

Enlighted (5513)

Аватар пользователя mars2000you

12-01-2016, 15:02

Ramones wrote:
mars2000you wrote:

We have a recent example with the game released by Relevo Videogames for MSXdev'15 : Ninja Savior, a 16 kb ROM. This ROM can't be runned with the ODO loader, although conceived for especially all 16 kb roms.

ODO has special check to prevent you to use ODO, Mars, because I think you don't need to use ODO in your emulator, right?
Face

I'm always thinking in your well-being. Wink

FYI, I never use ODO (not even for check the problem with this game), but I've seen several MSX fans, who use real machines as you like it Wink , complain about incompatibility of ODO loader with this game. So, it means that ODO is not perfect, but I guess you will work on a new improved version. Smile

By Ramones

Champion (264)

Аватар пользователя Ramones

12-01-2016, 16:12

mars2000you wrote:

FYI, I never use ODO (not even for check the problem with this game), but I've seen several MSX fans, who use real machines as you like it Wink , complain about incompatibility of ODO loader with this game. So, it means that ODO is not perfect, but I guess you will work on a new improved version. Smile

Ains... Yes... ODO is not perfect because IT'S FREE!! Smile I thought free soft could be imperfect. Smile

Well.. You should to inform better before to write your arguments. ODO load and run perfectly Ninja Saviour. Please, hold CTRL key while the game is loading. You can to read this in the manual. (CTRL forces warm reset before run the game).

About is or not ODO problem... Maybe... The game load stack pointer with HIMEM value. I think if your ROM does not use disk should initialize the stack pointer with #F380. Of course, I dont want a discussion about this. IMHO, of course.

The game does not check if has enough free ram to stack and vars (initializing the stack pointer with HIMEM value) and the game overwrite the stack handling the vars, then the game hangs. Why? Because HIMEM at boot is, usually, #F380 but if you loads the game with ODO (DOS2, DOS1) this value is different. (smaller)

So...

a) ODO can't load the game without reset, and as you know (now) has a special key to do it.

b) Ninja Saviour does not check if has enought free RAM and has a very debatable stack pointer initialization.

Now you can to judge if is really a ODO problem or Ninja Saviour problem.

Anyway, I think people can to play Ninja Savior with other ROM loaders (like gdx loader), with megaflashxxx and OPF, with SofaRun, etc.

By mars2000you

Enlighted (5513)

Аватар пользователя mars2000you

12-01-2016, 15:59

Ramones, I think the users of real machines (or even emulators) will appreciate your explanations. It seems indeed to be more a Ninja Saviour problem than an ODO problem ... (but you had teased me, isn'it ???!!! LOL! )

Btw, even commercial (and therefore non-free) games can be not perfect, just think about the problems found with some Konami games for example Wink

By Guillian

Prophet (3231)

Аватар пользователя Guillian

12-01-2016, 16:37

gdx wrote:

I am not saying that my method is theoretically perfect but it can execute 100% of existing Roms.
Your previous example does not seem appropriate to me. Please make this ROM for I understand your explanation.

Here it is. Just a quick and dirty ROM test. Please post the result.

By gdx

Prophet (3042)

Аватар пользователя gdx

13-01-2016, 00:37

Your test Rom displays a cursor and if I press a button Beep sound occurs.

There are two simple ways to go on default my method: Make a 32K Rom with an adresse between 4001h~7FFFh on the banks 0 and 1, or make a 32K Rom with an adresse between 8000h~BFFFh on bank 0 and 1. I did not find this type of ROM. If that were the case, I should have done something more evolved or at worst add an option to manually select the target bank for 32K ROM.

By Guillian

Prophet (3231)

Аватар пользователя Guillian

13-01-2016, 09:04

gdx wrote:

Your test Rom displays a cursor and if I press a button Beep sound occurs.

According to your explanation, that is not right:

gdx wrote:

My method for 32 KB Roms is :
...
If the adresse from first header is between 4000h~7FFFh the rom is inevitably placed between on banks 1 and 2 with mirror of bank 1 on bank 3 and mirror of bank 2 on bank 0.

Anyway, whatever the answers is, it can be right or wrong, since you can't know where the ROM is located.

gdx wrote:

I did not find this type of ROM. If that were the case, I should have done something more evolved or at worst add an option to manually select the target bank for 32K ROM.

Then we agree in that it is not possible to know where the ROM is located. (^__^)

By Bastiaan

Champion (332)

Аватар пользователя Bastiaan

13-01-2016, 12:50

Does above informative an interesting discussion mean we will soon have a new, smart, compact ROM-loader integrated in SofaRun, and small enough to be integrated on the romdisk.dsk of MegaFlashROM SCC+ SD? Running Naked in a Field of Flowers

Or am I jumping to conclusions? Tongue

By gdx

Prophet (3042)

Аватар пользователя gdx

21-01-2016, 11:49

Guillian,

I analysed your test Rom. The made Rom is diffent with your previous explanation. It have two header like as:

41 42 52 41 43 41 44 41 42 52 41 20 50 41 54 41

41 42 10 40 00 00 00 00 00 00 00 00 00 00 00 00

1/ On a real ROM placed on bank 2 and 3. It call at 4015h: It jump out of ROM at 4015h. It cannot works.

2/ If your Rom is placed on bank 1 and 2. It call at 4015h: JP 0152h jump anywhere into Main-ROM. It cannot works.

3/ If your Rom is placed on bank 0 and 1. It call at 4015h into second bank of you ROM. Here is C3 52 41. This jump on herself. This configuration is the only one that can work on real cartridge but any rom is use this configuration.

Rom2MMM select the second configuration by default because the two other are rare and these can predicted with the header(s) for existant Roms.

Until today I am right my method can execute all Roms. It is based only on header and file size.
Someday if a person wants do a Rom not supported by loaders I advise a other method more efficient like the method used for "INK - Exxon Surfing" because otherwise a simple update will do work the Rom.

Страница 4/14
1 | 2 | 3 | | 5 | 6 | 7 | 8 | 9