هذه هي المقالة الثالثة في سلسلة حول نقل لعبة عالم آخر. سوف نتحدث عن الحيل عند العمل مع Atari ST . يوصى بقراءة المقالات السابقة أولاً.
كانت ولادة Atari ST ، بعبارة ملطفة ، مضطربة. كل شيء يبدأ كما في حكاية خرافية ، ولكنه ينتهي بالحرب والخيانة بمشاركة Amiga Corp و Commodore و Atari و Atari Computer.

سلسلة من المقالات
- المضلعات عالم آخر .
- المضلعات عالم آخر: أميغا 500 .
- المضلعات عالم آخر: Atari ST.
تاريخ ATARI ST
في عام 1983 ، كانت Hi-Toro شركة ناشئة في سانتا كلارا تقوم بتطوير وحدة ألعاب تسمى لورين. مع 68000 قوية مع قدرات الرسومات مذهلة ، كانت أعجوبة تكنولوجية ، متفوقة بكثير على جميع منافسيها. مرحبا تورو ، ومع ذلك ، نفدت المال. استثمر أتاري ، الذي كان عملاق ألعاب الفيديو ، 500000 دولار لمواصلة التطوير في مقابل الحق في إضافة لوحة مفاتيح وبيع وحدة التحكم كجهاز كمبيوتر.
بعيدًا عن كاليفورنيا ، في ولاية بنسلفانيا ، أدى الصراع على السلطة في كومودور إلى رحيل المؤسس جاك تراميل. أسس فورًا تقنية Tramel ، في عملية إغراء مهندسي العميد البحري. وغني عن القول ، كان الانفصال بعيدا عن الودية.
بحلول منتصف عام 1984 ، كان دور أتاري لتجربة الاضطرابات المالية. عندما أعرب جاك تراميل عن رغبته في شراء قسم الكمبيوتر أتاري ، رأى كومودور فرصة لمعارضة الرئيس التنفيذي السابق. لقد اشتروا Hi-Toro (والتي تم تغيير اسمها في ذلك الوقت إلى Amiga Corporation) ، ولم يعدوا سوى Atari "الائتمان" [1] .
أكملت Tramiel الاستحواذ على Atari Computers ورفع دعوى على Amiga Corporation على الفور. لن يتم حل هذه المشكلة حتى مارس 1987 [2] . وفي الوقت نفسه ، كان أتاري بدون تقنيات جديدة من شأنها أن تساعد على أن تصبح مربحة مرة أخرى [3] .
لبعض الوقت ، فكر جاك تراميل في شراء Genesis من Sega ، الذي كان يبحث عن شريك له خبرة في أمريكا الشمالية. في النهاية ، تم رفض الفكرة. ما حدث بعد ذلك ، كما يقول DadHacker [4] [5] . ترك جاك فقط 900 من موظفي أتاري البالغ عددهم 10000 موظف. وشارك الباقون في مسيرة الموت بهدف تطوير وإطلاق سيارة جديدة في غضون عام.
والمثير للدهشة أنهم فعلوا ذلك. تم إطلاق Atari ST في يونيو 1985 ، لدخول السوق قبل شهر من Amiga 1000.

تم استقبال الجهاز جيدًا من قبل المستخدمين. بحلول نوفمبر 1985 ، أعلن جاك تراميل أن أتاري باع 50.000 وحدة. السعر كان مفاجئا. تم بيع السيارة 520ST مقابل 999 دولارًا ، و Amiga 1000 مقابل 1285.
عند الاختيار من جهازين مع نفس المعالج ونفس مقدار ذاكرة الوصول العشوائي (RAM) ، لم يكن 300 دولار إضافي يستحق ذلك. اختار العديد من المستهلكين ST.
بالإضافة إلى الميزة السعرية الرئيسية ، تتمتع السيارة بالعديد من المزايا البارزة على المنافسين. كان الوضع أحادي اللون بدقة 640 × 480 مثاليًا للمبرمجين. المدمج في MIDI كان موضع تقدير من قبل الموسيقيين. التفاصيل الصغيرة التي يمكن أن تحدث فرقًا ، كان نظام التشغيل (TOS) و kernel موجودًا بالفعل على ROM. لم تكن هناك حاجة للإقلاع من قرص مرن!
تجمع Atari ST بسرعة عبادة الأتباع ، وخاصة في أوروبا. كان منشئو المشهد التجريبي يحاولون بقلق شديد تطوير أساليب المسح الزائد [6] [7] [8] [9] لإزالة حدود الشاشة السوداء. في النهاية ، كانت هذه المحاولات ناجحة [10] .
خلال حياتها ، من عام 1985 إلى عام 1993 ، باعت شركة Atari Computers مليوني جهاز [11] . بالنسبة للكثيرين الذين نجوا من هذه الحقبة ، تم تذكرها على أنها حرب أميغا سيئة السمعة ضد أتاري.

