Jump to content
IGNORED

Bounce'n'Pounce (game released)


PeteE

Recommended Posts

Speech Buffer thread began...
CPU thread began...
Starting Window management
(Non-DSR) Top of VRAM pointer at >8370 changed to >0000 by PC >0028
CS1 tape motor on suppressed - waiting for off->on transition.
CS2 is not supported.
(Non-DSR) Top of VRAM pointer at >8370 changed to >1000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >2000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >4000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >3F00 by PC >025A
(Non-DSR) Top of VRAM pointer at >8370 changed to >3FFF by PC >025E
Setting top of VRAM to >37D7 (3 files)
Found B:\Ti-994a\bnp_8.bin...
Initializing AMS mode 2, size 33554432k
Loading file from resource: Type D, Bank 0, Address 0x1100, Length 0x01C0
Loading file from resource: Type E, Bank 0, Address 0x1100, Length 0x2000
Loading file from resource: Type S, Bank 0, Address 0x0000, Length 0x8000
Loading file from resource: Type P, Bank 0, Address 0x0000, Length 0xF800
Loading file from resource: Type C, Bank -1, Address 0x0000, Length 0x2000
Loading file from resource: Type G, Bank -1, Address 0x0000, Length 0x1800
Loading file from resource: Type G, Bank -1, Address 0x2000, Length 0x1800
Loading file from resource: Type G, Bank -1, Address 0x4000, Length 0x1800
Loading file (B:\Ti-994a\bnp_8.bin) from disk: Type 8, Bank 0, Address 0x0000, Length 0x8000
Loaded 32768 bytes, non-inverted, bank mask 0x3
(Non-DSR) Top of VRAM pointer at >8370 changed to >0000 by PC >0028
CS1 tape motor on suppressed - waiting for off->on transition.
CS2 is not supported.
(Non-DSR) Top of VRAM pointer at >8370 changed to >1000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >2000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >4000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >3F00 by PC >025A
(Non-DSR) Top of VRAM pointer at >8370 changed to >3FFF by PC >025E
Setting top of VRAM to >37D7 (3 files)
 

Link to comment
Share on other sites

27 minutes ago, Vindex said:

Speech Buffer thread began...
CPU thread began...
Starting Window management
(Non-DSR) Top of VRAM pointer at >8370 changed to >0000 by PC >0028
CS1 tape motor on suppressed - waiting for off->on transition.
CS2 is not supported.
(Non-DSR) Top of VRAM pointer at >8370 changed to >1000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >2000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >4000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >3F00 by PC >025A
(Non-DSR) Top of VRAM pointer at >8370 changed to >3FFF by PC >025E
Setting top of VRAM to >37D7 (3 files)
Found B:\Ti-994a\bnp_8.bin...
Initializing AMS mode 2, size 33554432k
Loading file from resource: Type D, Bank 0, Address 0x1100, Length 0x01C0
Loading file from resource: Type E, Bank 0, Address 0x1100, Length 0x2000
Loading file from resource: Type S, Bank 0, Address 0x0000, Length 0x8000
Loading file from resource: Type P, Bank 0, Address 0x0000, Length 0xF800
Loading file from resource: Type C, Bank -1, Address 0x0000, Length 0x2000
Loading file from resource: Type G, Bank -1, Address 0x0000, Length 0x1800
Loading file from resource: Type G, Bank -1, Address 0x2000, Length 0x1800
Loading file from resource: Type G, Bank -1, Address 0x4000, Length 0x1800
Loading file (B:\Ti-994a\bnp_8.bin) from disk: Type 8, Bank 0, Address 0x0000, Length 0x8000
Loaded 32768 bytes, non-inverted, bank mask 0x3
(Non-DSR) Top of VRAM pointer at >8370 changed to >0000 by PC >0028
CS1 tape motor on suppressed - waiting for off->on transition.
CS2 is not supported.
(Non-DSR) Top of VRAM pointer at >8370 changed to >1000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >2000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >4000 by PC >025E
(Non-DSR) Top of VRAM pointer at >8370 changed to >3F00 by PC >025A
(Non-DSR) Top of VRAM pointer at >8370 changed to >3FFF by PC >025E
Setting top of VRAM to >37D7 (3 files)
 

That all looks normal, what part isn't loading?

Link to comment
Share on other sites

Weird, mine also says address 0x0000, but it loads at 6000 when I try it.  In the debugger CPU pane, set to 6000, shows the cartridge loaded at the proper address

6000: AA 01 01 00 00 00 60 0A ......`.
6008: 00 00 00 00 60 36 0F 42 ....`6.B
6010: 4F 55 4E 43 45 27 4E 27 OUNCE'N'
6018: 50 4F 55 4E 43 45 04 E0 POUNCE..
6020: 60 02 04 5A 04 E0 60 04 `..Z..`.
6028: 04 5A 04 E0 60 06 04 5A .Z..`..Z
6030: 04 E0 60 00 04 5A 04 E0 ..`..Z..

