Welcome, Guest. Please login or register.


Author Topic: Snake 256byte (Read 15311 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10094
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Snake 256byte
« Reply #30 on: 2017.April.04. 17:57:35 »
ez itt a híres 96kbyte-os game.
Biztos? Nem 96Mbyte-ot akartál írni? :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10094
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Snake 256byte
« Reply #31 on: 2017.April.04. 18:03:08 »
Talán nem terheli le nagyon a gépet ez a játék. Lehetne megpróbálni DTM zenét vagy SID-et betenni alá, eléggé hangulatos lenne.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Snake 256byte
« Reply #32 on: 2017.April.04. 18:32:29 »
Vigyázat! Szektás vagyok! :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1342
  • Country: hu
  • Stray cat from Commodore alley
Re: Snake 256byte
« Reply #33 on: 2017.April.04. 18:54:30 »
én csak pc demók esetén gondolom ezt. írtam pár 256byte demót, és jópárat megnéztem, mind esetében a fájl méret volt 256 vagy kevesebb :)
Olvastam ilyen vitát a Pouëten, ahol a PC-s kóder kioktatott mindenkit, hogy nem úgy van az, mindenképp a fájlméret számít. Hivatkoztak olyan kirívó esetekre, mint amit én is említettem, de kötötte az ebet a karóhoz, hogy az márpedig univerzálisan úgy van, és punktum. Máshol is láttam ilyesféle beszélgetést, ahol valami régi C64-es kóder arc közölte, hogy náluk pedig ez úgy van, hogy 256 bájt a fájl értékes tartalma, a mindenféle csillingek nem számítanak sehová, mire ámulva válaszoltak, hogy fura emberek vagytok ti 64-esek.

Persze legyen bármilyen kicsi a produkció bármilyen masinán, azért tudnak nekem tetszeni nagyon. :)

Offline geco

  • EP addict
  • *
  • Posts: 7219
  • Country: hu
    • Támogató Támogató
Re: Snake 256byte
« Reply #34 on: 2017.April.04. 19:14:39 »
Amit én személy szerint az olyan platformon kódolók szemétségének tartok, akik jól tudnak trükközni a fájl fejléccel. CPC-sek – példának okáért (már ha jól emlékszem) – meg jól le vannak tojva, hogy náluk ez 128 bájt, és nem használható semmire. De hát ez az én egyéni szociális problémám. ÍJ.
Na nekem meg pont ellenkező értelemben jutott eszembe a CPC kellemes 128 bájtos fejléce, hogy ők meg buknak 128 bájtot :D
Már nem emlékszem pontosan mennyi, de elég nagy része a fejlécnek használatos, igaz a nem használt terület még így is jóval több mókolási lehetőséget ad, mint az EP 16 bájtos fejlécének felhasználható pár bájtja :D

Offline geco

  • EP addict
  • *
  • Posts: 7219
  • Country: hu
    • Támogató Támogató
Re: Snake 256byte
« Reply #35 on: 2017.April.04. 19:15:51 »
ez itt a híres 96kbyte-os game.
na persze az elején generál egy csomó textúrát, hangot, geometriát a marha sok memóriába :)
https://www.youtube.com/watch?v=M0KSUqZTkZ0
Na, én úgy emlékeztem, hogy 64Kb (ezek szerint rosszul :) ) volt ez a game, és marha sokáig csak előkészült :D ( anno a gépemen )

Offline geco

  • EP addict
  • *
  • Posts: 7219
  • Country: hu
    • Támogató Támogató
Re: Snake 256byte
« Reply #36 on: 2017.April.04. 19:21:41 »
Itt a kommentelt forrás, és kommentelés közben még találtam két fölösleges utasítást is, de benne hagytam :D
Amúgy, a belinkelt Speccy programoknak meg külön loadere volt, abban is lehet mókolni a kód előtt.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Snake 256byte
« Reply #37 on: 2017.April.05. 09:58:02 »
256 byte méretű file (lehet, hogy hibás :oops:):
[ Guests cannot view attachments ]

Offline geco

  • EP addict
  • *
  • Posts: 7219
  • Country: hu
    • Támogató Támogató
