Party Vibe

Register

Welcome To

Is this the world’s first “perfect” game of Donkey Kong?

Forums Life Computers, Gadgets & Technology Is this the world’s first “perfect” game of Donkey Kong?

  • This topic is empty.
Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • Wes faked it, I saw a documentary about it on youtube’s vice channel, what I don’t get is as a child I loved DK but now I’m an adult I can’t even get the hammer any longer although my Pac man skills have increased…

    Ypu seen the film “The King of Kong?

    @tryptameanie 983121 wrote:

    Ypu seen the film “The King of Kong?

    Ypu seen pixels as well:

    Nope.

    @Monoghan Jig 983120 wrote:

    although my Pac man skills have increased…

    although you cannot get beyond level 255 on a proper arcade version (or emulated ROM) due to a bug

    the current level is stored as a single byte of memory- if it contains 255 adding one to it will cause a rollover back to zero

    in the code which draws the fruits for each level

    2BF0 3A134E LD A,(#4E13) ; Load A with level number
    2BF3 3C INC A ; Increase by one

    ; there is a reason for doing that to make the later code more compact
    ; memory was way expensive in 1980
    ; Achtung! : if address #4E13 already contains 255
    ; A will now contain a big fat zero (the carry flag is also set which should have been checked for here)

    2BF4 FE08 CP #08 ; Is this level < 8 ?

    ; CP (compare) subtracts the operand of#08 from current value of A and sets flags but preserves the accumulator
    ; if A < 8 a carry flag is set
    ; if A =8 the zero flag is set (8-8 == 0)
    ; if A >=9 carry flag is cleared
    ;

    2BF6 D22E2C JP NC,#2C2E ; No, jump to compute different start for fruit table

    ; and now the “phun” starts

    2BF9 11083B LD DE,#3B08 ; Yes, load DE with address of cherry in fruit table[/B]
    2BFC 47 LD B,A ; For B = 1 to level number

    ; so now B register (the byte counter) has been loaded with the zero

    2BFD 0E07 LD C,#07 ; C is 7 = the total number of locations to draw
    2BFF 210440 LD HL,#4004 ; Load HL with the start of video memory
    2C02 1A LD A,(DE) ; Load A with value from fruit table
    2C03 CD8F2B CALL #2B8F ; Draw fruit subroutine
    2C06 3E04 LD A,#04 ;
    2C08 84 ADD A,H ; Add 400 to HL
    2C09 67 LD H,A ; HL now points to color memory
    2C0A 13 INC DE ; DE now points to color code in fruit table
    2C0B 1A LD A,(DE) ; Load A with color code from fruit table
    2C0C CD802B CALL #2B80 ; Draw color subroutine
    2C0F 3EFC LD A,#FC ;
    2C11 84 ADD A,H ; Subtract 4 from H
    2C12 67 LD H,A ; HL now points back to video memory
    2C13 13 INC DE ; Increase pointer to next fruit in table
    2C14 23 INC HL ;
    2C15 23 INC HL ; Next starting point is 2 bytes higher
    2C16 0D DEC C ; Count down how many clears to draw

    ; and at this point everything goes titsup

    2C17 10E9 DJNZ #2C02 ; Next B – loop back and draw next fruit

    ; DJNZ when used properly is a cool feature of the Z80 to create loops
    ; it decrements B, checks if it has gone to zero if not loops back
    ; to the address in the operand
    ; ** but ** if B was zero to start with it will decrement to 255
    ; and then the loop repeats and attempts to to draw 256 fruits
    ; the pointer for the fruit
    ; graphics goes now way out of its bounds and starts using random
    ; data from elsewhere and writes this to video memory
    ;
    ; worse still the routine thinks it has not drawn any fruits; and adds
    ; 7 blanco spaces to the display
    ; because of the odd video memory allocation it ends up looking like this
    ; Pacman is hemmed in to half a screen full with ghosts
    ; and other than getting the remaining half of dots
    ; it is not possible to go any further with the game


    sDpyO.png

    @General Lighting 983130 wrote:

    although you cannot get beyond level 255 on a proper arcade version (or emulated ROM) due to a bug

    the current level is stored as a single byte of memory- if it contains 255 adding one to it will cause a rollover back to zero

    in the code which draws the fruits for each level

    2BF0 3A134E LD A,(#4E13) ; Load A with level number

    2BF3 3C INC A ; Increase by one

    ; there is a reason for doing that to make the later code more compact
    ; memory was way expensive in 1980
    ; Achtung! : if address #4E13 already contains 255
    ; A will now contain a big fat zero (the carry flag is also set which should have been checked for here)

    2BF4 FE08 CP #08 ; Is this level < 8 ?

    ; CP (compare) subtracts the operand of#08 from current value of A and sets flags but preserves the accumulator
    ; if A < 8 a carry flag is set
    ; if A =8 the zero flag is set (8-8 == 0)
    ; if A >=9 carry flag is cleared
    ;

    2BF6 D22E2C JP NC,#2C2E ; No, jump to compute different start for fruit table

    ; and now the “phun” starts

    2BF9 11083B LD DE,#3B08 ; Yes, load DE with address of cherry in fruit table[/B]
    2BFC 47 LD B,A ; For B = 1 to level number

    ; so now B (the byte counter) has been loaded with the zero B]

    2BFD 0E07 LD C,#07 ; C is 7 = the total number of locations to draw
    2BFF 210440 LD HL,#4004 ; Load HL with the start of video memory
    2C02 1A LD A,(DE) ; Load A with value from fruit table
    2C03 CD8F2B CALL #2B8F ; Draw fruit subroutine
    2C06 3E04 LD A,#04 ;
    2C08 84 ADD A,H ; Add 400 to HL
    2C09 67 LD H,A ; HL now points to color memory
    2C0A 13 INC DE ; DE now points to color code in fruit table
    2C0B 1A LD A,(DE) ; Load A with color code from fruit table
    2C0C CD802B CALL #2B80 ; Draw color subroutine
    2C0F 3EFC LD A,#FC ;
    2C11 84 ADD A,H ; Subtract 4 from H
    2C12 67 LD H,A ; HL now points back to video memory
    2C13 13 INC DE ; Increase pointer to next fruit in table
    2C14 23 INC HL ;
    2C15 23 INC HL ; Next starting point is 2 bytes higher
    2C16 0D DEC C ; Count down how many clears to draw

    ; and at this point everything goes titsup

    2C17 10E9 DJNZ #2C02 ; Next B – loop back and draw next fruit

    ; DJNZ when used properly is a cool feature of the Z80 to create loops
    ; it decrements B, checks if it has gone to zero if not loops back
    ; to the address in the operand
    ; ** but ** if B was zero to start with it will decrement to 255
    ; this will attempt to to draw 256 fruits; the pointer for the fruit
    ; graphics goes now way out of its bounds and starts using random
    ; data from elsewhere in memory; and writes this to video memory
    ;
    ; worse still the routine thinks it has not drawn any fruits; and adds
    ; 7 blanco spaces to the display
    ; because of the odd memory allocation it ends up looking like this
    ; Pacman is hemmed in to half a screen full with ghosts
    ; and other than getting the remaining half of dots
    ; it is not possible to go any further with the game


    sDpyO.png

    I’ve never seen anything like that before, I play ms pac man in the web browser, your commodore 64 type stuff makes you some kind of super wizard

    @Monoghan Jig 983131 wrote:

    I’ve never seen anything like that before, I play ms pac man in the web browser, your commodore 64 type stuff makes you some kind of super wizard

    I am no wizard or genius, only an older chap who grew up in the era where you were taught the basic principles of computers and electronics.

    All I am doing is taking advantage of the Internet allowing you to experiment with systems that were unaffordable back in the day or not commonly found in your country (there seem to be quite a few of us online across Europe)

    I’m not much of a gamer or web app coder/designer (I find GUIs fiddly and distracting to work with) more interested in telecoms, networking and embedded systems (arcade consoles are a form of these).

    I study the retro systems as modern computers still worlk along the same lines and TBH it is less stressful than the day job involving 150+ various networked equipments and interlinked apps across 3 sites in UK, 3 VPS in NL and 2 in DE; on top of BT and satellite data circuits all of which can (and do) often act up and result in a barrage of helpdesk calls/emails from the end users..

    @General Lighting 983135 wrote:

    I am no wizard or genius, only an older chap who grew up in the era where you were taught the basic principles of computers and electronics.

    The future holds allot of barriers, no more pitch shift wheels on key boards, no more electric drum machines on the common market and 30 to 40 years ago keyboards would have a velocity pedal it’s like some kind of pedo monster eats the fun people could have with the discoveries of the past.

    Also naturally as time progresses more is discovered so things like computer science have to be crammed in and skimmed over in general education leaving allot to be at a loss…

    @Monoghan Jig 983136 wrote:

    The future holds allot of barriers, no more pitch shift wheels on key boards, no more electric drum machines on the common market and 30 to 40 years ago keyboards would have a velocity pedal it’s like some kind of pedo monster eats the fun people could have with the discoveries of the past.

    this surprises me; although I guess you are supposed to use those midi controllers of various types with the flashing LED buttons but they you have to piss around with getting all the CC codes etc mapped into the DAW and you are also losing the unique sounds of real standalone equipment as well.

    computer science education has to be fair very recently improved; in reality we are still using the same computer and systems from 1970s but with more power in smaller boxes.

    the current problem is kids aren’t given a proper career path like apprenticeships and junior roles with the PTT (telecom) or nationalised utilities that they once were; so they all want to be “startup company entrepreneurs and app developers” rather than learn stuff like “how does the signal from the computer get to the Internet”? / “what is in the mobile phone tower?” / “how do we make sure there is electricity for everyone who needs it?”

    General Lighting is as close to a genius as I’ve ever met. I know 1 person with the levels of knowledge and recall that GL has. There are definitely more intelligent men but we are unlikely to ever meet them.

    @General Lighting 983137 wrote:

    this surprises me; although I guess you are supposed to use those midi controllers of various types with the flashing LED buttons but they you have to piss around with getting all the CC codes etc mapped into the DAW and you are also losing the unique sounds of real standalone equipment as well.

    This is all Greek to me, the fact is I played on a drum machine in an insane asylum and it was really magical despite the fact one of the pads were smashed in, I mean god knows what the average loony gets up to there were human claw marks on the floor of my cell and I have searched countless charity shops where they sell mountains of electrical equipment all to no avail, I could buy one off the internet but it wouldn’t have that worn, retro, 90’s aura, the fact is I should have stolen that drum machine particularly because Maple ward turned their creative arts room into a green ‘relaxation’ room and have in recent months completely shut down now there’s only Rowan ward and Intensive care treatment, aah my lost years in Yorkshire’s Northern General… 🙁

    unfortunately if you are based up North it is likely that real audio equipment is hard to get as its hoarded by folks my age and above in their collections like elsewhere Northern Europe

    A DAW is a digital audio workstation; basically a computer (often with multiple input/output soundcards) used alongside specialist software for recording and producing music. if you are making tracks already unless you have a studio full of other retro gear you might be already using one.

    Most of them should send and receive MIDI either via connections on the soundcard or a USB to MIDI interface.

    if the system uses VST instruments I you should be able to map the signals from any keyboard or controller to emulate velocity pedals, pitch bends etc but you need to know what the signal codes are for the controler and VST.

    Let me know what you are using and what you want to achieve and I can investigate further as to what could be possible.

    See, he’s a fucking genius.

    @General Lighting 983184 wrote:

    unfortunately if you are based up North it is likely that real audio equipment is hard to get as its hoarded by folks my age and above in their collections like elsewhere Northern Europe

    A DAW is a digital audio workstation; basically a computer (often with multiple input/output soundcards) used alongside specialist software for recording and producing music. if you are making tracks already unless you have a studio full of other retro gear you might be already using one.

    Most of them should send and receive MIDI either via connections on the soundcard or a USB to MIDI interface.

    if the system uses VST instruments I you should be able to map the signals from any keyboard or controller to emulate velocity pedals, pitch bends etc but you need to know what the signal codes are for the controler and VST.

    Let me know what you are using and what you want to achieve and I can investigate further as to what could be possible.

    I don’t use equipment anymore, I’m not playing music, I’m not in a band, I’m five middle fingers on a mother fucking hand… I’m sick of you smarty pants and your sidekick, I’ll return to show you the track when it’s finished along with trippy’s stolen artwork… muhahahahahahahaha

0

Voices

13

Replies

Tags

This topic has no tags

Viewing 15 posts - 1 through 15 (of 15 total)
  • You must be logged in to reply to this topic.

Forums Life Computers, Gadgets & Technology Is this the world’s first “perfect” game of Donkey Kong?