Jump to content
IGNORED

Js99'er


Asmusr

Recommended Posts

1 hour ago, Asmusr said:

Here is a a crash course on the debugger. It's quite simple, but it has been good enough for developing several games. 

  • Only one breakpoint (CPU, or F18A GPU) is possible
  • To set a breakpoint, enter hex value in the Breakpoint box, or click Stop and then click the left side of the disassembly list to toggle a breakpoint at that address
  • Click Step to single-step
  • Click Start to run to your breakpoint 
  • Shift-click Step to run to two words after the current PC. If the current instruction is a branch this is effectively a Step Over
  • Enter hex address of view address in the View Address box 
  • The memory split view allows you to view a disassembly of your program together with a selected memory region
  • Note that unlike Classic99, the disassembly is a view of the current memory and not a history of executed instructions. This means you can 'disassemble' data and possibly get offset from your program's instructions
  • The Graphics tab may be useful for inspecting tiles and sprites

Classic99 has a far more powerful debugger, and I use it once in a while when I need to do something special like break on memory access or count memory cycles.

 

Thanks for the crash crash course.  When I get to the area of concern, I will end up doing a single step as I will want to flip between viewing some VDP contents as well as what then gets copied into CPU from VDP.  Somewhere, something isn't playing nice.

 

Beery

 

 

 

 

Link to comment
Share on other sites

  • 1 month later...
On 5/11/2014 at 3:30 PM, Asmusr said:

I have added a couple of new features (web site?

 

- Mouse support: If you click on a screen character it will simulate a key press of the corresponding key. Great for navigating though menus.

 

- Save/Load buttons: For saving or restoring the state of the 3 disks to persistent storage in you browser (nothing will be sent to the server). Only available in browsers that support IndexedDB (e.g. Chrome and Firefox). This is currently rather primitive. The plan, as you may have noticed, is to include a disk manager that allows you to maintain a library of disks and choose which disks to insert into which drives.

 

Attached is a copy of the the latest full source code for local use. Note that for local use in Chrome you have to run with the --allow-file-access-from-files option.

 

For Ciro and others who want to embed the emulator in your web sites, I have included a file minimal.html that demonstrates how to bring up the core emulator in a canvas without the user interface. This example is using the included parsec.json module file. To create your own modules in json format use the attached rpk2json tool.

js99er-1.4.zip 863.56 kB · 25 downloads

rpk2json.zip 9.63 kB · 16 downloads

 

 

I was thinking to setup a small competition with my colleagues on "Munch Man", but they do not have a TI 

and setup this page: http://www.globeron.com/ti99/munchman.html

(as a side note, I never figured out how to integrate a list of cartridges to select from, now I convert it json

and that's the only cartridge I can load and if I want another one, I need to adjust the js99er.js  and .html

with the other converted cartridge).

 

 

But I see now the following 

(PS.  @Asmusr  I am not expecting you to troubleshoot, keep focusing on the important stuff)

 

Just wondering why there is a difference.

Apple MacBook Pro:

* Chrome - seems to be working okay, but I do not have sound

* Safari - seems to be working, no sound

 

Windows 10:

* Edge - works + sound

* Firefox - works + sound  (but they layout is a bit off)

* Chrome - works, but again no sound

* Internet Explorer -  very slow, not playable actually

 

 

 

  • Like 1
Link to comment
Share on other sites

It looks like you're using the first generation of the emulator, and maybe an old version of that, because the sound issue was fixed in one of the last versions. You have to call a function (AudioContext.resume()) from a handler triggered by the user. That way browsers prevent websites from making sounds without the user's approval. Internet Explorer has never been supported.

 

Couldn't you just use https://js99er.net/#/cart/munchman for the compo?

  • Like 2
Link to comment
Share on other sites

21 hours ago, Asmusr said:

It looks like you're using the first generation of the emulator, and maybe an old version of that, because the sound issue was fixed in one of the last versions. You have to call a function (AudioContext.resume()) from a handler triggered by the user. That way browsers prevent websites from making sounds without the user's approval. Internet Explorer has never been supported.

 

Couldn't you just use https://js99er.net/#/cart/munchman for the compo?

I am trying to make a userfriendly user interface (non-technical) and how to press the keys when REDO and BACK appears and the settings

(and also a fullcreen mode) and a fullscreen.html mode (but i remember you had last time this html).

 

Thanks for the url.  I never figured out how to load a module directly, i will try that.

 

Link to comment
Share on other sites

51 minutes ago, globeron said:

I am trying to make a userfriendly user interface (non-technical) and how to press the keys when REDO and BACK appears and the settings

(and also a fullcreen mode) and a fullscreen.html mode (but i remember you had last time this html).

 

Thanks for the url.  I never figured out how to load a module directly, i will try that.

 

Globeron, have you also seen the GameRoom here?
http://www.ti99iuc.it/web/index.php?pageid=165&pagina=sala_giochi&sezione=5

 

you can click on a game and play in a frame or just a mouse right click to open the game in another window in full screen.
I do not know if it can help. Always thanks Rasmus for this nice emulator :)
 

Link to comment
Share on other sites

Globeron, have you also seen the GameRoom here?
http://www.ti99iuc.it/web/index.php?pageid=165&pagina=sala_giochi&sezione=5
 
