Amiga.org

Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: yaqube on March 03, 2008, 08:22:21 PM

Title: MiniMig NTSC
Post by: yaqube on March 03, 2008, 08:22:21 PM
Hello guys!

I am working on an ECS implementation. I've decided to release intermediate version of the firmware which allows to switch between PAL and NTSC screen modes (or rather PAL-60Hz since there is no short/long line toggling and CPU bus runs at PAL frequency). This is done by a jumper which was used to switch between 15kHz and 31kHz mode.

The video output is only VGA compatible but I've implemented vertical and horizontal interpolation to make the display less blocky (you can independently enable each interpolation by putting a jumper over appropriate pins of the user i/o header - the details are in the picture attached with the firmware file). This is a temporary solution and in the final release it will be done by OSD menu. (PIC firmware upgrade will be necessary.)

If you can test some NTSC versions of games please do this and tell me if they work correctly or not.
Please also share your opinion how you like the interpolated display.

You can download the new firmware from:
http://www.mediafire.com/?mywzlxynsl1

Have fun!
Title: Re: MiniMig NTSC
Post by: AJCopland on March 03, 2008, 08:57:40 PM
Good luck with it. I (still) haven't got a MiniMig built yet but tried to download the file to have a look at what you've done so far but I'm unable to download it. I just get an empty file.

Andy
Title: Re: MiniMig NTSC
Post by: Dennis on March 03, 2008, 09:37:39 PM
Nice!

I will try it out tomorrow.

Dennis
Title: Re: MiniMig NTSC
Post by: freqmax on March 03, 2008, 09:42:46 PM
Download link without all javascript-crap & popup ads:
http://www.freewebs.com/freqmax/minimigQ20080303_zip.bin
Code: [Select]

Archive:  minimigQ20080303_zip.bin
 Length   Method    Size  Ratio   Date   Time   CRC-32   Name
--------  ------  ------- -----   ----   ----   ------    ----
   46247  Defl:X    36882  20%  03-03-08 19:46  848702b6  minimig_20080303.JPG
  212392  Defl:X    80016  62%  03-03-08 20:15  2e4bc2fc  minimig1.bin
--------          -------  ---                            -------
  258639           116898  55%                            2 files


Source please :)
Title: Re: MiniMig NTSC
Post by: alexh on March 03, 2008, 10:02:15 PM
Nice to see someone doing something at last.

Quote

freqmax wrote:
Source please :)

Yup. Under the terms of the MiniMig license yaqube, you've got to release the source code for all binary releases, even intermediate ones.

This is a good place to discuss MiniMig technical ideas

http://gamesource.groups.yahoo.com/group/minimigtg68/

Several individual people are all working towards ECS compatibility. RedskullDC has already released some mods to the blitter. Why not join together and share the work?
Title: Re: MiniMig NTSC
Post by: freqmax on March 03, 2008, 10:29:18 PM
Is the sprite problem related to the blitter?
Title: Re: MiniMig NTSC
Post by: alexh on March 03, 2008, 11:17:23 PM
I dont think so.
Title: Re: MiniMig NTSC
Post by: HenryCase on March 03, 2008, 11:21:12 PM
@yaqube
Great stuff! Keep it up. :-D

Quote
alexh wrote:
Several individual people are all working towards ECS compatibility. RedskullDC has already released some mods to the blitter. Why not join together and share the work?


I agree. Better to join forces, you'll get results quicker that way.
Title: Re: MiniMig NTSC
Post by: alexh on March 10, 2008, 11:10:46 PM
Any news if this works? I dont see any source code :-)
Title: Re: MiniMig NTSC
Post by: Crom00 on March 10, 2008, 11:48:57 PM
Works great, just tried it out on a DELL 19" 60hz only LCD.
You have to enable the 2 jumpers as noted in the included JPEG.

Just rummaged through my box of cables. I have a PC Video Toaster VGA to component cable so if someone wants to code a component version of the FPGA core it'd be quite interesting to see if that works.

Gonna try some games in NTSC.
Title: Re: MiniMig NTSC
Post by: Crom00 on March 11, 2008, 12:14:28 AM
Works ok some NTSC display issues, but I don't have a real working NTSC Amiga to check against. All the stuff I played before works fine.

LOOKS GREAT on a 4:3 Dell VGA monitor.

Title: Re: MiniMig NTSC
Post by: Belial6 on March 11, 2008, 04:21:38 AM
So, is this a firmware fix to the MiniMig 1.1?  It uses just the one crystal that is currently being used?
Title: Re: MiniMig NTSC
Post by: alexh on March 11, 2008, 09:14:33 AM
Yes I believe so. Shame the author seems to have not returned here and not released the source.
Title: Re: MiniMig NTSC
Post by: Crom00 on March 11, 2008, 03:28:20 PM
If it becomes unavailable from that download link just PM me, I can send it to whoever needs it.

Played lots more games, this makes the thing SOOOOO much more useable for US NTSC folks. Can't wait to try this on my brotherd 46" tv via VGA input for kicks.
Title: Re: MiniMig NTSC
Post by: straycat on March 11, 2008, 03:45:12 PM
Could this have any implications to those wanting to use the Minimig with higher refresh TFTs (or standard TVs perhaps) in Europe?
Title: Re: MiniMig NTSC
Post by: alexh on March 11, 2008, 04:10:40 PM
Yes.

It makes MiniMig produces 60Hz, 31KHz (VGA) and so LCD panels which have a minimum vsync of 56Hz now work!

If you read the release, you see the option to use a 15KHz monitor (i.e. a TV) has been removed.
Title: Re: MiniMig NTSC
Post by: straycat on March 11, 2008, 04:22:38 PM
Quote

alexh wrote:
Yes.