Re: Snake 256byte
« Reply #38 on: 2017.April.05. 11:40:31 »
256 byte méretű file (lehet, hogy hibás :oops:):
Pár percet szórakoztam vele, nem tűnt annak, viszont ezt a mocskos trükköt :D , kihasználod, hogy a BF10-re tölti a headert, és abban is van kód, viszont még így is meg kellett spórolni jópár bájtot :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Snake 256byte
« Reply #39 on: 2017.April.05. 11:51:02 »
Az EXOS verziótól függően különböző címre töltődik a fejléc, ezért valójában csak néhány byte megtakarítását tette lehetővé a trükk. De az nem lenne probléma, ha EP64-en futna a BF0Fh címen a NOP, tehát az még +1 byte lehetne. Illetve a DEC B és RET P is futhatna a B megfelelő inicializálásával.

EXOS 2.0:
Code: ZiLOG Z80 Assembler
  1. .   BF0C  00           NOP
  2. .   BF0D  05           DEC   B
  3. .   BF0E  F0           RET   P
  4. .   BF0F  00           NOP
  5. .   BF10  18 02        JR    BF14
  6. .   BF12  00           NOP
  7. .   BF13  00           NOP
  8. .   BF14  2A F4 BF     LD    HL, (BFF4)
  9. .   BF17  23           INC   HL
  10. .   BF18  11 00 C0     LD    DE, C000
  11. .   BF1B  C9           RET

EXOS 2.1:
Code: ZiLOG Z80 Assembler
  1. .   BF08  00           NOP
  2. .   BF09  05           DEC   B
  3. .   BF0A  F0           RET   P
  4. .   BF0B  00           NOP
  5. .   BF0C  18 02        JR    BF10
  6. .   BF0E  00           NOP
  7. .   BF0F  00           NOP
  8. .   BF10  2A F4 BF     LD    HL, (BFF4)
  9. .   BF13  23           INC   HL
  10. .   BF14  11 00 C0     LD    DE, C000
  11. .   BF17  C9           RET
« Last Edit: 2017.April.05. 11:57:40 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7219
  • Country: hu
    • Támogató Támogató
