News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Enterprise DevCompo#1 "Life begins at 30"

Started by ssr86, 12:07, 16 November 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ssr86

Hi, we at EnterpriseForever.com are organizing a DevCompo and would like to invite all at cpcwiki to join us...
It's a first for the Enterprise. 
There's a "conversion" category so if not with an entirely new production for the ep, you could enter with a conversion of a (for example your) cpc production.
The winners will be awarded (the prize poll is "crowdfunded" so not yet known).

--:: Enterprise DevCompo #1 ::--

...So please join us at Enterprise DevCompo. ;D

arnoldemu

I have read the hardware documentation and I understand how the registers work. I even wrote an Enterprise emulator a long time ago.

What is not clear is:
1. What specific header is needed on a program to make it autorun.
2. What specific requirement for a loader that works on all Enterprise (64kb and 128kb).
3. How to take over the machine nicely and return it back to exos nicely.
4. A default LPT table that works nicely.
5. A memory map of where things can go.

The problem is that a lot of people will be working from emulators because finding a real machine is hard and emulators are unlikely to be perfect.

I think with those questions answered it will help people a lot.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

ssr86

#2
Sorry, I'll try posting more info when I get back.

For now I attach a sample file by Zozosoft which shows a basic setup.

And here's a link to ep documentation: Enterprise Technical Documentation

EDIT:
the attached source shows:
Quote

-EXOS call macro definition
-standard EXOS file header definition
-allocate video memory via EXOS
-allocate other memory via EXOS
-EXIT routine
-some settings at the start
-LPT definition for 320x200 4 color screen

Quote from: arnoldemu on 14:43, 16 November 15
The problem is that a lot of people will be working from emulators because finding a real machine is hard and emulators are unlikely to be perfect.
ep128emu is supposedly very-very accurate ("near perfect"?).
You can find it at: ep128emu download | SourceForge.net
However it doesn't have such good assembler/disassembler features like cpc emulators...


Oh, and most ep owners still code via pc+emulator (like most of cpc owners, right?).


Gryzor

Ooh an Enterprise compo! Maybe I should try and find where I've stored my machine... it deserves some love!

ssr86

I think this should also be somewhat helpful: http://www.ep128.hu/Ep_Konyv/Converting_Spectrum_Programs.pdf
It's an old document that shows how to setup the enterprise to "emulate" the zx spectrum. Unfortunately the document is not complete. But it's a good read nonetheless.

ssr86


Some more detailed info from geco about the sample.asm:
Quote from: geco
SAMPLE-1.ASM shows:


EP autoloader header - line 12-16 2nd byte should be 5, this means machine code application program, 3rd-4th byte is the length of the file.
Store soft reset routine - line 22-23 this should be done on FF segment at address 3ff8h
Soft reset routine - line 128-160 this should be on page 0, at the bottom there is a shorter soft reset routine by IstvánV
Speed up EP - line 33-34 disable memory wait states, EP programs will run at 4MHz in normal RAM
Allocate video segment - line 164-185
Calculate Nick address of video segment (screen) - line 50-55
Calculate nick address of LPT - line 58-60
get a free segment - line 61-63
copy LPT - line 78-81
set LPT addr to Nick 82-83h registers - line 83-94 - after this the new screen is activated, and visible
example for keyboard handling - line 103-110
EP keyboard matrice - line 112-124
Sample LPT table (320x200 4 colour) - line 196-226 (generate video syncron sign - line 209-226)



exit    di
        ld      sp,0100h
        ld      a,0ffh
        out     (0b2h),a
        ld      c,40h
        exos    0
        ld      a,01h
        out     (0b3h), a
        ld      a,06h
        jp      0c00dh



I encourage to register and ask questions at enterpriseforever.com
Or just tell me what to ask on the forum, if you don't want to register there

Geco

