1 poin oleh GN⁺ 2026-03-22 | 1 komentar | Bagikan ke WhatsApp
  • Sebuah game simulasi perdagangan berbasis game BASIC untuk IBM PC dari era 1980-an, dalam versi yang berjalan di kalkulator TI-82·83·83+ menggunakan TI-BASIC
  • Pemain berpindah di antara enam kota untuk membeli dan menjual narkoba, melunasi utang, dan mengejar keuntungan maksimum selama satu bulan, dengan struktur yang mencakup kejadian acak dan kejaran polisi
  • Komunitas secara aktif membahas cara instalasi dan menjalankannya, seperti berbagi file .8xp, transfer lewat TI CONNECT, dan konversi dengan TI-Coder, serta membuat berbagai versi modifikasi
  • Melalui analisis kode, ditemukan kesalahan logika seperti bug akibat penggunaan variabel yang tumpang tindih dan loop keuntungan tak terbatas; banyak pengguna kemudian memperbaikinya dan merilis versi yang kompatibel dengan TI-84 CE
  • Setelah itu proyek ini berkembang menjadi remake C/SDL, porting Pico-8 dan C#, serta adaptasi ke konsol Z80, sehingga komunitasnya meluas sebagai proyek pelestarian game kalkulator klasik

Gambaran game Drugwars untuk TI-82/83/83+

  • Drugwars yang berjalan di kalkulator TI-82, TI-83, dan TI-83+ adalah game simulasi perdagangan yang didasarkan pada game BASIC untuk IBM PC dari era 1980-an
    • Pemain membeli dan menjual narkoba sambil melunasi utang kepada lintah darat, dengan tujuan menghasilkan uang sebanyak mungkin dalam waktu satu bulan
    • Game ini ditulis dalam bahasa TI-BASIC dan disusun dengan fokus pada perintah Lbl, Goto, Menu, dan Disp
  • Saat game dimulai, dilakukan inisialisasi variabel seperti modal awal, utang, inventaris, dan kapasitas trenchcoat
    • Contoh: 2000→Z (uang tunai), 5000→Y (utang), 100→K (ruang tersedia), dll.
    • Teks “ORIGINAL GAME FOR IBM BY JOHN E. DELL” ditampilkan untuk mencantumkan sumber karya asli
  • Struktur permainan

    • Pemain melakukan perdagangan sambil berpindah di antara enam kota: Bronx, Ghetto, Central Park, Manhattan, Coney Island, dan Brooklyn
    • Aksi dipilih melalui menu Menu("DRUGWAR!", "SEE PRICES", "BUY", "SELL", "JET", "SEE LOAN SHARK", "VISIT BANK")
    • Harga setiap jenis barang (cocaine, heroin, LSD, marijuana, speed, ludes) berubah secara acak setiap hari
  • Sistem event

    • Kejadian acak muncul dengan fungsi rand
      • Misalnya obral buang stok dari dealer saingan, penggerebekan polisi, lonjakan harga, atau perampokan di kereta bawah tanah
      • Contoh: jika muncul “YOU WERE MUGGED IN THE SUBWAY!”, pemain kehilangan 1/3 uang tunai
    • Dalam kondisi tertentu pemain bisa membeli senjata, upgrade trenchcoat, bertransaksi dengan bank, dan membayar utang ke lintah darat
  • Pertarungan dan kejaran polisi

    • Jika membawa narkoba dalam jumlah tertentu, pemain akan dikejar polisi (OFFICER HARDASS)
    • Di menu, pemain dapat memilih RUN atau FIGHT
    • Jika tidak punya senjata maka hanya bisa kabur, dan bila health (J) mencapai 50 atau lebih maka dianggap mati
    • Jika semua polisi berhasil dikalahkan, pemain mendapat hadiah uang tunai
  • Akhir game dan perhitungan skor

    • Game berakhir setelah 31 hari
    • Skor dihitung berdasarkan (V+Z-Y) lalu dikonversi ke rentang 1~100
    • Hasil ditampilkan bersama pesan “YOUR SCORE (ON A SCALE OF 1 TO 100)”