أتاري ش ه
من وجهة نظر رسومات الكمبيوتر والرسوم المتحركة وألعاب الفيديو ، لم تكن هناك حرب على هذا النحو. من الصعب حتى تسمية معركة. بفضل معالجتي Agnus و Denise ، تتفوق Amiga بشكل كبير على Atari ST. على سبيل المثال ، كان العمل مع ذاكرة أداة تحميل إطار أتاري ST مؤلمًا عند محاولة تحريك العفريت عبر الشاشة.
لتخفيف أوجه القصور فيها ، قامت Atari Computers بتحديث خط Atari ST في عام 1989 بإطلاق 520 ST E و 1040 ST E. من بين التحسينات: Genlock ، ألوان 12 بت ، صوت PCM ، والأهم من ذلك ، BLiTTER [12] . جعلت هذه الابتكارات Atari ST تقنية للتنافس مع Amiga.
هندسة معمارية
كانت قدرات Blitter لا تقدر بثمن لمطوري اللعبة. لسوء الحظ ، بدا متأخرا جدا. تمتلك Atari ST قاعدة ضخمة تمنع المطورين من إضاعة الوقت في جعل لعبتهم أفضل بالنسبة لعدد صغير من المستخدمين. ناهيك عن أنه لم يجرؤ أحد على إطلاق اللعبة حصريًا على ST E. عالم آخر ليس استثناءً ، وفقًا لمطور إصدار Jaguar (الذي شهد شفرة مصدر Atari ST).
تمت برمجة عالم آخر بالكامل للعمل على 68000. لم يتم استخدام ميزات ST E على الإطلاق.
- سيباستيان برايس
يرجى ملاحظة أنه على جميع Atari ST ، توجد وحدة تحكم DMA ، لكن لا يمكن نقلها إلا من قرص مرن / قرص صلب إلى ذاكرة الوصول العشوائي ، والتي لم تساعد كثيرًا عند تطوير الألعاب. لم يتبق الكثير للمبرمجين. وهي معالج موتورولا 68000 مع تردد ساعة من 8 ميغاهرتز و 512 كيلوبايت من ذاكرة الوصول العشوائي.

نظام الفيديو
تستخدم شريحة GLUE ، المسؤولة عن توليد إشارة الفيديو ، 3 بت لكل قناة (9 بت لكل بكسل) ، والتي تعطي 512 لونًا.

ملاحظة: لقد تمكنت أداة العرض التوضيحي من خلال معالجة Shifter و GLUE و MMU من إزالة الحدود السوداء سيئة السمعة لشاشة Atari. يحول الفنيون ذوو المساحة الكبيرة والشاشة الكاملة معدل التحديث بين 50 هرتز و 60 هرتز ، وينتقلون أيضًا من hiRes إلى LowRes حتى يكتمل فحص الخط لإجبار GLUE على تأخير إشارات VSYNC / HSYNC [13] !
عالم آخر على شارع أتاري
كتب عالم آخر تحت أتاري ST بالكامل من قبل إريك شايي بالتوازي مع إصدار أميغا. خفف المعالج 68000 ، على غرار Amiga ، من المنفذ حيث يمكن إعادة استخدام معظم ASM VMs. كانت هناك اختلافات في جزء الرسم ، حيث تتوفر ثلاثة أوضاع. دقة عالية (640 × 400 2 لونًا) ، وهي مثالية للبرمجة ، ودقة متوسطة (640 × 200 4 ألوان) ، وهي ليست مثيرة للاهتمام للغاية في هذا السياق ، ودقة منخفضة (320 × 200 16 لونًا [14] ) ، وهي مثالية لعالم آخر.

