News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Bryce

DMA Problem with ROMBoards

Started by Bryce, 18:18, 12 March 12

Previous topic - Next topic

0 Members and 7 Guests are viewing this topic.

Bryce

Here's a summary of what I tested and the results:

FOS (oG) installed with installer using a 6128+ : Crashes on Plus, but runs perfectly on Classic 6128.
FOS (Plus) installed with installer using a 6128+ : Crashes on Plus.
FOS (oG) installed with installer using a Classic 6128 : Crashes on Plus, but runs perfectly on Classic 6128.

I haven't tried manually installing the old "10-13" FOS ROMs, but I might give it a go tonight.

Bryce.

MacDeath

#51
QuoteOk, so it's definitively a problem of the CPC Plus hardware.
The PLUS' DMA sound channels were already notorious for being bugged a lot...
That's even a miracle it is possible to actually use them somewhat. :laugh:


rick dangerous 128PLUS does use some DMA...
Have you tried it with the RomBoards plugged ?

Bryce

No, because other DMA sound games (Burnin' rubber) works fine, but maybe I will give that a go too.

Bryce.

MaV

Quote from: Bryce on 16:32, 15 March 12
No, because other DMA sound games (Burnin' rubber) works fine, but maybe I will give that a go too.

I tested that configuration: CPC 6128+ with the ROM board and Rick Dangerous+. That worked ok, but my Megaflash does not contain FOS yet.
Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

MacDeath

#54
QuoteNo, because other DMA sound games (Burnin' rubber) works fine
Well, burning rubber cartridge is a ROM based game, while rick is a "RAM based game".

haven't understood all (tl dr sort of) but... what is the problem/issue ?

the DMA jam the computer when you use some test routines from a test cartridge ?
Or is the test program ROMboard based (FOS program) ?

TFM

IMHO it's worth giving RD+ a chance. And if it runs - great - play the nice game a while. If not, you are one step forward.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

andycadley

Quote from: MacDeath on 18:49, 15 March 12
the DMA jam the computer when you use some test routines from a test cartridge ?
Or is the test program ROMboard based (FOS program) ?
DMA was just a red herring. The problem was that the Amstrad Test Cartridge incorrectly pages one of the normal ROMs when it ought to page in one of the cartridge ROMs. If there aren't any external ROMs, that's fine and it just works, but with a ROMBoard attached it causes a crash. It only appeared to have anything to do with DMA because the test cartridge just happened to be using the ROM in question for it's DMA routines.
I'm still putting money on the issue lying with the keyscan routines.

TFM

Quote from: andycadley on 19:35, 15 March 12
... The problem was that the Amstrad Test Cartridge incorrectly pages one of the normal ROMs when it ought to page in one of the cartridge ROMs. If there aren't any external ROMs, that's fine and it just works, but with a ROMBoard attached it causes a crash.

Ah! Got it now! Thanks' for telling us!!!  :) :) :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TFM

Quote from: Bryce on 10:23, 15 March 12
Here's a summary of what I tested and the results:

FOS (oG) installed with installer using a 6128+ : Crashes on Plus, but runs perfectly on Classic 6128.
FOS (Plus) installed with installer using a 6128+ : Crashes on Plus.
FOS (oG) installed with installer using a Classic 6128 : Crashes on Plus, but runs perfectly on Classic 6128.

I just simulated the process of installing FutureOS (oG) on the 6128 Plus using the WinApe emulator. On WinApe everything runs well. I can't find any problem.

@Bryce: Can you read out the ROMs which aren't working with the Plus and send them (in any format) to me? Maybe I can find a problem in them!?!

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

Will that really help? The fact that these images work on the Classic CPC would suggest that they have been correctly saved on the MegaFlash.

Bryce.

MacDeath

#60
Keyboard faulty test routine is the major uncompatible issue between Old (CPC) and Plus (yeah, those ones... + ...)... even according to CPCpowar site (french, ok... you got a point...)

you know, the "barbarian" (palace soft... the first, not the  "barbar2" cartridge... off course...) doesn't work on "PLUS" stuff...

ASIC was already know to screw up many things...
Also GX4000 is not supposed to have extra stuff on an extpansion port... will 6128/464/PLUS are just some sort of by-products ordered in order to use old parts... :(

And last, IMO, DMA aren't supposed to work that well on CPCs...
I mean instead of a proper RAM/ROM/Memory/VRAM management, we had some wait state put on the CPU (Z80...) so the w<hole stuff is even slowlier than a properly used Speccy...
(sacrify 32K of RAM and you get a 192x256x16 instead of a 256x192x2(8/16 attributed))

While not the baddest 8bit computer, the PLUS was still a rushed affair...

Also the PLUS' ROM management have to deal with both cartridge and Expansion port ones.
And most über alles... those ROMboxes and "FOS" were doen a large era after....

beaker

Quote from: MacDeath on 01:01, 16 March 12
you know, the "barbarian" (palace soft... the first, not the  "barbar2" cartridge... off course...) doesn't work on "PLUS" stuff...

Myth: History in the Making wasn't another one was it? Just trying it now and it gets to the credit screen and just locks up  :'(
I think I am going to invest in a classic CPC 6128 at this rate  :D

MacDeath

#62
QuoteI think I am going to invest in a classic CPC 6128 at this rate
CPC6128 is best CPC actually... Tape AND Disks... in a compact design... with actually the exact amount of minimum RAM actually needed by such kind of computer.

PLUS range wasn't that complete despite the same mainboard with 464 and 6128... (both uncomplete, but completable....)

CPC664 is Disk version of CPC464... and blue keys are nice indeed... (yet faulty keyboard most of time)
but CPC6128 is to me what CPC should always have been... (in colour monitor it is always better too...) : the "real actual"default config...

But yeah... many games were "recently homebrew patched" in order to deal with "PLUSes"...

Just lurk more at CPCpower ...

Also must check wether the burnin'rubber Basic or the Basic1.1 cartridge is in use... (the one without the game... supposed to deal with more compatibilties issues...)

beaker

Thanks for the advice MacDeath - I totally agree with you, the original 6128 was the better machine. I had the 464 as a kid, then bought the original 6128 about 8 years ago but sold both before I moved 5 years ago. Always fancied a 6128+ after seeing Prehistorik 2 in AA back in 90's so decided to treat myself at the end of last year. I'll have to buy one again and run both  :D

Just going to look at CPCpower now...

TFM

Quote from: Bryce on 00:06, 16 March 12
Will that really help? The fact that these images work on the Classic CPC would suggest that they have been correctly saved on the MegaFlash.

Bryce.

Well, I can't reproduce the problem with any kind of emulators (even when using 32 ROMs on WinApe). So I'm at a point where I don't know what to do.

Maybe the installation was faulty. I got not idea ...

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

andycadley

Quote from: TFM/FS on 02:50, 16 March 12

Well, I can't reproduce the problem with any kind of emulators (even when using 32 ROMs on WinApe). So I'm at a point where I don't know what to do.
I don't think any emulators bother to emulate the issue with keyscanning routines when using a Plus model.

Bryce

I also don't think the emulators are 100% identical to the real hardware, so you (TFM) are probably going to have to wait until you have access to a real Plus.

I have my original 464, a 6128 and a 6128+ so that I can test my hardware on almost all situations. It's always good to know that the hardware will work on all machines. I use the 6128+ the most, but only because it takes up less desk space. The Classic 6128 is still my favourite. Although the Plus has to deal with both Cartridge and expansion ROMs, from a hardware point of view, they did it rather well and it's pretty transparent to the hardware designer.

Bryce.

arnoldemu

Quote from: andycadley on 07:43, 16 March 12
I don't think any emulators bother to emulate the issue with keyscanning routines when using a Plus model.
Arnold emulator does.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Will it also allow you to emulate a ROM Board connected and crash when the DMA test runs?

Just for my understanding (I know nothing about emulation): How do you go about fully emulating the ASIC, when the source code of the ASIC is unknown?

Bryce.

arnoldemu

Quote from: Bryce on 10:11, 16 March 12
Will it also allow you to emulate a ROM Board connected and crash when the DMA test runs?
it might do. If it doesn't I'll make sure it does. (you have proven the hardware already crashes - I may need to test it on my cpcs to confirm exact operation).


Quote from: Bryce on 10:11, 16 March 12
Just for my understanding (I know nothing about emulation): How do you go about fully emulating the ASIC, when the source code of the ASIC is unknown?
I write lots of programs which exercise particular hardware features, I even try and get it to do things it is not documented to do, just to see what it actually does (often it is what is documented, but sometimes not always).  I try to read/write every byte I can and I find out interesting things.
Once I find something weird I try to find the pattern to work out what it's doing.

The emulator is a simulation, it has functions to handle reading from memory, reading from I/o port, writing to memory, writing to i/o ports.
It takes address and data. I need to simulate the same results you would see on a real machine when you do the same operations.

Timing is not perfect, because I don't go down to the exact clock cycle on most things. At most I update every 4T states, because that is the speed for memory read/write and i/o read/write, but it's often accurate enough for almost all.

So the quick answer is: I test it, and I try to do things that are not documented.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: Bryce on 18:18, 12 March 12
Hi all,
     while experimenting with some hardware here, I encountered a strange/interesting issue with the CPC6128+. If I connect a MegaFlash to the Plus and then try to run something that uses DMA Sound, the CPC freezes. I've connected other ROMBoards and they do exactly the same, so it's not a dodgy MegaFlash. I also didn't have ROMs 0 or 7 enabled on the MegaFlash. I can see no hardware reason for this, unless it's a bug in the ASIC. Does anyone else have a Plus and a ROMBoard to test this? Is it just my Plus, or is it a design bug?

Bryce.
Which roms did you have set in the megaflash, especially in slot position 1?

In Arnold: If I set the "chuckie egg" rom into position 1 in the "emulated" megarom (flash part not emulated yet ;) ), and I run the dma test, it doesn't show the keyboard part of the test and quits out.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: Bryce on 19:54, 12 March 12
I'm running the Diagnostic Cartridge. Everything including Sprites, 4096 Colours etc work fine. If a ROMBoard is plugged in the DMA Sound test freezes just before it should start playing music. This even happens if the ROMBoard has no ROMs installed. If I remove the ROMBoard the test runs as it should. The plus has no further mods or expansions connected at the time.

Bryce.
no roms are active..?
so romdis is never asserted?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Ah, that's not how real hardware works. Even if you connect an empty ROMBoard, it will still set ROMDIS if you try to access an empty slot.

I had nothing installed in position 1.

Bryce.

arnoldemu

Quote from: Bryce on 15:06, 16 March 12
Ah, that's not how real hardware works. Even if you connect an empty ROMBoard, it will still set ROMDIS if you try to access an empty slot.

I had nothing installed in position 1.

Bryce.
no, not all rom boards do this.

I think they only assert romdis if the slot has been made active with a switch... does the megarom do the same?
so cpu is essentially reading 0x0ff for that rom data.

I've seen that normally if the switch is off on a romboard, you will see basic rom data at this slot because that is the "default" when romdis is not asserted.


My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

Oh yeah, that's true, I forgot about ROMBoards with the switches. The MegaFlash doesn't do that, mainly because the individual switches take up too much space and with a single Flash instead of multiple EPROMs, the switching is rather more complicated, so I decided not to incorporate that feature.
The MegaFlash sets ROMDIS if any ROM between 0 and 31 is initialised (except 0 an 7 which can and need to be seperately fully disabled), but the CPC just sees 16K full of &FF if the slot is empty.

Bryce.

Powered by SMFPacks Menu Editor Mod