Läge 7

Mode 7  är ett grafikläge som introducerats på Super Nintendo Entertainment System . I det här läget är det möjligt att skala och rotera bakgrundslagret innan man genererar varje enskild skanningslinje [1] , vilket gör det möjligt, med en viss skicklighet hos programmeraren, att skapa olika grafiska effekter. Den mest anmärkningsvärda av de effekter som kan uppnås är den perspektiveffekt som ges till detta lager genom att skala och rotera samtidigt. Denna effekt erhålls genom att konvertera bakgrundslagret till ett tvådimensionellt strukturerat horisontellt plan, det vill säga genom att konvertera dess höjd till djup . Således uppnås den visuella effekten av tredimensionellt utrymme.

Intressant nog hade Sega Mega Drive , som konkurrerar med SNES , från början inte sådana möjligheter, men med tillägget av Sega Mega-CD blir ett liknande läge tillgängligt på detta system. Denna effekt användes i Sonic the Hedgehog CD i Special Stages. Atari Lynx bärbara system och Game Boy Advance [2] hade också ett liknande läge .

Applikation

Rendering som läge 7 användes ganska ofta på system som hade betydande 2D-grafikkraft och inte hade särskilt stöd för 3D-grafik . Klassiska konsolspel som drar fördel av Mode 7 inkluderar F-Zero , Teenage Mutant Ninja Turtles: Turtles in Time , Super Castlevania IV , Secret of Mana , Secret of Evermore , Final Fantasy IV , Final Fantasy V , Final Fantasy VI , Super Mario RPG : Legend of the Seven Stars , Super Mario Kart , Super Mario World , Super Star Wars , Chrono Trigger , ActRaiser , Kirby Super Star , Axelay och The Legend of Zelda: A Link to the Past . Många av dessa spel portades senare till Game Boy Advance med en liknande grafisk teknik. Många GBA-exklusiva spel har också skapats med lägen som liknar Mode 7.

Beskrivning

SNES har åtta olika grafiklägen, numrerade 0 till 7 [1] . Det sista (bakgrundsläge 7) låter dig använda bara ett lager, som kan skalas och roteras. Game Boy Advance och Nintendo DS handhållna system stöder rotation och skalning av traditionella Nintendo kaklade bakgrunder 1 och 2, samt rotation och skalning av rastret i lägena 3 till 5. De senare användes dock sällan i GBA på grund av tekniska begränsningar [3] . På varje enhet som stöder läge 7 är det möjligt att utföra rotations- och/eller skalningsoperationer under horisontell retracement, vilket möjliggjorde visning av ett horisontellt plan med en perspektiveffekt. Det är denna funktion som har blivit "anropskortet" för läge 7. Det är möjligt att uppnå mer komplexa effekter som genomskinlighet/dimma som ett resultat av att tillämpa andra ekvationer för att beräkna position, skalning och rotation för varje skanningslinje. Det är missvisande att tänka på Mode 7 som endast lämpligt för racingspel, eftersom det också användes flitigt för att visa "himmelska" scener i rollspel som Square 's Final Fantasy VI . Läge 7 gjorde det möjligt för utvecklare att uppnå effekten av en oändligt sträckande värld.

På SNES, med en viss parametrering av läge 7, är det möjligt att placera bakgrundspixlar ovanpå sprites. Detta användes till exempel i nivå 2 i spelet Contra III: The Alien Wars (karaktärer och andra föremål passerade under broar), samt i Super Mario Kart i en situation där en karaktär faller utanför nivågränserna. På GBA kan en liknande effekt uppnås i läge 2, som stöder två skalbara och roterade plan: för att uppnå en liknande effekt räcker det att placera spriten mellan dessa plan.

Många PC- spel , framför allt Wacky Wheels och Skunny Kart , använder en mjukvaruimplementering av Mode 7, vilket förklarar deras visuella likhet. Clickteams Multimedia Fusion-mjukvara har en "Mode 7"-tillägg som tillåter utvecklare att använda denna teknik.

