News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Converting a game to ROM - and LOTS of ROM files inside!

Started by FRAGKI-2012, 00:30, 28 March 13

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

mr_lou

Quote from: tastefulmrship on 20:08, 25 September 13Well, I AM now unemployed... (for four days)... so I have plenty of time to go through most of 1984 and the beginning of 1985.

Sorry to hear you lost your job.
My offer for the 2 euro pr. game still stands (for the games I request - not for all games you convert).
I've lost overview though. But I think you basically converted all except 2 or 3 from my list, of the ones I have so far. And it's great!  :)
Just PM me your paypal address - and then convert more for me.  :D

mr_lou

Small overview I just tried to put together.

My wish-list
Dead on Time
Radzone
Spindizzy
Who Dares Wins II
Fruity Frank - done by ralferoo
Astro Attack - done by tastefulmrship
Donkey Kong - done by tastefulmrship
Killer Gorilla - done by tastefulmrship
Thrust - done by tastefulmrship
Tempest - done by tastefulmrship
Boulder Dash - done by tastefulmrship
Westbank - Done by MiguelSky


Later suggestions
Don't Panic
Zorro
Wriggler (Romantic Robot)
Collapse
Super Sleuth
Nuclear Heist
Street Machine
Atlantis
5th Axis
Frostbyte
Kungfu Master
Light Force
Star firebirds - done by Axelay
Gauntlet - done by tastefulmrship
Bruce Lee - done by tastefulmrship
Gilligans Gold - done by tastefulmrship
Tapper - done by tastefulmrship


Not requested by me
Hunchback - done by tastefulmrship
Defend or Die - done by arnoldemu
Manic Miner - done by tastefulmrship
Mutant Monty - done by tastefulmrship
Space Mania - done by tastefulmrship
Roland goes Digging - done by tastefulmrship
Classic Invaders - done by tastefulmrship
Trashman - done by tastefulmrship
Punchy - done by tastefulmrship
Lab Escape - done by tastefulmrship
Home Runner - done by tastefulmrship
Knightlore - done by MiguelSky
Ghouls - done by tastefulmrship
Anarchy - done by Axelay
Classic Muncher - done by TFM
Classic Axiens - done by TFM



tastefulmrship

#152
Quote from: mr_lou on 20:40, 25 September 13
Sorry to hear you lost your job.
I wouldn't worry too much about my current plight; I start my new job at 08:00 on Monday morning. It's really not a problem!

Anyway, have a quick game of |FIREANT to keep you amused. (I'm not sure this one's 100% perfect, it loads between 0200 and AB18 which is well into ROM territory and I'm not sure the compression routine captured everything. Any issues with it, then please delete it from any records)




EDIT: As a general response to your large list of games above; all of the games I personally haven't done won't fit on 1 ROM, so I'd prefer to get the 1 ROM games done first, then look into multi-ROMs later.

EDIT: And, in response to TFM's suggestion of using SOFTBRENNER to create 2 ROMs; I'd personally prefer to do it myself in assembler (thanks to arnoldemu), so I can have a vague understanding of what it's doing and why.

EDIT: Ok, vision is a little impaired... will HOUSE OF |USHER work on your emulator/real hardware? I really don't fecking know! It's a lottery! Good luck!

EDIT: Seeing as I did a ROM version SPACE MANIA, here's the retail original... KARL'S TREASURE HUNT. |KARLS runs this one. Hopefully!

EDIT: I think I'm gonna be sick... no... it's just gas! Panic over! Ok, here's KONG STRIKES BACK! |KONGBACK runs this little beauty. Nice mixed MODE and rasters in this 1985 classic!

ralferoo

#153
FWIW, this recent spate of conversions is making me contemplating whether the 512KB flash ROM on my FPGA board (enough for 32 ROMs) is enough - I might look at the 4MB flash ROM instead which would support 256 ROMs.  ;D

EDIT: yes, I know the CPC only supports 252 expansion ROMs, but 256 would let me have the firmware and BASIC ROMs also in the chip, with some for "spare".

mr_lou

Quote from: tastefulmrship on 21:59, 25 September 13As a general response to your large list of games above; all of the games I personally haven't done won't fit on 1 ROM, so I'd prefer to get the 1 ROM games done first, then look into multi-ROMs later.

I have no idea or even a sense of how many ROM files whatever game require. I just list interesting titles.  :)

tastefulmrship

#155
Quote from: mr_lou on 07:29, 26 September 13
I have no idea or even a sense of how many ROM files whatever game require. I just list interesting titles.  :)
That's fair enough.



Ok, going through that list again, I'll see which ones are possible in 1 ROM and get them done before I continue with my 1984 titles.