It makes MiniMig produces 60Hz, 31KHz (VGA) and so LCD panels which have a minimum vsync of 56Hz now work!

If you read the release, you see the option to use a 15KHz monitor (i.e. a TV) has been removed.


That's fantastic!  :-D
Title: Re: MiniMig NTSC
Post by: alexh on March 11, 2008, 07:24:01 PM
Unfortunately we dont know how he did it and so dunno what the impact is.
Title: Re: MiniMig NTSC
Post by: wizard66 on March 11, 2008, 07:43:20 PM
Quote

Crom00 wrote:
Works ok some NTSC display issues, but I don't have a real working NTSC Amiga to check against. All the stuff I played before works fine.

LOOKS GREAT on a 4:3 Dell VGA monitor.



The NTSC Looks nice but have serious grapix issues.
Demo 9fingers has a big vertical line on screen in NTSC mode also in PAL Mode !.
The black menu looks nice...
Thanks yaqube For this nice NTSC Option, keep up the good work !!
Title: Re: MiniMig NTSC
Post by: amigan24 on March 11, 2008, 08:54:08 PM
I actually get this same line on my real A500s / A600 / A1200s


Title: Re: MiniMig NTSC
Post by: alexh on March 11, 2008, 09:19:25 PM
What is the interpolation like?
Title: Re: MiniMig NTSC
Post by: Crom00 on March 11, 2008, 09:35:34 PM
It won't display on my Dell monitor without the Interpolation activated. Looks good, tons better than 50hz pal did on my HannsG 22" Widescreen LCD monitor.
Title: Re: MiniMig NTSC
Post by: straycat on March 11, 2008, 11:21:41 PM
Better monitor options and the ability to save to SD (save game positions, DPaint doodles etc) surely are key things to get the Minimig rolling. Hopefully yaqube might open the source for some good improvements  :-)
Title: Re: MiniMig NTSC
Post by: alexh on March 12, 2008, 12:12:18 AM
Quote

straycat wrote:
Hopefully yaqube might open the source for some good improvements  :-)

Not might. Has to. He's already broken the terms and conditions of the MiniMig GPL license by not releasing the source.
Title: Re: MiniMig NTSC
Post by: freqmax on March 12, 2008, 05:28:03 AM
Let's reverese engineer it. Can't be that hard ..?
The .bit file proves it can be done. So now we have to figure out how to do it.
Title: Re: MiniMig NTSC
Post by: wizard66 on March 12, 2008, 05:55:34 AM
Quote

amigan24 wrote:
I actually get this same line on my real A500s / A600 / A1200s




It's not the line on the right side i'm talking about but in de middel of the screen a big disrubtion.
Also other demos have disruptions.
Title: Re: MiniMig NTSC
Post by: alexh on March 12, 2008, 10:01:24 AM
I think he will have just changed the constants that I mention  here:

http://www.opencircuits.com/Minimig_NTSC

He may have also changed the core clock rate of MiniMig to NTSC using a DCM but... I doubt it.

He may have changed lots of things as his goal is an ECS release.

It would be good to check the Agnus ID value, see if he changed it?
Title: Re: MiniMig NTSC
Post by: yaqube on March 12, 2008, 09:17:27 PM
@alexh

Regarding the changes:
I have rewritten beam counters to use 28 MHz clock. I have implemented comparators to generate programmable sync and blanking as well as programmable screen size. The NTSC/PAL switch is a change of VTOTAL value in a vertical beam comparator. It is not strictly an NTSC mode since the long/short lines toggle is missing, the bus is run at PAL frequency (7.09 MHz) and the Agnus ID is not changed.

In the released version there might be actually some problems on different MiniMigs. The new beamcounters weren't properly synchronised to the bus clock. Additionally my MiniMigs use 10ns memory chips so I might not be aware of problems which some other people can encounter.

Unfortunately I don't have the source code of the released version since it was a work in progress. I have almost finished the implementation of the full ECS chipset. I will release it soon with all the sources.

It would be nice if in the meantime somebody else could implement writing to the emulated floppy drive.

  :-D
Title: Re: MiniMig NTSC
Post by: Piru on March 12, 2008, 09:56:37 PM
Quote
Unfortunately I don't have the source code of the released version since it was a work in progress.

Strictly speaking you're not allowed to distribute the binaries then. Being beta, alpha or work in progress is no excuse.

As a rule of thumb: When you put some binary of a GPL project online, make snapshot of the source at that point, too. You don't need to include it, as long as you include a written offer for it, and it is available upon request. The source must be available for at least 3 years.
Title: Re: MiniMig NTSC
Post by: Crom00 on March 12, 2008, 10:10:42 PM
Another quirk here is that games that are pal only wont work with the NTSC jumper set.

RobocodII for example.