استخدام كافة الأذونات 32 كيلو بايت لكل framebuffer. لا توجد خطط للفوز مثل Amiga المذكورة في المقال الأخير. بدقة عالية ، كل بت يتوافق مع بكسل. بدقة منخفضة ، ينقسم مؤشر البيكسل إلى 4 بتات موزعة على 64 بت.
الجحيم الصغير
بالنسبة للعبة التي تستخدم العفاريت ، كان مثل هذا المستوى المنخفض يمثل مشكلة. حاول أن تتخيل مهمة استخدام القناع / التسجيل بدرجة وضوح واحدة ، عندما تكون دقة الناقل بايت واحد (8 بت). تخيل الآن كيف يعبر العفريت حد بايت ، وتتحول المهمة إلى كابوس [15] . كان حمل وحدة المعالجة المركزية كبيرًا لدرجة أن الألعاب لم تستخدم قناعًا / تسجيلًا وبدلاً من ذلك كانت تستخدم العفاريت المدورة مسبقًا (مجموعة واحدة لكل محاذاة بت) ، والتي ، على شرف Atari ST ، لم تكن مشكلة كبيرة جدًا ، نظرًا للكم الكبير من ذاكرة الوصول العشوائي على مجلس.
ومن المثير للاهتمام ، في عالم آخر ، يتحول جحيم طبقات الرسوم المتحركة إلى جنة عندما يتعلق الأمر برسم خطوط طويلة من نفس اللون. دعنا نرى لماذا.
ملء ونسخة
مع وجود معالج لأداء FILL و COPY فقط ، يتم تنفيذ هذه المهمة بأبسط الطرق. لا توجد حيلة صعبة هنا ، لكن التصميم غير المستوي لـ Framebuffer يسمح لـ 68000 "بالسفر". باستخدام أداة move.l
32 كيلو بايت ، تقوم عمليات move.l
8000 (32 بت) بالمهمة في كلتا الحالتين. الناتج المسجل لجزء من عملية COPY في 68000 هو على النحو التالي.
... move.w #49,d0 ;50*160*4 = 32000 octets .copy_loop: rept 160 move.l (a1)+,(a0)+ endr dbra d0,.copy_loop ...
نظرًا لأن توقيت 68000 موثق جيدًا [16] [17] ، يمكننا حساب بدقة الوقت الذي يستغرقه إكمال عملية النسخ. نظرًا لأن move.l
يتطلب 20 دورة ، فإن إجمالي عدد الدورات المطلوبة هو 20 * 160 * 50 = 160،000 دورة. بسرعة 8،000،000 دورة / ثانية ، تستغرق نسخة COPY 20 مللي ثانية.
الفكرة نفسها لـ FILL ، باستثناء أنه بدلاً من المعامل "تسجيل العنوان غير المباشر مع ما بعد الزيادة" ، فإن المعامل الأول لـ move.l
هو "Data direct" ، والذي يستغرق 12 دورة فقط. هذا يعطي ما مجموعه 12 مللي ل FILL.
... move.w #49,d0 ;50*160*4 = 32000 octets .fill_loop: rept 160 ; d1 = color repeated 8 times since d1=32 bits and color index=4 bits) move.l d1,(a0)+ endr dbra d0,.fill_loop ...
ملاحظة: يمكنك بسهولة التمييز بين إصدار Atari ST وإصدار Amiga إذا نظرت إلى شاشة اللعبة الثانية.
اختفى الجعران اللطيف الموجود في نسخة أميغا في شارع أتاري. في الواقع ، إنه غائب في جميع المنافذ الأخرى [18] ، مما يجعلها أميغا حصرية لسبب غير واضح.

