How to deal with roms >32KB's < 64KB's outside the 0x4000..0xBFFF typical area (without using megarom mappers)

Page 2/2
1 |

By Grauw

Ascended (8744)

Grauw's picture

20-02-2020, 08:39

You don't need to invent your own compression, take a look at Pletter or Bitbuster or something like it, they compress pretty well and have just a tiny decompression routine and little RAM requirement.

By friguron

Expert (113)

friguron's picture

20-02-2020, 11:25

Oh, I know I shouldn't reinvent wheels, but this is one of these strange situations where part of the fun is learning Z80 asm programming by myself. This can only be achieved (re)inventing things.
If I copy + paste some other people's code I wouldn't learn as much as I want to.

Thanks anyway!

By Wlcracks

Champion (411)

Wlcracks's picture

20-02-2020, 14:02

Other option would be
- build you own subs that you need (or rip them from the bios)
- put your own interrupt rst38
- switch everything to ram.
- Do acid tests if its confirm.

Remember its a rom. And if a rom startsup you have a lot of flexibility.
(except if your need disk access, forget the whole story)

By santiontanon

Paladin (873)

santiontanon's picture

20-02-2020, 21:00

Totally understand the "I want to do everything myself" Wink

About compression though, some of these algorithms are not trivial. You can easily code up an RLE decompression routine in a few lines of assembler. But if you want serious space savings, you need to go for something LZW-based or better, which is a bit trickier. So, my advise is:
1) do it yourself at first, just to have fun (maybe using RLE)
2) but in your next project, just use existing work. For example, look at the plot in the readme file of this github project for a comparison of existing Z80 compressions algorithms (and also see how many do exist already!): https://github.com/emmanuel-marty/lzsa

Pletter is my "go to" compression algorithm (even if I've tried several others), as it has decent compression ratio, and is very fast decompressing. Exomizer compresses a bit more, but it's very slow decompressing... (I explained a few more tricks I use in some of my games here, if you are interested: http://santiontanon.blogspot.com/2019/02/space-saving-techni... )

By pgimeno

Expert (72)

pgimeno's picture

20-02-2020, 22:03

Sorry if I'm saying something stupid, because I'm still not fully familiar with the MSX hardware, but... can't you have A15 of the ROM connected to a subslot selector?

The idea being to have 32K at 4000-BFFF in a subslot, and another 32K in the same addresses but in a different subslot.

By friguron

Expert (113)

friguron's picture

20-02-2020, 22:30

Excellent, I already had some easy variation of RLE in mind, but I might get some ideas somewhere else. I don't think I'll need to go full LZW... My current needs are not that ambitious for this project.

I just want to test myself not only against Z80 itself, but I also want to develop under a low resources generic environment. Our beloved MSX's are perfect for this. I want to struggle using my "everyday big computer real life algorithms" against it Smile

Page 2/2
1 |