Also notice that team 17 and bitmap brothers games don;t always work on the MiniMIG. Of course most of their games are my favs...
[
Title: Re: MiniMig NTSC
Post by: freqmax on March 13, 2008, 05:07:10 AM
Quote

yaqube wrote:
Unfortunately I don't have the source code of the released version since it was a work in progress. I have almost finished the implementation of the full ECS chipset. I will release it soon with all the sources.


I think our FPGA hackers don't mind a source code snapshot of a work in progress. It can be fixed up to work. But a .bin is something that's hard to make use of.
Title: Re: MiniMig NTSC
Post by: Elwood on March 17, 2008, 02:09:02 PM
@yaqube

Check your PM please...
Title: Re: MiniMig NTSC
Post by: alenppc on March 17, 2008, 02:38:31 PM
Quote

Crom00 wrote:
Another quirk here is that games that are pal only wont work with the NTSC jumper set.


Well, this is not a bug - this matches the behaviour of the real Amiga as well. For instance, I have a few NTSC-only Amigas which cannot be switched to PAL, and won't play PAL games correctly (or at all).

Title: Re: MiniMig NTSC
Post by: freqmax on March 17, 2008, 05:07:59 PM
This could be something that Minimig maybe can be configured to handle ..?, ie playing NTSC games on PAL and vice versa with some hybrid mode?
Title: Re: MiniMig NTSC
Post by: alexh on March 18, 2008, 10:20:58 AM
No, but once we have ECS no-one will care. They will all run PAL with the ability to switch to 60Hz in software.
Title: Re: MiniMig NTSC
Post by: Namek on March 18, 2008, 01:29:11 PM
So good, I have tested this on my Minimig and it works very good, NTSC and PAL and Vertical and Horizontal interpolation, but I like the new transparent menu.  :-P
Title: Re: MiniMig NTSC
Post by: alenppc on March 18, 2008, 03:22:26 PM
Quote

alexh wrote:
No, but once we have ECS no-one will care. They will all run PAL with the ability to switch to 60Hz in software.


Yeah, although it would be nice to find a way of scaling down 50Hz games to a 60Hz screen, in order to run all of the PAL games one normally cannot run when using a regular TV set (not talking about 1084 monitors etc).

How does this work on modern consoles? Unlike their retail counterparts, the Playstation/Xbox developement kit systems allow a PAL/NTSC software switch, so the game is always scaled up/down to a different resolution without having to rewrite the software, without any artifacts (like those you get when resizing an image through DPaint, for instance).
How do they achieve this?

I'm pretty sure it's impossible to do with the Amiga implementation, but if anyone knows how other systems cope with this, that would be nice to know. :-)
Title: Re: MiniMig NTSC
Post by: alexh on March 18, 2008, 05:11:57 PM
Quote

alenppc wrote:
Yeah, although it would be nice to find a way of scaling down 50Hz games to a 60Hz screen, in order to run all of the PAL games one normally cannot run when using a regular TV set (not talking about 1084 monitors etc).

Scaling down? You mean scale down the extra lines that PAL screens have rather than loose the bottom of the picture? Not really possible without introducing black borders. It would contort the aspect ratio.

Quote

alenppc wrote:
How does this work on modern consoles? Unlike their retail counterparts, the Playstation/Xbox developement kit systems allow a PAL/NTSC software switch

The retail versions support PAL/NTSC software switch if hacked ;-)

Quote

alenppc wrote:
so the game is always scaled up/down to a different resolution without having to rewrite the software

Not true. Games written for 576@50Hz, but  run at 480@60Hz loose the bottom of picture. They are either written with black borders in PAL, or re-coded for NTSC.

Usually they are coded for 480@60Hz and just left with black borders at 576@50Hz

Quote

alenppc wrote:
How do they achieve this?

They don't.

Quote

alenppc wrote:
I'm pretty sure it's impossible to do with the Amiga implementation, but if anyone knows how other systems cope with this, that would be nice to know. :-)

With ECS you can switch from 576@50 to 480@60 but you'll loose the bottom of the picture, and some games coded specifically for 50Hz will screw up. Modern games consoles cannot be written to require specific VBL timing these days.
Title: Re: MiniMig NTSC
Post by: alenppc on March 18, 2008, 11:00:53 PM
Quote

alexh wrote:
Quote

alenppc wrote:
How does this work on modern consoles? Unlike their retail counterparts, the Playstation/Xbox developement kit systems allow a PAL/NTSC software switch

The retail versions support PAL/NTSC software switch if hacked ;-)


Yeah, but I don't feel like soldering inside my PS2. ;-)

And as far as the PS3 goes, you can't even do it, which is a shame - I've got loads of region free PAL DVDs which the stupid thing won't play so I have to rely on my old crappy 480p DVD player which does scale them down (albeit with some conversion artifacts).

Quote

Not true. Games written for 576@50Hz, but  run at 480@60Hz loose the bottom of picture. They are either written with black borders in PAL, or re-coded for NTSC.

Usually they are coded for 480@60Hz and just left with black borders at 576@50Hz


Since I am a videogames translator, I was talking about games that I get to work with - usually those are pre-release debug versions and from my experience they run indipendently on any console be it PAL or NTSC - the picture always looks the same, just a little bit crispier if running on a PAL console (with a multisystem TV, of course).

So I always wondered how they did it. There were no black borders or parts of the picture cutoff like with the Amiga. So I guess from what you're saying is that in this case the software probably has some code to deal with it, and it's not done hardware-wise as I always assumed. Hmm.

Quote

With ECS you can switch from 576@50 to 480@60 but you'll loose the bottom of the picture, and some games coded specifically for 50Hz will screw up.


Yeah, I was aware of that. Some of the best games on the Amiga, in fact, were PAL-only and won't run on NTSC Amigas at all. Which is why I wrote all that stuff in the first place.  :lol:
Title: Re: MiniMig NTSC
Post by: alexh on March 19, 2008, 12:11:02 AM
Quote

alenppc wrote:
And as far as the PS3 goes, you can't even do it, which is a shame - I've got loads of region free PAL DVDs which the stupid thing won't play so I have to rely on my old crappy 480p DVD player which does scale them down (albeit with some conversion artifacts).

Cant you use a linux software DVD player on PS3?
Title: Re: MiniMig NTSC
Post by: alenppc on March 19, 2008, 12:18:52 AM
Quote

alexh wrote:

Cant you use a linux software DVD player on PS3?