|ATLANTIS is first. (Never played this game back in the day, but it's a real corker! I love it)
DON'T |PANIC is the other one I can do from that list (all the others are over 16K packed... except for NUCLEAR HEIST, which is BASIC & M/Code)

Bryce

Ok, all uploaded again! Current count: 40 Games, 46 ROMs.

Link: ROM List - CPCWiki

Bryce.

tastefulmrship

Quote from: Bryce on 10:41, 26 September 13
Ok, all uploaded again! Current count: 40 Games, 46 ROMs.

Link: ROM List - CPCWiki
Just for completeness; I didn't convert ANARCHY. I wish I had, though, 'cos I love that game. The music is great (as are all of JDR's tunes)

Bryce


mr_lou

Axelay converted Anarchy (as listed in the top post of this page)

tastefulmrship

#160
QUICK (related) QUESTION: (I'm converting the Centipede clone, WRIGGLER by Blaby)


How do you create a repeated ENT command in assembly? (I already know it's Firmware CALL &BCBF)

For example; this ENT command

10 ENT -1,10,10,1,10,-10,1
20 SOUND 1,10,100,15,,1


sounds infinitely better than this ENT command

10 ENT 1,10,10,1,10,-10,1
20 SOUND 1,10,100,15,,1


However, I cannot seem to create a repeated ENT command in assembly. The game itself uses a lot of them to create the SFX.
Here's an example of the code I'm using;

        ld    b,0
        ld    hl,ENTStart
.ENTLoop    ld    a,(hl)
        inc    hl
        ld    c,(hl)
        push    bc
        inc    hl
        push    af
        push    hl
        call    &bcbf
        pop    hl
        pop    af
        pop    bc
        add    hl,bc
        inc    a
        cp    &0b
        jr    nz,ENTLoop
        ret

.ENTStart    defb    1,04
        defb    1,5,40,1
        defb        02,04
        defb    1,50,-1,10
        defb    3,07
        defb    2,3,-2,2,3,2,2
        defb    4,13
        defb    4,3,-2,2,3,2,2,10,-2,2,3,2,2
        defb        05,07
        defb    2,4,-8,1,5,1,20
        defb    6,13
        defb    4,2,-2,2,2,5,2,2,-2,2,2,2,2
        defb    7,13
        defb    4,10,-2,1,5,2,1,10,-3,1,5,3,1
        defb        08,04
        defb    1,100,-50,1
        defb    9,07
        defb    2,6,-5,1,15,5,1
        defb    10,07
        defb    2,1,-20,6,1,20,6


The data lines that are "pushed in" (and have a leading 0) are the standard ENT n commands without the minus sign.
I can't see how to define it as repeated in the Firmware manual. !!HELP!!




EDIT: ELECTRO |FREDDY... while you wait!

arnoldemu

Quote from: tastefulmrship on 11:53, 26 September 13
How do you create a repeated ENT command in assembly? (I already know it's Firmware CALL &BCBF)
Not sure, but you could test it from basic, assemble to &4000, then call &4000.

basic dissassemly seems to indicate you set bit 7 of the "number of parts" (C in your code).

Your code confuses me.

So the env, you pass the number in A, then HL points to the data.
first byte is number of "parts". Each part is then 3 bytes each.

Is this how you have setup your data?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

ralferoo

Quote from: tastefulmrship on 11:53, 26 September 13
QUICK (related) QUESTION: (I'm converting the Centipede clone, WRIGGLER by Blaby)

How do you create a repeated ENT command in assembly? (I already know it's Firmware CALL &BCBF)
I had to learn this when I was converting Fruity Frank. Add &80 to the 1st byte (which is number of sections).

Also, you'll discover that you can't use any area that's covered by either ROM, so you need to copy the data to middle RAM first. You can look at my fruity frank source if you like...

tastefulmrship

#163
Quote from: ralferoo on 13:07, 26 September 13
I had to learn this when I was converting Fruity Frank. Add &80 to the 1st byte (which is number of sections).
Ah! I was trying to add &80 to the ENT number... I didn't even think of doing it to the sections byte! Nice one!

Quote from: arnoldemu on 13:01, 26 September 13
Your code confuses me.
Yeah, welcome to my "coding" style! (sorry; it's always such a mess... but somehow it usually works!)

I was trying to add &80 to the ENT number... as well as using negative numbers (#FE, #FD etc) to see if it repeated the tone.
The first number is the ENT number, the second is the amount to increase HL to get to the next ENT section (as #BCBF adds 16 to HL on return), then the data block underneath.

It'll be a lot easily now that I know just to change the sections number, so that first number is redundant!




EDIT: |WRIGGLER by Blaby Software. I didn't realise it had a title screen and demo mode; quite a lot fit into 24k.
EDIT: |CHOPPER SQUAD by Interceptor Software. Never really liked it, but I did own it, so it gets added to the collection.

Axelay

Quote from: mr_lou on 21:14, 25 September 13
My wish-list
Dead on Time


I havent done anything with Dead on Time yet as it's a two ROM job.  I havent had time yet to work out how I'm going to handle the aspect of how the first ROM will find the second.


On the other hand, |FROSTBYTE does fit into one ROM!


redbox

Quote from: Axelay on 15:08, 26 September 13
I havent done anything with Dead on Time yet as it's a two ROM job.  I havent had time yet to work out how I'm going to handle the aspect of how the first ROM will find the second.

I don't understand why the principle of two, three or even more ROMs should be tricky.

I was thinking that you have a 'normal' first ROM with RSXs etc and then just mark the second, third ROMs etc as background ROMs (i.e. start them with a 2).  The system then ignores these ROMs on boot.

You then copy a routine into RAM from the first ROM that does a ROM walk (from 31 to 0) looking for your background ROMs, i.e. starting with a 2 and then a custom string you can search for.

For example, a header for the ROMs would just need to be:


org    &c000

defb    2                        ; background ROM
defb    "Dead on Time ROM 2"     ; custom string

; rest of ROM data


tastefulmrship

#166
Quote from: Axelay on 15:08, 26 September 13
On the other hand, |FROSTBYTE does fit into one ROM!
Was that using Exomizer? It didn't fit using BITBuster.


|BLAGGER, however, does! ^_^




EDIT: I spy a programmer war below... I think I'll dump ROLAND |AHOY here instead of interrupting their "discussion". ^_^
EDIT: Ok, still quiet on the Western Front, but I ain't taking no chances! |SQUAREBASH starts ROLAND GOES SQUARE BASHING.
EDIT: Another Roland classic... FRED or ROLAND ON THE |ROPES, depending on where you come from! Anyway, it's still a corker!
EDIT: Wow, this one was really difficult to convert. Two LDIRs and a JP later and |SPANNERMAN is a goer!

mr_lou

It becomes more and more apparent that Bryce will need to invent the Super Mega Monster Flash, with room for 252 flashable ROMs.  :)

arnoldemu

Why? Use

kl_side_pchl equ &0013

call it from your main rom, with a value between 0 and 3 in the top 2 bits. It automatically calls the appropiate rom based on the current rom number. You don't even need to know which rom number your main rom is.
It does require that all other roms are inserted side by side and are marked as extension roms.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

redbox

Quote from: arnoldemu on 15:58, 26 September 13
It does require that all other roms are inserted side by side and are marked as extension roms.

Exactly, and being side by side is a problem because you're restricted to slots 0-16 (and even worse 0-7 on the 464).

Where as using my method you could have one 'launcher' ROM containing all the RSXs, decompression routines etc in a normal slot and then all the game ROMs etc anywhere you like (and up to slot 31) without patching the OS or anything.

TFM

Quote from: Axelay on 15:08, 26 September 13

I havent done anything with Dead on Time yet as it's a two ROM job.  I havent had time yet to work out how I'm going to handle the aspect of how the first ROM will find the second.



Compress it to less then 32 KB, then use Softbrenner, it handles two ROMs.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Axelay

Quote from: tastefulmrship on 15:44, 26 September 13
Was that using Exomizer? It didn't fit using BITBuster.



Yep, Exomizer.  I always go with Exomizer first, and have only used Bitbuster the once with Super EG, since Exomizer took longer to decompress that than it did to load uncompressed!  :laugh:


Quote from: redbox on 15:39, 26 September 13
I don't understand why the principle of two, three or even more ROMs should be tricky.



Oh, I was not suggesting it was tricky.  I was saying I've only just barely read up enough on ROM handling to manage the 16K ROM compo!   :) 

 


Quote from: TFM on 17:14, 26 September 13

Compress it to less then 32 KB, then use Softbrenner, it handles two ROMs.


I think tastefulmrship has already said much the same thing, but I expect it's straight forward to do, I just need to read up on the details, so I dont want to use a tool to do it for me.

ralferoo

Quote from: redbox on 15:39, 26 September 13
I was thinking that you have a 'normal' first ROM with RSXs etc and then just mark the second, third ROMs etc as background ROMs (i.e. start them with a 2).  The system then ignores these ROMs on boot.

You then copy a routine into RAM from the first ROM that does a ROM walk (from 31 to 0) looking for your background ROMs, i.e. starting with a 2 and then a custom string you can search for.
Yes, definitely a good idea. It'd be nice to keep going beyond 32 ROMs though, just in case people have bigger ROM boards...

tastefulmrship

#173
Next batch of ROMs...
(I can't be arsed creating lots of posts for this stuff... I'm just gonna fill this one instead!)


EDIT: Although it's nice to have my name against the ROMs done in the ROM List on CPCWiki, but wouldn't it be a better idea to have the bar command in the comments field, instead? Some of them are not easy to work out & none of them have an initialisation message.




1. |AHHH by CRL.

Bryce

Once again, all available on the ROM List page :)

Bryce - Tastefulmrships official Wiki uploader.

Powered by SMFPacks Menu Editor Mod