you can click on a game and play in a frame or just a mouse right click to open the game in another window in full screen.
I do not know if it can help. Always thanks Rasmus for this nice emulator [emoji4]
 


Nice, I know your game shelf, let me test this tomorrow.
Is there a direct link to munch man only?


Sent from my iPad using Tapatalk
  • Like 1
Link to comment
Share on other sites

On 8/17/2020 at 12:10 AM, globeron said:

 


Nice, I know your game shelf, let me test this tomorrow.
Is there a direct link to munch man only?


Sent from my iPad using Tapatalk

 

 

Hi @ti99iuc / Ciro -  the interface looks good, but it is the same issue with the sound (i do not hear anything)

 

@Asmusr  in js99er the sound works!

 

(I need some more time to analyse it), will try tonight.

 

 

 

 

Link to comment
Share on other sites

On 8/16/2020 at 7:10 PM, globeron said:


Is there a direct link to munch man only?
 

 

It seems not directly because the rules setted to the website it will open the Main GameRoom page.

8 hours ago, globeron said:

 

Hi @ti99iuc / Ciro -  the interface looks good, but it is the same issue with the sound (i do not hear anything)

as the sound yes you should active it by your browser, for example Chrome have it here


image.png.4879d20e592e132f704337bed19e9d89.png

Link to comment
Share on other sites

9 hours ago, Asmusr said:

You can also manually enable sound for a website. In Chrome, for instance, by clicking the Info or Padlock icon next to the URL and choosing Site Settings. 

Same for normal chrome and incognito.

(And also tried the settings to allow the site).

Weird...it must be the browser with some new features?

Link to comment
Share on other sites

  • 2 months later...

noted in today's zoom meeting that rxb2015 doesn't load properly in js99er

 

If I load cart and select the G file, does that load the C and D files also?  it just shows 

Load module

I see if I zip up the files and load it it shows 

Load module
RXBC.Bin
RXBD.Bin
RXBG.BinRXB CLASSIC99.zip

anyway it won't run RXB after it loads  just flashes the screen colors 

 

 

  • Like 2
Link to comment
Share on other sites

2 hours ago, arcadeshopper said:

noted in today's zoom meeting that rxb2015 doesn't load properly in js99er

 

If I load cart and select the G file, does that load the C and D files also?  it just shows 


Load module

I see if I zip up the files and load it it shows 


Load module
RXBC.Bin
RXBD.Bin
RXBG.BinRXB CLASSIC99.zip

anyway it won't run RXB after it loads  just flashes the screen colors 

 

 

A browser cannot load any files from you local drive without the explicit consent of the user. So either you have to use the version of RXB under Software/Apps or you have to use an rpk version. That's why rpk is the superior format. If we could agree on zipped files with the naming convention that would also be fine.

Edited by Asmusr
Link to comment
Share on other sites

  • 2 months later...
  • 4 months later...
  • 1 month later...

Edit:  disregard.  The problem was not with js99er nor the routine.  When I inspected the GPU memory location at 0x3606, I found garbage in place of my routine.  I was using Ti99dir to copy the FIAD program files generated by xdt99 into a disk image, and it seems that one must refresh the source window before each copy operation. I'll share with the author after I do some more testing to rule out my files. 

 

I have been trying to test some F18A-related code in JS99er.  The GPU is triggered by writing the GPU PC address of >3606  to VR36 and VR37, which then jumps to the routine in the spoiler tags.  It is a simple routine to clear the screen and set the text mode attribute.  I am using the enhanced mode in 80 column x 30 row text mode.  Js99er tells me the GPU is triggered, stopped, and then the F18A is locked.  

 

(On real hardware the GPU stays unlocked and has worked for me in the past since I wrote this in ~2017, so I'm hoping there is a simple answer and that maybe along the way I missed a critical register setup?  If not, then maybe my GPU code is triggering the lock somehow?  I've reviewed the F18a register .ods file but nothing stands out to me).  Here is the js99er log:

Text 80 mode selected
F18A unlocked
Text 80 mode selected (2)
30 rows mode enabled.
F18A Enhanced Color Mode 0 selected for tiles.
F18A Enhanced Color Mode 0 selected for sprites.
F18A GPU triggered at >3606
F18A GPU stopped.
F18A locked
 

 


; code enters at 3606

NTBA         EQU  >6002       name table
CTBA         EQU  >6003       color table
DMA_SRC      EQU  >8000
DMA_DST      EQU  >8002
DMA_W        EQU  >8004
DMA_H        EQU  >8005
DMA_STRIDE   EQU  >8006
DMA_CMD      EQU  >8007
DMA_TRIG     EQU  >8008

 

GPUCLR CLR  R1
       MOVB @NTBA,R1
       SLA  R1,2
       AI   R1,80        skip status line
       LI   R2,2000
       LI   R3,>2020     spaces
CLR1   MOVB R3,*R1+
       DEC  R2
       JNE  CLR1

       CLR  R1
       MOVB @CTBA,R1
       SRL  R1,2
       AI   R1,80
       LI   R2,2000
       MOVB @>3602,R3    attribute passed by caller
CLR2   MOVB R3,*R1+
       DEC  R2
       JNE  CLR2
       CLR  @>3600   ; flag for f18a (based on Tursi's detection)
       IDLE

 
 

 

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

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...