Yeah, of course, but that's not the point. :-) I would love to be able to reflash it with a debug kit firmware, that'd be awesome...
Title: Re: MiniMig NTSC
Post by: straycat on March 19, 2008, 09:41:26 AM
My Minimig arrived (very quickly from Amigakit  :-)) and I made used this firmware straight off so I could go with my LCD monitor. Left the PAL jumper as it is and added two additional ones as instructed in the jpeg. Haven't had time to test very much yet but kick 1.3 / Workbench 1.3 looks great on my Philips LCD monitor.
Title: Re: MiniMig NTSC
Post by: straycat on April 08, 2008, 03:39:20 PM
Has anyone heard any more from yaqube? Has the source code been released? Are there any firmware updates in the pipeline? alexh - have you received your free Minimig yet?   :-D
Title: Re: MiniMig NTSC
Post by: yaqube on April 08, 2008, 06:46:43 PM
I'm still working on the ECS. It's almost done but there are some things to do yet (i.e. full super hires support in Denise).

I decided to try to find the reasons why some games don't work. I've already found some incompatibilities and fixed them (i.e. NZ Story scrolls fine now) but there are still some. I have an almost fully working Action Replay and some debugging stuff build into my MiniMig. I hope it will help to hunt bugs quickly. If you can report which game and in what way does not work it will be very helpful.

I'm quite busy now but expect new firmware with sourcecode in a few weeks.

@alehx: Are you working on adf write support?
Title: Re: MiniMig NTSC
Post by: Darrin on April 08, 2008, 07:00:43 PM
Quote

yaqube wrote:
I'm still working on the ECS. It's almost done but there are some things to do yet (i.e. full super hires support in Denise).

I decided to try to find the reasons why some games don't work. I've already found some incompatibilities and fixed them (i.e. NZ Story scrolls fine now) but there are still some. I have an almost fully working Action Replay and some debugging stuff build into my MiniMig. I hope it will help to hunt bugs quickly. If you can report which game and in what way does not work it will be very helpful.

I'm quite busy now but expect new firmware with sourcecode in a few weeks.


I've got my Minimig on order from Amigakit.  You're doing some great work there.  I look forward to trying your ECS code out.  Cheers.   :-)
Title: Re: MiniMig NTSC
Post by: AJCopland on April 08, 2008, 07:00:43 PM
Good that you're still working on it. I realise that the licence requires you to release sourcecode as you work on it but I'd be happy as long as you release it in the end along with the excellent work that you've done on getting ECS working :-D

How much of ECS are you implementing? Everything?

Andy
Title: Re: MiniMig NTSC
Post by: straycat on April 08, 2008, 07:38:30 PM
@yaqube:

This is fantastic news, a real boost for the Minimig! I'd love to see New Zealand Story working and the Action Replay facility sounds superb. I assume you're referring to the compatability list (http://www.opencircuits.com/Minimig_Software_compatibility) on the Open Circuits site for games working/not working? There's brief descriptions of problems for most games , I can help with testing/describing some problems in more detail if it helps.

TheDaddy also has a rundown of some of the most popular games not working.
Title: Re: MiniMig NTSC
Post by: Evillord68 on April 08, 2008, 08:06:34 PM
That´s great news. :-)
Title: Re: MiniMig NTSC
Post by: alexh on April 08, 2008, 10:55:41 PM
Quote

yaqube wrote:
@alehx: Are you working on adf write support?

I'm not doing anything right now.

ADF write support would require changes to the PIC C-code which relies on a time-limited demo of the High-tech PICC-18 (http://microchip.htsoft.com/products/compilers/pic18ccompiler.php) commercial c-compiler.

I might try to see if it is easy to compile with a free compiler (if no-one has already done it).

Anyone know a particularly good free c-compiler for the PIC18 series? All I can find is this Student Edition Microchip C18 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014).
Title: Re: MiniMig NTSC
Post by: freqmax on April 09, 2008, 12:23:06 AM
Seems there is a block write function. Currently fixed at 512-bytes block which means it can handle a maximum of 1 GByte  SD cards (use CMD16 to fix this).

The following functions exists in minimig1_firmware_15_07_2007/:

main.c: HandleFpgaCmd(c1,c2)
Has a command 'CMD_WRTRCK' which calls WriteTrack().

main.c: WriteTrack(drive)
Empty.

ata18.c: AtaWriteSector(lba, WriteData)
Seems to be in working order.

If the functionality is limited to modify existing (.adf) files and keep the same filesize. Then what is needed is:
 * Copy the contents of ReadTrack() function to WriteTrack(). And modify the order of datatransfer such that the dataflow goes from the FPGA to the SD-card. This should work. That way we don't have to deal with too much FAT intrisics.
 * FileWrite2() has to be created. Using a modified FileRead2() should work, AtaReadSector() -> AtaWriteSector().
 * FpgaToSector() has to be created. Using a modified order of SectorToFpga() should work.

If anyone wishes to "create floppies" then you would have to  handle the FAT16 allocations and clusters etc..
Title: Re: MiniMig NTSC
Post by: Darrin on April 09, 2008, 02:46:16 AM
Quote

freqmax wrote:
If anyone wishes to "create floppies" then you would have to  handle the FAT16 allocations and clusters etc..


I guess a easy way to get around this would be to stick your SD card in your PC and use UAE to "create a floppy" and move it to the card.

I could live with that as long as I could get to write to existing disk images for the purpose of saving games.
Title: Re: MiniMig NTSC
Post by: straycat on April 09, 2008, 09:03:38 AM
Quote

Darrin wrote:
Quote

freqmax wrote:
If anyone wishes to "create floppies" then you would have to  handle the FAT16 allocations and clusters etc..


I guess a easy way to get around this would be to stick your SD card in your PC and use UAE to "create a floppy" and move it to the card.

I could live with that as long as I could get to write to existing disk images for the purpose of saving games.


