Hi all, i'm tring to conver urdium rom for msx to bin,i used all classic software, but they don't woks! They don't recognise it as an msx rom! is it protected?
Login أوregister لوضع تعليقاتك
Hi all, i'm tring to conver urdium rom for msx to bin,i used all classic software, but they don't woks! They don't recognise it as an msx rom! is it protected?
why do you want to transform it into .bin ?
i want to create a cassette file! so i need to convert the .rom file, to binaries.
Please let me know if You can succeed (and how to You get there) in Your project. I'm trying to doing the same thing with baa games.
It is easier with baa games because they are bin/dat files with bas loaders, no ROMs at all.
@gdx, it would be nice to have a tape version
I feel the ROMload topic is lots specialized tools, and slot/mapper topics make 90% of the code.
I would like to improve the whole slotmapped situation. One example:
the usual two pages of code with a nested loop to search slots, replace it by one call to incslt.
be it musical cartridge or scc or RAM search.
;inc slotID to next slot/subslot incslt: call clslt : jr c,incsltexp inc a and 3 ;subslot 0 if neighbour is expanded call clslt ret incsltexp: rrca rrca or 0x3C ;PP1111SS , a carry in SS overflows to PP inc a rlca rlca call clslt ret ;dec slotID to previous slot/subslot decslt: call clslt : jr c,decsltexp dec a or 0xC ;subslot 3 if neighbour is expanded call clslt ret decsltexp: rrca rrca and 0xC3 ;PP0000SS , a carry (borrow) in SS overflows to PP dec a rlca rlca call clslt ret ;clean slotID. calculate E bit and clean undefined bits clslt: call eslt jr c,clsltexp and 3 ret clsltexp: and 15 or 128 scf ret ;calculate E bit eslt: push hl ld h,a and 3 add 0xc1 ;exptbl lo ld l,a ld a,h ld h,0xfc ;exptbl hi bit 7,(hl) jr nz,esltexp and 127 pop hl ret esltexp: or 128 scf pop hl ret
And shh.... for the mapper-reading addict I got some legal drug
mirfc equ 0xf2c7 mirfd equ 0xf2c8 mirfe equ 0xf2c9 mirff equ 0xf2ca enamapper0: ld (mirfc),a ;first write RAM mirror. interrupt-capable secquence. out (0xfc),a ret getmapper0: ld a,(mirfc) ret enamapper1: ld (mirfd),a out (0xfd),a ret getmapper1: ld a,(mirfd) ret enamapper2: ld (mirfe),a out (0xfe),a ret getmapper2: ld a,(mirfe) ret enamapper3: ld (mirff),a out (0xff),a ret getmapper3: ld a,(mirff) ret
An app running not under DOS2 must initialize
ld a,3 call enamap0 ld a,2 call enamap1 ld a,1 call enamap2 ld a,0 call enamap3
That may crash. And then it can be an early warning of issues.
Like e.g. the code thought it was sitting at 0x8000 but it was at 0xc000 with scrambeled RAM when MSX1 bios didnt initialize the mapper.
if HIMEM > mirfc then move HIMEM below mirfc. in case it is a casette system
one coding style for the entire MSX fleet, from MSX1 casette to TR
Stunt: "push the mapper" finest stuff for the mapper-reading addict
function: ld a,(mirfc) push af
Library code may need to push HL. Same way it may need to push the mapper.
But let us not forget to pop the mapper
pop af call enamap0 ret
So you call the library function, and afterwards the mapper is untouched.
Like a library call that keeps HL untouched.
"the mapper", with this coding style you can think of just one mapper. All the internal vs external mapper problem cloud disappears.
When you feel there still are multiple things... well there are multiple slots.
There is a 2D grid (subslot, mapper). Moving the mapper does slide all mapped RAM, no matter what subslot is selected.
I didn't make this up, the hardware goes like that.
The hardware to not have the mapper read issue would have been
that the MSX1 mainboard in day one had 4 mapper registers with full 8bit plus 8 additional address pins on the slots.
The coding with RAM mirror byte behaves as-if that is the case!
And it works on the most badass mappered expandered machine in the furthest subslot in interrupt!
A problem is that the casette does not have files.
It has BLOAD and ASCII. ASCII has funny end-of-file markers that can't take binary files.
An easy way is to pack the file into a bload.
But when there are .DAT files with an algorithm while loading, one needs cpu time ability like ascii with the file split into chunks.
Would need to specify a new tape file format that is like ascii but can take binaries.
As one is into that, crank up the chunk size beyond 256 bytes, like 1k.
Was something like that already done somewhere?
Abobo, the best way is to buy a flash cart (e.g. by Eric or by Manuel Pazos)
- or an Uridium cart ;-)
It's regrettable that it has no flash card within € 50.
A flash cart with a Musical Memory Mapper allow to play SG1000 Roms, many Colecovision Roms and almost all MSX games on any MSX but it costs more than € 105.
Musical Memory Mapper € 40,-
Konami Mapper Flash Cartridge € 30,-
Ascii 8 Mapper Flash Cartridge € 30,-
Ascii 16 mapper Flash Cartridge € 30,-
Oops, I confused with a Flash card interface. Currently it costs € 65 minimum.
A flash cartridge is good for some Megaroms only. The advantage is that it is used as an original cartridge.
Don't you have an account yet? Become an MSX-friend and register an account!