Quote from: arnoldemu on 14:43, 16 November 15
I have read the hardware documentation and I understand how the registers work. I even wrote an Enterprise emulator a long time ago.
The problem is that a lot of people will be working from emulators because finding a real machine is hard and emulators are unlikely to be perfect.
Thx for the 1st EP emulator, I liked it very much, and used it for years :)
I make also my stuff on EP128emu and all stuff worked on real machine also ;) it is quite perfect we saw only one thing which works only on the real hardware it was produced by the author of EP128emu IstvánV

And here is a  small appetizer, converted programs from Speccy and CPC with added extras:
IK+ Reloaded

Buzzsaw+


Microprose Soccer Reloaded

Captain Fizz
Loader

Ingame

WHB
Menu

ingame

ssr86

If it isn't a problem, could someone inform other cpc-related forums (push'n'pop, cpcrulez) about the competition?
I'd be really grateful for that.

We would like to address as many people as possible. :-[

Have in mind, that some of the new ep games could/will be ported to the cpc or spectrum (depends on the level of enterprise-specific unique features but I can already say that at least one game will come to the cpc too ;) ).

TFM

#8
Why to flush other CPC forums with that? They don't have an 'other retro' section. It's enterprise, not CPC.

I like Enterprise a lot, but I just don't have one. So IMHO most readers here don't have one, but ok. It's fine here. However in other forums people will react pissed off probably.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

ssr86

