Quote from: FRAGKI-2012 on 01:30, 28 March 13I have some code for a "rom" filesystem.
I m wondering if is possible to convert a game to rom file and play from megarom ???
is any program to do this??
and of Corse a game bigger than a 16k with more files than one bin file and bas
is possible to write to roms in different rom address and play ??
for example to start the game from rom address 1 and continue load the from rom 2??
any information will be very helpfully!!!!
Quote from: FRAGKI-2012 on 01:30, 28 March 13Yes, of course! You can use the Softbrenner ROM for that. It has a function to integrate files into ROMs. However the maximum file size is limited to 31 KB.
I m wondering if is possible to convert a game to rom file and play from megarom ???
is any program to do this??
Quote from: Gryzor on 13:28, 29 March 13Here... start with !AXIENS
Classic Muncher on a ROM? I'm sold! How about Classic Axiens? :D
Quote from: TFM/FS on 03:57, 30 March 13Oh man! Pity it's late - will try it tomorrow. Thanks =)
Here... start with !AXIENS
Quote from: TFM/FS on 03:57, 30 March 13
Here... start with !AXIENS
Quote from: Bryce on 13:58, 10 April 13Added to the ROM List in the Wiki under Games: ROM Table - CPCWiki (http://www.cpcwiki.eu/index.php/ROM_Table#Game_ROMs)
Quote from: Bryce on 17:30, 18 September 13Does the file possibly have a header that needs to be removed?
Quote from: mr_lou on 21:49, 20 September 13- The binary program needs an auto start address.
Then all seems fine when starting, except calling the command just gives me a Ready. Nothing happens.
The file I'm testing with is the game Astro, and I tried the process twice now.
What am I missing?
Quote from: TFM on 22:52, 20 September 13
- The binary program needs an auto start address.
- When adding an RSX with SB, enable the autostart feature.
Quote from: TFM on 22:52, 20 September 13- When adding an RSX with SB, enable the autostart feature.
Quote from: TFM on 23:18, 20 September 13
If Exomizer is too complex, then give MadRams great Turbocruncher a try.
Quote from: TFM on 00:25, 21 September 13
Yes, and therefore use TurboCruncher. It creates an output file which will self-decompress. Search for CPCT or so. I have the dsk at home, but not here at work. It's the most efficient cruncher on CPC (but not on PC, there it's exomizer).
Quote from: TFM on 00:25, 21 September 13Can you post the program, which does not work on as DSK here? Then I can check the problem.
Quote from: mr_lou on 19:55, 21 September 13The problem is that the .BIN file that |SB spits out has a checksum error. That BASIC program that TFM gave you will correct the checksum problem, making the game work.
[Stuff that means nothing really]
10 LOAD "XXXXXX.ROM",&C000
20 CALL &C009
Quote from: tastefulmrship on 21:10, 21 September 13The problem is that the .BIN file that |SB spits out has a checksum error. That BASIC program that TFM gave you will correct the checksum problem, making the game work.
Try running any of my (or your) other .ROM/.BIN files through that "patcher" and I think you'll find they work. Any .ROM/.BIN file that works when you use T&J's ROM loader (from the 16k ROM compo thread)
Quote from: tastefulmrship on 21:10, 21 September 13And as for Exomizer, you need the Z80 depacker, this is why TFM told you to use a CPC packer that autoruns. It's far easier to use than going through the assembly program... however, as I mentioned, it's pretty easy to do and I recommend grabbing the depacker routines (from Metalbrain for Exomizer or T&J for BITBuster) and using them instead.
Quote from: TFM on 21:44, 21 September 13
@Lou: SB can also process BASIC programs. So insdead of the LOAD command in the BASIC program, you use an RSX which calls the binary, which is also in the ROM.
Lets say the BASIC loader 'BAD' will load a binary like 'TASTE', then you put that binary 'TASTE' as RSX in the ROM and you change the BASIC loader from 'LOAD"TASTE" to !TASTE. Then put that new BASIC loader into the ROM.
Quote from: Bryce on 22:55, 21 September 13
Post the two BIN files and I will tell you why.
Quote from: Bryce on 23:26, 21 September 13
Ok, there are two differences in the files (other than the checksum):
At address &01E1 your file has the value &82, the working file has &83.
The same at &0304, yours: &82, other &83.
What is this value and what sets it?
Quote from: tastefulmrship on 19:00, 22 September 13What is the actual wrongness in this mess?
Quote from: mr_lou on 19:35, 22 September 13
....this is where I should not post something like: "I thought you said anyone can do it?", right? Right... so I won't do that. ;)
Quote
@mr_lou; I've got Killer Gorilla packed and ready, but it's so simple to do I don't know wh you can't do it. I'm no CPCist and I can do it, anyone can do it!
Quote
I meant it's easy to pack and depack .bin files with Exomizer/BITBuster... anyone can do that! Fitting a 64k game into 16k/32k is the key!
Quote from: tastefulmrship on 19:00, 22 September 13
Ok, I've built a ROM from Octoate's instructions and it still isn't working. (Both .ROM file and .ASM attached)
When the GORILLA.ROM file is loaded ( LOAD"GORILLA.ROM",&C000 : CALL &C009 ) it works fine.
When the ROM is installed and you type |KG, the sprites are corrupt and it fails to play.
I've checked the data and when the game starts ( JP &4100 ), both create the same data in memory. (ie I've tried both methods and checked via the debugger in WinAPE).
What is the actual wrongness in this mess?
Quote from: mr_lou on 19:35, 22 September 13
....this is where I should not post something like: "I thought you said anyone can do it?", right? Right... so I won't do that. ;)
Welcome to the Twilight Zone btw.
Quote from: tastefulmrship on 19:00, 22 September 13
What is the actual wrongness in this mess?
org &a000
ld bc,&7f8d ; disable ROMs
out (c),c
jp &4100 ; start game
Quote from: arnoldemu on 20:21, 22 September 13
I agree with Mr.Lou not everyone can make a Rom. For programmers it's fairly easy. For non programmers I would say it is restricted to single files which can be run direct and which fit into 16k.
Quote from: TFM on 20:50, 22 September 13
Ah no. It's easy. You just need an unprotected game:
- If you have a BASIC loader, replace all LOAD commands by RSX commands (corresponding binaries get this RSX name from SB).
- Use Exomizer for Crunching (nice step by step manual in the CPCWiki).
- Use SB to put it into a ROM (very easy[nb]If you don't speak German, then it's time to learn this wonderful descriptive language[/nb]). SB can process files up to 31 KB. So you will get any game up to 64 KB in ROM (crunched of course).
- Use a simple BASIC program to adapt the checksum
- Use ManageDSK to get ROM from DSK to emulator, if you don't have the real machine.
Quote from: tastefulmrship on 20:57, 22 September 13
Ok, it works! Thanks to the programmers, this Irish pretender has finally done it!
-yay-
Quote from: tastefulmrship on 20:57, 22 September 13EDIT: However, mr_lou, once you've got the compression/decompression worked out, the rest is quite straight forward.
Quote from: mr_lou on 21:01, 22 September 13Ok, post here which game that was and I'll try and see if my "code" (ie Octoate, redbox & arnoldemu's code) will be able to convert it to a ROM.
Hm, not when I tried. Before experimenting with Exomizer I tried a few games that didn't require compression. Didn't succeed in any of those either.
That's where Bryce said it was because a single byte from different. I have no clue why.
Quote
My preference is that nothing is displayed at boot though. Because considering all the games I plan on installing in ROM, I'll have a wall of text then.
I'm also picky enough to not want KG as the starting command. I'd want |GORILLA as starting command.
Quote from: tastefulmrship on 21:05, 22 September 13Ok, post here which game that was and I'll try and see if my "code" (ie Octoate, redbox & arnoldemu's code) will be able to convert it to a ROM.
Quote from: tastefulmrship on 21:05, 22 September 13Fair enough. I'll change the parameters after I've had a quick ruby and post it once done. (Unless someone else has already done it in that time, of course)
Quote from: mr_lou on 21:12, 22 September 13It won't take a minute to do... done! ^_^
Really? That's rather tasteful of you... :)
Quote from: tastefulmrship on 21:34, 22 September 13
It won't take a minute to do... done! ^_^
EDIT: And I've just "patched" the ROLAND GOES DIGGING ROM as well! Enjoy! ^_^
Quote from: mr_lou on 22:42, 22 September 13I forgot to mention |DIGGING for ROLAND GOES DIGGING.
Awesome! And the right start commands for both too. Thanks a lot. PM me your paypal for the 4 euros. :)
Want to convert more? Let me know. 2 euro per game.
Quote from: mr_lou on 22:42, 22 September 13
What about the plus version of Jet Set Willy? Possible?
ftp://ftp.nvg.ntnu.no/pub/cpc/games/arcade/jetsetwp.zip
Quote from: mr_lou on 18:29, 18 September 13As you're using linux:
I don't know about headers. But I do see that the file is 16.1kb rather than 16.0kb like the other roms...
How do I remove this bastard header git?
dd if=file_with_header.bin of=file_without_header.bin bs=128 skip=1
Quote from: mr_lou on 08:34, 23 September 13It was a bit of a git as the BASIC loader sets up all the envelopes the game requires and every noise the game makes sounds awful if this isn't done (or if the system is reset after doing MC_BOOT_PROGRAM)...
And ralferoo converted Fruity Frank! (attached here)
Quote from: mr_lou on 10:29, 23 September 13I haven't looked at any yet, I can do that later today in my lunch break.
I mailed a list of games to arnoldemu. Don't know if he's had a chance to look at them yet. So don't want to post the list here before I've heard from him.
I've asked him to paste the list here, for the games he hasn't looked at yet.
3c3
< 00000020 55 49 54 d9 46 c6 c5 00 00 46 72 75 69 74 79 20 |UIT.F....Fruity |
---
> 00000020 55 49 54 d9 46 c6 c5 00 20 46 72 75 69 74 79 20 |UIT.F... Fruity |
Quote from: ralferoo on 10:56, 23 September 13I understand where he is comming from with this. Loads of games = loads of messages.
Oh, I forgot. Fruity Frank doesn't display a startup message because mr_lou didn't want one.
Quote from: arnoldemu on 10:52, 23 September 13
ftp://ftp.nvg.ntnu.no/pub/cpc/games/arcade/deadtime.zip (ftp://ftp.nvg.ntnu.no/pub/cpc/games/arcade/deadtime.zip) |dot (there's probably a more updated version elsewhere online?)
Quote from: Axelay on 12:09, 23 September 13These are mr_lou's words.
How do you mean more updated?
Quote from: tastefulmrship on 12:25, 23 September 13464 only initialise rom 0 to 7 while 6128 goes up to 15 (and 31 with FW 3.x)
Ok, I've just tried some of these on a(n emulated) 464 and they don't work (Unknown Command)... but they all work fine on a(n emulated) 6128. Any reason why?
A CASE IN POINT; the stupidly addictive |TEMPEST (it's the cracked version, unfortunately).
Works fine on a 6128 ROM, but not with a 464 ROM.
EDIT: I'm not doing any more until this is sorted out. It's kinda wasting everyone's time if it only works on one CPC!
Quote from: gerald on 13:02, 23 September 13PHEW!
464 only initialise rom 0 to 7 while 6128 goes up to 15 (and 31 with FW 3.x)
Tempest ROM in ROM 6 works fine on winape with 464 config
Quote from: Axelay on 12:09, 23 September 13How do you mean more updated?
Quote from: arnoldemu on 15:36, 23 September 13
I know it's not on the list, but this game is great ;)
Defend or Die :)
Quote from: arnoldemu on 10:57, 23 September 13I've done a quick version of |THRUST, but there might just be enough room to put the loading screen & music on as well... but that's a little beyond my capabilities.
I will start on thrust. This is also one of my favourites :)
Quote from: mr_lou on 16:00, 23 September 13Even when packed, both games exceed 24k in size, so it is possible if you use 2 ROMs.
Is it difficult to do Spindizzy and Radzone?
Quote from: tastefulmrship on 16:12, 23 September 13
It might be nice if someone could explain (in general terms) how to deal with 2 ROM images for one title.
Quote from: mr_lou on 18:11, 23 September 13
"Hunchback" for some reason displays "FECK"
"Manic Miner" displays "GIRLS"....
"Thrust" displays "ARSE"
Quote from: mr_lou on 18:11, 23 September 13
"Axiens" displays "CLASSIC AXIENS". Yay! :)
"Defend or Die" displays "DEFEND OR DIE" yay! :)
"Fruity Frank" displays "Fruity Frank". Yay! :)
Quote from: tastefulmrship on 18:46, 23 September 13Ok, try |SPACEMANIA. See if the name for this one is any better.
I can always rebuild the other games to fit any naming convention, but it might take a day or two.
Quote from: TFM on 18:48, 23 September 13Haha! Well, at least you like my stuff 8)
Quote from: mr_lou on 19:00, 23 September 13You really DO want your cake and you really DO want to eat it! Crikey!
Yes. It says "Space Mania" which is perfect, because it's the title of the game. :)
Quote from: mr_lou on 17:28, 23 September 13The last character of the name has bit 7 set to 1 (ascii value + 128). This indicates it is the last character of the string.
So I'm looking at these ROM files in a Hex Editor, because I'd like to just show the game-name when I call |HELP from the Utopia rom.
To learn where this is located, I view the The Defend of Die ROM because it shows the game name fine.
But the Hex Editor only shows "DEFEND OR DI.".... where's the last E?
Seems to be the case with all ROMs. The last character of the name isn't there. What gives?
Quote from: mr_lou on 19:00, 23 September 13
(I would prefer if it was written "Classic Axiens" instead of "CLASSIC AXIENS" though, but that's just me being picky). ;)
Quote from: TFM on 20:12, 23 September 13You can easily change that by usage of an HEX editor, use ROManager to tell you the new checksum (use HEX Editor again to put checksum in ROM file).
Quote from: tastefulmrship on 20:46, 23 September 13
And here's the other 50% redone for you...
If anyone has ANY problems with these, then tough! I ain't doing no more of this ROM shyte... no fecking way!
Quote from: Gryzor on 21:03, 23 September 13Hmmm.... ok, then. I'm torn between ATOM SMASHER, SULTAN'S MAZE or HOME RUNNER.
Please do moar!
Quote from: tastefulmrship on 21:13, 23 September 13
Hmmm.... ok, then. I'm torn between ATOM SMASHER, SULTAN'S MAZE or HOME RUNNER.
Choices, choices! ^_^
Quote from: mr_lou on 22:15, 23 September 13
Bruce Lee <-- that's almost a must. How did we miss that so far?
Quote from: mr_lou on 17:28, 23 September 13
But the Hex Editor only shows "DEFEND OR DI.".... where's the last E?
Seems to be the case with all ROMs. The last character of the name isn't there. What gives?
QuoteEDIT: |TAPPER follows it pretty quickly.
Quote from: MiguelSky on 03:05, 24 September 13EDITO: Hmm, I see I have the CHECKSUM problem too, but I can't fix it !!
10 CLS:CAT
20 INPUT "ROM filename: ",n$
30 MEMORY &3FFF
40 PRINT "Loading ROM"
50 LOAD n$,&4000
60 PRINT "Calculating checksum"
70 w=0:FOR adr=&4000 TO &7FFE:w=w+PEEK(adr)
80 IF w>255 THEN w=w-256
90 IF adr MOD &200 = 0 THEN PRINT "=";
100 NEXT
110 PRINT
120 PRINT "Saving ROM"
130 POKE &7FFF,w
140 SAVE n$,b,&4000,&4000
Quote from: mr_lou on 08:30, 24 September 13I'm genuinely interested now. So, the "official" way of doing this is byte 0x3fff = sum(bytes 0 to 0x3ffe) ?
This little BASIC program will fix it.
#!/usr/bin/python
import os
import sys
for name in sys.argv[1:]:
f=open(name,"rb")
x=0
s=0
rom = f.read(16384)
if len(rom)<16384:
rom = rom + (chr(0) * (16384-len(rom)))
for c in rom[0:16382]:
b=ord(c)
s=s+b
c = ord(rom[16383])
print "%-20s : sum %02X xsum %02X"%(name,s&0xff,c)
/home/ralf/src/cpc/wincpc/roms/amsdos.rom : sum C2 xsum 1A
/home/ralf/src/cpc/wincpc/roms/basic464.rom : sum E5 xsum 54
/home/ralf/src/cpc/wincpc/roms/basic6128.rom : sum 62 xsum C9
/home/ralf/src/cpc/wincpc/roms/basic664.rom : sum 62 xsum C9
/home/ralf/src/cpc/wincpc/roms/bj1.rom : sum 42 xsum 00
/home/ralf/src/cpc/wincpc/roms/bj2.rom : sum AD xsum 00
/home/ralf/src/cpc/wincpc/roms/bj3.rom : sum 4B xsum 00
/home/ralf/src/cpc/wincpc/roms/Harrier.rom : sum 6D xsum 00
/home/ralf/src/cpc/wincpc/roms/hoh_01.rom : sum C6 xsum 00
/home/ralf/src/cpc/wincpc/roms/hoh_02.rom : sum E1 xsum 00
/home/ralf/src/cpc/wincpc/roms/hoh_03.rom : sum 78 xsum 00
/home/ralf/src/cpc/wincpc/roms/os464.rom : sum 00 xsum 00
/home/ralf/src/cpc/wincpc/roms/os6128.rom : sum 00 xsum 00
/home/ralf/src/cpc/wincpc/roms/os664.rom : sum 00 xsum 00
/home/ralf/src/cpc/wincpc/roms/Stk12-1.rom : sum C0 xsum 00
/home/ralf/src/cpc/wincpc/roms/Stk12-2.rom : sum 34 xsum 00
/home/ralf/src/cpc/wincpc/roms/Stk12Gen.rom : sum B2 xsum 00
/home/ralf/cpc/roms/AMSDOS.ROM : sum C2 xsum 1A
/home/ralf/cpc/roms/BASIC1-0.ROM : sum E5 xsum 54
/home/ralf/cpc/roms/BASIC_1.1.ROM : sum 62 xsum C9
/home/ralf/cpc/roms/COMPO_CH.ROM : sum B4 xsum B4
/home/ralf/cpc/roms/COMPO_OVERKOB.ROM : sum DD xsum 00
/home/ralf/cpc/roms/COMPO_PUZLO.ROM : sum 3E xsum FF
/home/ralf/cpc/roms/COMPO_RELENT.ROM : sum 9C xsum 00
/home/ralf/cpc/roms/DDEMON.ROM : sum 41 xsum 72
/home/ralf/cpc/roms/OS464.ROM : sum 00 xsum 00
/home/ralf/cpc/roms/OS_6128.ROM : sum 00 xsum 00
/home/ralf/cpc/roms/PARADOS.ROM : sum 26 xsum 00
/home/ralf/cpc/roms/ArnorBCPL.rom : sum 09 xsum 09
/home/ralf/cpc/roms/disc_micropower.rom : sum B9 xsum FF
/home/ralf/cpc/roms/discpowe.rom : sum 6D xsum FF
/home/ralf/cpc/roms/fract.rom : sum 37 xsum 00
/home/ralf/cpc/roms/sugarlumps.rom : sum 9B xsum 00
/home/ralf/src/arnold/arnold/src/roms/parados.rom : sum 26 xsum 00
/home/ralf/src/cpc/arnold_tng/src/roms/amsdose/amsdos.rom : sum C2 xsum 1A
/home/ralf/src/cpc/arnold_tng/src/roms/cpc464e/basic.rom : sum E5 xsum 54
/home/ralf/src/cpc/arnold_tng/src/roms/cpc464e/os.rom : sum 00 xsum 00
/home/ralf/src/cpc/arnold_tng/src/roms/cpc6128e/basic.rom : sum 62 xsum C9
/home/ralf/src/cpc/arnold_tng/src/roms/cpc6128e/os.rom : sum 00 xsum 00
/home/ralf/src/cpc/arnold_tng/src/roms/cpc6128s/basic.rom : sum 62 xsum C9
/home/ralf/src/cpc/arnold_tng/src/roms/cpc6128s/os.rom : sum 00 xsum 00
/home/ralf/src/cpc/arnold_tng/src/roms/cpc664e/basic.rom : sum 62 xsum C9
/home/ralf/src/cpc/arnold_tng/src/roms/cpc664e/os.rom : sum 00 xsum 00
/home/ralf/src/cpc/arnold_tng/src/roms/kcc/kccbas.rom : sum 62 xsum C9
/home/ralf/src/cpc/arnold_tng/src/roms/kcc/kccos.rom : sum AB xsum 00
/home/ralf/src/cpc/pace/x/COMSTAR1.ROM : sum 38 xsum FF
/home/ralf/src/cpc/pace/x/COMSTAR2.ROM : sum CD xsum FF
/home/ralf/src/cpc/pace/x/PACE232.ROM : sum 38 xsum FF
/home/ralf/src/cpc/pace/x/RS232101.ROM : sum 00 xsum 00
Quote from: ralferoo on 11:13, 24 September 13Standard: No.
So, my question: is this really a standard? Looks more like a coincidence to me. And there certainly seem to be enough exceptions to make this something not worth worrying about.
Quote from: tastefulmrship on 16:12, 23 September 13I have attached my work in progress code to show how I am making 1 of the games that uses 2 roms.
Even when packed, both games exceed 24k in size, so it is possible if you use 2 ROMs.
It might be nice if someone could explain (in general terms) how to deal with 2 ROM images for one title.
Quote from: mr_lou on 08:30, 24 September 13Thanks, mr_lou !! I was using the checksum.bas into the Classic Muncher dsk of the earlier posts. I edited the files in my message.
This little BASIC program will fix it.Code Select
10 CLS:CAT
20 INPUT "ROM filename: ",n$
30 MEMORY &3FFF
40 PRINT "Loading ROM"
50 LOAD n$,&4000
60 PRINT "Calculating checksum"
70 w=0:FOR adr=&4000 TO &7FFE:w=w+PEEK(adr)
80 IF w>255 THEN w=w-256
90 IF adr MOD &200 = 0 THEN PRINT "=";
100 NEXT
110 PRINT
120 PRINT "Saving ROM"
130 POKE &7FFF,w
140 SAVE n$,b,&4000,&4000
Quote from: mr_lou on 14:34, 23 September 13
Wasn't there released an updated version of Dead on Time a while after the first release?
Or did I dream that? (I might have. Dead on Time was played a lot when it came out ;) )
Quote from: ralferoo on 11:13, 24 September 13
out of my entire ROM collection, I have very, very few where this checksum matches.
Quote from: tastefulmrship on 12:56, 25 September 13How the living poo-poo do you RUN a BASIC program from a ROM?
Quote from: Bryce on 15:22, 25 September 13Woaw, slow down guys (Tastefulmrship), I can barely keep up!
Quote from: Bryce on 15:22, 25 September 13You can browse the entire list here: ROM List - CPCWiki (http://www.cpcwiki.eu/index.php/ROM_List#Game_ROMs)
I had to add (Defender Clone) to Gauntlet's name to avoid people mixing it up with the U.S. Gold Gauntlet.
Quote from: mr_lou on 12:59, 25 September 13
I used the Softbrenner utility to convert a simple BASIC program of my own into a ROM. Worked fine. (The only successful conversion I did).
Quote from: TFM on 20:23, 25 September 13Maybe you should first make a disc version using compressed files. And then - if it works from disc - put it to the ROM.
Quote from: Bryce on 15:22, 25 September 13
Woaw, slow down guys (Tastefulmrship), I can barely keep up! The ROM List page now offers a whopping 31 games! on 37 ROMs! That should keep your MegaFlash running hot for quite a while!
Quote from: mr_lou on 15:37, 25 September 13
Disregard that. Do not slow down. I repeat. Do not slow down. Just keep going as fast as you can. :)
Quote from: TFM on 22:11, 25 September 13Well, normally I'd prefer a pint of the BLACK STUFF and a smooth JAMESON chaser... but beggars can't be choosers.
Wine? YOU are Irish! So the heck DRINK BEER!!! AND WHISKY!!! ;)
Quote from: tastefulmrship on 22: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.
Quote from: mr_lou on 22:40, 25 September 13I 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!
Sorry to hear you lost your job.
Quote from: tastefulmrship on 23: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.
Quote from: mr_lou on 09:29, 26 September 13That's fair enough.
I have no idea or even a sense of how many ROM files whatever game require. I just list interesting titles. :)
Quote from: Bryce on 12:41, 26 September 13Just 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)
Ok, all uploaded again! Current count: 40 Games, 46 ROMs.
Link: ROM List - CPCWiki (http://www.cpcwiki.eu/index.php/ROM_List#Game_ROMs)
10 ENT -1,10,10,1,10,-10,1
20 SOUND 1,10,100,15,,1
10 ENT 1,10,10,1,10,-10,1
20 SOUND 1,10,100,15,,1
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
Quote from: tastefulmrship on 13:53, 26 September 13Not sure, but you could test it from basic, assemble to &4000, then call &4000.
How do you create a repeated ENT command in assembly? (I already know it's Firmware CALL &BCBF)
Quote from: tastefulmrship on 13:53, 26 September 13I had to learn this when I was converting Fruity Frank. Add &80 to the 1st byte (which is number of sections).
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)
Quote from: ralferoo on 15:07, 26 September 13Ah! I was trying to add &80 to the ENT number... I didn't even think of doing it to the sections byte! Nice one!
I had to learn this when I was converting Fruity Frank. Add &80 to the 1st byte (which is number of sections).
Quote from: arnoldemu on 15:01, 26 September 13Yeah, welcome to my "coding" style! (sorry; it's always such a mess... but somehow it usually works!)
Your code confuses me.
Quote from: mr_lou on 23:14, 25 September 13
My wish-list
Dead on Time
Quote from: Axelay on 17: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.
org &c000
defb 2 ; background ROM
defb "Dead on Time ROM 2" ; custom string
; rest of ROM data
Quote from: Axelay on 17:08, 26 September 13Was that using Exomizer? It didn't fit using BITBuster.
On the other hand, |FROSTBYTE does fit into one ROM!
Quote from: arnoldemu on 17:58, 26 September 13
It does require that all other roms are inserted side by side and are marked as extension roms.
Quote from: Axelay on 17: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.
Quote from: tastefulmrship on 17:44, 26 September 13
Was that using Exomizer? It didn't fit using BITBuster.
Quote from: redbox on 17:39, 26 September 13
I don't understand why the principle of two, three or even more ROMs should be tricky.
Quote from: TFM on 19:14, 26 September 13
Compress it to less then 32 KB, then use Softbrenner, it handles two ROMs.
Quote from: redbox on 17:39, 26 September 13Yes, definitely a good idea. It'd be nice to keep going beyond 32 ROMs though, just in case people have bigger ROM boards...
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.
Quote from: Bryce on 10:58, 27 September 13I'd do it myself, but I've got;
Bryce - Tastefulmrship's official Wiki uploader.
Quote from: tastefulmrship on 13:04, 27 September 13
EDIT: WRIGGLER is only 1 ROM, not 2! Ta! ^_^
Quote from: tastefulmrship on 22:52, 26 September 13
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.
Quote from: Gryzor on 20:29, 27 September 13Btw, isn't Axiens done by TFM?
Quote from: TFM on 19:04, 27 September 13Ok, well it works fine on WinAPE (tested with 464 and 6128 ROMs). Maybe it's one of the few titles that needs to be run through the checksum patcher before it will work in a real CPC?!?!? Worth a try, huh?
That batch doesn't work.
Quote from: TFM on 21:21, 27 September 13Here's a screenie from WinAPE with a few ROMs "plugged in".
Try to install a couple of ROMs more... maybe it works fine without other ROMs... dunno what's the problem (used WinCPC to test it). Good luck!
Quote from: tastefulmrship on 21:50, 27 September 13Thanks! But there is an "official" ROM that's built automatically if you use the source release at ralferoo/sugarlumps · GitHub (https://github.com/ralferoo/sugarlumps)
EDIT: Right, I'm taking a little "time-out" now and enjoying some CPC demo awesomeness! Type |SUGARLUMPS, press ENTER, put your feet up and let your CPC chill you out! (Goes well with a nice Merlot, by the way!)
Quote from: tastefulmrship on 20:52, 28 September 13
Today's feast of bytes;
|RALLY2 to play Loriciels' RALLY 2.
|GPDRIVER to play Britannia's GRAND PRIX DRIVER.
EDIT: There were more, but I'm too fecking tired... I might finish them tomorrow!
Quote from: 00WReX on 02:53, 29 September 13Mwahahahahahaha! I will get you ALL doing my dirty work! ^_^
Added to the Wiki ROM GAME list (thought I'd give Bryce a break ;) )
ROM List - CPCWiki (http://www.cpcwiki.eu/index.php/ROM_List#Game_ROMs)
Work_Space equ &a410
Work_Offset equ &c000-Work_Space
KL_CURR_SELECTION equ &B912 ; KL_CURR_SELECTION (A = ROM select address for our rom)
KL_ROM_SELECT equ &b90f ; C = required ROM, C returns previous ROM, B returns ROM enable states
KL_U_ROM_DISABLE equ &b903 ; disable upper ROM
; ---------------------------------------------------------------------------
ORG &C000
write direct "b:HIGHWAY1.ROM"
NOLIST
; ---------------------------------------------------------------------------
; ROM Header
rom_type
DEFB 1 ; Background ROM
rom_version
DEFB 0,0,1 ; Version 0.0.1
; ---------------------------------------------------------------------------
rsx_names
DEFW rsx_name_table
; ---------------------------------------------------------------------------
JP initialize_rom ; Called by the firmware during system initialization
JP run_game ; Launch the game
rsx_name_table
DEFB " Highway Encounter" , " "+&80 ; Use a name that basic can not run
DEFB "HIGHWA","Y" + &80 ; RSX for launch the game (|GAME)
DEFB 0 ; End of RSXs name table
; ---------------------------------------------------------------------------
; Show initialization text and telling the firmware everything OK
; ENTRIES:
;; DE: Pointer to the lowest RAM address that we can use.
;; HL: Pointer to the highest RAM address that we can use.
; EXITS:
; Carry true.
;; DE: Pointer to the new lowest RAM address that we can use.
;; HL: Pointer to the new highest RAM address that we can use.
; A, BC and the other flags corrupt.
; All others registers preserved.
; ---------------------------------------------------------------------------
initialize_rom
SCF ; Signal to the firmware everything was correct
RET
; ---------------------------------------------------------------------------
; RSX '|GAME' launch the game
; ---------------------------------------------------------------------------
run_game
push hl
push de
push bc
push af
; copy down patch code
ld hl,FindROM
ld de,Work_Space
ld bc,FindROMEnd-FindROM
ldir
; go find the ROM
call Work_Space ; if routine returns, ROM 2 was not found
LD HL,fail_message
CALL show_message
; exit ROM and return to BASIC
pop af
pop bc
pop de
pop hl
SCF ; Signal to the firmware everything was correct
RET
; ---------------------------------------------------------------------------
; Print a string finished in $FF using the firmware
; ENTRIES:
;; HL : Pointer to the string
; ---------------------------------------------------------------------------
show_message
LD A,(HL)
.loop_show_message
CALL &BB5A ; TXT_OUTPUT
INC HL
LD A,(HL)
CP &FF
JR NZ,loop_show_message
RET
fail_message
DEFB "Highway Encounter ROM 2 not found",&FF
.FindROM
; Get the ROM number
CALL KL_CURR_SELECTION
ld (Work_Space+&80),a ; store current ROM in &a490
inc a
ld c,a ; start checking from first ROM after the boot ROM
.FindROMLoop
push bc
call KL_ROM_SELECT ; select ROM defined by C
ld bc,FindROMEnd-SearchText
ld de,SearchText-FindROM+Work_Space ; Start of search string after code moved to RAM
ld hl,&c001 ; position of ROM 2 label
.FindTextLoop
ld a,(de)
inc de
cpi
jr nz,TextNotMatched
jp pe,FindTextLoop-FindROM+Work_Space ; if not end of string, keep matching chars
;
; have reached end of string, and all chars matched, so ROM has been found
pop bc ; get ROM number back in c, if required
; copy this code block to main RAM
ld hl,&c000+FindROMEnd-SearchText+1 ; beginning of data in second rom
ld de,&7302
ld bc,11082
ldir
ld a,(Work_Space+&80) ; get boot ROM number back
ld c,a
call KL_ROM_SELECT ; select ROM defined by C
ld hl,Highway1 ; start of data in boot block to copy down
ld de,&4302
ld bc,&3000
ldir
; disable the upper ROM, no longer required
call KL_U_ROM_DISABLE
; remove return address and saved registers, not returning to ROM boot routine
pop hl ; return address
pop af
pop bc
pop de
pop hl
; go to start of game depacker
jp &9d00
;
.TextNotMatched
pop bc
inc c
ld a,&fb ; &fc-&fd unusable?
cp a,c
jr nc,FindROMLoop
; if c reached ROM &fc, have not found second ROM, exit back to BASIC
ld a,(Work_Space+&80) ; get boot ROM number back
ld c,a
call KL_ROM_SELECT ; select ROM defined by C
ret
.SearchText
text "Highway Encounter ROM 2"
.FindROMEnd
; data
read "highway_1.asm"
; ---------------------------------------------------------------------------
; Pad the rom with zeros until the 16 KBs
; DEFS $0-$ ; in pasmo
; ORG $10000 ; in vasm
defs &f1f
list
; ---------------------------------------------------------------------------
.RomEnd
; ---------------------------------------------------------------------------
ORG &C000
write direct "b:HIGHWAY2.ROM"
NOLIST
; ---------------------------------------------------------------------------
; ROM Header
.rom_type
DEFB 2 ; Extension Foreground ROM
; search tag
text "Highway Encounter ROM 2"
.Data2_Start
; data
read "highway_2.asm"
; fill rom to end
defs &149e
list
; ---------------------------------------------------------------------------
.RomEnd
Quote from: Axelay on 16:18, 29 September 13Yes, the maximum is 252. If you wrote directly to &DFxx, you could use the remaining 4 slots, but the issue is that the firmware uses this convention for most of the ROM related functions:
Firstly, I only search up to &fb as I read that ROMs &fc-&fd are off limits because of how those addresses are dealt with, and also on this thread I think I saw mention of the maximum number of ROMs being 252. Is that a reference to 0,7,&fc,&fd, or maybe to &fc up, or can &fe-&ff be used and I need to add a check for that theoretical possibility?
Quote
&00 to &FB-- select the given upper ROM, enable the upper ROM and disable the lower ROM
&FC - no change to the ROM selection, enable the upper and lower ROMs
&FD - no change to the ROM selection, enable the upper ROM and disable the lower ROM
&FE - no change to the ROM selection, disable the upper ROM and enable the lower ROM
&FF - no change to the ROM selection, disable the upper and lower ROMs
Quote from: Axelay on 16:18, 29 September 13
I have taken the approach of searching through all the ROMs to find the second, and aborting back to BASIC if it's not found
Quote from: Bryce on 10:23, 30 September 13At this rate my HxC is starting to gather dust and my MegaFlash is overheating. I need to look at making a 128 ROM version :D
Quote from: Bryce on 11:23, 30 September 13Without making the mistake of offering yet another new project.
Quote from: Bryce on 11:23, 30 September 13It would be rather easy to add parallel Flash ICs to the MegaFlash. This wouldn't give you 252 ROMs all at the same time, but you could have multiple banks of 32 ROMs that you could select manually with DIP switches.
Quote from: ralferoo on 21:34, 29 September 13
Yes, the maximum is 252. If you wrote directly to &DFxx, you could use the remaining 4 slots, but the issue is that the firmware uses this convention for most of the ROM related functions:
Quote from: tastefulmrship on 06:58, 30 September 13
Ok, here's today's ROM. (I'm starting at a new school today & haven't got time to play around with ROM imaging until I get home).
GAME OF |DRAGONS, the ropey but pretty Amsoft platformer.
Quote from: Bryce on 12:25, 30 September 13It can accept 255 roms. KL ROM SELECT also allows you to select rom number 253-255.
Although the CPC can technically (electronically) accept 252 ROMs,
Quote from: tastefulmrship on 21:16, 30 September 13
EDIT: I've tried to get NETHERWORLD working, but I can't seem to see where I'm going wrong (basically because my new job is taking up both my braincells and I can't concentrate on anything else). If you assemble both data-chunks to their respective ADDResses (ie ROM 2 first, then ROM 1) and then CALL &A000, it works fine. However, installing ROM 2 into a slot and then assembling & CALLing the first ROM (ie CALL &C009), it fails. If anyone wants to get this working for me (it's probably something really stupid I've missed), then that'd be great! Ta!
Quote from: arnoldemu on 11:04, 01 October 13
It can accept 255 roms. KL ROM SELECT also allows you to select rom number 253-255.
I think it's the other KL functions that reserve 252-255.
I have a question:
- If a rom board implemented roms 128-255, and only decoded these rom ids. if you plugged this into a plus, would it autoboot like on a real plus or must you implement some kind of "lower" rom signal too?
I just wondered what the asic sends out to the expansion when it selects cart pages.
Quote from: Bryce on 12:25, 01 October 13Yes ans no :)
I haven't tried this, but as far as I know it will not boot from an external 128 - 255 ROM board. The reason for this is that the Cartridge has its own ROMEN signal, so when you turn on the computer it will still be trying to find and enable a ROM connected to the Cartridge port.
Quote from: arnoldemu on 11:04, 01 October 13
- If a rom board implemented roms 128-255, and only decoded these rom ids. if you plugged this into a plus, would it autoboot like on a real plus or must you implement some kind of "lower" rom signal too?
Quote from: Bryce on 15:35, 01 October 13
@redbox: The ACID is needed no matter where you plug the ROMs onto the Plus. No ACID = Computer doesn't run.
Quote from: Bryce on 17:50, 01 October 13
That's more or less what my Man-In-The-Middle Cartridge was for: MITM - CPCWiki (http://www.cpcwiki.eu/index.php/MITM)
Quote from: Axelay on 11:40, 01 October 13
The game worked from ROM for me with those two files, after just padding the two ROM files to the correct length. You must be working yourself too hard! ;)
Quote from: tastefulmrship on 19:35, 01 October 13I still can't get it to work on WinAPE; any chance of posting the working ROMs? Ta!Ah! I see a problem!!!
(It's not that I'm doubting you, it's just I REALLY can't get it to work!)
I had the Cybernoid, Exolon, Nebulus AND Netherworld ROMs installed in random slots around the 15 slots. Netherworld failed to work!
I took the others out and ONLY had Netherworld ROMs in 1 & 2 and it worked! |NETHERWORLD (press [SPACE] at the title screen).
jp po,FindTextLoop-Work_Offset ; if not end of string, keep matching chars
jp pe,FindTextLoop-FindROM+Work_Space ; if not end of string, keep matching chars
Quote from: Axelay on 13:45, 02 October 13I like the fact that you also have the work-ethic of; "if it's gonna fail, you may as well do it properly!". For me, it's a mantra. ^_^
So it was using the wrong condition and only matching the first letter of every search string. So I imagine the problem you had was that the second Nebulus ROM was being found before the Netherworld ROM. But even if the condition had been correct, it would have jumped to the wrong address!
Start Address - &08F6 -> &A47D
Total Length - &9B88
Exececute Address - &A000
Each DATA block is &33D8 bytes long ( &9B99 / 3 )
08F6 - 3CCD - DATA block 1
3CCE - 70A5 - DATA block 2
70A6 - A47D - DATA block 3
Quote from: tastefulmrship on 07:26, 03 October 13
Now, I've only spent a few minutes trying to procedurise (made up word) the code, but haven't had much success. I might have a look over the weekend when I'm not working, but if you can quickly jiggle things around and get it done, then mucho thankos to you. From there, maybe it could be possible to have multi-load games on ROM!
Quote from: tastefulmrship on 07:26, 03 October 13
(and this, TFM, is the reason why people prefer to program code themselves rather than rely on a software package)
Quote from: TFM on 19:41, 03 October 13All ROMs worked when I posted them; admittedly they were tested on their own (well, with BASIC, STarkos & PARADOS), but I have manage to fill the 15 slots and still get them all to work.
Ah, I wouldn't mind if it would work. Look, if I put a ROM there, then I check it working first. Here I had too often problems with your ROMs, which don't work if other ROMs are already installed.[nb]ROMs created using SB have no problems though.[/nb]
Quote from: Axelay on 17:17, 03 October 13Excellent stuff, as ever, thank you!
This is not very elegant, but it appears to work! You could probably make use of a table or list so the details of ROMs, where the data in them goes etc is entirely contained within a loop that reads the particulars of each ROM from the list.... You might say it could be better 'produrised'. :)
Quote from: tastefulmrship on 07:19, 04 October 13
My build code has it in; so all subsequent ROMs will have it. Other than that, I am using Octoate's ROM code like everyone else.
Quote from: tastefulmrship on 07:19, 04 October 13
Other than that, I am using Octoate's ROM code like everyone else.
Quote from: redbox on 09:21, 04 October 13Sure, here's the code (with the added SCF) I am using...
It's really cool that you're learning Z80 instead of just using a utility, good work :)
Can you post your template code? I couldn't find the original Octoate code anywhere.
; ROM build code by Octoate (c)2013
; BITBuster depacker by T&J (c)2013
org &c000
defb &01, 0, 0, 1
defw rsx_name_table
jp init_rom
jp run_game
.rsx_name_table defm "Game Name her", "e"+&80
defm "RSXCOMMAN","D"+&80
defb 0
.init_rom scf
ret
.run_game
ld hl,DATAStart
ld de,&6420
ld bc,&3Cc0
ldir
jp &A000
org &6420
.DATAStart
nolist
[The BITBuster packed code goes here]
list
; The decompressor code usually ORGs to &A000 unless the packed version I'm working from needs to be located at 0100 or above A000.
ld c,&ff
ld hl,RestartROMs
call &bd16
.RestartROMs call &bb57
call &bccb
call &bb54
ld hl,DATAStart
ld de,&2710
.BITBuster DI
EXX
PUSH BC
PUSH HL
PUSH DE
EXX
CALL depack
EXX
POP DE
POP HL
POP BC
EXX
EI
ld bc,&7f8d ; disable ROMs
out (c),c
jp &620C
[The BITBuster decompressor code goes here]
Quote from: TFM on 20:02, 04 October 13Right, now
Well, as long as one know that if a ROM doesn't work it's just needed to switch all others off, that's fine.
Quote from: TFM on 23:21, 04 October 13No, the init_rom just needs to reserve workspace memory if it needs any. It's common to display a message to show your rom on the startup screen, but the very fact it has a command table is enough to let the system know about the RSXs.
Your init_rom just does nothing! It must tell the system about the RSX.
Quote from: TFM on 23:21, 04 October 13Again you insist on insulting me instead of actually answering my question... which in itself is an insult.
Hey bad taste ;-)
Your code does miss the most important part! It does not integrate the RSX into the system!
Your init_rom just does nothing! It must tell the system about the RSX.
Quote from: TFM on 04:09, 06 October 13
Take it easy lad, you do a good job. Have a Jameson on me.
Quote from: tastefulmrship on 09:38, 05 October 13Ha! After going a little off-the-rails with mr_lou's original list, here's CNGSoft's trained version of |SPINDIZZY. So, there's another 2 EUROs donated to the CPCWiki fund! ^_^
Quote from: mr_lou on 07:15, 06 October 13TNSV will fit onto 3 ROMs and will take quite a bit of fiddling to get it to load properly from ROM, at least for me, but one of our expert programmers would be able to do it without a second glance.
How about Teodoro no sabe volar? Fits into 2 ROMs? :)
Quote from: tastefulmrship on 07:19, 04 October 13
The only thing I can think of is that I am not using the SCF command when initialising the ROM (it just RETs to BASIC). Is this a mandatory command? If so, then this could be reason why some of my ROMs are simply failing for you. It shouldn't take too long (a few weeks maybe) to completely re-build them all with it in. My build code has it in; so all subsequent ROMs will have it. Other than that, I am using Octoate's ROM code like everyone else.
Quote from: andycadley on 13:36, 06 October 13Thanks for the information. It looks like next weekend is going to be full of rebuilding all the single ROM games I have already done! -yay- My ignorance has, once again, befallen me!
V1.1 of the firmware checks the status of the carry flag and assumes the ROM init was successful if it is set and failed somehow if not, so without it ROMs may 'randomly' fail to initialise depending on the carry flag status. The V1.0 firmware ignores this and treats every ROM init as successful regardless.
Quote from: tastefulmrship on 14:02, 06 October 13It looks like next weekend is going to be full of rebuilding all the single ROM games I have already done! -yay- My ignorance has, once again, befallen me!
Quote from: mr_lou on 17:24, 06 October 13Yeah, they're all dead! Game over, man! Game over! Delete them all! (the ones I did, anyway)
Er what? Why?
Can someone explain to me in plain english why? What's wrong with the current builds?
Does this mean that all the downloads can/should be deleted?
Quote from: tastefulmrship on 18:56, 06 October 13The ROMs will work as long as you RUN them after a reboot
Quote from: mr_lou on 19:24, 06 October 13I'd prefer to make them all 100% than leave them 99% done. A job worth doing... and all!
If that's the only trouble, then I fail to see any reason to redo them all....
Quote from: Bryce on 23:38, 06 October 13No worries. Once they're all done I'll PM them all across.
Can you zip all the new versions into one file and post it here or send it directly to me. Then I'll update all the Wiki links / pages with the new files.
Quote from: TFM on 20:09, 18 October 13
The Booster is not causing the problem.[nb]It works fine with all commercial ROMs.[/nb] It's the way the ROMs have been generated.
Quote from: TFM on 23:42, 18 October 13
Which is a nice piece of code, but still not understand by everybody bitching at it without reason.
Quote from: mr_lou on 15:06, 18 October 13Not being familiar with the ROM Flash Manager, but being someone of infinitely random luck when it comes to fault identification; I would assume that the Manager is looking for bit 7 set to denote the end of the ROM name... and because our build of ROMs 2 or 3 (as appropriate) is built with a name that doesn't end with bit 7 set (and defined as a background ROM), is it blindly PRINTing out characters from the actual ROM data. It just happens we've just been pretty lucky that the first few data bytes have been over &80 and so not PRINTing random characters when interrogated by this application?
Also, can someone fix Spindizzy so that ROM 2 doesn't clear the screen in the ROM flasher manager? Apparently a character has been used in the name, that clears the screen.
10 MODE 1:BORDER 0:INK 0,0:INK 1,20:CLEAR:RESTORE:MEMORY 5999
20 LOAD"HUNCH2.bin":IF PEEK(&AE45)>0 THEN GOSUB 1000
30 LOCATE 10,2:PRINT"H U N C H B A C K I I":LOCATE 10,3:PRINT"-----------------------
40 LOCATE 10,11:PRINT"1 > Partie normale
50 LOCATE 10,13:PRINT"2 > Vies infinies
60 LOCATE 18,20:PRINT"Votre choix ?
70 A$=INKEY$:IF A$="" THEN 70
80 IF A$="1" THEN GOTO 110
90 IF A$="2" THEN POKE 34038,0:GOTO 110
100 GOTO 70
110 CALL 17000
1000 FOR f=1 TO 22:READ a,b$:POKE a,VAL("&"+b$):POKE a+1,&B6:NEXT f:FOR f=1 TO 6:READ a,b$:POKE a,VAL("&"+b$):NEXT:RETURN
1010 DATA 17216,49,17339,51,17352,50,17368,4a,17381,49,17389,4b,17592,51,17598,4e,17619,4f,17627,52,17637,4f,17683,52,17945,49,17955,49
1020 DATA 20140,49,34411,52,34417,52,34423,52,34429,52,34435,52,34441,4e,34447,51
1030 DATA 20161,41,20172,41,20187,41,20219,bf,20220,b8,20240,4a
Quote from: mr_lou on 17:55, 19 October 13|KANE, but it doesn't work with anything; from WinAPE to real hardware. It's almost not even worth downloading. Infact, you're lucky I was bored, otherwise I'd not have spent the 26 minutes converting it to non-working ROMs. Anyway, it's attached for prosperity. Don't download it.
Suggestion for game to convert to ROM: Kane
:)
Quote from: Bryce on 23:51, 18 October 13
Really? What's the point? Why would it care about being too high if it could be above the DOS?
Bryce.
Quote from: 00WReX on 05:01, 19 October 13
Not wanting to get into any arguments, but "Utopia" is a commercial ROM (I believe) that struggles with the Booster ROM enabled.
Quote from: TFM on 22:06, 19 October 13
Ok, a DOS replacement does patch the TAPE vectors the same way AMSDOS patches it. So ... if an advanced DOS has a higher number than AMSDOS, then the AMSDOS would patch the patch of the advanced DOS, so it wouldn't work.
Consider that ROMs get initialized with the highest ROM select first and 0 at the end. So the smaller a ROM number is, the late it get's initialized. And an expanded DOS needs therefore a smaller number than Amsdos.
Other companies (for reasons unknown to me) don't like their ROMs to run outside of an area of certain ROM numbers.
Quote from: Bryce on 22:23, 19 October 13
I know that. But that's not what I'm talking about. I'm talking about ROMs that will work in position 8 to 15 (ie: above AMSDOS) but won't work above 16 using the booster ROM.
Bryce.
Quote from: Devilmarkus on 23:47, 19 October 13
Here's Kane:
|KANE to start
Quote from: tastefulmrship on 08:52, 19 October 13EDIT: Having a quick look at SULTAN'S MAZE (100% BASIC game) and getting that to work from ROM. Now, I can get it to work if I dump the entire contents of the program to &0170 and use the BASIC-From-ASSEM code to RUN it, however when I Exomize it (from 14k to 32k) to &0170 and use the same RUN code, it doesn't work (comes up with a "Syntax Error" message, if you then type "RUN" it works). Obviously, Exomizer is doing something that BASIC doesn't like (and yes, I've "backed-up" the alternate registers before CALLing deexo). Anyone got any ideas of how to sort this? (the simple solution is NOT to compress BASIC programs, I know, but ROM space is critical if we're going to have so many games installed at once!)
Quote from: tastefulmrship on 07:20, 22 October 13
Thanks to Urusergi, here's |SULTANSMAZE on ROM (tested with 464 & 6128 ROMs on WinAPE). Now, any game is possible without having to use an application.
That's the true spirit of community; it's a shame certain people still hold onto their self-importance. Ah well, their loss!
Quote from: Urusergi on 16:52, 22 October 13I do not know where I downloaded it from, but it is attached here.
¿Where can I download the cracked version of HUNCHBACK II that you used it?
Quote from: tastefulmrship on 20:23, 22 October 13
The 6128 patch does not work, so play it on a 464.
Quote from: Bryce on 14:22, 22 May 14Yes... it was done on purpose... just to see if anyone would actually notice! ^_^
Is there a reason why you include The Curse of Sherwood ROM 1 twice?
Bryce.
Quote from: Bryce on 15:01, 22 May 14
So have I won something for noticing?? :D
Edit: Curse of Sherwood uploaded too now (despite lack of prize).
Bryce.
Quote from: Bryce on 15:01, 22 May 14
So have I won something for noticing?? :D
Bryce.
Quote from: Jonah (Tasteful Mr) Ship on 15:10, 22 May 14
YES! You win a FREE "The Curse Of Sherwood" download. Just use this simple to remember passcode when downloading;
FGNS-DLIFB-GERIL-TBILS-DFBDF-BTUEG-BTGHR-ITSEI-FBSDI-BGRIG-BSERI-FBGSD-IGBDF-GIBRI-01
Or was it 02...? I can't remember. Try both and see what happens! *hehe*
Quote from: TFM on 23:58, 24 May 14Yeah... I'd recommend moving on and flaming someone else, 'cos I'm not rising to any of your snide, negative comments. You're really only wasting your own time and energy... energy which could be used for more productive, helpful, positive means. I quite enjoy packing these games onto ROM(s) and you (or anyone else, for that matter) ain't going to stop me; you tried before, but I came back. So, please go back to whatever it is you do in your world and leave me to do whatever it is I do in mine. (Thanks for the unintentional bump, though)
Uups.... is the download counter broken?
Quote from: Bryce on 21:05, 25 May 14True, but it's still nice to have 2 or 3 of your favourites on the MegaFlash for instant playing at any time.
Quote from: mr_lou on 21:55, 25 May 14
And I can settle for a few games too. :)
It would just have been nice to have many more though.
Is it completely impossible to make room for more? (I don't mean slots, obviously).
I mean, if the price didn't matter, could it be done so that we could have 25 games on MegaFlash somehow?
Quote from: Bryce on 22:24, 25 May 14The problem is that every ROM reserves a bit of RAM. If you have a lot of ROMs installed they use up too much RAM so the game can't run. You can always park the ones you're not using, that way you free up RAM.Bryce.
Quote from: TFM on 23:10, 25 May 14Well, yes and no. ROMs like Maxam and Protext reserve a couple hundred bytes. But if you put a game into the ROM the ROM will not need more than four bytes of RAM. At least this is the case for all my ROM games made with the Inicron Softbrenner. I never used the ROM creator of roman, but it may be the same for it.
So in principle you can have 30 ROMs with games in it and all they need would be only 120 bytes, which is no problem for 99.7% of all other software.
Quote from: TFM on 02:20, 26 May 14
You can use X-DDOS to show you the start addresses of ROMs. Ok, it's in hexadecimal, but it there is more usage than 4 byte, then the ROM is wasting RAM. I never uses game ROMs not made with Softbrenner except once and it didn't work. Later I lacked time, so I can not tell about other "ROM maker software".
X-DDOS may give a hint (using !HELP command)
Quote from: Bryce on 10:34, 26 May 14
But isn't the Command to start the game saved in RAM? If a game uses the command |SUPERKIDINSPACE, then that's already 15 bytes used up, plus a jump address etc brings this to 19 or 20 bytes per game. So 8 games could be using up quite a bit more RAM.[nb]Or I'm talking complete B0llox, I'm not a coder[/nb]
Bryce.
Quote from: mr_lou on 08:31, 26 May 14
I am but a poor musician. I wouldn't have any clue on how to see how much ram a rom is using.
? HIMEM
Quote from: Axelay on 11:46, 26 May 14
Well I wouldn't be surprised if some earlier games dependent on the OS were made with an assumption of only AMSDOS present with no other ROMs, so they might well overwrite RAM above a lowered HIMEM and cause an issue.
Quote from: Bryce on 10:34, 26 May 14No.
But isn't the Command to start the game saved in RAM?
Quote from: Bryce on 14:02, 26 May 14That code works fine with both pasmo and WinCPC, so it should also work fine in Maxam (although I've never used it, so I could be wrong). If it's just label syntax (.label versus label: then I suspect most assemblers will take either form).
Edit: What did you compile that on? The other samples I have are for Maxam (which I also intend using) and they look slightly different.
staticfunc_len equ $-staticfunc_start
staticfunc_xxx:
staticfunc_len equ staticfunc_xxx-staticfunc_start
Quote from: mr_lou on 13:16, 26 May 14What do you mean by trouble? I want to understand the problems you are seeing.
Um... I can't keep up.
What are you generally saying? That Softbrenner's utility uses more than 4 bytes pr. game? Or are there other theories as to why I can only install about 7 games before I begin running into trouble?
Quote from: arnoldemu on 15:39, 26 May 14What do you mean by trouble? I want to understand the problems you are seeing.
Quote from: Bryce on 17:42, 26 May 14
Ok, that really is wierd. So other ROMs are getting corrupted? Either something is overwriting the reserved RAM or something is confusing the ROManager software. Was it a particular game that caused the corruption? Have you tried filling the MegaFlash with utilities instead of games?
Quote from: Bryce on 13:33, 26 May 14
Good to know. I intend writing my very first ROM program in the near future. I see the learning curve will be steep :(
Quote from: mr_lou on 13:16, 26 May 14
Um... I can't keep up.
What are you generally saying? That Softbrenner's utility uses more than 4 bytes pr. game? Or are there other theories as to why I can only install about 7 games before I begin running into trouble?
Quote from: TFM on 23:47, 26 May 14Using the Softbrenner is
No. Using the Softbrenner is the GOOD way to make ROMs. And they all run. Other ways lead to problems.
Quote from: TFM on 23:47, 26 May 14No. Using the Softbrenner is the GOOD way to make ROMs. And they all run. Other ways lead to problems.
Quote from: ralferoo on 17:20, 27 May 14
The main problem I know about are not setting the carry flag before returning - the 464 didn't check this, the 664/6128 consider it an error. It was documented as far as I know, but the 464 ignored the carry.
Quote from: arnoldemu on 22:46, 27 May 14
What happens in firmware 3.1 where it supports more or in the rom that extends the range up to 32?
Quote from: arnoldemu on 22:46, 27 May 14In (#b8d3) (6128), there is a pointer to the most recent RSX block registered.
Also where is the rom chaining information stored (rom select + next rom in list) ???
Quote from: arnoldemu on 22:46, 27 May 14
The "Firmware Guide" claims &b8da->&b8f8 hold the IY value for each ROM. There is space here in CPC6128 for 16 roms, 8 for 464.
What happens in firmware 3.1 where it supports more or in the rom that extends the range up to 32?
So where exactly is the information stored. I am guessing because if it's in a fixed size buffer it may be running out.
034c 23 inc hl
034d eb ex de,hl
034e 21dab8 ld hl,$b8da ; the ROM table
0351 ed4bd6b8 ld bc,($b8d6) ; the currently active ROM (as we're probing them all in sequence this will be set)
0355 0600 ld b,$00
0357 09 add hl,bc
0358 09 add hl,bc ; #B8DA + 2*(#B8D6)
0359 73 ld (hl),e
035a 23 inc hl
035b 72 ld (hl),d ; store IY (which is HL+1 as returned from the ROM)
035c 21fcff ld hl,$fffc
035f 19 add hl,de ; reserve the 4 bytes for the RSX chain
0360 cda002 call $02a0 ; KL LOG EXT
;; rom select below 16 (max for firmware 1.1)?
048c fe10 cp $10
048e 300f jr nc,$049f
;; 16-bit table at &b8da
0490 87 add a,a
0491 c6da add a,$da
0493 6f ld l,a
0494 ceb8 adc a,$b8
0496 95 sub l
0497 67 ld h,a
0089 21ffab ld hl,$abff ; decrease this by number of ROMs, so 32 -> #abdf
...
034e 21dab8 ld hl,$b8da ; change to #abe0 for 32 ROMs
...
0491 c6da add a,$da ; change to #e0 for 32 ROMS
0493 6f ld l,a
0494 ceb8 adc a,$b8 ; change to #ab
008a df
008b ae
034f e0
0350 ab
0492 e0
0495 ab
Quote from: TFM on 22:51, 27 May 14This table will only be updated for background ROMs (i.e. with RSXes). Foreground ROMs take over the system and so don't need the IY value and extension ROMs aren't scanned at all.
Maybe. on the other hand once I had 27 ROMs installed without a problem.
Quote from: ralferoo on 23:42, 27 May 14
So, in summary, I'd say if someone is using the standard firmware, there should be no issue. With a modified firmware to accept more than 16 ROMs, this table will need to be moved somewhere else. I'd suggest the following additional patches (untested though):
Quote from: TFM on 22:51, 27 May 14
@Mr_Lou: Can you provide a screen dump or list of ROMs which cause problems? So the error could be reproduced.
Quote from: ralferoo on 23:52, 27 May 14I also believe that extension roms will not be registered here.
This table will only be updated for background ROMs (i.e. with RSXes). Foreground ROMs take over the system and so don't need the IY value and extension ROMs aren't scanned at all.
So, if you only put extension ROMs in the top 16 slots, you'd not experience any corruption.
Quote from: arnoldemu on 11:18, 28 May 14
The "booster" rom uses the standard firmware. So does the booster rom allocate some memory to fit the additional information in, or if used with a standard OS does it also cause problems?
Quote from: redbox on 11:22, 28 May 14So it allows the firmware to register roms above 16, it'll then try and do that and corrupt memory.
The Booster ROM just patches the firmware (by patching the jump lock). It's a very simple patch and doesn't patch the RST routine in the OS ROM which is what leads to it's instability.
Quote from: mr_lou on 08:08, 28 May 14
...But this so called adult life is a real time waster. You have to do boring stuff like work and such, so it'll be a while before I have the time.
Quote from: dcdrac on 17:03, 01 June 14Of course, X-Mem brings the firmware 3.14, that was fixed along time ago. In our case we use the range $BE00-$BE3F for storage the new pointer table.
will these roms work in the new Xmem and if so how doi transfer them?
Quote from: SyX on 18:36, 01 June 14
Firmware 3.14, that was fixed along time ago. In our case we use the range $BE00-$BE3F for storage the new pointer table.
Quote from: redbox on 22:30, 01 June 14
I must have missed this... do you have a download link?
Quote from: CraigsBar on 02:30, 02 June 14The head over heels roms are expecting the roms to be in position 9,16 and 17.
On a separate note has anyone managed to get the ROM version of Head over Heals to actually run?
I get a screen of garbage on both my 6128plus and Schneider CPC 6128.
Quote from: IanS on 02:52, 02 June 14
The head over heels roms are expecting the roms to be in position 9,16 and 17.
If you want to relocate them, you need to modify bytes &c05b (rom 1), &c06b (rom 2) & &c07b (rom 3) of rom 1.
Quote from: Jonah (Tasteful Mr) Ship on 16:38, 01 June 14Don't forget Ciudadela Fantasma (http://www.cpc-power.com/index.php?page=detail&num=9271) and A Chance in Hell (http://www.cpc-power.com/index.php?page=detail&num=10602) !! ;)
the other FreeScape 3D titles (CASTLE MASTER, THE CRYPT, TOTAL ECLIPSE, TOTAL ECLIPSE TRAINER, SPHINX JINX and the 3D INTRODUCTION GAME)
Quote from: IanS on 02:52, 02 June 14
The head over heels roms are expecting the roms to be in position 9,16 and 17.
If you want to relocate them, you need to modify bytes &c05b (rom 1), &c06b (rom 2) & &c07b (rom 3) of rom 1.
Quote from: CraigsBar on 02:32, 02 June 14That must be an urban legend :P, you can download it from the X-Mem page (http://www.centpourcent.net/store/p55/X-MEM_Board.html), everything is available there... aside the ungrateful nazi pirates and spanerds buccaneers clonning Bryce, Pulkomandy, TotO and any interesting new boards.
As I understand it is not generally available yet, and requires a X-Mem.
Hopefully soon :)
Quote from: Devilmarkus on 15:18, 02 June 14No readme? (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/the-megaflash/msg29774/#msg29774) :P
Thankyou for this information, as there was no readme included...
Quote from: SyX on 15:40, 02 June 14
No readme? (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/the-megaflash/msg29774/#msg29774) :P
And the Bomb Jack readme (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/the-megaflash/msg29866/#msg29866), just in case ;D
Quote from: SyX on 16:45, 02 June 14
Added! :)
No excuses Markus, takes 1 minute search in the forum for who made that rom and asking him, and other thing no, but asking for you is nothing strange XDDD
Quote from: SyX on 16:45, 02 June 14To be fair, I did the same thing. Ages ago (maybe a year ago), I just browsed the wiki page and downloaded all the ROMs that sounded interesting. I don't recall seeing a notice about requiring certain slots and when they didn't work where I put them (I think I used 4,5,6), I just assumed they didn't work moved on the next ROM and played that instead!
No excuses Markus, takes 1 minute search in the forum for who made that rom and asking him, and other thing no, but asking for you is nothing strange XDDD
Quote from: Jonah (Tasteful Mr) Ship on 12:20, 03 June 14But feel free to rebuild it, as you can read in the original post was a test during thefirst days of the megaflash, nowdays i would make very different.
To be honest, I was about to rebuild the HEAD OVER HEELS ROMs with the generic builder... but if it works as is, then there's no point!
Have 4x |4K demos, instead!
Quote from: SyX on 14:39, 03 June 14
For example, i would make something similar to WHDLOAD, having a game launcher rom and putting the games in roms that can not be initialized, then in this launcher rom is stored a list that is showed at start and you can choose with Cursors and Enter the game to launch. Then add a patch at each game for you can return to the launcher and as the launcher rom is practically empty, you can storage there the game hiscores in a similar way like a PSX memory card works :) And of course, define an standard for everyone can use it.
Quote from: redbox on 15:13, 03 June 14Yes, we talked about that and the idea is so brilliant still :)
I remember thinking something along the lines of this... ah, so many ideas, so little time ;)
Quote from: SyX on 14:39, 03 June 14I can't compress it any further than 3 ROMs, anyway... so rebuilding would be pointless at this time. The only viable reason would be so it can be installed to any ROM slot, that's all.
But feel free to rebuild it, as you can read in the original post was a test during the first days of the megaflash, nowdays i would make very different.
Quote from: SyX on 14:39, 03 June 14
For example, i would make something similar to WHDLOAD, having a game launcher rom and putting the games in roms that can not be initialized, then in this launcher rom is stored a list that is showed at start and you can choose with Cursors and Enter the game to launch. Then add a patch at each game for you can return to the launcher and as the launcher rom is practically empty, you can storage there the game hiscores in a similar way like a PSX memory card works :) And of course, define an standard for everyone can use it.
Quote from: CraigsBar on 01:53, 07 June 14
Anyway... are requests being taken for rom conversions? ;) and if so what about Deflector? Yes i know this is a Speccy Port, and whilst I hate lazy programming this game is one I always found addictive and therefore hopefully it is possible that this great little game can come to a ROM (or 2 or 3).
Quote from: Jonah (Tasteful Mr) Ship on 22:18, 07 June 14
Due to total laziness on my part, here is a complete memory dump (ie; #0000-#BFFF) for |DEFLEKTOR, as requested.
It seems to work, so I'm not going to complain! ^_^
Quote from: CraigsBar on 21:47, 09 June 14I wonder how many I can get installed and working before I need another rom card LOL.
Quote from: CraigsBar on 22:31, 09 June 14The CPC-Wiki Zynaps is a nice one to show C64ers or Speccyists... well, turn DOWN the volume for the "loader" and just enjoy the amazing overscan splash-screen... then turn UP the volume for Dave Roger's amazing title tune! 3 ROMs used for good!
Now to decide what those extra spaces should be LOL
Quote from: CraigsBar on 00:49, 10 June 14I now have all 32 slots filled and no issues.
They all run, Utopia quite happily reports the RSX's for the first roms in slots 0 - 15
I have not experienced any issues with all these roms in a Symbiface II on a 6128 plus.
Quote from: robcfg on 00:44, 10 June 14
Would it be possible to convert Freddy Hardest 2nd side or Topo Soft's Spirits to roms?
Quote from: CraigsBar on 00:49, 10 June 14And in the Firmware 3.14, you can make CALL &B8E0 to get a list of roms installed in the 32 slots or CALL &B8E0,rom_number for getting the RSXs of the rom number you have choosen.
They all run, Utopia quite happily reports the RSX's for the first roms in slots 0 - 15
Quote from: mr_lou on 22:24, 09 June 14This is the list of installed ROMs in my ROMBoard.
I'm actually quite interested in hearing how many games people have managed to install without running into problems.
Quote from: Tai on 19:18, 10 June 14
This is the list of installed ROMs in my ROMBoard.
No issues detected so far.
Quote from: CraigsBar on 20:25, 10 June 14
I have just swapped my 6128 plus over with my Schneider CPC 6128 (both have centronics connectors) and the same 32 Roms all work fine there too. I wonder what combination you were having issues with mr_Lou?
Quote from: ralferoo on 22:43, 10 June 14
Did you apply the patches to the ROM that I suggested a couple of pages back?
Quote from: mr_lou on 22:53, 10 June 14
I had Bryce install a newer firmware in order to have all 32 slots available without needing the booster rom.
Quote from: redbox on 23:22, 10 June 14
If that's the OS I patched then you'll need to do the extra patches ralferoo described.
Or you can use Firmware 3.14 which is on the X-Mem page.
Quote from: mr_lou on 23:28, 10 June 14
Install the first ROM of the games in slots 1-15, and the other ROM of the games in slots 16-31.
ORG $C000
rom_type
DEFB 'G' ; It's a Game rom and firmware doesn't initialize
; because is not a Foreground or Background rom
game_id
DEFW 12345 ; CPC-Power game ID
rom_number
DEFB 0 ; 0: First rom, 1: Second, ...
game_name
DEFB 'Game name',0
launch_game
; Routine that copy the game to ram and launch it
Quote from: SyX on 02:06, 11 June 14great idea.
Then is moment to "bell the cat", and try to agree in an standard for rom games.
Quote from: SyX on 02:06, 11 June 14Let's NOT use 'G' here, the firmware already defines type 2 here for an extension rom. It'd be far better to just have some magic number after the correct byte here.Code SelectORG $C000
rom_type
DEFB 'G' ; It's a Game rom and firmware doesn't initialize
; because is not a Foreground or Background rom
game_id
DEFW 12345 ; CPC-Power game ID
...
Quote from: ralferoo on 14:40, 11 June 14The firmware defines 3/4 type of ROMs ;)
Let's NOT use 'G' here, the firmware already defines type 2 here for an extension rom. It'd be far better to just have some magic number after the correct byte here.
Quote from: arnoldemu on 15:28, 11 June 14Because it's a byte... But, better to expect a version number for... a version number, no?
The version bytes can be any value, pity Utopia and other tools may expect numbers.
02 00 00 00 05 4D 59 47 41 4D 45 4E 41 4D C5 00 .....MYGAMENAM..
Quote from: SyX on 16:35, 11 June 14
@redbox (http://www.cpcwiki.eu/forum/index.php?action=profile;u=229) is important your feedback, because you are working in a game launcher already. Are you missing anything?
;; redbox ROM
org &c000
write "CHUCKEGG.ROM"
defb 2 ; extension ROM
DtROMIdentifier:
defb "rbr"
DtROMPart:
defb 1 ; ROM part...
DtROMTotal:
defb 1 ; ...of total
DtROMName: ; description (always 12 chars)
defb "Chuckie Egg ",0
DtCompressor: ; type of compression
defb 1 ; 0 = none, 1 = exomizer, etc.
DtDestination:
defw &8000
DtLength:
defw &233e
DtExecute:
defw &9a97
DtROMData:
incbin "CHUCK.EXO" ; ROM data
.EndOfROMCode
nolist
repeat 65536-EndOfROMCode
defb &ff ; pad out unused space within ROM
rend
list
Quote from: redbox on 17:56, 11 June 14Still haven't done the code for multipart ROMs (more than 1 ROM) and am wondering if &BE00 is a safe place to hold my routine (which is less than &200 bytes)...?Well, in the moment you received a valid game rom number to launch, you are free to use the RAM as you like, because games are going to do that too.
Quote from: SyX on 18:44, 11 June 14
Well, in the moment you received a valid game rom number to launch, you are free to use the RAM as you like, because games are going to do that too.
Quote from: redbox on 20:11, 11 June 14For the 99% of CPC games, putting your code around the stack ($BE00-$BFFF) should be enough.
But there in lies the problem, finding a piece of RAM that every game etc doesn't use...
Quote from: SyX on 20:34, 11 June 14
For the 99% of CPC games, putting your code around the stack ($BE00-$BFFF) should be enough.
Quote from: SyX on 20:34, 11 June 14
But if you prefer we can do the logical thing and define an extra parameter in the rom, a pointer to a free zone (the pointer to the stack used by the game) with enough bytes for your game launcher routine. And then your code only would need to use JRs or add a routine for relocate your code in the final destination.
; ROM 0 --> main game ROM
; ROM 1 --> first adtional ROM
; ROM 2 --> second adtional ROM
; ROM n --> nth aditional ROM
org &8000 ;address of data structure
defb n ;number of aditional ROMs
defb slot_ROM1 ;ROM slot for ROM1
defb slot_ROM2 ;ROM slot for ROM2
...
defb slot_ROMn ;ROM slot for ROMn
Quote from: Tai on 15:03, 12 June 14I agree.
Each game has its own loading process (differente addresses, different compressors, etc.)
With this aproach for any new ROM game there is no need to modify the ROMLoader (much easier to maintain and it leaves the task of copying/reallocate/decrunching data to the ROM Game creator).
Quote from: arnoldemu on 15:27, 12 June 14
Why do you need a routine in RAM?
I think you can do it all from ROM with the firmware.
It has functions to read a byte from a rom and give it back to you.
Yes it would be a little bit slower but doesn't need ram and therefore would allow more roms to be installed.
Also I think you should scan all 255 roms, this will allow 2mb/4mb rom expansions to be used.
I like your idea but at this time I can't see how you can do multiple part roms.
To do a multiple part rom that can be in any position, you need to have
1) Which rom part is it.
2) which roms qualify for the other parts.
The number of other roms is good for verifying you have installed all of them.
2) is determined from the rom name. Each rom has the same rom name, with different part number.
So if you can determine which roms hold which data then you can pass this to the init function of your first game rom.
e.g. iy points like this:
01 08 09
and then your rom can handle this information to read/write the data as it needs or to install itself.
Quote from: Axelay on 12:37, 12 June 14Yes, and that was the reason for sending you that fix for running Edge Grinder in my machine, jejeje ;)
Hmm, are you sure that's good enough? Only I expect at one time 99% of CPCs had their DOS at ROM 7 too. ;)
Quote from: robcfg on 00:44, 10 June 14I am still working on a simple method of converting both parts of FREDDY HARDEST to 3 ROMs... the other option is having each part on 2 ROMs, but I thought that was a little wasteful of ROM slots!
Would it be possible to convert Freddy Hardest 2nd side?
Quote from: Gryzor on 19:35, 05 July 14I have tried to edit the ROM page and have had no joy, it has said that I need access to edit the page... Personally, I would perfer that the page had the BAR command rather than "converted to ROM by tastefulmrship". I am happy to do this for those I have converted, but I need the access rights to do so!
@Jonah (Tasteful Mr) Ship (http://www.cpcwiki.eu/forum/index.php?action=profile;u=466) : not sure what you mean by "give me access"? If you have an account on the wiki you can edit it here (http://cpcwiki.eu/index.php?title=ROM_List&action=edit§ion=9). I can make an account for you if you fee bored :)
Quote from: Gryzor on 19:50, 05 July 14Every time I have tried to edit the page it has told me that I do not have EDIT rights to update the page; you have given me the link to the EXACT right page I need to update the ROM page to my specs (ie the BAR command). Thanks for that!
This doesn't make much sense! All I did was to click on "Edit" above the ROM table and copy the link from there, how exactly were you trying to edit it?
Quote from: Gryzor on 19:35, 05 July 14
@Bryce (http://www.cpcwiki.eu/forum/index.php?action=profile;u=225) : "this page" depends on how many posts per page you have set it to show... never mind, I'll take it backwards :)
@Jonah (Tasteful Mr) Ship (http://www.cpcwiki.eu/forum/index.php?action=profile;u=466) : not sure what you mean by "give me access"? If you have an account on the wiki you can edit it here (http://cpcwiki.eu/index.php?title=ROM_List&action=edit§ion=9). I can make an account for you if you fee bored :)
PS Damn, I want me a Dynatac 8000!
Quote from: Jonah (Tasteful Mr) Ship on 18:38, 05 July 14
@Gryzor; If you give me access to edit the page, then I'm MORE than happy to update the ROMs page myself with all the BAR commands required to run the games converted with Axelay, robcfg and Octoate's ROM build code!
Quote from: Nilquader on 21:00, 05 July 14Axelay's 2 ROM build code (http://www.cpcwiki.eu/forum/games/how-to-convert-a-dsk-image-to-rom/msg68382/#msg68382) that I use EVERY DAY! Also, there's code I use from arnoldemu, SyX, redbox and others too!
Axelay and robcfg wrote rom build code? Is it published somewhere? I've only found Octoate's code.
Quote from: Jonah (Tasteful Mr) Ship on 19:42, 05 July 14Actually, upon closer inspection, I still cannot edit the page... however, I do know why, now! I'M NOT LOGGED IN! Duh! Account created and verified! ^_^
EDIT: @Gryzor; Every time I have tried to update the page it has given me the "you do not have access to edit this page" screen... however, with the link you gave I can access the editor for this page! Maybe I will use this in future to update the ROM page! Thanks muchly! ^_^
Quote from: Nilquader on 12:58, 06 July 14
Well, here is |ASTRO by Lutz Lubjuhn. I've played it a lot when I was a kid.
Quote from: mr_lou on 15:17, 06 July 14I've only found "Astro Attack" (Astro Attack - CPCWiki (http://cpcwiki.eu/index.php/Astro_Attack)) converted as ROM, but this "Astro" is another game.
Groovy. But wasn't this converted already? Or was that another Astro?
Quote from: Gryzor on 00:05, 14 July 14Yes. Very.
Is Match Day II possible?
Quote from: Jonah (Tasteful Mr) Ship on 00:35, 14 July 14
Yes. Very.
|MATCHDAY2 to play this one.
Quote from: CraigsBar on 00:40, 14 July 14Yes. Very.
Off topic time.. It's suddenly got very busy here, I assume the wrong World Cup is over. Who won? Will it be the Germans or Argentinians gloating in the office tomorrow. I personally cannot wait until the *REAL* world cup next year, and on that note (and Back on Topic) is International Rugby Simulator for Amstrad CPC (1988) - MobyGames (http://www.mobygames.com/game/international-rugby-simulator) possible?
Quote from: Jonah (Tasteful Mr) Ship on 01:10, 14 July 14
Yes. Very.
INTERNATIONAL |RUGBY SIMULATOR by those chaps from Codemasters! ^_^
Next?
Quote from: Gryzor on 09:40, 14 July 14No problem... and with the nice animation on the title-screen, there's no need for a KM_WAIT_KEY.
How about Basket Master since the Basketball World Championship is next month? :)
Quote from: Gryzor on 00:05, 14 July 14
Wow guys... someone, please make a 128-slot ROMboard...
Quote from: Jonah (Tasteful Mr) Ship on 16:39, 13 July 14And thanks for remembering me that game, i have been able to send a lot of credits fixes to CPC-Power about McLothlorien and the later Martin "Amazing Mode 0 Graphics" Holland :)
EDIT: Filling up the last 2 attachment slots is PSYCHO |HOPPER from Lothlorien back in 1989. Very pretty game, hardware scrolling and a SERIOUSLY frustrating gameplay! LOVE IT! ^_^
Quote from: SyX on 20:22, 14 July 14Both PSYCHO HOPPER and EXPLODING WALL are MC Lothlorien games. Really, really nice graphics for the time (and now, infact) and some nice hardware tricks as well! I've seen quite a few in CPC Power, but I'll keep a keener eye out from now!
And thanks for remembering me that game, i have been able to send a lot of credits fixes to CPC-Power about McLothlorien and the later Martin "Amazing Mode 0 Graphics" Holland :)
Quote from: Jonah (Tasteful Mr) Ship on 23:15, 14 July 14And in the next update in CPC-Power you will see a lot more, because i have sent to Bruno over a hundred of fixes for the credits of a lot of games :P
Both PSYCHO HOPPER and EXPLODING WALL are MC Lothlorien games. Really, really nice graphics for the time (and now, infact) and some nice hardware tricks as well! I've seen quite a few in CPC Power, but I'll keep a keener eye out from now!
Quote from: Gryzor on 12:17, 14 July 14KM_WAIT_KEY is better known as CALL &BB18 and can be used as a way of displaying a game's loading screen for as long as the user wishes to view it; ie they press any key to continue. As BASKET MASTER has a doody little animation on the title screen (try RUNning the game file on the original to see where the animations "hang" on a blank screen) there's no need to have that key press requirement in the single file build.
(not sure what you meant with the KM_WAIT_KEY?)
Quote from: SyX on 02:47, 15 July 14Nich has done a quick fix for that; his single file +3 trainer (on CPC Power) has 19 stars for level 7 instead of 20.
And in there is a lot more interesting things to do. For example, the bug in the level 7 of Edd The Duck (http://www.cpc-power.com/index.php?page=detail&num=318), where only appears 19 of the 20 stars that you need to complete it. This bug happens in the ZX version (http://www.worldofspectrum.org/infoseekid.cgi?id=0001572), but the speccy people has fixed it. And the fix (http://www.worldofspectrum.org/knownerrors.cgi?id=0001572) should be not difficult to "port" to CPC and i imagine the corrupted tiles happen too and can be fixed in the same way. Even maybe the level editor (http://www.worldofspectrum.org/infoseekid.cgi?id=0010492) for this game could be used for making one for CPC... if anybody has time, feel free of taking a look.
Quote from: Jonah (Tasteful Mr) Ship on 10:47, 19 July 14
The addictively insane SUPER PIPELINE 2. use |SP2 to get fed up with that bloody ingame tune! ^_^
Quote from: mr_lou on 11:10, 19 July 14
Was anyone working on a menu-system for these game roms?
Quote from: Nilquader on 15:40, 19 July 14
Have you seen my post about the Megaflash QuickStart some posts earlier in this thread? Converting a game to ROM - and LOTS of ROM files inside! (http://www.cpcwiki.eu/forum/games/how-to-convert-a-dsk-image-to-rom/msg81909/#msg81909)
Quote from: nitrofurano on 20:48, 18 August 14Yes these could be used but of course like most CPC games they need patching to run on joystick/joypad.
btw, is there any chance on running any of these roms on GX4000? ;)
Quote from: arnoldemu on 15:42, 19 August 14Works perfectly on a 6128plus, but loops on copyright message on a GX4000
Attached is one proof of concept. This uses unpatched roms.
and two more. it didn't take long.
Quote from: gerald on 16:34, 19 August 14I keep forgetting the gx4000 effectively has no disc rom. I'm betting it shows the basic page instead.
Works perfectly on a 6128plus, but loops on copyright message on a GX4000
I've seen you are putting the game ROM on slot 7 (upper 16k of the 64kcartridge), with a minimal ROM0 (basic). Do the rom 7 maps to the upper 16k of the cartrigde when in diskless configuration ?
I have no 464plus to test :(
Quote from: arnoldemu on 19:53, 20 August 14Are you sure you uploaded the updated file ? The .bin is identical to the previous version (and cpr still loops on gx4000 :D )
New version to try. I patched the OS.
Quote from: Gryzor on 19:50, 25 August 14Ok, ok. So I've been busy at work instead of ROMing games. Well, here's a new one for you all. ^_^
Haven't been here in ages because I'm afraid of how many new games will have been released. I was right. Not enough games...
Quote from: gerald on 21:41, 20 August 14No I'm not sure.
Are you sure you uploaded the updated file ? The .bin is identical to the previous version (and cpr still loops on gx4000 :D )
Quote from: arnoldemu on 23:09, 25 August 14No problem, post it, I will test it :)
No I'm not sure.
I will be having another go at this soon. Gerald, it would be great if you would test the new file when it's ready.
Quote from: Bryce on 22:42, 09 October 14
Can you give Steve Davis Snooker a go? It's completely written in BASIC too as far as I can remember.
; display screen
ld hl, screen
ld de, $4000
call deexo ; decompress title screen
ld b, 66
ld hl, inks
call printn ; set inks
ld hl, $4000
ld de, $c000
ld bc, $4000
ldir ; display title screen
Quote from: arnoldemu on 19:52, 23 October 14Oh, that would be extremely slow... If i can't find a better solution, I would write s simple RLE-based compression algorithm which doesen't need to read from RAM. Thst shold work at least for simple images...
You may be able to use a modified exomizer which uses one of the lower kernel functions to read the ram under the rom and restore the rom again.
One of the KL RAM functions will do it I think.
Quote from: Nilquader on 20:24, 23 October 14
Oh, that would be extremely slow... If i can't find a better solution, I would write s simple RLE-based compression algorithm which doesen't need to read from RAM. Thst shold work at least for simple images...
Quote from: Jonah (Tasteful Mr) Ship on 15:45, 31 October 14many many thanks for all your work on these. That provide an amazing gift to all x-mem / symbiface / romboard owners. Sweevos world is a great one to go out on. The is again.
I have a few ROM games lurking in my ROM directory of WinAPE... I can't be arsed doing any more, so here are my final ROM games.
All of them GARGOYLE GAMES games. I wanted to do them all, but I've simply run out of motivation.
|SWEEVO'S WORLD, |DUNDARACH and the existing trained one-file of HEAVY ON THE |MAGICK.
Quote from: CraigsBar on 15:52, 31 October 14
many many thanks for all your work on these. They provide an amazing gift to all x-mem / symbiface / romboard owners. Sweevos world is a great one to go out on. Thanks again.
Craig
Quote from: CraigsBar on 15:52, 31 October 14No problems. I was bored and converting games is easy... just like converting TERRA |COGNITA for example, on one ROM, with a new loading screen (ie not MODE 2) just for the sheer fun of it.
many many thanks for all your work on these.
Quote from: Gryzor on 12:48, 21 June 15Still room for both in my book.
Boy how time flies. I guess people have moved over to cartridge conversions!
Quote from: McKlain on 16:54, 21 June 15@arnoldemu is already on it. [emoji3]
I wanna know how to convert roms to cartridges [emoji23]
Quote from: McKlain on 16:54, 21 June 15I still have ALL of my single-files in .asm format (which are the basis for all my ROM conversions) if you want to experiment. However, CPCnorm games on a CPC+ console without upgrading the games, first? Why? I see no point. If someone was to (at least) change the palettes to CPC+ then maybe it's viable, otherwise, it's not for me.
I wanna know how to convert roms to cartridges :laugh:
Quote from: McKlain on 19:24, 21 June 15Fair point.
I have a 6128 plus and there is a lot of interesting non-game roms that could be used with the C4CPC.
Quote from: Jonah Ship on 19:31, 21 June 15I woudl use Brunword Elite to this day if I could find a way of printing from it to a modern printer. I refuse to buy a BW epson compatible printer for just 1 machine.
Fair point.
I don't usually care for non-game (or non-demo) things on CPC. I've got a PC for those.
Quote from: Gryzor on 16:22, 23 June 15Surely that should drop out and into CPM (dr logo or supercalc) or protext. A basic prompt to me says "load another game, you were not great at that one"
Heheh, "no more gaming for you, go do your homework you lazy bum!" :D
Quote from: CraigsBar on 16:45, 23 June 15
Surely that should drop out and into CPM (dr logo or supercalc) or protext. A basic prompt to me says "load another game, you were not great at that one"
Quote from: SuTeKH/Epyteor on 12:01, 24 June 15Yeah, even changing a pseudo wont change that! ;D
And people wondered why this thread had died...
Obvious troll is a troll!
Quote from: SuTeKH/Epyteor on 12:01, 24 June 15EDIT: It works fine on WinAPE, JavaCPC, WinCPC, Caprice Reloaded and my own CPC-6128. Maybe having "other software" installed causes issues with Axelay's ROM build configuration. Maybe someone needs to look into that incase someone else decides to use that ROM build.Indeed, other ROMs bring the problems, for example Maxam, Protext, Utopia, other DOS (on position ROM 6). So pretty much any ROM. It runs fine and without problems with FutureOS though. :P
Quote from: nitrofurano on 13:15, 26 March 16Alien8 was converted above (but use |ALIEN8 not !ALIEN8 as the ROM text suggests), Alien Highway is in this thread (somewhere) and Arkos is already ROM'd by Targhan.
i don't know if i can ask for Tuareg, Wells&Fargo, Emilio Butragueño, Aspar, Perico Delgado, Death Wish 3, Defenders of the Earth, African Trail Simulator, Pang, L'Aigle d'Or, L'Aigle d'Or Le Retour, Alien 8, Alien Highway, AMC, Angel Nieto Pole 500, Ant Attack, Arkos, Atomic Driver, Attack of the Killer Tomatoes... - thanks!!! ;) - and anyway, are there tutorials or documentations that might help us to help converting as well?
Quote from: nitrofurano on 13:15, 26 March 16
i don't know if i can ask for Tuareg, Wells&Fargo, Emilio Butragueño, Aspar, Perico Delgado, Death Wish 3, Defenders of the Earth, African Trail Simulator, Pang, L'Aigle d'Or, L'Aigle d'Or Le Retour, Alien 8, Alien Highway, AMC, Angel Nieto Pole 500, Ant Attack, Arkos, Atomic Driver, Attack of the Killer Tomatoes... - thanks!!! ;) - and anyway, are there tutorials or documentations that might help us to help converting as well?
Quote from: TFM on 21:57, 07 June 16
Softbrenner allows you to use as much files as you want, just add one after the other.
Quote from: TFM on 22:57, 07 June 16
Ok, this is clear! You need to change the BASIC loader in a way that every LOAD command will be changed into an RSX, since the loaded parts are part of the ROM(s). The program can't apply AI to any BASIC program. So one has to change loaders in BASIC with the hand.
Let's say the BASIC loads a Binary at &9000 then replace this line in the BASIC program to an RSX command (for example !LOADBIN). And use the same name for the Binary in the ROM. Also use the correct loading address.
Is this clear in my broken English, or do I need to go more into detail?
EDIT: Look at the ROMs I posted, they can serve as an example. Look at the BASIC loader.
Quote from: TFM on 23:22, 28 March 13
Ok... in quick...
Install Softbrenner ROM in an MegaFlash or CPC emulator
Insert Disc with "Munch.", the 15 KB file
Start Softbrenner with !SB
Type "M" for Make ROM
Press "X" for add RSX
Move black bar over file "MUNCH." (ok, it is there already)
Press RETRUN to load file
Now you see a RSX command, that can be changed. Press DEL just once to delete the point
On the screen you see "!MUNCH", press Return
Press "2" for "load file into RAM and autostart"
Press Return twice to admit the load and autostart addresses of the file
Press N for No autostart after reset
Now press "S" for save ROM
And that's it you have your ROM!!!
QuoteOne last thing remains to do: You must adapt the checksum. That can be done with the small basic program "checksum.bas"Again, I used CPCDiskXP 2.51 (Used the 'Disc Editor'!) to transfer the ROMs between a 40 track, 178k DSK image and my PC. Superb!!!
Quote from: SuTeKH/Epyteor on 23:09, 06 September 18It happens!!! (Good excuse to highlight my post above!)
[oops... wrong thread!]
QuoteIt's all done (snip) here:https://drive.google.com/file/d/1WvOa6OYQ4kV5J3F1DfyIDjy3FlStYAQi/view?usp=sharing
QuoteI really like Softbrenner, the only 'missing thing' is that it doesn't add the checksum to &FFFF. But since it was made for the ROM-RAM-Box they didn't think about adding a checksum when saving a ROM. But I guess we can life with that, since it can be done by hand easy. :)Check out my disc above...I've made something...
Quote from: mr_lou on 20:03, 18 September 13Remove the disc from the drive emulation BEFORE you back it up. The drive gets cached I think and the changes are written when you exit WinAPE or eject a disc. So before closing WinAPE, eject your drives first, then it won't mess up the INI/discs and need a reedit!!! I did this initially too...
Ok, got the Softbrenner ROM working, but have to give up anyway.
Can't do this using any emulator on Linux it seems (?). Caprice doesn't let me save files to disk. Whatever files I save is gone from the DSK again after a reset.
And Arnold doesn't seem to support adding additional ROM files.
I guess I'll have to wait till there's time and room for me to setup my CPC+ somewhere.
3D GRAND PRIX |
750CC GP |
1943 |
ARKANOID |
BASKET MASTER |
EMILIO BUTRAGUENO |
COMMANDO |
COP OUT |
CYBERNOID |
CYRUS II |
DAN DARE |
DAN DARE III |
DEFLEKTOR |
DRUID |
DYNAMITE DAN |
INTO THE EAGLE'S NEST |
EMOTION |
EXOLON |
FERNANDEZ MUST DIE |
FROST BYTE |
FRUITY FRANK |
GHOSTS N GOBLINS |
GHOSTBUSTERS |
GOLDEN TAIL |
GREEN BERET |
GUNFRIGHT |
MAD MIX |
MAGICA* |
MARIO BROS |
MATCHDAY |
MATCHDAY II |
MEGA PHOENIX |
METRO CROSS |
MISSION ELEVATOR |
NEBULUS |
PACMANIA |
PAPERBOY |
ROLLING THUNDER |
RYGAR |
SABOTEUR |
SABOTEUR II |
SLAP FIGHT |
SMASH TV |
ZYNAPS *This disk version of Magica runs only on CPCE, I made the ROMs anyway. |
$ dd if=NEBULUS1.ROM of=nebup1.rom bs=128 skip=1
$ dd if=NEBULUS2.ROM of=nebup2.rom bs=128 skip=1
Quote from: VincentGR on 00:26, 07 March 21
Mountie Micks Death Ride from the CPC Compactages version.
|MOUN
Quote from: Gryzor on 10:18, 08 March 21
Hehe for some reason I love this :D
https://www.youtube.com/watch?v=PXWNp0pDO2I (https://www.youtube.com/watch?v=PXWNp0pDO2I)
Quote from: VincentGR on 00:27, 09 March 21
I use the mighty M4.
Quote from: VincentGR on 10:32, 13 March 21Why not |ZORRO ? :-\
Zorro
|ZORR
Quote from: arislab on 01:53, 13 March 21
next... one of my favorites Shoot'em ups...
Bedlam
Command : |BED