English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 01 November 2016, 10:41   #21
AndNN
Registered User
 
Join Date: Oct 2016
Location: Australia
Posts: 58
Quote:
Originally Posted by Samurai_Crow View Post
The Copper can stretch pixels vertically by alternating modulo register values so the chunky to planar conversion doesn't have to stretch in that direction.
I'm curious. I use the Copper to alter the bit-plane pointers so I repeat the line and double up the pixel that way.

Forgive me if I should know this technique but I have not programmed an Amiga since the mid-ninties (just got back into it the last couple of months using emulators) so I probably don't know all the tricks for this. What's the technique alternating the modulo register?
AndNN is offline  
Old 01 November 2016, 11:51   #22
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,200
The modulo register is added to each plane pointer at the end of each row of pixels so alternating between negative one times the plane width and zero every row of pixels will cause the display DMA to reread every other row. It's similar to yours but only requires one Copper write per row and is not timing sensitive since the modulo always triggers at the end of the row regardless of when it's written.
Samurai_Crow is offline  
Old 01 November 2016, 11:59   #23
AndNN
Registered User
 
Join Date: Oct 2016
Location: Australia
Posts: 58
Quote:
Originally Posted by Samurai_Crow View Post
The modulo register is added to each plane pointer at the end of each row of pixels so alternating between negative one times the plane width and zero every row of pixels will cause the display DMA to reread every other row. It's similar to yours but only requires one Copper write per row and is not timing sensitive since the modulo always triggers at the end of the row regardless of when it's written.
That's sounds like a better technique! I'll give that a go. Cheers
AndNN is offline  
Old 01 November 2016, 12:54   #24
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,344
Why don't put the effort to support as my pixel mix as possible in order to do some good test? 1x1, 2x1, 2x2 1x2, would be great.

As I said 16 colors, will left us with so many dma cycles
sandruzzo is offline  
Old 01 November 2016, 17:24   #25
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,344
Is it possible to do ray cating by row instead by colum?
sandruzzo is offline  
Old 01 November 2016, 19:38   #26
desiv
Registered User
 
desiv's Avatar
 
Join Date: Oct 2009
Location: Salem, OR
Posts: 1,770
Quote:
Originally Posted by chb View Post
But of course later on, most machines, including most A1000s, the kickstart was put into ROM,
Not sure about that...
I know you could get a kickstart in ROM with a 3rd party board )that I believe required some soldering???), but I don't believe any A1000's came with a kickstart ROM..

That being said, I know Dragon's Lair used the kickstart memory to be able to allow the game to run on an A1000 with only 512k (otherwise, it required 1M on any other Amiga).

desiv
desiv is offline  
Old 02 November 2016, 00:11   #27
robinsonb5
Registered User
 
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,157
Quote:
Originally Posted by sandruzzo View Post
Is it possible to do ray cating by row instead by colum?
Short answer: no.

Long answer: yes, as long as your game world consists of horizontal surfaces rather than vertical walls, and doesn't allow you to steer left and right, only up and down. Perhaps a spaceship game that would be to Descent what Wolfenstein 3D is to Quake?
robinsonb5 is offline  
Old 02 November 2016, 10:43   #28
AndNN
Registered User
 
Join Date: Oct 2016
Location: Australia
Posts: 58
Yep, totally agree. For walls constant z is on the vertical. I do remember a technique that was used on the Game Boy Advance - you rendered horizontal but rotated the screen 90 degrees. Unfortunately the Amiga does not do screen rotation.
AndNN is offline  
Old 02 November 2016, 11:13   #29
Amigajay
Registered User
 
Join Date: Jan 2010
Location: >
Posts: 2,952
Quote:
Originally Posted by AndNN View Post