Diskusi komunitas dan pembagian versi perbaikan

  • Diskusi aktif terus berlanjut tentang cara memasang dan menjalankan game Drugwars untuk TI-82/83/83+
    • Kode bisa dimasukkan langsung lewat interpreter BASIC di kalkulator (PRGM → New), atau dikonversi menjadi file .8xp dengan TI-Coder lalu ditransfer
    • Saat konversi, perlu penyesuaian seperti mengganti menjadi >=, menjadi ->, dan θ menjadi 0
    • File dapat dikirim dari PC ke kalkulator menggunakan TI CONNECT atau adaptor USB untuk TI-83
  • Saran dari gammalogic

    • Ia menawarkan dua cara: membeli adaptor USB TI-83 untuk mengunduh game dari PC, atau memasukkan source code secara manual
    • Beberapa adaptor memakai driver untuk Windows XP, sehingga bisa menimbulkan masalah kompatibilitas di Windows modern
    • Ia juga menyebut kemungkinan adanya driver perangkat lunak bebas untuk Linux atau sistem berbasis Unix
  • File .8xp dari ileathan

    • File .8xp hasil TI-Coder dibagikan lewat tautan https://t7.vc/dl/DRUGWARS.8xp
    • File itu bisa ditransfer ke kalkulator dengan TI CONNECT dan adaptor USB
  • Modifikasi dan perbaikan oleh darth-crunchus

    • Ia menunjukkan adanya kesalahan simbol pertidaksamaan saat konversi dengan TI-Coder serta masalah huruf besar-kecil pada nama variabel
    • Kondisional pada Lbl 3 dan Lbl 4 harus diperbaiki di editor BASIC agar game berfungsi normal
    • Ia menyesuaikan game agar berjalan penuh di TI-84 Plus CE sambil memulihkan event acak (anjing polisi, brownies, dll.), harga senjata, upgrade trenchcoat, dan pengacakan kapasitas simpan
    • Ukuran kode final menjadi 6310B, lalu pada versi pembaruan berkembang hingga 11429B
    • Untuk mendekati versi DOS asli, ia juga menambahkan kemampuan random seeding pada fungsi rand(
    • Source versi terbaru dipublikasikan di https://pastebin.com/4dUuw0BR
  • Diskusi soal input TI-BASIC

    • Dalam pembahasan tentang input alfanumerik, disebutkan bahwa TI-BASIC dapat menangani string dengan panjang variabel
    • Saat karakter dimasukkan ke variabel, nilai karakter tersebut akan diteruskan ke variabel terkait
  • Kompatibilitas dan masalah eksekusi

    • Game dapat berjalan tanpa modifikasi di model TI-84 Plus CE maupun CE Python
    • Sebagian pengguna melaporkan error input saat membeli/menjual yang menyebabkan program kembali ke MirageOS
  • Porting dan ide tambahan

    • Ada rencana untuk menulis ulang game ini sebagai aplikasi konsol C#
    • Seorang pengguna juga menyebut telah membuat versi Pico-8 sendiri
    • Ketertarikan terhadap port untuk Android atau PC juga ikut disebutkan

Struktur kode dan analisis bug

  • Analisis penggunaan ulang variabel TI-83 BASIC oleh tibbon

    • Variabel N dipakai ganda untuk dua tujuan berbeda
      1. Jumlah stok heroin: 0→N, (N+G)→N, (N-G)→N
      2. Pelacakan lokasi: 2→N (Bronx), 1→N (wilayah lain)
    • Akibatnya muncul bug logika seperti berikut
      • Saat berpindah lokasi, jumlah heroin berubah (misalnya pindah ke Bronx membuat N=2 sehingga dianggap memiliki 2 heroin)
      • Saat transaksi heroin, nilai lokasi tertimpa sehingga pengecekan Bronx menjadi salah
      • Ketika N=0, pengecekan Bronx/non-Bronx sama-sama gagal sehingga batasan akses bank dan lintah darat terlepas
      • Pindah ke Bronx otomatis menghasilkan 2 heroin sehingga muncul loop keuntungan tak terbatas
      • Rumus inventaris (T-M-N-O-P-Q-R)→K memakai nilai lokasi sehingga menyebabkan kesalahan perhitungan kapasitas simpan
  • Contoh eksploitasi utama

    1. Akses bank/lintah darat tanpa batas: pembatasan wilayah bisa dilewati saat N=0
    2. Generasi heroin tak terbatas: 2 heroin yang muncul otomatis di Bronx bisa dijual berulang kali
    3. Inkonsistensi inventaris: karena nilai lokasi menimpa data lain, kapasitas trenchcoat bisa terlampaui

Sumber kode asli dan latar historis

  • gammalogic menanyakan apakah kode ini memang berbasis pada source IBM BASIC asli, dan mattmanning menjawab bahwa “versi TI didasarkan pada game IBM, tetapi tidak bisa dikompilasi untuk platform lain dan lebih cocok sebagai referensi aturan serta logika game”
    • Ia menjelaskan bahwa ia menemukan kodenya di internet lalu hanya merapikan format teksnya
  • Kreator asli John Dell membuat Drugwars dengan inspirasi dari game TRS-80 Taipan

Perluasan komunitas dan aktivitas lanjutan

  • Sebagian pengguna melaporkan error saat menjalankan di TI-84+, tetapi pengguna lain mengonfirmasi bahwa game berjalan normal di emulator TI-83+ dan TI-84+
    • Ada juga tips bahwa :: harus ditambahkan pada baris pertama kode agar dikenali oleh MirageOS
    • Kode juga bisa dijalankan dengan memasukkannya langsung di kalkulator melalui prgm -> new
  • Pengguna DaSovietPotato merilis versi terpisah yang memperbaiki bug kompatibilitas TI-84
  • gammalogic membagikan rencana remake dalam C/SDL lalu mem-porting-nya ke konsol berbasis Z80 seperti Master System dan NES
    • Demo awal C/SDL sudah mengimplementasikan antarmuka berbasis resolusi NES serta fitur penggantian kota dan barang
    • Ia juga menyebut rencana pengembangan lanjutan ke versi “Drugwars 2.0”
  • Beberapa pengguna mengungkapkan nostalgia masa sekolah dan membagikan upaya memasang ulang game menggunakan kabel TI-83
    • Komunitas juga mendorong porting mandiri melalui analisis kode dan pembelajaran BASIC, serta merekomendasikan merujuk ke manual TI-83
  • Hingga 2024~2026, komentar terus bertambah dan upaya ekspansi ke TI-84 CE, Pico-8, dan port C# terus berlanjut
    • Beberapa pengguna saling berkirim email untuk meminta dan membagikan file .8xp
    • Proyek ini berkembang menjadi inisiatif pelestarian dan penyempurnaan game kalkulator klasik di dalam komunitas

1 komentar

 
GN⁺ 2026-03-22
Komentar Hacker News
  • TI-83 Basic adalah bahasa pemrograman pertama yang membuatku merasa benar-benar menguasainya
    Saat tahun pertama kuliah, aku biasa menulis kode dalam TI-Basic lalu menerjemahkannya ke C++. Pada masa itu Drugwars dan Bowling benar-benar game yang membekas
    Lalu ketika aku menemukan assembly z80, rasanya seperti sihir. Aku masih ingat pergi ke lab riset kampus ayahku (tempat yang punya dua jalur internet T1) untuk mengunduh game assembly yang baru rilis. Turbo Breakout, Snake, AShell, Penguins karya Bill Nagel, dan Mario grayscale benar-benar mengguncangku. Tapi menurutku yang paling matang dan paling enak dimainkan berulang kali adalah Sqrxz dan ZTetris untuk TI-86.
    Pernah juga aku mencetak source assembly z80 sebuah game dan membawanya ke mana-mana setebal satu telapak tangan sambil mencoba memahaminya.
    Selain itu, entah kenapa memasukkan kode heksadesimal acak lalu menjalankannya juga terasa menyenangkan. Kadang kalkulatornya jadi brick, tapi kalau baterainya dilepas lalu dipasang lagi, hidup lagi
    Ada yang ingat perang situs web TI? TI Files (yang kemudian jadi TI Philes) bilang bahwa mereka “jauh lebih keren daripada ticalc.org”, tapi pada akhirnya yang masih bertahan sampai sekarang adalah ticalc.org

    • Mengejutkan bahwa ticalc.org masih hidup. Joltima adalah alasan aku belajar assembly. RPG penuh dengan pertarungan turn-based di TI-86 itu benar-benar melampaui zamannya
    • Nama Bill Nagel membuatku kagum saat umur 12 tahun. Di masa ketika aku cuma tahu TI Basic, aku benar-benar tidak paham bagaimana dia bisa membuat game seperti itu
    • Aku juga rutin mengecek ticalc.org sambil menunggu update demo port Zelda: Link’s Awakening
    • Dalam kasusku, pemicunya adalah PlaneJump karya Andreas Ess. Dari situ aku mengenal dunia assembly dan demoscene, lalu langsung tenggelam di dalamnya
  • Game ini sangat berarti bagiku. Saat SMA aku benar-benar kecanduan padanya, dan pengalaman itu membekas dalam hidupku.
    Drugwars adalah inspirasi langsung untuk proyek passion-ku, Farmhand
    Senang sekali bisa melihatnya lagi seperti ini

    • Saat semua orang memasang game ini dan klon Mario di kalkulator TI mereka, aku justru memainkan Space Trader yang terinspirasi dari Palm
    • Kelas Algebra 2 pada dasarnya adalah kelas Drugwars dan Snake. Untungnya aku selangkah lebih maju, jadi tidak perlu mengulang
    • Aku juga sangat menyukai game ini sampai-sampai memainkannya alih-alih belajar matematika. Berkat aplikasi lain di TI-83+, aku akhirnya tetap lolos ujian.
      Sekarang di era AI, semua orang seolah tidak bisa melakukan apa-apa tanpa komputer kecil, jadi rasanya ada semacam pembenaran yang aneh
    • Bisa jadi kecanduan game justru hal yang baik ;-)
  • “Fakta menarik” versiku adalah aku mulai belajar pemrograman dengan membaca manual TI-83+
    Sepanjang kelas 9 aku membuat versi stick figure Street Fighter memakai TI-BASIC dan fungsi grafik.
    Karena layar hanya menampilkan 8 baris, belakangan aku bahkan menulis kodenya di kertas.
    Sampai sekarang masih terasa menakjubkan bahwa aku berhasil membuat dua orang bisa bermain di kalkulator yang sama dengan GOTO dan LABEL.
    Optimasi favoritku adalah mengubah kepala dari lingkaran menjadi heksagon — karena cukup menggambar 6 garis, jadi jauh lebih cepat

    • Aku juga ingin TI-86 saat ulang tahun di kelas 7, karena kalkulator itu bisa diprogram.
      Saat kelas 9, aku membuat program yang menyelesaikan soal aljabar langkah demi langkah, lalu menemukan bug level P1 saat ujian.
      Untuk PR semuanya bekerja sempurna, tapi justru rusak pada soal ujian. Akhirnya aku menghabiskan lebih banyak waktu untuk debugging daripada mengerjakan ujiannya.
      Kalau dipikir-pikir sekarang, itu lebih seperti pelajaran tentang edge case daripada matematika
    • Aku juga mulai dari manual TI-83+. Dari membuat game berbasis menu dan alat bantu PR, lalu beralih ke assembly z80.
      Sekarang aku bekerja di pengembangan mobile. Aku selalu suka bisa membawa sesuatu yang kubuat sendiri di dalam saku
    • Aku mulai dari TI-84. Aku membuat game tic-tac-toe dengan “AI” sempurna, tetapi tetap memungkinkan untuk memasukkan “jumlah pemain: 0”
      Video terkait
    • Dalam kasusku, aku membuat klon Scorched Earth di TI-81. Ada multiplayer, angin, bahkan pembuatan medan acak.
      Seluruh 2.4KB habis terpakai, begitu juga semua slot variabel
  • Asal-usul game ini bermula dari DOS pada 1984
    Drug Wars (video game) - Wikipedia

    • Melihat ‘Ludes’ di versi ini, memang terasa sangat 1984
    • Setelah itu berkembang menjadi game pintu BBS
      Arsip terkait
  • Aku punya teman di kelas 9 pada akhir 1900-an, dan dia adalah seniman berbakat sampai-sampai bisa membuat porno pixel art di TI-82
    Dia mengulang setiap adegan dalam dua frame untuk menghasilkan gerakan yang sangat realistis

    • “Akhir 1900-an” — aduh, ungkapan itu menyakitkan sekali
    • Aku jadi penasaran, minimal huruf pertama nama kotanya apa
    • Hal seperti ini benar-benar menunjukkan betapa luar biasanya kreativitas remaja. Bercanda sih, tapi kalau begini alasannya, mungkin pena dan cat juga harus dilarang
  • Game ini juga bisa dijalankan di seri HP 48
    Drugwars untuk HP 48
    Hidup RPN

    • Hidup RPN
  • Pengalaman pemrograman pertamaku adalah di TI-83.
    Aku masih ingat membiarkan teman-teman memainkan game petualangan pilih-sendiri saat jam pelajaran

  • Aku benar-benar sering memainkan game ini di TI-83+.
    Berkat kalkulator itu aku belajar pemrograman, dan membuat program perhitungan untuk matematika/sains serta game sederhana dalam TI-BASIC.
    Sekarang sintaksnya sudah agak lupa, tapi waktu itu aku lumayan mahir

    • Aku juga memulainya persis seperti itu. Dari iseng-iseng di kalkulator, lalu mulai paham konsep pemrograman
  • Saat melihat ekspresi seperti “If Zù500” di kodenya, aku penasaran kenapa karakter ù dipakai
    Menurut ChatGPT, dalam TI-BASIC nilai byte untuk ≤ sama dengan ù(0xF9) di ANSI/Windows-1252. Jadi ini masalah encoding

  • Wah, ini benar-benar ledakan nostalgia
    Aku ingat saat kelas 9 guru sains bertanya aku sedang melakukan apa dengan kalkulatorku, dan karena takut diskors aku cepat-cepat menghapus gamenya
    Sebagai gantinya aku menunjukkan bahwa aku sedang membuat game seperti Wing Commander Privateer, dan akhirnya lolos dari masalah