Agree 100% with Darrin. Maybe this could be a 'nice to have' addition later on.
Title: Re: MiniMig NTSC
Post by: Kelvin on April 09, 2008, 02:18:02 PM
Dont know if its going to be robust enough for the task but here is always the Boost C compiler...
http://www.sourceboost.com/
Title: Re: MiniMig NTSC
Post by: BraindeaD on April 09, 2008, 05:44:32 PM
Quote

yaqube wrote:
If you can report which game and in what way does not work it will be very helpful.


Hi all,
some games I've tested and not working:

Game ->       Works ->    Fail   
-----------------------------------------
Agony ->       no ->    Doesn't load (maybe an ECS game?)   
Alcatraz ->    no ->    Freezes in infogrames screen
Cannon Fodder 2 ->    no ->    black screen   
Cannon Fodder 1 ->    no ->    black screen   
Chaos engine ->    no ->    black screen   
Lotus3 ->    no ->    black screen   
Powerdrift ->    no ->    Freezes before it starts   
Power drive ->    no ->    black screen      
Super cars ->    no ->    Doesn't load, black screen with blue flashing    
Sensible soccer ->    no ->    black screen    
Walker    ->    no ->    red screen (same in very old versions of WinUAE)

Alien Breed ->    yes ->    player's sprite not visible
megaPhoenix ->    yes ->    player's sprite not visible
Plague ->       yes ->    player's sprite not visible

Risky woods ->    yes ->    player's sprite always jumping
Hostages ->    yes ->    player dies automatically (same in winUAE)

Hope it can help in ECS implementation and bug hunting.

Regards.


Title: Re: MiniMig NTSC
Post by: straycat on April 09, 2008, 10:23:38 PM
re: BraindeaD's list above:

I've tested two of these myself -

Sensible Soccer 1.0 works on the Minimig. You can see some faint verticle lines down the match screen but I'm not sure if this is because I'm using yaqube's amended firmware on an LCD monitor. I haven't had the opportunity to try this on a CRT monitor yet. Sensible Soccer v1.1 and Sensible World of Soccer do not load at all.

I've tried Cannon Fodder too. Intro sequence loads fine but it fails on loading the main game.
Title: Re: MiniMig NTSC
Post by: thulsadoom on April 13, 2008, 01:38:05 AM
First, I want to thank all people around the Minimig project. Mine is about to arrive home in a couple of days. And, let me tell you, it is what I wanted: no more floppy hassle, no video output problems, pc keyboard and mouse... if you are into A500 playing, this is a great solution. I am an old school Amiga fan, so... OCS RULEZ!  :-D

I want to thank people that are developing and evolving this great project. If you need testing or whatever, count on me.

See ya!

PD: Sorry if my english sounds weird :)
Title: Re: MiniMig NTSC
Post by: TheDaddy on April 22, 2008, 08:42:47 PM
Hi,

I haven't followed the minimig progress lately...

What is the story with the compatibility, with games that don't want to work like:

Superfrog
Agony
Cannon Fodder 2
Cannon Fodder 1
Chaos engine 1&2
Lotus3
Super cars
SWOS 96/-97
Walker
Alien Breed
Project X
Gods
Superskidmarks
Lionheart
Desert Strike
Zool
Paperboy
Fire and Ice

These are classic games and should be sorted out together with writing to the sd-card...

Is anyone working on improving the compatibility?

Do we know why (the reasons) these games don't work and do you think it can be sorted out?

Let's raise a bounty for the person who can do this, I am prepared to give a bit of money if that helps speeding up the solution.

Thanks :-)
Title: Re: MiniMig NTSC
Post by: Darrin on April 24, 2008, 04:54:43 AM
Quote

TheDaddy wrote:

What is the story with the compatibility, with games that don't want to work like:

Cannon Fodder 1


I just played a couple of levels of Cannon Fodder 1 on my Minimig.  Are there any other problems apart from having to keep reinserting disk #1?
Title: Re: MiniMig NTSC
Post by: amigadave on April 24, 2008, 05:45:12 AM
Quote

yaqube wrote:
I'm still working on the ECS. It's almost done but there are some things to do yet (i.e. full super hires support in Denise).

I decided to try to find the reasons why some games don't work. I've already found some incompatibilities and fixed them (i.e. NZ Story scrolls fine now) but there are still some. I have an almost fully working Action Replay and some debugging stuff build into my MiniMig. I hope it will help to hunt bugs quickly. If you can report which game and in what way does not work it will be very helpful.

I'm quite busy now but expect new firmware with sourcecode in a few weeks.

@alehx: Are you working on adf write support?


Any progress on ECS?  Also, is anyone else working on NTSC for the MiniMig?  I know that interest is shifting to the NatAmi, but the MiniMig is still a good project and should not be abandoned.
Title: Re: MiniMig NTSC
Post by: Darrin on April 24, 2008, 06:33:17 AM
Quote

amigadave wrote:

I know that interest is shifting to the NatAmi, but the MiniMig is still a good project and should not be abandoned.


Plus the Minimig is actually here.  :-)

One thing that I'm learning is that if we can't have a hard drive emulation soon then can we have 2 floppy drives emulated please?  The Minimig has its own version of "disk swapper's wrist".   :-D
Title: Re: MiniMig NTSC
Post by: straycat on April 24, 2008, 10:25:30 AM
@ Darrin:
Cannon Fodder seems to be an interesting one. The Minimig wiki (http://www.opencircuits.com/Minimig_Software_compatibility) reads "Loads fine, but after a few minutes of action, mouse becomes uncontrollable dashing a round the screen. (Possibly a faulty mouse)." from one submission. My own experience has been the loading coming to a standstill around the point it prompts for the 2nd disk when the game's still loading (after the intro sequence). I've only tried downloaded ADFs from the net though, not my own copy. Darrin: are you using a ACube 1.1 Minimig?
Title: Re: MiniMig NTSC
Post by: boing4000 on May 08, 2008, 09:49:09 AM
Hi @ all,

today I should receive my Minimig shipping, I am very excited :)