I'm out of ideas... maybe @Tursi could chime in?

Link to comment
Share on other sites

Yeah, at this point, try PeteE's suggestion - go to the debugger, select the CPU radio button at bottom right, and enter "6000" in the box there and press Apply. See if your hex dump looks the same as above - to show up in the menu the first 4 lines need to look the same.

 

If they are not the same - everything else looks correct, I'd suspect you have a corrupted download.

 

  • Thanks 1
Link to comment
Share on other sites

5 hours ago, Vindex said:

Sorry ... I solved. I had selected Ti99 / 4a v.2.2 as hardware. Sorry for the inconvenience ... but I did not know the machine.

ooooh.. yes, that would be the other option. ;) The V2.2 BIOS locks out ROM-only cartridges. No worries - there are no fixes or other reasons worth running the 2.2 version for. :)

Link to comment
Share on other sites

  • 3 weeks later...
On 2/1/2020 at 9:48 PM, PeteE said:

I'm glad you asked.  The tracks are made from 16 segments, each 32x32 characters:

segments.thumb.png.6f04f2d73ae5398d8f8c8ca22f90f2e0.png

This graphics lesson was interesting to read. How did you manage the music in the game? I've successfully written a song-list player to mimic what goes on in the E/A manual TI routines. Wondering about the state of the art techniques regarding in-game music these days?

  • Like 1
Link to comment
Share on other sites

16 minutes ago, Airshack said:

Wondering about the state of the art techniques regarding in-game music these days?

I use a tracker called MOD2PSG2 to produce either a VGM file, which can be played by Tursi's player, or a ePSGMOD file, which Tursi has also made a player for, but recently I have been using my own, very compact player. Another tracker that can produce VGM files is DefleMask, which was used for the Megademo. I know some people have been using my SoundListRipper as a tracker to produce standard sound lists. But actually I think most of the active TI developers are coding their music by hand.

  • Thanks 1
Link to comment
Share on other sites