Under SNES:s popularitet användes Mode 7 ofta som ett sätt att öka försäljningen av konsolen ( Nintendo Power , SNES Player's Guide). Så i Teenage Mutant Ninja Turtles: Turtles in Time , portad från arkadmaskiner , ändrades en av nivåerna från traditionell rullning till att använda läge 7.

Den matematiska grunden för läge 7 är omvandlingen av skärmkoordinater till bakgrundskoordinater med hjälp av tvådimensionella övergångsmatriser [4] :

var  är bakgrundsstrukturens koordinater;  — skärmkoordinater;  — horisontell respektive vertikal förskjutning.  — positionskoordinater för observatören i förhållande till strukturen.

Övergångskoefficienterna väljs på detta sätt [5] :

var  är rotationsvinkeln ;  — skalningsfaktor längs ;  — skalningsfaktor längs axeln . I detta fall kommer rotationen att ske moturs. För medurs rotation, ta koefficienterna och med motsatt tecken.

Alla operationer utförs på 16-bitars tecken med en fast punktposition, men förskjutningar är begränsade till 13 bitar. Punktpositionen är mellan 7 och 8 bitar [6] .

Denna affina transformation tillåter endast translation, rotation och sträckeffekter. I många spel uppnås effekter som illusionen av perspektiv, krökta ytor och olika förvrängningar genom att på ett genialiskt sätt ändra transformationsparametrarna före utmatningen av varje nästa skanningslinje.

Begränsningar

Läge 7 gäller endast bakgrunder och gäller inte sprites. Av denna anledning måste alla objekt som inte får rotera samtidigt som bakgrunden vara en sprite, även om ett sådant objekt nominellt måste betraktas som ett bakgrundselement, såsom stationära plattformar. Spelutvecklare bör tillhandahålla sprites för sådana objekt. Till exempel, i Super Castlevania IV roterar vissa bossar (som den stora golemen Koranot). Tekniskt sett är dessa bossar gjorda i form av en roterande bakgrund, medan plattformarna som huvudpersonen kan stå på är sprites. Den här metoden, förutom uppenbara förbättringar, är väldigt lik NES- sättet att visa stora bossar , som uppnådde detta utan att sakta ner spelet och utan att blinka grafiska artefakter genom att placera chefen i bakgrunden, där han rörde sig och agerade. Båda exemplen från båda systemen fungerar endast när objekt placeras i samma horisontella plan som det rörliga objektet. Till exempel, i båda systemen, kan golvet, taket och poängområdet, etc. tekniskt sett vara en del av bakgrunden, trots deras nominella placering utanför det faktiska spelområdet. Om spelet kräver en helskärm kan dessa områden göras som sprites, men detta kan resultera i långsammare spelprestanda.

Eftersom läge 7 inte gäller sprites måste varje "storlek" av en given sprite på ett visst avstånd från observatören vara förritad. På grund av detta är det möjligt att observera en abrupt förändring av spritens storlek, till exempel när man närmar sig eller rör sig bort från betraktaren. Effekten kan observeras till exempel i Super Mario Kart eller F-Zero på alla föremål under spelet, eller i Final Fantasy VI när man rör sig vertikalt över kartan med ett luftskepp i sikte.

För att undvika att rita varje sprite manuellt, var vissa patroner , som Super Mario World 2: Yoshi's Island , utrustade med en specialiserad Super FX 2 - processor som gjorde detta på hårdvarunivå. Betydande arbete kring denna begränsning gjordes i Contra III: The Alien Wars i den andra bosskampscenen, såväl som i striden mot Reznor (plattformar och väggar), Iggy (stridsplattform), Larry (plattform) Morton, Ludwig, Roy och Bowser i spelet Super Mario World . I dessa exempel är chefen bakgrunden och roteras därför av läge 7, poängområdet är också bakgrunden, men stridsscenens golv, såväl som huvudpersonen och kulorna, är en sprite och ritas om i olika vinklar enligt till spelarens rotation. Begränsningen är dock att du bara kan arbeta med en sprite åt gången.

Men det finns undantag från effekter som läge 7, när det gäller sprites ritade för hand eller externa processorer. I Tales of Phantasia och Star Ocean görs en del av sprite- renderingen i realtid helt och hållet i mjukvara. Så i Tales of Phantasia är detta den vertikala skalningseffekten av en sprite när den "träder in" i inspelningsplatsen. I Star Ocean är detta "crush"-effekten när föremål hämtas från en öppen skattkista. Eftersom ytterligare brickor krävs för att visa dessa effekter , och på grund av andra resurskrävande funktioner i dessa spel (båda använder ett ljudströmningsalternativ för att kringgå begränsningarna för SPC700-chippet , och också, som andra toppskiktsrollspel på SNES, använd ett proportionellt teckensnitt ), att tillämpa dessa effekter endast möjligt i ett fåtal situationer.

Hårdvaruimplementering

Två PPU-chips (bildbehandlingsenhet, engelsk  bildbehandlingsenhet ) SNES-konsoler använder ett 8-bitars 32 kB RAM -chip . Under en cykel har en PPU tillgång till en rad brickor (128x128 brickor), den andra PPU:n har tillgång till ett rutnät med brickor (256 brickor, vardera 8x8 pixlar med 256 färger).

Andra implementeringar

Sega Mega Drive /Genesis har inga hårdvarufunktioner som liknar Mode 7. Ett liknande läge gjordes dock tillgängligt med Sega Mega-CD- tillägget , som används i Special Stage-nivåerna på Sonic the Hedgehog CD . Men, som med Tales of Phantasia och Star Ocean, kan vissa sprite-effekter också implementeras helt och hållet i mjukvara av spelutvecklaren. Som ett resultat av detta användes några liknande effekter i spel som Castlevania: Bloodlines , The Adventures of Batman and Robin , Mickey Mania: The Timeless Adventures of Mickey Mouse , Alien Soldier , Red Zone , Contra: Hard Corps och andra Sega Mega Drive- spel . Förutom Sega 32X implementerades inte bara 2D-grafikfunktioner, utan också grundläggande 3D-grafikfunktioner. Som en konsekvens har användningen av effekter som zoom och rotation blivit ganska typiskt i spel som Knuckles' Chaotix , som bland annat var först i Sonic the Hedgehog-serien att implementera Special Stages polygonnivåer .

Se även

Länkar

Anteckningar

  1. 1 2 Bakgrunder i SNES-utveckling (nedlänk) . Datum för åtkomst: 28 januari 2013. Arkiverad från originalet den 2 februari 2013. 
  2. TwoHeaded Software (nedlänk) . Datum för åtkomst: 28 januari 2013. Arkiverad från originalet den 2 februari 2013. 
  3. Specifikationer (nedlänk) . Datum för åtkomst: 28 januari 2013. Arkiverad från originalet 21 juni 2009. 
  4. SNES-utveckling . Datum för åtkomst: 22 januari 2013. Arkiverad från originalet 29 januari 2013.
  5. Läge 7 - Skalning i SNES-utveckling (nedlänk) . Datum för åtkomst: 28 januari 2013. Arkiverad från originalet den 2 februari 2013. 
  6. Tonc: Läge 7 del 1 (inte tillgänglig länk) . Datum för åtkomst: 28 januari 2013. Arkiverad från originalet den 2 februari 2013.