The Atari ST version of Wolfenstein uses 16 colours with 2x2 pixels and the framerate is not that good (don't get me wrong the guy that did that went through hoops to get that to work) but the Amiga can do so much better.
Was on the 1989 STE hardware, would be even more impressive on an 1985 ST!
Amigajay is offline  
Old 02 November 2016, 13:58   #30
hooverphonique
ex. demoscener "Bigmama"
 
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,643
Quote:
Originally Posted by AndNN View Post
Yep, totally agree. For walls constant z is on the vertical. I do remember a technique that was used on the Game Boy Advance - you rendered horizontal but rotated the screen 90 degrees. Unfortunately the Amiga does not do screen rotation.
we could instruct people to physically rotate their monitors
hooverphonique is offline  
Old 02 November 2016, 14:20   #31
frank_b
Registered User
 
Join Date: Jun 2008
Location: Boston USA
Posts: 466
Quote:
Originally Posted by Amigajay View Post
Was on the 1989 STE hardware, would be even more impressive on an 1985 ST!
It runs on a standard ST too. The ST's screen layout is good for C2p.

[ Show youtube player ]
frank_b is offline  
Old 02 November 2016, 14:37   #32
Amigajay
Registered User
 
Join Date: Jan 2010
Location: >
Posts: 2,952
Quote:
Originally Posted by frank_b View Post
It runs on a standard ST too. The ST's screen layout is good for C2p.

[ Show youtube player ]
That's pretty decent for a regular ST then.
Amigajay is offline  
Old 02 November 2016, 14:54   #33
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,344
Can someone provide me a good tutorial about Ray casting, I'll try to write down some test code?
sandruzzo is offline  
Old 02 November 2016, 21:42   #34
alpine9000
Registered User
 
Join Date: Mar 2016
Location: Australia
Posts: 882
Quote:
Originally Posted by sandruzzo View Post
Can someone provide me a good tutorial about Ray casting, I'll try to write down some test code?

http://lodev.org/cgtutor/raycasting.html
alpine9000 is offline  
Old 02 November 2016, 22:32   #35
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,213
Yes, the amiga 1000 could probably do the equivalent of that ST wolfenstein, but probably not much more

Of course, there are a few things that you "could" do, to make it run just as fast in a 1x1 pixel screen.. but I will leave it for others to discover (hint, may require a couple of megs of fast ram)
DanScott is offline  
Old 02 November 2016, 22:36   #36
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,213
second hint.. you don't need C2P
DanScott is offline  
Old 03 November 2016, 08:06   #37
AndNN
Registered User
 
Join Date: Oct 2016
Location: Australia
Posts: 58
Quote:
Originally Posted by DanScott View Post
second hint.. you don't need C2P
I'm intrigued, spill the beans

Barring having all the textures defined at all the possible sizes then using the blitter to blit one vertical line from the correct texture size, then I cannot think of a good way to do this. Would the blitter have enough time to blit 320 lines at full screen over 3 frames? It probably does not but may be worth a check. And would all the textures at predefined sizes fit into memory?

With the tests that I've done on bandwidth it's possible to do Wolfenstein at 2x2 pixels with 64 colours running at 17fps which will make the Amiga version better than the ST version for sure.

The bandwidth tests also prove what the cpu is capable of doing to write 1 byte(pixel) into a chunky buffer. And the 68000 running from fast, reading and writing does not have enough time for 1x1 pixels.

DMA contention is not really an issue for EHB mode when the cpu is allowed to run from fast memory. Also the blitter has enough time to do the c2p conversion spread over 3 frames.

So in theory we have one method that can work for definite! It will be interesting to see if it's now possible to get a higher resolution pixel than 2x2.

Edit

When I originally set out to do this I was hoping for 2x1 pixel resolution but the bandwidth forced me to degrade to 2x2 pixels. We also have to remember that it's not about drawing the world but sprites need to be considered into the equation - there's no point in doing a tech demo that cannot handle gameplay. The sprites can be done more efficiently than the world because constant z can be on the horizontal (basically sprite scaling) and the predefined instruction sequence can be geared to writing out DWORDS. Anyway, sprites are another side of the testing

Last edited by AndNN; 03 November 2016 at 08:52.
AndNN is offline  
Old 03 November 2016, 08:31   #38
AndNN
Registered User
 
Join Date: Oct 2016
Location: Australia
Posts: 58
Quote:
Originally Posted by hooverphonique View Post
we could instruct people to physically rotate their monitors
But that's cheating

It does make me think about the old arcade machines where portrait mode was basically the engineers mounting the monitors at 90 degrees in the cabinets.

Here's some pure fantasy thought. Someone in 1985 got a game like Wolfenstein running on Amiga hardware. They upgraded to a faster processor and licensed out the chipset from Commodore and produced an arcade version. All in the realms of possibility but of course pure fantasy.

Anyway, less fantasy... can 2x2 pixels be improved upon - that is the real question now.
AndNN is offline  
Old 03 November 2016, 08:43   #39
sandruzzo
Registered User
 
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,344
Quote:
Originally Posted by DanScott View Post
second hint.. you don't need C2P
Can you helps us here, so we can do a great demo?
sandruzzo is offline  
Old 03 November 2016, 09:46   #40
AndNN
Registered User
 
Join Date: Oct 2016
Location: Australia
Posts: 58
Quote:
Originally Posted by AndNN View Post
I'm intrigued, spill the beans

Barring having all the textures defined at all the possible sizes then using the blitter to blit one vertical line from the correct texture size, then I cannot think of a good way to do this. Would the blitter have enough time to blit 320 lines at full screen over 3 frames? It probably does not but may be worth a check. And would all the textures at predefined sizes fit into memory?

With the tests that I've done on bandwidth it's possible to do Wolfenstein at 2x2 pixels with 64 colours running at 17fps which will make the Amiga version better than the ST version for sure.

The bandwidth tests also prove what the cpu is capable of doing to write 1 byte(pixel) into a chunky buffer. And the 68000 running from fast, reading and writing does not have enough time for 1x1 pixels.

DMA contention is not really an issue for EHB mode when the cpu is allowed to run from fast memory. Also the blitter has enough time to do the c2p conversion spread over 3 frames.

So in theory we have one method that can work for definite! It will be interesting to see if it's now possible to get a higher resolution pixel than 2x2.

Edit

When I originally set out to do this I was hoping for 2x1 pixel resolution but the bandwidth forced me to degrade to 2x2 pixels. We also have to remember that it's not about drawing the world but sprites need to be considered into the equation - there's no point in doing a tech demo that cannot handle gameplay. The sprites can be done more efficiently than the world because constant z can be on the horizontal (basically sprite scaling) and the predefined instruction sequence can be geared to writing out DWORDS. Anyway, sprites are another side of the testing
Actually there's not enough chip ram to do that by using the blitter to blit predefined graphic slices. I'm pretty intrigued by this claim.
AndNN is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Block Shock/Shock Wave - The Last Chance Retro-Nerd Games images which need to be WHDified 11 04 May 2012 23:31
Amiga 1000 Inboard 1000 by Spirit - help needed amiman99 support.Hardware 0 13 December 2011 04:50
Very old damaged EA game disks (1985/1986): looking for ADF replacement... Hacky request.Old Rare Games 19 20 October 2008 22:56
Connecting Amiga 1000 DKB Insider to 1000 without daughterboard huggies support.Hardware 0 05 October 2008 11:10
What Pre-1985 Video Game Character Am I? Kodoichi Nostalgia & memories 12 03 January 2002 17:46

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 03:00.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.18811 seconds with 14 queries