Re: Snake 256byte
« Reply #40 on: 2017.April.05. 13:12:26 »
Épp azt nézem, hol sikerült még spórolni, hát igen, amikor átnéztem spórolás ügyben, nem vettem észre pl at or 80h, ld de,0050h-t, amit összevontál :) ( a felénél járok)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Snake 256byte
« Reply #41 on: 2017.April.05. 14:55:40 »
Ezek a módosítások (nem az eredeti forráskódhoz képest, de talán így is látható, mi változott):
Code: Diff
  1. @@ -1,15 +1,23 @@
  2.  
  3.          org   00f0h
  4. -        defw  0500h, codeEnd - main, 0, 0, 0, 0, 0, 0
  5. +        defw  0500h, codeEnd - main
  6. +
  7. +        phase 0bf10h
  8. +        jr    0bf14h
  9. +        nop
  10. +        nop
  11. +        ld    hl, (0bff4h)
  12. +        inc   hl
  13. +        ld    de, 0c000h
  14. +        ret
  15. +        dephase
  16.  
  17.  main:
  18.          ld    sp, 0100h
  19.          ei
  20. -        ld    hl, (0bff4h)
  21. -        inc   hl
  22. +        call  0bf10h
  23.          inc   hl
  24. -        ld    de, 0c000h
  25.          ld    b, e
  26.          ld    a, 28
  27.  .l1:    ld    (hl), 0bh
  28.          inc   l
  29. @@ -56,61 +64,57 @@
  30.          xor   h
  31.          ld    h, a
  32.          ld    (.l5 + 1), hl
  33.          and   03h
  34. -        or    80h
  35.          ld    h, a
  36. -        ld    de, 80
  37. +        ld    de, 8000h + 80
  38.          add   hl, de
  39. -        ld    a, (hl)
  40. -        cp    20h
  41. -        jr    nz, .l5
  42. +        bit   5, (hl)
  43. +        jr    z, .l5
  44.          ld    (hl), 1ah
  45.          djnz  .l5
  46.          pop   hl
  47. -        ld    c, 0
  48. -.l6:    ld    a, 4                      ; *
  49. -        ld    e, a
  50. +        ld    c, b
  51. +.l6:    ld    b, 4                      ; *
  52. +        ld    e, b
  53.  .l7:    halt
  54. -        dec   a
  55. -        jr    nz, .l7
  56. +        djnz  .l7
  57.          ld    a, 7
  58.          out   (0b5h), a
  59.          in    a, (0b5h)
  60.          rrca
  61.          jr    nc, .l2
  62.          rrca
  63. -        push  bc
  64. -        ld    bc, 40
  65. -        jr    nc, .l10
  66. +        ld    b, 40
  67. +        jr    nc, .l9
  68.          rrca
  69. -        ld    c, 1
  70. -        jr    nc, .l10
  71. +        ld    b, 1
  72. +        jr    nc, .l9
  73.          rrca
  74. -        ld    bc, -40
  75. -        jr    nc, .l10
  76. +        ld    b, 256 - 40
  77. +        jr    nc, .l9
  78.          rrca
  79.          jr    c, .l8
  80.          ld    a, e
  81. -        and   07h
  82. +        and   7
  83.          inc   a
  84.          ld    (.l6 + 1), a
  85.          or    30h
  86.          ld    (0bebch), a
  87. -        jr    .l9
  88. +        jr    .l10
  89.  .l8:    rrca
  90. -        ld    c, b
  91. -        jr    nc, .l10
  92. -.l9:    pop   bc
  93. -        defb  3eh                       ; = LD A, n
  94. -.l10:   pop   af
  95. -        ld    a, c
  96. -        or    a
  97. +        ld    b, 256 - 1
  98. +        jr    c, .l10
  99. +.l9:    ld    c, b
  100. +.l10:   ld    a, c
  101. +        add   a, a
  102.          jr    z, .l6
  103. +        sbc   a, a
  104. +        ld    b, a
  105.          add   hl, bc
  106.          ld    a, (hl)
  107. -        cp    9fh
  108. -        jp    z, .l2
  109. +        or    a
  110. +        jp    m, .l2
  111.          cp    20h
  112.          push  af
  113.          ld    (hl), 9fh
  114.          push  hl
  115. @@ -123,15 +127,15 @@
  116.          ld    (hl), b
  117.          pop   af
  118.          jr    nz, .l12
  119.          ld    l, 0
  120. -        ld    e, (hl)
  121. +        ld    e, l
  122. +        ld    d, h
  123. +        ld    c, (hl)
  124.          inc   l
  125. -        ld    d, (hl)
  126. +        ld    b, (hl)
  127.          inc   l
  128. -        ld    a, 20h
  129. -        ld    (de), a
  130. -        ld    de, 0300h
  131. +        ld    (bc), a                   ; A = 20h
  132.          ld    bc, 200
  133.          ldir
  134.  .l11:   exx
  135.          jr    .l6
  136. @@ -142,22 +146,22 @@
  137.          dec   (hl)
  138.          jr    nz, .l11
  139.          jp    .l3
  140.  .l13:   ld    hl, 8000h + 40
  141. -        ld    de, 9f9fh
  142. +        ld    d, 9fh
  143.          call  .l15
  144.          ld    e, 20h
  145.          ld    c, 25
  146. -.l14:   call  .l15
  147. +.l14:   call  .l16
  148.          dec   c
  149.          jr    nz, .l14
  150. -        ld    e, d
  151. -.l15:   ld    (hl), d
  152. +.l15:   ld    e, d
  153. +.l16:   ld    (hl), d
  154.          inc   hl
  155.          ld    b, 38
  156. -.l16:   ld    (hl), e
  157. +.l17:   ld    (hl), e
  158.          inc   hl
  159. -        djnz  .l16
  160. +        djnz  .l17
  161.          ld    (hl), d
  162.          inc   hl
  163.          ret
  164.  codeEnd:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Snake 256byte
« Reply #42 on: 2017.April.06. 10:36:11 »
én csak pc demók esetén gondolom ezt. írtam pár 256byte demót, és jópárat megnéztem, mind esetében a fájl méret volt 256 vagy kevesebb :)

IS-DOS alatt indítható .com program is lehetne? Annak nincs fejléce, bár több inicializálást igényel (rendszerszegmens belapozása és EXOS 0), így is 253 byte lenne a file méret.

Offline geco

  • EP addict
  • *
  • Posts: 7219
  • Country: hu
    • Támogató Támogató
Re: Snake 256byte
« Reply #43 on: 2017.April.06. 10:41:44 »
IS-DOS alatt indítható .com program is lehetne? Annak nincs fejléce, bár több inicializálást igényel (rendszerszegmens belapozása és EXOS 0), így is 253 byte lenne a file méret.
Felőlem simán :)