1 पॉइंट द्वारा GN⁺ 2026-03-22 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 1980s के IBM PC के लिए बने BASIC गेम पर आधारित ट्रेडिंग सिमुलेशन गेम, जिसका यह संस्करण TI-82·83·83+ कैलकुलेटर पर TI-BASIC में चलता है
  • खिलाड़ी छह शहरों के बीच घूमते हुए ड्रग्स खरीदता-बेचता है, कर्ज चुकाता है और एक महीने में अधिकतम मुनाफ़ा कमाने की कोशिश करता है, जिसमें रैंडम घटनाएँ और पुलिस पीछा शामिल हैं
  • कम्युनिटी ने .8xp फ़ाइल शेयरिंग, TI CONNECT ट्रांसफ़र, TI-Coder कन्वर्ज़न आदि इंस्टॉल और रन करने के तरीकों पर सक्रिय चर्चा की और कई संशोधित संस्करण बनाए
  • कोड विश्लेषण के जरिए वेरिएबल के दोहराए गए उपयोग से होने वाले बग और infinite profit loop जैसी लॉजिकल गलतियाँ मिलीं, जिन्हें कई यूज़र ने ठीक किया और TI-84 CE compatible संस्करण जारी किए
  • बाद में यह C/SDL रीमेक, Pico-8 और C# पोर्ट, Z80 console port आदि तक विकसित हुआ, और कम्युनिटी एक क्लासिक कैलकुलेटर गेम restoration प्रोजेक्ट के रूप में फैलती गई

TI-82/83/83+ के लिए Drugwars गेम का अवलोकन

  • TI-82, TI-83, TI-83+ कैलकुलेटर पर चलने वाला Drugwars 1980s के IBM PC के लिए बने BASIC गेम पर आधारित एक ट्रेडिंग सिमुलेशन गेम है
    • खिलाड़ी ड्रग्स खरीदता-बेचता है, सूदखोर का कर्ज चुकाता है, और एक महीने में जितना संभव हो उतना पैसा कमाना इसका लक्ष्य है
    • गेम TI-BASIC भाषा में लिखा गया है और Lbl, Goto, Menu, Disp कमांड्स के आसपास बना है
  • गेम शुरू होने पर शुरुआती नकद, कर्ज, इन्वेंटरी, trenchcoat capacity जैसी वेरिएबल initialization होती है
    • उदाहरण: 2000→Z(कैश), 5000→Y(कर्ज), 100→K(उपलब्ध जगह) आदि
    • “ORIGINAL GAME FOR IBM BY JOHN E. DELL” वाक्य दिखाया जाता है, जिससे मूल स्रोत का उल्लेख होता है
  • गेम प्रगति संरचना

    • खिलाड़ी Bronx, Ghetto, Central Park, Manhattan, Coney Island, Brooklyn जैसे छह शहरों में घूमकर ट्रेड करता है
    • Menu("DRUGWAR!", "SEE PRICES", "BUY", "SELL", "JET", "SEE LOAN SHARK", "VISIT BANK") मेनू से एक्शन चुना जाता है
    • हर ड्रग (cocaine, heroin, LSD, marijuana, speed, ludes) की कीमत हर दिन रैंडम रूप से बदलती है
  • इवेंट सिस्टम

    • rand फ़ंक्शन से रैंडम घटनाएँ होती हैं
      • प्रतिद्वंद्वी डीलर की dumping sale, पुलिस छापा, कीमतों में उछाल, subway mugging जैसी घटनाएँ
      • उदाहरण: “YOU WERE MUGGED IN THE SUBWAY!” होने पर कैश का 1/3 हिस्सा चला जाता है
    • कुछ शर्तों पर हथियार खरीदना, trenchcoat upgrade, bank transaction, loan shark repayment संभव है
  • लड़ाई और पुलिस पीछा

    • एक निश्चित मात्रा से ज़्यादा ड्रग्स रखने पर पुलिस (OFFICER HARDASS) पीछा करती है
    • मेनू में RUN या FIGHT चुना जा सकता है
    • हथियार न होने पर केवल भागना संभव है, और health (J) 50 या उससे अधिक होने पर मौत मानी जाती है
    • सभी पुलिसवालों को हरा देने पर कैश इनाम मिलता है
  • गेम समाप्ति और स्कोर गणना

    • 31 दिन बीतने पर गेम खत्म हो जाता है
    • स्कोर (V+Z-Y) के आधार पर निकाला जाता है और फिर 1~100 रेंज में बदला जाता है
    • “YOUR SCORE (ON A SCALE OF 1 TO 100)” संदेश के साथ परिणाम दिखता है

