Jump to content
IGNORED

4K Short'n'Sweet game contest


Asmusr

Recommended Posts

Here is the loader to load 4K into the minimemory from TI BASIC.

Use Classic99 and the E/A cartridge to make and load the assembly program. Classic99 has cartrige RAM from >6000 to >7FFF so you can load and test your program there.

 

In the source code start with:

DEF SLOAD
DEF SFIRST
DEF SLAST
AORG >7000
Then the program, and at the end:
SLAST
AORG >A004 plugs the last address into R2
DATA SLAST
END
>7000 is the starting address of the program. There is a test program in the folder called MINIMEMTST.TXT and MINIMEMTST.OBJ which does nothing but get into an endless loop at >7000 and fills the memory with >FFFF, but with the debugger you can see that the proper bytes are saved and loaded.
Assemble the usual way, then get into TI BASIC and type:
CALL INIT
CALL LOAD("DSK3.SNSLOADER.OBJ") *load the loader 1st
CALL LOAD("DSK3.MINIMEMTST.OBJ") * then your program
CALL LOAD(-31804,160) *Resist the urge to use CALL LINK which writes a couple of bogus bytes into the program and will make it crash!
Now the code at >7000 is embedded in a TI BASIC program. Save to disk or cassette.
You can run it with a supercart like you just did in Classic99 or else insert the MiniMemory cartridge and type: OLD DSK1. or OLD CS1 and RUN.
When the program starts the TI is almost the same as when running an EA5 program:
WKSP is >83E0
large and small characters are loaded to V0900
The vdp registers are the same. (Almost - BASIC sets some of them to use V4000 as the screen which works the same as V0000)
The program starts running at >7000
differences:
The color table at V0380 is Black on Cyan
The screen is not cleared. This can be done by adding 15 CALL HCHAR(1,1,192,768) to the loader.
<edit> If you look at the source code for the loader you will see that I have set up the GPL stack to do the scroll routine. The reason is that the loader uses the interrupt hook at >83C4 to start up and that might take up to 1/60 of a second. So the scroll just gives BASIC something innocuous to do until the interrupt can take control.

 

SNSLOADER.zip

Edited by senior_falcon
  • Like 5
Link to comment
Share on other sites

Looking forward to seeing what you guys have come up with.

 

BTW, I'm sure it has occurred to you that you can fit two or more of these games into an 8K supercart. (It is probably not practical to make a ROM cartridge since they probably will need to have RAM)

I also thought about that.

My game could be a candidate for a ROM cartridge as Im only using scratchpad RAM. Anyone else on scratchpad only?

Edited by retroclouds
Link to comment
Share on other sites

Looks like we might be able to put all of the entries into a single console-only multicart image once the contest is over, based on all of the identified entries so far being self-contained and only needing the scratch pad. Looks like @Retroclouds and I were having the same idea at the same time. . . :)

Edited by Ksarul
  • Like 1
Link to comment
Share on other sites

Looks like we might be able to put all of the entries into a single console-only multicart image once the contest is over, based on all of the identified entries so far being self-contained and only needing the scratch pad.

 

All except mine. [edit: I do need 4K RAM].

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Even though registration is not required for this contest, it would be nice with a non-binding status update.

 

My own game is as complete as I think it will be within the limits of 4K. It requires 4K RAM, e.g. a Mini Memory, and can be loaded from tape (using Senior Falcon's loader), disk, or a 4K FG99 ROM image that loads itself into FG99 RAM. The latter is using Tursi's lz4 decompression routine to reduce the ROM size to 4K.

  • Like 2
Link to comment
Share on other sites

Okay... mine's ready as well. I have a 4k Mini Memory version that uses Senior Falcon's loader (the loader is >4k), as well as the object file and source to show it runs in 4k. I also have an EA#5 version (for non-Mini-Memory users with 32k) and a 4k cartridge ROM. (I didn't use the lz4 code so I'm glad someone did! ;) )

  • Like 3
Link to comment
Share on other sites

I'm still working on mine, but am out of code space so I'm looking at moving some of the runtime data tables to the VDP memory or finding a more compact representation. I always seem to underestimate how much space will be taken up by things.

hehe, so do I. I figured my base engine would take about 2k, but it was at 6k before I started optimizing ;)

Link to comment
Share on other sites

When are we opening up the voting thread, was that Mar 1?

 

As indicated below, I hope it's still beginning of April. ;)

 

More interestingly - to me, the deadline of entries is end of March. ;)

 

The deadline of 3 months brings us to the end of March 2018 whereby all entries should be submitted. You do not have to register in order to participate.

 

At the beginning of April, a poll at AtariAge will be set up to choose the winner.

Edited by sometimes99er
Link to comment
Share on other sites

Seems like I'm the only one left to finish, so you could potentially open voting as soon as it's ready. I shall endeavor to complete mine by next weekend. I was hoping to see some other still-in-progress entrants.

 

January saw me concentrating on a sports game. Now I jumped on a platformer instead. :|

Edited by sometimes99er
  • Like 2
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...