The music and sound effects for bounce'n'pounce were composed in a C program which builds a sound list in memory with an option to play it or save it to a file.  I was copying the notes from a MIDI file I found from the original game.  Here's a sample of what the C code looks like:

        case 3: // intro
		chord_vol = 2;
                chord(G5,E5,2); chord(G5,E5,1); chord(G5,E5,1); chord(G5,E5,5); rest(1); chord(A5,F5,2); chord(G5,E5,2); chord(A5,F5,2); 
                chord(G5,E5,2); chord(G5,E5,1); chord(G5,E5,1); chord(G5,E5,3); rest(1); chord(G5,E5,2); rest(2);
                rest(4);
		
        		// don't terminate
        		if (duration) putchar(duration);
		
                return 0;
		
        case 4: // driving
		chord_vol = 4; // quieter while driving
                chord(E5,C5,2); chord(E5,C5,2); chord(C5,A4,2); chord(C5,A4,2); chord(D5,B4,2); chord(D5,B4,2); chord(F5,D5,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,2); chord(C5,A4,2); chord(C5,A4,2); chord(D5,B4,2); chord(D5,B4,2); chord(G4,E4,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,2); chord(C5,A4,2); chord(C5,A4,2); chord(D5,B4,2); chord(D5,B4,2); chord(E5,C5,2); chord(F5,D5,2);
                chord(G5,E5,2); chord(G5,E5,2); chord(C6,A5,2); chord(G5,E5,2); chord(E5,C5,2); chord(G5,E5,2); chord(C6,A5,3); rest(1);

                chord(C6,A5,2); chord(A5,F5,3); rest(1); chord(F5,D5,2); chord(B5,G5,2); chord(G5,E5,3); rest(1); chord(E5,C5,2);
                chord(A5,F5,2); chord(F5,D5,3); rest(1); chord(D5,B4,2); chord(G5,E5,2); chord(E5,C5,3); rest(1); chord(C5,A4,2);
                chord(C5,A4,2); chord(E5,C5,2); chord(G5,E5,2); chord(G5,E5,2); chord(D5,B4,2); chord(F5,D5,2); chord(A5,F5,2); chord(A5,F5,2);
                chord(G5,E5,2); chord(B5,G5,2); chord(D6,B5,2); chord(E6,C6,2); chord(C6,A5,6); rest(2);

                chord(C6,A5,2); rest(1); chord(A5,F5,1); chord(F5,D5,3); rest(1); chord(B5,G5,2); rest(1); chord(G5,E5,1); chord(E5,C5,3); rest(1);
                chord(E5,C5,2); rest(1); chord(F5,D5,1); chord(G5,E5,3); rest(1); chord(G4,E4,1); chord(A4,F4,1); chord(B4,G4,1); chord(C5,A4,1); chord(D5,B4,1); chord(E5,C5,1); chord(F5,D5,1); chord(G5,E5,1);
                chord(F5,D5,2); rest(1); chord(G5,E5,1); chord(A5,F5,3); rest(1); chord(A4,F4,1); chord(B4,G4,1); chord(C5,A4,1); chord(D5,B4,1); chord(E5,C5,1); chord(F5,D5,1); chord(G5,E5,1); chord(A5,F5,1);
                chord(E5,C5,2); chord(E5,C5,2); chord(F5,D5,2); chord(F5,D5,2); chord(G5,E5,2); chord(G5,E5,2); chord(C5,A4,3); rest(1);

                chord(F5,D5,2); chord(D5,B4,2); chord(E5,C5,2); chord(F5,D5,2); chord(E5,C5,2); chord(D5,B4,2); chord(C5,A4,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,1); chord(E5,C5,1); chord(C5,A4,2); chord(C5,A4,1); chord(C5,A4,1); chord(F5,D5,2); chord(E5,C5,2); chord(D5,B4,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,1); chord(E5,C5,1); chord(C5,A4,2); chord(C5,A4,1); chord(C5,A4,1); chord(E5,C5,2); chord(D5,B4,2); chord(C5,A4,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,1); chord(E5,C5,1); chord(C5,A4,2); chord(C5,A4,1); chord(C5,A4,1); chord(E5,C5,1); chord(F5,D5,1); chord(G5,E5,1); chord(A5,F5,1); chord(B5,G5,3); rest(1);

                chord(E5,C5,2); chord(E5,C5,1); chord(E5,C5,1); chord(C5,A4,2); chord(C5,A4,1); chord(C5,A4,1); chord(F5,D5,2); chord(E5,C5,2); chord(D5,B4,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,1); chord(E5,C5,1); chord(C5,A4,2); chord(C5,A4,1); chord(C5,A4,1); chord(B4,G4,1); chord(A4,F4,1); chord(B4,G4,1); chord(C5,A4,1); chord(D5,B4,3); rest(1);
                chord(E5,C5,2); chord(E5,C5,1); chord(E5,C5,1); chord(C5,A4,2); chord(C5,A4,1); chord(C5,A4,1); chord(D5,B4,1); chord(E5,C5,1); chord(F5,D5,1); chord(G5,E5,1); chord(A5,F5,3); rest(1);
                chord(B5,G5,2); chord(B5,G5,1); chord(B5,G5,1); chord(G5,E5,2); chord(G5,E5,1); chord(G5,E5,1); chord(C6,A5,1); chord(B5,G5,1); chord(A5,F5,1); chord(B5,G5,1); chord(C6,A5,3); rest(1);

                chord(C6,A5,2); chord(A5,F5,2); chord(F5,D5,2); chord(G5,E5,2); chord(B5,G5,2); chord(G5,E5,2); chord(E5,C5,2); chord(F5,D5,2);
                chord(A5,F5,2); chord(F5,D5,2); chord(D5,B4,2); chord(E5,C5,2); chord(G5,E5,2); chord(E5,C5,2); chord(C5,A4,3); rest(1);
                chord(C6,A5,3); rest(1); chord(A5,F5,2); chord(F5,D5,2); chord(B5,G5,2); chord(B5,G5,2); chord(G5,E5,2); chord(E5,C5,2);
                chord(A5,F5,3); rest(1); chord(F5,D5,2); chord(D5,B4,2); chord(G5,E5,2); chord(G5,E5,2); chord(E5,C5,2); chord(C5,A4,2);

                // repeat?
                break;
		
        case 5: // finish
		chord_vol = 1;
                chord(G5,E5,10); chord(A5,F5,2); chord(G5,E5,2); chord(F5,D5,2);
                chord(G5,E5,6); chord(F5,C5,2); chord(G5,D5,2); chord(A5,F5,2); chord(G5,E5,2); chord(F5,D5,2);
                chord(G5,E5,16);

                vol(VOL1,15);
                vol(VOL2,15);
                vsync();

                break;

The "chord" function sets the frequency on GEN1 and GEN2 and then decays the volume for n beats.  The "rest" function mutes the GEN1 and GEN2 channels for n beats.

 

 

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, Airshack said:

That's great how you've constructed a tool to produce sound lists. 

 

Where may one find original game midi files?

I don't remember the exact site I found it, try searching "gamename arcade midi", but this is the viewer I used: https://onlinesequencer.net/import

Edited by PeteE
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...