#9
...but we are in "other retro", right? :-[
(Why you have to be like that...I mean such a "troll")


and it's still cpc related despite being an ep competition.

MacDeath

#10
Sorry but Enterprise is somewhat considered the half brother computer, or even an Half Clone (yeah, cringe as you want) just by the fact it has a lot of CPC ports, which is quite a rare occurence.

I see no issue to have the Enterprise community coming here provided it is about CPCports and not Speccyports.

it is quite fun to see those speccy graphics with actually a real palette to play with.
Had the CPC got some extra attributed mode like MO6/TO8 or enterprise... well... at least most speccy ports would be better, but also there would be only this.  :laugh:


I would otherwise say that CPC community still have issue to release, so to go on another platform, but I guess those already released modern prods could be ported anyway.
invasion of zombi monsters could be nice.

Can the EP64/128 perform "overscan/fullscreen" the Way CPC can ? not a big deal anyway as quite few games would use it.
there may also be some issues with very well worked palettes from CPC... EP has lot more colours to chose from, but the limitation to half chosable palette in 16 colour mode can somewhat need some rethinking of some CPC graphics.

Also I guess the topic can be seen the other way : to port some EP games into CPC, provided they don't use too much of attributed mode.

ssr86

#11
Quote from: MacDeath on 19:05, 17 November 15
Can the EP64/128 perform "overscan/fullscreen" the Way CPC can ? not a big deal anyway as quite few games would use it.
If I remember correctly max is 368x288 mode1 equivalent pixels.
And it's done easy - you just set the lpt parameters the right way (for width, you change the margin values and for height you add enugh modelines to have all 288 lines (for a "normal screen you would need 2 modelines - first would do 256 lines and the rest you would have to do in the second modeline).
Oh, but I forgot to mention that some tvs (at least the two I've had, but I know there are tv's that show more) only displayed the area of a little more than 320x240... Don't know about the cpc's overscan on a crt tv...

Maybe I should note that although horizontal scrolling is easier on ep because you just change the video pointers in the lpt, there's no memory wrap like on the cpc so you can't use the "adaptive tile refresh" technique...

Quote
there may also be some issues with very well worked palettes from CPC... EP has lot more colours to chose from, but the limitation to half chosable palette in 16 colour mode can somewhat need some rethinking of some CPC graphics.
Yeah, you are right...

Quote
Also I guess the topic can be seen the other way : to port some EP games into CPC, provided they don't use too much of attributed mode.
The games (provided you've got the source) that use cpc equivalent video mode setup (but I don't mean the memory layout - just the size of pixels and number of colors) can be ported to the cpc suprisingly fast. That's why at least one game should get also a cpc release...(I hope).
So it's possible to start a new project with the two machines in mind...

...and I think the same goes for speccy games and ep attribute mode... but am not sure (as don't know much about the spectrum).

Gryzor

I don't get the negativity - OF COURSE we're open to such ideas. That's why we have the "other retro" section to begin with. 99% of us would be open to discussing a c64 competition or whatever, too.


Please don't go on discussing this, at least here. This thread and effort is much, much welcome.

ssr86

Anyone willing to join? :-[

I've attached some screenshots of current entries (first three images) and potential entries (are being worked on but may not get finished in time or at all).

I would like to note ZenLoops by goblinish - it's a spectrum game conversion made by him in about two weeks and it was his first thing for the ep. Flora is also by goblinish and it's a conversion of his small demo for the cpc (if I remeber correctly).

FlapFlap is a game in basic by endi from EF forum. Wall by endi and geco (I hope I didn't make a mistake here).
Wolf3d is worked on by geco from EF.

MacDeath

QuoteDon't know about the cpc's overscan on a crt tv...
something like 384x272 in theory.. of course it would vary depending the monitor used, and round corners may reduce a bit on the corners.

But to be sure the picture covers a whole Amstrad CRT colour monitor as those sold with the machine, you usually go for a 384x272 or 384x280 thing...

may get something like this with some code tricks :


or like that on a PLUS in mode0 (no tricks) :


(those are emulated pictures, but looks quite realistic rendition, somewhat...)

Geco

The pictures looks good :)
Is this overscan mean that the picture size is the whole screen size, and on CRT possibly some parts of the screen is not visible?
And it can be reached on CPC by setting the screen to maximum size in CRTC and using 2 video segment, and change CRTC register 12 and 13 in the certain position of the screen to point to the next video segment?

ssr86

Theoretically Ep can do screens of 368x288 mode1 pixels. However on my tv only about 336x256 are visible, but it depends on the tv.
You can't achieve the elephant picture on the ep as you can't change video modes during a scanline - only at their beginning. However Ep has an attribute mode with which you can get 16 colors per line with constraint of 2 colors per 8x1 area.
Here's a slideshow of pictures in that mode:

Enterprise Slideshow 3 part 1 - YouTube
The mode would be especially great for adventure games I'd say:)

I don't know about the second picture... Would have to try converting it. Ep has 256 color palette but it's obviously limited compared to the plus (especially with the fixbias contraint in 16color modes).

arnoldemu

Quote from: Geco on 09:46, 17 December 15
The pictures looks good :)
Is this overscan mean that the picture size is the whole screen size, and on CRT possibly some parts of the screen is not visible?
yes.


Quote from: Geco on 09:46, 17 December 15
And it can be reached on CPC by setting the screen to maximum size in CRTC and using 2 video segment, and change CRTC register 12 and 13 in the certain position of the screen to point to the next video segment?
There are 2 methods.

1st method: "32kb screen" set screen to maximum size using R1, R6, R2 and R7. Then set R12/R13 so MA output overflows. Two video segments are used but both are together in memory (e.g. segment 1 and 2). MacDeath's second screen is made with this method. This method takes no cpu time after it is started. (= "one big piece of paper"). On EP, this is comparable to one LPT entry with many lines.

2nd method: "rupture". takes cpu time to keep it active. R1 and R2 are used for horizontal width. R4,R7,R12 and R13 are used to make more than 1 part on the screen (= "many rectangles of paper put under each other"). On EP, this is comparable to more than one LPT entry.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Geco

Quote from: arnoldemu on 14:05, 17 December 15
There are 2 methods.

1st method: "32kb screen" set screen to maximum size using R1, R6, R2 and R7. Then set R12/R13 so MA output overflows. Two video segments are used but both are together in memory (e.g. segment 1 and 2). MacDeath's second screen is made with this method. This method takes no cpu time after it is started. (= "one big piece of paper"). On EP, this is comparable to one LPT entry with many lines.

2nd method: "rupture". takes cpu time to keep it active. R1 and R2 are used for horizontal width. R4,R7,R12 and R13 are used to make more than 1 part on the screen (= "many rectangles of paper put under each other"). On EP, this is comparable to more than one LPT entry.
Thank you very much for the information.
I thought that normally it works on CPC to set R1, R6. R2 and R7, and then set R12 to ex to 20h, and before scanline reach the end of the 1st screen, then set R12 ex to 30h, and at restart again 20h to R12.
How does CRTC the video addressing in mode1?
I know the original c000h,c800h,d000h,d800h,e000h,e800h,f000h,f800h,c050h,c850h,.... but a wider (42x25) screen do not fit into this addressing, 42x24 fit, and as I calculated a 48x21 screen can be used by this addressing.

MacDeath

#19
QuoteYou can't achieve the elephant picture on the ep as you can't change video modes during a scanline - only at their beginning. However Ep has an attribute mode with which you can get 16 colors per line with constraint of 2 colors per 8x1 area.
The "elephant" picture is basically only Mode1.
It doesn't change video mode but palette... split rasters I think it is called.

Basically CPC is not supposed to change palette during a line but hey, as the CPC is only displaying a still image, you can try it and spend whole CPC on this, needs to be very well timed and picture/screen be well designed.

Concerning video modes, I fail to understand quite well the 256colours video mode of enterprise, thise were blocky pixels equivalent to 4x mode1 pixels I guess ?
Low res modes have pixels 2x lerger to get the page weighting half the RAM I guess (8k screen ?) while hi rez was 16k per standard screen ?

In a sense it reminds me of the Thomsons MO6-TO8...
CPC had no "attributed" mode which was a bit of a shame, but also not too bad as it would have meant twice more speccy ports...



dodogildo

Elephant pic is awesome

Sent from my Nexus 6P using Tapatalk

M'enfin!

MacDeath

#21
QuoteI don't know about the second picture... Would have to try converting it. Ep has 256 color palette but it's obviously limited compared to the plus (especially with the fixbias contraint in 16color modes).
That is one I did a few years ago for the Reset party Graphic contest.

The palette is actually quite simple, But I guess that all the contrast may not be easy to convert into the Enterprise, and to have somewhat 8 colours that must be chosen from fixed half palettes... may not help as well.

the greys were especially chosen from the 16 greys available on the PLUS...

But there may be ways, I should try some palette swaps.

Where was the "palette charts" posted somewhere about Enterprise colour Bias ?
I think one day I managed to find a chart with the colour BIAS displayed but it seems to be the hardest thing to find on the web...



post edit :
ok I think I found again (at last) the chart with the EP palette...
EP colours
will turn it into a properly usable chart.

So basically you choose one of the 32 combinaison of 8 ink on this chart ? (0-7 then 8-15 and so on...)

ssr86

For conversion of images there is this tool: En:Epimgconv - Enterprise Wiki
But I haven't used it so I won't be able to help you right away with it... :-[

However trying it with some other converter I got something like this:

MacDeath

#23
well tried, clearly the Greys don't cut it...  ???

would need some clever head-breaking choices and attunements...  :picard:

what other converter did you use ?

Basically to posterize a picture in "8-8-4" enables to get it into theoric palette... but to apply the fixBIAS can be somewhat tricky.

ssr86

#24
Quotewhat other converter did you use ?

one from a sprite conversion tool I'm working on...
Quote
Basically to posterize a picture in "8-8-4" enables to get it into theoric palette... but to apply the fixBIAS can be somewhat tricky.
Well it should be a little (but only a little) better if the bias would be changed for every line (or even the entire 16 color palette).

Powered by SMFPacks Menu Editor Mod