حل المشكلة مع التقديم
بدون وضعي "رسم الخط" و "ملء المساحة" ، يستخدم المنفذ الموجود تحت Atari ST خوارزمية Bresenham البسيطة [22] لتتبع حواف المضلع. مع حافتين وخطوط أفقية ، يتم إنشاء إحداثيات البداية والنهاية لمساحة الشاشة. ثم 68000 يملأ الفضاء بينهما [19] . بشكل عام ، يشبه مبدأ العملية مفعول Amiga ، إلا أنه يتم تنفيذ كل شيء برمجيًا هنا.
النهج للوهلة الأولى بطيء جدًا ، ولكن يمكن أيضًا تحقيق "سرعة الإبحار" هنا ، مع الاستفادة من التصميم المنسوج. إذا نظرت بعناية ، فإن معظم إطارات "عالم آخر" تتكون من خطوط أفقية طويلة من نفس اللون. يسمح هذا للطرف 68000 بكتابة سطور في مجموعة مكونة من 16 بكسل باستخدام تعليمة move.l
التي استعرضناها سابقًا.
تعتبر الشاشة التي يلتقي بها ليستر "منقذه" مثالاً جيدًا.

هنا نرى أجزاء من الخطوط المميزة باللون الأحمر والتي لا يمكن عرضها في كتل 16 بكسل بسبب موقع محاذاة الإطار ومحاذاة. تشكل البيكسلات "البطيئة" هذه 23٪ فقط من مثقب الإطارات على حافة المضلعات. يتم تقديم 77٪ من المخزن المؤقت للإطار بسجل كتلة "سريع" يبلغ 16 بكسل.

حل المشكلة مع لوحة
المشكلة الأخيرة التي يجب حلها هي أن Atari ST لديه عمق ألوان ضحلة. بينما يسمح Amiga بـ 12 بت لكل لون ، يمكن لـ AtariST إعطاء 9 بت فقط.
كان الحل هو وضع اللعبة باستخدام لوحات Amiga والسماح لـ 68000 بالاهتمام بالتحويل من 12 بت إلى 9 بت مع إزاحة 1 بت بسيطة (LRS) لكل قناة في وقت التمهيد.
تبدو الصورة النهائية أغمق قليلاً مقارنة بأميغا ، لكن الفرق بالكاد ملحوظ [20] .
في الختام
على الرغم من العيوب الواضحة ، تمكنت Atari ST من إطلاق الإصدار الدقيق من عالم آخر. على الرغم من كل شيء ، يجب ألا تحيد اللعبة عن إصدار Amiga. كانت مساحة الألوان الأصغر ملحوظة بالكاد ، وكان المحرك يعمل ببطء أبطأ [21] منه على أميغا (التي عملت بمعدل 24 إطارًا في الثانية تقريبًا).
مراجع
- قصة أميغا: تصور في أتاري ، ولد في العميد البحري .
- شركة أميغا .
- ويكيبيديا: Atari ST Origins .
- دادهاكر ، شارع أتاري ، الجزء الأول .
- دادهاكر ، شارع أتاري ، الجزء 2 .
- مجلة ST 51: 'Les techniques de l'Overscan part 1' من تصميم Shengan Short .
- مجلة ST 51: 'Les techniques de l'Overscan part 2' بقلم Shengan Short .
- مجلة ST 55: 'Les techniques de l'Overscan 3' من تصميم Shengan Short .
- مجلة ST 70: 'Les techniques de l'Overscan 4' من تصميم Shengan Short .
- أتاري ST ملء الشاشة تاريخ العروض .
- أتاري ST مبيعات الكمبيوتر و Marketshare: مقارنة .
- مجلة ST 70: 'Le Blitter، animation tres grande vitesse' لـ Mathias Agopian .
- أتاري أوفيركان للتقنيات .
- رسومات ثلاثية الأبعاد في الوقت الفعلي لـ Atari ST .
- لماذا كانت ألعاب Atari ST أبطأ من إصدارات Amiga .
- نقل تنفيذ مرات التنفيذ .
- مجموعة التعليمات 68000 .
- متع نردي .
- رمز مصدر عالمي آخر: Video :: fillPolygon .
- Nerdy Pleasures ، 'ST لديها لوحة أغمق قليلاً من Amiga.' .
- Nerdy Pleasures ، 'إصدار Atari ST يعمل بشكل أبطأ إلى حد ما من Amiga' .
- خوارزمية بريزنهام .