for all this modifications in the minimig core (FPGA Firmware), i also want to test and try something out.
question is, how to compile a single module into the whole minimig1.bin file??
is there a freeware compiler available? do i have to translate the whole source again to insert a single module?

i am sorry for looking stupid to you, this is my first try in doing something like that. until now i did only code some little intros in m68k assembly.

please help a bit, minimig is a fantastic project :)

regards
Sascha
Title: Re: MiniMig NTSC
Post by: bloodline on May 08, 2008, 10:37:11 AM
Quote

amigadave wrote:
Quote

yaqube wrote:
I'm still working on the ECS. It's almost done but there are some things to do yet (i.e. full super hires support in Denise).

I decided to try to find the reasons why some games don't work. I've already found some incompatibilities and fixed them (i.e. NZ Story scrolls fine now) but there are still some. I have an almost fully working Action Replay and some debugging stuff build into my MiniMig. I hope it will help to hunt bugs quickly. If you can report which game and in what way does not work it will be very helpful.

I'm quite busy now but expect new firmware with sourcecode in a few weeks.

@alehx: Are you working on adf write support?


Any progress on ECS?  Also, is anyone else working on NTSC for the MiniMig?  I know that interest is shifting to the NatAmi, but the MiniMig is still a good project and should not be abandoned.


I would say quite the opposite... the MiniMig is actually more interesting to me... though I would really like it be be able to replace my A1200... ie AGA and an 020 :-)
Title: Re: MiniMig NTSC
Post by: Darrin on May 08, 2008, 11:32:20 AM
Quote

straycat wrote:
@ Darrin:
Cannon Fodder seems to be an interesting one. The Minimig wiki (http://www.opencircuits.com/Minimig_Software_compatibility) reads "Loads fine, but after a few minutes of action, mouse becomes uncontrollable dashing a round the screen. (Possibly a faulty mouse)." from one submission. My own experience has been the loading coming to a standstill around the point it prompts for the 2nd disk when the game's still loading (after the intro sequence). I've only tried downloaded ADFs from the net though, not my own copy. Darrin: are you using a ACube 1.1 Minimig?


Sorry, I only just saw this post.

Yes, I'm using a v1.1 with a KS1.3 ROM and the NTSC core from this thread, but with the jumper set for PAL (not NTSC as in the Jpeg that comes with the core's instructions).

I'm sure that there are going to be differences between the ADF images used as some problems I report come after the crack intros.  I have a lot of original disks which I can try and make ADFs from instead of using cracked ones, but when I tried to install them using WHDload I discovered that a lot of my disks now have read errors (which was a major reason for wanting to get a Minimig).

I can send you the Cannon Fodder ADFs I used if you would like to test them.  Unfortuneately I'm in Brazil for the next 3 weeks, so I hope you don't mind waiting.  :-)
Title: Re: MiniMig NTSC
Post by: boing4000 on May 09, 2008, 07:25:59 PM
@yaqube
What changes did you make for the 50/60Hz switching?
It acts like a PAL and NTSC machine, but some games and demos/intros then show different graphics effects.

e.g. an old cracktro from Blizzard works fine at 50Hz. switsching to 60Hz will "destroy" the objects and scroll text.
switsching back to 50Hz everything is back to normal.
the same is even when booting up at 60Hz and then switsching down to 50Hz. its the mode itself what causes the graphic trouble.

perhaps we can combine our research to find the general problem that also make other games and demos show that graphics problems all the time.

This video filter idea is impressive, looks like a bilinear filter, very useful für large TFT screen :)
how is it made? please tell us :-)
Title: Re: MiniMig NTSC
Post by: yaqube on May 09, 2008, 08:16:50 PM
Quote

boing4000 wrote:
@yaqube
What changes did you make for the 50/60Hz switching?
It acts like a PAL and NTSC machine, but some games and demos/intros then show different graphics effects.

The 50/60 Hz mode switch is very simple. The total number of lines in NTSC is limited from 312 (typical value for PAL) to 262. Every line is still 227 colour clocks long like in PAL and there is no short/long line toggling. So it isn't 100% NTSC compatible.
It was a very quick fix for people with monitors which can't sync down to 50Hz.
Many games/demos won't work correctly in NTSC mode because they've never been meant to.

Quote

This video filter idea is impressive, looks like a bilinear filter, very useful für large TFT screen :)
how is it made? please tell us :-)


Yes, it is actually bilinear filtering. I've always wanted my real Amiga to have interpolation of the low-res screens and I planned to build a flicker-fixer with this feature. Thanks to Dennis I could implement this on Minimig.

Now I'm working on improving compatibility with games which were reported to not run on Minimig.
Title: Re: MiniMig NTSC
Post by: Darrin on May 09, 2008, 08:24:39 PM
@yaqube

I have to tell you thanks for releasing that core because it was the only way I could use my Minimig on my widescreen LCD.

Do you have plans to do the same modification to the latest core from Dennis?  It pains me to have to go back to an old CRT again now that I have been spoilt.  :-D

I look forward to seeing more releases from you so that I can re-check the games on my list that don't work.

Cheers.
Title: Re: MiniMig NTSC
Post by: Darrin on May 09, 2008, 08:26:32 PM
Oh, and if you want a tester for any new code then feel free to use me.  I promise I wont demand the source code every time you change one line.   :-)
Title: Re: MiniMig NTSC
Post by: TheDaddy on May 09, 2008, 08:39:12 PM
>>Now I'm working on improving compatibility with games which were reported to not run on Minimig.

That is music to my ears! Brilliant!

