Asking for the cooperation from MSX Software developers

Page 8/9
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9

By sd_snatcher

Prophet (3511)

sd_snatcher's picture

13-08-2015, 22:44

Grauw wrote:

Seems like a nice idea right? Maximum amount of RAM and all tones available, while not breaking compatibility with existing software. After use, software can invoke the BIOS to restore the memory to initial state before returning to the OS.

Hey, I really liked this idea! An ASCII16 mapper would have to be included in the MSX-Audio BIOS circuit for the OPL4 and the YRW-801 ROM would have to be compressed to fit there.

I'm only worried about the 27 seconds (on R800!) needed to load the ROM into the Wavetable RAM. Would it be loaded on every boot, or only when the user issued some CALL LOADYRW801 command?

By hit9918

Prophet (2923)

hit9918's picture

13-08-2015, 23:41

The idea that there is a problem of 9990 being harder to program, forget this idea.
There are no 9990 games for the same reason that there are no 9958 games, even when 9958 is EASIER to code than 9938.

The sprites of a dual-9958 are totaly crap compared to a single 9990.
The blitters of a dual-9958 running in parallel are totaly crap compared to a single 9990.

By Grauw

Ascended (10604)

Grauw's picture

14-08-2015, 00:01

sd_snatcher wrote:

I'm only worried about the 27 seconds (on R800!) needed to load the ROM into the Wavetable RAM. Would it be loaded on every boot, or only when the user issued some CALL LOADYRW801 command?

I was hoping it would be a bit faster… Smile

This asks for some number crunching. On Z80 OUTI is 18 cycles, so transfer of 2 MB needs 37748736 cycles, divided by 3579545 MHz is 10.5 seconds. On R800 OUTI from external memory takes 7 or 8 bus cycles, times 2M divided by 3.58 MHz is 4.7 seconds. Those seem more reasonable times, especially if you show a nice progress indicator (though perhaps still long enough to warrant a boot key).

How do you arrive at 27 seconds on R800? Are you checking the status register after every write? That’s not necessary for OPL4 memory writes, because the required wait for memory writes is only 0.83µs, less than 3 bus cycles. Bus I/O alone takes 3 cycles already, so it can never be accessed too fast. Even on non-standard higher bus speeds, no CPU can output that fast, not even a hypothetical 21.5 MHz Z80 with unthrottled bus.

By hit9918

Prophet (2923)

hit9918's picture

13-08-2015, 23:55

I heard one cannot upload while audio DMA is playing? like, play a wav from disk is not possible?

By Grauw

Ascended (10604)

Grauw's picture

13-08-2015, 23:59

True, yes. See the wave register 02H in the application manual (page 14).

By tvalenca

Paladin (747)

tvalenca's picture

14-08-2015, 00:16

Grauw wrote:

p.s. Actually P1 patterns are stored in exactly the same layout as a SCREEN 5 image!

WOW! a faster Screen5! How cool is that?

sd_snatcher wrote:
Grauw wrote:

Seems like a nice idea right? Maximum amount of RAM and all tones available, while not breaking compatibility with existing software. After use, software can invoke the BIOS to restore the memory to initial state before returning to the OS.

Hey, I really liked this idea! An ASCII16 mapper would have to be included in the MSX-Audio BIOS circuit for the OPL4 and the YRW-801 ROM would have to be compressed to fit there.

I'm only worried about the 27 seconds (on R800!) needed to load the ROM into the Wavetable RAM. Would it be loaded on every boot, or only when the user issued some CALL LOADYRW801 command?

Well, this reminds me of another idea I had. you can have both YRW801 and SRAM at the same time on cartridge. When you need to replace YRM801, you just do a bankswitch operation, like on MegaRAM or Memory mapper, replacing YRM801 with a 4MB SRAM bank. Not that complicated to do, but will require a few components.

hit9918 wrote:

The idea that there is a problem of 9990 being harder to program, forget this idea.
There are no 9990 games for the same reason that there are no 9958 games, even when 9958 is EASIER to code than 9938.

The sprites of a dual-9958 are totaly crap compared to a single 9990.
The blitters of a dual-9958 running in parallel are totaly crap compared to a single 9990.

so, how do we convince people to code for V9990???

By Grauw

Ascended (10604)

Grauw's picture

14-08-2015, 00:19

Talking about it is a good start… I already felt a little inspiration from this discussion, who knows Smile.

By tvalenca

Paladin (747)

tvalenca's picture

14-08-2015, 00:25

Grauw wrote:

Talking about it is a good start… I already felt a little inspiration from this discussion, who knows Smile.

Count on me for that! Big smile
I may be worse in having "what to code for" ideas than my coding habilities... But feels good to know that I can help!

By sd_snatcher

Prophet (3511)

sd_snatcher's picture

14-08-2015, 01:22

@Grauw

I was thinking that compression would be needed. But in fact the max size of an ASCII16 megarom is 4MB (256 pages of 16KB), so the YRW-801 ROM won't have to be compressed to fit there. But a huge AM29F032 will be required.

Anyway, as you mentioned, the 10.5s it takes to load the uncompressed ROM on Z80 is quite long. Specially if you're a developer and are having to reboot the machine constantly. Then that time would look like an eternity.

But your idea of a progress indicator and a key to abort the upload seems enough. The CALL LOADYRW801 could be used later if the user aborted the boot upload, and also to reload the YRW-801 ROM after some program overwrote its contents and quit without reloading it.

I could even provide a BIOS call for programs to easily reload the YRW-801 ROM before quitting. This way each game won't have to carry the payload of this 2MB ROM within themselves.

By Grauw

Ascended (10604)

Grauw's picture

14-08-2015, 01:43

Yeah I was thinking you should definitely have a BIOS call for it, additionally a CALL LOADYRW801 and an equivalent .COM executable would be good too.

Another idea, on boot you could do some kind of “fast check” before copying the ROM, e.g. test if the wave table and some semi-random sample data has changed, and skip the copy if it hasn’t. It would speed things up after a reset, maybe even after a power off depending on the degradation time of the SRAM (if it’s anything like a Konami Sound Cartridge… Wink).

Page 8/9
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9