कम्युनिटी चर्चा और बेहतर किए गए संस्करणों की साझेदारी

  • TI-82/83/83+ के लिए Drugwars गेम को इंस्टॉल और चलाने के तरीके पर लगातार सक्रिय चर्चा हुई
    • कैलकुलेटर के BASIC interpreter (PRGM → New) में सीधे कोड टाइप किया जा सकता है, या TI-Coder से .8xp फ़ाइल में बदलकर ट्रांसफ़र किया जा सकता है
    • कन्वर्ज़न के समय को >=, को ->, θ को 0 में बदलने जैसी एडिट की ज़रूरत पड़ती है
    • TI CONNECT या TI-83 के लिए USB adapter से PC से कैलकुलेटर में फ़ाइल भेजी जा सकती है
  • gammalogic की सलाह

    • TI-83 के लिए USB adapter खरीदकर PC से गेम डाउनलोड करने या source code सीधे टाइप करने, ये दो तरीके बताए गए
    • कुछ adapters Windows XP drivers का उपयोग करते हैं, इसलिए नए Windows पर compatibility समस्या हो सकती है
    • Linux या Unix आधारित free software drivers होने की संभावना का भी ज़िक्र किया गया
  • ileathan द्वारा .8xp फ़ाइल उपलब्ध कराना

    • TI-Coder से बनी .8xp फ़ाइल https://t7.vc/dl/DRUGWARS.8xp लिंक पर साझा की गई
    • TI CONNECT और USB adapter से इसे कैलकुलेटर में भेजा जा सकता है
  • darth-crunchus के संशोधन और सुधार

    • TI-Coder कन्वर्ज़न के दौरान inequality symbol error और variable name case problem की ओर ध्यान दिलाया गया
    • Lbl 3, Lbl 4 के condition statements को BASIC editor में ठीक करना ज़रूरी है ताकि गेम सही चले
    • TI-84 Plus CE पर पूरी तरह काम करने लायक बनाते हुए random events (police dog, brownie आदि), weapon prices, trenchcoat upgrade, storage randomization आदि बहाल किए गए
    • अंतिम कोड का आकार 6310B था, और बाद के अपडेट में यह 11429B तक बढ़ा
    • DOS original के और करीब लाने के लिए rand( फ़ंक्शन की seed (random seeding) सुविधा जोड़ी गई
    • नवीनतम source https://pastebin.com/4dUuw0BR पर प्रकाशित है
  • TI-BASIC इनपुट से जुड़ी चर्चा

    • alphanumeric input handling पर चर्चा में बताया गया कि TI-BASIC strings को variable length में handle कर सकता है
    • किसी variable में अक्षर डालने पर उस अक्षर का value उस variable में पास होता है
  • compatibility और execution समस्याएँ

    • TI-84 Plus CE और CE Python मॉडल पर भी यह बिना किसी संशोधन के चल सकता है
    • कुछ यूज़रों ने खरीद/बिक्री के दौरान input error की वजह से MirageOS पर लौट जाने की समस्या बताई
  • अतिरिक्त पोर्ट और आइडिया

    • इसे C# console app version के रूप में फिर से लिखने की योजना रखी गई
    • एक यूज़र ने बताया कि उसने खुद Pico-8 version लिखा है
    • Android या PC पोर्ट में रुचि का भी उल्लेख हुआ

कोड संरचना और बग विश्लेषण

  • tibbon का TI-83 BASIC variable reuse विश्लेषण

    • variable N का दो अलग-अलग कामों के लिए दोबारा उपयोग किया गया
      1. heroin inventory: 0→N, (N+G)→N, (N-G)→N
      2. location tracking: 2→N(Bronx), 1→N(अन्य क्षेत्र)
    • इससे नीचे दिए गए logical bugs पैदा हुए
      • शहर बदलते समय heroin की मात्रा बदल जाती है (Bronx जाने पर N=2 → खिलाड़ी के पास heroin 2 होने के रूप में माना जाता है)
      • heroin ट्रेड करते समय location value overwrite हो जाती है और Bronx check गलत हो जाता है
      • N=0 होने पर Bronx/non-Bronx दोनों checks fail हो जाते हैं, जिससे bank और loan shark access restriction हट जाती है
      • Bronx जाने पर अपने-आप heroin 2 बन जाती है, जिससे infinite profit loop संभव हो जाता है
      • inventory calculation formula (T-M-N-O-P-Q-R)→K location value का उपयोग करके storage calculation error पैदा करता है
  • प्रमुख exploit उदाहरण

    1. असीमित bank/loan shark access: N=0 स्थिति में location restriction bypass
    2. infinite heroin generation: Bronx जाने पर अपने-आप बने 2 units को बार-बार बेचकर कमाई
    3. inventory mismatch: location value overwrite होने से trenchcoat capacity पार करना संभव

मूल कोड का स्रोत और ऐतिहासिक पृष्ठभूमि

  • gammalogic ने पूछा कि क्या यह IBM BASIC original code पर आधारित है, और mattmanning ने कहा कि “TI version IBM गेम पर आधारित है, लेकिन इसे दूसरे platform पर compile नहीं किया जा सकता; हालांकि गेम के नियम और logic देखने के लिए यह उपयोगी है”
    • उन्होंने बताया कि उन्हें कोड इंटरनेट पर मिला था और उन्होंने केवल character formatting व्यवस्थित की थी
  • मूल रचयिता John Dell ने TRS-80 के गेम Taipan से प्रेरित होकर Drugwars बनाया

कम्युनिटी विस्तार और बाद की गतिविधियाँ

  • कुछ यूज़रों ने TI-84+ पर रनटाइम error की रिपोर्ट की, लेकिन अन्य यूज़रों ने TI-83+ और TI-84+ emulator पर सही चलना कन्फर्म किया
    • यह टिप भी साझा की गई कि MirageOS में पहचान के लिए कोड की पहली पंक्ति में :: जोड़ना चाहिए
    • सीधे कैलकुलेटर पर prgm -> new से कोड डालकर भी इसे चलाया जा सकता है
  • यूज़र DaSovietPotato ने TI-84 compatible bug-fixed version अलग repository में प्रकाशित किया
  • gammalogic ने C/SDL में रीमेक के बाद Z80 आधारित consoles (Master System, NES आदि) पर पोर्ट करने की योजना साझा की
    • शुरुआती C/SDL demo में NES resolution आधारित interface और शहर/ड्रग बदलने की सुविधा लागू की गई
    • आगे इसे “Drugwars 2.0” संस्करण तक बढ़ाने की योजना का ज़िक्र किया गया
  • कुछ यूज़रों ने स्कूल के दिनों की nostalgia का ज़िक्र किया और TI-83 cable से इसे फिर से इंस्टॉल करने की कोशिश साझा की
    • कम्युनिटी ने code analysis और BASIC सीखने के जरिए खुद पोर्ट करने की सलाह दी, और TI-83 manual देखने की सिफारिश की
  • 2024~2026 तक लगातार comments जुड़ते रहे, और TI-84 CE, Pico-8, C# port जैसे कई platforms पर विस्तार की कोशिशें जारी रहीं
    • कुछ यूज़रों ने .8xp फ़ाइलें ईमेल से माँगीं और साझा भी कीं
    • कम्युनिटी के भीतर यह क्लासिक कैलकुलेटर गेम restoration और improvement project के रूप में विकसित हो रहा है

1 टिप्पणियां

 
GN⁺ 2026-03-22
Hacker News की राय
  • TI-83 Basic वह पहली programming language थी जिसे लेकर मुझे लगा कि मैंने उसे पूरी तरह समझ लिया है
    कॉलेज के पहले साल में मैं TI-Basic में code लिखता था और उसे C++ में translate करता था। उस समय Drugwars और Bowling वाकई बहुत प्रभावशाली games थे
    बाद में जब मैंने z80 assembly खोजी, तो वह जादू जैसा लगा। मुझे याद है कि मैं अपने पिता की यूनिवर्सिटी लैब जाता था, जहाँ दो T1 internet lines थीं, और वहाँ नए assembly games download करता था। Bill Nagel का Turbo Breakout, Snake, AShell, Penguins, और grayscale Mario ने मुझे चौंका दिया था। लेकिन सबसे polished और replayable games मेरी नज़र में TI-86 के Sqrxz और ZTetris थे।
    एक बार मैंने किसी game का z80 assembly source print करके, लगभग हथेली-भर मोटी printout साथ लेकर घूमता था ताकि उसे समझ सकूँ।
    और random hex code डालकर उसे run करना भी अजीब तरह से मज़ेदार लगता था। कभी-कभी calculator brick हो जाता था, लेकिन battery निकालो तो फिर ज़िंदा हो जाता था
    किसी को TI website wars याद हैं? TI Files, जो बाद में TI Philes बना, कहता था कि वह “ticalc.org से कहीं ज़्यादा cool” है, लेकिन आखिर में आज तक ticalc.org ही बचा है

    • यह हैरान करने वाला है कि ticalc.org अभी भी ज़िंदा है। Joltima वही चीज़ थी जिसने मुझे assembly सीखने पर मजबूर किया। TI-86 पर turn-based combat वाला पूरा RPG होना अपने समय से बहुत आगे की बात थी
    • Bill Nagel नाम ही 12 साल के मुझे awe से भर देता था। उस दौर में जब मैं सिर्फ TI Basic जानता था, मैं समझ ही नहीं पाता था कि वह ऐसे games कैसे बना लेता था
    • मैं भी ticalc.org बार-बार check करता था, Zelda: Link’s Awakening port demo के update का इंतज़ार करते हुए
    • मेरे लिए Andreas Ess का PlaneJump वह entry point था। उसी से मुझे assembly और demoscene की दुनिया का पता चला, और फिर मैं पूरी तरह उसमें डूब गया
  • इस game का मेरे लिए सच में बहुत बड़ा मतलब है। हाई स्कूल में मैं इसका पूरी तरह आदी हो गया था, और वह अनुभव मेरे जीवन में रह गया।
    Drugwars मेरे passion project Farmhand की सीधी प्रेरणा था
    इसे फिर से देखना सच में बहुत खुशी की बात है

    • जब सब लोग अपने TI calculators पर यह game और Mario clone डाल रहे थे, तब मैं Palm से inspired Space Trader खेल रहा था
    • Algebra 2 की class असल में Drugwars और Snake की class थी। अच्छी बात यह रही कि मैं एक साल आगे था, इसलिए दोबारा वह class नहीं लेनी पड़ी
    • मुझे भी यह game इतना पसंद था कि मैं maths पढ़ने के बजाय यही खेलता था। TI-83+ की दूसरी apps की वजह से मैं किसी तरह exams पास कर पाया।
      अब AI के दौर में जब सब लोग छोटे computers के बिना कुछ नहीं कर पाते, तो अजीब सा औचित्य महसूस होता है
    • Game की लत लगना शायद अच्छी बात भी हो सकती है ;-)
  • मेरा “fun fact” यह है कि मैंने TI-83+ manual पढ़कर programming शुरू की थी
    9वीं कक्षा के पूरे साल मैं TI-BASIC और graph functions का इस्तेमाल करके Street Fighter का stick-figure version बनाता रहा।
    Screen पर सिर्फ 8 lines दिखती थीं, इसलिए बाद में मैं code कागज़ पर लिखने लगा।
    आज भी सोचकर हैरानी होती है कि मैंने एक ही calculator पर दो लोगों के खेलने वाली structure को GOTO और LABEL से implement किया था।
    मेरी पसंदीदा optimization यह थी कि सिर को circle की जगह hexagon बना दिया जाए — क्योंकि सिर्फ 6 lines draw करनी पड़ती थीं, इसलिए वह कहीं तेज़ था

    • मैं भी 7वीं में अपने birthday पर TI-86 चाहता था, क्योंकि उसमें programming हो सकती थी।
      9वीं में मैंने एक ऐसा program बनाया था जो algebra problems को step-by-step solve करता था, लेकिन exam के दौरान मुझे एक P1-level bug मिल गया।
      Homework में वह perfectly चलता था, लेकिन exam problem पर टूट गया। आख़िरकार मैंने exam से ज़्यादा समय debugging में लगा दिया।
      अब पीछे मुड़कर देखता हूँ तो लगता है कि वह maths से ज़्यादा edge cases सीखने की class थी
    • मैंने भी TI-83+ manual से शुरुआत की थी। Menu-based games और homework helpers बनाते-बनाते मैं z80 assembly तक पहुँच गया।
      अब मैं mobile development करता हूँ। अपनी बनाई चीज़ को जेब में लेकर घूम पाना मुझे हमेशा अच्छा लगता था
    • मैंने TI-84 से शुरुआत की थी। मैंने tic-tac-toe का एक perfect “AI” वाला game बनाया था, लेकिन उसमें “number of players: 0” भी input किया जा सकता था
      संबंधित वीडियो
    • मेरे मामले में TI-81 पर Scorched Earth clone बनाया था। Multiplayer, wind, और random terrain generation तक implement किया था।
      मैंने पूरे 2.4KB और सारे variable slots इस्तेमाल कर डाले थे
  • इस game की जड़ें 1984 के DOS तक जाती हैं
    Drug Wars (video game) - Wikipedia

    • इस version के ‘Ludes’ को देखकर साफ़ 1984 वाली vibe आती है
    • बाद में यह BBS door game के रूप में विकसित हुआ
      संबंधित archive
  • 1900 के दशक के आख़िरी वर्षों में, 9वीं में मेरा एक दोस्त था जो इतना talented artist था कि TI-82 पर pixel art porn बनाता था
    वह हर scene को दो frames में loop करके हैरतअंगेज़ रूप से realistic movement दिखाता था

    • “1900 के दशक के आख़िरी साल” — यह phrase सच में चुभती है
    • कम-से-कम यह किस शहर में हुआ, उसका पहला अक्षर तो जानने की उत्सुकता है
    • ऐसी चीज़ें देखकर teenagers की creativity पर हैरानी होती है। मज़ाक ही सही, लेकिन शायद इसी वजह से pen और paint भी ban कर देने चाहिए
  • यह game HP 48 series पर भी चल सकता है
    HP 48 yoṅ Drugwars
    RPN ज़िंदाबाद

    • RPN ज़िंदाबाद
  • मेरा पहला programming experience TI-83 पर था।
    मुझे आज भी vividly याद है कि class के दौरान मैं अपने दोस्तों को choose-your-own-adventure game खिलाया करता था

  • मैंने TI-83+ पर यह game बहुत खेला है।
    उसी calculator की वजह से मैंने programming सीखी, और TI-BASIC में maths/science calculators और simple games बनाए।
    अब syntax धुंधली हो गई है, लेकिन उस समय मैं इसमें काफ़ी अच्छा था

    • मेरी भी बिल्कुल यही शुरुआत थी। Calculator पर छेड़छाड़ करते-करते programming का concept समझ में आया
  • Code में “If Zù500” जैसी expression देखकर मुझे हमेशा यह जानने की उत्सुकता थी कि ù character क्यों इस्तेमाल हुआ है
    ChatGPT के मुताबिक TI-BASIC में ≤ का byte value, ANSI/Windows-1252 में ù(0xF9) के बराबर है। यानी यह encoding issue था

  • वाह, यह तो सच में nostalgia blast है
    मुझे याद है 9वीं में जब science teacher ने पूछा कि मैं calculator पर क्या कर रहा हूँ, तो suspension के डर से मैंने जल्दी से game delete कर दिया था
    उसकी जगह मैंने दिखाया कि मैं Wing Commander Privateer जैसा game बना रहा हूँ, और उसी से बात संभल गई थी