Thank you. :)
Title: Re: MiniMig NTSC
Post by: straycat on May 09, 2008, 11:03:32 PM
Quote

Darrin wrote:
@yaqube

Do you have plans to do the same modification to the latest core from Dennis?  It pains me to have to go back to an old CRT again now that I have been spoilt.  :-D


Same here - a mod of the latest Dennis core would be excellent!
Title: Re: MiniMig NTSC
Post by: straycat on May 09, 2008, 11:05:37 PM
Quote

Darrin:
I can send you the Cannon Fodder ADFs I used if you would like to test them.  Unfortuneately I'm in Brazil for the next 3 weeks, so I hope you don't mind waiting.  :-)


@Darren
If it's no trouble that would be excellent - and of course I can wait a few weeks  :-)
Title: Re: MiniMig NTSC
Post by: Darrin on May 09, 2008, 11:30:24 PM
Quote

straycat wrote:

If it's no trouble that would be excellent - and of course I can wait a few weeks  :-)


OK, I get home on the 29th, so PM me your email address before then.

It's a shame that it's probably illegal to set up a database of working and tested ADFs.  It's going to be a pain if some versions of a game work and others don't due to hardware banging intros.
Title: Re: MiniMig NTSC
Post by: freqmax on May 10, 2008, 04:41:55 AM
The games proberbly don't have anyone looking for them like with RIAA, BSA etc..
And anyway what they don't know/see won't hurt them :-)
So make the database semi public.

As for 50 Hz to LCD, Use an video buffer, and 75 Hz mode on the LCD. 25 deinterlaced frames/s * 3 = 75 Hz, which most monitors can manage.
Title: Re: MiniMig NTSC
Post by: FrenchShark on May 10, 2008, 04:55:45 AM
Crazy idea :
you "overclock" PAL Natami by 1.25x (the HW should handle that easily) : the screen refresh becomes 62.5 Hz.

Regards,

Frederic
Title: Re: MiniMig NTSC
Post by: freqmax on May 10, 2008, 07:13:14 AM
It will wreck any timing within the software. Same goes with the user interaction.
Title: Re: MiniMig NTSC
Post by: straycat on May 10, 2008, 11:07:38 AM
@Darrin:
No problem I'll drop you a PM near the time. I have the same problem with a lot of original disks failing. Although I've managed to transfer a lot of my disks to ADFs I've had trouble transferring many of them.
Title: Re: MiniMig NTSC
Post by: FrenchShark on May 10, 2008, 04:51:55 PM
Quote

freqmax wrote:
It will wreck any timing within the software. Same goes with the user interaction.

Not sure.
You must keep the CIAs at 700 KHz and Paula at 3.54 MHz.
The rest will run faster: CPU at 8.867 MHz, Horizontal frequency at 19.5 KHz but still 227 cycles per horizontal line.
The timer.device will still auto-detect the Amiga as a PAL machine.
Here is the ROM code that does that:

SupplyFreqDetect

    ;We launch the timer B (frequence = 715,909Hz or 709,379Hz) and wait
    ;for 1 TOD tick. We guess the TOD's frequency with the number of
    ;decremented EClock ticks.

    ;  +----- 65535 : Timer B start
    ;  |
    ;  |
    ;  |
    ;  +----- 53603 : 60 Hz tick (EClock = 715909 Hz) - ECS Amiga
    ;  |
    ;  +- 52476 : Threshold 50Hz ECS / 60Hz ECS
    ;  |
    ;  +----- 51347 : 50 Hz tick (EClock = 709379 Hz) - ECS Amiga
    ;  |
    ;  +- 46509 : Threshold 60Hz AGA / 50Hz ECS
    ;  |
    ;  +----- 41671 : 60 Hz tick (EClock = 1431818 Hz) - AGA Amiga
    ;  |
    ;  +- 39416 : Threshold 50Hz AGA / 60Hz AGA
    ;  |
    ;  +----- 37160 : 50 Hz tick (EClock = 1418758 Hz) - AGA Amiga

    lea     _ciaa,A0                ;Get base address of CIA A.

    bclr    #CIACRBB_ALARM,ciacrb(A0)
    moveq   #0,D0
    move.b  D0,todhi(A0)
    move.b  D0,todmid(A0)
    move.b  D0,todlow(A0)           ;Clear the TOD clock

    moveq   #CIACRBF_RUNMODE,D0
    move.b  D0,ciacrb(A0)           ;Activate one-shot mode for timer B

    moveq   #-1,D0
    move.b  D0,tblo(A0)
    move.b  D0,tbhi(A0)             ;Load the timer B latch with $FFFF

    move.b  todlow(A0),D0
.WaitTick1
    tst.b   tbhi(A0)                ;Does timer B work ?
    beq.b   .CiaAFail               ;If not, Guru time !
    cmp.b   todlow(A0),D0
    beq.b   .WaitTick1              ;Wait for a TOD tick.

    ;The timer B starts decrementing from $FFFF.
    move.b  #CIACRAF_LOAD|CIACRAF_RUNMODE|CIACRAF_START,ciacrb(A0)

    move.b  todlow(A0),D0
.WaitTick2
    tst.b   tbhi(A0)                ;Does timer B work ?
    beq.b   .CiaAFail               ;If not, Guru time !
    cmp.b   todlow(A0),D0
    beq.b   .WaitTick2              ;Wait for another TOD tick.

    moveq   #CIACRBF_RUNMODE,D0
    move.b  D0,ciacrb(A0)           ;Stop the timer B.

    move.b  tbhi(A0),D0
    lsl.l   #8,D0
    move.b  tblo(A0),D0             ;Read the timer B value.

    cmpi.l  #52476,D0               ;Timer B >= 52476 ?
    bcs.b   .Not60Hz                ;No, skip the next two lines.
    moveq   #60,D0                  ;Yes, we have a 60Hz tick.
    bra.b   .StoreTickInfo          ;Store the information.
.Not60Hz

    cmpi.l  #46509,D0               ;Timer B >= 46509 ?
    bcs.b   .Not50Hz                ;No, skip the next two lines.
    moveq   #50,D0                  ;Yes, we have a 50Hz tick.
    bra.b   .StoreTickInfo          ;Store the information.
.Not50Hz

    cmpi.l  #39416,D0               ;Timer B >= 39416 ?
    bcs.b   .Not30Hz                ;No, skip the next two lines.
    moveq   #30,D0                  ;Yes, we have a 60Hz tick.
    bra.b   .StoreTickInfo          ;Store the information.
.Not30Hz

    moveq   #25,D0                  ;Timer B < 39416 : 50Hz tick.
.StoreTickInfo
    move.l  #1000000,D1             ;1,000,000 µs
    divu    D0,D1                   ;Divided by TOD freq = TOD period (in µs).
    move.w  D0,tdev_PSupplyFrqHz(A2)       ;Store the frequency.
    move.w  D1,tdev_PSupplyPerMicroSec(A2) ;Store the period.
    rts
.CiaAFail
    move.l  #$15000002,D0           ;Alert number (AN_TMBadSupply).
    bra.w   DisplayAlert            ;Guru time.
Title: Re: MiniMig NTSC
Post by: boing4000 on May 11, 2008, 12:32:57 PM
@Darrin

Minimig IS an open source project, due to the GNU licence anyone has to make the source code public to a released binary.
It is the same as in Linux, exceptions are commercial products and they have to be declared as such.

I am also not happy that this source is not available to the community, that make it sound like closed open-source! Anyone wants to make the nice minimig working more perfect, so all improvements should be open to anybody :-)

Regards
Sascha
Title: Re: MiniMig NTSC
Post by: Darrin on May 11, 2008, 01:12:36 PM
Quote

boing4000 wrote:


I understand what you're saying.

What I'm saying is that if he wants to throw out cores that he's "tinkering" with to a few people for testing and not as a public release then I'll be happy to help and I don't want (or need or know what to do with) the sources.

This modification is the most important one so far to me, and I'll have to stop using Denis' update until it's modified to include this code.  I just can't go back to a CRT when the Minimig looks so good on the widescreen LCD.  :-)
Title: Re: MiniMig NTSC
Post by: alexh on May 11, 2008, 01:45:36 PM
Quote

Darrin wrote:
when the Minimig looks so good on the widescreen LCD.  :-)

MiniMig?? Widescreen? LCD? Looks good?? Surely not.

Stretched, scaled, distorted, looks bad is more what I would expect.
Title: Re: MiniMig NTSC
Post by: Darrin on May 11, 2008, 01:55:49 PM
Quote

alexh wrote:
MiniMig?? Widescreen? LCD? Looks good?? Surely not.

Stretched, scaled, distorted, looks bad is more what I would expect.


Actually, that's what I was expecting, but I can't notice it.

Honestly, if I didn't know that the games were designed for a regular "square" CRT then I wouldn't know any better.  Of course, some widescreens have different "stretch" modes and some scale better than others.  I'm using a cheap 25" LCD from Tiger Direct and I'm really impressed.

Of course, I can always switch the "stretch" off if I need too.
Title: Re: MiniMig NTSC
Post by: Darrin on May 11, 2008, 01:59:00 PM
Here's Defender of the Crown:

http://i18.photobucket.com/albums/b134/darrin01311/100_1273s.jpg

Note that the Minimig pic doesn't fill the whole screen, so even though the image is "stretched", it is not stretched over the whole display.  That probably helps.
Title: Re: MiniMig NTSC
Post by: boing4000 on May 11, 2008, 02:43:10 PM
And I know what you are saying ;-) in fact I also can not do very much with the source but certainly other ppl like Dennis etc.. They would be as happy as we are to see any new source.

I am also trying to compile the source and improove something (as blitter things). When I did something, I will release the source in the same time. Maybe somebody else can do more with it.
Title: Re: MiniMig NTSC
Post by: straycat on May 11, 2008, 08:29:57 PM
Everything else aside you'd be hard pressed to find a shop selling a CRT monitor these days so the Minimig does need LCD support. Even if it does stretch the screen a little, we need the option.

I wish I was advanced in C enough to work on the source code and contribute to the Minimig in that way, and have the time spare to learn!
Title: Re: MiniMig NTSC
Post by: alexh on May 11, 2008, 09:06:39 PM
MiniMig isnt written in C, it's in Verilog HDL.

The PIC might be in C... but that has nothing to do with screen output.
Title: Re: MiniMig NTSC
Post by: whiteb on May 14, 2008, 01:41:49 PM
Quote

alexh wrote:
MiniMig isnt written in C, it's in Verilog HDL.

The PIC might be in C... but that has nothing to do with screen output.


Except the Menu routines that the pic contains, but as you pointed out, the rest of the core display functions of the Amiga chipset are Verilog.
Title: Re: MiniMig NTSC
Post by: alexh on May 14, 2008, 02:22:46 PM
I don't know the architecture of MiniMig that well... is the menu some sort of video genlock type situation?? Seems a strange thing to do, but you never know.
Title: Re: MiniMig NTSC
Post by: freqmax on May 15, 2008, 09:26:05 PM
I think it was something like if( OSD ) then OSD else Amiga. For every pixel.
Title: Re: MiniMig NTSC
Post by: whiteb on May 16, 2008, 11:47:42 AM
Just take a looksie at the pic source code, specifically the On screen Display section of the code (osd.c and osd.h)